Program: 171364
Project: 171364
Buggy source:
private void manageMainListeners(){
  document=(Document)webEngine.executeScript("String_Node_Str");
  EventListenerDataMap.put(document,new ArrayList<>());
  String id="String_Node_Str";
  if (flashMessageColour != null && flashMessageText != null) {
    Main.game.flashMessage(flashMessageColour,flashMessageText);
    flashMessageColour=null;
    flashMessageText=null;
  }
  if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
    addEventListener(document,"String_Node_Str","String_Node_Str",copyDialogueButtonListener,false);
    addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
    addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
    addEventListener(document,"String_Node_Str","String_Node_Str",copyInfoListener,false);
  }
  if (Main.game.isInCombat()) {
    for (    StatusEffect se : Main.game.getPlayer().getStatusEffects()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + se)) != null) {
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(se,Main.game.getPlayer());
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",el,false);
      }
    }
    for (    SpecialAttack sa : Main.game.getPlayer().getSpecialAttacks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + sa)) != null) {
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpecialAttack(sa,Main.game.getPlayer());
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",el,false);
      }
    }
    if (Main.game.getPlayer().getMainWeapon() != null) {
      for (      Spell s : Main.game.getPlayer().getMainWeapon().getSpells()) {
        if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,Main.game.getPlayer().getLevel(),Main.game.getPlayer());
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
        }
      }
    }
    if (Main.game.getPlayer().getOffhandWeapon() != null) {
      for (      Spell s : Main.game.getPlayer().getOffhandWeapon().getSpells()) {
        if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,Main.game.getPlayer().getLevel(),Main.game.getPlayer());
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
        }
      }
    }
    for (    StatusEffect se : Combat.getOpponent().getStatusEffects()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + se)) != null) {
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(se,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str" + StatusEffect.COMBAT_HIDDEN)) != null) {
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(StatusEffect.COMBAT_HIDDEN,Combat.getOpponent());
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",el,false);
    }
    for (    Perk p : Combat.getOpponent().getPerks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + p)) != null) {
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setPerk(p,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",el,false);
      }
    }
    for (    Fetish f : Combat.getOpponent().getFetishes()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + f)) != null) {
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setFetish(f,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",el,false);
      }
    }
    for (    SpecialAttack sa : Combat.getOpponent().getSpecialAttacks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + sa)) != null) {
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpecialAttack(sa,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",el,false);
      }
    }
    if (Combat.getOpponent().getMainWeapon() != null)     for (    Spell s : Combat.getOpponent().getMainWeapon().getSpells()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,Combat.getOpponent().getLevel(),Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
      }
    }
    if (Combat.getOpponent().getOffhandWeapon() != null)     for (    Spell s : Combat.getOpponent().getOffhandWeapon().getSpells()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,Combat.getOpponent().getLevel(),Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
      }
    }
    Attribute[] attributes={Attribute.STRENGTH,Attribute.INTELLIGENCE,Attribute.FITNESS,Attribute.CORRUPTION,Attribute.HEALTH_MAXIMUM,Attribute.MANA_MAXIMUM,Attribute.STAMINA_MAXIMUM};
    for (    Attribute a : attributes) {
      if (((EventTarget)document.getElementById("String_Node_Str" + a)) != null) {
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,Main.game.getPlayer());
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",el,false);
      }
      if (((EventTarget)document.getElementById("String_Node_Str" + a)) != null) {
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setOpponentExtraAttributes();
      addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
    }
  }
  if (Main.game.getCurrentDialogueNode() == CharactersPresentDialogue.MENU || Main.game.getCurrentDialogueNode() == PhoneDialogue.CONTACTS) {
    for (    StatusEffect se : CharactersPresentDialogue.characterViewed.getStatusEffects()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + se)) != null) {
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(se,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str" + StatusEffect.COMBAT_HIDDEN)) != null) {
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(StatusEffect.COMBAT_HIDDEN,CharactersPresentDialogue.characterViewed);
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",el,false);
    }
    for (    Perk p : CharactersPresentDialogue.characterViewed.getPerks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + p)) != null) {
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setPerk(p,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",el,false);
      }
    }
    for (    Fetish f : CharactersPresentDialogue.characterViewed.getFetishes()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + f)) != null) {
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setFetish(f,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",el,false);
      }
    }
    for (    SpecialAttack sa : CharactersPresentDialogue.characterViewed.getSpecialAttacks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + sa)) != null) {
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpecialAttack(sa,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",el,false);
      }
    }
    if (CharactersPresentDialogue.characterViewed.getMainWeapon() != null)     for (    Spell s : CharactersPresentDialogue.characterViewed.getMainWeapon().getSpells()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,CharactersPresentDialogue.characterViewed.getLevel(),CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
      }
    }
    if (CharactersPresentDialogue.characterViewed.getOffhandWeapon() != null)     for (    Spell s : CharactersPresentDialogue.characterViewed.getOffhandWeapon().getSpells()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,CharactersPresentDialogue.characterViewed.getLevel(),CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
      }
    }
    Attribute[] attributes={Attribute.STRENGTH,Attribute.INTELLIGENCE,Attribute.FITNESS,Attribute.CORRUPTION,Attribute.HEALTH_MAXIMUM,Attribute.MANA_MAXIMUM,Attribute.STAMINA_MAXIMUM};
    for (    Attribute a : attributes) {
      if (((EventTarget)document.getElementById("String_Node_Str" + a)) != null) {
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,Main.game.getPlayer());
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",el,false);
      }
      if (((EventTarget)document.getElementById("String_Node_Str" + a)) != null) {
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setOpponentExtraAttributes();
      addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
    }
  }
  if (Main.game.isStarted()) {
    id="String_Node_Str";
    InventorySlot[] inventorySlots={InventorySlot.WEAPON_MAIN,InventorySlot.WEAPON_OFFHAND};
    for (    InventorySlot invSlot : inventorySlots) {
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponEquipped(Main.game.getPlayer(),invSlot);
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponEquipped(InventoryDialogue.getInventoryNPC(),invSlot);
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,InventoryDialogue.getInventoryNPC());
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,CharactersPresentDialogue.characterViewed);
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    for (    InventorySlot invSlot : InventorySlot.values()) {
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (invSlot != InventorySlot.WEAPON_MAIN && invSlot != InventorySlot.WEAPON_OFFHAND) {
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingEquipped(Main.game.getPlayer(),invSlot);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,Main.game.getPlayer());
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (invSlot != InventorySlot.WEAPON_MAIN && invSlot != InventorySlot.WEAPON_OFFHAND) {
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingEquipped(InventoryDialogue.getInventoryNPC(),invSlot);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (invSlot != InventorySlot.WEAPON_MAIN && invSlot != InventorySlot.WEAPON_OFFHAND) {
        if (((EventTarget)document.getElementById(id)) != null) {
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,CharactersPresentDialogue.characterViewed);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
    }
    for (    Entry<AbstractWeapon,Integer> entry : Main.game.getPlayer().getMapOfDuplicateWeapons().entrySet()) {
      id="String_Node_Str" + entry.getKey().hashCode();
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponInventory(entry.getKey(),Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setWeapon(entry.getKey(),Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    for (    Entry<AbstractItem,Integer> entry : Main.game.getPlayer().getMapOfDuplicateItems().entrySet()) {
      id="String_Node_Str" + entry.getKey().hashCode();
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setItemInventory(entry.getKey(),Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem(entry.getKey(),Main.game.getPlayer(),null);
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    for (    Entry<AbstractClothing,Integer> entry : Main.game.getPlayer().getMapOfDuplicateClothing().entrySet()) {
      id="String_Node_Str" + entry.getKey().hashCode();
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingInventory(entry.getKey(),Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing(entry.getKey(),Main.game.getPlayer(),null);
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    if (InventoryDialogue.getInventoryNPC() != null) {
      for (      Entry<AbstractWeapon,Integer> entry : InventoryDialogue.getInventoryNPC().getMapOfDuplicateWeapons().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponInventory(entry.getKey(),InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setWeapon(entry.getKey(),InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      for (      Entry<AbstractClothing,Integer> entry : InventoryDialogue.getInventoryNPC().getMapOfDuplicateClothing().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingInventory(entry.getKey(),InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing(entry.getKey(),InventoryDialogue.getInventoryNPC(),null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      for (      Entry<AbstractItem,Integer> entry : InventoryDialogue.getInventoryNPC().getMapOfDuplicateItems().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setItemInventory(entry.getKey(),InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem(entry.getKey(),InventoryDialogue.getInventoryNPC(),null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
    }
 else {
      for (      Entry<AbstractWeapon,Integer> entry : Main.game.getPlayerCell().getInventory().getMapOfDuplicateWeapons().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponInventory(entry.getKey(),null);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setWeapon(entry.getKey(),null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      for (      Entry<AbstractClothing,Integer> entry : Main.game.getPlayerCell().getInventory().getMapOfDuplicateClothing().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingInventory(entry.getKey(),null);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing(entry.getKey(),null,null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      for (      Entry<AbstractItem,Integer> entry : Main.game.getPlayerCell().getInventory().getMapOfDuplicateItems().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setItemInventory(entry.getKey(),null);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem(entry.getKey(),null,null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
    }
    if (InventoryDialogue.getNPCInventoryInteraction() == InventoryInteraction.TRADING) {
      if (InventoryDialogue.getInventoryNPC() != null) {
        for (int i=Main.game.getPlayer().getBuybackStack().size() - 1; i >= 0; i--) {
          if (((EventTarget)document.getElementById("String_Node_Str" + i)) != null) {
            InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponInventory((AbstractWeapon)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),i);
            ((EventTarget)document.getElementById("String_Node_Str" + i)).addEventListener("String_Node_Str",el,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",moveTooltipListener,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",hideTooltipListener,false);
            InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setWeapon((AbstractWeapon)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC());
            ((EventTarget)document.getElementById("String_Node_Str" + i)).addEventListener("String_Node_Str",el2,false);
          }
          if (((EventTarget)document.getElementById("String_Node_Str" + i)) != null) {
            InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingInventory((AbstractClothing)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),i);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",moveTooltipListener,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",hideTooltipListener,false);
            InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing((AbstractClothing)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),null);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el2,false);
          }
          if (((EventTarget)document.getElementById("String_Node_Str" + i)) != null) {
            InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setItemInventory((AbstractItem)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),i);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",moveTooltipListener,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",hideTooltipListener,false);
            InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem((AbstractItem)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),null);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el2,false);
          }
        }
      }
    }
    for (int i=0; i < InventoryDialogue.getJinxedClothing().size(); i++) {
      if (((EventTarget)document.getElementById("String_Node_Str" + i)) != null) {
        addEventListener(document,"String_Node_Str" + i,"String_Node_Str",new InventoryRemoveJinx().setJinxIndex(i,Main.game.getPlayer()),false);
        addEventListener(document,"String_Node_Str" + i,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + i,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing(InventoryDialogue.getJinxedClothing().get(i),Main.game.getPlayer(),null);
        addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el2,false);
      }
    }
    for (int i=0; i < InventoryDialogue.getJinxedNPCClothing().size(); i++) {
      if (((EventTarget)document.getElementById("String_Node_Str" + i)) != null) {
        addEventListener(document,"String_Node_Str" + i,"String_Node_Str",new InventoryRemoveJinx().setJinxIndex(i,InventoryDialogue.getInventoryNPC()),false);
        addEventListener(document,"String_Node_Str" + i,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + i,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing(InventoryDialogue.getJinxedClothing().get(i),InventoryDialogue.getInventoryNPC(),null);
        addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el2,false);
      }
    }
    for (    TFEssence essence : TFEssence.values()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + essence.hashCode())) != null) {
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setEssence(essence);
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",el2,false);
      }
      if (((EventTarget)document.getElementById("String_Node_Str" + essence.hashCode())) != null) {
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setEssence(essence);
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",el2,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      EnchantmentEventListener el=new EnchantmentEventListener().setPrimaryModifier(TFModifier.NONE);
      addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setTFModifier(EnchantmentDialogue.primaryMod);
      addEventListener(document,"String_Node_Str","String_Node_Str",el2,false);
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      EnchantmentEventListener el=new EnchantmentEventListener().setSecondaryModifier(TFModifier.NONE);
      addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setTFModifier(EnchantmentDialogue.secondaryMod);
      addEventListener(document,"String_Node_Str","String_Node_Str",el2,false);
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      ((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
        Main.game.setContent(new Response("String_Node_Str","String_Node_Str",InventoryDialogue.ITEM_INVENTORY){
          @Override public void effects(){
            EnchantmentDialogue.resetEnchantmentVariables();
          }
        }
);
      }
,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem((AbstractItem)EnchantmentDialogue.ingredient,Main.game.getPlayer(),null);
      addEventListener(document,"String_Node_Str","String_Node_Str",el2,false);
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      ((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
        if (EnchantmentDialogue.effects.isEmpty()) {
        }
 else         if (EnchantmentDialogue.canAffordCost(EnchantmentDialogue.ingredient,EnchantmentDialogue.effects)) {
          Main.game.setContent(new ResponseEffectsOnly("String_Node_Str","String_Node_Str" + EnchantingUtils.getPotionName(EnchantmentDialogue.ingredient,EnchantmentDialogue.effects) + "String_Node_Str"){
            @Override public void effects(){
              EnchantmentDialogue.craftItem(EnchantmentDialogue.ingredient,EnchantmentDialogue.effects);
              if (!Main.game.getPlayer().isQuestCompleted(QuestLine.SIDE_ENCHANTMENT_DISCOVERY)) {
                Main.game.getTextEndStringBuilder().append(Main.game.getPlayer().incrementQuest(QuestLine.SIDE_ENCHANTMENT_DISCOVERY));
              }
              if (Main.game.getPlayer().hasItem((AbstractItem)EnchantmentDialogue.previousIngredient)) {
                EnchantmentDialogue.ingredient=EnchantmentDialogue.previousIngredient;
                Main.game.setContent(new Response("String_Node_Str","String_Node_Str",EnchantmentDialogue.ENCHANTMENT_MENU));
              }
 else {
                Main.game.setContent(new Response("String_Node_Str","String_Node_Str",InventoryDialogue.INVENTORY_MENU));
              }
            }
          }
);
        }
      }
,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
      addEventListener(document,"String_Node_Str","String_Node_Str",el2,false);
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      ((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
        if (EnchantmentDialogue.ingredient.getEnchantmentEffect().getEffectsDescription(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod,EnchantmentDialogue.potency,EnchantmentDialogue.limit,Main.game.getPlayer(),Main.game.getPlayer()) == null) {
        }
 else {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",EnchantmentDialogue.ENCHANTMENT_MENU){
            @Override public void effects(){
              EnchantmentDialogue.effects.add(new ItemEffect(EnchantmentDialogue.ingredient.getEnchantmentEffect(),EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod,EnchantmentDialogue.potency,EnchantmentDialogue.limit));
            }
          }
);
        }
      }
,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
    }
    if (EnchantmentDialogue.ingredient != null) {
      for (      TFModifier tfMod : EnchantmentDialogue.ingredient.getEnchantmentEffect().getPrimaryModifiers()) {
        if (((EventTarget)document.getElementById("String_Node_Str" + tfMod.hashCode())) != null) {
          EnchantmentEventListener el=new EnchantmentEventListener().setPrimaryModifier(tfMod);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",el,false);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setTFModifier(tfMod);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",el2,false);
        }
      }
    }
    if (EnchantmentDialogue.ingredient != null) {
      for (      TFModifier tfMod : EnchantmentDialogue.ingredient.getEnchantmentEffect().getSecondaryModifiers(EnchantmentDialogue.primaryMod)) {
        if (((EventTarget)document.getElementById("String_Node_Str" + tfMod.hashCode())) != null) {
          EnchantmentEventListener el=new EnchantmentEventListener().setSecondaryModifier(tfMod);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",el,false);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setTFModifier(tfMod);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",el2,false);
        }
      }
    }
    for (    PlaceUpgrade placeUpgrade : PlaceUpgrade.values()) {
      id=placeUpgrade + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getPlayer().getLocationPlace().addPlaceUpgrade(placeUpgrade);
              Main.game.getPlayer().incrementMoney(-placeUpgrade.getInstallCost());
            }
          }
);
        }
,false);
      }
      id=placeUpgrade + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getPlayer().getLocationPlace().removePlaceUpgrade(placeUpgrade);
              Main.game.getPlayer().incrementMoney(-placeUpgrade.getRemovalCost());
            }
          }
);
        }
,false);
      }
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
        boolean unsuitableName=false;
        if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
          Main.mainController.getWebEngine().executeScript("String_Node_Str");
          if (Main.mainController.getWebEngine().getDocument() != null) {
            if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)             unsuitableName=true;
 else {
              unsuitableName=false;
            }
          }
          if (!unsuitableName) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayerCell().getPlace().setName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
              }
            }
);
          }
        }
      }
