public override bool Apply(Fighter[] targets) { Jet jet = FormulasProvider.Instance.EvaluateJet(Source, EffectElementType.Fire, Effect, this.SpellId); jet.Delta = (short)(jet.Delta * ((double)Source.Stats.MpPercentage / 100d)); foreach (var target in targets) { target.InflictDamages(new Damage(Source, target, jet.Clone(), EffectElementType.Fire, Effect, Critical)); } return(true); }
public override bool Apply(Fighter[] targets) { if (Effect.Duration > 0) { foreach (var target in targets) { base.AddTriggerBuff(target, FightDispellableEnum.DISPELLABLE, TriggerType.TURN_BEGIN, DamageTrigger); } } else { Jet jet = FormulasProvider.Instance.EvaluateJet(Source, ElementType, Effect, this.SpellId); foreach (var target in targets) { target.InflictDamages(new Damage(Source, target, jet.Clone(), ElementType, Effect, Critical)); } } return(true); }
public override bool Apply(Fighter[] targets) { if (this.ElementType != EffectElementType.Neutral) { Jet jet = FormulasProvider.Instance.EvaluateJet(this.Source, this.ElementType, this.Effect, this.SpellLevel.SpellId); foreach (var target in targets) { short num = (short)(target.InflictDamages(new Damage(this.Source, target, jet.Clone(), this.ElementType, this.Effect, this.Critical)) / 2); this.Source.Heal(this.Source, num); } return(true); } else { foreach (var target in targets) { short num = (short)(target.InflictDamages((short)this.Effect.DiceMin, this.Source) / 2); this.Source.Heal(this.Source, num); } return(true); } }