Program: 171281
Project: 171281
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 (((EventTarget)document.getElementById("String_Node_Str")) != null) {
    addEventListener(document,"String_Node_Str","String_Node_Str",e -> {
      if (Main.game.getCurrentDialogueNode().equals(CharactersPresentDialogue.MENU)) {
        Game.exportCharacter(CharactersPresentDialogue.characterViewed);
      }
 else {
        Game.exportCharacter(Main.game.getPlayer());
      }
      Main.game.flashMessage(Colour.GENERIC_EXCELLENT,"String_Node_Str");
    }
,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",new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str"),false);
  }
  if (Main.game.getCurrentDialogueNode().equals(DebugDialogue.SPAWN_MENU)) {
    id="String_Node_Str";
    for (    AbstractClothingType clothingType : DebugDialogue.clothingTotal) {
      id=clothingType.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getActiveWorld().getCell(Main.game.getPlayer().getLocation()).getInventory().addClothing(AbstractClothingType.generateClothing(clothingType));
          this.updateUIRightPanel();
        }
,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el=new InventoryTooltipEventListener().setGenericClothing(clothingType,clothingType.getAvailablePrimaryColours().get(0));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
    }
    for (    AbstractWeaponType weaponType : DebugDialogue.weaponsTotal) {
      id=weaponType.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getActiveWorld().getCell(Main.game.getPlayer().getLocation()).getInventory().addWeapon(AbstractWeaponType.generateWeapon(weaponType));
          this.updateUIRightPanel();
        }
,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el=new InventoryTooltipEventListener().setGenericWeapon(weaponType,weaponType.getAvailableDamageTypes().get(0));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
    }
    for (    AbstractItemType itemType : DebugDialogue.itemsTotal) {
      id=itemType.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getActiveWorld().getCell(Main.game.getPlayer().getLocation()).getInventory().addItem(AbstractItemType.generateItem(itemType));
          this.updateUIRightPanel();
        }
,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el=new InventoryTooltipEventListener().setGenericItem(itemType);
        addEventListener(document,id,"String_Node_Str",el,false);
      }
    }
    for (    InventorySlot slot : InventorySlot.values()) {
      id=slot + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          DebugDialogue.activeSlot=slot;
          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 -> {
        DebugDialogue.activeSlot=null;
        Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
      }
,false);
    }
  }
  if (Main.game.getCurrentDialogueNode() == CharacterCreation.BACKGROUND_SELECTION_MENU) {
    for (    History history : History.values()) {
      id="String_Node_Str" + history;
      if (((EventTarget)document.getElementById(id)) != null) {
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setPerk(history.getAssociatedPerk(),Main.game.getPlayer()),false);
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",event -> {
          Main.game.getPlayer().setHistory(history);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,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);
        }
      }
    }
    if (Main.game.getCurrentDialogueNode().equals(GiftDialogue.GIFT_DIALOGUE)) {
      for (      Entry<AbstractWeapon,Integer> entry : Main.game.getPlayer().getMapOfDuplicateWeapons().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        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",GiftDialogue.getDialogueToProceedTo()){
              @Override public void effects(){
                Main.game.getTextStartStringBuilder().append(GiftDialogue.getReceiver().getGiftReaction(entry.getKey(),true));
                Main.game.getPlayer().removeWeapon(entry.getKey());
              }
            }
);
          }
,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) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",GiftDialogue.getDialogueToProceedTo()){
              @Override public void effects(){
                Main.game.getTextStartStringBuilder().append(GiftDialogue.getReceiver().getGiftReaction(entry.getKey(),true));
                Main.game.getPlayer().removeItem(entry.getKey());
              }
            }
);
          }
,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) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",GiftDialogue.getDialogueToProceedTo()){
              @Override public void effects(){
                Main.game.getTextStartStringBuilder().append(GiftDialogue.getReceiver().getGiftReaction(entry.getKey(),true));
                Main.game.getPlayer().removeClothing(entry.getKey());
              }
            }
);
          }
,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);
        }
      }
    }
    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) {
      String idModifier="String_Node_Str" + InventoryDialogue.getInventoryNPC().getId() + "String_Node_Str";
      for (      Entry<AbstractWeapon,Integer> entry : InventoryDialogue.getInventoryNPC().getMapOfDuplicateWeapons().entrySet()) {
        id=idModifier + "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=idModifier + "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=idModifier + "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);
    }
    for (    TFPotency potency : TFPotency.values()) {
      id="String_Node_Str" + potency;
      if (((EventTarget)document.getElementById(id)) != null) {
        EnchantmentEventListener el=new EnchantmentEventListener().setPotency(potency);
        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().setTFPotency(potency);
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    for (int effectCount=0; effectCount < EnchantmentDialogue.effects.size(); effectCount++) {
      id="String_Node_Str" + effectCount;
      if (((EventTarget)document.getElementById(id)) != null) {
        EnchantmentEventListener el=new EnchantmentEventListener().removeEffect(effectCount);
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit > 0) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(0);
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit == 0 ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit > 0) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(Math.max(0,EnchantmentDialogue.limit - (EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod) / 10)));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit == 0 ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit > 0) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(EnchantmentDialogue.limit - 1);
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit == 0 ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod)) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(EnchantmentDialogue.limit + 1);
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod) ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      int limit=EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod);
      if (EnchantmentDialogue.limit < limit) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(Math.min(limit,EnchantmentDialogue.limit + (limit / 10)));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod) ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod)) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod) ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"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.setResponseTab(1);
        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;
      if (EnchantmentDialogue.ingredient instanceof AbstractItem) {
        el2=new InventoryTooltipEventListener().setItem((AbstractItem)EnchantmentDialogue.ingredient,Main.game.getPlayer(),null);
      }
 else       if (EnchantmentDialogue.ingredient instanceof AbstractClothing) {
        el2=new InventoryTooltipEventListener().setClothing((AbstractClothing)EnchantmentDialogue.ingredient,Main.game.getPlayer(),null);
      }
 else {
        el2=new InventoryTooltipEventListener().setWeapon((AbstractWeapon)EnchantmentDialogue.ingredient,Main.game.getPlayer());
      }
      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 ((EnchantmentDialogue.previousIngredient instanceof AbstractItem ? Main.game.getPlayer().hasItem((AbstractItem)EnchantmentDialogue.previousIngredient) : true) && (EnchantmentDialogue.previousIngredient instanceof AbstractClothing ? Main.game.getPlayer().hasClothing((AbstractClothing)EnchantmentDialogue.previousIngredient) : true) && (EnchantmentDialogue.previousIngredient instanceof AbstractWeapon ? Main.game.getPlayer().hasWeapon((AbstractWeapon)EnchantmentDialogue.previousIngredient) : true)) {
                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);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      ((EventTarget)document.getElementById(id)).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,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="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);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str",EnchantmentDialogue.effects.size() >= EnchantmentDialogue.ingredient.getEnchantmentLimit() ? "String_Node_Str" : "String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,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);
        }
      }
    }
    if (Main.game.getCurrentDialogueNode() == SlaveryManagementDialogue.ROOM_MANAGEMENT) {
      for (      Cell c : SlaveryManagementDialogue.importantCells) {
        id=c.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",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                SlaveryManagementDialogue.cellToInspect=c;
              }
              @Override public DialogueNodeOld getNextDialogue(){
                return SlaveryManagementDialogue.ROOM_UPGRADES;
              }
            }
);
          }
,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=c.getId() + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=c.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(){
                SlaveryManagementDialogue.cellToInspect=c;
              }
              @Override public DialogueNodeOld getNextDialogue(){
                return SlaveryManagementDialogue.ROOM_UPGRADES;
              }
            }
);
          }
,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=c.getId() + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
          addEventListener(document,id,"String_Node_Str",el,false);
        }
      }
    }
    if (Main.game.getCurrentDialogueNode() == SlaveryManagementDialogue.ROOM_UPGRADES) {
      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 -> {
            if (placeUpgrade != PlaceUpgrade.LILAYA_ARTHUR_ROOM) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  SlaveryManagementDialogue.cellToInspect.getPlace().addPlaceUpgrade(placeUpgrade);
                  Main.game.getPlayer().incrementMoney(-placeUpgrade.getInstallCost());
                }
              }
);
            }
 else {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",LilayaHomeGeneric.ROOM_ARTHUR_INSTALLATION){
                @Override public void effects(){
                  Main.game.getArthur().setLocation(Main.game.getPlayer().getWorldLocation(),Main.game.getPlayer().getLocation(),true);
                  SlaveryManagementDialogue.cellToInspect.getPlace().addPlaceUpgrade(placeUpgrade);
                  Main.game.getDialogueFlags().setFlag(DialogueFlagValue.arthursRoomInstalled,true);
                }
              }
);
            }
          }
,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" + UtilText.formatAsMoney(placeUpgrade.getInstallCost()) + "String_Node_Str"+ SlaveryManagementDialogue.getPurchaseAvailabilityTooltipText(SlaveryManagementDialogue.cellToInspect.getPlace(),placeUpgrade));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=placeUpgrade + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str" + UtilText.formatAsMoney(placeUpgrade.getInstallCost()) + "String_Node_Str"+ SlaveryManagementDialogue.getPurchaseAvailabilityTooltipText(SlaveryManagementDialogue.cellToInspect.getPlace(),placeUpgrade));
          addEventListener(document,id,"String_Node_Str",el,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(){
                SlaveryManagementDialogue.cellToInspect.getPlace().removePlaceUpgrade(placeUpgrade);
                Main.game.getPlayer().incrementMoney(-placeUpgrade.getRemovalCost());
              }
            }
);
          }
,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" + UtilText.formatAsMoney(placeUpgrade.getRemovalCost()) + "String_Node_Str"+ SlaveryManagementDialogue.getPurchaseAvailabilityTooltipText(SlaveryManagementDialogue.cellToInspect.getPlace(),placeUpgrade));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=placeUpgrade + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",(placeUpgrade.isCoreRoomUpgrade() ? "String_Node_Str" : "String_Node_Str" + UtilText.formatAsMoney(placeUpgrade.getRemovalCost()) + "String_Node_Str"+ SlaveryManagementDialogue.getPurchaseAvailabilityTooltipText(SlaveryManagementDialogue.cellToInspect.getPlace(),placeUpgrade)));
          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 -> {
          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) {
              unsuitableName=Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32;
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  SlaveryManagementDialogue.cellToInspect.getPlace().setName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                }
              }
);
            }
          }
        }
,false);
      }
    }
    if (Main.game.getCurrentDialogueNode() == SlaveryManagementDialogue.SLAVERY_OVERVIEW) {
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          SlaveryManagementDialogue.incrementDayNumber(-1);
          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 -> {
          SlaveryManagementDialogue.incrementDayNumber(1);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
    }
    if (Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected() != null) {
      id=Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().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().getSlaveryManagerSlaveSelected().setName(new NameTriplet(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent()));
                }
              }
);
            }
          }
        }