,false);
    }
    if (Main.game.getDialogueFlags().slaveryManagerSlaveSelected != null) {
      id=Main.game.getDialogueFlags().slaveryManagerSlaveSelected.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          boolean unsuitableName=false;
          if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
            Main.mainController.getWebEngine().executeScript("String_Node_Str");
            if (Main.mainController.getWebEngine().getDocument() != null) {
              if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)               unsuitableName=true;
 else {
                unsuitableName=false;
              }
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getDialogueFlags().slaveryManagerSlaveSelected.setName(new NameTriplet(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent()));
                }
              }
);
            }
          }
        }
,false);
      }
      id=Main.game.getDialogueFlags().slaveryManagerSlaveSelected.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          boolean unsuitableName=false;
          if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
            Main.mainController.getWebEngine().executeScript("String_Node_Str");
            if (Main.mainController.getWebEngine().getDocument() != null) {
              if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)               unsuitableName=true;
 else {
                unsuitableName=false;
              }
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getDialogueFlags().slaveryManagerSlaveSelected.setPlayerPetName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                }
              }
);
            }
          }
        }
,false);
      }
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
        boolean unsuitableName=false;
        if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
          Main.mainController.getWebEngine().executeScript("String_Node_Str");
          if (Main.mainController.getWebEngine().getDocument() != null) {
            if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)             unsuitableName=true;
 else {
              unsuitableName=false;
            }
          }
          if (!unsuitableName) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                for (                NPC slave : Main.game.getPlayer().getSlavesOwned()) {
                  slave.setPlayerPetName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                }
              }
            }
);
          }
        }
      }
,false);
    }
    for (    NPC slave : Main.game.getPlayer().getSlavesOwned()) {
      id=slave.getId();
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",MiscDialogue.getSlaveryManagementDetailedDialogue(Main.game.getNPCById(slave.getId()))));
        }
,false);
      }
      id=slave.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getNPCById(slave.getId()).setLocation(Main.game.getPlayer().getWorldLocation(),Main.game.getPlayer().getLocation());
            }
          }
);
        }
,false);
      }
      id=slave.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getPlayer().incrementMoney((int)(slave.getValueAsSlave() * Main.game.getDialogueFlags().slaveTrader.getBuyModifier()));
              Main.game.getDialogueFlags().slaveTrader.addSlave(Main.game.getNPCById(slave.getId()));
              Main.game.getNPCById(slave.getId()).setLocation(Main.game.getDialogueFlags().slaveTrader.getWorldLocation(),Main.game.getDialogueFlags().slaveTrader.getLocation());
            }
          }
);
        }
,false);
      }
    }
    if (Main.game.getDialogueFlags().slaveTrader != null)     for (    NPC slave : Main.game.getDialogueFlags().slaveTrader.getSlavesOwned()) {
      id=slave.getId();
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",MiscDialogue.getSlaveryManagementDetailedDialogue(Main.game.getNPCById(slave.getId()))));
        }
