v2.0.0: fixed new chasm warning logic not accounting for time freeze

This commit is contained in:
Evan Debenham
2023-02-21 15:45:34 -05:00
parent 48d76e2541
commit b92ff9f383
2 changed files with 16 additions and 1 deletions

View File

@@ -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() {

View File

@@ -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();