public int fallCell( boolean fallIntoPit ) { int result; do { result = randomRespawnCell(); } while (traps.get(result) != null || findMob(result) != null || heaps.get(result) != null); return result; }
public int fallCell( boolean fallIntoPit ) { int result; do { result = randomRespawnCell(); } while (traps.get(result) != null || findMob(result) != null || heaps.get(result) != null); return result; }
@Override public int proc(Weapon weapon, Char attacker, Char defender, int damage ) { if (Random.Int(12) == 0 && !defender.properties().contains(Char.Property.IMMOVABLE)){ int count = 10; int newPos; do { newPos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break; } } while (newPos == -1); if (newPos != -1 && !Dungeon.bossLevel()) { if (Dungeon.level.heroFOV[defender.pos]) { CellEmitter.get( defender.pos ).start( Speck.factory( Speck.LIGHT ), 0.2f, 3 ); } defender.pos = newPos; if (defender instanceof Mob && ((Mob) defender).state == ((Mob) defender).HUNTING){ ((Mob) defender).state = ((Mob) defender).WANDERING; } defender.sprite.place( defender.pos ); defender.sprite.visible = Dungeon.level.heroFOV[defender.pos]; return 0; } } return damage; }
@Override public int proc(Weapon weapon, Char attacker, Char defender, int damage ) { if (Random.Int(12) == 0 && !defender.properties().contains(Char.Property.IMMOVABLE)){ int count = 10; int newPos; do { newPos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break; } } while (newPos == -1); if (newPos != -1 && !Dungeon.bossLevel()) { if (Dungeon.level.heroFOV[defender.pos]) { CellEmitter.get( defender.pos ).start( Speck.factory( Speck.LIGHT ), 0.2f, 3 ); } defender.pos = newPos; if (defender instanceof Mob && ((Mob) defender).state == ((Mob) defender).HUNTING){ ((Mob) defender).state = ((Mob) defender).WANDERING; } defender.sprite.place( defender.pos ); defender.sprite.visible = Dungeon.level.heroFOV[defender.pos]; return 0; } } return damage; }
@Override protected boolean act() { int count = 0; for (Mob mob : mobs.toArray(new Mob[0])){ if (mob.alignment == Char.Alignment.ENEMY) count++; } if (count < nMobs()) { Mob mob = createMob(); mob.state = mob.WANDERING; mob.pos = randomRespawnCell(); if (Dungeon.hero.isAlive() && mob.pos != -1 && distance(Dungeon.hero.pos, mob.pos) >= 4) { GameScene.add( mob ); if (Statistics.amuletObtained) { mob.beckon( Dungeon.hero.pos ); } } } spend(respawnTime()); return true; } };
@Override protected boolean act() { int count = 0; for (Mob mob : mobs.toArray(new Mob[0])){ if (mob.alignment == Char.Alignment.ENEMY) count++; } if (count < nMobs()) { Mob mob = createMob(); mob.state = mob.WANDERING; mob.pos = randomRespawnCell(); if (Dungeon.hero.isAlive() && mob.pos != -1 && distance(Dungeon.hero.pos, mob.pos) >= 4) { GameScene.add( mob ); if (Statistics.amuletObtained) { mob.beckon( Dungeon.hero.pos ); } } } spend(respawnTime()); return true; } };
public void call() { Char ch = Actor.findChar( bolt.collisionPos ); if (ch == user){ ScrollOfTeleportation.teleportHero(user); wand.wandUsed(); } else if (ch != null && !ch.properties().contains(Char.Property.IMMOVABLE)) { int count = 10; int pos; do { pos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break; } } while (pos == -1); if (pos == -1 || Dungeon.bossLevel()) { GLog.w( Messages.get(ScrollOfTeleportation.class, "no_tele") ); } else { ch.pos = pos; if (((Mob) ch).state == ((Mob) ch).HUNTING)((Mob) ch).state = ((Mob) ch).WANDERING; ch.sprite.place(ch.pos); ch.sprite.visible = Dungeon.level.heroFOV[pos]; } } wand.wandUsed(); } });
int pos; do { pos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break;
int pos; do { pos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break;
public void call() { Char ch = Actor.findChar( bolt.collisionPos ); if (ch == user){ ScrollOfTeleportation.teleportHero(user); wand.wandUsed(); } else if (ch != null && !ch.properties().contains(Char.Property.IMMOVABLE)) { int count = 10; int pos; do { pos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break; } } while (pos == -1); if (pos == -1 || Dungeon.bossLevel()) { GLog.w( Messages.get(ScrollOfTeleportation.class, "no_tele") ); } else { ch.pos = pos; if (((Mob) ch).state == ((Mob) ch).HUNTING)((Mob) ch).state = ((Mob) ch).WANDERING; ch.sprite.place(ch.pos); ch.sprite.visible = Dungeon.level.heroFOV[pos]; } } wand.wandUsed(); } });
public static void teleportHero( Hero hero ) { int count = 10; int pos; do { pos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break; } } while (pos == -1); if (pos == -1 || Dungeon.bossLevel()) { GLog.w( Messages.get(ScrollOfTeleportation.class, "no_tele") ); } else { GLog.i( Messages.get(ScrollOfTeleportation.class, "tele") ); appear( hero, pos ); Dungeon.level.press( pos, hero ); Dungeon.observe(); GameScene.updateFog(); } }
int newPos; do { newPos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break;
public static void teleportHero( Hero hero ) { int count = 10; int pos; do { pos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break; } } while (pos == -1); if (pos == -1 || Dungeon.bossLevel()) { GLog.w( Messages.get(ScrollOfTeleportation.class, "no_tele") ); } else { GLog.i( Messages.get(ScrollOfTeleportation.class, "tele") ); appear( hero, pos ); Dungeon.level.press( pos, hero ); Dungeon.observe(); GameScene.updateFog(); } }
@Override public void activate() { for (Mob mob : Dungeon.level.mobs) { mob.beckon( pos ); } if (Dungeon.level.heroFOV[pos]) { GLog.w( Messages.get(this, "alarm") ); CellEmitter.center(pos).start( Speck.factory(Speck.SCREAM), 0.3f, 3 ); } Sample.INSTANCE.play( Assets.SND_ALERT ); for (int i = 0; i < (Dungeon.depth - 5)/5; i++){ Guardian guardian = new Guardian(); guardian.state = guardian.WANDERING; guardian.pos = Dungeon.level.randomRespawnCell(); GameScene.add(guardian); guardian.beckon(Dungeon.hero.pos ); } }
@Override public void activate() { for (Mob mob : Dungeon.level.mobs) { mob.beckon( pos ); } if (Dungeon.level.heroFOV[pos]) { GLog.w( Messages.get(this, "alarm") ); CellEmitter.center(pos).start( Speck.factory(Speck.SCREAM), 0.3f, 3 ); } Sample.INSTANCE.play( Assets.SND_ALERT ); for (int i = 0; i < (Dungeon.depth - 5)/5; i++){ Guardian guardian = new Guardian(); guardian.state = guardian.WANDERING; guardian.pos = Dungeon.level.randomRespawnCell(); GameScene.add(guardian); guardian.beckon(Dungeon.hero.pos ); } }
int pos; do { pos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break; int cell = Dungeon.level.randomRespawnCell();
int cell = Dungeon.level.randomRespawnCell(); int cell = Dungeon.level.randomRespawnCell(); if (cell != -1) { hero.belongings.weapon = null;
int cell = Dungeon.level.randomRespawnCell(); int cell = Dungeon.level.randomRespawnCell(); if (cell != -1) { hero.belongings.weapon = null;
int newPos; do { newPos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break;
int newPos; do { newPos = Dungeon.level.randomRespawnCell(); if (count-- <= 0) { break;