,false);
      }
      id=Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().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) {
              unsuitableName=Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32;
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().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) {
              unsuitableName=Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32;
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  for (                  String id : Main.game.getPlayer().getSlavesOwned()) {
                    Main.game.getNPCById(id).setPlayerPetName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                  }
                }
              }
);
            }
          }
        }
,false);
      }
      for (int i=0; i < 24; i++) {
        allocateWorkTime(i);
      }
      for (      SlaveJobHours preset : SlaveJobHours.values()) {
        id=preset + "String_Node_Str";
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().resetWorkHours();
            for (int hour=preset.getStartHour(); hour < preset.getStartHour() + preset.getLength(); hour++) {
              if (hour >= 24) {
                Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().setWorkHour(hour - 24,true);
              }
 else {
                Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().setWorkHour(hour,true);
              }
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
          }
,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",preset.getDescription());
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=preset + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
          addEventListener(document,id,"String_Node_Str",el,false);
        }
      }
      for (      SlaveJob job : SlaveJob.values()) {
        id=job + "String_Node_Str";
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().setSlaveJob(job);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
          }
,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",job.getDescription());
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=job + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected(),job.getAvailabilityText(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        for (        SlaveJobSetting setting : job.getMutualSettings()) {
          id=setting + "String_Node_Str";
          if (((EventTarget)document.getElementById(id)) != null) {
            ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
              Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().addSlaveJobSettings(setting);
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
            }
,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",setting.getDescription());
            addEventListener(document,id,"String_Node_Str",el,false);
          }
          id=setting + "String_Node_Str";
          if (((EventTarget)document.getElementById(id)) != null) {
            ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
              Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().removeSlaveJobSettings(setting);
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
            }
,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",setting.getDescription());
            addEventListener(document,id,"String_Node_Str",el,false);
          }
          id=setting + "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);
            TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected(),"String_Node_Str"));
            addEventListener(document,id,"String_Node_Str",el,false);
          }
        }
        for (        Entry<String,List<SlaveJobSetting>> entry : job.getMutuallyExclusiveSettings().entrySet()) {
          for (          SlaveJobSetting setting : entry.getValue()) {
            id=setting + "String_Node_Str";
            if (((EventTarget)document.getElementById(id)) != null) {
              ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
                for (                SlaveJobSetting settingRem : entry.getValue()) {
                  Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().removeSlaveJobSettings(settingRem);
                }
                Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().addSlaveJobSettings(setting);
                Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
              }
,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",setting.getDescription());
              addEventListener(document,id,"String_Node_Str",el,false);
            }
            id=setting + "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);
              TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",setting.getDescription());
              addEventListener(document,id,"String_Node_Str",el,false);
            }
          }
        }
      }
      for (      SlavePermission permission : SlavePermission.values()) {
        for (        SlavePermissionSetting setting : permission.getSettings()) {
          id=setting + "String_Node_Str";
          if (((EventTarget)document.getElementById(id)) != null) {
            ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
              Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().addSlavePermissionSetting(permission,setting);
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlavePermissionsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
            }
,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",setting.getDescription());
            addEventListener(document,id,"String_Node_Str",el,false);
          }
          id=setting + "String_Node_Str";
          if (((EventTarget)document.getElementById(id)) != null) {
            ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
              Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().removeSlavePermissionSetting(permission,setting);
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlavePermissionsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
            }
,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",setting.getDescription());
            addEventListener(document,id,"String_Node_Str",el,false);
          }
          id=setting + "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);
            TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
            addEventListener(document,id,"String_Node_Str",el,false);
          }
        }
      }
    }
    for (    String slaveId : Main.game.getPlayer().getSlavesOwned()) {
      id=slaveId;
      NPC slave=(NPC)Main.game.getNPCById(slaveId);
      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",SlaveryManagementDialogue.getSlaveryManagementInspectSlaveDialogue(slave)));
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(slave)));
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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",SlaveryManagementDialogue.getSlaveryManagementSlavePermissionsDialogue(slave)));
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.mainController.openInventory(slave,InventoryInteraction.FULL_MANAGEMENT);
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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(){
              slave.setHomeLocation(Main.game.getPlayer().getWorldLocation(),Main.game.getPlayer().getLocation());
              slave.returnToHome();
            }
          }
);
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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().getSlaveTrader().getBuyModifier()));
              Main.game.getDialogueFlags().getSlaveTrader().addSlave(slave);
              slave.setLocation(Main.game.getDialogueFlags().getSlaveTrader().getWorldLocation(),Main.game.getDialogueFlags().getSlaveTrader().getLocation(),true);
            }
          }
);
        }
,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",UtilText.parse(slave,"String_Node_Str" + UtilText.formatAsMoney(slave.getValueAsSlave(),"String_Node_Str",Colour.GENERIC_GOOD) + "String_Node_Str"+ "String_Node_Str"+ Main.game.getDialogueFlags().getSlaveTrader().getName()+ "String_Node_Str"+ UtilText.formatAsMoney((int)(slave.getValueAsSlave() * Main.game.getDialogueFlags().getSlaveTrader().getBuyModifier()),"String_Node_Str",Colour.GENERIC_ARCANE)+ "String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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",SlaveryManagementDialogue.SLAVE_MANAGEMENT_COSMETICS_HAIR){
            @Override public void effects(){
              Main.game.getDialogueFlags().setSlaveryManagerSlaveSelected(slave);
              BodyChanging.setTarget(slave);
            }
          }
);
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
    }
    if (Main.game.getDialogueFlags().getSlaveTrader() != null) {
      for (      String slaveId : Main.game.getDialogueFlags().getSlaveTrader().getSlavesOwned()) {
        id=slaveId + "String_Node_Str";
        NPC slave=(NPC)Main.game.getNPCById(slaveId);
        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",SlaveryManagementDialogue.getSlaveryManagementInspectSlaveDialogue(slave)));
          }
,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",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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().getSlaveTrader().getSellModifier()));
                Main.game.getPlayer().addSlave(slave);
                slave.setLocation(WorldType.SLAVER_ALLEY,PlaceType.SLAVER_ALLEY_SLAVERY_ADMINISTRATION,true);
              }
            }
);
          }
