open NPC dialogue if you collide with it

This commit is contained in:
2025-11-28 19:54:30 +01:00
parent 61a51f184c
commit dada9e4f2f
6 changed files with 85 additions and 16 deletions

View File

@@ -13,6 +13,7 @@ public class OldManNPC extends Entity {
direction = Direction.DOWN;
speed = 1;
getImage();
setDialogue();
}
public void getImage() {
@@ -26,6 +27,13 @@ public class OldManNPC extends Entity {
right2 = initEntitySprites("npc/oldman_right_2");
}
public void setDialogue() {
dialogue[0] = "Hello, lad.";
dialogue[1] = "So you've come to this island to find the treasure?";
dialogue[2] = "I used to be a great wizard but now... I'm a bit too old for taking an adventure";
dialogue[3] = "Well, good luck on you.";
}
public void setAction() {
actionLock++;
if(actionLock != 120) return; //lock action for x frames
@@ -36,7 +44,19 @@ public class OldManNPC extends Entity {
if(i > 50 && i <= 75) direction = Direction.LEFT;
if(i > 75) direction = Direction.RIGHT;
actionLock = 0;
}
public void speak() {
if(dialogue[dialogueIndex] == null) dialogueIndex = 0;
panel.ui.currentDialogue = dialogue[dialogueIndex];
dialogueIndex++;
switch(panel.player.direction) {
case UP -> direction = Direction.DOWN;
case DOWN -> direction = Direction.UP;
case LEFT -> direction = Direction.RIGHT;
case RIGHT -> direction = Direction.LEFT;
}
}
}