From 98df73743cd63646609c26ddf94f7d37631b1149 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 22 Sep 2017 20:50:01 -0400 Subject: [PATCH] v0.6.2: teleportation effects now set mob ai to wandering --- .../shatteredpixeldungeon/items/artifacts/LloydsBeacon.java | 4 ++++ .../shatteredpixeldungeon/items/wands/CursedWand.java | 2 ++ .../shatteredpixeldungeon/items/weapon/curses/Displacing.java | 4 ++++ .../shatteredpixeldungeon/levels/traps/TeleportationTrap.java | 4 ++++ .../shatteredpixel/shatteredpixeldungeon/plants/Fadeleaf.java | 1 + 5 files changed, 15 insertions(+) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/LloydsBeacon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/LloydsBeacon.java index 55ac00d02..fde51e1b5 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/LloydsBeacon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/LloydsBeacon.java @@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; @@ -231,6 +232,9 @@ public class LloydsBeacon extends Artifact { } else { ch.pos = pos; + if (ch instanceof Mob && ((Mob) ch).state == ((Mob) ch).HUNTING){ + ((Mob) ch).state = ((Mob) ch).WANDERING; + } ch.sprite.place(ch.pos); ch.sprite.visible = Dungeon.level.heroFOV[pos]; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java index 2692e94e9..284c9d03f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java @@ -38,6 +38,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Frost; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Recharging; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mimic; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Sheep; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.Flare; @@ -165,6 +166,7 @@ public class CursedWand { GLog.w( Messages.get(ScrollOfTeleportation.class, "no_tele") ); } else { ch.pos = pos; + if (((Mob) ch).state == ((Mob) ch).HUNTING) ((Mob) ch).state = ((Mob) ch).WANDERING; ch.sprite.place(ch.pos); ch.sprite.visible = Dungeon.level.heroFOV[pos]; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/curses/Displacing.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/curses/Displacing.java index b1b0bcae2..cb777d625 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/curses/Displacing.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/curses/Displacing.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.weapon.curses; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; @@ -53,6 +54,9 @@ public class Displacing extends Weapon.Enchantment { } defender.pos = newPos; + if (defender instanceof Mob && ((Mob) defender).state == ((Mob) defender).HUNTING){ + ((Mob) defender).state = ((Mob) defender).WANDERING; + } defender.sprite.place( defender.pos ); defender.sprite.visible = Dungeon.level.heroFOV[defender.pos]; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/TeleportationTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/TeleportationTrap.java index 2e9990c7a..6143ef651 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/TeleportationTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/TeleportationTrap.java @@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.items.Heap; @@ -68,6 +69,9 @@ public class TeleportationTrap extends Trap { } else { ch.pos = pos; + if (ch instanceof Mob && ((Mob) ch).state == ((Mob) ch).HUNTING){ + ((Mob) ch).state = ((Mob) ch).WANDERING; + } ch.sprite.place(ch.pos); ch.sprite.visible = Dungeon.level.heroFOV[pos]; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Fadeleaf.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Fadeleaf.java index 92895da96..59a67bca7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Fadeleaf.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Fadeleaf.java @@ -61,6 +61,7 @@ public class Fadeleaf extends Plant { if (newPos != -1 && !Dungeon.bossLevel()) { ch.pos = newPos; + if (((Mob) ch).state == ((Mob) ch).HUNTING) ((Mob) ch).state = ((Mob) ch).WANDERING; ch.sprite.place( ch.pos ); ch.sprite.visible = Dungeon.level.heroFOV[ch.pos];