diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index fd43b3e28..6647e1db5 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -584,8 +584,7 @@ public class Hero extends Char { ready(); sprite.turnTo( pos, npc.pos ); - npc.interact(); - return false; + return npc.interact(); } else { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Blacksmith.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Blacksmith.java index 95266becd..0217675c9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Blacksmith.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Blacksmith.java @@ -60,7 +60,7 @@ public class Blacksmith extends NPC { } @Override - public void interact() { + public boolean interact() { sprite.turnTo( pos, Dungeon.hero.pos ); @@ -136,6 +136,8 @@ public class Blacksmith extends NPC { tell( Messages.get(this, "get_lost") ); } + + return false; } private void tell( String text ) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java index 786ec92a5..32dca26ac 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java @@ -108,7 +108,7 @@ public class Ghost extends NPC { } @Override - public void interact() { + public boolean interact() { sprite.turnTo( pos, Dungeon.hero.pos ); Sample.INSTANCE.play( Assets.SND_GHOST ); @@ -173,6 +173,8 @@ public class Ghost extends NPC { } } + + return false; } private static final HashSet> IMMUNITIES = new HashSet<>(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Imp.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Imp.java index e21fdc8a2..2fa7de0bc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Imp.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Imp.java @@ -85,7 +85,7 @@ public class Imp extends NPC { } @Override - public void interact() { + public boolean interact() { sprite.turnTo( pos, Dungeon.hero.pos ); if (Quest.given) { @@ -106,6 +106,8 @@ public class Imp extends NPC { Journal.add( Journal.Feature.IMP ); } + + return false; } private void tell( String text ) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java index 74b684d3d..4bb74d940 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java @@ -118,7 +118,7 @@ public class MirrorImage extends NPC { } @Override - public void interact() { + public boolean interact() { int curPos = pos; @@ -130,6 +130,8 @@ public class MirrorImage extends NPC { Dungeon.hero.spend( 1 / Dungeon.hero.speed() ); Dungeon.hero.busy(); + + return true; } private static final HashSet> IMMUNITIES = new HashSet<>(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NPC.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NPC.java index d9f1b29c4..02e963e73 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NPC.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/NPC.java @@ -52,5 +52,5 @@ public abstract class NPC extends Mob { public void beckon( int cell ) { } - abstract public void interact(); + abstract public boolean interact(); } \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/RatKing.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/RatKing.java index 912f86dbe..2e86d6122 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/RatKing.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/RatKing.java @@ -63,7 +63,7 @@ public class RatKing extends NPC { } @Override - public void interact() { + public boolean interact() { sprite.turnTo( pos, Dungeon.hero.pos ); if (state == SLEEPING) { notice(); @@ -72,6 +72,7 @@ public class RatKing extends NPC { } else { yell( Messages.get(this, "what_is_it") ); } + return true; } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Sheep.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Sheep.java index b9b7b9bac..1e879beb2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Sheep.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Sheep.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.SheepSprite; @@ -61,7 +62,8 @@ public class Sheep extends NPC { } @Override - public void interact() { + public boolean interact() { yell( Messages.get(this, Random.element( LINE_KEYS )) ); + return false; } } \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java index 51313a4fb..4b54c9b67 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java @@ -94,7 +94,8 @@ public class Shopkeeper extends NPC { }; @Override - public void interact() { + public boolean interact() { sell(); + return false; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Wandmaker.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Wandmaker.java index 921c4ea6b..81685db8b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Wandmaker.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Wandmaker.java @@ -78,7 +78,7 @@ public class Wandmaker extends NPC { } @Override - public void interact() { + public boolean interact() { sprite.turnTo( pos, Dungeon.hero.pos ); if (Quest.given) { @@ -163,6 +163,8 @@ public class Wandmaker extends NPC { Journal.add( Journal.Feature.WANDMAKER ); Quest.given = true; } + + return false; } public static class Quest { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java index 83fff070f..1ed016aff 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java @@ -392,10 +392,11 @@ public class DriedRose extends Artifact { } @Override - public void interact() { + public boolean interact() { if (!DriedRose.talkedTo){ DriedRose.talkedTo = true; GameScene.show(new WndQuest(this, Messages.get(this, "introduce") )); + return false; } else { int curPos = pos; @@ -407,6 +408,7 @@ public class DriedRose extends Artifact { Dungeon.hero.spend( 1 / Dungeon.hero.speed() ); Dungeon.hero.busy(); + return true; } }