public override IEnumerable <EngineTick> Perform(IFighterStats actor, IFighterStats target, EngineCalculationValues calculationValues) { var movedBySkill = new FighterMovedByAttackTick() { Current = target.AsStruct(), Fighter = actor.AsStruct(), Target = target.AsStruct(), }; target.Set(actor.CalculatePullPosition(target, 14)); movedBySkill.Next = target.AsStruct(); return(movedBySkill.Yield()); }
public static FighterMovedByAttackTick ApplyMove(this IFighterStats target, IFighterStats actor, IPosition newPosition) { var movedBySkill = new FighterMovedByAttackTick() { Current = target.AsStruct(), Fighter = actor.AsStruct(), Target = target.AsStruct(), }; target.Set(newPosition); movedBySkill.Next = target.AsStruct(); return(movedBySkill); }
public static void Handle(this FighterMovedByAttackTick tick, Dictionary <Guid, IFighterStats> fighters) { fighters[tick.Target.Id].Set(tick.Next); }