,false);
      }
      id=slave.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getPlayer().incrementMoney(-(int)(slave.getValueAsSlave() * Main.game.getDialogueFlags().slaveTrader.getSellModifier()));
              Main.game.getPlayer().addSlave(Main.game.getNPCById(slave.getId()));
              Main.game.getNPCById(slave.getId()).setLocation(WorldType.SLAVER_ALLEY,SlaverAlley.SLAVERY_ADMINISTRATION);
            }
          }
);
        }
,false);
      }
    }
    if (Main.game.getActiveNPC() != null) {
      id=Main.game.getActiveNPC().getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          boolean unsuitableName=false;
          if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
            Main.mainController.getWebEngine().executeScript("String_Node_Str");
            if (Main.mainController.getWebEngine().getDocument() != null) {
              if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 2 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)               unsuitableName=true;
 else {
                unsuitableName=false;
              }
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getActiveNPC().setPlayerPetName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                }
              }
);
            }
          }
        }
,false);
      }
    }
    if (!Main.game.isInNewWorld()) {
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          CharacterCreation.setGenderMale();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          CharacterCreation.setGenderFemale();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.MASCULINE_STRONG.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.MASCULINE.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.ANDROGYNOUS.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.FEMININE.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.FEMININE_STRONG.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      Personality personality : Personality.values()) {
        id="String_Node_Str" + personality;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setPersonality(personality);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      SexualOrientation orientation : SexualOrientation.values()) {
        id="String_Node_Str" + orientation;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setSexualOrientation(orientation);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      int i : CharacterModificationUtils.heightChoices) {
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setHeight(i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      BodySize bs : BodySize.values()) {
        id="String_Node_Str" + bs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setBodySize(bs.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      Muscle muscle : Muscle.values()) {
        id="String_Node_Str" + muscle;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setMuscle(muscle.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      LipSize ls : LipSize.values()) {
        id="String_Node_Str" + ls;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setLipSize(ls.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().addFaceOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().removeFaceOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      CupSize cs : CharacterModificationUtils.getBreastSizesAvailable()) {
        id="String_Node_Str" + cs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setBreastSize(cs.getMeasurement());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      BreastShape bs : BreastShape.values()) {
        id="String_Node_Str" + bs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setBreastShape(bs);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      NippleSize ns : CharacterModificationUtils.getNippleSizesAvailable()) {
        id="String_Node_Str" + ns;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setNippleSize(ns.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AreolaeSize as : CharacterModificationUtils.getAreolaeSizesAvailable()) {
        id="String_Node_Str" + as;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setAreolaeSize(as.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().addNippleOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().removeNippleOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      int i : CharacterModificationUtils.getLactationQuantitiesAvailable()) {
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setBreastLactation(i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AssSize as : CharacterModificationUtils.getAssSizesAvailable()) {
        id="String_Node_Str" + as;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setAssSize(as.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      HipSize hs : CharacterModificationUtils.getHipSizesAvailable()) {
        id="String_Node_Str" + hs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setHipSize(hs.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setAssBleached(true);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setAssBleached(false);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      int ps : CharacterModificationUtils.getPenisSizesAvailable()) {
        id="String_Node_Str" + ps;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setPenisSize(ps);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      TesticleSize ts : CharacterModificationUtils.getTesticleSizesAvailable()) {
        id="String_Node_Str" + ts;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setTesticleSize(ts.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      CumProduction cp : CharacterModificationUtils.getCumProductionAvailable()) {
        id="String_Node_Str" + cp;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setCumProduction(cp.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      Capacity capacity : Capacity.values()) {
        id="String_Node_Str" + capacity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setVaginaCapacity(capacity.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      ClitorisSize cs : ClitorisSize.values()) {
        id="String_Node_Str" + cs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setVaginaClitorisSize(cs.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      LabiaSize ls : LabiaSize.values()) {
        id="String_Node_Str" + ls;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setVaginaLabiaSize(ls.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
    }
    boolean noCost=!Main.game.isInNewWorld();
    for (    BodyCoveringType bct : BodyCoveringType.values()) {
      id=bct + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),false,Main.game.getPlayer().getCovering(bct).getSecondaryColour(),Main.game.getPlayer().getCovering(bct).isSecondaryGlowing()),false);
              }
            }
);
          }
        }
,false);
      }
      id=bct + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),true,Main.game.getPlayer().getCovering(bct).getSecondaryColour(),Main.game.getPlayer().getCovering(bct).isSecondaryGlowing()),false);
              }
            }
);
          }
        }
,false);
      }
      id=bct + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),Main.game.getPlayer().getCovering(bct).isPrimaryGlowing(),Main.game.getPlayer().getCovering(bct).getSecondaryColour(),false),false);
              }
            }
);
          }
        }
,false);
      }
      id=bct + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),Main.game.getPlayer().getCovering(bct).isPrimaryGlowing(),Main.game.getPlayer().getCovering(bct).getSecondaryColour(),true),false);
              }
            }
);
          }
        }
,false);
      }
      for (      CoveringPattern pattern : CoveringPattern.values()) {
        id=bct + "String_Node_Str" + pattern;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                  Main.game.getPlayer().setSkinCovering(new Covering(bct,pattern,Main.game.getPlayer().getCovering(bct).getPrimaryColour(),Main.game.getPlayer().getCovering(bct).isPrimaryGlowing(),Main.game.getPlayer().getCovering(bct).getSecondaryColour(),Main.game.getPlayer().getCovering(bct).isSecondaryGlowing()),false);
                }
              }
);
            }
          }
,false);
        }
      }
      for (      Colour colour : bct.getAllColours()) {
        id=bct + "String_Node_Str" + colour;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                  Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),colour,(colour == Colour.COVERING_NONE ? false : Main.game.getPlayer().getCovering(bct).isPrimaryGlowing()),Main.game.getPlayer().getCovering(bct).getSecondaryColour(),Main.game.getPlayer().getCovering(bct).isSecondaryGlowing()),false);
                  if (noCost) {
                    if (bct == BodyCoveringType.HUMAN) {
                      Main.game.getPlayer().getBody().updateCoverings(false,false,false,true);
                    }
                  }
                }
              }
);
            }
          }
,false);
        }
        id=bct + "String_Node_Str" + colour;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                  Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),Main.game.getPlayer().getCovering(bct).isPrimaryGlowing(),colour,(colour == Colour.COVERING_NONE ? false : Main.game.getPlayer().getCovering(bct).isSecondaryGlowing())),false);
                }
              }
);
            }
          }
,false);
        }
      }
    }
    for (    HairLength hairLength : HairLength.values()) {
      id="String_Node_Str" + hairLength;
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_HAIR_LENGTH_COST || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_HAIR_LENGTH_COST);
                Main.game.getPlayer().setHairLength(hairLength.getMedianValue());
              }
            }
);
          }
        }
,false);
      }
    }
    for (    HairStyle hairStyle : HairStyle.values()) {
      id="String_Node_Str" + hairStyle;
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_HAIR_STYLE_COST || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_HAIR_STYLE_COST);
                Main.game.getPlayer().setHairStyle(hairStyle);
              }
            }
);
          }
        }
,false);
      }
    }
    for (    PiercingType piercingType : PiercingType.values()) {
      id=piercingType + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getPiercingCost(piercingType) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getPiercingCost(piercingType));
