v2.1.0: improved logic for boss level messages during ascension

This commit is contained in:
Evan Debenham
2023-04-28 12:41:40 -04:00
parent 67132b929f
commit fa828c402a
2 changed files with 16 additions and 10 deletions

View File

@@ -24,11 +24,13 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.Ratmogrify;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.*;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Shopkeeper;
import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
import com.shatteredpixel.shatteredpixeldungeon.messages.Languages;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
@@ -202,6 +204,7 @@ public class AscensionChallenge extends Buff {
public void onLevelSwitch(){
if (Dungeon.depth < Statistics.highestAscent){
Statistics.highestAscent = Dungeon.depth;
justAscended = true;
if (Dungeon.bossLevel()){
Dungeon.hero.buff(Hunger.class).satisfy(Hunger.STARVING);
Buff.affect(Dungeon.hero, Healing.class).setHeal(Dungeon.hero.HT, 0, 20);
@@ -229,9 +232,19 @@ public class AscensionChallenge extends Buff {
}
//messages at boss levels only trigger on first ascent
private boolean justAscended = false;
public void saySwitch(){
if (Dungeon.bossLevel()){
GLog.p(Messages.get(this, "break"));
if (justAscended) {
GLog.p(Messages.get(this, "break"));
for (Char ch : Actor.chars()){
if (ch instanceof DriedRose.GhostHero){
((DriedRose.GhostHero) ch).sayAppeared();
}
}
}
} else {
if (Dungeon.depth == 1){
GLog.n(Messages.get(this, "almost"));
@@ -248,6 +261,7 @@ public class AscensionChallenge extends Buff {
GLog.h(Messages.get(this, "weaken_info"));
}
}
justAscended = false;
}
@Override

View File

@@ -549,16 +549,8 @@ public class GameScene extends PixelScene {
}
}
if (Dungeon.hero.buff(AscensionChallenge.class) != null
&& Dungeon.depth == Statistics.highestAscent){
if (Dungeon.hero.buff(AscensionChallenge.class) != null){
Dungeon.hero.buff(AscensionChallenge.class).saySwitch();
if (Dungeon.bossLevel()){
for (Char ch : Actor.chars()){
if (ch instanceof DriedRose.GhostHero){
((DriedRose.GhostHero) ch).sayAppeared();
}
}
}
}
InterlevelScene.mode = InterlevelScene.Mode.NONE;