,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",UtilText.parse(slave,"String_Node_Str" + UtilText.formatAsMoney(slave.getValueAsSlave(),"String_Node_Str",Colour.GENERIC_GOOD) + "String_Node_Str"+ "String_Node_Str"+ Main.game.getDialogueFlags().getSlaveTrader().getName()+ "String_Node_Str"+ UtilText.formatAsMoney((int)(slave.getValueAsSlave() * Main.game.getDialogueFlags().getSlaveTrader().getSellModifier()),"String_Node_Str",Colour.GENERIC_ARCANE)+ "String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,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()) {
      for (      Month month : Month.values()) {
        id="String_Node_Str" + month;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.setStartingDateMonth(month);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      int i : CharacterModificationUtils.soSilly) {
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.FINGER,OrificeType.URETHRA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.FINGER,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.PENIS,OrificeType.MOUTH),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.TONGUE,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.PENIS,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.PENIS,OrificeType.ANUS),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.FINGER,OrificeType.URETHRA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.FINGER,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.PENIS,OrificeType.MOUTH),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.TONGUE,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.PENIS,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.PENIS,OrificeType.ANUS),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
    }
    if (!Main.game.isInNewWorld() || Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_CORE) || Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_FACE)|| Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_ASS)|| Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_BREASTS)|| Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_VAGINA)|| Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_PENIS)) {
      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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.MASCULINE_STRONG.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.MASCULINE.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.ANDROGYNOUS.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.FEMININE.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.FEMININE_STRONG.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setSexualOrientation(orientation);
            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 -> {
          BodyChanging.getTarget().incrementHeight(1);
          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 -> {
          BodyChanging.getTarget().incrementHeight(5);
          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 -> {
          BodyChanging.getTarget().incrementHeight(-1);
          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 -> {
          BodyChanging.getTarget().incrementHeight(-5);
          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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().removeFaceOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      CupSize cs : CupSize.values()) {
        id="String_Node_Str" + cs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setBreastShape(bs);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      NippleSize ns : NippleSize.values()) {
        id="String_Node_Str" + ns;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setNippleSize(ns.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AreolaeSize as : AreolaeSize.values()) {
        id="String_Node_Str" + as;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setBreastMilkStorage(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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setVaginaCapacity(capacity.getMedianValue(),true);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      Wetness wetness : Wetness.values()) {
        id="String_Node_Str" + wetness;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setVaginaWetness(wetness.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeElasticity elasticity : OrificeElasticity.values()) {
        id="String_Node_Str" + elasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setVaginaElasticity(elasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificePlasticity plasticity : OrificePlasticity.values()) {
        id="String_Node_Str" + plasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setVaginaPlasticity(plasticity.getValue());
            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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setVaginaLabiaSize(ls.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      ArmType armType : ArmType.values()) {
        id="String_Node_Str" + armType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setArmType(armType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      EyeType eyeType : EyeType.values()) {
        id="String_Node_Str" + eyeType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setEyeType(eyeType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      EarType earType : EarType.values()) {
        id="String_Node_Str" + earType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setEarType(earType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      HornType hornType : HornType.values()) {
        id="String_Node_Str" + hornType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setHornType(hornType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AntennaType antennaType : AntennaType.values()) {
        id="String_Node_Str" + antennaType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAntennaType(antennaType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      HairType hairType : HairType.values()) {
        id="String_Node_Str" + hairType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setHairType(hairType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      LegType legType : LegType.values()) {
        id="String_Node_Str" + legType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setLegType(legType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      FaceType faceType : FaceType.values()) {
        id="String_Node_Str" + faceType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setFaceType(faceType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      SkinType skinType : SkinType.values()) {
        id="String_Node_Str" + skinType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setSkinType(skinType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      TailType tailType : TailType.values()) {
        id="String_Node_Str" + tailType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setTailType(tailType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      WingType wingType : WingType.values()) {
        id="String_Node_Str" + wingType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setWingType(wingType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AssType assType : AssType.values()) {
        id="String_Node_Str" + assType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssType(assType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      BreastType breastType : BreastType.values()) {
        id="String_Node_Str" + breastType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setBreastType(breastType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      EyeShape eyeShape : EyeShape.values()) {
        id="String_Node_Str" + eyeShape;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setIrisShape(eyeShape);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + eyeShape;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setPupilShape(eyeShape);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      LipSize lipSize : LipSize.values()) {
        id="String_Node_Str" + lipSize;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setLipSize(lipSize.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasFaceOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeFaceOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addFaceOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      TongueModifier tongueMod : TongueModifier.values()) {
        id="String_Node_Str" + tongueMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasTongueModifier(tongueMod)) {
              BodyChanging.getTarget().removeTongueModifier(tongueMod);
            }
 else {
              BodyChanging.getTarget().addTongueModifier(tongueMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasAssOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeAssOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addAssOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AssSize as : AssSize.values()) {
        id="String_Node_Str" + as;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssSize(as.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      HipSize hs : HipSize.values()) {
        id="String_Node_Str" + hs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setHipSize(hs.getValue());
            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 -> {
            BodyChanging.getTarget().setAssCapacity(capacity.getMedianValue(),true);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      Wetness wetness : Wetness.values()) {
        id="String_Node_Str" + wetness;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssWetness(wetness.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeElasticity elasticity : OrificeElasticity.values()) {
        id="String_Node_Str" + elasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssElasticity(elasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificePlasticity plasticity : OrificePlasticity.values()) {
        id="String_Node_Str" + plasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssPlasticity(plasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (int i=1; i <= Breast.MAXIMUM_BREAST_ROWS; i++) {
        setBreastCountListener(i);
      }
      for (int i=1; i <= Breast.MAXIMUM_NIPPLES_PER_BREAST; i++) {
        setNippleCountListener(i);
      }
      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 -> {
            BodyChanging.getTarget().setNippleCapacity(capacity.getMedianValue(),true);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeElasticity elasticity : OrificeElasticity.values()) {
        id="String_Node_Str" + elasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setNippleElasticity(elasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificePlasticity plasticity : OrificePlasticity.values()) {
        id="String_Node_Str" + plasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setNipplePlasticity(plasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      int i : CharacterModificationUtils.demonLactationValues) {
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setBreastMilkStorage(i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasNippleOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeNippleOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addNippleOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      VaginaType vaginaType : VaginaType.values()) {
        id="String_Node_Str" + vaginaType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setVaginaType(vaginaType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasVaginaOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeVaginaOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addVaginaOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      PenisType penisType : PenisType.values()) {
        id="String_Node_Str" + penisType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setPenisType(penisType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      PenisSize ps : PenisSize.values()) {
        id="String_Node_Str" + ps.getMinimumValue();
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setPenisSize(ps.getMinimumValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + ps.getMedianValue();
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setPenisSize(ps.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      TesticleSize size : TesticleSize.values()) {
        id="String_Node_Str" + size;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setTesticleSize(size.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (int i=Testicle.MIN_TESTICLE_COUNT; i <= Testicle.MAX_TESTICLE_COUNT; i+=2) {
        setTesticleCountListener(i);
      }
      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 -> {
            BodyChanging.getTarget().setPenisCapacity(capacity.getMedianValue(),true);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      CumProduction cumProduction : CumProduction.values()) {
        id="String_Node_Str" + cumProduction.getMinimumValue();
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setCumProduction(cumProduction.getMinimumValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + cumProduction.getMedianValue();
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setCumProduction(cumProduction.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeElasticity elasticity : OrificeElasticity.values()) {
        id="String_Node_Str" + elasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setUrethraElasticity(elasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificePlasticity plasticity : OrificePlasticity.values()) {
        id="String_Node_Str" + plasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setUrethraPlasticity(plasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      PenisModifier orificeMod : PenisModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasPenisModifier(orificeMod)) {
              BodyChanging.getTarget().removePenisModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addPenisModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasUrethraOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeUrethraOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addUrethraOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
    }
    boolean noCost=!Main.game.isInNewWorld() || Main.game.getCurrentDialogueNode().getMapDisplay() == MapDisplay.PHONE;
    for (    BodyCoveringType bct : BodyCoveringType.values()) {
      id="String_Node_Str" + bct;
      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(){
                if (CharacterModificationUtils.getCoveringsToBeApplied().containsKey(bct)) {
                  if (!noCost) {
                    Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                  }
                  BodyChanging.getTarget().setSkinCovering(new Covering(CharacterModificationUtils.getCoveringsToBeApplied().get(bct)),false);
                  if (noCost) {
                    if (bct == BodyCoveringType.HUMAN) {
                      BodyChanging.getTarget().getBody().updateCoverings(false,false,false,true);
                    }
                  }
                }
              }
            }
);
          }
        }
,false);
      }
      id=bct + "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(){
              CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
              CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPrimaryGlowing(false);
            }
          }
);
        }
,false);
      }
      id=bct + "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(){
              CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
              CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPrimaryGlowing(true);
            }
          }
);
        }
,false);
      }
      id=bct + "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(){
              CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
              CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setSecondaryGlowing(false);
            }
          }
);
        }
,false);
      }
      id=bct + "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(){
              CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
              CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setSecondaryGlowing(true);
            }
          }
);
        }
,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 -> {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPattern(pattern);
              }
            }
);
          }
,false);
        }
      }
      for (      CoveringModifier modifier : CoveringModifier.values()) {
        id=bct + "String_Node_Str" + modifier;
        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(){
                CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setModifier(modifier);
              }
            }
);
          }
,false);
        }
      }
      for (      Colour colour : bct.getAllPrimaryColours()) {
        id=bct + "String_Node_Str" + colour;
        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(){
                CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPrimaryColour(colour);
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPrimaryGlowing((colour != Colour.COVERING_NONE && BodyChanging.getTarget().getCovering(bct).isPrimaryGlowing()));
              }
            }
);
          }
,false);
        }
      }
      for (      Colour colour : bct.getAllSecondaryColours()) {
        id=bct + "String_Node_Str" + colour;
        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(){
                CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setSecondaryColour(colour);
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setSecondaryGlowing(colour != Colour.COVERING_NONE && BodyChanging.getTarget().getCovering(bct).isSecondaryGlowing());
              }
            }
);
          }
,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(){
                if (!noCost) {
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_HAIR_LENGTH_COST);
                }
                BodyChanging.getTarget().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(){
                if (!noCost) {
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_HAIR_STYLE_COST);
                }
                BodyChanging.getTarget().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(){
                if (!noCost) {
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getPiercingCost(piercingType));
                }
