v2.1.0: improved logic for boss level messages during ascension
This commit is contained in:
+15
-1
@@ -24,11 +24,13 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.Ratmogrify;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.Ratmogrify;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.*;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.*;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Shopkeeper;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Shopkeeper;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Languages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Languages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||||
@@ -202,6 +204,7 @@ public class AscensionChallenge extends Buff {
|
|||||||
public void onLevelSwitch(){
|
public void onLevelSwitch(){
|
||||||
if (Dungeon.depth < Statistics.highestAscent){
|
if (Dungeon.depth < Statistics.highestAscent){
|
||||||
Statistics.highestAscent = Dungeon.depth;
|
Statistics.highestAscent = Dungeon.depth;
|
||||||
|
justAscended = true;
|
||||||
if (Dungeon.bossLevel()){
|
if (Dungeon.bossLevel()){
|
||||||
Dungeon.hero.buff(Hunger.class).satisfy(Hunger.STARVING);
|
Dungeon.hero.buff(Hunger.class).satisfy(Hunger.STARVING);
|
||||||
Buff.affect(Dungeon.hero, Healing.class).setHeal(Dungeon.hero.HT, 0, 20);
|
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(){
|
public void saySwitch(){
|
||||||
if (Dungeon.bossLevel()){
|
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 {
|
} else {
|
||||||
if (Dungeon.depth == 1){
|
if (Dungeon.depth == 1){
|
||||||
GLog.n(Messages.get(this, "almost"));
|
GLog.n(Messages.get(this, "almost"));
|
||||||
@@ -248,6 +261,7 @@ public class AscensionChallenge extends Buff {
|
|||||||
GLog.h(Messages.get(this, "weaken_info"));
|
GLog.h(Messages.get(this, "weaken_info"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
justAscended = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -549,16 +549,8 @@ public class GameScene extends PixelScene {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Dungeon.hero.buff(AscensionChallenge.class) != null
|
if (Dungeon.hero.buff(AscensionChallenge.class) != null){
|
||||||
&& Dungeon.depth == Statistics.highestAscent){
|
|
||||||
Dungeon.hero.buff(AscensionChallenge.class).saySwitch();
|
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;
|
InterlevelScene.mode = InterlevelScene.Mode.NONE;
|
||||||
|
|||||||
Reference in New Issue
Block a user