use of com.lilithsthrone.game.dialogue.responses.ResponseCombat in project liliths-throne-public by Innoxia.
the class Game method setContent.
public void setContent(int index) {
Response response = currentDialogueNode.getResponse(responseTab, index);
if (response != null) {
String corruptionGains = "";
if (!response.isAvailable()) {
if (!response.isAbleToBypass()) {
return;
} else {
Main.game.getPlayer().incrementAttribute(Attribute.MAJOR_CORRUPTION, response.getCorruptionNeeded().getCorruptionBypass());
corruptionGains = ("<p style='text-align:center;'>" + "<b>You have gained +" + response.getCorruptionNeeded().getCorruptionBypass() + "</b> <b style='color:" + Attribute.MAJOR_CORRUPTION.getColour().toWebHexString() + ";'>corruption</b><b>!</b>" + "</p>");
}
}
String chosenResponse = response.getTitle();
DialogueNodeOld node = response.getNextDialogue();
response.applyEffects();
if (response instanceof ResponseCombat) {
setContent(new Response("", "", ((ResponseCombat) response).initCombat()));
return;
} else if (response instanceof ResponseSex) {
setContent(new Response("", "", ((ResponseSex) response).initSex()));
return;
} else if (response instanceof ResponseEffectsOnly) {
return;
} else if (response instanceof ResponseTrade) {
((ResponseTrade) response).openTrade();
return;
}
if (node != null) {
// Add characters in this scene to the player's encountered characters list:
if (started) {
if (!getCharactersPresent().isEmpty()) {
for (GameCharacter character : getCharactersPresent()) {
if (!Main.game.getPlayer().getCharactersEncountered().contains(character.getId())) {
if (character instanceof NPC) {
if (((NPC) character).isAddedToContacts()) {
Main.game.getPlayer().addCharacterEncountered(character);
}
if (!character.isRaceConcealed()) {
Main.getProperties().addRaceDiscovered(character.getRace());
}
((NPC) character).setLastTimeEncountered(minutesPassed);
}
}
}
}
}
String headerContent = node.getHeaderContent();
String content = node.getContent();
if (currentDialogueNode != null) {
if (node.isContinuesDialogue()) {
if (!node.isNoTextForContinuesDialogue()) {
if (Main.game.isInSex()) {
dialogueTitle = UtilText.parse(node.getLabel());
}
if (node.isDisplaysActionTitleOnContinuesDialogue()) {
if (currentDialogueNode.getMapDisplay() == MapDisplay.NORMAL) {
positionAnchor++;
}
pastDialogueSB.append("<hr id='position" + positionAnchor + "'><p class='option-disabled'>> " + chosenResponse + "</p>");
}
if (getMapDisplay() == MapDisplay.NORMAL)
initialPositionAnchor = positionAnchor;
pastDialogueSB.append(UtilText.parse(corruptionGains + textStartStringBuilder.toString() + content + textEndStringBuilder.toString()));
}
} else {
dialogueTitle = UtilText.parse(node.getLabel());
if (getMapDisplay() == MapDisplay.NORMAL)
initialPositionAnchor = positionAnchor;
if (currentDialogueNode.getMapDisplay() == MapDisplay.NORMAL)
positionAnchor = 0;
pastDialogueSB.setLength(0);
pastDialogueSB.append(UtilText.parse(corruptionGains + textStartStringBuilder.toString() + content + textEndStringBuilder.toString()));
}
} else {
dialogueTitle = UtilText.parse(node.getLabel());
}
// currentDialogueNode.applyResponse(index, true);
// updateUIAttributes();
boolean resetPointer = true;
if (node != currentDialogueNode) {
responsePage = 0;
currentDialogueNode = node;
} else {
currentDialogueNode = node;
checkForResponsePage();
resetPointer = false;
}
if (node.isContinuesDialogue()) {
currentDialogue = "<body onLoad='scrollToElement()'>" + "<script>function scrollToElement() {document.getElementById('content-block').scrollTop = document.getElementById('position" + (positionAnchor) + "').offsetTop -64;}</script>" + "<div id='main-content'>" + getTitleDiv(dialogueTitle) + "<div class='div-center' id='content-block'>" + // + "<div class='inner-text-content'>"
getMapDiv() + (headerContent != null ? "<div id='header-content' style='font-size:" + Main.getProperties().fontSize + "px; line-height:" + (Main.getProperties().fontSize + 6) + "px;-webkit-user-select: none;'>" + (currentDialogueNode.disableHeaderParsing() ? headerContent : UtilText.parse(headerContent)) + "</div>" : "") + (content != null ? "<div " + (Main.getProperties().fadeInText ? "id='text-content'" : "") + " style='font-size:" + Main.getProperties().fontSize + "px; line-height:" + (Main.getProperties().fontSize + 6) + "px;'>" + pastDialogueSB.toString() + "</div>" : "") + // + "</div>"
"</div>" + "<div id='bottom-text'>Game saved!</div>" + getResponsesDiv(currentDialogueNode, resetPointer) + "</div>" + "</body>";
} else {
currentDialogue = "<body>" + "<div id='main-content'>" + getTitleDiv(dialogueTitle) + "<span id='position" + positionAnchor + "'></span>" + "<div class='div-center' id='content-block'>" + // + "<div class='inner-text-content'>"
getMapDiv() + (headerContent != null ? "<div id='header-content' style='font-size:" + Main.getProperties().fontSize + "px; line-height:" + (Main.getProperties().fontSize + 6) + "px;-webkit-user-select: none;'>" + (currentDialogueNode.disableHeaderParsing() ? headerContent : UtilText.parse(headerContent)) + "</div>" : "") + (content != null ? "<div " + (Main.getProperties().fadeInText ? "id='text-content'" : "") + " style='font-size:" + Main.getProperties().fontSize + "px; line-height:" + (Main.getProperties().fontSize + 6) + "px;'>" + pastDialogueSB.toString() + "</div>" : "") + // + "</div>"
"</div>" + "<div id='bottom-text'>Game saved!</div>" + getResponsesDiv(currentDialogueNode, resetPointer) + "</div>" + "</body>";
}
// Main.mainController.unbindListeners();
Main.mainController.setMainContent(currentDialogue);
textEndStringBuilder.setLength(0);
textStartStringBuilder.setLength(0);
if (started) {
Main.game.endTurn(getCurrentDialogueNode().getMinutesPassed());
}
TooltipUpdateThread.cancelThreads = true;
// Main.mainController.processNewDialogue();
}
}
}
Aggregations