From b8f739f3a51c5d25bee9355ddb81b20682b529a5 Mon Sep 17 00:00:00 2001 From: pranshu Date: Fri, 22 Jul 2022 20:23:04 +0530 Subject: [PATCH] Dialogue Fixes --- server/ServerNetworkEvents.js | 3 +- .../components/script/ActionComponent.js | 3 +- .../components/ui/PlayerUiComponent.js | 138 ++++++------------ 3 files changed, 51 insertions(+), 93 deletions(-) diff --git a/server/ServerNetworkEvents.js b/server/ServerNetworkEvents.js index d3a641e1..3ddf3312 100644 --- a/server/ServerNetworkEvents.js +++ b/server/ServerNetworkEvents.js @@ -744,7 +744,8 @@ var ServerNetworkEvents = { ige.network.send("openDialogue", { type: selectedOption.followUpDialogue, extraData: { - playerName: player._stats.name + playerName: player._stats.name, + dialogueTemplate: _.get(ige, "game.data.ui.dialogueview.htmlData", "") } }, player._stats.clientId); } diff --git a/src/gameClasses/components/script/ActionComponent.js b/src/gameClasses/components/script/ActionComponent.js index 69e93569..87e9fc91 100644 --- a/src/gameClasses/components/script/ActionComponent.js +++ b/src/gameClasses/components/script/ActionComponent.js @@ -1319,7 +1319,8 @@ var ActionComponent = IgeEntity.extend({ type: action.dialogue, extraData: { playerName: player._stats && player._stats.name, - variables: primitiveVariables + variables: primitiveVariables, + dialogueTemplate: _.get(ige, "game.data.ui.dialogueview.htmlData", "") } }, player._stats.clientId); } diff --git a/src/gameClasses/components/ui/PlayerUiComponent.js b/src/gameClasses/components/ui/PlayerUiComponent.js index cbfca117..2060b135 100644 --- a/src/gameClasses/components/ui/PlayerUiComponent.js +++ b/src/gameClasses/components/ui/PlayerUiComponent.js @@ -246,6 +246,18 @@ var PlayerUiComponent = IgeEntity.extend({ }, openDialogueModal: function (dialogueId, extraData) { + let dialogueTemplate = extraData.dialogueTemplate || window.defaultUI.defaultDialogueTemplate + + window.handleOptionClick = function (e, index){ + e.preventDefault(); + e.stopPropagation(); + const optionId = index.toString() + $('.dialogue-option').addClass('disabled'); + $(this).find('.option-check').removeClass('d-none'); + ige.playerUi.submitDialogueModal(dialogueId, optionId); + } + + const renderDialogueTemplate = window.renderDialogueTemplate; var self = this; function getDialogueInstance (dialogue) { @@ -283,123 +295,74 @@ var PlayerUiComponent = IgeEntity.extend({ dialogue.hasOptions = function () { return Object.keys(dialogue.options).length > 0; }; + dialogue.areOptionsRendered = false; return dialogue; } function initModal () { - $('#modd-dialogue-message').html(''); - $('#modd-dialogue-image').attr('src', ''); - $('#modd-dialogue-options-container').addClass('d-none'); - $('#modd-dialogue-skip-hint').addClass('d-none'); + renderDialogueTemplate({ + dialogue: { + ...dialogue, + message: '', + options: [] + } + }, dialogueTemplate); if (self.dialogue.messagePrinter) { clearInterval(self.dialogue.messagePrinter); } - if (dialogue.image) { - $('#modd-dialogue-image-container').removeClass('d-none'); - $('#modd-dialogue-message-container').addClass('col-8'); - $('#modd-dialogue-message-container').addClass('pl-md-0'); - $('#modd-dialogue-message-container').removeClass('col-12'); - $('#modd-dialogue-image').attr('src', dialogue.image); - } else { - $('#modd-dialogue-image-container').addClass('d-none'); - $('#modd-dialogue-message-container').removeClass('col-8'); - $('#modd-dialogue-message-container').addClass('col-12'); - $('#modd-dialogue-image').attr('src', ''); - } - $(document).on('keydown.modd-dialogue', keyboardListener); $(document).on('click.modd-dialogue', skipText); } - function printingCompleted () { - window.isPrintingDialogue = false; - - if (dialogue.areAllMessagesPrinted()) { - if (dialogue.hasOptions()) { - if (!dialogue.areOptionsRendered) { - showOptions(); - } - } else { - $('#modd-dialogue-skip-hint').removeClass('d-none'); - } - } else { - $('#modd-dialogue-skip-hint').removeClass('d-none'); - } - } - function showOptions () { - $('#modd-dialogue-options').html(''); - - for (var key in dialogue.options) { - var optionObject = dialogue.options[key]; - var button = $('