public void TickPhasesAreExecutedInCorrectOrder()
        {
            List <TickPhase> executionOrder = new List <TickPhase>();
            TickPhase        phase0         = new TickPhase(0);
            TickPhase        phase1         = new TickPhase(1);
            TickPhase        phase4         = new TickPhase(4);

            Hero        hero        = new Hero(team: default, initialHp: default, new IRequisite[] { CreatePhaseAbility(phase1), CreatePhaseAbility(phase4), CreatePhaseAbility(phase0) });
Exemplo n.º 2
0
 public RemoveRequisiteAbility(IRequisite requisiteToRemove, TickPhase phase)
 {
     _requisiteToRemove = requisiteToRemove;
     Phase = phase;
     Id    = new RequisiteId("Remove" + requisiteToRemove.Id);
 }
Exemplo n.º 3
0
 public static IActiveAbility CreateActiveAbility(TickPhase phase, Action <Hero, GameContext> actionLambda)
 => CreateActiveAbility
 (
     phase,
     (hero, context) => CreateAction(hero, actionLambda)
 );
Exemplo n.º 4
0
 public LambdaActiveAbility(TickPhase phase, Func <Hero, GameContext, IReadOnlyCollection <IAction> > actionFactory)
 {
     Phase          = phase;
     _actionFactory = actionFactory;
     Id             = new RequisiteId(Guid.NewGuid().ToString());
 }
Exemplo n.º 5
0
 public static IActiveAbility CreateActiveAbility(TickPhase phase, Func <Hero, GameContext, IReadOnlyCollection <IAction> > actionFactory)
 => new LambdaActiveAbility(phase, actionFactory);
Exemplo n.º 6
0
 public static IActiveAbility CreateActiveAbility(TickPhase phase, Func <Hero, GameContext, IAction> actionFactory)
 => CreateActiveAbility(phase, (h, c) => actionFactory(h, c).AsArray());