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(),
            });
        }