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;
|
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||||
@@ -29,7 +30,8 @@ import com.watabou.utils.Bundle;
|
|||||||
public class LockedFloor extends Buff {
|
public class LockedFloor extends Buff {
|
||||||
|
|
||||||
//the amount of turns remaining before beneficial passive effects turn off
|
//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
|
@Override
|
||||||
public boolean act() {
|
public boolean act() {
|
||||||
@@ -46,6 +48,7 @@ public class LockedFloor extends Buff {
|
|||||||
|
|
||||||
public void addTime(float time){
|
public void addTime(float time){
|
||||||
left += time;
|
left += time;
|
||||||
|
left = Math.max(left, 50); //cannot build to more than 50
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeTime(float time){
|
public void removeTime(float time){
|
||||||
|
|||||||
@@ -478,7 +478,10 @@ public class DM300 extends Mob {
|
|||||||
int dmgTaken = preHP - HP;
|
int dmgTaken = preHP - HP;
|
||||||
if (dmgTaken > 0) {
|
if (dmgTaken > 0) {
|
||||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
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;
|
int threshold;
|
||||||
|
|||||||
@@ -473,7 +473,10 @@ public class DwarfKing extends Mob {
|
|||||||
super.damage(dmg, src);
|
super.damage(dmg, src);
|
||||||
|
|
||||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
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) {
|
if (phase == 1) {
|
||||||
int dmgTaken = preHP - HP;
|
int dmgTaken = preHP - HP;
|
||||||
|
|||||||
@@ -111,7 +111,10 @@ public class Goo extends Mob {
|
|||||||
Statistics.qualifiedForBossChallengeBadge = false;
|
Statistics.qualifiedForBossChallengeBadge = false;
|
||||||
|
|
||||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
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] ){
|
if (Dungeon.level.heroFOV[pos] ){
|
||||||
sprite.emitter().burst( Speck.factory( Speck.HEALING ), healInc );
|
sprite.emitter().burst( Speck.factory( Speck.HEALING ), healInc );
|
||||||
@@ -270,7 +273,10 @@ public class Goo extends Mob {
|
|||||||
yell(Messages.get(this, "gluuurp"));
|
yell(Messages.get(this, "gluuurp"));
|
||||||
}
|
}
|
||||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
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
|
@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.Amok;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Dread;
|
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.Paralysis;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
|
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
|
//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;
|
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);
|
super.damage(dmg, src);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -149,8 +149,8 @@ public class Tengu extends Mob {
|
|||||||
|
|
||||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||||
if (lock != null) {
|
if (lock != null) {
|
||||||
int multiple = state == PrisonBossLevel.State.FIGHT_START ? 1 : 4;
|
if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)) lock.addTime(dmg/2f);
|
||||||
lock.addTime(dmg*multiple);
|
else lock.addTime(dmg);
|
||||||
}
|
}
|
||||||
|
|
||||||
//phase 2 of the fight is over
|
//phase 2 of the fight is over
|
||||||
|
|||||||
@@ -418,7 +418,10 @@ public class YogDzewa extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
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;
|
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
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.Frost;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
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.Ooze;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
|
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();
|
protected abstract void zap();
|
||||||
|
|
||||||
public void onZapComplete(){
|
public void onZapComplete(){
|
||||||
|
|||||||
Reference in New Issue
Block a user