switch (piercingType) {
case EAR:
                  Main.game.getPlayer().setPiercedEar(false);
                break;
case LIP:
              Main.game.getPlayer().setPiercedLip(false);
            break;
case NAVEL:
          Main.game.getPlayer().setPiercedNavel(false);
        break;
case NIPPLE:
      Main.game.getPlayer().setPiercedNipples(false);
    break;
case NOSE:
  Main.game.getPlayer().setPiercedNose(false);
break;
case PENIS:
Main.game.getPlayer().setPiercedPenis(false);
break;
case TONGUE:
Main.game.getPlayer().setPiercedTongue(false);
break;
case VAGINA:
Main.game.getPlayer().setPiercedVagina(false);
break;
}
}
}
);
}
}
,false);
}
id=piercingType + "String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getPiercingCost(piercingType) || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getPiercingCost(piercingType));
switch (piercingType) {
case EAR:
Main.game.getPlayer().setPiercedEar(true);
break;
case LIP:
Main.game.getPlayer().setPiercedLip(true);
break;
case NAVEL:
Main.game.getPlayer().setPiercedNavel(true);
break;
case NIPPLE:
Main.game.getPlayer().setPiercedNipples(true);
break;
case NOSE:
Main.game.getPlayer().setPiercedNose(true);
break;
case PENIS:
Main.game.getPlayer().setPiercedPenis(true);
break;
case TONGUE:
Main.game.getPlayer().setPiercedTongue(true);
break;
case VAGINA:
Main.game.getPlayer().setPiercedVagina(true);
break;
}
}
}
);
}
}
,false);
}
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_ANAL_BLEACHING_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_ANAL_BLEACHING_COST);
Main.game.getPlayer().setAssBleached(false);
}
}
);
}
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_ANAL_BLEACHING_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_ANAL_BLEACHING_COST);
Main.game.getPlayer().setAssBleached(true);
}
}
);
}
}
,false);
}
for (BodyHair bodyHair : BodyHair.values()) {
id="String_Node_Str" + bodyHair;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_BODY_HAIR_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
Main.game.getPlayer().setAssHair(bodyHair);
}
}
);
}
}
,false);
}
id="String_Node_Str" + bodyHair;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_BODY_HAIR_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
Main.game.getPlayer().setUnderarmHair(bodyHair);
}
}
);
}
}
,false);
}
id="String_Node_Str" + bodyHair;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_BODY_HAIR_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
Main.game.getPlayer().setPubicHair(bodyHair);
}
}
);
}
}
,false);
}
id="String_Node_Str" + bodyHair;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_BODY_HAIR_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
Main.game.getPlayer().setFacialHair(bodyHair);
}
}
);
}
}
,false);
}
}
for (AbstractClothingType clothing : ClothingType.getAllClothing()) for (Colour c : clothing.getAvailableColours()) {
if ((EventTarget)document.getElementById(clothing.hashCode() + "String_Node_Str" + c.toString()) != null) {
addEventListener(document,clothing.hashCode() + "String_Node_Str" + c.toString(),"String_Node_Str",moveTooltipListener,false);
addEventListener(document,clothing.hashCode() + "String_Node_Str" + c.toString(),"String_Node_Str",hideTooltipListener,false);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setGenericClothing(clothing,c);
addEventListener(document,clothing.hashCode() + "String_Node_Str" + c.toString(),"String_Node_Str",el2,false);
}
}
for (AbstractWeaponType weapon : WeaponType.allweapons) for (DamageType dt : weapon.getAvailableDamageTypes()) {
if ((EventTarget)document.getElementById(weapon.hashCode() + "String_Node_Str" + dt.toString()) != null) {
addEventListener(document,weapon.hashCode() + "String_Node_Str" + dt.toString(),"String_Node_Str",moveTooltipListener,false);
addEventListener(document,weapon.hashCode() + "String_Node_Str" + dt.toString(),"String_Node_Str",hideTooltipListener,false);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setGenericWeapon(weapon,dt);
addEventListener(document,weapon.hashCode() + "String_Node_Str" + dt.toString(),"String_Node_Str",el2,false);
}
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().increaseStrength(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().decreaseStrength(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().increaseIntelligence(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().decreaseIntelligence(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().increaseFitness(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().decreaseFitness(),false);
for (Perk p : Perk.values()) {
if (((EventTarget)document.getElementById("String_Node_Str" + p)) != null) {
addEventListener(document,"String_Node_Str" + p,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str" + p,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,"String_Node_Str" + p,"String_Node_Str",new TooltipInformationEventListener().setLevelUpPerk(p,Main.game.getPlayer()),false);
addEventListener(document,"String_Node_Str" + p,"String_Node_Str",new LevelUpButtonsEventListener().handlePerkPress(p),false);
}
}
for (Fetish f : Fetish.values()) {
if (((EventTarget)document.getElementById("String_Node_Str" + f)) != null) {
addEventListener(document,"String_Node_Str" + f,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str" + f,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,"String_Node_Str" + f,"String_Node_Str",new TooltipInformationEventListener().setFetish(f,Main.game.getPlayer()),false);
addEventListener(document,"String_Node_Str" + f,"String_Node_Str",new LevelUpButtonsEventListener().handleFetishPress(f),false);
}
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.KEYBINDS) {
for (KeyboardAction ka : KeyboardAction.values()) {
if (((EventTarget)document.getElementById("String_Node_Str" + ka)) != null) ((EventTarget)document.getElementById("String_Node_Str" + ka)).addEventListener("String_Node_Str",e -> {
actionToBind=ka;
primaryBinding=true;
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
if (((EventTarget)document.getElementById("String_Node_Str" + ka)) != null) ((EventTarget)document.getElementById("String_Node_Str" + ka)).addEventListener("String_Node_Str",e -> {
Main.getProperties().hotkeyMapPrimary.put(ka,null);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
if (((EventTarget)document.getElementById("String_Node_Str" + ka)) != null) ((EventTarget)document.getElementById("String_Node_Str" + ka)).addEventListener("String_Node_Str",e -> {
actionToBind=ka;
primaryBinding=false;
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
if (((EventTarget)document.getElementById("String_Node_Str" + ka)) != null) ((EventTarget)document.getElementById("String_Node_Str" + ka)).addEventListener("String_Node_Str",e -> {
Main.getProperties().hotkeyMapSecondary.put(ka,null);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.GENDER_PREFERENCE) {
for (Gender g : Gender.values()) {
for (GenderPreference preference : GenderPreference.values()) {
if (((EventTarget)document.getElementById(preference + "String_Node_Str" + g)) != null) {
((EventTarget)document.getElementById(preference + "String_Node_Str" + g)).addEventListener("String_Node_Str",e -> {
Main.getProperties().genderPreferencesMap.put(g,preference.getValue());
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
}
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.FURRY_PREFERENCE) {
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=0;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=1;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=2;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=3;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=4;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.HUMAN;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.MINIMUM;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.REDUCED;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.NORMAL;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.MAXIMUM;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().multiBreasts=0;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().multiBreasts=1;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().multiBreasts=2;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.HUMAN);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.HUMAN);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.MINIMUM);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.MINIMUM);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.REDUCED);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.REDUCED);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.NORMAL);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.NORMAL);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.MAXIMUM);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.MAXIMUM);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
for (Race r : Race.values()) {
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.HUMAN);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.HUMAN.getName(),FurryPreference.HUMAN.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.MINIMUM);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.MINIMUM.getName(),FurryPreference.MINIMUM.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.REDUCED);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.REDUCED.getName(),FurryPreference.REDUCED.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.NORMAL);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.NORMAL.getName(),FurryPreference.NORMAL.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.MAXIMUM);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.MAXIMUM.getName(),FurryPreference.MAXIMUM.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.HUMAN);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.HUMAN.getName(),FurryPreference.HUMAN.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.MINIMUM);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.MINIMUM.getName(),FurryPreference.MINIMUM.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.REDUCED);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.REDUCED.getName(),FurryPreference.REDUCED.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.NORMAL);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.NORMAL.getName(),FurryPreference.NORMAL.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.MAXIMUM);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.MAXIMUM.getName(),FurryPreference.MAXIMUM.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.CONTENT_PREFERENCE || Main.game.getCurrentDialogueNode() == CharacterCreation.CONTENT_PREFERENCES) {
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().nonConContent=true;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().nonConContent=false;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().incestContent=true;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().incestContent=false;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().facialHairContent=!Main.getProperties().facialHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().facialHairContent=!Main.getProperties().facialHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().pubicHairContent=!Main.getProperties().pubicHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().pubicHairContent=!Main.getProperties().pubicHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().bodyHairContent=!Main.getProperties().bodyHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().bodyHairContent=!Main.getProperties().bodyHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().furryTailPenetrationContent=!Main.getProperties().furryTailPenetrationContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().furryTailPenetrationContent=!Main.getProperties().furryTailPenetrationContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.SAVE_LOAD && !Main.game.isInCombat() && !Main.game.isInSex()) {
for (File f : Main.getSavedGames()) {
if (((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))) != null) {
((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))).addEventListener("String_Node_Str",e -> {
if (!Main.getProperties().overwriteWarning || OptionsDialogue.overwriteConfirmationName.equals(f.getName())) {
OptionsDialogue.overwriteConfirmationName="String_Node_Str";
Main.saveGame(f.getName().substring(0,f.getName().lastIndexOf('.')),true);
}
 else {
OptionsDialogue.overwriteConfirmationName=f.getName();
OptionsDialogue.loadConfirmationName="String_Node_Str";
OptionsDialogue.deleteConfirmationName="String_Node_Str";
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",OptionsDialogue.SAVE_LOAD));
}
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))) != null) {
((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))).addEventListener("String_Node_Str",e -> {
if (!Main.getProperties().overwriteWarning || OptionsDialogue.loadConfirmationName.equals(f.getName())) {
OptionsDialogue.loadConfirmationName="String_Node_Str";
Main.loadGame(f.getName().substring(0,f.getName().lastIndexOf('.')));
}
 else {
OptionsDialogue.overwriteConfirmationName="String_Node_Str";
OptionsDialogue.loadConfirmationName=f.getName();
OptionsDialogue.deleteConfirmationName="String_Node_Str";
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",OptionsDialogue.SAVE_LOAD));
}
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))) != null) {
((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))).addEventListener("String_Node_Str",e -> {
if (!Main.getProperties().overwriteWarning || OptionsDialogue.deleteConfirmationName.equals(f.getName())) {
OptionsDialogue.deleteConfirmationName="String_Node_Str";
Main.deleteGame(f.getName().substring(0,f.getName().lastIndexOf('.')));
}
 else {
OptionsDialogue.overwriteConfirmationName="String_Node_Str";
OptionsDialogue.loadConfirmationName="String_Node_Str";
OptionsDialogue.deleteConfirmationName=f.getName();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",OptionsDialogue.SAVE_LOAD));
}
}
,false);
}
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.mainController.getWebEngine().executeScript("String_Node_Str");
Main.saveGame(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent(),false);
}
,false);
}
}
if (Main.game.getCurrentDialogueNode() == CharacterCreation.IMPORT_CHOOSE) {
for (File f : Main.getCharactersForImport()) {
if (((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))) != null) {
((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))).addEventListener("String_Node_Str",e -> {
Main.importCharacter(f);
}
,false);
}
}
}
}

