refactor dialogue handling for various game entities
This commit is contained in:
@@ -5,6 +5,7 @@ import de.miaurizius.jgame2d.core.enums.Direction;
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.Utility;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
import de.miaurizius.jgame2d.entity.particle.Particle;
|
||||
import de.miaurizius.jgame2d.entity.projectile.Projectile;
|
||||
|
||||
@@ -30,13 +31,14 @@ public class Entity {
|
||||
public Entity attacker;
|
||||
public int solidAreaDefaultX, solidAreaDefaultY;
|
||||
public boolean collision;
|
||||
protected String[] dialogue = new String[20];
|
||||
public String[][] dialogue = new String[20][20];
|
||||
|
||||
// STATE
|
||||
public int worldX, worldY;
|
||||
public Direction direction = Direction.DOWN;
|
||||
public int spriteNum = 1;
|
||||
int dialogueIndex;
|
||||
public int dialogueSet;
|
||||
public int dialogueIndex;
|
||||
public boolean collisionOn;
|
||||
public boolean invincible;
|
||||
public boolean transparent;
|
||||
@@ -267,10 +269,9 @@ public class Entity {
|
||||
panel.player.invincible = true;
|
||||
}
|
||||
public void speak() {
|
||||
if(dialogue[dialogueIndex] == null) dialogueIndex = 0;
|
||||
panel.ui.currentDialogue = dialogue[dialogueIndex];
|
||||
dialogueIndex++;
|
||||
|
||||
}
|
||||
public void facePlayer() {
|
||||
switch(panel.player.direction) {
|
||||
case UP -> direction = Direction.DOWN;
|
||||
case DOWN -> direction = Direction.UP;
|
||||
@@ -278,6 +279,11 @@ public class Entity {
|
||||
case RIGHT -> direction = Direction.LEFT;
|
||||
}
|
||||
}
|
||||
public void startDialogue(Entity entity, int setNum) {
|
||||
panel.gameState = GameState.DIALOGUE;
|
||||
panel.ui.tradingNPC = entity;
|
||||
dialogueSet = setNum;
|
||||
}
|
||||
public void dyingAnimation(Graphics2D graphics2d) {
|
||||
dyingCount++;
|
||||
int incr = 5;
|
||||
|
||||
Reference in New Issue
Block a user