public override IEnumerable <EngineTick> Perform(IFighterStats actor, IFighterStats target, EngineCalculationValues calculationValues) { if (80F.Chance()) { return(Enumerable.Empty <EngineTick>()); } var condition = new BurnSkillCondition(actor); target.States.Add(condition); return(new FighterConditionAppliedTick() { Condition = condition, Fighter = actor.AsStruct(), Target = target.AsStruct(), }.Yield()); }
public override IEnumerable <EngineTick> Attack(IFighterStats actor, IFighterStats target, EngineCalculationValues calculationValues) { if (90F.Chance()) { yield break; } var burnCondition = new BurnSkillCondition(actor) { Remaining = 1 }; target.States.Add(burnCondition); yield return(new FighterConditionAppliedTick() { Fighter = actor.AsStruct(), Condition = burnCondition.AsStruct(), Target = target.AsStruct(), }); }