@Override public void link(Char ch) { super.link(ch); if (cloud == null) { cloud = emitter(); cloud.pour(Speck.factory(Speck.TOXIC), 0.7f); } }
public static void appear(Char ch, int pos) { ch.sprite.interruptMotion(); ch.move(pos); ch.sprite.place(pos); if (ch.invisible == 0) { ch.sprite.alpha(0); ch.sprite.parent.add(new AlphaTweener(ch.sprite, 1, 0.4f)); } ch.sprite.emitter().start(Speck.factory(Speck.LIGHT), 0.2f, 3); Sample.INSTANCE.play(Assets.SND_TELEPORT); }
@Override public void activate() { Char ch = Actor.findChar(pos); if (ch != null) { int len = Random.Int(5, 10); Buff.prolong(ch, Blindness.class, len); Buff.prolong(ch, Cripple.class, len); if (ch instanceof Mob) { if (((Mob) ch).state == ((Mob) ch).HUNTING) ((Mob) ch).state = ((Mob) ch).WANDERING; ((Mob) ch).beckon(Dungeon.level.randomDestination()); } } if (Dungeon.visible[pos]) { CellEmitter.get(pos).burst(Speck.factory(Speck.LIGHT), 4); } }
@Override public void execute(final Hero hero, String action) { if (action.equals(AC_BLESS)) { DewVial vial = hero.belongings.getItem(DewVial.class); if (vial != null) { blessed = true; vial.empty(); GLog.p(TXT_BLESS); hero.spend(1f); hero.busy(); Sample.INSTANCE.play(Assets.SND_DRINK); CellEmitter.get(hero.pos).start(Speck.factory(Speck.LIGHT), 0.2f, 3); hero.sprite.operate(hero.pos); } } else { super.execute(hero, action); } }
@Override public void activate() { for (Mob mob : Dungeon.level.mobs) { mob.beckon(pos); } if (Dungeon.visible[pos]) { GLog.w("The trap emits a piercing sound that echoes throughout the dungeon!"); 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 use(BlobEmitter emitter) { super.use(emitter); emitter.pour(Speck.factory(Speck.STENCH), 0.4f); }