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 ec1b4f6c6..acba36e99 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 @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.artifacts; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger; @@ -374,18 +375,29 @@ public class TimekeepersHourglass extends Artifact { } public void triggerPresses(){ - for (int cell : presses){ - Plant p = Dungeon.level.plants.get(cell); - if (p != null){ - p.trigger(); - } - Trap t = Dungeon.level.traps.get(cell); - if (t != null){ - t.trigger(); - } - } - + ArrayList toTrigger = presses; presses = new ArrayList<>(); + Actor.add(new Actor() { + { + actPriority = VFX_PRIO; + } + + @Override + protected boolean act() { + for (int cell : toTrigger){ + Plant p = Dungeon.level.plants.get(cell); + if (p != null){ + p.trigger(); + } + Trap t = Dungeon.level.traps.get(cell); + if (t != null){ + t.trigger(); + } + } + Actor.remove(this); + return true; + } + }); } public void disarmPresses(){ 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 f531d4b6b..207871b4b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.plants; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste; @@ -122,18 +123,29 @@ public class Swiftthistle extends Plant { } public void triggerPresses(){ - for (int cell : presses){ - Plant p = Dungeon.level.plants.get(cell); - if (p != null){ - p.trigger(); - } - Trap t = Dungeon.level.traps.get(cell); - if (t != null){ - t.trigger(); - } - } - + ArrayList toTrigger = presses; presses = new ArrayList<>(); + Actor.add(new Actor() { + { + actPriority = VFX_PRIO; + } + + @Override + protected boolean act() { + for (int cell : toTrigger){ + Plant p = Dungeon.level.plants.get(cell); + if (p != null){ + p.trigger(); + } + Trap t = Dungeon.level.traps.get(cell); + if (t != null){ + t.trigger(); + } + } + Actor.remove(this); + return true; + } + }); } public void disarmPresses(){