v0.3.2b: implemented locked room time mechanics into bosses

This commit is contained in:
Evan Debenham
2015-11-07 21:19:26 -05:00
parent 318df64246
commit 3a9331eddb
5 changed files with 48 additions and 6 deletions
@@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
import java.util.HashSet;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CapeOfThorns;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
@@ -129,7 +130,14 @@ public class DM300 extends Mob {
Buff.prolong( ch, Paralysis.class, 2 );
}
}
@Override
public void damage(int dmg, Object src) {
super.damage(dmg, src);
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if (lock != null) lock.addTime(dmg*1.5f);
}
@Override
public void die( Object cause ) {
@@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.GooWarn;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ElmoParticle;
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
@@ -221,6 +222,8 @@ public class Goo extends Mob {
yell("GLUUUURP!");
spend( TICK );
}
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if (lock != null) lock.addTime(dmg*2);
}
@Override
@@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
import java.util.HashSet;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
@@ -139,6 +140,13 @@ public class King extends Mob {
return super.attack(enemy);
}
}
@Override
public void damage(int dmg, Object src) {
super.damage(dmg, src);
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if (lock != null) lock.addTime(dmg);
}
@Override
public void die( Object cause ) {
@@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
import java.util.HashSet;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
import com.shatteredpixel.shatteredpixeldungeon.levels.PrisonBossLevel;
@@ -51,8 +52,6 @@ import com.watabou.utils.Bundle;
import com.watabou.utils.Random;
public class Tengu extends Mob {
private static final int JUMP_DELAY = 5;
{
name = "Tengu";
@@ -67,8 +66,6 @@ public class Tengu extends Mob {
flying = true; //doesn't literally fly, but he is fleet-of-foot enough to avoid hazards
}
private int timeToJump = JUMP_DELAY;
@Override
public int damageRoll() {
return Random.NormalIntRange( 6, 15 );
@@ -86,6 +83,13 @@ public class Tengu extends Mob {
@Override
public void damage(int dmg, Object src) {
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if (lock != null) {
int multiple = HP > HT/2 ? 3 : 5;
lock.addTime(dmg*multiple);
}
//phase 2 of the fight is over
if (dmg >= HP) {
((PrisonBossLevel)Dungeon.level).progress();
@@ -145,7 +149,6 @@ public class Tengu extends Mob {
}
private void jump() {
timeToJump = JUMP_DELAY;
for (int i=0; i < 4; i++) {
int trapPos;
@@ -34,6 +34,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Ooze;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
@@ -118,6 +119,11 @@ public class Yog extends Mob {
dmg >>= fists.size();
super.damage( dmg, src );
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if (lock != null) lock.addTime(dmg*0.5f);
}
@Override
@@ -259,6 +265,13 @@ public class Yog extends Mob {
return super.act();
}
@Override
public void damage(int dmg, Object src) {
super.damage(dmg, src);
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if (lock != null) lock.addTime(dmg*0.5f);
}
@Override
public String description() {
@@ -366,6 +379,13 @@ public class Yog extends Mob {
return super.act();
}
@Override
public void damage(int dmg, Object src) {
super.damage(dmg, src);
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if (lock != null) lock.addTime(dmg*0.5f);
}
@Override
public String description() {