switch (piercingType) {
case EAR:
                  BodyChanging.getTarget().setPiercedEar(false);
                break;
case LIP:
              BodyChanging.getTarget().setPiercedLip(false);
            break;
case NAVEL:
          BodyChanging.getTarget().setPiercedNavel(false);
        break;
case NIPPLE:
      BodyChanging.getTarget().setPiercedNipples(false);
    break;
case NOSE:
  BodyChanging.getTarget().setPiercedNose(false);
break;
case PENIS:
BodyChanging.getTarget().setPiercedPenis(false);
break;
case TONGUE:
BodyChanging.getTarget().setPiercedTongue(false);
break;
case VAGINA:
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getPiercingCost(piercingType));
}
switch (piercingType) {
case EAR:
BodyChanging.getTarget().setPiercedEar(true);
break;
case LIP:
BodyChanging.getTarget().setPiercedLip(true);
break;
case NAVEL:
BodyChanging.getTarget().setPiercedNavel(true);
break;
case NIPPLE:
BodyChanging.getTarget().setPiercedNipples(true);
break;
case NOSE:
BodyChanging.getTarget().setPiercedNose(true);
break;
case PENIS:
BodyChanging.getTarget().setPiercedPenis(true);
break;
case TONGUE:
BodyChanging.getTarget().setPiercedTongue(true);
break;
case VAGINA:
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_ANAL_BLEACHING_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_ANAL_BLEACHING_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
}
BodyChanging.getTarget().setFacialHair(bodyHair);
}
}
);
}
}
,false);
}
}
for (AbstractClothingType clothing : ClothingType.getAllClothing()) {
for (Colour c : clothing.getAllAvailablePrimaryColours()) {
id="String_Node_Str" + clothing.hashCode() + "String_Node_Str"+ c.toString();
if ((EventTarget)document.getElementById(id) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
InventoryDialogue.dyePreviewPrimary=c;
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);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setDyeClothingPrimary(InventoryDialogue.getClothing(),c);
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
if (!clothing.getAllAvailableSecondaryColours().isEmpty()) {
for (Colour c : clothing.getAllAvailableSecondaryColours()) {
id="String_Node_Str" + clothing.hashCode() + "String_Node_Str"+ c.toString();
if ((EventTarget)document.getElementById(id) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
InventoryDialogue.dyePreviewSecondary=c;
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);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setDyeClothingSecondary(InventoryDialogue.getClothing(),c);
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
}
if (!clothing.getAllAvailableTertiaryColours().isEmpty()) {
for (Colour c : clothing.getAllAvailableTertiaryColours()) {
id="String_Node_Str" + clothing.hashCode() + "String_Node_Str"+ c.toString();
if ((EventTarget)document.getElementById(id) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
InventoryDialogue.dyePreviewTertiary=c;
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);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setDyeClothingTertiary(InventoryDialogue.getClothing(),c);
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
}
}
for (AbstractClothingType clothing : ClothingType.getAllClothing()) {
for (Colour colour : clothing.getAllAvailablePrimaryColours()) {
if ((EventTarget)document.getElementById(clothing.hashCode() + "String_Node_Str" + colour.toString()) != null) {
addEventListener(document,clothing.hashCode() + "String_Node_Str" + colour.toString(),"String_Node_Str",moveTooltipListener,false);
addEventListener(document,clothing.hashCode() + "String_Node_Str" + colour.toString(),"String_Node_Str",hideTooltipListener,false);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setGenericClothing(clothing,colour);
addEventListener(document,clothing.hashCode() + "String_Node_Str" + colour.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);
}
}
}
for (Perk perk : Perk.values()) {
if (perk.getPerkCategory() == PerkCategory.JOB) {
id="String_Node_Str" + perk;
if (((EventTarget)document.getElementById(id)) != null) {
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setLevelUpPerk(0,perk,Main.game.getPlayer()),false);
}
}
 else {
id="String_Node_Str" + perk;
if (((EventTarget)document.getElementById(id)) != null) {
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setLevelUpPerk(PerkManager.MANAGER.getPerkRow(perk),perk,Main.game.getPlayer()),false);
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",event -> {
Main.game.getPlayer().removeTrait(perk);
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
}
}
if (Main.game.getCurrentDialogueNode() == PhoneDialogue.CHARACTER_LEVEL_UP) {
for (int i=0; i < PerkManager.ROWS; i++) {
for (Entry<PerkCategory,List<PerkEntry>> entry : PerkManager.MANAGER.getPerkTree().get(i).entrySet()) {
for (PerkEntry e : entry.getValue()) {
id=i + "String_Node_Str" + e.getPerk();
if (((EventTarget)document.getElementById(id)) != null) {
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setLevelUpPerk(i,e.getPerk(),Main.game.getPlayer()),false);
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",event -> {
if (e.getPerk().isMajor() && PerkManager.MANAGER.isPerkOwned(e)) {
if (!Main.game.getPlayer().hasTraitActivated(e.getPerk())) {
Main.game.getPlayer().addTrait(e.getPerk());
}
 else {
Main.game.getPlayer().removeTrait(e.getPerk());
}
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
 else if (Main.game.getPlayer().getPerkPoints() >= 1 && PerkManager.MANAGER.isPerkAvailable(e)) {
if (Main.game.getPlayer().addPerk(e.getRow(),e.getPerk())) {
Main.game.getPlayer().incrementPerkPoints(-1);
if (e.getPerk().isMajor() && Main.game.getPlayer().getTraits().size() < GameCharacter.MAX_TRAITS) {
Main.game.getPlayer().addTrait(e.getPerk());
}
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
}
}
,false);
}
}
}
}
}
if (Main.game.getCurrentDialogueNode() == PhoneDialogue.CHARACTER_FETISHES) {
for (Fetish f : Fetish.values()) {
id="String_Node_Str" + f;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getEssenceCount(TFEssence.ARCANE) >= f.getCost()) {
if (Main.game.getPlayer().addFetish(f)) {
Main.game.getPlayer().incrementEssenceCount(TFEssence.ARCANE,-f.getCost());
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);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setFetish(f,Main.game.getPlayer()),false);
}
id=f + "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);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setFetishExperience(f,Main.game.getPlayer()),false);
}
for (FetishDesire desire : FetishDesire.values()) {
id=f + "String_Node_Str" + desire;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getEssenceCount(TFEssence.ARCANE) >= FetishDesire.getCostToChange()) {
if (Main.game.getPlayer().setFetishDesire(f,desire)) {
Main.game.getPlayer().incrementEssenceCount(TFEssence.ARCANE,-FetishDesire.getCostToChange());
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);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setFetishDesire(f,desire,Main.game.getPlayer()),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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.HUMAN);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.MINIMUM);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.REDUCED);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.NORMAL);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.MAXIMUM);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.put(r,FurryPreference.MAXIMUM);
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
for (Subspecies s : Subspecies.values()) {
for (FurryPreference preference : FurryPreference.values()) {
id="String_Node_Str" + preference + "String_Node_Str"+ s;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(s,preference);
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(preference.getName(),preference.getDescriptionFeminine(s));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + preference + "String_Node_Str"+ s;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().subspeciesMasculineFurryPreferencesMap.put(s,preference);
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(preference.getName(),preference.getDescriptionMasculine(s));
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().feminineBeardsContent=!Main.getProperties().feminineBeardsContent;
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().feminineBeardsContent=!Main.getProperties().feminineBeardsContent;
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);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().inflationContent=!Main.getProperties().inflationContent;
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().inflationContent=!Main.getProperties().inflationContent;
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().forcedTFPercentage=Math.min(100,Main.getProperties().forcedTFPercentage + 10);
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().forcedTFPercentage=Math.max(0,Main.getProperties().forcedTFPercentage - 10);
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().pregnancyBreastGrowth=Math.min(10,Main.getProperties().pregnancyBreastGrowth + 1);
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().pregnancyBreastGrowth=Math.max(0,Main.getProperties().pregnancyBreastGrowth - 1);
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().pregnancyBreastGrowthLimit=Math.min(100,Main.getProperties().pregnancyBreastGrowthLimit + 1);
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().pregnancyBreastGrowthLimit=Math.max(0,Main.getProperties().pregnancyBreastGrowthLimit - 1);
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().pregnancyLactationIncrease=Math.min(1000,Main.getProperties().pregnancyLactationIncrease + 50);
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().pregnancyLactationIncrease=Math.max(0,Main.getProperties().pregnancyLactationIncrease - 50);
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().pregnancyLactationLimit=Math.min(Lactation.SEVEN_MONSTROUS_AMOUNT_POURING.getMaximumValue(),Main.getProperties().pregnancyLactationLimit + 250);
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().pregnancyLactationLimit=Math.max(0,Main.getProperties().pregnancyLactationLimit - 250);
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().forcedFetishPercentage=Math.min(100,Main.getProperties().forcedFetishPercentage + 10);
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().forcedFetishPercentage=Math.max(0,Main.getProperties().forcedFetishPercentage - 10);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str" + ForcedTFTendency.NEUTRAL;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.NEUTRAL;
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(ForcedTFTendency.NEUTRAL.getName(),ForcedTFTendency.NEUTRAL.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedTFTendency.FEMININE;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.FEMININE;
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(ForcedTFTendency.FEMININE.getName(),ForcedTFTendency.FEMININE.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedTFTendency.FEMININE_HEAVY;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.FEMININE_HEAVY;
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(ForcedTFTendency.FEMININE_HEAVY.getName(),ForcedTFTendency.FEMININE_HEAVY.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedTFTendency.MASCULINE;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.MASCULINE;
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(ForcedTFTendency.MASCULINE.getName(),ForcedTFTendency.MASCULINE.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedTFTendency.MASCULINE_HEAVY;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.MASCULINE_HEAVY;
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(ForcedTFTendency.MASCULINE_HEAVY.getName(),ForcedTFTendency.MASCULINE_HEAVY.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.NEUTRAL;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.NEUTRAL;
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(ForcedFetishTendency.NEUTRAL.getName(),ForcedFetishTendency.NEUTRAL.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.BOTTOM;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.BOTTOM;
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(ForcedFetishTendency.BOTTOM.getName(),ForcedFetishTendency.BOTTOM.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.BOTTOM_HEAVY;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.BOTTOM_HEAVY;
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(ForcedFetishTendency.BOTTOM_HEAVY.getName(),ForcedFetishTendency.BOTTOM_HEAVY.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.TOP;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.TOP;
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(ForcedFetishTendency.TOP.getName(),ForcedFetishTendency.TOP.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.TOP_HEAVY;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.TOP_HEAVY;
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(ForcedFetishTendency.TOP_HEAVY.getName(),ForcedFetishTendency.TOP_HEAVY.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.SAVE_LOAD) {
for (File f : Main.getSavedGames()) {
id="String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.'));
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el2,false);
}
id="String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.'));
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el2,false);
}
id="String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.'));
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el2,false);
}
id="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);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str",(!Main.game.isStarted() ? "String_Node_Str" : "String_Node_Str"));
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.IMPORT_EXPORT) {
for (File f : Main.getCharactersForImport()) {
id="String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.'));
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (!Main.getProperties().overwriteWarning || OptionsDialogue.deleteConfirmationName.equals(f.getName())) {
OptionsDialogue.deleteConfirmationName="String_Node_Str";
Main.deleteExportedCharacter(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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"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.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);
}
}
}
if (Main.game.getCurrentDialogueNode() == SlaverAlleyDialogue.AUCTION_IMPORT) {
for (File f : Main.getSlavesForImport()) {
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 -> {
try {
Game.importCharacterAsSlave(f.getName().substring(0,f.getName().lastIndexOf('.')));
this.updateUI();
Main.game.flashMessage(Colour.GENERIC_GOOD,"String_Node_Str");
}
 catch (Exception ex) {
Main.game.flashMessage(Colour.GENERIC_BAD,"String_Node_Str");
}
}
,false);
}
}
}
if (Main.game.getCurrentDialogueNode() == SlaverAlleyDialogue.AUCTION_BLOCK_LIST) {
for (NPC npc : Main.game.getCharactersPresent()) {
id=npc.getId() + "String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
if (Main.game.getPlayer().isHasSlaverLicense()) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
SlaverAlleyDialogue.setupBidding(npc);
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaverAlleyDialogue.AUCTION_BIDDING));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(UtilText.parse(npc,"String_Node_Str"),UtilText.parse(npc,"String_Node_Str"));
addEventListener(document,id,"String_Node_Str",el,false);
}
 else {
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(UtilText.parse(npc,"String_Node_Str"),UtilText.parse(npc,"String_Node_Str"));
addEventListener(document,id,"String_Node_Str",el,false);
}
}
}
}
setResponseEventListeners();
}

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 (((EventTarget)document.getElementById("String_Node_Str")) != null) {
    addEventListener(document,"String_Node_Str","String_Node_Str",e -> {
      if (Main.game.getCurrentDialogueNode().equals(CharactersPresentDialogue.MENU)) {
        Game.exportCharacter(CharactersPresentDialogue.characterViewed);
      }
 else {
        Game.exportCharacter(Main.game.getPlayer());
      }
      Main.game.flashMessage(Colour.GENERIC_EXCELLENT,"String_Node_Str");
    }
,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",new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str"),false);
  }
  if (Main.game.getCurrentDialogueNode().equals(DebugDialogue.SPAWN_MENU)) {
    id="String_Node_Str";
    for (    AbstractClothingType clothingType : DebugDialogue.clothingTotal) {
      id=clothingType.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getActiveWorld().getCell(Main.game.getPlayer().getLocation()).getInventory().addClothing(AbstractClothingType.generateClothing(clothingType));
          this.updateUIRightPanel();
        }
,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el=new InventoryTooltipEventListener().setGenericClothing(clothingType,clothingType.getAvailablePrimaryColours().get(0));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
    }
    for (    AbstractWeaponType weaponType : DebugDialogue.weaponsTotal) {
      id=weaponType.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getActiveWorld().getCell(Main.game.getPlayer().getLocation()).getInventory().addWeapon(AbstractWeaponType.generateWeapon(weaponType));
          this.updateUIRightPanel();
        }
,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el=new InventoryTooltipEventListener().setGenericWeapon(weaponType,weaponType.getAvailableDamageTypes().get(0));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
    }
    for (    AbstractItemType itemType : DebugDialogue.itemsTotal) {
      id=itemType.getId() + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.game.getActiveWorld().getCell(Main.game.getPlayer().getLocation()).getInventory().addItem(AbstractItemType.generateItem(itemType));
          this.updateUIRightPanel();
        }
,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        InventoryTooltipEventListener el=new InventoryTooltipEventListener().setGenericItem(itemType);
        addEventListener(document,id,"String_Node_Str",el,false);
      }
    }
    for (    InventorySlot slot : InventorySlot.values()) {
      id=slot + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          DebugDialogue.activeSlot=slot;
          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 -> {
        DebugDialogue.activeSlot=null;
        Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
      }
,false);
    }
  }
  if (Main.game.getCurrentDialogueNode() == CharacterCreation.BACKGROUND_SELECTION_MENU) {
    for (    History history : History.values()) {
      id="String_Node_Str" + history;
      if (((EventTarget)document.getElementById(id)) != null) {
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setPerk(history.getAssociatedPerk(),Main.game.getPlayer()),false);
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",event -> {
          Main.game.getPlayer().setHistory(history);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,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);
        }
      }
    }
    if (Main.game.getCurrentDialogueNode().equals(GiftDialogue.GIFT_DIALOGUE)) {
      for (      Entry<AbstractWeapon,Integer> entry : Main.game.getPlayer().getMapOfDuplicateWeapons().entrySet()) {
        id="String_Node_Str" + entry.getKey().hashCode();
        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",GiftDialogue.getDialogueToProceedTo()){
              @Override public void effects(){
                Main.game.getTextStartStringBuilder().append(GiftDialogue.getReceiver().getGiftReaction(entry.getKey(),true));
                Main.game.getPlayer().removeWeapon(entry.getKey());
              }
            }
);
          }
