mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-20 13:30:27 -07:00
new DialogueFile.kt system
This commit is contained in:
parent
8b347fc826
commit
bfd54d0c2d
3 changed files with 67 additions and 0 deletions
|
|
@ -0,0 +1,56 @@
|
|||
package core.game.content.dialogue
|
||||
|
||||
import core.game.component.Component
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
|
||||
abstract class DialogueFile {
|
||||
var player: Player? = null
|
||||
var npc: NPC? = null
|
||||
var interpreter: DialogueInterpreter? = null
|
||||
var stage = 0
|
||||
abstract fun handle(componentID: Int, buttonID: Int)
|
||||
fun load(player: Player, npc: NPC, interpreter: DialogueInterpreter): DialogueFile{
|
||||
val newFile = this::class.java.newInstance()
|
||||
newFile.player = player
|
||||
newFile.npc = npc
|
||||
newFile.interpreter = interpreter
|
||||
return newFile
|
||||
}
|
||||
|
||||
open fun npc(vararg messages: String?): Component? {
|
||||
return if (npc == null) {
|
||||
interpreter!!.sendDialogues(
|
||||
npc!!.id,
|
||||
if (npc!!.id > 8591) FacialExpression.OLD_NORMAL else FacialExpression.FRIENDLY,
|
||||
*messages
|
||||
)
|
||||
} else interpreter!!.sendDialogues(
|
||||
npc,
|
||||
if (npc!!.id > 8591) FacialExpression.OLD_NORMAL else FacialExpression.FRIENDLY,
|
||||
*messages
|
||||
)
|
||||
}
|
||||
|
||||
open fun npc(id: Int, vararg messages: String?): Component? {
|
||||
return interpreter!!.sendDialogues(id, FacialExpression.FRIENDLY, *messages)
|
||||
}
|
||||
|
||||
open fun npc(expression: FacialExpression?, vararg messages: String?): Component? {
|
||||
return if (npc == null) {
|
||||
interpreter!!.sendDialogues(0, expression, *messages)
|
||||
} else interpreter!!.sendDialogues(npc, expression, *messages)
|
||||
}
|
||||
|
||||
open fun player(vararg messages: String?): Component? {
|
||||
return interpreter!!.sendDialogues(player, null, *messages)
|
||||
}
|
||||
|
||||
open fun player(expression: FacialExpression?, vararg messages: String?): Component? {
|
||||
return interpreter!!.sendDialogues(player, expression, *messages)
|
||||
}
|
||||
|
||||
fun end(){
|
||||
if(interpreter != null) interpreter!!.close()
|
||||
}
|
||||
}
|
||||
|
|
@ -172,6 +172,10 @@ public final class DialogueInterpreter {
|
|||
return;
|
||||
}
|
||||
player.setAttribute("chatbox-buttonid",buttonId);
|
||||
if(player.getDialogueInterpreter().getDialogue().file != null){
|
||||
player.getDialogueInterpreter().getDialogue().file.handle(componentId,buttonId - 1);
|
||||
return;
|
||||
}
|
||||
player.getDialogueInterpreter().getDialogue().handle(componentId, buttonId - 1);//here
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ public abstract class DialoguePlugin implements Plugin<Player> {
|
|||
*/
|
||||
protected DialogueInterpreter interpreter;
|
||||
|
||||
public DialogueFile file;
|
||||
|
||||
/**
|
||||
* Two options interface.
|
||||
*/
|
||||
|
|
@ -261,4 +263,9 @@ public abstract class DialoguePlugin implements Plugin<Player> {
|
|||
this.stage += 1;
|
||||
}
|
||||
|
||||
public void loadFile(DialogueFile file){
|
||||
this.file = file.load(player,npc,interpreter);
|
||||
stage = 0;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue