@Override public void start( Factory factory, float interval, int quantity ) { base_interval = interval; super.start( factory, interval, quantity ); }
@Override public void die() { super.die(); if (shield != null) { shield.putOut(); } emitter().start( ElmoParticle.FACTORY, 0.03f, 60 ); }
@Override public void activate( Char ch ) { super.activate( ch ); if (ch != null) { Buff.affect( ch, Health.class ); } if (Dungeon.visible[pos]) { CellEmitter.get( pos ).start( ShaftParticle.FACTORY, 0.2f, 3 ); } }
@Override protected void onTouchDown() { emitter.revive(); emitter.start( Speck.factory( Speck.LIGHT ), 0.05f, 7 ); Sample.INSTANCE.play( Assets.SND_CLICK, 1, 1, 1.2f ); updateClass( cl ); }
@Override public void die() { super.die(); remove(State.SHIELDED); emitter().start( ElmoParticle.FACTORY, 0.03f, 60 ); if (visible) { Sample.INSTANCE.play( Assets.SND_BURNING ); } }
protected void callForHelp() { for (Mob mob : Dungeon.level.mobs) { if (mob.pos != pos) { mob.beckon( pos ); } } if (Dungeon.visible[pos]) { CellEmitter.center( pos ).start( Speck.factory(Speck.SCREAM), 0.3f, 3 ); } Sample.INSTANCE.play( Assets.SND_CHALLENGE ); }
@Override public int proc(Weapon weapon, Char attacker, Char defender, int damage ) { if (Random.Int(10) == 0){ int base = Random.IntRange(3, 5); Buff.affect( attacker, Charm.class, base + 10 ).object = defender.id(); attacker.sprite.centerEmitter().start( Speck.factory( Speck.HEART ), 0.2f, 5 ); //5 turns will be reduced by the attack, so effectively lasts for base turns Buff.affect( defender, Charm.class, base + 5 ).object = attacker.id(); defender.sprite.centerEmitter().start( Speck.factory( Speck.HEART ), 0.2f, 5 ); } return damage; }
@Override public int proc(Weapon weapon, Char attacker, Char defender, int damage ) { if (Random.Int(10) == 0){ int base = Random.IntRange(3, 5); Buff.affect( attacker, Charm.class, base + 10 ).object = defender.id(); attacker.sprite.centerEmitter().start( Speck.factory( Speck.HEART ), 0.2f, 5 ); //5 turns will be reduced by the attack, so effectively lasts for base turns Buff.affect( defender, Charm.class, base + 5 ).object = attacker.id(); defender.sprite.centerEmitter().start( Speck.factory( Speck.HEART ), 0.2f, 5 ); } return damage; }
@Override protected void onItemSelected( Item item ) { // curUser.sprite.parent.add( new Identification( curUser.sprite.center().offset( 0, -16 ) ) ); curUser.sprite.emitter().start(Speck.factory(Speck.QUESTION), 0.1f, Random.IntRange(6, 9)); item.identify(); GLog.i("It is " + item); // Badges.validateItemLevelAcquired(item); }
@Override public int proc( Armor armor, Char attacker, Char defender, int damage) { int level = Math.max(0, armor.level()); if (Random.Int( level / 2 + 10 ) >= 9) { int duration = Random.IntRange( 4, 12 ); Buff.affect( attacker, Charm.class, duration ).object = defender.id(); attacker.sprite.centerEmitter().start( Speck.factory( Speck.HEART ), 0.2f, 5 ); } return damage; }
@Override protected void activate(int cell) { for (int i : PathFinder.NEIGHBOURS9){ CellEmitter.center(cell + i).start( Speck.factory( Speck.HEART ), 0.2f, 5 ); Char ch = Actor.findChar( cell + i ); if (ch != null && ch.alignment == Char.Alignment.ENEMY){ Buff.prolong(ch, Charm.class, 10f).object = curUser.id(); } } Sample.INSTANCE.play( Assets.SND_CHARMS ); }
@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 ); } }
@Override protected void activate(int cell) { CellEmitter.center(cell).start( Speck.factory( Speck.SCREAM ), 0.3f, 3 ); Sample.INSTANCE.play( Assets.SND_READ ); for (int i : PathFinder.NEIGHBOURS9){ Char ch = Actor.findChar( cell + i ); if (ch != null && ch.alignment == Char.Alignment.ENEMY){ Buff.prolong(ch, Aggression.class, Aggression.DURATION).object = curUser.id(); } } }
@Override protected void activate(int cell) { for (int i : PathFinder.NEIGHBOURS9){ CellEmitter.center(cell + i).start( Speck.factory( Speck.HEART ), 0.2f, 5 ); Char ch = Actor.findChar( cell + i ); if (ch != null && ch.alignment == Char.Alignment.ENEMY){ Buff.prolong(ch, Charm.class, 10f).object = curUser.id(); } } Sample.INSTANCE.play( Assets.SND_CHARMS ); }
@Override public Heap drop( Item item, int cell ) { if (!keyDropped && item instanceof SkeletonKey) { keyDropped = true; unseal(); CellEmitter.get( arenaDoor ).start( Speck.factory( Speck.ROCK ), 0.07f, 10 ); set( arenaDoor, Terrain.EMPTY_DECO ); GameScene.updateMap( arenaDoor ); Dungeon.observe(); } return super.drop( item, cell ); }
@Override public Heap drop( Item item, int cell ) { if (!keyDropped && item instanceof SkeletonKey) { keyDropped = true; unseal(); CellEmitter.get( arenaDoor ).start( Speck.factory( Speck.ROCK ), 0.07f, 10 ); set( arenaDoor, Terrain.EMPTY_DECO ); GameScene.updateMap( arenaDoor ); Dungeon.observe(); } return super.drop( item, cell ); }
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 ); }
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 int proc( Armor armor, Char attacker, Char defender, int damage) { if (Random.Int( 8 ) == 0) { if (Dungeon.level.adjacent( attacker.pos, defender.pos )) { Buff.prolong(attacker, Frost.class, Frost.duration(attacker) * Random.Float(0.5f, 1f)); CellEmitter.get(attacker.pos).start(SnowParticle.FACTORY, 0.2f, 6); } Buff.affect( defender, Burning.class ).reignite( defender ); defender.sprite.emitter().burst( FlameParticle.FACTORY, 5 ); } return damage; }