,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) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",GiftDialogue.getDialogueToProceedTo()){
              @Override public void effects(){
                Main.game.getTextStartStringBuilder().append(GiftDialogue.getReceiver().getGiftReaction(entry.getKey(),true));
                Main.game.getPlayer().removeItem(entry.getKey());
              }
            }
);
          }
,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) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",GiftDialogue.getDialogueToProceedTo()){
              @Override public void effects(){
                Main.game.getTextStartStringBuilder().append(GiftDialogue.getReceiver().getGiftReaction(entry.getKey(),true));
                Main.game.getPlayer().removeClothing(entry.getKey());
              }
            }
);
          }
,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);
        }
      }
    }
    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) {
      String idModifier="String_Node_Str" + InventoryDialogue.getInventoryNPC().getId() + "String_Node_Str";
      for (      Entry<AbstractWeapon,Integer> entry : InventoryDialogue.getInventoryNPC().getMapOfDuplicateWeapons().entrySet()) {
        id=idModifier + "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=idModifier + "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=idModifier + "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);
    }
    for (    TFPotency potency : TFPotency.values()) {
      id="String_Node_Str" + potency;
      if (((EventTarget)document.getElementById(id)) != null) {
        EnchantmentEventListener el=new EnchantmentEventListener().setPotency(potency);
        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().setTFPotency(potency);
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    for (int effectCount=0; effectCount < EnchantmentDialogue.effects.size(); effectCount++) {
      id="String_Node_Str" + effectCount;
      if (((EventTarget)document.getElementById(id)) != null) {
        EnchantmentEventListener el=new EnchantmentEventListener().removeEffect(effectCount);
        addEventListener(document,id,"String_Node_Str",el,false);
        addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
        addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
        TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
        addEventListener(document,id,"String_Node_Str",el2,false);
      }
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit > 0) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(0);
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit == 0 ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit > 0) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(Math.max(0,EnchantmentDialogue.limit - (EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod) / 10)));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit == 0 ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit > 0) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(EnchantmentDialogue.limit - 1);
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit == 0 ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod)) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(EnchantmentDialogue.limit + 1);
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod) ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      int limit=EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod);
      if (EnchantmentDialogue.limit < limit) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(Math.min(limit,EnchantmentDialogue.limit + (limit / 10)));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod) ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      if (EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod)) {
        EnchantmentEventListener el=new EnchantmentEventListener().setLimit(EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation((EnchantmentDialogue.limit < EnchantmentDialogue.ingredient.getEnchantmentEffect().getLimits(EnchantmentDialogue.primaryMod,EnchantmentDialogue.secondaryMod) ? "String_Node_Str" : "String_Node_Str"),"String_Node_Str");
      addEventListener(document,id,"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.setResponseTab(1);
        if (EnchantmentDialogue.ingredient instanceof AbstractItem) {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",InventoryDialogue.ITEM_INVENTORY){
            @Override public void effects(){
              EnchantmentDialogue.resetEnchantmentVariables();
            }
          }
);
        }
 else         if (EnchantmentDialogue.ingredient instanceof AbstractClothing) {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",InventoryDialogue.CLOTHING_INVENTORY){
            @Override public void effects(){
              EnchantmentDialogue.resetEnchantmentVariables();
            }
          }
);
        }
 else {
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",InventoryDialogue.WEAPON_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;
      if (EnchantmentDialogue.ingredient instanceof AbstractItem) {
        el2=new InventoryTooltipEventListener().setItem((AbstractItem)EnchantmentDialogue.ingredient,Main.game.getPlayer(),null);
      }
 else       if (EnchantmentDialogue.ingredient instanceof AbstractClothing) {
        el2=new InventoryTooltipEventListener().setClothing((AbstractClothing)EnchantmentDialogue.ingredient,Main.game.getPlayer(),null);
      }
 else {
        el2=new InventoryTooltipEventListener().setWeapon((AbstractWeapon)EnchantmentDialogue.ingredient,Main.game.getPlayer());
      }
      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 ((EnchantmentDialogue.previousIngredient instanceof AbstractItem ? Main.game.getPlayer().hasItem((AbstractItem)EnchantmentDialogue.previousIngredient) : true) && (EnchantmentDialogue.previousIngredient instanceof AbstractClothing ? Main.game.getPlayer().hasClothing((AbstractClothing)EnchantmentDialogue.previousIngredient) : true) && (EnchantmentDialogue.previousIngredient instanceof AbstractWeapon ? Main.game.getPlayer().hasWeapon((AbstractWeapon)EnchantmentDialogue.previousIngredient) : true)) {
                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);
    }
    id="String_Node_Str";
    if (((EventTarget)document.getElementById(id)) != null) {
      ((EventTarget)document.getElementById(id)).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,id,"String_Node_Str",moveTooltipListener,false);
      addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,false);
    }
    id="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);
      TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str",EnchantmentDialogue.effects.size() >= EnchantmentDialogue.ingredient.getEnchantmentLimit() ? "String_Node_Str" : "String_Node_Str");
      addEventListener(document,id,"String_Node_Str",el2,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);
        }
      }
    }
    if (Main.game.getCurrentDialogueNode() == SlaveryManagementDialogue.ROOM_MANAGEMENT) {
      for (      Cell c : SlaveryManagementDialogue.importantCells) {
        id=c.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",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                SlaveryManagementDialogue.cellToInspect=c;
              }
              @Override public DialogueNodeOld getNextDialogue(){
                return SlaveryManagementDialogue.ROOM_UPGRADES;
              }
            }
);
          }
,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=c.getId() + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=c.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(){
                SlaveryManagementDialogue.cellToInspect=c;
              }
              @Override public DialogueNodeOld getNextDialogue(){
                return SlaveryManagementDialogue.ROOM_UPGRADES;
              }
            }
);
          }
,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=c.getId() + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
          addEventListener(document,id,"String_Node_Str",el,false);
        }
      }
    }
    if (Main.game.getCurrentDialogueNode() == SlaveryManagementDialogue.ROOM_UPGRADES) {
      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 -> {
            if (placeUpgrade != PlaceUpgrade.LILAYA_ARTHUR_ROOM) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  SlaveryManagementDialogue.cellToInspect.getPlace().addPlaceUpgrade(placeUpgrade);
                  Main.game.getPlayer().incrementMoney(-placeUpgrade.getInstallCost());
                }
              }
);
            }
 else {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",LilayaHomeGeneric.ROOM_ARTHUR_INSTALLATION){
                @Override public void effects(){
                  Main.game.getArthur().setLocation(Main.game.getPlayer().getWorldLocation(),Main.game.getPlayer().getLocation(),true);
                  SlaveryManagementDialogue.cellToInspect.getPlace().addPlaceUpgrade(placeUpgrade);
                  Main.game.getDialogueFlags().setFlag(DialogueFlagValue.arthursRoomInstalled,true);
                }
              }
);
            }
          }
,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" + UtilText.formatAsMoney(placeUpgrade.getInstallCost()) + "String_Node_Str"+ SlaveryManagementDialogue.getPurchaseAvailabilityTooltipText(SlaveryManagementDialogue.cellToInspect.getPlace(),placeUpgrade));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=placeUpgrade + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str" + UtilText.formatAsMoney(placeUpgrade.getInstallCost()) + "String_Node_Str"+ SlaveryManagementDialogue.getPurchaseAvailabilityTooltipText(SlaveryManagementDialogue.cellToInspect.getPlace(),placeUpgrade));
          addEventListener(document,id,"String_Node_Str",el,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(){
                SlaveryManagementDialogue.cellToInspect.getPlace().removePlaceUpgrade(placeUpgrade);
                Main.game.getPlayer().incrementMoney(-placeUpgrade.getRemovalCost());
              }
            }
);
          }
,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" + UtilText.formatAsMoney(placeUpgrade.getRemovalCost()) + "String_Node_Str"+ SlaveryManagementDialogue.getPurchaseAvailabilityTooltipText(SlaveryManagementDialogue.cellToInspect.getPlace(),placeUpgrade));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=placeUpgrade + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",(placeUpgrade.isCoreRoomUpgrade() ? "String_Node_Str" : "String_Node_Str" + UtilText.formatAsMoney(placeUpgrade.getRemovalCost()) + "String_Node_Str"+ SlaveryManagementDialogue.getPurchaseAvailabilityTooltipText(SlaveryManagementDialogue.cellToInspect.getPlace(),placeUpgrade)));
          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 -> {
          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) {
              unsuitableName=Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32;
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  SlaveryManagementDialogue.cellToInspect.getPlace().setName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                }
              }
);
            }
          }
        }
,false);
      }
    }
    if (Main.game.getCurrentDialogueNode() == SlaveryManagementDialogue.SLAVERY_OVERVIEW) {
      id="String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          SlaveryManagementDialogue.incrementDayNumber(-1);
          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 -> {
          SlaveryManagementDialogue.incrementDayNumber(1);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
    }
    if (Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected() != null) {
      id=Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().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().getSlaveryManagerSlaveSelected().setName(new NameTriplet(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent()));
                }
              }
);
            }
          }
        }
,false);
      }
      id=Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().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) {
              unsuitableName=Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32;
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().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) {
              unsuitableName=Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() < 1 || Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent().length() > 32;
            }
            if (!unsuitableName) {
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
                @Override public void effects(){
                  for (                  String id : Main.game.getPlayer().getSlavesOwned()) {
                    Main.game.getNPCById(id).setPlayerPetName(Main.mainController.getWebEngine().getDocument().getElementById("String_Node_Str").getTextContent());
                  }
                }
              }
);
            }
          }
        }
,false);
      }
      for (int i=0; i < 24; i++) {
        allocateWorkTime(i);
      }
      for (      SlaveJobHours preset : SlaveJobHours.values()) {
        id=preset + "String_Node_Str";
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().resetWorkHours();
            for (int hour=preset.getStartHour(); hour < preset.getStartHour() + preset.getLength(); hour++) {
              if (hour >= 24) {
                Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().setWorkHour(hour - 24,true);
              }
 else {
                Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().setWorkHour(hour,true);
              }
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
          }
,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",preset.getDescription());
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=preset + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
          addEventListener(document,id,"String_Node_Str",el,false);
        }
      }
      for (      SlaveJob job : SlaveJob.values()) {
        id=job + "String_Node_Str";
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().setSlaveJob(job);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
          }
