use of com.lilithsthrone.game.character.GameCharacter in project liliths-throne-public by Innoxia.
the class NPC method getCharacterInformationScreen.
public String getCharacterInformationScreen() {
infoScreenSB.setLength(0);
infoScreenSB.append("<h4>Background</h4>" + "<p>" + this.getDescription() + "</p>" + "</br>" + "<h4>Relationships</h4>" + "<p>" + "[style.boldAffection(Affection:)]</br>" + AffectionLevel.getDescription(this, Main.game.getPlayer(), AffectionLevel.getAffectionLevelFromValue(this.getAffection(Main.game.getPlayer())), true));
for (Entry<String, Float> entry : this.getAffectionMap().entrySet()) {
GameCharacter target = Main.game.getNPCById(entry.getKey());
if (!target.isPlayer()) {
infoScreenSB.append("</br>" + AffectionLevel.getDescription(this, target, AffectionLevel.getAffectionLevelFromValue(this.getAffection(target)), true));
}
}
infoScreenSB.append("</br></br>" + "[style.boldObedience(Obedience:)]</br>" + UtilText.parse(this, (this.isSlave() ? "[npc.Name] [style.boldArcane(is a slave)], owned by " + (this.getOwner().isPlayer() ? "you!" : this.getOwner().getName("a") + ".") : "[npc.Name] [style.boldGood(is not a slave)].")) + "</br>" + ObedienceLevel.getDescription(this, ObedienceLevel.getObedienceLevelFromValue(this.getObedienceValue()), true, true));
if (!this.getSlavesOwned().isEmpty()) {
infoScreenSB.append("</br></br>" + "[style.boldArcane(Slaves owned:)]");
for (String id : this.getSlavesOwned()) {
infoScreenSB.append(UtilText.parse(Main.game.getNPCById(id), "</br>[npc.Name]"));
}
}
infoScreenSB.append("</p>" + "</br>" + "<h4>Appearance</h4>" + "<p>" + this.getBodyDescription() + "</p>" + getStats(this));
return infoScreenSB.toString();
}
use of com.lilithsthrone.game.character.GameCharacter in project liliths-throne-public by Innoxia.
the class Ashley method getCharacterInformationScreen.
@Override
public String getCharacterInformationScreen() {
infoScreenSB.setLength(0);
infoScreenSB.append("<h4>Background</h4>" + "<p>" + this.getDescription() + "</p>" + "</br>" + "<h4>Relationships</h4>" + "<p>" + "[style.boldAffection(Affection:)]</br>" + AffectionLevel.getDescription(this, Main.game.getPlayer(), AffectionLevel.getAffectionLevelFromValue(this.getAffection(Main.game.getPlayer())), true));
for (Entry<String, Float> entry : this.getAffectionMap().entrySet()) {
GameCharacter target = Main.game.getNPCById(entry.getKey());
if (!target.isPlayer()) {
infoScreenSB.append("</br>" + AffectionLevel.getDescription(this, target, AffectionLevel.getAffectionLevelFromValue(this.getAffection(target)), true));
}
}
infoScreenSB.append("</br></br>" + "[style.boldObedience(Obedience:)]</br>" + UtilText.parse(this, (this.isSlave() ? "[npc.Name] [style.boldArcane(is a slave)], owned by " + (this.getOwner().isPlayer() ? "you!" : this.getOwner().getName("a") + ".") : "[npc.Name] [style.boldGood(is not a slave)].")) + "</br>" + ObedienceLevel.getDescription(this, ObedienceLevel.getObedienceLevelFromValue(this.getObedienceValue()), true, true) + "</p>" + "</br>" + "<h4>Appearance</h4>" + "<p>" + (Main.game.getPlayer().hasTraitActivated(Perk.OBSERVANT) ? "Despite the fact that you're highly observant, there's no giveaway whatsoever which would hint as to what Ashley's gender is." : "You have no idea what Ashley's gender is.") + " Standing at full height, they measure 6'1\" (186cm)." + "</p>" + "<p>" + "The hood of their cloak is pulled up, completely obscuring their facial features." + " All that you can make out from the darkness of the hood is the sheen of a pair of deep blue eyes." + "</p>" + "<p>" + "Ashley's cloak covers the entirety of their body, leaving you completely unable to see any part of their body." + " You have no idea what race they are, much less the state of their breasts and genitals." + "</p>");
return infoScreenSB.toString();
}
use of com.lilithsthrone.game.character.GameCharacter in project liliths-throne-public by Innoxia.
the class SexAction method getFetishesForEitherPartner.
public List<Fetish> getFetishesForEitherPartner(GameCharacter characterPerformingAction, boolean characterPerformingActionFetishes) {
// if(characterFetishes==null || characterFetishes.get(characterPerformingAction)==null) {
GameCharacter characterTarget = Sex.getTargetedPartner(characterPerformingAction);
characterFetishes = new HashMap<>();
characterFetishesForPartner = new HashMap<>();
characterFetishes.putIfAbsent(characterPerformingAction, new HashSet<>());
characterFetishesForPartner.putIfAbsent(characterPerformingAction, new HashSet<>());
if (this.getParticipantType() == SexParticipantType.SELF && !characterPerformingActionFetishes) {
// If this is a self action, do not apply fetishes to other partner.
return new ArrayList<>(characterFetishesForPartner.get(characterPerformingAction));
}
if (this.getParticipantType() != SexParticipantType.SELF && characterPerformingAction.isRelatedTo(characterTarget)) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_INCEST);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_INCEST);
}
if (this.getSexPace(characterPerformingAction) != null) {
switch(this.getSexPace(characterPerformingAction)) {
case DOM_GENTLE:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_DOMINANT);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_SUBMISSIVE);
break;
case DOM_NORMAL:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_DOMINANT);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_SUBMISSIVE);
break;
case DOM_ROUGH:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_DOMINANT);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_SUBMISSIVE);
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_SADIST);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_MASOCHIST);
break;
case SUB_EAGER:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_SUBMISSIVE);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_DOMINANT);
break;
case SUB_NORMAL:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_SUBMISSIVE);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_DOMINANT);
break;
case SUB_RESISTING:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_SUBMISSIVE);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_DOMINANT);
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_NON_CON_SUB);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_NON_CON_DOM);
break;
}
}
List<CoverableArea> cummedOnList = this.getAreasCummedOn(characterPerformingAction, characterTarget);
if (cummedOnList != null) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_CUM_STUD);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_CUM_ADDICT);
for (CoverableArea area : cummedOnList) {
switch(area) {
case ANUS:
case ASS:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_ANAL_GIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_ANAL_RECEIVING);
break;
case BACK:
break;
case BREASTS:
case NIPPLES:
if (characterTarget.getBreastRawMilkStorageValue() > 0) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_LACTATION_OTHERS);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_LACTATION_SELF);
}
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_BREASTS_OTHERS);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_BREASTS_SELF);
break;
case HAIR:
break;
case LEGS:
case THIGHS:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_LEG_LOVER);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_STRUTTER);
break;
case MOUND:
break;
case MOUTH:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_ORAL_GIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_ORAL_RECEIVING);
break;
case PENIS:
case TESTICLES:
break;
case STOMACH:
break;
case VAGINA:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_VAGINAL_GIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_VAGINAL_RECEIVING);
break;
}
}
}
cummedOnList = this.getAreasCummedOn(characterTarget, characterPerformingAction);
if (cummedOnList != null) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_CUM_ADDICT);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_CUM_STUD);
for (CoverableArea area : cummedOnList) {
switch(area) {
case ANUS:
case ASS:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_ANAL_RECEIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_ANAL_GIVING);
break;
case BACK:
break;
case BREASTS:
case NIPPLES:
if (characterPerformingAction.getBreastRawMilkStorageValue() > 0) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_LACTATION_SELF);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_LACTATION_OTHERS);
}
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_BREASTS_SELF);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_BREASTS_OTHERS);
break;
case HAIR:
break;
case LEGS:
case THIGHS:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_STRUTTER);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_LEG_LOVER);
break;
case MOUND:
break;
case MOUTH:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_ORAL_RECEIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_ORAL_GIVING);
break;
case PENIS:
case TESTICLES:
break;
case STOMACH:
break;
case VAGINA:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_VAGINAL_RECEIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_VAGINAL_GIVING);
break;
}
}
}
List<OrificeType> cummedInList = this.getAreasCummedIn(characterPerformingAction, characterTarget);
if (cummedInList != null) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_CUM_STUD);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_CUM_ADDICT);
for (OrificeType orifice : cummedInList) {
switch(orifice) {
case ANUS:
case ASS:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_ANAL_GIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_ANAL_RECEIVING);
break;
case BREAST:
case NIPPLE:
if (characterTarget.getBreastRawMilkStorageValue() > 0) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_LACTATION_OTHERS);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_LACTATION_SELF);
}
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_BREASTS_OTHERS);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_BREASTS_SELF);
break;
case THIGHS:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_LEG_LOVER);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_STRUTTER);
break;
case MOUTH:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_ORAL_GIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_ORAL_RECEIVING);
break;
case VAGINA:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_VAGINAL_GIVING);
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_IMPREGNATION);
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_SEEDER);
if (this.getParticipantType() == SexParticipantType.SELF) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_PREGNANCY);
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_BROODMOTHER);
}
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_VAGINAL_RECEIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_PREGNANCY);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_BROODMOTHER);
break;
case URETHRA:
break;
}
}
}
cummedInList = this.getAreasCummedIn(characterTarget, characterPerformingAction);
if (cummedInList != null) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_CUM_ADDICT);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_CUM_STUD);
for (OrificeType orifice : cummedInList) {
switch(orifice) {
case ANUS:
case ASS:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_ANAL_RECEIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_ANAL_GIVING);
break;
case BREAST:
case NIPPLE:
if (characterPerformingAction.getBreastRawMilkStorageValue() > 0) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_LACTATION_SELF);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_LACTATION_OTHERS);
}
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_BREASTS_SELF);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_BREASTS_OTHERS);
break;
case THIGHS:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_STRUTTER);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_LEG_LOVER);
break;
case MOUTH:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_ORAL_RECEIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_ORAL_GIVING);
break;
case VAGINA:
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_VAGINAL_RECEIVING);
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_PREGNANCY);
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_BROODMOTHER);
if (this.getParticipantType() == SexParticipantType.SELF) {
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_IMPREGNATION);
characterFetishes.get(characterPerformingAction).add(Fetish.FETISH_SEEDER);
}
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_VAGINAL_GIVING);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_IMPREGNATION);
characterFetishesForPartner.get(characterPerformingAction).add(Fetish.FETISH_SEEDER);
break;
case URETHRA:
break;
}
}
}
if (this.getAssociatedPenetrationType() != null && this.getAssociatedOrificeType() != null && this.getActionType() != SexActionType.PLAYER_STOP_PENETRATION && this.getActionType() != SexActionType.PARTNER_STOP_PENETRATION && this.getParticipantType() != SexParticipantType.MISC) {
if (characterPerformingActionFetishes) {
characterFetishes.get(characterPerformingAction).addAll(getFetishesFromPenetrationAndOrificeTypes(characterPerformingAction, this.getAssociatedPenetrationType(), this.getAssociatedOrificeType(), characterPerformingActionFetishes));
} else {
characterFetishesForPartner.get(characterPerformingAction).addAll(getFetishesFromPenetrationAndOrificeTypes(characterPerformingAction, this.getAssociatedPenetrationType(), this.getAssociatedOrificeType(), characterPerformingActionFetishes));
}
}
characterFetishes.get(characterPerformingAction).removeIf(f -> !characterTarget.hasVagina() && (f == Fetish.FETISH_VAGINAL_GIVING || f == Fetish.FETISH_IMPREGNATION || f == Fetish.FETISH_SEEDER));
characterFetishesForPartner.get(characterPerformingAction).removeIf(f -> !characterTarget.hasVagina() && (f == Fetish.FETISH_VAGINAL_GIVING || f == Fetish.FETISH_IMPREGNATION || f == Fetish.FETISH_SEEDER));
if (characterPerformingActionFetishes) {
return new ArrayList<>(characterFetishes.get(characterPerformingAction));
} else {
return new ArrayList<>(characterFetishesForPartner.get(characterPerformingAction));
}
}
use of com.lilithsthrone.game.character.GameCharacter in project liliths-throne-public by Innoxia.
the class SexAction method getFetishesFromPenetrationAndOrificeTypes.
protected List<Fetish> getFetishesFromPenetrationAndOrificeTypes(GameCharacter characterPerformingAction, PenetrationType penetrationBeingUsed, OrificeType orificeBeingUsed, boolean characterPerformingActionFetishes) {
GameCharacter characterTarget = Sex.getTargetedPartner(characterPerformingAction);
List<Fetish> associatedFetishes = new ArrayList<>();
List<Fetish> associatedFetishesPartner = new ArrayList<>();
boolean isCharacterPerformingActionUsingOrificeType = this.getParticipantType().isUsingSelfOrificeType();
boolean isCharacterPerformingActionUsingPenetrationType = this.getParticipantType().isUsingSelfPenetrationType();
switch(penetrationBeingUsed) {
case FINGER:
if (isCharacterPerformingActionUsingOrificeType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_RECEIVING);
break;
case BREAST:
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
break;
case MOUTH:
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
break;
case NIPPLE:
if (characterPerformingAction.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_SELF);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
break;
case URETHRA:
associatedFetishes.add(Fetish.FETISH_MASTURBATION);
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_MASTURBATION);
associatedFetishes.add(Fetish.FETISH_VAGINAL_RECEIVING);
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_STRUTTER);
break;
}
}
if (isCharacterPerformingActionUsingPenetrationType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_GIVING);
break;
case BREAST:
if (!isCharacterPerformingActionUsingOrificeType) {
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
break;
case MOUTH:
break;
case NIPPLE:
if (!isCharacterPerformingActionUsingOrificeType) {
if (characterTarget.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_OTHERS);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
break;
case URETHRA:
associatedFetishes.add(Fetish.FETISH_MASTURBATION);
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_VAGINAL_GIVING);
associatedFetishes.add(Fetish.FETISH_MASTURBATION);
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_LEG_LOVER);
break;
}
}
break;
case PENIS:
if (isCharacterPerformingActionUsingOrificeType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_RECEIVING);
break;
case BREAST:
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
break;
case MOUTH:
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
if (this.getParticipantType() == SexParticipantType.SELF) {
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
}
break;
case NIPPLE:
if (characterPerformingAction.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_SELF);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
break;
case URETHRA:
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_VAGINAL_RECEIVING);
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_STRUTTER);
break;
}
}
if (isCharacterPerformingActionUsingPenetrationType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_GIVING);
break;
case BREAST:
if (!isCharacterPerformingActionUsingOrificeType) {
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
break;
case MOUTH:
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
break;
case NIPPLE:
if (!isCharacterPerformingActionUsingOrificeType) {
if (characterTarget.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_OTHERS);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
break;
case URETHRA:
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_VAGINAL_GIVING);
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_LEG_LOVER);
break;
}
}
break;
case TAIL:
if (isCharacterPerformingActionUsingOrificeType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_RECEIVING);
break;
case BREAST:
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
break;
case MOUTH:
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
if (this.getParticipantType() == SexParticipantType.SELF) {
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
}
break;
case NIPPLE:
if (characterPerformingAction.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_SELF);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
break;
case URETHRA:
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_VAGINAL_RECEIVING);
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_STRUTTER);
break;
}
}
if (isCharacterPerformingActionUsingPenetrationType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_GIVING);
break;
case BREAST:
if (!isCharacterPerformingActionUsingOrificeType) {
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
break;
case MOUTH:
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
break;
case NIPPLE:
if (!isCharacterPerformingActionUsingOrificeType) {
if (characterTarget.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_OTHERS);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
break;
case URETHRA:
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_VAGINAL_GIVING);
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_LEG_LOVER);
break;
}
}
break;
case TENTACLE:
if (isCharacterPerformingActionUsingOrificeType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_RECEIVING);
break;
case BREAST:
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
break;
case MOUTH:
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
if (this.getParticipantType() == SexParticipantType.SELF) {
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
}
break;
case NIPPLE:
if (characterPerformingAction.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_SELF);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
break;
case URETHRA:
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_VAGINAL_RECEIVING);
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_STRUTTER);
break;
}
}
if (isCharacterPerformingActionUsingPenetrationType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_GIVING);
break;
case BREAST:
if (!isCharacterPerformingActionUsingOrificeType) {
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
break;
case MOUTH:
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
break;
case NIPPLE:
if (!isCharacterPerformingActionUsingOrificeType) {
if (characterTarget.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_OTHERS);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
break;
case URETHRA:
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_VAGINAL_GIVING);
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_LEG_LOVER);
break;
}
}
break;
case TONGUE:
if (isCharacterPerformingActionUsingOrificeType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_RECEIVING);
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
if (this.getParticipantType() == SexParticipantType.SELF) {
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
}
break;
case BREAST:
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
if (this.getParticipantType() == SexParticipantType.SELF) {
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
}
break;
case MOUTH:
break;
case NIPPLE:
if (characterPerformingAction.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_SELF);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_SELF);
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
if (this.getParticipantType() == SexParticipantType.SELF) {
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
}
break;
case URETHRA:
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
if (this.getParticipantType() == SexParticipantType.SELF) {
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
}
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_VAGINAL_RECEIVING);
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
if (this.getParticipantType() == SexParticipantType.SELF) {
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
}
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_STRUTTER);
break;
}
}
if (isCharacterPerformingActionUsingPenetrationType) {
switch(orificeBeingUsed) {
case ANUS:
case ASS:
associatedFetishes.add(Fetish.FETISH_ANAL_GIVING);
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
break;
case BREAST:
if (!isCharacterPerformingActionUsingOrificeType) {
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
break;
case MOUTH:
associatedFetishes.add(Fetish.FETISH_ORAL_RECEIVING);
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
break;
case NIPPLE:
if (!isCharacterPerformingActionUsingOrificeType) {
if (characterTarget.getBreastRawMilkStorageValue() > 0) {
associatedFetishes.add(Fetish.FETISH_LACTATION_OTHERS);
}
associatedFetishes.add(Fetish.FETISH_BREASTS_OTHERS);
}
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
break;
case URETHRA:
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
break;
case VAGINA:
associatedFetishes.add(Fetish.FETISH_VAGINAL_GIVING);
associatedFetishes.add(Fetish.FETISH_ORAL_GIVING);
break;
case THIGHS:
associatedFetishes.add(Fetish.FETISH_LEG_LOVER);
break;
}
}
break;
}
if (!associatedFetishes.contains(Fetish.FETISH_MASTURBATION) && this.getParticipantType() == SexParticipantType.SELF) {
associatedFetishes.add(Fetish.FETISH_MASTURBATION);
}
// Add opposite fetishes for partner:
for (Fetish f : associatedFetishes) {
switch(f) {
case FETISH_ANAL_GIVING:
associatedFetishesPartner.add(Fetish.FETISH_ANAL_RECEIVING);
break;
case FETISH_ANAL_RECEIVING:
associatedFetishesPartner.add(Fetish.FETISH_ANAL_GIVING);
break;
case FETISH_BIMBO:
break;
case FETISH_BREASTS_OTHERS:
associatedFetishesPartner.add(Fetish.FETISH_BREASTS_SELF);
break;
case FETISH_BREASTS_SELF:
associatedFetishesPartner.add(Fetish.FETISH_BREASTS_OTHERS);
break;
case FETISH_LACTATION_OTHERS:
associatedFetishesPartner.add(Fetish.FETISH_LACTATION_SELF);
break;
case FETISH_LACTATION_SELF:
associatedFetishesPartner.add(Fetish.FETISH_LACTATION_OTHERS);
break;
case FETISH_BREEDER:
break;
case FETISH_BROODMOTHER:
associatedFetishesPartner.add(Fetish.FETISH_SEEDER);
break;
case FETISH_CROSS_DRESSER:
break;
case FETISH_CUM_ADDICT:
associatedFetishesPartner.add(Fetish.FETISH_CUM_STUD);
break;
case FETISH_CUM_STUD:
associatedFetishesPartner.add(Fetish.FETISH_CUM_ADDICT);
break;
case FETISH_DEFLOWERING:
break;
case FETISH_DENIAL:
associatedFetishesPartner.add(Fetish.FETISH_DENIAL_SELF);
break;
case FETISH_DENIAL_SELF:
associatedFetishesPartner.add(Fetish.FETISH_DENIAL);
break;
case FETISH_DOMINANT:
associatedFetishesPartner.add(Fetish.FETISH_SUBMISSIVE);
break;
case FETISH_EXHIBITIONIST:
break;
case FETISH_IMPREGNATION:
associatedFetishesPartner.add(Fetish.FETISH_PREGNANCY);
break;
case FETISH_INCEST:
associatedFetishesPartner.add(Fetish.FETISH_INCEST);
break;
case FETISH_LEG_LOVER:
associatedFetishesPartner.add(Fetish.FETISH_STRUTTER);
break;
case FETISH_LUSTY_MAIDEN:
break;
case FETISH_MASOCHIST:
associatedFetishesPartner.add(Fetish.FETISH_SADIST);
break;
case FETISH_MASTURBATION:
associatedFetishesPartner.add(Fetish.FETISH_MASTURBATION);
break;
case FETISH_NON_CON_DOM:
associatedFetishesPartner.add(Fetish.FETISH_NON_CON_SUB);
break;
case FETISH_NON_CON_SUB:
associatedFetishesPartner.add(Fetish.FETISH_NON_CON_DOM);
break;
case FETISH_ORAL_GIVING:
associatedFetishesPartner.add(Fetish.FETISH_ORAL_RECEIVING);
break;
case FETISH_ORAL_RECEIVING:
associatedFetishesPartner.add(Fetish.FETISH_ORAL_GIVING);
break;
case FETISH_PREGNANCY:
associatedFetishesPartner.add(Fetish.FETISH_IMPREGNATION);
break;
case FETISH_PURE_VIRGIN:
break;
case FETISH_SADIST:
associatedFetishesPartner.add(Fetish.FETISH_MASOCHIST);
break;
case FETISH_SADOMASOCHIST:
break;
case FETISH_SEEDER:
break;
case FETISH_STRUTTER:
associatedFetishesPartner.add(Fetish.FETISH_LEG_LOVER);
break;
case FETISH_SUBMISSIVE:
associatedFetishesPartner.add(Fetish.FETISH_DOMINANT);
break;
case FETISH_SWITCH:
break;
case FETISH_TRANSFORMATION_GIVING:
associatedFetishesPartner.add(Fetish.FETISH_TRANSFORMATION_RECEIVING);
break;
case FETISH_TRANSFORMATION_RECEIVING:
associatedFetishesPartner.add(Fetish.FETISH_TRANSFORMATION_GIVING);
break;
case FETISH_VAGINAL_GIVING:
associatedFetishesPartner.add(Fetish.FETISH_VAGINAL_RECEIVING);
break;
case FETISH_VAGINAL_RECEIVING:
associatedFetishesPartner.add(Fetish.FETISH_VAGINAL_GIVING);
break;
case FETISH_VOYEURIST:
break;
case FETISH_KINK_GIVING:
break;
case FETISH_KINK_RECEIVING:
break;
}
}
if (characterPerformingActionFetishes) {
return associatedFetishes;
} else {
return associatedFetishesPartner;
}
}
use of com.lilithsthrone.game.character.GameCharacter in project liliths-throne-public by Innoxia.
the class GenericOrgasms method getGenericVaginaOrgasmDescription.
private static String getGenericVaginaOrgasmDescription(GameCharacter characterOrgasming) {
genericOrgasmSB.setLength(0);
if (characterOrgasming.isPlayer()) {
genericOrgasmSB.append("A desperate, shuddering heat suddenly crashes up from your [npc1.pussy+], and you let out a manic squeal as a blinding wave of pure ecstasy washes over you.");
} else {
genericOrgasmSB.append("A desperate, shuddering heat suddenly crashes up from [npc1.name]'s [npc1.pussy+], and [npc1.she] lets out a manic squeal as a blinding wave of pure ecstasy washes over [npc1.herHim].");
}
GameCharacter characterPenetrating = Sex.getPenetratingCharacterUsingOrifice(characterOrgasming, OrificeType.VAGINA);
PenetrationType penetration = Sex.getPenetrationTypeInOrifice(characterOrgasming, OrificeType.VAGINA);
if (characterPenetrating != null) {
switch(penetration) {
case FINGER:
if (characterOrgasming.isPlayer()) {
if (characterPenetrating.isPlayer()) {
genericOrgasmSB.append(" You curl your fingers up deep inside your [npc1.pussy+], and, while desperately stroking in a 'come-hither' motion," + " you let out a series of high-pitched moans as your vaginal muscles grip and squeeze around your intruding digits.");
} else {
genericOrgasmSB.append(" [npc2.Name]'s fingers carry on pumping away at your [npc1.pussy+], and you let out a series of high-pitched moans as your vaginal muscles grip and squeeze around the intruding digits.");
}
} else {
if (characterPenetrating.isPlayer()) {
genericOrgasmSB.append(" [npc1.Name]'s vaginal muscles grip and squeeze around your intruding digits," + " and you continue to stroke and tease [npc1.her] clit, drawing out a series of [npc1.moans+] from between [npc1.her] [npc1.lips+].");
} else {
genericOrgasmSB.append(" [npc1.Name]'s vaginal muscles grip and squeeze around [npc2.name]'s intruding digits," + " and [npc2.she] continues to stroke and tease [npc1.her] clit, drawing out a series of [npc1.moans+] from between [npc1.her] [npc1.lips+].");
}
}
break;
case PENIS:
if (characterOrgasming.isPlayer()) {
if (characterPenetrating.isPlayer()) {
genericOrgasmSB.append(" You carry on fucking yourself through your orgasm, letting out a series of high-pitched moans as your vaginal muscles grip and squeeze around your [npc1.cock+].");
} else {
genericOrgasmSB.append(" [npc2.Name] carries on fucking your [npc1.pussy+] through your orgasm, and you let out a series of high-pitched moans as your vaginal muscles grip and squeeze around [npc2.her] [npc2.penis+].");
}
} else {
if (characterPenetrating.isPlayer()) {
genericOrgasmSB.append(" You carry on fucking [npc1.name] through [npc1.her] orgasm, causing [npc1.herHim] to let out a series of high-pitched moans as [npc1.her] vaginal muscles grip and squeeze around your [npc2.cock+].");
} else {
genericOrgasmSB.append(" [npc2.Name] carries on fucking [npc1.name]'s [npc1.pussy+] through [npc1.her] orgasm," + " causing [npc1.herHim] to let out a series of high-pitched moans as [npc1.her] vaginal muscles grip and squeeze around [npc2.her] [npc2.penis+].");
}
}
break;
case TAIL:
if (characterOrgasming.isPlayer()) {
if (characterPenetrating.isPlayer()) {
genericOrgasmSB.append(" You carry on tail-fucking yourself through your orgasm, letting out a series of high-pitched moans as your vaginal muscles grip and squeeze around the intruding object.");
} else {
genericOrgasmSB.append(" [npc2.Name] carries on tail-fucking your [npc1.pussy+] through your orgasm, and you let out a series of high-pitched moans as your vaginal muscles grip and squeeze around the intruding object.");
}
} else {
if (characterPenetrating.isPlayer()) {
genericOrgasmSB.append(" You carry on tail-fucking [npc1.name] through [npc1.her] orgasm," + " causing [npc1.herHim] to let out a series of high-pitched moans as [npc1.her] vaginal muscles grip and squeeze around the intruding object.");
} else {
genericOrgasmSB.append(" [npc2.Name] carries on tail-fucking [npc1.name]'s [npc1.pussy+] through [npc1.her] orgasm," + " causing [npc1.herHim] to let out a series of high-pitched moans as [npc1.her] vaginal muscles grip and squeeze around the intruding object.");
}
}
break;
case TONGUE:
if (characterOrgasming.isPlayer()) {
if (characterPenetrating.isPlayer()) {
genericOrgasmSB.append(" You carry on licking and kissing your clit as you orgasm, letting out a series of high-pitched moans as you feel your vaginal muscles quiver and contract at the overwhelming sensation.");
} else {
genericOrgasmSB.append(" [npc2.Name] carries on licking and kissing at your clit while you orgasm," + " causing you to let out a series of high-pitched moans as you feel your vaginal muscles quiver and contract at the overwhelming sensation.");
}
} else {
if (characterPenetrating.isPlayer()) {
genericOrgasmSB.append(" You carry on licking and kissing [npc1.name]'s clit as [npc1.she] orgasms," + " causing [npc1.herHim] to let out a series of high-pitched moans as [npc1.her] vaginal muscles quiver and contract at the overwhelming sensation.");
} else {
genericOrgasmSB.append(" [npc2.Name] carries on licking and kissing at [npc1.name]'s clit while [npc1.she] orgasms," + " causing [npc1.herHim] to let out a series of high-pitched moans as [npc1.her] vaginal muscles quiver and contract at the overwhelming sensation.");
}
}
break;
case TENTACLE:
break;
}
} else {
// No penetration:
if (characterOrgasming.isPlayer()) {
genericOrgasmSB.append(" Your [npc1.pussy+] clenches down hard, and the wave of disappointment upon finding itself empty almost overwhelms the pleasure that radiates up through your groin.");
} else {
genericOrgasmSB.append(" [npc1.Name]'s [npc1.pussy+] clenches down hard, and the wave of disappointment upon finding itself empty almost overwhelms the pleasure that radiates up through [npc.her] groin.");
}
}
if (characterOrgasming.isVaginaSquirter()) {
if (characterOrgasming.isPlayer()) {
genericOrgasmSB.append(" As your inner muscles spasm and quiver with delight, a huge spurt of female ejaculate squirts out from your [npc1.pussy+].");
} else {
genericOrgasmSB.append(" As [npc1.name]'s inner muscles spasm and quiver with delight, a huge spurt of female ejaculate squirts out from [npc1.her] [npc1.pussy+].");
}
}
if (characterOrgasming.isPlayer()) {
genericOrgasmSB.append(" With a deeply-satisfied sigh, your feminine climax starts to fade, and you take a few deep gasps of air as you seek to catch your breath.");
} else {
genericOrgasmSB.append(" With a deeply-satisfied sigh, [npc1.name]'s feminine climax starts to fade, and [npc1.she] takes a few deep gasps of air as [npc1.she] seeks to catch [npc1.her] breath.");
}
if (characterPenetrating != null) {
return UtilText.parse(characterOrgasming, characterPenetrating, genericOrgasmSB.toString());
} else {
return UtilText.parse(characterOrgasming, genericOrgasmSB.toString());
}
}
Aggregations