v0.3.0: improved previous hunger mechanics changes, now better coded & clarified
This commit is contained in:
@@ -218,7 +218,7 @@ public class CavesBossLevel extends Level {
|
||||
if (!enteredArena && outsideEntraceRoom( cell ) && hero == Dungeon.hero) {
|
||||
|
||||
enteredArena = true;
|
||||
locked = true;
|
||||
seal();
|
||||
|
||||
Mob boss = Bestiary.mob( Dungeon.depth );
|
||||
boss.state = boss.HUNTING;
|
||||
@@ -246,7 +246,7 @@ public class CavesBossLevel extends Level {
|
||||
if (!keyDropped && item instanceof SkeletonKey) {
|
||||
|
||||
keyDropped = true;
|
||||
locked = false;
|
||||
unseal();
|
||||
|
||||
CellEmitter.get( arenaDoor ).start( Speck.factory( Speck.ROCK ), 0.07f, 10 );
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@ public class CityBossLevel extends Level {
|
||||
if (!enteredArena && outsideEntraceRoom( cell ) && hero == Dungeon.hero) {
|
||||
|
||||
enteredArena = true;
|
||||
locked = true;
|
||||
seal();
|
||||
|
||||
Mob boss = Bestiary.mob( Dungeon.depth );
|
||||
boss.state = boss.HUNTING;
|
||||
@@ -208,7 +208,7 @@ public class CityBossLevel extends Level {
|
||||
if (!keyDropped && item instanceof SkeletonKey) {
|
||||
|
||||
keyDropped = true;
|
||||
locked = false;
|
||||
unseal();
|
||||
|
||||
set( arenaDoor, Terrain.DOOR );
|
||||
GameScene.updateMap( arenaDoor );
|
||||
|
||||
@@ -167,7 +167,7 @@ public class HallsBossLevel extends Level {
|
||||
if (!enteredArena && hero == Dungeon.hero && cell != entrance) {
|
||||
|
||||
enteredArena = true;
|
||||
locked = true;
|
||||
seal();
|
||||
|
||||
for (int i=ROOM_LEFT-1; i <= ROOM_RIGHT + 1; i++) {
|
||||
doMagic( (ROOM_TOP - 1) * WIDTH + i );
|
||||
@@ -206,7 +206,7 @@ public class HallsBossLevel extends Level {
|
||||
|
||||
if (!keyDropped && item instanceof SkeletonKey) {
|
||||
keyDropped = true;
|
||||
locked = false;
|
||||
unseal();
|
||||
|
||||
entrance = stairs;
|
||||
set( entrance, Terrain.ENTRANCE );
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.WellWater;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Awareness;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Shadows;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
@@ -415,6 +416,19 @@ public abstract class Level implements Bundlable {
|
||||
|
||||
abstract protected void createItems();
|
||||
|
||||
public void seal(){
|
||||
if (!locked) {
|
||||
locked = true;
|
||||
Buff.affect(Dungeon.hero, LockedFloor.class);
|
||||
}
|
||||
}
|
||||
|
||||
public void unseal(){
|
||||
if (locked) {
|
||||
locked = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void addVisuals( Scene scene ) {
|
||||
for (int i=0; i < LENGTH; i++) {
|
||||
if (pit[i]) {
|
||||
|
||||
@@ -309,7 +309,7 @@ public class PrisonBossLevel extends RegularLevel {
|
||||
if (ch == Dungeon.hero && !enteredArena && roomExit.inside( cell )) {
|
||||
|
||||
enteredArena = true;
|
||||
locked = true;
|
||||
seal();
|
||||
|
||||
int pos;
|
||||
do {
|
||||
@@ -337,7 +337,7 @@ public class PrisonBossLevel extends RegularLevel {
|
||||
if (!keyDropped && item instanceof SkeletonKey) {
|
||||
|
||||
keyDropped = true;
|
||||
locked = false;
|
||||
unseal();
|
||||
|
||||
set( arenaDoor, Terrain.DOOR );
|
||||
GameScene.updateMap( arenaDoor );
|
||||
|
||||
@@ -241,7 +241,7 @@ public class SewerBossLevel extends RegularLevel {
|
||||
public void seal() {
|
||||
if (entrance != 0) {
|
||||
|
||||
locked = true;
|
||||
super.seal();
|
||||
|
||||
set( entrance, Terrain.WATER_TILES );
|
||||
GameScene.updateMap( entrance );
|
||||
@@ -255,7 +255,7 @@ public class SewerBossLevel extends RegularLevel {
|
||||
public void unseal() {
|
||||
if (stairs != 0) {
|
||||
|
||||
locked = false;
|
||||
super.unseal();
|
||||
|
||||
entrance = stairs;
|
||||
stairs = 0;
|
||||
|
||||
Reference in New Issue
Block a user