public override IEnumerable <EngineTick> Perform(IFighterStats actor, IFighterStats target, EngineCalculationValues calculationValues) { if (80F.Chance()) { return(Enumerable.Empty <EngineTick>()); } var condition = new StunSkillCondition(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 stunCondition = new StunSkillCondition(actor) { Remaining = 0 }; target.States.Add(stunCondition); yield return(new FighterConditionAppliedTick() { Condition = stunCondition.AsStruct(), Fighter = actor.AsStruct(), Target = target.AsStruct(), }); }