public abstract Task <PhaseResult <string> > DoPhase2Async(PhaseContext2 context, IBattlePhases handler);
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 async Task <PhaseResult <string> > DoSkillSelectionAsync(SkillSelectionPhase phase, IBattlePhases handler) { Console.Write($"アクター{phase.ActorId}の行動 >"); var input = Console.ReadLine(); if (input == "cancel" || input == null) { return(new Cancelled <string>()); } return(await handler.TargetSelection(phase, int.Parse(input))); }
public override async Task <PhaseResult <string> > DoPhase2Async(PhaseContext2 context, IBattlePhases processor) { Console.Write("yes/no >"); if (Console.ReadLine() == "no") { return(new Cancelled <string>()); } var sum = context.X + context.Y + context.Z; return(new Finished <string>($"{context.X} + {context.Y} + {context.Z} = {sum}")); }
public async Task <PhaseResult <string> > DoTargetSelectionAsync(TargetSelectionPhase phase, IBattlePhases handler) { Console.Write($"ターゲットを選択 >"); var input = Console.ReadLine(); if (input == "cancel" || input == null) { return(new Cancelled <string>()); } var targetId = int.Parse(input); var result = $"{phase.ActorId} は {targetId} に {phase.SkillId} を使った"; return(new Finished <string>(result)); }