From ac77531603d9af7a87fc53583c22f53f344b31ae Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 15 Nov 2022 12:14:20 -0500 Subject: [PATCH] v2.0.0: adjusted time freeze, now directly triggers plants/traps --- .../items/artifacts/TimekeepersHourglass.java | 19 ++++++++++++++--- .../plants/Swiftthistle.java | 21 ++++++++++++++----- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/TimekeepersHourglass.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/TimekeepersHourglass.java index ee6a939a5..73cb0e076 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/TimekeepersHourglass.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/TimekeepersHourglass.java @@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEnergy; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.plants.Plant; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; @@ -357,8 +358,16 @@ public class TimekeepersHourglass extends Artifact { } public void triggerPresses(){ - for (int cell : presses) - Dungeon.level.pressCell(cell); + for (int cell : presses){ + Trap t = Dungeon.level.traps.get(cell); + if (t != null){ + t.trigger(); + } + Plant p = Dungeon.level.plants.get(cell); + if (p != null){ + p.trigger(); + } + } presses = new ArrayList<>(); } @@ -366,7 +375,11 @@ public class TimekeepersHourglass extends Artifact { public void disarmPressedTraps(){ for (int cell : presses){ Trap t = Dungeon.level.traps.get(cell); - if (t != null && t.disarmedByActivation) t.disarm(); + if (t != null && t.disarmedByActivation) { + t.disarm(); + } + + Dungeon.level.uproot(cell); } presses = new ArrayList<>(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java index f389fcf7f..ddb9d4ab3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java @@ -121,18 +121,29 @@ public class Swiftthistle extends Plant { } } - public void triggerPresses() { - for (int cell : presses) { - Dungeon.level.pressCell(cell); + public void triggerPresses(){ + for (int cell : presses){ + Trap t = Dungeon.level.traps.get(cell); + if (t != null){ + t.trigger(); + } + Plant p = Dungeon.level.plants.get(cell); + if (p != null){ + p.trigger(); + } } - + presses = new ArrayList<>(); } public void disarmPressedTraps(){ for (int cell : presses){ Trap t = Dungeon.level.traps.get(cell); - if (t != null && t.disarmedByActivation) t.disarm(); + if (t != null && t.disarmedByActivation) { + t.disarm(); + } + + Dungeon.level.uproot(cell); } presses = new ArrayList<>();