v0.3.2b: implemented locked room time mechanics into bosses
This commit is contained in:
@@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
|||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CapeOfThorns;
|
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CapeOfThorns;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
|
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
|
||||||
@@ -129,7 +130,14 @@ public class DM300 extends Mob {
|
|||||||
Buff.prolong( ch, Paralysis.class, 2 );
|
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
|
@Override
|
||||||
public void die( Object cause ) {
|
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.Blob;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.GooWarn;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.GooWarn;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
|
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.CellEmitter;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ElmoParticle;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ElmoParticle;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
|
||||||
@@ -221,6 +222,8 @@ public class Goo extends Mob {
|
|||||||
yell("GLUUUURP!");
|
yell("GLUUUURP!");
|
||||||
spend( TICK );
|
spend( TICK );
|
||||||
}
|
}
|
||||||
|
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||||
|
if (lock != null) lock.addTime(dmg*2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
|||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
|
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
|
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
|
||||||
@@ -139,6 +140,13 @@ public class King extends Mob {
|
|||||||
return super.attack(enemy);
|
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
|
@Override
|
||||||
public void die( Object cause ) {
|
public void die( Object cause ) {
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
|||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
|
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.PrisonBossLevel;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.PrisonBossLevel;
|
||||||
@@ -51,8 +52,6 @@ import com.watabou.utils.Bundle;
|
|||||||
import com.watabou.utils.Random;
|
import com.watabou.utils.Random;
|
||||||
|
|
||||||
public class Tengu extends Mob {
|
public class Tengu extends Mob {
|
||||||
|
|
||||||
private static final int JUMP_DELAY = 5;
|
|
||||||
|
|
||||||
{
|
{
|
||||||
name = "Tengu";
|
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
|
flying = true; //doesn't literally fly, but he is fleet-of-foot enough to avoid hazards
|
||||||
}
|
}
|
||||||
|
|
||||||
private int timeToJump = JUMP_DELAY;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int damageRoll() {
|
public int damageRoll() {
|
||||||
return Random.NormalIntRange( 6, 15 );
|
return Random.NormalIntRange( 6, 15 );
|
||||||
@@ -86,6 +83,13 @@ public class Tengu extends Mob {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void damage(int dmg, Object src) {
|
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
|
//phase 2 of the fight is over
|
||||||
if (dmg >= HP) {
|
if (dmg >= HP) {
|
||||||
((PrisonBossLevel)Dungeon.level).progress();
|
((PrisonBossLevel)Dungeon.level).progress();
|
||||||
@@ -145,7 +149,6 @@ public class Tengu extends Mob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void jump() {
|
private void jump() {
|
||||||
timeToJump = JUMP_DELAY;
|
|
||||||
|
|
||||||
for (int i=0; i < 4; i++) {
|
for (int i=0; i < 4; i++) {
|
||||||
int trapPos;
|
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.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm;
|
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.Ooze;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
|
||||||
@@ -118,6 +119,11 @@ public class Yog extends Mob {
|
|||||||
dmg >>= fists.size();
|
dmg >>= fists.size();
|
||||||
|
|
||||||
super.damage( dmg, src );
|
super.damage( dmg, src );
|
||||||
|
|
||||||
|
|
||||||
|
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
|
||||||
|
if (lock != null) lock.addTime(dmg*0.5f);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -259,6 +265,13 @@ public class Yog extends Mob {
|
|||||||
|
|
||||||
return super.act();
|
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
|
@Override
|
||||||
public String description() {
|
public String description() {
|
||||||
@@ -366,6 +379,13 @@ public class Yog extends Mob {
|
|||||||
|
|
||||||
return super.act();
|
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
|
@Override
|
||||||
public String description() {
|
public String description() {
|
||||||
|
|||||||
Reference in New Issue
Block a user