implement dialogue progression and text display for NPC interactions

This commit is contained in:
2026-03-23 23:11:08 +01:00
parent 8961dd0e1b
commit e5b86cd778
2 changed files with 15 additions and 0 deletions

View File

@@ -28,6 +28,8 @@ public class UI {
public int npcSlotCol, npcSlotRow; public int npcSlotCol, npcSlotRow;
private int transCount; private int transCount;
private int sleepCount; private int sleepCount;
private int charIndex;
private String combinedText;
// SUB-STATES // SUB-STATES
public TradeState tradeState = TradeState.SELECT; public TradeState tradeState = TradeState.SELECT;
@@ -296,7 +298,16 @@ public class UI {
if(tradingNPC.dialogue[tradingNPC.dialogueSet][tradingNPC.dialogueIndex] != null) { if(tradingNPC.dialogue[tradingNPC.dialogueSet][tradingNPC.dialogueIndex] != null) {
currentDialogue = tradingNPC.dialogue[tradingNPC.dialogueSet][tradingNPC.dialogueIndex]; currentDialogue = tradingNPC.dialogue[tradingNPC.dialogueSet][tradingNPC.dialogueIndex];
char[] characters = tradingNPC.dialogue[tradingNPC.dialogueSet][tradingNPC.dialogueIndex].toCharArray();
if(charIndex < characters.length) {
String s = String.valueOf(characters[charIndex]);
combinedText = combinedText + s;
currentDialogue = combinedText;
charIndex++;
}
if(panel.keyH.spacePressed) { if(panel.keyH.spacePressed) {
charIndex = 0;
combinedText = "";
if(panel.gameState == GameState.DIALOGUE) { if(panel.gameState == GameState.DIALOGUE) {
tradingNPC.dialogueIndex++; tradingNPC.dialogueIndex++;
panel.keyH.spacePressed = false; panel.keyH.spacePressed = false;

View File

@@ -20,6 +20,8 @@ public class OldManNPC extends Entity {
getImage(); getImage();
setDialogue(); setDialogue();
dialogueSet = -1;
solidArea.x = 8; solidArea.x = 8;
solidArea.y = 16; solidArea.y = 16;
solidAreaDefaultX = solidArea.x; solidAreaDefaultX = solidArea.x;
@@ -50,6 +52,8 @@ public class OldManNPC extends Entity {
public void speak() { public void speak() {
super.facePlayer(); super.facePlayer();
super.startDialogue(this,super.dialogueSet); super.startDialogue(this,super.dialogueSet);
dialogueSet++;
if(dialogue[dialogueSet][0] == null) dialogueSet = 0;
// super.onPath = true; // super.onPath = true;
} }