Fixed version (ground truth):
private void manageMainListeners(){
  document=(Document)webEngine.executeScript("String_Node_Str");
  EventListenerDataMap.put(document,new ArrayList<>());
  String id="String_Node_Str";
  if (flashMessageColour != null && flashMessageText != null) {
    Main.game.flashMessage(flashMessageColour,flashMessageText);
    flashMessageColour=null;
    flashMessageText=null;
  }
  if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
    addEventListener(document,"String_Node_Str","String_Node_Str",copyDialogueButtonListener,false);
    addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
    addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
    addEventListener(document,"String_Node_Str","String_Node_Str",copyInfoListener,false);
  }
  if (Main.game.isInCombat()) {
    for (    StatusEffect se : Main.game.getPlayer().getStatusEffects()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + se)) != null) {
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(se,Main.game.getPlayer());
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",el,false);
      }
    }
    for (    SpecialAttack sa : Main.game.getPlayer().getSpecialAttacks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + sa)) != null) {
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpecialAttack(sa,Main.game.getPlayer());
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",el,false);
      }
    }
    if (Main.game.getPlayer().getMainWeapon() != null) {
      for (      Spell s : Main.game.getPlayer().getMainWeapon().getSpells()) {
        if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,Main.game.getPlayer().getLevel(),Main.game.getPlayer());
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
        }
      }
    }
    if (Main.game.getPlayer().getOffhandWeapon() != null) {
      for (      Spell s : Main.game.getPlayer().getOffhandWeapon().getSpells()) {
        if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,Main.game.getPlayer().getLevel(),Main.game.getPlayer());
          addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
        }
      }
    }
    for (    StatusEffect se : Combat.getOpponent().getStatusEffects()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + se)) != null) {
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(se,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str" + StatusEffect.COMBAT_HIDDEN)) != null) {
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(StatusEffect.COMBAT_HIDDEN,Combat.getOpponent());
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",el,false);
    }
    for (    Perk p : Combat.getOpponent().getPerks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + p)) != null) {
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setPerk(p,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",el,false);
      }
    }
    for (    Fetish f : Combat.getOpponent().getFetishes()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + f)) != null) {
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setFetish(f,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",el,false);
      }
    }
    for (    SpecialAttack sa : Combat.getOpponent().getSpecialAttacks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + sa)) != null) {
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpecialAttack(sa,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",el,false);
      }
    }
    if (Combat.getOpponent().getMainWeapon() != null)     for (    Spell s : Combat.getOpponent().getMainWeapon().getSpells()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,Combat.getOpponent().getLevel(),Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
      }
    }
    if (Combat.getOpponent().getOffhandWeapon() != null)     for (    Spell s : Combat.getOpponent().getOffhandWeapon().getSpells()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,Combat.getOpponent().getLevel(),Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
      }
    }
    Attribute[] attributes={Attribute.STRENGTH,Attribute.INTELLIGENCE,Attribute.FITNESS,Attribute.CORRUPTION,Attribute.HEALTH_MAXIMUM,Attribute.MANA_MAXIMUM,Attribute.STAMINA_MAXIMUM};
    for (    Attribute a : attributes) {
      if (((EventTarget)document.getElementById("String_Node_Str" + a)) != null) {
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,Main.game.getPlayer());
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",el,false);
      }
      if (((EventTarget)document.getElementById("String_Node_Str" + a)) != null) {
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,Combat.getOpponent());
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setOpponentExtraAttributes();
      addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
    }
  }
  if (Main.game.getCurrentDialogueNode() == CharactersPresentDialogue.MENU || Main.game.getCurrentDialogueNode() == PhoneDialogue.CONTACTS) {
    for (    StatusEffect se : CharactersPresentDialogue.characterViewed.getStatusEffects()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + se)) != null) {
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(se,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + se,"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str" + StatusEffect.COMBAT_HIDDEN)) != null) {
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setStatusEffect(StatusEffect.COMBAT_HIDDEN,CharactersPresentDialogue.characterViewed);
      addEventListener(document,"String_Node_Str" + StatusEffect.COMBAT_HIDDEN,"String_Node_Str",el,false);
    }
    for (    Perk p : CharactersPresentDialogue.characterViewed.getPerks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + p)) != null) {
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setPerk(p,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + p,"String_Node_Str",el,false);
      }
    }
    for (    Fetish f : CharactersPresentDialogue.characterViewed.getFetishes()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + f)) != null) {
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setFetish(f,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + f,"String_Node_Str",el,false);
      }
    }
    for (    SpecialAttack sa : CharactersPresentDialogue.characterViewed.getSpecialAttacks()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + sa)) != null) {
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpecialAttack(sa,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + sa,"String_Node_Str",el,false);
      }
    }
    if (CharactersPresentDialogue.characterViewed.getMainWeapon() != null)     for (    Spell s : CharactersPresentDialogue.characterViewed.getMainWeapon().getSpells()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,CharactersPresentDialogue.characterViewed.getLevel(),CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
      }
    }
    if (CharactersPresentDialogue.characterViewed.getOffhandWeapon() != null)     for (    Spell s : CharactersPresentDialogue.characterViewed.getOffhandWeapon().getSpells()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + s)) != null) {
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setSpell(s,CharactersPresentDialogue.characterViewed.getLevel(),CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + s,"String_Node_Str",el,false);
      }
    }
    Attribute[] attributes={Attribute.STRENGTH,Attribute.INTELLIGENCE,Attribute.FITNESS,Attribute.CORRUPTION,Attribute.HEALTH_MAXIMUM,Attribute.MANA_MAXIMUM,Attribute.STAMINA_MAXIMUM};
    for (    Attribute a : attributes) {
      if (((EventTarget)document.getElementById("String_Node_Str" + a)) != null) {
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,Main.game.getPlayer());
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",el,false);
      }
      if (((EventTarget)document.getElementById("String_Node_Str" + a)) != null) {
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setAttribute(a,CharactersPresentDialogue.characterViewed);
        addEventListener(document,"String_Node_Str" + a,"String_Node_Str",el,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el=new TooltipInformationEventListener().setOpponentExtraAttributes();
      addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
    }
  }
  if (Main.game.isStarted()) {
    id="String_Node_Str";
    InventorySlot[] inventorySlots={InventorySlot.WEAPON_MAIN,InventorySlot.WEAPON_OFFHAND};
    for (    InventorySlot invSlot : inventorySlots) {
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponEquipped(Main.game.getPlayer(),invSlot);
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponEquipped(InventoryDialogue.getInventoryNPC(),invSlot);
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,InventoryDialogue.getInventoryNPC());
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,CharactersPresentDialogue.characterViewed);
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    for (    InventorySlot invSlot : InventorySlot.values()) {
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (invSlot != InventorySlot.WEAPON_MAIN && invSlot != InventorySlot.WEAPON_OFFHAND) {
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingEquipped(Main.game.getPlayer(),invSlot);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,Main.game.getPlayer());
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (invSlot != InventorySlot.WEAPON_MAIN && invSlot != InventorySlot.WEAPON_OFFHAND) {
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingEquipped(InventoryDialogue.getInventoryNPC(),invSlot);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      id="String_Node_Str" + invSlot.toString() + "String_Node_Str";
      if (invSlot != InventorySlot.WEAPON_MAIN && invSlot != InventorySlot.WEAPON_OFFHAND) {
        if (((EventTarget)document.getElementById(id)) != null) {
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setInventorySlot(invSlot,CharactersPresentDialogue.characterViewed);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
    }
    for (    Entry<AbstractWeapon,Integer> entry : Main.game.getPlayer().getMapOfDuplicateWeapons().entrySet()) {
      id="String_Node_Str" + entry.getKey().hashCode();
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponInventory(entry.getKey(),Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setWeapon(entry.getKey(),Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    for (    Entry<AbstractItem,Integer> entry : Main.game.getPlayer().getMapOfDuplicateItems().entrySet()) {
      id="String_Node_Str" + entry.getKey().hashCode();
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setItemInventory(entry.getKey(),Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem(entry.getKey(),Main.game.getPlayer(),null);
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    for (    Entry<AbstractClothing,Integer> entry : Main.game.getPlayer().getMapOfDuplicateClothing().entrySet()) {
      id="String_Node_Str" + entry.getKey().hashCode();
      if (((EventTarget)document.getElementById(id)) != null) {
        InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingInventory(entry.getKey(),Main.game.getPlayer());
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing(entry.getKey(),Main.game.getPlayer(),null);
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    if (InventoryDialogue.getInventoryNPC() != null) {
      for (      Entry<AbstractWeapon,Integer> entry : InventoryDialogue.getInventoryNPC().getMapOfDuplicateWeapons().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponInventory(entry.getKey(),InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setWeapon(entry.getKey(),InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      for (      Entry<AbstractClothing,Integer> entry : InventoryDialogue.getInventoryNPC().getMapOfDuplicateClothing().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingInventory(entry.getKey(),InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing(entry.getKey(),InventoryDialogue.getInventoryNPC(),null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      for (      Entry<AbstractItem,Integer> entry : InventoryDialogue.getInventoryNPC().getMapOfDuplicateItems().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setItemInventory(entry.getKey(),InventoryDialogue.getInventoryNPC());
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem(entry.getKey(),InventoryDialogue.getInventoryNPC(),null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
    }
 else {
      for (      Entry<AbstractWeapon,Integer> entry : Main.game.getPlayerCell().getInventory().getMapOfDuplicateWeapons().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponInventory(entry.getKey(),null);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setWeapon(entry.getKey(),null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      for (      Entry<AbstractClothing,Integer> entry : Main.game.getPlayerCell().getInventory().getMapOfDuplicateClothing().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingInventory(entry.getKey(),null);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing(entry.getKey(),null,null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
      for (      Entry<AbstractItem,Integer> entry : Main.game.getPlayerCell().getInventory().getMapOfDuplicateItems().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        if (((EventTarget)document.getElementById(id)) != null) {
          InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setItemInventory(entry.getKey(),null);
          addEventListener(document,id,"String_Node_Str",el,false);
          addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem(entry.getKey(),null,null);
          addEventListener(document,id,"String_Node_Str",el2,false);
        }
      }
    }
    if (InventoryDialogue.getNPCInventoryInteraction() == InventoryInteraction.TRADING) {
      if (InventoryDialogue.getInventoryNPC() != null) {
        for (int i=Main.game.getPlayer().getBuybackStack().size() - 1; i >= 0; i--) {
          if (((EventTarget)document.getElementById("String_Node_Str" + i)) != null) {
            InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setWeaponInventory((AbstractWeapon)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),i);
            ((EventTarget)document.getElementById("String_Node_Str" + i)).addEventListener("String_Node_Str",el,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",moveTooltipListener,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",hideTooltipListener,false);
            InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setWeapon((AbstractWeapon)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC());
            ((EventTarget)document.getElementById("String_Node_Str" + i)).addEventListener("String_Node_Str",el2,false);
          }
          if (((EventTarget)document.getElementById("String_Node_Str" + i)) != null) {
            InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setClothingInventory((AbstractClothing)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),i);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",moveTooltipListener,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",hideTooltipListener,false);
            InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setClothing((AbstractClothing)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),null);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el2,false);
          }
          if (((EventTarget)document.getElementById("String_Node_Str" + i)) != null) {
            InventorySelectedItemEventListener el=new InventorySelectedItemEventListener().setItemInventory((AbstractItem)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),i);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",moveTooltipListener,false);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",hideTooltipListener,false);
            InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem((AbstractItem)Main.game.getPlayer().getBuybackStack().get(i).getAbstractItemSold(),InventoryDialogue.getInventoryNPC(),null);
            addEventListener(document,"String_Node_Str" + i,"String_Node_Str",el2,false);
          }
        }
      }
    }
    for (    TFEssence essence : TFEssence.values()) {
      if (((EventTarget)document.getElementById("String_Node_Str" + essence.hashCode())) != null) {
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setEssence(essence);
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",el2,false);
      }
      if (((EventTarget)document.getElementById("String_Node_Str" + essence.hashCode())) != null) {
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setEssence(essence);
        addEventListener(document,"String_Node_Str" + essence.hashCode(),"String_Node_Str",el2,false);
      }
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      EnchantmentEventListener el=new EnchantmentEventListener().setPrimaryModifier(TFModifier.NONE);
      addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setTFModifier(EnchantmentDialogue.primaryMod);
      addEventListener(document,"String_Node_Str","String_Node_Str",el2,false);
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      EnchantmentEventListener el=new EnchantmentEventListener().setSecondaryModifier(TFModifier.NONE);
      addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setTFModifier(EnchantmentDialogue.secondaryMod);
      addEventListener(document,"String_Node_Str","String_Node_Str",el2,false);
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      ((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
        Main.game.setContent(new Response("String_Node_Str","String_Node_Str",InventoryDialogue.ITEM_INVENTORY){
          @Override public void effects(){
            EnchantmentDialogue.resetEnchantmentVariables();
          }
        }
);
      }
,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setItem((AbstractItem)EnchantmentDialogue.ingredient,Main.game.getPlayer(),null);
      addEventListener(document,"String_Node_Str","String_Node_Str",el2,false);
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      ((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
        if (EnchantmentDialogue.effects.isEmpty()) {
        }
 else         if (EnchantmentDialogue.canAffordCost(EnchantmentDialogue.ingredient,EnchantmentDialogue.effects)) {
          Main.game.setContent(new ResponseEffectsOnly("String_Node_Str","String_Node_Str" + EnchantingUtils.getPotionName(EnchantmentDialogue.ingredient,EnchantmentDialogue.effects) + "String_Node_Str"){
            @Override public void effects(){
              EnchantmentDialogue.craftItem(EnchantmentDialogue.ingredient,EnchantmentDialogue.effects);
              if (!Main.game.getPlayer().isQuestCompleted(QuestLine.SIDE_ENCHANTMENT_DISCOVERY)) {
                Main.game.getTextEndStringBuilder().append(Main.game.getPlayer().incrementQuest(QuestLine.SIDE_ENCHANTMENT_DISCOVERY));
              }
              if (Main.game.getPlayer().hasItem((AbstractItem)EnchantmentDialogue.previousIngredient)) {
                EnchantmentDialogue.ingredient=EnchantmentDialogue.previousIngredient;
                Main.game.setContent(new Response("String_Node_Str","String_Node_Str",EnchantmentDialogue.ENCHANTMENT_MENU));
              }
 else {
                Main.game.setContent(new Response("String_Node_Str","String_Node_Str",InventoryDialogue.INVENTORY_MENU));
              }
            }
          }
);
        }
      }
,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
      addEventListener(document,"String_Node_Str","String_Node_Str",el2,false);
    }
    if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
      ((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
        if (EnchantmentDialogue.ingredient.getEnchantmentEffect().getEffectsDescription(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod,EnchantmentDialogue.potency,EnchantmentDialogue.limit,Main.game.getPlayer(),Main.game.getPlayer()) == null) {
        }
 else {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",EnchantmentDialogue.ENCHANTMENT_MENU){
            @Override public void effects(){
              EnchantmentDialogue.effects.add(new ItemEffect(EnchantmentDialogue.ingredient.getEnchantmentEffect(),EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod,EnchantmentDialogue.potency,EnchantmentDialogue.limit));
            }
          }
);
        }
      }
,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
      addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
    }
    if (EnchantmentDialogue.ingredient != null) {
      for (      TFModifier tfMod : EnchantmentDialogue.ingredient.getEnchantmentEffect().getPrimaryModifiers()) {
        if (((EventTarget)document.getElementById("String_Node_Str" + tfMod.hashCode())) != null) {
          EnchantmentEventListener el=new EnchantmentEventListener().setPrimaryModifier(tfMod);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",el,false);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setTFModifier(tfMod);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",el2,false);
        }
      }
    }
    if (EnchantmentDialogue.ingredient != null) {
      for (      TFModifier tfMod : EnchantmentDialogue.ingredient.getEnchantmentEffect().getSecondaryModifiers(EnchantmentDialogue.primaryMod)) {
        if (((EventTarget)document.getElementById("String_Node_Str" + tfMod.hashCode())) != null) {
          EnchantmentEventListener el=new EnchantmentEventListener().setSecondaryModifier(tfMod);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",el,false);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",moveTooltipListener,false);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",hideTooltipListener,false);
          InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setTFModifier(tfMod);
          addEventListener(document,"String_Node_Str" + tfMod.hashCode(),"String_Node_Str",el2,false);
        }
      }
    }
    for (    PlaceUpgrade placeUpgrade : PlaceUpgrade.values()) {
      id=placeUpgrade + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getPlayer().getLocationPlace().addPlaceUpgrade(placeUpgrade);
              Main.game.getPlayer().incrementMoney(-placeUpgrade.getInstallCost());
            }
          }
);
        }
,false);
      }
      id=placeUpgrade + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getPlayer().getLocationPlace().removePlaceUpgrade(placeUpgrade);
              Main.game.getPlayer().incrementMoney(-placeUpgrade.getRemovalCost());
            }
          }
);
        }
,false);
      }
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
        boolean unsuitableName=false;
        if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
          Main.mainController.getWebEngine().executeScript("String_Node_Str");
          if (Main.mainController.getWebEngine().getDocument() != null) {
            if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)             unsuitableName=true;
 else {
              unsuitableName=false;
            }
          }
          if (!unsuitableName) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayerCell().getPlace().setName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
              }
            }
);
          }
        }
      }
