v2.0.0: fixed new chasm warning logic not accounting for time freeze
This commit is contained in:
@@ -24,7 +24,9 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourglass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Swiftthistle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
@@ -58,6 +60,19 @@ public class Levitation extends FlavourBuff {
|
||||
Dungeon.level.occupyCell(target );
|
||||
}
|
||||
}
|
||||
|
||||
//used to determine if levitation is about to end
|
||||
public boolean detachesWithinDelay(float delay){
|
||||
if (target.buff(Swiftthistle.TimeBubble.class) != null){
|
||||
return false;
|
||||
}
|
||||
|
||||
if (target.buff(TimekeepersHourglass.timeFreeze.class) != null){
|
||||
return false;
|
||||
}
|
||||
|
||||
return cooldown() < delay;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int icon() {
|
||||
|
||||
@@ -1537,7 +1537,7 @@ public class Hero extends Char {
|
||||
float delay = 1 / speed();
|
||||
|
||||
if (Dungeon.level.pit[step] && !Dungeon.level.solid[step]
|
||||
&& (!flying || buff(Levitation.class) != null && buff(Levitation.class).cooldown() < delay)){
|
||||
&& (!flying || buff(Levitation.class) != null && buff(Levitation.class).detachesWithinDelay(delay))){
|
||||
if (!Chasm.jumpConfirmed){
|
||||
Chasm.heroJump(this);
|
||||
interrupt();
|
||||
|
||||
Reference in New Issue
Block a user