public override async Task <PhaseResult <string> > DoPhase1Async(PhaseContext1 context, IBattlePhases processor) { Console.Write($"{context.X} + {context.Y} + Z >"); var input = Console.ReadLine(); if (input == "cancel" || input is null) { return(new Cancelled <string>()); } return(await processor.HandlePhase2Async(context, int.Parse(input))); }
public abstract Task <PhaseResult <string> > DoPhase1Async(PhaseContext1 context, IBattlePhases handler);
public async Task <PhaseResult <string> > HandlePhase2Async(PhaseContext1 context, int z) { var phase = new PhaseContext2(context, z); return(await HandlePhaseFlowAsync(() => _logic.DoPhase2Async(phase, this))); }
public async Task <PhaseResult <string> > HandlePhase1Async(int x, int y) { var phase = new PhaseContext1(x, y); return(await HandlePhaseFlowAsync(() => _logic.DoPhase1Async(phase, this))); }
public PhaseContext2(PhaseContext1 context1, int z) { Context1 = context1; Z = z; }