public override async Task RunAsync() { var selectedMove = Player.Moves.FirstOrDefault(m => m.Name.Equals(SelectedMoveName, StringComparison.InvariantCultureIgnoreCase)); Player.SelectedMove = selectedMove; var targetTeam = selectedMove.OnEnemy ? Player.Enemies : Player.Party; if ((selectedMove.TargetType & TargetType.NoAim) == selectedMove.TargetType || targetTeam.Count <= 1) { Player.HasSelected = true; selectedMove.TargetNr = 0; } if (selectedMove is Summon) { await Context.UpdateReplyAsync(p => p.Components = ControlBattleComponents.GetSummonsComponent(Player)); } else { await Context.UpdateReplyAsync(p => p.Components = ControlBattleComponents.GetPlayerControlComponents(Player)); } if (Player is PlayerFighter fighter) { fighter.AutoTurnsInARow = 0; } if (Player.HasSelected) { _ = Battle.ProcessTurn(false); } await Task.CompletedTask; }
public override async Task RunAsync() { Player.SelectedMove.TargetNr = SelectedTargetPosition; Player.HasSelected = true; if (Player.Party.Count > 1) { // Only update the select menu if its a group battle if (Player.SelectedMove is Summon) { await Context.UpdateReplyAsync(p => p.Components = ControlBattleComponents.GetSummonsComponent(Player)); } else { await Context.UpdateReplyAsync(p => p.Components = ControlBattleComponents.GetPlayerControlComponents(Player)); } } _ = Battle.ProcessTurn(false); await Task.CompletedTask; }