private void affectTarget(Char ch){ int dmg = damageRoll(); //three in (5+lvl) chance of failing if (Random.Int(5+level()) >= 3) { Buff.prolong(ch, Blindness.class, 2f + (level() * 0.333f)); ch.sprite.emitter().burst(Speck.factory(Speck.LIGHT), 6 ); } if (ch.properties().contains(Char.Property.DEMONIC) || ch.properties().contains(Char.Property.UNDEAD)){ ch.sprite.emitter().start( ShadowParticle.UP, 0.05f, 10+level() ); Sample.INSTANCE.play(Assets.SND_BURNING); ch.damage(Math.round(dmg*1.333f), this); } else { ch.sprite.centerEmitter().burst( RainbowParticle.BURST, 10+level() ); ch.damage(dmg, this); } }
private void affectTarget(Char ch){ int dmg = damageRoll(); //three in (5+lvl) chance of failing if (Random.Int(5+level()) >= 3) { Buff.prolong(ch, Blindness.class, 2f + (level() * 0.333f)); ch.sprite.emitter().burst(Speck.factory(Speck.LIGHT), 6 ); } if (ch.properties().contains(Char.Property.DEMONIC) || ch.properties().contains(Char.Property.UNDEAD)){ ch.sprite.emitter().start( ShadowParticle.UP, 0.05f, 10+level() ); Sample.INSTANCE.play(Assets.SND_BURNING); ch.damage(Math.round(dmg*1.333f), this); } else { ch.sprite.centerEmitter().burst( RainbowParticle.BURST, 10+level() ); ch.damage(dmg, this); } }
@Override protected void onZap(Ballistica beam) { affectMap(beam); if (Dungeon.level.viewDistance < 6 ){ if (Dungeon.isChallenged(Challenges.DARKNESS)){ Buff.prolong( curUser, Light.class, 2f + level()); } else { Buff.prolong( curUser, Light.class, 10f+level()*5); } } Char ch = Actor.findChar(beam.collisionPos); if (ch != null){ processSoulMark(ch, chargesPerCast()); affectTarget(ch); } }
@Override protected void onZap(Ballistica beam) { affectMap(beam); if (Dungeon.level.viewDistance < 6 ){ if (Dungeon.isChallenged(Challenges.DARKNESS)){ Buff.prolong( curUser, Light.class, 2f + level()); } else { Buff.prolong( curUser, Light.class, 10f+level()*5); } } Char ch = Actor.findChar(beam.collisionPos); if (ch != null){ processSoulMark(ch, chargesPerCast()); affectTarget(ch); } }