,false);
    }
    if (Main.game.getDialogueFlags().slaveryManagerSlaveSelected != null) {
      id=Main.game.getDialogueFlags().slaveryManagerSlaveSelected.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          boolean unsuitableName=false;
          if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
            Main.mainController.getWebEngine().executeScript("String_Node_Str");
            if (Main.mainController.getWebEngine().getDocument() != null) {
              if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)               unsuitableName=true;
 else {
                unsuitableName=false;
              }
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getDialogueFlags().slaveryManagerSlaveSelected.setName(new NameTriplet(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent()));
                }
              }
);
            }
          }
        }
,false);
      }
      id=Main.game.getDialogueFlags().slaveryManagerSlaveSelected.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          boolean unsuitableName=false;
          if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
            Main.mainController.getWebEngine().executeScript("String_Node_Str");
            if (Main.mainController.getWebEngine().getDocument() != null) {
              if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)               unsuitableName=true;
 else {
                unsuitableName=false;
              }
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getDialogueFlags().slaveryManagerSlaveSelected.setPlayerPetName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                }
              }
);
            }
          }
        }
,false);
      }
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
        boolean unsuitableName=false;
        if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
          Main.mainController.getWebEngine().executeScript("String_Node_Str");
          if (Main.mainController.getWebEngine().getDocument() != null) {
            if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)             unsuitableName=true;
 else {
              unsuitableName=false;
            }
          }
          if (!unsuitableName) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                for (                NPC slave : Main.game.getPlayer().getSlavesOwned()) {
                  slave.setPlayerPetName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                }
              }
            }
);
          }
        }
      }
,false);
    }
    for (    NPC slave : Main.game.getPlayer().getSlavesOwned()) {
      id=slave.getId();
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",MiscDialogue.getSlaveryManagementDetailedDialogue(Main.game.getNPCById(slave.getId()))));
        }
,false);
      }
      id=slave.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getNPCById(slave.getId()).setLocation(Main.game.getPlayer().getWorldLocation(),Main.game.getPlayer().getLocation());
            }
          }
);
        }
,false);
      }
      id=slave.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getPlayer().incrementMoney((int)(slave.getValueAsSlave() * Main.game.getDialogueFlags().slaveTrader.getBuyModifier()));
              Main.game.getDialogueFlags().slaveTrader.addSlave(Main.game.getNPCById(slave.getId()));
              Main.game.getNPCById(slave.getId()).setLocation(Main.game.getDialogueFlags().slaveTrader.getWorldLocation(),Main.game.getDialogueFlags().slaveTrader.getLocation());
            }
          }
);
        }
,false);
      }
    }
    if (Main.game.getDialogueFlags().slaveTrader != null)     for (    NPC slave : Main.game.getDialogueFlags().slaveTrader.getSlavesOwned()) {
      id=slave.getId();
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",MiscDialogue.getSlaveryManagementDetailedDialogue(Main.game.getNPCById(slave.getId()))));
        }
,false);
      }
      id=slave.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
            @Override public void effects(){
              Main.game.getPlayer().incrementMoney(-(int)(slave.getValueAsSlave() * Main.game.getDialogueFlags().slaveTrader.getSellModifier()));
              Main.game.getPlayer().addSlave(Main.game.getNPCById(slave.getId()));
              Main.game.getNPCById(slave.getId()).setLocation(WorldType.SLAVER_ALLEY,SlaverAlley.SLAVERY_ADMINISTRATION);
            }
          }
);
        }
