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 a23c88aaa..8f3025bc4 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 @@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Alchemy; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AdrenalineSurge; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Awareness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barkskin; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Berserk; @@ -1197,7 +1198,7 @@ public class Hero extends Char { } else if (fieldOfView[cell] && (ch = Actor.findChar( cell )) instanceof Mob) { - if (ch.alignment != Alignment.ENEMY) { + if (ch.alignment != Alignment.ENEMY && ch.buff(Amok.class) == null) { curAction = new HeroAction.Interact( ch ); } else { curAction = new HeroAction.Attack( ch ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java index f7d3dbefe..7715f5105 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java @@ -914,6 +914,7 @@ public abstract class Mob extends Char { for (Mob ally : heldAllies) { level.mobs.add(ally); + ally.state = ally.WANDERING; if (!candidatePositions.isEmpty()){ ally.pos = candidatePositions.remove(0); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java index ce972fe6d..79a7e888b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java @@ -222,7 +222,7 @@ public class CavesBossLevel extends Level { for (Mob m : mobs){ //bring the first ally with you - if (m.alignment == Char.Alignment.ALLY){ + if (m.alignment == Char.Alignment.ALLY && !m.properties().contains(Char.Property.IMMOVABLE)){ m.pos = Dungeon.hero.pos + (Random.Int(2) == 0 ? +1 : -1); m.sprite.place(m.pos); break; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CityBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CityBossLevel.java index 414081d62..e22091032 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CityBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CityBossLevel.java @@ -193,7 +193,7 @@ public class CityBossLevel extends Level { for (Mob m : mobs){ //bring the first ally with you - if (m.alignment == Char.Alignment.ALLY){ + if (m.alignment == Char.Alignment.ALLY && !m.properties().contains(Char.Property.IMMOVABLE)){ m.pos = Dungeon.hero.pos + (Random.Int(2) == 0 ? +1 : -1); m.sprite.place(m.pos); break; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java index a49a38aeb..906669f90 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java @@ -415,7 +415,7 @@ public class PrisonBossLevel extends Level { //remove all mobs, but preserve allies ArrayList allies = new ArrayList<>(); for(Mob m : mobs.toArray(new Mob[0])){ - if (m.alignment == Char.Alignment.ALLY){ + if (m.alignment == Char.Alignment.ALLY && !m.properties().contains(Char.Property.IMMOVABLE)){ allies.add(m); mobs.remove(m); }