public static void at( PointF p, final float dir, final float cone, final int color, int n ) { if (n <= 0) { return; } Emitter emitter = GameScene.emitter(); emitter.pos( p ); FACTORY.color = color; FACTORY.dir = dir; FACTORY.cone = cone; emitter.burst( FACTORY, n ); }
public void wither() { Dungeon.level.uproot( pos ); if (Dungeon.level.heroFOV[pos]) { CellEmitter.get( pos ).burst( LeafParticle.GENERAL, 6 ); } }
@Override public boolean attachTo(Char target) { if (super.attachTo(target) && target.sprite != null){ CellEmitter.center(target.pos).burst( PoisonParticle.SPLASH, 5 ); return true; } else return false; }
@Override public void play( Animation anim ) { if (anim == die) { emitter().burst( ShadowParticle.UP, 4 ); } super.play( anim ); } }
@Override public void apply(Hero hero) { Buff.affect(hero, FrostImbue.class, FrostImbue.DURATION); hero.sprite.emitter().burst(SnowParticle.FACTORY, 5); }
@Override public void activate( Char ch ) { super.activate( ch ); // if (ch != null) { // Buff.affect( ch, Poison.class ).set( 4 + Dungeon.depth / 2 ); // } if (Dungeon.visible[pos]) { CellEmitter.center( pos ).burst( PoisonParticle.SPLASH, 3 ); } }
public static void at( PointF p, final int color, int n ) { if (n <= 0) { return; } Emitter emitter = GameScene.emitter(); emitter.pos( p ); FACTORY.color = color; FACTORY.dir = -3.1415926f / 2; FACTORY.cone = 3.1415926f; emitter.burst( FACTORY, n ); }
public static void at( PointF p, final float dir, final float cone, final int color, int n ) { if (n <= 0) { return; } Emitter emitter = GameScene.emitter(); emitter.pos( p ); FACTORY.color = color; FACTORY.dir = dir; FACTORY.cone = cone; emitter.burst( FACTORY, n ); }
@Override public int proc( Armor armor, Char attacker, Char defender, int damage) { int level = Math.max( 0, armor.level() ); if (defender instanceof Hero) { int wands = ((Hero) defender).belongings.charge(0.12f + level*0.06f); if (wands > 0) { defender.sprite.centerEmitter().burst(EnergyParticle.FACTORY, wands * (level + 2)); } } return damage; }
@Override public int attackProc( Char enemy, int damage ) { damage = super.attackProc( enemy, damage ); int reg = Math.min( damage, HT - HP ); if (reg > 0) { HP += reg; sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 ); } return damage; }
@Override public void onConsume( Hero hero ) { super.onConsume( hero ); // GLog.i( "Refreshing!" ); if (hero.HP < hero.HT) { hero.HP = Math.min( hero.HP + hero.HT / 10, hero.HT ); hero.sprite.emitter().burst( Speck.factory(Speck.HEALING), 1 ); } }
@Override public void apply(Hero hero) { Buff.affect(hero, ToxicImbue.class).set(ToxicImbue.DURATION); hero.sprite.emitter().burst(PoisonParticle.SPLASH, 10); }
public void flee() { destroy(); sprite.killAndErase(); CellEmitter.get( pos ).burst( ElmoParticle.FACTORY, 6 ); }
@Override public void die() { super.die(); if (Dungeon.level.heroFOV[ch.pos]) { emitter().burst( Speck.factory( Speck.BONE ), 3 ); } }
@Override public void activate() { for( int i : PathFinder.NEIGHBOURS9) { if (!Dungeon.level.solid[pos + i]) { GameScene.add( Blob.seed( pos+i, 2, Fire.class ) ); CellEmitter.get( pos+i ).burst( FlameParticle.FACTORY, 5 ); } } } }
@Override public boolean act() { if (target.pos != pos || target.HP >= target.HT) { detach(); } else { target.HP = Math.min( target.HT, target.HP + target.HT / 20 ); target.sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 ); } spend( STEP ); return true; }
public void proc(Char enemy){ if (Random.Int(2) == 0) Buff.affect( enemy, Burning.class ).reignite( enemy ); enemy.sprite.emitter().burst( FlameParticle.FACTORY, 2 ); }
@Override protected void onCast(Hero hero) { Buff.append(hero, FeatherBuff.class, 30f); hero.sprite.operate(hero.pos); Sample.INSTANCE.play(Assets.SND_READ ); hero.sprite.emitter().burst( Speck.factory( Speck.JET ), 20); GLog.p(Messages.get(this, "light")); detach( curUser.belongings.backpack ); updateQuickslot(); hero.spendAndNext( 1f ); }
private void applyWand(Wand wand){ Sample.INSTANCE.play(Assets.SND_BURNING); curUser.sprite.emitter().burst( ElmoParticle.FACTORY, 12 ); evoke(curUser); Dungeon.quickslot.clearItem(wand); wand.detach(curUser.belongings.backpack); GLog.p( Messages.get(MagesStaff.class, "imbue", wand.name())); imbueWand( wand, curUser ); updateQuickslot(); } };