,false);
      }
    }
    if (Main.game.getActiveNPC() != null) {
      id=Main.game.getActiveNPC().getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          boolean unsuitableName=false;
          if (Main.mainController.getWebEngine().executeScript("String_Node_Str") != null) {
            Main.mainController.getWebEngine().executeScript("String_Node_Str");
            if (Main.mainController.getWebEngine().getDocument() != null) {
              if (Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 2 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32)               unsuitableName=true;
 else {
                unsuitableName=false;
              }
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getActiveNPC().setPlayerPetName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                }
              }
);
            }
          }
        }
,false);
      }
    }
    if (!Main.game.isInNewWorld()) {
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          CharacterCreation.setGenderMale();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          CharacterCreation.setGenderFemale();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.MASCULINE_STRONG.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.MASCULINE.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.ANDROGYNOUS.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.FEMININE.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setFemininity(Femininity.FEMININE_STRONG.getMedianFemininity());
          CharacterCreation.getDressed();
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      Personality personality : Personality.values()) {
        id="String_Node_Str" + personality;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setPersonality(personality);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      SexualOrientation orientation : SexualOrientation.values()) {
        id="String_Node_Str" + orientation;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setSexualOrientation(orientation);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      int i : CharacterModificationUtils.heightChoices) {
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setHeight(i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      BodySize bs : BodySize.values()) {
        id="String_Node_Str" + bs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setBodySize(bs.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      Muscle muscle : Muscle.values()) {
        id="String_Node_Str" + muscle;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setMuscle(muscle.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      LipSize ls : LipSize.values()) {
        id="String_Node_Str" + ls;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setLipSize(ls.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().addFaceOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().removeFaceOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      CupSize cs : CharacterModificationUtils.getBreastSizesAvailable()) {
        id="String_Node_Str" + cs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setBreastSize(cs.getMeasurement());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      BreastShape bs : BreastShape.values()) {
        id="String_Node_Str" + bs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setBreastShape(bs);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      NippleSize ns : CharacterModificationUtils.getNippleSizesAvailable()) {
        id="String_Node_Str" + ns;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setNippleSize(ns.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AreolaeSize as : CharacterModificationUtils.getAreolaeSizesAvailable()) {
        id="String_Node_Str" + as;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setAreolaeSize(as.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().addNippleOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().removeNippleOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      int i : CharacterModificationUtils.getLactationQuantitiesAvailable()) {
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setBreastLactation(i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AssSize as : CharacterModificationUtils.getAssSizesAvailable()) {
        id="String_Node_Str" + as;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setAssSize(as.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      HipSize hs : CharacterModificationUtils.getHipSizesAvailable()) {
        id="String_Node_Str" + hs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setHipSize(hs.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setAssBleached(true);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getPlayer().setAssBleached(false);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      int ps : CharacterModificationUtils.getPenisSizesAvailable()) {
        id="String_Node_Str" + ps;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setPenisSize(ps);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      TesticleSize ts : CharacterModificationUtils.getTesticleSizesAvailable()) {
        id="String_Node_Str" + ts;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setTesticleSize(ts.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      CumProduction cp : CharacterModificationUtils.getCumProductionAvailable()) {
        id="String_Node_Str" + cp;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setCumProduction(cp.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      Capacity capacity : Capacity.values()) {
        id="String_Node_Str" + capacity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setVaginaCapacity(capacity.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      ClitorisSize cs : ClitorisSize.values()) {
        id="String_Node_Str" + cs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setVaginaClitorisSize(cs.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      LabiaSize ls : LabiaSize.values()) {
        id="String_Node_Str" + ls;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getPlayer().setVaginaLabiaSize(ls.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
    }
    boolean noCost=!Main.game.isInNewWorld();
    for (    BodyCoveringType bct : BodyCoveringType.values()) {
      id=bct + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),false,Main.game.getPlayer().getCovering(bct).getSecondaryColour(),Main.game.getPlayer().getCovering(bct).isSecondaryGlowing()),false);
              }
            }
);
          }
        }
,false);
      }
      id=bct + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),true,Main.game.getPlayer().getCovering(bct).getSecondaryColour(),Main.game.getPlayer().getCovering(bct).isSecondaryGlowing()),false);
              }
            }
);
          }
        }
,false);
      }
      id=bct + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),Main.game.getPlayer().getCovering(bct).isPrimaryGlowing(),Main.game.getPlayer().getCovering(bct).getSecondaryColour(),false),false);
              }
            }
);
          }
        }
,false);
      }
      id=bct + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),Main.game.getPlayer().getCovering(bct).isPrimaryGlowing(),Main.game.getPlayer().getCovering(bct).getSecondaryColour(),true),false);
              }
            }
);
          }
        }
,false);
      }
      for (      CoveringPattern pattern : CoveringPattern.values()) {
        id=bct + "String_Node_Str" + pattern;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                  Main.game.getPlayer().setSkinCovering(new Covering(bct,pattern,Main.game.getPlayer().getCovering(bct).getPrimaryColour(),Main.game.getPlayer().getCovering(bct).isPrimaryGlowing(),Main.game.getPlayer().getCovering(bct).getSecondaryColour(),Main.game.getPlayer().getCovering(bct).isSecondaryGlowing()),false);
                }
              }
);
            }
          }
,false);
        }
      }
      for (      Colour colour : bct.getAllColours()) {
        id=bct + "String_Node_Str" + colour;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                  Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),colour,(colour == Colour.COVERING_NONE ? false : Main.game.getPlayer().getCovering(bct).isPrimaryGlowing()),Main.game.getPlayer().getCovering(bct).getSecondaryColour(),Main.game.getPlayer().getCovering(bct).isSecondaryGlowing()),false);
                  if (noCost) {
                    if (bct == BodyCoveringType.HUMAN) {
                      Main.game.getPlayer().getBody().updateCoverings(false,false,false,true);
                    }
                  }
                }
              }
);
            }
          }
,false);
        }
        id=bct + "String_Node_Str" + colour;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getBodyCoveringTypeCost(bct) || noCost) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                  Main.game.getPlayer().setSkinCovering(new Covering(bct,Main.game.getPlayer().getCovering(bct).getPattern(),Main.game.getPlayer().getCovering(bct).getPrimaryColour(),Main.game.getPlayer().getCovering(bct).isPrimaryGlowing(),colour,(colour == Colour.COVERING_NONE ? false : Main.game.getPlayer().getCovering(bct).isSecondaryGlowing())),false);
                }
              }
);
            }
          }
,false);
        }
      }
    }
    for (    HairLength hairLength : HairLength.values()) {
      id="String_Node_Str" + hairLength;
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_HAIR_LENGTH_COST || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_HAIR_LENGTH_COST);
                Main.game.getPlayer().setHairLength(hairLength.getMedianValue());
              }
            }
);
          }
        }
,false);
      }
    }
    for (    HairStyle hairStyle : HairStyle.values()) {
      id="String_Node_Str" + hairStyle;
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_HAIR_STYLE_COST || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_HAIR_STYLE_COST);
                Main.game.getPlayer().setHairStyle(hairStyle);
              }
            }
);
          }
        }
,false);
      }
    }
    for (    PiercingType piercingType : PiercingType.values()) {
      id=piercingType + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getPiercingCost(piercingType) || noCost) {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getPiercingCost(piercingType));