,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",job.getDescription());
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=job + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected(),job.getAvailabilityText(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        for (        SlaveJobSetting setting : job.getMutualSettings()) {
          id=setting + "String_Node_Str";
          if (((EventTarget)document.getElementById(id)) != null) {
            ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
              Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().addSlaveJobSettings(setting);
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
            }
,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",setting.getDescription());
            addEventListener(document,id,"String_Node_Str",el,false);
          }
          id=setting + "String_Node_Str";
          if (((EventTarget)document.getElementById(id)) != null) {
            ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
              Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().removeSlaveJobSettings(setting);
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
            }
,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",setting.getDescription());
            addEventListener(document,id,"String_Node_Str",el,false);
          }
          id=setting + "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);
            TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected(),"String_Node_Str"));
            addEventListener(document,id,"String_Node_Str",el,false);
          }
        }
        for (        Entry<String,List<SlaveJobSetting>> entry : job.getMutuallyExclusiveSettings().entrySet()) {
          for (          SlaveJobSetting setting : entry.getValue()) {
            id=setting + "String_Node_Str";
            if (((EventTarget)document.getElementById(id)) != null) {
              ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
                for (                SlaveJobSetting settingRem : entry.getValue()) {
                  Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().removeSlaveJobSettings(settingRem);
                }
                Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().addSlaveJobSettings(setting);
                Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
              }
,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",setting.getDescription());
              addEventListener(document,id,"String_Node_Str",el,false);
            }
            id=setting + "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);
              TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",setting.getDescription());
              addEventListener(document,id,"String_Node_Str",el,false);
            }
          }
        }
      }
      for (      SlavePermission permission : SlavePermission.values()) {
        for (        SlavePermissionSetting setting : permission.getSettings()) {
          id=setting + "String_Node_Str";
          if (((EventTarget)document.getElementById(id)) != null) {
            ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
              Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().addSlavePermissionSetting(permission,setting);
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlavePermissionsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
            }
,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",setting.getDescription());
            addEventListener(document,id,"String_Node_Str",el,false);
          }
          id=setting + "String_Node_Str";
          if (((EventTarget)document.getElementById(id)) != null) {
            ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
              Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected().removeSlavePermissionSetting(permission,setting);
              Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaveryManagementDialogue.getSlaveryManagementSlavePermissionsDialogue(Main.game.getDialogueFlags().getSlaveryManagerSlaveSelected())));
            }
,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",setting.getDescription());
            addEventListener(document,id,"String_Node_Str",el,false);
          }
          id=setting + "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);
            TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
            addEventListener(document,id,"String_Node_Str",el,false);
          }
        }
      }
    }
    for (    String slaveId : Main.game.getPlayer().getSlavesOwned()) {
      id=slaveId;
      NPC slave=(NPC)Main.game.getNPCById(slaveId);
      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",SlaveryManagementDialogue.getSlaveryManagementInspectSlaveDialogue(slave)));
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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",SlaveryManagementDialogue.getSlaveryManagementSlaveJobsDialogue(slave)));
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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",SlaveryManagementDialogue.getSlaveryManagementSlavePermissionsDialogue(slave)));
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "String_Node_Str";
      if (((EventTarget)document.getElementById(id)) != null) {
        ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
          Main.mainController.openInventory(slave,InventoryInteraction.FULL_MANAGEMENT);
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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(){
              slave.setHomeLocation(Main.game.getPlayer().getWorldLocation(),Main.game.getPlayer().getLocation());
              slave.returnToHome();
            }
          }
);
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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().getSlaveTrader().getBuyModifier()));
              Main.game.getDialogueFlags().getSlaveTrader().addSlave(slave);
              slave.setLocation(Main.game.getDialogueFlags().getSlaveTrader().getWorldLocation(),Main.game.getDialogueFlags().getSlaveTrader().getLocation(),true);
            }
          }
);
        }
,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",UtilText.parse(slave,"String_Node_Str" + UtilText.formatAsMoney(slave.getValueAsSlave(),"String_Node_Str",Colour.GENERIC_GOOD) + "String_Node_Str"+ "String_Node_Str"+ Main.game.getDialogueFlags().getSlaveTrader().getName()+ "String_Node_Str"+ UtilText.formatAsMoney((int)(slave.getValueAsSlave() * Main.game.getDialogueFlags().getSlaveTrader().getBuyModifier()),"String_Node_Str",Colour.GENERIC_ARCANE)+ "String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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",SlaveryManagementDialogue.SLAVE_MANAGEMENT_COSMETICS_HAIR){
            @Override public void effects(){
              Main.game.getDialogueFlags().setSlaveryManagerSlaveSelected(slave);
              BodyChanging.setTarget(slave);
            }
          }
);
        }
,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",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
      id=slaveId + "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);
        TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
        addEventListener(document,id,"String_Node_Str",el,false);
      }
    }
    if (Main.game.getDialogueFlags().getSlaveTrader() != null) {
      for (      String slaveId : Main.game.getDialogueFlags().getSlaveTrader().getSlavesOwned()) {
        id=slaveId + "String_Node_Str";
        NPC slave=(NPC)Main.game.getNPCById(slaveId);
        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",SlaveryManagementDialogue.getSlaveryManagementInspectSlaveDialogue(slave)));
          }
,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",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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().getSlaveTrader().getSellModifier()));
                Main.game.getPlayer().addSlave(slave);
                slave.setLocation(WorldType.SLAVER_ALLEY,PlaceType.SLAVER_ALLEY_SLAVERY_ADMINISTRATION,true);
              }
            }
);
          }
