v3.0.0: added a delay to time freeze press triggering
triggering instantly caused effect order errors, including a dupe bug involving teleport traps
This commit is contained in:
+23
-11
@@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.artifacts;
|
|||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
||||||
@@ -374,18 +375,29 @@ public class TimekeepersHourglass extends Artifact {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void triggerPresses(){
|
public void triggerPresses(){
|
||||||
for (int cell : presses){
|
ArrayList<Integer> toTrigger = 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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
presses = new ArrayList<>();
|
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(){
|
public void disarmPresses(){
|
||||||
|
|||||||
+23
-11
@@ -22,6 +22,7 @@
|
|||||||
package com.shatteredpixel.shatteredpixeldungeon.plants;
|
package com.shatteredpixel.shatteredpixeldungeon.plants;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste;
|
||||||
@@ -122,18 +123,29 @@ public class Swiftthistle extends Plant {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void triggerPresses(){
|
public void triggerPresses(){
|
||||||
for (int cell : presses){
|
ArrayList<Integer> toTrigger = 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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
presses = new ArrayList<>();
|
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(){
|
public void disarmPresses(){
|
||||||
|
|||||||
Reference in New Issue
Block a user