switch (piercingType) {
case EAR:
                  Main.game.getPlayer().setPiercedEar(false);
                break;
case LIP:
              Main.game.getPlayer().setPiercedLip(false);
            break;
case NAVEL:
          Main.game.getPlayer().setPiercedNavel(false);
        break;
case NIPPLE:
      Main.game.getPlayer().setPiercedNipples(false);
    break;
case NOSE:
  Main.game.getPlayer().setPiercedNose(false);
break;
case PENIS:
Main.game.getPlayer().setPiercedPenis(false);
break;
case TONGUE:
Main.game.getPlayer().setPiercedTongue(false);
break;
case VAGINA:
Main.game.getPlayer().setPiercedVagina(false);
break;
}
}
}
);
}
}
,false);
}
id=piercingType + "String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.getPiercingCost(piercingType) || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getPiercingCost(piercingType));
switch (piercingType) {
case EAR:
Main.game.getPlayer().setPiercedEar(true);
break;
case LIP:
Main.game.getPlayer().setPiercedLip(true);
break;
case NAVEL:
Main.game.getPlayer().setPiercedNavel(true);
break;
case NIPPLE:
Main.game.getPlayer().setPiercedNipples(true);
break;
case NOSE:
Main.game.getPlayer().setPiercedNose(true);
break;
case PENIS:
Main.game.getPlayer().setPiercedPenis(true);
break;
case TONGUE:
Main.game.getPlayer().setPiercedTongue(true);
break;
case VAGINA:
Main.game.getPlayer().setPiercedVagina(true);
break;
}
}
}
);
}
}
,false);
}
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_ANAL_BLEACHING_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_ANAL_BLEACHING_COST);
Main.game.getPlayer().setAssBleached(false);
}
}
);
}
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_ANAL_BLEACHING_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_ANAL_BLEACHING_COST);
Main.game.getPlayer().setAssBleached(true);
}
}
);
}
}
,false);
}
for (BodyHair bodyHair : BodyHair.values()) {
id="String_Node_Str" + bodyHair;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_BODY_HAIR_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
Main.game.getPlayer().setAssHair(bodyHair);
}
}
);
}
}
,false);
}
id="String_Node_Str" + bodyHair;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_BODY_HAIR_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
Main.game.getPlayer().setUnderarmHair(bodyHair);
}
}
);
}
}
,false);
}
id="String_Node_Str" + bodyHair;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_BODY_HAIR_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
Main.game.getPlayer().setPubicHair(bodyHair);
}
}
);
}
}
,false);
}
id="String_Node_Str" + bodyHair;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getMoney() >= SuccubisSecrets.BASE_BODY_HAIR_COST || noCost) {
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
@Override public void effects(){
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
Main.game.getPlayer().setFacialHair(bodyHair);
}
}
);
}
}
,false);
}
}
for (AbstractClothingType clothing : ClothingType.getAllClothing()) for (Colour c : clothing.getAvailableColours()) {
if ((EventTarget)document.getElementById(clothing.hashCode() + "String_Node_Str" + c.toString()) != null) {
addEventListener(document,clothing.hashCode() + "String_Node_Str" + c.toString(),"String_Node_Str",moveTooltipListener,false);
addEventListener(document,clothing.hashCode() + "String_Node_Str" + c.toString(),"String_Node_Str",hideTooltipListener,false);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setGenericClothing(clothing,c);
addEventListener(document,clothing.hashCode() + "String_Node_Str" + c.toString(),"String_Node_Str",el2,false);
}
}
for (AbstractWeaponType weapon : WeaponType.allweapons) for (DamageType dt : weapon.getAvailableDamageTypes()) {
if ((EventTarget)document.getElementById(weapon.hashCode() + "String_Node_Str" + dt.toString()) != null) {
addEventListener(document,weapon.hashCode() + "String_Node_Str" + dt.toString(),"String_Node_Str",moveTooltipListener,false);
addEventListener(document,weapon.hashCode() + "String_Node_Str" + dt.toString(),"String_Node_Str",hideTooltipListener,false);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setGenericWeapon(weapon,dt);
addEventListener(document,weapon.hashCode() + "String_Node_Str" + dt.toString(),"String_Node_Str",el2,false);
}
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().increaseStrength(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().decreaseStrength(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().increaseIntelligence(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().decreaseIntelligence(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().increaseFitness(),false);
if (((EventTarget)document.getElementById("String_Node_Str")) != null) addEventListener(document,"String_Node_Str","String_Node_Str",new LevelUpButtonsEventListener().decreaseFitness(),false);
for (Perk p : Perk.values()) {
if (((EventTarget)document.getElementById("String_Node_Str" + p)) != null) {
addEventListener(document,"String_Node_Str" + p,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str" + p,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,"String_Node_Str" + p,"String_Node_Str",new TooltipInformationEventListener().setLevelUpPerk(p,Main.game.getPlayer()),false);
addEventListener(document,"String_Node_Str" + p,"String_Node_Str",new LevelUpButtonsEventListener().handlePerkPress(p),false);
}
}
for (Fetish f : Fetish.values()) {
if (((EventTarget)document.getElementById("String_Node_Str" + f)) != null) {
addEventListener(document,"String_Node_Str" + f,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str" + f,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,"String_Node_Str" + f,"String_Node_Str",new TooltipInformationEventListener().setFetish(f,Main.game.getPlayer()),false);
addEventListener(document,"String_Node_Str" + f,"String_Node_Str",new LevelUpButtonsEventListener().handleFetishPress(f),false);
}
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.KEYBINDS) {
for (KeyboardAction ka : KeyboardAction.values()) {
if (((EventTarget)document.getElementById("String_Node_Str" + ka)) != null) ((EventTarget)document.getElementById("String_Node_Str" + ka)).addEventListener("String_Node_Str",e -> {
actionToBind=ka;
primaryBinding=true;
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
if (((EventTarget)document.getElementById("String_Node_Str" + ka)) != null) ((EventTarget)document.getElementById("String_Node_Str" + ka)).addEventListener("String_Node_Str",e -> {
Main.getProperties().hotkeyMapPrimary.put(ka,null);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
if (((EventTarget)document.getElementById("String_Node_Str" + ka)) != null) ((EventTarget)document.getElementById("String_Node_Str" + ka)).addEventListener("String_Node_Str",e -> {
actionToBind=ka;
primaryBinding=false;
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
if (((EventTarget)document.getElementById("String_Node_Str" + ka)) != null) ((EventTarget)document.getElementById("String_Node_Str" + ka)).addEventListener("String_Node_Str",e -> {
Main.getProperties().hotkeyMapSecondary.put(ka,null);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.GENDER_PREFERENCE) {
for (Gender g : Gender.values()) {
for (GenderPreference preference : GenderPreference.values()) {
if (((EventTarget)document.getElementById(preference + "String_Node_Str" + g)) != null) {
((EventTarget)document.getElementById(preference + "String_Node_Str" + g)).addEventListener("String_Node_Str",e -> {
Main.getProperties().genderPreferencesMap.put(g,preference.getValue());
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
}
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.FURRY_PREFERENCE) {
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=0;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=1;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=2;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=3;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().humanEncountersLevel=4;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.HUMAN;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.MINIMUM;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.REDUCED;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.NORMAL;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFPreference=FurryPreference.MAXIMUM;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().multiBreasts=0;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().multiBreasts=1;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.getProperties().multiBreasts=2;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,"String_Node_Str","String_Node_Str",moveTooltipListener,false);
addEventListener(document,"String_Node_Str","String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,"String_Node_Str","String_Node_Str",el,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.HUMAN);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.HUMAN);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.MINIMUM);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.MINIMUM);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.REDUCED);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.REDUCED);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.NORMAL);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.NORMAL);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
for (Race r : Race.values()) {
if (r.isAffectedByFurryPreference()) {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.MAXIMUM);
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.MAXIMUM);
}
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
for (Race r : Race.values()) {
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.HUMAN);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.HUMAN.getName(),FurryPreference.HUMAN.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.MINIMUM);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.MINIMUM.getName(),FurryPreference.MINIMUM.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.REDUCED);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.REDUCED.getName(),FurryPreference.REDUCED.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.NORMAL);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.NORMAL.getName(),FurryPreference.NORMAL.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceFemininePreferencesMap.put(r,FurryPreference.MAXIMUM);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.MAXIMUM.getName(),FurryPreference.MAXIMUM.getDescriptionFeminine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.HUMAN);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.HUMAN.getName(),FurryPreference.HUMAN.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.MINIMUM);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.MINIMUM.getName(),FurryPreference.MINIMUM.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.REDUCED);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.REDUCED.getName(),FurryPreference.REDUCED.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.NORMAL);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.NORMAL.getName(),FurryPreference.NORMAL.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + r;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().raceMasculinePreferencesMap.put(r,FurryPreference.MAXIMUM);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(FurryPreference.MAXIMUM.getName(),FurryPreference.MAXIMUM.getDescriptionMasculine(r));
addEventListener(document,id,"String_Node_Str",el,false);
}
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.CONTENT_PREFERENCE || Main.game.getCurrentDialogueNode() == CharacterCreation.CONTENT_PREFERENCES) {
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().nonConContent=true;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().nonConContent=false;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().incestContent=true;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().incestContent=false;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().facialHairContent=!Main.getProperties().facialHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().facialHairContent=!Main.getProperties().facialHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().pubicHairContent=!Main.getProperties().pubicHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().pubicHairContent=!Main.getProperties().pubicHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().bodyHairContent=!Main.getProperties().bodyHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().bodyHairContent=!Main.getProperties().bodyHairContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().furryTailPenetrationContent=!Main.getProperties().furryTailPenetrationContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().furryTailPenetrationContent=!Main.getProperties().furryTailPenetrationContent;
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.SAVE_LOAD && !Main.game.isInCombat() && !Main.game.isInSex()) {
for (File f : Main.getSavedGames()) {
if (((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))) != null) {
((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))).addEventListener("String_Node_Str",e -> {
if (!Main.getProperties().overwriteWarning || OptionsDialogue.overwriteConfirmationName.equals(f.getName())) {
OptionsDialogue.overwriteConfirmationName="String_Node_Str";
Main.saveGame(f.getName().substring(0,f.getName().lastIndexOf('.')),true);
}
 else {
OptionsDialogue.overwriteConfirmationName=f.getName();
OptionsDialogue.loadConfirmationName="String_Node_Str";
OptionsDialogue.deleteConfirmationName="String_Node_Str";
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",OptionsDialogue.SAVE_LOAD));
}
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))) != null) {
((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))).addEventListener("String_Node_Str",e -> {
if (!Main.getProperties().overwriteWarning || OptionsDialogue.loadConfirmationName.equals(f.getName())) {
OptionsDialogue.loadConfirmationName="String_Node_Str";
Main.loadGame(f.getName().substring(0,f.getName().lastIndexOf('.')));
}
 else {
OptionsDialogue.overwriteConfirmationName="String_Node_Str";
OptionsDialogue.loadConfirmationName=f.getName();
OptionsDialogue.deleteConfirmationName="String_Node_Str";
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",OptionsDialogue.SAVE_LOAD));
}
}
,false);
}
if (((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))) != null) {
((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))).addEventListener("String_Node_Str",e -> {
if (!Main.getProperties().overwriteWarning || OptionsDialogue.deleteConfirmationName.equals(f.getName())) {
OptionsDialogue.deleteConfirmationName="String_Node_Str";
Main.deleteGame(f.getName().substring(0,f.getName().lastIndexOf('.')));
}
 else {
OptionsDialogue.overwriteConfirmationName="String_Node_Str";
OptionsDialogue.loadConfirmationName="String_Node_Str";
OptionsDialogue.deleteConfirmationName=f.getName();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",OptionsDialogue.SAVE_LOAD));
}
}
,false);
}
}
if (((EventTarget)document.getElementById("String_Node_Str")) != null) {
((EventTarget)document.getElementById("String_Node_Str")).addEventListener("String_Node_Str",e -> {
Main.mainController.getWebEngine().executeScript("String_Node_Str");
Main.saveGame(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent(),false);
}
,false);
}
}
if (Main.game.getCurrentDialogueNode() == CharacterCreation.IMPORT_CHOOSE) {
for (File f : Main.getCharactersForImport()) {
if (((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))) != null) {
((EventTarget)document.getElementById("String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.')))).addEventListener("String_Node_Str",e -> {
Main.importCharacter(f);
}
,false);
}
}
}
}