use of com.lilithsthrone.game.inventory.clothing.AbstractClothing in project liliths-throne-public by Innoxia.
the class EnchantmentDialogue method craftItem.
public static void craftItem(AbstractCoreItem ingredient, List<ItemEffect> effects) {
if (ingredient instanceof AbstractItem) {
Main.game.getPlayer().removeItem((AbstractItem) ingredient);
AbstractItem craftedItem = EnchantingUtils.craftItem(ingredient, effects);
Main.game.getPlayer().addItem(craftedItem, false, true);
} else if (ingredient instanceof AbstractClothing) {
Main.game.getPlayer().removeClothing((AbstractClothing) ingredient);
AbstractClothing craftedClothing = EnchantingUtils.craftClothing(ingredient, effects);
Main.game.getPlayer().addClothing(craftedClothing, false);
} else if (ingredient instanceof AbstractWeapon) {
Main.game.getPlayer().removeWeapon((AbstractWeapon) ingredient);
}
Main.game.getPlayer().incrementEssenceCount(ingredient.getRelatedEssence(), -EnchantingUtils.getCost(ingredient, effects));
previousIngredient = ingredient;
previousPrimaryMod = primaryMod;
previousSecondaryMod = secondaryMod;
previousEffects.clear();
previousEffects.addAll(EnchantmentDialogue.effects);
resetEnchantmentVariables();
EnchantmentDialogue.effects.clear();
}
use of com.lilithsthrone.game.inventory.clothing.AbstractClothing in project liliths-throne-public by Innoxia.
the class EnchantingUtils method getCost.
public static int getCost(AbstractCoreItem ingredient, List<ItemEffect> effects) {
int cost = 0;
Map<ItemEffect, Integer> effectCount = new HashMap<>();
for (ItemEffect ie : effects) {
effectCount.putIfAbsent(ie, 0);
effectCount.put(ie, effectCount.get(ie) + 1);
}
for (ItemEffect ie : ingredient.getEffects()) {
if (effects.contains(ie)) {
effectCount.put(ie, effectCount.get(ie) - 1);
} else {
effectCount.putIfAbsent(ie, 0);
effectCount.put(ie, effectCount.get(ie) + 1);
}
}
for (Entry<ItemEffect, Integer> entry : effectCount.entrySet()) {
cost += entry.getKey().getCost() * Math.abs(entry.getValue());
}
if (Main.game.getPlayer().hasFetish(Fetish.FETISH_TRANSFORMATION_GIVING) && ingredient instanceof AbstractItem) {
cost /= 2;
}
if (Main.game.getPlayer().hasTrait(Perk.CLOTHING_ENCHANTER, true) && ingredient instanceof AbstractClothing) {
cost /= 2;
}
return cost;
}
use of com.lilithsthrone.game.inventory.clothing.AbstractClothing in project liliths-throne-public by Innoxia.
the class EnchantingUtils method craftClothing.
public static AbstractClothing craftClothing(AbstractCoreItem ingredient, List<ItemEffect> effects) {
AbstractClothing craftedClothing = null;
List<ItemEffect> effectsToBeAdded = new ArrayList<>();
effectsToBeAdded.addAll(effects);
craftedClothing = AbstractClothingType.generateClothing((AbstractClothingType) ingredient.getEnchantmentItemType(effects), ingredient.getColour(), ((AbstractClothing) ingredient).getSecondaryColour(), ((AbstractClothing) ingredient).getTertiaryColour(), effectsToBeAdded);
craftedClothing.setEnchantmentKnown(true);
return craftedClothing;
}
use of com.lilithsthrone.game.inventory.clothing.AbstractClothing in project liliths-throne-public by Innoxia.
the class GameCharacter method loadGameCharacterVariablesFromXML.
public static void loadGameCharacterVariablesFromXML(GameCharacter character, StringBuilder log, Element parentElement, Document doc, CharacterImportSetting... settings) {
boolean noPregnancy = Arrays.asList(settings).contains(CharacterImportSetting.NO_PREGNANCY);
// ************** Core information **************//
NodeList nodes = parentElement.getElementsByTagName("core");
Element element = (Element) nodes.item(0);
String version = "";
if (element.getElementsByTagName("version").item(0) != null) {
version = ((Element) element.getElementsByTagName("version").item(0)).getAttribute("value");
}
if (((Element) element.getElementsByTagName("id").item(0)) != null) {
character.setId(((Element) element.getElementsByTagName("id").item(0)).getAttribute("value"));
CharacterUtils.appendToImportLog(log, "</br>Set id: " + character.getId());
}
// Name:
if (!((Element) element.getElementsByTagName("name").item(0)).getAttribute("value").isEmpty()) {
character.setName(new NameTriplet(((Element) element.getElementsByTagName("name").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set name: " + ((Element) element.getElementsByTagName("name").item(0)).getAttribute("value"));
} else {
Element nameElement = ((Element) element.getElementsByTagName("name").item(0));
character.setName(new NameTriplet(nameElement.getAttribute("nameMasculine"), nameElement.getAttribute("nameAndrogynous"), nameElement.getAttribute("nameFeminine")));
}
// Surname:
if (element.getElementsByTagName("surname") != null && element.getElementsByTagName("surname").getLength() > 0) {
character.setSurname(((Element) element.getElementsByTagName("surname").item(0)).getAttribute("value"));
CharacterUtils.appendToImportLog(log, "</br>Set surname: " + ((Element) element.getElementsByTagName("surname").item(0)).getAttribute("value"));
}
// Level:
character.setLevel(Integer.valueOf(((Element) element.getElementsByTagName("level").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set level: " + Integer.valueOf(((Element) element.getElementsByTagName("level").item(0)).getAttribute("value")));
// Sexual Orientation:
if (element.getElementsByTagName("sexualOrientation").getLength() != 0) {
if (!((Element) element.getElementsByTagName("sexualOrientation").item(0)).getAttribute("value").equals("null")) {
character.setSexualOrientation(SexualOrientation.valueOf(((Element) element.getElementsByTagName("sexualOrientation").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set Sexual Orientation: " + SexualOrientation.valueOf(((Element) element.getElementsByTagName("sexualOrientation").item(0)).getAttribute("value")));
} else {
character.setSexualOrientation(SexualOrientation.AMBIPHILIC);
CharacterUtils.appendToImportLog(log, "</br>Set Sexual Orientation: " + SexualOrientation.AMBIPHILIC);
}
}
if (element.getElementsByTagName("description").getLength() != 0) {
character.setDescription(((Element) element.getElementsByTagName("description").item(0)).getAttribute("value"));
CharacterUtils.appendToImportLog(log, "</br>Set description");
}
if (element.getElementsByTagName("playerPetName").getLength() != 0) {
String petName = ((Element) element.getElementsByTagName("playerPetName").item(0)).getAttribute("value");
character.setPlayerPetName(petName);
CharacterUtils.appendToImportLog(log, "</br>Set playerPetName: " + petName);
}
if (element.getElementsByTagName("playerKnowsName").getLength() != 0) {
character.setPlayerKnowsName(Boolean.valueOf(((Element) element.getElementsByTagName("playerKnowsName").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set playerKnowsName: " + character.isPlayerKnowsName());
}
if (element.getElementsByTagName("history").getLength() != 0) {
try {
character.setHistory(History.valueOf(((Element) element.getElementsByTagName("history").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set history: " + character.getHistory());
} catch (Exception ex) {
character.setHistory(History.STUDENT);
CharacterUtils.appendToImportLog(log, "</br>History import failed. Set history to: " + character.getHistory());
}
}
if (element.getElementsByTagName("personality").getLength() != 0) {
String personality = ((Element) element.getElementsByTagName("personality").item(0)).getAttribute("value");
if (personality.equals("AIR_SOCIALABLE")) {
personality = "AIR_SOCIABLE";
}
character.setPersonality(Personality.valueOf(personality));
CharacterUtils.appendToImportLog(log, "</br>Set personality: " + character.getPersonality());
}
if (element.getElementsByTagName("obedience").getLength() != 0) {
character.setObedience(Float.valueOf(((Element) element.getElementsByTagName("obedience").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set obedience: " + character.getObedience());
}
boolean setGenderIdentity = false;
if (element.getElementsByTagName("genderIdentity").getLength() != 0) {
try {
if (!((Element) element.getElementsByTagName("genderIdentity").item(0)).getAttribute("value").equals("null")) {
character.setGenderIdentity(Gender.valueOf(((Element) element.getElementsByTagName("genderIdentity").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set genderIdentity: " + character.getGenderIdentity());
setGenderIdentity = true;
}
} catch (Exception ex) {
}
}
int extraLevelUpPoints = 0;
// If there is a version number, attributes should be working correctly:
if (element.getElementsByTagName("version").item(0) != null) {
nodes = parentElement.getElementsByTagName("attributes");
Element attElement = (Element) nodes.item(0);
for (int i = 0; i < attElement.getElementsByTagName("attribute").getLength(); i++) {
Element e = ((Element) attElement.getElementsByTagName("attribute").item(i));
try {
if (e.getAttribute("type").equals("CORRUPTION")) {
character.setAttribute(Attribute.MAJOR_CORRUPTION, Float.valueOf(e.getAttribute("value")), false);
} else if (e.getAttribute("type").equals("STRENGTH") || e.getAttribute("type").equals("MAJOR_STRENGTH")) {
character.setAttribute(Attribute.MAJOR_PHYSIQUE, Float.valueOf(e.getAttribute("value")), false);
} else {
if (!version.isEmpty() && Main.isVersionOlderThan(version, "0.2.0")) {
Attribute att = Attribute.valueOf(e.getAttribute("type"));
switch(att) {
case DAMAGE_FIRE:
case DAMAGE_ICE:
case DAMAGE_LUST:
case DAMAGE_PHYSICAL:
case DAMAGE_POISON:
case DAMAGE_SPELLS:
character.setAttribute(att, Float.valueOf(e.getAttribute("value")) - 100, false);
break;
default:
character.setAttribute(att, Float.valueOf(e.getAttribute("value")), false);
break;
}
} else {
character.setAttribute(Attribute.valueOf(e.getAttribute("type")), Float.valueOf(e.getAttribute("value")), false);
}
}
CharacterUtils.appendToImportLog(log, "</br>Set Attribute: " + Attribute.valueOf(e.getAttribute("type")).getName() + " to " + Float.valueOf(e.getAttribute("value")));
} catch (IllegalArgumentException ex) {
}
}
} else {
extraLevelUpPoints = (Integer.valueOf(((Element) element.getElementsByTagName("level").item(0)).getAttribute("value")) * 5);
CharacterUtils.appendToImportLog(log, "</br>Old character version. Extra LevelUpPoints set to: " + (Integer.valueOf(((Element) element.getElementsByTagName("level").item(0)).getAttribute("value")) * 5));
}
if (element.getElementsByTagName("health").getLength() != 0) {
character.setHealth(Float.valueOf(((Element) element.getElementsByTagName("health").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set health: " + character.getHealth());
}
if (element.getElementsByTagName("mana").getLength() != 0) {
character.setMana(Float.valueOf(((Element) element.getElementsByTagName("mana").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set mana: " + character.getMana());
}
nodes = parentElement.getElementsByTagName("playerKnowsAreas");
Element knowsElement = (Element) nodes.item(0);
if (knowsElement != null) {
for (int i = 0; i < knowsElement.getElementsByTagName("area").getLength(); i++) {
Element e = ((Element) knowsElement.getElementsByTagName("area").item(i));
try {
character.getPlayerKnowsAreas().add(CoverableArea.valueOf(e.getAttribute("type")));
CharacterUtils.appendToImportLog(log, "</br>Added knows area: " + CoverableArea.valueOf(e.getAttribute("type")).getName());
} catch (IllegalArgumentException ex) {
}
}
}
nodes = parentElement.getElementsByTagName("playerCore");
if (nodes.getLength() > 0) {
// Old version support:
character.setPerkPoints((Integer.valueOf(((Element) element.getElementsByTagName("level").item(0)).getAttribute("value"))) - 1);
CharacterUtils.appendToImportLog(log, "</br>Set perkPoints: (TEMP FIX) " + (Integer.valueOf(((Element) element.getElementsByTagName("level").item(0)).getAttribute("value")) - 1));
element = (Element) nodes.item(0);
character.incrementExperience(Integer.valueOf(((Element) element.getElementsByTagName("experience").item(0)).getAttribute("value")), false);
CharacterUtils.appendToImportLog(log, "</br>Set experience: " + Integer.valueOf(((Element) element.getElementsByTagName("experience").item(0)).getAttribute("value")));
} else {
character.incrementExperience(Integer.valueOf(((Element) element.getElementsByTagName("experience").item(0)).getAttribute("value")), false);
CharacterUtils.appendToImportLog(log, "</br>Set experience: " + Integer.valueOf(((Element) element.getElementsByTagName("experience").item(0)).getAttribute("value")));
try {
character.setPerkPoints(Integer.valueOf(((Element) element.getElementsByTagName("perkPoints").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set perkPoints: " + (Integer.valueOf(((Element) element.getElementsByTagName("perkPoints").item(0)).getAttribute("value")) + extraLevelUpPoints));
} catch (Exception ex) {
}
}
// ************** Location Information **************//
nodes = parentElement.getElementsByTagName("locationInformation");
element = (Element) nodes.item(0);
if (element != null) {
WorldType worldType = WorldType.valueOf(((Element) element.getElementsByTagName("worldLocation").item(0)).getAttribute("value"));
if ((worldType == WorldType.DOMINION || worldType == WorldType.SUBMISSION || worldType == WorldType.HARPY_NEST) && Main.isVersionOlderThan(version, "0.2.1.5")) {
PlaceType placeType = PlaceType.DOMINION_BACK_ALLEYS;
if (character.isPlayer()) {
if (worldType == WorldType.DOMINION) {
placeType = PlaceType.DOMINION_AUNTS_HOME;
} else if (worldType == WorldType.SUBMISSION) {
placeType = PlaceType.SUBMISSION_ENTRANCE;
} else {
placeType = PlaceType.HARPY_NESTS_ENTRANCE_ENFORCER_POST;
}
} else {
if (character instanceof DominionAlleywayAttacker) {
placeType = PlaceType.DOMINION_BACK_ALLEYS;
} else if (character instanceof DominionSuccubusAttacker) {
placeType = PlaceType.DOMINION_DARK_ALLEYS;
} else if (character instanceof Cultist) {
placeType = PlaceType.DOMINION_STREET;
} else if (character instanceof ReindeerOverseer) {
placeType = PlaceType.DOMINION_STREET;
} else if (character instanceof SubmissionAttacker) {
placeType = PlaceType.SUBMISSION_TUNNELS;
} else if (character instanceof HarpyNestsAttacker) {
placeType = PlaceType.HARPY_NESTS_WALKWAYS;
} else if (character instanceof HarpyBimbo || character instanceof HarpyBimboCompanion) {
placeType = PlaceType.HARPY_NESTS_HARPY_NEST_YELLOW;
} else if (character instanceof HarpyDominant || character instanceof HarpyDominantCompanion) {
placeType = PlaceType.HARPY_NESTS_HARPY_NEST_RED;
} else if (character instanceof HarpyNympho || character instanceof HarpyNymphoCompanion) {
placeType = PlaceType.HARPY_NESTS_HARPY_NEST_PINK;
} else if (character instanceof Scarlett || character instanceof Alexa) {
placeType = PlaceType.HARPY_NESTS_ALEXAS_NEST;
}
}
character.setLocation(worldType, Main.game.getWorlds().get(worldType).getRandomUnoccupiedCell(placeType).getLocation(), true);
} else {
character.setLocation(worldType, new Vector2i(Integer.valueOf(((Element) element.getElementsByTagName("location").item(0)).getAttribute("x")), Integer.valueOf(((Element) element.getElementsByTagName("location").item(0)).getAttribute("y"))), false);
character.setHomeLocation(WorldType.valueOf(((Element) element.getElementsByTagName("homeWorldLocation").item(0)).getAttribute("value")), new Vector2i(Integer.valueOf(((Element) element.getElementsByTagName("homeLocation").item(0)).getAttribute("x")), Integer.valueOf(((Element) element.getElementsByTagName("homeLocation").item(0)).getAttribute("y"))));
}
} else {
character.setLocation(new Vector2i(0, 0));
}
// ************** Body **************//
character.body = Body.loadFromXML(log, (Element) parentElement.getElementsByTagName("body").item(0), doc);
if (!setGenderIdentity) {
character.setGenderIdentity(character.getGender());
}
// ************** Inventory **************//
character.resetInventory();
nodes = parentElement.getElementsByTagName("characterInventory");
element = (Element) nodes.item(0);
if (element != null) {
character.inventory = CharacterInventory.loadFromXML(element, doc);
for (AbstractClothing clothing : character.getClothingCurrentlyEquipped()) {
character.applyEquipClothingEffects(clothing);
}
if (character.getMainWeapon() != null) {
for (Entry<Attribute, Integer> e : character.getMainWeapon().getAttributeModifiers().entrySet()) {
character.incrementBonusAttribute(e.getKey(), e.getValue());
}
}
if (character.getOffhandWeapon() != null) {
for (Entry<Attribute, Integer> e : character.getOffhandWeapon().getAttributeModifiers().entrySet()) {
character.incrementBonusAttribute(e.getKey(), e.getValue());
}
}
} else {
CharacterCreation.getDressed(character, false);
}
// ************** Attributes **************//
// Core attributes are set in the first section.
// Potion attributes:
nodes = parentElement.getElementsByTagName("potionAttributes");
Element attElement = (Element) nodes.item(0);
if (attElement != null) {
for (int i = 0; i < attElement.getElementsByTagName("attribute").getLength(); i++) {
Element e = ((Element) attElement.getElementsByTagName("attribute").item(i));
try {
character.addPotionEffect(Attribute.valueOf(e.getAttribute("type")), Float.valueOf(e.getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set Potion Attribute: " + Attribute.valueOf(e.getAttribute("type")).getName() + " to " + Float.valueOf(e.getAttribute("value")));
} catch (IllegalArgumentException ex) {
}
}
}
// Perks:
nodes = parentElement.getElementsByTagName("traits");
element = (Element) nodes.item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("perk").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("perk").item(i));
character.addTrait(Perk.valueOf(e.getAttribute("type")));
CharacterUtils.appendToImportLog(log, "</br>Added Equipped Perk: " + Perk.valueOf(e.getAttribute("type")).getName(character));
}
}
nodes = parentElement.getElementsByTagName("perks");
element = (Element) nodes.item(0);
if (element != null) {
if (!version.isEmpty() && Main.isVersionOlderThan(version, "0.2.0.2")) {
int points = character.getPerkPointsAtLevel(character.getLevel());
character.setPerkPoints(points);
character.clearTraits();
CharacterUtils.appendToImportLog(log, "</br>Added Perk Points: " + points);
} else {
for (int i = 0; i < element.getElementsByTagName("perk").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("perk").item(i));
String type = e.getAttribute("type");
type = type.replaceAll("STRENGTH_", "PHYSIQUE_");
try {
character.addPerk(Integer.valueOf(e.getAttribute("row")), Perk.valueOf(type));
CharacterUtils.appendToImportLog(log, "</br>Added Perk: " + Perk.valueOf(type).getName(character));
} catch (Exception ex) {
}
}
}
}
// Fetishes:
nodes = parentElement.getElementsByTagName("fetishes");
element = (Element) nodes.item(0);
if (element != null) {
if (element.getElementsByTagName("fetish").item(0) != null && !((Element) element.getElementsByTagName("fetish").item(0)).getAttribute("value").isEmpty()) {
for (int i = 0; i < element.getElementsByTagName("fetish").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("fetish").item(i));
try {
if (e.getAttribute("type").equals("FETISH_NON_CON")) {
// Support for old non-con fetish:
character.incrementEssenceCount(TFEssence.ARCANE, 5);
CharacterUtils.appendToImportLog(log, "</br>Added refund for old non-con fetish. (+5 arcane essences)");
} else if (Fetish.valueOf(e.getAttribute("type")) != null) {
if (Boolean.valueOf(((Element) element.getElementsByTagName("fetish").item(0)).getAttribute("value"))) {
character.addFetish(Fetish.valueOf(e.getAttribute("type")));
CharacterUtils.appendToImportLog(log, "</br>Added Fetish: " + Fetish.valueOf(e.getAttribute("type")).getName(character));
}
}
} catch (IllegalArgumentException ex) {
}
}
} else {
for (int i = 0; i < element.getElementsByTagName("fetish").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("fetish").item(i));
try {
if (e.getAttribute("type").equals("FETISH_NON_CON")) {
// Support for old non-con fetish:
character.incrementEssenceCount(TFEssence.ARCANE, 5);
CharacterUtils.appendToImportLog(log, "</br>Added refund for old non-con fetish. (+5 arcane essences)");
} else if (Fetish.valueOf(e.getAttribute("type")) != null) {
character.addFetish(Fetish.valueOf(e.getAttribute("type")));
CharacterUtils.appendToImportLog(log, "</br>Added Fetish: " + Fetish.valueOf(e.getAttribute("type")).getName(character));
}
} catch (IllegalArgumentException ex) {
}
}
}
}
nodes = parentElement.getElementsByTagName("fetishDesire");
element = (Element) nodes.item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("entry").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("entry").item(i));
try {
character.setFetishDesire(Fetish.valueOf(e.getAttribute("fetish")), FetishDesire.valueOf(e.getAttribute("desire")));
CharacterUtils.appendToImportLog(log, "</br>Set fetish desire: " + e.getAttribute("fetish") + " , " + e.getAttribute("desire"));
} catch (IllegalArgumentException ex) {
}
}
}
nodes = parentElement.getElementsByTagName("fetishExperience");
element = (Element) nodes.item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("entry").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("entry").item(i));
try {
character.setFetishExperience(Fetish.valueOf(e.getAttribute("fetish")), Integer.valueOf(e.getAttribute("experience")));
CharacterUtils.appendToImportLog(log, "</br>Set fetish experience: " + e.getAttribute("fetish") + " , " + e.getAttribute("experience"));
} catch (IllegalArgumentException ex) {
}
}
}
// Status Effects:
nodes = parentElement.getElementsByTagName("statusEffects");
element = (Element) nodes.item(0);
for (int i = 0; i < element.getElementsByTagName("statusEffect").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("statusEffect").item(i));
try {
if (Integer.valueOf(e.getAttribute("value")) != -1) {
StatusEffect effect = StatusEffect.valueOf(e.getAttribute("type"));
if (!noPregnancy || (effect != StatusEffect.PREGNANT_0 && effect != StatusEffect.PREGNANT_1 && effect != StatusEffect.PREGNANT_2 && effect != StatusEffect.PREGNANT_3)) {
character.addStatusEffect(effect, Integer.valueOf(e.getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Added Status Effect: " + StatusEffect.valueOf(e.getAttribute("type")).getName(character) + " (" + Integer.valueOf(e.getAttribute("value")) + " minutes)");
}
}
} catch (IllegalArgumentException ex) {
}
}
// ************** Relationships **************//
nodes = parentElement.getElementsByTagName("characterRelationships");
element = (Element) nodes.item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("relationship").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("relationship").item(i));
character.setAffection(e.getAttribute("character"), Float.valueOf(e.getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set Relationship: " + e.getAttribute("character") + " , " + Float.valueOf(e.getAttribute("value")));
}
}
if (!noPregnancy) {
nodes = parentElement.getElementsByTagName("pregnancy");
Element pregnancyElement = (Element) nodes.item(0);
if (pregnancyElement != null) {
CharacterUtils.appendToImportLog(log, "</br></br>Pregnancies:");
character.setTimeProgressedToFinalPregnancyStage(Integer.valueOf(pregnancyElement.getAttribute("timeProgressedToFinalPregnancyStage")));
nodes = pregnancyElement.getElementsByTagName("potentialPartnersAsMother");
element = (Element) nodes.item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("pregnancyPossibility").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("pregnancyPossibility").item(i));
character.getPotentialPartnersAsMother().add(PregnancyPossibility.loadFromXML(e, doc));
CharacterUtils.appendToImportLog(log, "</br>Added Pregnancy Possibility as mother.");
}
}
nodes = pregnancyElement.getElementsByTagName("potentialPartnersAsFather");
element = (Element) nodes.item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("pregnancyPossibility").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("pregnancyPossibility").item(i));
character.getPotentialPartnersAsFather().add(PregnancyPossibility.loadFromXML(e, doc));
CharacterUtils.appendToImportLog(log, "</br>Added Pregnancy Possibility as father.");
}
}
nodes = pregnancyElement.getElementsByTagName("pregnantLitter");
element = (Element) ((Element) nodes.item(0)).getElementsByTagName("litter").item(0);
if (element != null) {
character.setPregnantLitter(Litter.loadFromXML(element, doc));
CharacterUtils.appendToImportLog(log, "</br>Added Pregnant litter.");
}
nodes = pregnancyElement.getElementsByTagName("birthedLitters");
element = (Element) nodes.item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("litter").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("litter").item(i));
character.getLittersBirthed().add(Litter.loadFromXML(e, doc));
CharacterUtils.appendToImportLog(log, "</br>Added litter birthed.");
}
}
nodes = pregnancyElement.getElementsByTagName("littersFathered");
element = (Element) nodes.item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("litter").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("litter").item(i));
character.getLittersFathered().add(Litter.loadFromXML(e, doc));
CharacterUtils.appendToImportLog(log, "</br>Added litter fathered.");
}
}
}
}
// ************** Family **************//
nodes = parentElement.getElementsByTagName("family");
Element familyElement = (Element) nodes.item(0);
if (familyElement != null) {
character.setMother(((Element) familyElement.getElementsByTagName("motherId").item(0)).getAttribute("value"));
character.setFather(((Element) familyElement.getElementsByTagName("fatherId").item(0)).getAttribute("value"));
character.setDayOfConception(Integer.valueOf(((Element) familyElement.getElementsByTagName("dayOfConception").item(0)).getAttribute("value")));
character.setDayOfBirth(Integer.valueOf(((Element) familyElement.getElementsByTagName("dayOfBirth").item(0)).getAttribute("value")));
}
// ************** Slavery **************//
nodes = parentElement.getElementsByTagName("slavery");
Element slaveryElement = (Element) nodes.item(0);
if (slaveryElement != null) {
for (int i = 0; i < ((Element) slaveryElement.getElementsByTagName("slavesOwned").item(0)).getElementsByTagName("slave").getLength(); i++) {
Element e = ((Element) slaveryElement.getElementsByTagName("slave").item(i));
if (!e.getAttribute("id").equals("NOT_SET")) {
character.getSlavesOwned().add(e.getAttribute("id"));
CharacterUtils.appendToImportLog(log, "</br>Added owned slave: " + e.getAttribute("id"));
}
}
character.setOwner(((Element) slaveryElement.getElementsByTagName("owner").item(0)).getAttribute("value"));
CharacterUtils.appendToImportLog(log, "</br>Set owner: " + character.getOwnerId());
character.setSlaveJob(SlaveJob.valueOf(((Element) slaveryElement.getElementsByTagName("slaveJob").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set slave job: " + character.getSlaveJob());
for (int i = 0; i < ((Element) slaveryElement.getElementsByTagName("slaveJobSettings").item(0)).getElementsByTagName("setting").getLength(); i++) {
Element e = ((Element) slaveryElement.getElementsByTagName("setting").item(i));
SlaveJobSetting setting = SlaveJobSetting.valueOf(e.getAttribute("value"));
character.addSlaveJobSettings(setting);
CharacterUtils.appendToImportLog(log, "</br>Added slave job setting: " + setting);
}
// Clear settings first:
for (SlavePermission key : character.getSlavePermissionSettings().keySet()) {
character.getSlavePermissionSettings().get(key).clear();
}
for (int i = 0; i < ((Element) slaveryElement.getElementsByTagName("slavePermissionSettings").item(0)).getElementsByTagName("permission").getLength(); i++) {
Element e = ((Element) slaveryElement.getElementsByTagName("permission").item(i));
SlavePermission slavePermission = SlavePermission.valueOf(e.getAttribute("type"));
for (int j = 0; j < e.getElementsByTagName("setting").getLength(); j++) {
Element e2 = ((Element) e.getElementsByTagName("setting").item(j));
SlavePermissionSetting setting = SlavePermissionSetting.valueOf(e2.getAttribute("value"));
character.addSlavePermissionSetting(slavePermission, setting);
CharacterUtils.appendToImportLog(log, "</br>Added slave permission setting: " + slavePermission + ", " + setting);
}
}
Element workHourElement = ((Element) slaveryElement.getElementsByTagName("slaveWorkHours").item(0));
for (int i = 0; i < character.workHours.length; i++) {
character.workHours[i] = Boolean.valueOf(workHourElement.getAttribute("hour" + String.valueOf(i)));
CharacterUtils.appendToImportLog(log, "</br>Set work hour: " + i + ", " + character.workHours[i]);
}
}
// ************** Sex Stats **************//
nodes = parentElement.getElementsByTagName("sexStats");
Element sexStatsElement = (Element) nodes.item(0);
if (sexStatsElement.getElementsByTagName("sexConsensualCount").getLength() != 0) {
character.setSexConsensualCount(Integer.valueOf(((Element) sexStatsElement.getElementsByTagName("sexConsensualCount").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set consensual sex count: " + character.getSexConsensualCount());
}
if (sexStatsElement.getElementsByTagName("sexAsSubCount").getLength() != 0) {
character.setSexAsSubCount(Integer.valueOf(((Element) sexStatsElement.getElementsByTagName("sexAsSubCount").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set sub sex count: " + character.getSexAsSubCount());
}
if (sexStatsElement.getElementsByTagName("sexAsDomCount").getLength() != 0) {
character.setSexAsDomCount(Integer.valueOf(((Element) sexStatsElement.getElementsByTagName("sexAsDomCount").item(0)).getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set dom sex count: " + character.getSexAsDomCount());
}
// Cummed in areas:
element = (Element) ((Element) nodes.item(0)).getElementsByTagName("cummedInAreas").item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("entry").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("entry").item(i));
try {
character.setCummedInArea(OrificeType.valueOf(e.getAttribute("orifice")), Integer.valueOf(e.getAttribute("cumQuantity")));
CharacterUtils.appendToImportLog(log, "</br>Added cummed in area: " + e.getAttribute("orifice") + ", " + Integer.valueOf(e.getAttribute("cumQuantity")) + "ml");
} catch (Exception ex) {
}
}
}
// Cum counts:
element = (Element) ((Element) nodes.item(0)).getElementsByTagName("cumCounts").item(0);
for (int i = 0; i < element.getElementsByTagName("cumCount").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("cumCount").item(i));
try {
for (int it = 0; it < Integer.valueOf(e.getAttribute("count")); it++) {
character.incrementCumCount(new SexType(SexParticipantType.valueOf(e.getAttribute("participantType")), PenetrationType.valueOf(e.getAttribute("penetrationType")), OrificeType.valueOf(e.getAttribute("orificeType"))));
}
CharacterUtils.appendToImportLog(log, "</br>Added cum count:" + e.getAttribute("penetrationType") + " " + e.getAttribute("orificeType") + " x " + Integer.valueOf(e.getAttribute("count")));
} catch (Exception ex) {
}
}
// Sex counts:
element = (Element) ((Element) nodes.item(0)).getElementsByTagName("sexCounts").item(0);
for (int i = 0; i < element.getElementsByTagName("sexCount").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("sexCount").item(i));
try {
for (int it = 0; it < Integer.valueOf(e.getAttribute("count")); it++) {
character.incrementSexCount(new SexType(SexParticipantType.valueOf(e.getAttribute("participantType")), PenetrationType.valueOf(e.getAttribute("penetrationType")), OrificeType.valueOf(e.getAttribute("orificeType"))));
}
CharacterUtils.appendToImportLog(log, "</br>Added sex count:" + e.getAttribute("penetrationType") + " " + e.getAttribute("orificeType") + " x " + Integer.valueOf(e.getAttribute("count")));
} catch (Exception ex) {
}
}
// Virginity losses:
element = (Element) ((Element) nodes.item(0)).getElementsByTagName("virginityTakenBy").item(0);
for (int i = 0; i < element.getElementsByTagName("virginity").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("virginity").item(i));
try {
character.setVirginityLoss(new SexType(SexParticipantType.valueOf(e.getAttribute("participantType")), PenetrationType.valueOf(e.getAttribute("penetrationType")), OrificeType.valueOf(e.getAttribute("orificeType"))), e.getAttribute("takenBy"));
CharacterUtils.appendToImportLog(log, "</br>Added virginity loss:" + e.getAttribute("penetrationType") + " " + e.getAttribute("orificeType") + " (taken by:" + e.getAttribute("takenBy") + ")");
} catch (Exception ex) {
}
}
element = (Element) ((Element) nodes.item(0)).getElementsByTagName("sexPartnerMap").item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("id").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("id").item(i));
character.sexPartnerMap.put(e.getAttribute("value"), new HashMap<>());
for (int j = 0; j < element.getElementsByTagName("entry").getLength(); j++) {
Element e2 = ((Element) element.getElementsByTagName("entry").item(j));
try {
character.sexPartnerMap.get(e.getAttribute("value")).put(new SexType(SexParticipantType.valueOf(e.getAttribute("participantType")), PenetrationType.valueOf(e2.getAttribute("penetrationType")), OrificeType.valueOf(e2.getAttribute("orificeType"))), Integer.valueOf(e2.getAttribute("count")));
CharacterUtils.appendToImportLog(log, "</br>Added sex tracking: " + e.getAttribute("value") + " " + e2.getAttribute("penetrationType") + "/" + e2.getAttribute("orificeType") + " " + Integer.valueOf(e2.getAttribute("count")));
} catch (Exception ex) {
}
}
}
}
// ************** Addictions **************//
// Element characterAddictions = doc.createElement("addictions");
// properties.appendChild(characterAddictions);
// for(Addiction add : addictions) {
// add.saveAsXML(characterAddictions, doc);
// }
//
// CharacterUtils.addAttribute(doc, characterAddictions, "alcoholLevel", String.valueOf(alcoholLevel));
//
// Element psychoactives = doc.createElement("psychoactiveFluids");
// properties.appendChild(psychoactives);
// for(FluidType ft : this.getPsychoactiveFluidsIngested()) {
// Element element = doc.createElement("fluid");
// psychoactives.appendChild(element);
// CharacterUtils.addAttribute(doc, element, "value", ft.toString());
// }
nodes = parentElement.getElementsByTagName("addictionsCore");
Element addictionsElement = (Element) nodes.item(0);
if (addictionsElement != null) {
if (!addictionsElement.getAttribute("alcoholLevel").isEmpty()) {
try {
character.alcoholLevel = (Float.valueOf(addictionsElement.getAttribute("alcoholLevel")));
} catch (Exception ex) {
}
}
element = (Element) addictionsElement.getElementsByTagName("psychoactiveFluids").item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("fluid").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("fluid").item(i));
character.addPsychoactiveFluidIngested(FluidType.valueOf(e.getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Added psychoactive fluid:" + e.getAttribute("value"));
}
}
// Old addiction support: //TODO test
element = (Element) addictionsElement.getElementsByTagName("addictionSatisfiedMap").item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("addiction").getLength(); i++) {
Element e = ((Element) element.getElementsByTagName("addiction").item(i));
character.setLastTimeSatisfiedAddiction(FluidType.valueOf(e.getAttribute("type")), Long.valueOf(e.getAttribute("value")));
CharacterUtils.appendToImportLog(log, "</br>Set satisfied time:" + e.getAttribute("type") + " " + e.getAttribute("value"));
}
}
// New addiction:
element = (Element) addictionsElement.getElementsByTagName("addictions").item(0);
if (element != null) {
for (int i = 0; i < element.getElementsByTagName("addiction").getLength(); i++) {
try {
character.addAddiction(Addiction.loadFromXML(log, ((Element) element.getElementsByTagName("addiction").item(i)), doc));
} catch (Exception ex) {
}
}
}
}
}
use of com.lilithsthrone.game.inventory.clothing.AbstractClothing in project liliths-throne-public by Innoxia.
the class EnchantmentDialogue method inventoryView.
private static String inventoryView() {
inventorySB.setLength(0);
ItemEffect effect = new ItemEffect(ingredient.getEnchantmentEffect(), primaryMod, secondaryMod, potency, limit);
// Primary mods:
inventorySB.append("<div class='container-half-width' style='padding-bottom:0;'>");
for (TFModifier tfMod : ingredient.getEnchantmentEffect().getPrimaryModifiers()) {
inventorySB.append("<div class='modifier-icon " + tfMod.getRarity().getName() + "' style='width:11.5%;'>" + "<div class='modifier-icon-content'>" + tfMod.getSVGString() + "</div>" + "<div class='overlay' id='MOD_PRIMARY_" + tfMod.hashCode() + "'></div>" + "</div>");
}
for (int i = 32; i > ingredient.getEnchantmentEffect().getPrimaryModifiers().size(); i--) {
inventorySB.append("<div class='modifier-icon empty' style='width:11.5%;'></div>");
}
inventorySB.append("<div class='container-full-width'>" + "<div class='container-half-width' style='width:78%; margin:0 1%; text-align:center; line-height:100vh;'>" + "<h5 style='margin:0; padding:0;'>Primary Modifier</h5>" + "</div>" + "<div class='container-half-width' style='width:18%; margin:0 1%;'>");
if (primaryMod != null) {
inventorySB.append("<div class='modifier-icon " + primaryMod.getRarity().getName() + "' style='width:100%; margin:0;'>" + "<div class='modifier-icon-content'>" + primaryMod.getSVGString() + "</div>" + "<div class='overlay' id='MOD_PRIMARY_ENCHANTING'></div>" + "</div>");
} else {
inventorySB.append("<div class='modifier-icon empty' style='width:30%; margin:0 1%;'>" + "<div class='overlay' style='cursor:default;' id='MOD_PRIMARY_ENCHANTING'></div>" + "</div>");
}
inventorySB.append("</div></div>");
inventorySB.append("</div>");
// Secondary mods:
inventorySB.append("<div class='container-half-width' style='padding-bottom:0;'>");
for (TFModifier tfMod : ingredient.getEnchantmentEffect().getSecondaryModifiers(primaryMod)) {
inventorySB.append("<div class='modifier-icon " + tfMod.getRarity().getName() + "' style='width:11.5%;'>" + "<div class='modifier-icon-content'>" + tfMod.getSVGString() + "</div>" + "<div class='overlay' id='MOD_SECONDARY_" + tfMod.hashCode() + "'></div>" + "</div>");
}
for (int i = 32; i > ingredient.getEnchantmentEffect().getSecondaryModifiers(primaryMod).size(); i--) {
inventorySB.append("<div class='modifier-icon empty' style='width:11.5%;'></div>");
}
inventorySB.append("<div class='container-full-width'>" + "<div class='container-half-width' style='width:18%; margin:0 1%;'>");
if (secondaryMod != null) {
inventorySB.append("<div class='modifier-icon " + secondaryMod.getRarity().getName() + "' style='width:100%; margin:0;'>" + "<div class='modifier-icon-content'>" + secondaryMod.getSVGString() + "</div>" + "<div class='overlay' id='MOD_SECONDARY_ENCHANTING'></div>" + "</div>");
} else {
inventorySB.append("<div class='modifier-icon empty' style='width:30%; margin:0 1%;'>" + "<div class='overlay' style='cursor:default;' id='MOD_SECONDARY_ENCHANTING'></div>" + "</div>");
}
inventorySB.append("</div>" + "<div class='container-half-width' style='width:78%; margin:0 1%; text-align:center; line-height:100vh;'>" + "<h5 style='margin:0; padding:0;'>Secondary Modifier</h5>" + "</div>" + "</div>");
inventorySB.append("</div>");
// Potency:
inventorySB.append("<div class='container-full-width' style='text-align:center; padding:8px 0; margin-top:0;'>");
for (TFPotency potency : TFPotency.values()) {
inventorySB.append("<div class='normal-button" + (ingredient.getEnchantmentEffect().getPotencyModifiers(primaryMod, secondaryMod).contains(potency) ? "" : " disabled") + (EnchantmentDialogue.potency == potency ? " selected" : "") + "' id='POTENCY_" + potency + "'" + " style='" + (EnchantmentDialogue.potency == potency ? "color:" + potency.getColour().toWebHexString() + ";" : "") + " margin:0 1%; width:14%;'>" + potency.getName() + "</div>");
}
inventorySB.append("</div>");
// Limits:
int ingredientLimit = ingredient.getEnchantmentEffect().getLimits(primaryMod, secondaryMod);
if (ingredientLimit != 0) {
inventorySB.append("<div class='container-full-width' style='text-align:center; padding:8px 0; margin-top:0;'>" + "<div style='float:left; width:14.6%; margin:0 1%; padding:0;'>" + "<div class='normal-button" + (limit == 0 ? " disabled" : "") + "' id='LIMIT_MINIMUM' style='width:100%;'>Limit Min.</div>" + "</div>" + "<div style='float:left; width:14.6%; margin:0 1%; padding:0;'>" + "<div class='normal-button" + (limit == 0 ? " disabled" : "") + "' id='LIMIT_DECREASE_LARGE' style='width:100%;'>Limit--</div>" + "</div>" + "<div style='float:left; width:14.6%; margin:0 1%; padding:0;'>" + "<div class='normal-button" + (limit == 0 ? " disabled" : "") + "' id='LIMIT_DECREASE' style='width:100%;'>Limit-</div>" + "</div>" + "<div style='float:left; width:14.6%; margin:0 1%; padding:0;'>" + "<div class='normal-button" + (limit == ingredientLimit ? " disabled" : "") + "' id='LIMIT_INCREASE' style='width:100%;'>Limit+</div>" + "</div>" + "<div style='float:left; width:14.6%; margin:0 1%; padding:0;'>" + "<div class='normal-button" + (limit == ingredientLimit ? " disabled" : "") + "' id='LIMIT_INCREASE_LARGE' style='width:100%;'>Limit++</div>" + "</div>" + "<div style='float:left; width:14.6%; margin:0 1%; padding:0;'>" + "<div class='normal-button" + (limit == ingredientLimit ? " disabled" : "") + "' id='LIMIT_MAXIMUM' style='width:100%;'>Limit Max.</div>" + "</div>" + "</div>");
}
// Effect:
inventorySB.append("<div class='container-full-width' style='text-align:center; padding:8px 0; margin-top:0;'>");
inventorySB.append("<div class='container-half-width' style='width:28%; margin:0 1%;'>" + "<b style='color:" + ingredient.getRelatedEssence().getColour().toWebHexString() + ";'>Effect to be added:</b>" + "</div>");
inventorySB.append("<div class='container-half-width' style='width:48%; margin:0 1%;'>");
int i = 0;
if (effect.getEffectsDescription(Main.game.getPlayer(), Main.game.getPlayer()) != null) {
if (i > 0) {
inventorySB.append("</br>");
}
for (String s : effect.getEffectsDescription(Main.game.getPlayer(), Main.game.getPlayer())) {
inventorySB.append("<b>" + Util.capitaliseSentence(s) + "</b>");
}
i++;
} else {
inventorySB.append("<b>-</b>");
}
inventorySB.append("</div>");
inventorySB.append("<div class='container-half-width' style='width:18%; margin:0 1%;'>");
if (effects.size() >= ingredient.getEnchantmentLimit() || ingredient.getEnchantmentEffect().getEffectsDescription(primaryMod, secondaryMod, potency, limit, Main.game.getPlayer(), Main.game.getPlayer()) == null || ingredient.getEnchantmentEffect().getEffectsDescription(primaryMod, secondaryMod, potency, limit, Main.game.getPlayer(), Main.game.getPlayer()).isEmpty()) {
inventorySB.append("<div class='normal-button disabled' style='width:100%; margin:auto 0;'>" + "<b>Add</b> | " + UtilText.formatAsEssencesUncoloured(effect.getCost(), "b", false) + "<div class='overlay no-pointer' id='ENCHANT_ADD_BUTTON_DISABLED'></div>" + "</div>");
} else {
inventorySB.append("<div class='normal-button' style='width:100%; margin:auto 0;'>" + "<b style='color:" + Colour.GENERIC_GOOD.toWebHexString() + ";'>Add</b> | " + UtilText.formatAsEssences(effect.getCost(), "b", false) + "<div class='overlay' id='ENCHANT_ADD_BUTTON'></div>" + "</div>");
}
inventorySB.append("</div>");
inventorySB.append("</div>");
// Item crafting:
inventorySB.append("<div class='container-full-width' style='text-align:center; padding:8px 0; margin-top:0;'>");
int count = 1;
if (ingredient instanceof AbstractItem) {
count = Main.game.getPlayer().getItemCount((AbstractItem) ingredient);
} else if (ingredient instanceof AbstractClothing) {
count = Main.game.getPlayer().getClothingCount((AbstractClothing) ingredient);
} else if (ingredient instanceof AbstractWeapon) {
count = Main.game.getPlayer().getWeaponCount((AbstractWeapon) ingredient);
}
inventorySB.append("<div class='container-half-width' style='width:18%; margin:0 1%; text-align:center;'>");
inventorySB.append("<b>Input</b>" + "<div class='enchanting-ingredient " + ingredient.getRarity().getName() + "'>" + "<div class='enchanting-ingredient-content'>" + ingredient.getSVGString() + "</div>" + "<div class='overlay' id='INGREDIENT_ENCHANTING'></div>" + "<div class='enchanting-ingredient-count'><b>x" + count + "</b></div>" + "</div>");
inventorySB.append("</div>");
// Effects:
inventorySB.append("<div class='container-half-width' style='width:58%; margin:0 1%;'>");
inventorySB.append("<b>Effects (</b>" + (effects.size() >= ingredient.getEnchantmentLimit() ? "<b style='color:" + Colour.GENERIC_BAD.toWebHexString() + ";'>" : "<b>") + "" + effects.size() + "/" + ingredient.getEnchantmentLimit() + "</b><b>)</b></br>" + "<b>" + Util.capitaliseSentence(EnchantingUtils.getPotionName(ingredient, effects)) + "</b> | Cost: " + UtilText.formatAsEssences(EnchantingUtils.getCost(ingredient, effects), "b", false));
if (effects.isEmpty()) {
inventorySB.append("</br><span style='color:" + Colour.TEXT_GREY.toWebHexString() + ";'>No effects added</span>");
} else {
i = 0;
for (ItemEffect ie : effects) {
for (String s : ie.getEffectsDescription(Main.game.getPlayer(), Main.game.getPlayer())) {
inventorySB.append("<div class='container-full-width' style='background:" + RenderingEngine.getEntryBackgroundColour(i % 2 == 0) + "; width:98%; margin:0 1%; padding:2px;'>" + Util.capitaliseSentence(s) + (ingredient.getEffects().size() > i && ingredient.getEffects().get(i).equals(ie) ? "<div class='normal-button' style='width:64px; height:22px; line-height:22px; font-size:16px; margin:0; padding:0 0 0 4px; float:right; text-align:left;'>" + "<b style='color:" + Colour.GENERIC_BAD.toWebHexString() + ";'>X</b> " + UtilText.formatAsEssences(ie.getCost(), "b", false) + "<div class='overlay' id='DELETE_EFFECT_" + i + "'></div></div>" : "<div class='normal-button' id='DELETE_EFFECT_" + i + "'" + " style='width:22px; height:22px; line-height:22px; font-size:16px; margin:0; padding:0; float:right; color:" + Colour.GENERIC_BAD.toWebHexString() + ";'><b>X</b></div>") + "</div>");
i++;
}
}
}
inventorySB.append("</div>");
inventorySB.append("<div class='container-half-width' style='width:18%; margin:0 1%; text-align:center;'>");
inventorySB.append("<b>Output</b>" + "<div class='enchanting-ingredient " + ingredient.getEnchantmentItemType(effects).getRarity().getName() + "'>" + "<div class='enchanting-ingredient-content'>" + EnchantingUtils.getSVGString(ingredient, effects) + "</div>" + "<div class='overlay' id='OUTPUT_ENCHANTING'></div>" + "</div>");
inventorySB.append("</div>");
inventorySB.append("</div>");
return inventorySB.toString();
}
Aggregations