v2.1.0: adjusted boss regen caps a bit, made notably harsher with chals
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
@@ -29,7 +30,8 @@ import com.watabou.utils.Bundle;
|
||||
public class LockedFloor extends Buff {
|
||||
|
||||
//the amount of turns remaining before beneficial passive effects turn off
|
||||
private float left = 50; //starts at 50 turns
|
||||
//starts at 50 turns normally, 20 with badder bosses
|
||||
private float left = Dungeon.isChallenged(Challenges.STRONGER_BOSSES) ? 20 : 50;
|
||||
|
||||
@Override
|
||||
public boolean act() {
|
||||
@@ -46,6 +48,7 @@ public class LockedFloor extends Buff {
|
||||
|
||||
public void addTime(float time){
|
||||
left += time;
|
||||
left = Math.max(left, 50); //cannot build to more than 50
|
||||
}
|
||||
|
||||
public void removeTime(float time){
|
||||
|
||||
@@ -478,7 +478,10 @@ public class DM300 extends Mob {
|
||||
int dmgTaken = preHP - HP;
|
||||
if (dmgTaken > 0) {
|
||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||
if (lock != null && !isImmune(src.getClass())) lock.addTime(dmgTaken*1.5f);
|
||||
if (lock != null && !isImmune(src.getClass())){
|
||||
if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) lock.addTime(dmgTaken/2f);
|
||||
else lock.addTime(dmgTaken);
|
||||
}
|
||||
}
|
||||
|
||||
int threshold;
|
||||
|
||||
@@ -473,7 +473,10 @@ public class DwarfKing extends Mob {
|
||||
super.damage(dmg, src);
|
||||
|
||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||
if (lock != null && !isImmune(src.getClass())) lock.addTime(dmg/3);
|
||||
if (lock != null && !isImmune(src.getClass())){
|
||||
if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) lock.addTime(dmg/5f);
|
||||
else lock.addTime(dmg/3f);
|
||||
}
|
||||
|
||||
if (phase == 1) {
|
||||
int dmgTaken = preHP - HP;
|
||||
|
||||
@@ -111,7 +111,10 @@ public class Goo extends Mob {
|
||||
Statistics.qualifiedForBossChallengeBadge = false;
|
||||
|
||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||
if (lock != null) lock.removeTime(healInc*2);
|
||||
if (lock != null){
|
||||
if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) lock.removeTime(healInc);
|
||||
else lock.removeTime(healInc*1.5f);
|
||||
}
|
||||
|
||||
if (Dungeon.level.heroFOV[pos] ){
|
||||
sprite.emitter().burst( Speck.factory( Speck.HEALING ), healInc );
|
||||
@@ -270,7 +273,10 @@ public class Goo extends Mob {
|
||||
yell(Messages.get(this, "gluuurp"));
|
||||
}
|
||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||
if (lock != null) lock.addTime(dmg*2);
|
||||
if (lock != null){
|
||||
if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) lock.addTime(dmg);
|
||||
else lock.addTime(dmg*1.5f);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Dread;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
|
||||
@@ -189,6 +190,12 @@ public class Pylon extends Mob {
|
||||
//takes 15/16/17/18/19/20 dmg at 15/17/20/24/29/36 incoming dmg
|
||||
dmg = 14 + (int)(Math.sqrt(8*(dmg - 14) + 1) - 1)/2;
|
||||
}
|
||||
|
||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||
if (lock != null && !isImmune(src.getClass())){
|
||||
if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) lock.addTime(dmg/2f);
|
||||
else lock.addTime(dmg);
|
||||
}
|
||||
super.damage(dmg, src);
|
||||
}
|
||||
|
||||
|
||||
@@ -149,8 +149,8 @@ public class Tengu extends Mob {
|
||||
|
||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||
if (lock != null) {
|
||||
int multiple = state == PrisonBossLevel.State.FIGHT_START ? 1 : 4;
|
||||
lock.addTime(dmg*multiple);
|
||||
if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) lock.addTime(dmg/2f);
|
||||
else lock.addTime(dmg);
|
||||
}
|
||||
|
||||
//phase 2 of the fight is over
|
||||
|
||||
@@ -418,7 +418,10 @@ public class YogDzewa extends Mob {
|
||||
}
|
||||
|
||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||
if (lock != null) lock.addTime(dmgTaken);
|
||||
if (lock != null){
|
||||
if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) lock.addTime(dmgTaken/3f);
|
||||
else lock.addTime(dmgTaken/2f);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
@@ -36,6 +37,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Frost;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Ooze;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
|
||||
@@ -140,6 +142,19 @@ public abstract class YogFist extends Mob {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void damage(int dmg, Object src) {
|
||||
int preHP = HP;
|
||||
super.damage(dmg, src);
|
||||
int dmgTaken = HP - preHP;
|
||||
|
||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||
if (dmgTaken > 0 && lock != null){
|
||||
if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) lock.addTime(dmgTaken/4f);
|
||||
else lock.addTime(dmgTaken/2f);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract void zap();
|
||||
|
||||
public void onZapComplete(){
|
||||
|
||||
Reference in New Issue
Block a user