,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",UtilText.parse(slave,"String_Node_Str" + UtilText.formatAsMoney(slave.getValueAsSlave(),"String_Node_Str",Colour.GENERIC_GOOD) + "String_Node_Str"+ "String_Node_Str"+ Main.game.getDialogueFlags().getSlaveTrader().getName()+ "String_Node_Str"+ UtilText.formatAsMoney((int)(slave.getValueAsSlave() * Main.game.getDialogueFlags().getSlaveTrader().getSellModifier()),"String_Node_Str",Colour.GENERIC_ARCANE)+ "String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,false);
        }
        id=slaveId + "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);
          TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation("String_Node_Str",UtilText.parse(slave,"String_Node_Str"));
          addEventListener(document,id,"String_Node_Str",el,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()) {
      for (      Month month : Month.values()) {
        id="String_Node_Str" + month;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            Main.game.setStartingDateMonth(month);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      int i : CharacterModificationUtils.soSilly) {
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.FINGER,OrificeType.URETHRA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.FINGER,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.PENIS,OrificeType.MOUTH),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.TONGUE,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.PENIS,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.PENIS,OrificeType.ANUS),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.FINGER,OrificeType.URETHRA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.FINGER,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.PITCHER,PenetrationType.PENIS,OrificeType.MOUTH),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.TONGUE,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.PENIS,OrificeType.VAGINA),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            CharacterModificationUtils.setSexExperience(new SexType(SexParticipantType.CATCHER,PenetrationType.PENIS,OrificeType.ANUS),i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
    }
    if (!Main.game.isInNewWorld() || Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_CORE) || Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_FACE)|| Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_ASS)|| Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_BREASTS)|| Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_VAGINA)|| Main.game.getCurrentDialogueNode().equals(BodyChanging.BODY_CHANGING_PENIS)) {
      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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.MASCULINE_STRONG.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.MASCULINE.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.ANDROGYNOUS.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.FEMININE.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
          BodyChanging.getTarget().setFemininity(Femininity.FEMININE_STRONG.getMedianFemininity());
          if (!Main.game.isInNewWorld()) {
            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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setSexualOrientation(orientation);
            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 -> {
          BodyChanging.getTarget().incrementHeight(1);
          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 -> {
          BodyChanging.getTarget().incrementHeight(5);
          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 -> {
          BodyChanging.getTarget().incrementHeight(-1);
          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 -> {
          BodyChanging.getTarget().incrementHeight(-5);
          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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().removeFaceOrificeModifier(OrificeModifier.PUFFY);
          Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
        }
,false);
      }
      for (      CupSize cs : CupSize.values()) {
        id="String_Node_Str" + cs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setBreastShape(bs);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      NippleSize ns : NippleSize.values()) {
        id="String_Node_Str" + ns;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setNippleSize(ns.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AreolaeSize as : AreolaeSize.values()) {
        id="String_Node_Str" + as;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setBreastMilkStorage(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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
          BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setVaginaCapacity(capacity.getMedianValue(),true);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      Wetness wetness : Wetness.values()) {
        id="String_Node_Str" + wetness;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setVaginaWetness(wetness.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeElasticity elasticity : OrificeElasticity.values()) {
        id="String_Node_Str" + elasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setVaginaElasticity(elasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificePlasticity plasticity : OrificePlasticity.values()) {
        id="String_Node_Str" + plasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setVaginaPlasticity(plasticity.getValue());
            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 -> {
            BodyChanging.getTarget().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 -> {
            BodyChanging.getTarget().setVaginaLabiaSize(ls.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      ArmType armType : ArmType.values()) {
        id="String_Node_Str" + armType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setArmType(armType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      EyeType eyeType : EyeType.values()) {
        id="String_Node_Str" + eyeType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setEyeType(eyeType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      EarType earType : EarType.values()) {
        id="String_Node_Str" + earType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setEarType(earType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      HornType hornType : HornType.values()) {
        id="String_Node_Str" + hornType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setHornType(hornType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AntennaType antennaType : AntennaType.values()) {
        id="String_Node_Str" + antennaType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAntennaType(antennaType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      HairType hairType : HairType.values()) {
        id="String_Node_Str" + hairType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setHairType(hairType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      LegType legType : LegType.values()) {
        id="String_Node_Str" + legType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setLegType(legType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      FaceType faceType : FaceType.values()) {
        id="String_Node_Str" + faceType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setFaceType(faceType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      SkinType skinType : SkinType.values()) {
        id="String_Node_Str" + skinType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setSkinType(skinType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      TailType tailType : TailType.values()) {
        id="String_Node_Str" + tailType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setTailType(tailType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      WingType wingType : WingType.values()) {
        id="String_Node_Str" + wingType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setWingType(wingType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AssType assType : AssType.values()) {
        id="String_Node_Str" + assType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssType(assType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      BreastType breastType : BreastType.values()) {
        id="String_Node_Str" + breastType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setBreastType(breastType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      EyeShape eyeShape : EyeShape.values()) {
        id="String_Node_Str" + eyeShape;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setIrisShape(eyeShape);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + eyeShape;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setPupilShape(eyeShape);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      LipSize lipSize : LipSize.values()) {
        id="String_Node_Str" + lipSize;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setLipSize(lipSize.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasFaceOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeFaceOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addFaceOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      TongueModifier tongueMod : TongueModifier.values()) {
        id="String_Node_Str" + tongueMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasTongueModifier(tongueMod)) {
              BodyChanging.getTarget().removeTongueModifier(tongueMod);
            }
 else {
              BodyChanging.getTarget().addTongueModifier(tongueMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasAssOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeAssOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addAssOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      AssSize as : AssSize.values()) {
        id="String_Node_Str" + as;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssSize(as.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      HipSize hs : HipSize.values()) {
        id="String_Node_Str" + hs;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setHipSize(hs.getValue());
            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 -> {
            BodyChanging.getTarget().setAssCapacity(capacity.getMedianValue(),true);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      Wetness wetness : Wetness.values()) {
        id="String_Node_Str" + wetness;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssWetness(wetness.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeElasticity elasticity : OrificeElasticity.values()) {
        id="String_Node_Str" + elasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssElasticity(elasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificePlasticity plasticity : OrificePlasticity.values()) {
        id="String_Node_Str" + plasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setAssPlasticity(plasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (int i=1; i <= Breast.MAXIMUM_BREAST_ROWS; i++) {
        setBreastCountListener(i);
      }
      for (int i=1; i <= Breast.MAXIMUM_NIPPLES_PER_BREAST; i++) {
        setNippleCountListener(i);
      }
      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 -> {
            BodyChanging.getTarget().setNippleCapacity(capacity.getMedianValue(),true);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeElasticity elasticity : OrificeElasticity.values()) {
        id="String_Node_Str" + elasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setNippleElasticity(elasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificePlasticity plasticity : OrificePlasticity.values()) {
        id="String_Node_Str" + plasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setNipplePlasticity(plasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      int i : CharacterModificationUtils.demonLactationValues) {
        id="String_Node_Str" + i;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setBreastMilkStorage(i);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasNippleOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeNippleOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addNippleOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      VaginaType vaginaType : VaginaType.values()) {
        id="String_Node_Str" + vaginaType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setVaginaType(vaginaType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasVaginaOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeVaginaOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addVaginaOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      PenisType penisType : PenisType.values()) {
        id="String_Node_Str" + penisType;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setPenisType(penisType);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      PenisSize ps : PenisSize.values()) {
        id="String_Node_Str" + ps.getMinimumValue();
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setPenisSize(ps.getMinimumValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + ps.getMedianValue();
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setPenisSize(ps.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      TesticleSize size : TesticleSize.values()) {
        id="String_Node_Str" + size;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setTesticleSize(size.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (int i=Testicle.MIN_TESTICLE_COUNT; i <= Testicle.MAX_TESTICLE_COUNT; i+=2) {
        setTesticleCountListener(i);
      }
      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 -> {
            BodyChanging.getTarget().setPenisCapacity(capacity.getMedianValue(),true);
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      CumProduction cumProduction : CumProduction.values()) {
        id="String_Node_Str" + cumProduction.getMinimumValue();
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setCumProduction(cumProduction.getMinimumValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
        id="String_Node_Str" + cumProduction.getMedianValue();
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setCumProduction(cumProduction.getMedianValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeElasticity elasticity : OrificeElasticity.values()) {
        id="String_Node_Str" + elasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setUrethraElasticity(elasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificePlasticity plasticity : OrificePlasticity.values()) {
        id="String_Node_Str" + plasticity;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            BodyChanging.getTarget().setUrethraPlasticity(plasticity.getValue());
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      PenisModifier orificeMod : PenisModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasPenisModifier(orificeMod)) {
              BodyChanging.getTarget().removePenisModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addPenisModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
      for (      OrificeModifier orificeMod : OrificeModifier.values()) {
        id="String_Node_Str" + orificeMod;
        if (((EventTarget)document.getElementById(id)) != null) {
          ((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
            if (BodyChanging.getTarget().hasUrethraOrificeModifier(orificeMod)) {
              BodyChanging.getTarget().removeUrethraOrificeModifier(orificeMod);
            }
 else {
              BodyChanging.getTarget().addUrethraOrificeModifier(orificeMod);
            }
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
          }
,false);
        }
      }
    }
    boolean noCost=!Main.game.isInNewWorld() || Main.game.getCurrentDialogueNode().getMapDisplay() == MapDisplay.PHONE;
    for (    BodyCoveringType bct : BodyCoveringType.values()) {
      id="String_Node_Str" + bct;
      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(){
                if (CharacterModificationUtils.getCoveringsToBeApplied().containsKey(bct)) {
                  if (!noCost) {
                    Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getBodyCoveringTypeCost(bct));
                  }
                  BodyChanging.getTarget().setSkinCovering(new Covering(CharacterModificationUtils.getCoveringsToBeApplied().get(bct)),false);
                  if (noCost) {
                    if (bct == BodyCoveringType.HUMAN) {
                      BodyChanging.getTarget().getBody().updateCoverings(false,false,false,true);
                    }
                  }
                }
              }
            }
);
          }
        }
,false);
      }
      id=bct + "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(){
              CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
              CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPrimaryGlowing(false);
            }
          }
);
        }
,false);
      }
      id=bct + "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(){
              CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
              CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPrimaryGlowing(true);
            }
          }
);
        }
,false);
      }
      id=bct + "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(){
              CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
              CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setSecondaryGlowing(false);
            }
          }
);
        }
,false);
      }
      id=bct + "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(){
              CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
              CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setSecondaryGlowing(true);
            }
          }
);
        }
,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 -> {
            Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()){
              @Override public void effects(){
                CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPattern(pattern);
              }
            }
);
          }
,false);
        }
      }
      for (      CoveringModifier modifier : CoveringModifier.values()) {
        id=bct + "String_Node_Str" + modifier;
        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(){
                CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setModifier(modifier);
              }
            }
);
          }
,false);
        }
      }
      for (      Colour colour : bct.getAllPrimaryColours()) {
        id=bct + "String_Node_Str" + colour;
        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(){
                CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPrimaryColour(colour);
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setPrimaryGlowing((colour != Colour.COVERING_NONE && BodyChanging.getTarget().getCovering(bct).isPrimaryGlowing()));
              }
            }
);
          }
,false);
        }
      }
      for (      Colour colour : bct.getAllSecondaryColours()) {
        id=bct + "String_Node_Str" + colour;
        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(){
                CharacterModificationUtils.getCoveringsToBeApplied().putIfAbsent(bct,new Covering(BodyChanging.getTarget().getCovering(bct)));
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setSecondaryColour(colour);
                CharacterModificationUtils.getCoveringsToBeApplied().get(bct).setSecondaryGlowing(colour != Colour.COVERING_NONE && BodyChanging.getTarget().getCovering(bct).isSecondaryGlowing());
              }
            }
);
          }
,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(){
                if (!noCost) {
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_HAIR_LENGTH_COST);
                }
                BodyChanging.getTarget().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(){
                if (!noCost) {
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_HAIR_STYLE_COST);
                }
                BodyChanging.getTarget().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(){
                if (!noCost) {
                  Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getPiercingCost(piercingType));
                }
