From 3a9331eddbef8823258e2aae4786659899c22198 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 7 Nov 2015 21:19:26 -0500 Subject: [PATCH] v0.3.2b: implemented locked room time mechanics into bosses --- .../actors/mobs/DM300.java | 10 +++++++++- .../actors/mobs/Goo.java | 3 +++ .../actors/mobs/King.java | 8 ++++++++ .../actors/mobs/Tengu.java | 13 +++++++----- .../actors/mobs/Yog.java | 20 +++++++++++++++++++ 5 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java index 306f82d49..8b5480565 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java @@ -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 ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java index e498809ca..8bc397b8c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java @@ -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 diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java index 050cf9dc7..49641ece8 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java @@ -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 ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java index 55183189a..43ef02f0c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java @@ -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; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java index 1f27be7ea..cb5938b5d 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java @@ -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() {