switch (piercingType) {
case EAR:
                  BodyChanging.getTarget().setPiercedEar(false);
                break;
case LIP:
              BodyChanging.getTarget().setPiercedLip(false);
            break;
case NAVEL:
          BodyChanging.getTarget().setPiercedNavel(false);
        break;
case NIPPLE:
      BodyChanging.getTarget().setPiercedNipples(false);
    break;
case NOSE:
  BodyChanging.getTarget().setPiercedNose(false);
break;
case PENIS:
BodyChanging.getTarget().setPiercedPenis(false);
break;
case TONGUE:
BodyChanging.getTarget().setPiercedTongue(false);
break;
case VAGINA:
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.getPiercingCost(piercingType));
}
switch (piercingType) {
case EAR:
BodyChanging.getTarget().setPiercedEar(true);
break;
case LIP:
BodyChanging.getTarget().setPiercedLip(true);
break;
case NAVEL:
BodyChanging.getTarget().setPiercedNavel(true);
break;
case NIPPLE:
BodyChanging.getTarget().setPiercedNipples(true);
break;
case NOSE:
BodyChanging.getTarget().setPiercedNose(true);
break;
case PENIS:
BodyChanging.getTarget().setPiercedPenis(true);
break;
case TONGUE:
BodyChanging.getTarget().setPiercedTongue(true);
break;
case VAGINA:
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_ANAL_BLEACHING_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_ANAL_BLEACHING_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
}
BodyChanging.getTarget().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(){
if (!noCost) {
Main.game.getPlayer().incrementMoney(-SuccubisSecrets.BASE_BODY_HAIR_COST);
}
BodyChanging.getTarget().setFacialHair(bodyHair);
}
}
);
}
}
,false);
}
}
for (AbstractClothingType clothing : ClothingType.getAllClothing()) {
for (Colour c : clothing.getAllAvailablePrimaryColours()) {
id="String_Node_Str" + clothing.hashCode() + "String_Node_Str"+ c.toString();
if ((EventTarget)document.getElementById(id) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
InventoryDialogue.dyePreviewPrimary=c;
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);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setDyeClothingPrimary(InventoryDialogue.getClothing(),c);
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
if (!clothing.getAllAvailableSecondaryColours().isEmpty()) {
for (Colour c : clothing.getAllAvailableSecondaryColours()) {
id="String_Node_Str" + clothing.hashCode() + "String_Node_Str"+ c.toString();
if ((EventTarget)document.getElementById(id) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
InventoryDialogue.dyePreviewSecondary=c;
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);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setDyeClothingSecondary(InventoryDialogue.getClothing(),c);
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
}
if (!clothing.getAllAvailableTertiaryColours().isEmpty()) {
for (Colour c : clothing.getAllAvailableTertiaryColours()) {
id="String_Node_Str" + clothing.hashCode() + "String_Node_Str"+ c.toString();
if ((EventTarget)document.getElementById(id) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
InventoryDialogue.dyePreviewTertiary=c;
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);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setDyeClothingTertiary(InventoryDialogue.getClothing(),c);
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
}
}
for (AbstractClothingType clothing : ClothingType.getAllClothing()) {
for (Colour colour : clothing.getAllAvailablePrimaryColours()) {
if ((EventTarget)document.getElementById(clothing.hashCode() + "String_Node_Str" + colour.toString()) != null) {
addEventListener(document,clothing.hashCode() + "String_Node_Str" + colour.toString(),"String_Node_Str",moveTooltipListener,false);
addEventListener(document,clothing.hashCode() + "String_Node_Str" + colour.toString(),"String_Node_Str",hideTooltipListener,false);
InventoryTooltipEventListener el2=new InventoryTooltipEventListener().setGenericClothing(clothing,colour);
addEventListener(document,clothing.hashCode() + "String_Node_Str" + colour.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);
}
}
}
for (Perk perk : Perk.values()) {
if (perk.getPerkCategory() == PerkCategory.JOB) {
id="String_Node_Str" + perk;
if (((EventTarget)document.getElementById(id)) != null) {
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setLevelUpPerk(0,perk,Main.game.getPlayer()),false);
}
}
 else {
id="String_Node_Str" + perk;
if (((EventTarget)document.getElementById(id)) != null) {
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setLevelUpPerk(PerkManager.MANAGER.getPerkRow(perk),perk,Main.game.getPlayer()),false);
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",event -> {
Main.game.getPlayer().removeTrait(perk);
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
}
}
if (Main.game.getCurrentDialogueNode() == PhoneDialogue.CHARACTER_LEVEL_UP) {
for (int i=0; i < PerkManager.ROWS; i++) {
for (Entry<PerkCategory,List<PerkEntry>> entry : PerkManager.MANAGER.getPerkTree().get(i).entrySet()) {
for (PerkEntry e : entry.getValue()) {
id=i + "String_Node_Str" + e.getPerk();
if (((EventTarget)document.getElementById(id)) != null) {
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setLevelUpPerk(i,e.getPerk(),Main.game.getPlayer()),false);
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",event -> {
if (e.getPerk().isMajor() && PerkManager.MANAGER.isPerkOwned(e)) {
if (!Main.game.getPlayer().hasTraitActivated(e.getPerk())) {
Main.game.getPlayer().addTrait(e.getPerk());
}
 else {
Main.game.getPlayer().removeTrait(e.getPerk());
}
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
 else if (Main.game.getPlayer().getPerkPoints() >= 1 && PerkManager.MANAGER.isPerkAvailable(e)) {
if (Main.game.getPlayer().addPerk(e.getRow(),e.getPerk())) {
Main.game.getPlayer().incrementPerkPoints(-1);
if (e.getPerk().isMajor() && Main.game.getPlayer().getTraits().size() < GameCharacter.MAX_TRAITS) {
Main.game.getPlayer().addTrait(e.getPerk());
}
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
}
}
,false);
}
}
}
}
}
if (Main.game.getCurrentDialogueNode() == PhoneDialogue.CHARACTER_FETISHES) {
for (Fetish f : Fetish.values()) {
id="String_Node_Str" + f;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getEssenceCount(TFEssence.ARCANE) >= f.getCost()) {
if (Main.game.getPlayer().addFetish(f)) {
Main.game.getPlayer().incrementEssenceCount(TFEssence.ARCANE,-f.getCost());
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);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setFetish(f,Main.game.getPlayer()),false);
}
id=f + "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);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setFetishExperience(f,Main.game.getPlayer()),false);
}
for (FetishDesire desire : FetishDesire.values()) {
id=f + "String_Node_Str" + desire;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (Main.game.getPlayer().getEssenceCount(TFEssence.ARCANE) >= FetishDesire.getCostToChange()) {
if (Main.game.getPlayer().setFetishDesire(f,desire)) {
Main.game.getPlayer().incrementEssenceCount(TFEssence.ARCANE,-FetishDesire.getCostToChange());
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);
addEventListener(document,id,"String_Node_Str",new TooltipInformationEventListener().setFetishDesire(f,desire,Main.game.getPlayer()),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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.HUMAN);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.MINIMUM);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.REDUCED);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.NORMAL);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.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 (Subspecies r : Subspecies.values()) {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(r,FurryPreference.MAXIMUM);
Main.getProperties().subspeciesMasculineFurryPreferencesMap.put(r,FurryPreference.MAXIMUM);
}
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
for (Subspecies s : Subspecies.values()) {
for (FurryPreference preference : FurryPreference.values()) {
id="String_Node_Str" + preference + "String_Node_Str"+ s;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().subspeciesFeminineFurryPreferencesMap.put(s,preference);
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(preference.getName(),preference.getDescriptionFeminine(s));
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + preference + "String_Node_Str"+ s;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().subspeciesMasculineFurryPreferencesMap.put(s,preference);
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(preference.getName(),preference.getDescriptionMasculine(s));
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().feminineBeardsContent=!Main.getProperties().feminineBeardsContent;
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().feminineBeardsContent=!Main.getProperties().feminineBeardsContent;
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);
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().inflationContent=!Main.getProperties().inflationContent;
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().inflationContent=!Main.getProperties().inflationContent;
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().forcedTFPercentage=Math.min(100,Main.getProperties().forcedTFPercentage + 10);
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().forcedTFPercentage=Math.max(0,Main.getProperties().forcedTFPercentage - 10);
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().pregnancyBreastGrowth=Math.min(10,Main.getProperties().pregnancyBreastGrowth + 1);
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().pregnancyBreastGrowth=Math.max(0,Main.getProperties().pregnancyBreastGrowth - 1);
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().pregnancyBreastGrowthLimit=Math.min(100,Main.getProperties().pregnancyBreastGrowthLimit + 1);
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().pregnancyBreastGrowthLimit=Math.max(0,Main.getProperties().pregnancyBreastGrowthLimit - 1);
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().pregnancyLactationIncrease=Math.min(1000,Main.getProperties().pregnancyLactationIncrease + 50);
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().pregnancyLactationIncrease=Math.max(0,Main.getProperties().pregnancyLactationIncrease - 50);
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().pregnancyLactationLimit=Math.min(Lactation.SEVEN_MONSTROUS_AMOUNT_POURING.getMaximumValue(),Main.getProperties().pregnancyLactationLimit + 250);
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().pregnancyLactationLimit=Math.max(0,Main.getProperties().pregnancyLactationLimit - 250);
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().forcedFetishPercentage=Math.min(100,Main.getProperties().forcedFetishPercentage + 10);
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().forcedFetishPercentage=Math.max(0,Main.getProperties().forcedFetishPercentage - 10);
Main.saveProperties();
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",Main.game.getCurrentDialogueNode()));
}
,false);
}
id="String_Node_Str" + ForcedTFTendency.NEUTRAL;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.NEUTRAL;
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(ForcedTFTendency.NEUTRAL.getName(),ForcedTFTendency.NEUTRAL.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedTFTendency.FEMININE;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.FEMININE;
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(ForcedTFTendency.FEMININE.getName(),ForcedTFTendency.FEMININE.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedTFTendency.FEMININE_HEAVY;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.FEMININE_HEAVY;
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(ForcedTFTendency.FEMININE_HEAVY.getName(),ForcedTFTendency.FEMININE_HEAVY.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedTFTendency.MASCULINE;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.MASCULINE;
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(ForcedTFTendency.MASCULINE.getName(),ForcedTFTendency.MASCULINE.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedTFTendency.MASCULINE_HEAVY;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedTFTendency=ForcedTFTendency.MASCULINE_HEAVY;
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(ForcedTFTendency.MASCULINE_HEAVY.getName(),ForcedTFTendency.MASCULINE_HEAVY.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.NEUTRAL;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.NEUTRAL;
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(ForcedFetishTendency.NEUTRAL.getName(),ForcedFetishTendency.NEUTRAL.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.BOTTOM;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.BOTTOM;
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(ForcedFetishTendency.BOTTOM.getName(),ForcedFetishTendency.BOTTOM.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.BOTTOM_HEAVY;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.BOTTOM_HEAVY;
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(ForcedFetishTendency.BOTTOM_HEAVY.getName(),ForcedFetishTendency.BOTTOM_HEAVY.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.TOP;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.TOP;
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(ForcedFetishTendency.TOP.getName(),ForcedFetishTendency.TOP.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
id="String_Node_Str" + ForcedFetishTendency.TOP_HEAVY;
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
Main.getProperties().forcedFetishTendency=ForcedFetishTendency.TOP_HEAVY;
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(ForcedFetishTendency.TOP_HEAVY.getName(),ForcedFetishTendency.TOP_HEAVY.getDescription());
addEventListener(document,id,"String_Node_Str",el,false);
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.SAVE_LOAD) {
for (File f : Main.getSavedGames()) {
id="String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.'));
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el2,false);
}
id="String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.'));
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el2,false);
}
id="String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.'));
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
id="String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"String_Node_Str",el2,false);
}
id="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);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str",(!Main.game.isStarted() ? "String_Node_Str" : "String_Node_Str"));
addEventListener(document,id,"String_Node_Str",el2,false);
}
}
if (Main.game.getCurrentDialogueNode() == OptionsDialogue.IMPORT_EXPORT) {
for (File f : Main.getCharactersForImport()) {
id="String_Node_Str" + f.getName().substring(0,f.getName().lastIndexOf('.'));
if (((EventTarget)document.getElementById(id)) != null) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
if (!Main.getProperties().overwriteWarning || OptionsDialogue.deleteConfirmationName.equals(f.getName())) {
OptionsDialogue.deleteConfirmationName="String_Node_Str";
Main.deleteExportedCharacter(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);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el2=new TooltipInformationEventListener().setInformation("String_Node_Str","String_Node_Str");
addEventListener(document,id,"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.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);
}
}
}
if (Main.game.getCurrentDialogueNode() == SlaverAlleyDialogue.AUCTION_IMPORT) {
for (File f : Main.getSlavesForImport()) {
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 -> {
try {
Game.importCharacterAsSlave(f.getName().substring(0,f.getName().lastIndexOf('.')));
this.updateUI();
Main.game.flashMessage(Colour.GENERIC_GOOD,"String_Node_Str");
}
 catch (Exception ex) {
Main.game.flashMessage(Colour.GENERIC_BAD,"String_Node_Str");
}
}
,false);
}
}
}
if (Main.game.getCurrentDialogueNode() == SlaverAlleyDialogue.AUCTION_BLOCK_LIST) {
for (NPC npc : Main.game.getCharactersPresent()) {
id=npc.getId() + "String_Node_Str";
if (((EventTarget)document.getElementById(id)) != null) {
if (Main.game.getPlayer().isHasSlaverLicense()) {
((EventTarget)document.getElementById(id)).addEventListener("String_Node_Str",e -> {
SlaverAlleyDialogue.setupBidding(npc);
Main.game.setContent(new Response("String_Node_Str","String_Node_Str",SlaverAlleyDialogue.AUCTION_BIDDING));
}
,false);
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(UtilText.parse(npc,"String_Node_Str"),UtilText.parse(npc,"String_Node_Str"));
addEventListener(document,id,"String_Node_Str",el,false);
}
 else {
addEventListener(document,id,"String_Node_Str",moveTooltipListener,false);
addEventListener(document,id,"String_Node_Str",hideTooltipListener,false);
TooltipInformationEventListener el=new TooltipInformationEventListener().setInformation(UtilText.parse(npc,"String_Node_Str"),UtilText.parse(npc,"String_Node_Str"));
addEventListener(document,id,"String_Node_Str",el,false);
}
}
}
}
setResponseEventListeners();
}