public void StartBattle(List <Monster> opponents) { CurrentOpponents.Clear(); CurrentOpponents.AddRange(opponents); SelectedOpponent = null; StartBattle(); }
public void StartBattle(Monster opponent) { CurrentOpponents.Clear(); CurrentOpponents.Add(opponent); if (AutoBattle) { SelectedOpponent = opponent; } StartBattle(); }
public void StartBattle(Area area) { CurrentArea = area; int r = random.Next(0, CurrentArea.Monsters.Count); CurrentOpponents.Clear(); CurrentOpponents.Add(Monsters.FirstOrDefault(x => x.Name == CurrentArea.Monsters[r])); SelectedOpponent = null; if (CurrentOpponents[0] == null) { Console.WriteLine("No monsters found for area."); } else { foreach (Monster m in CurrentOpponents) { m.IsDefeated = false; } } StartBattle(); }
public void Finish() { if (CurrentMatch == null) { NativeUI.Alert("Error", NullMatchMessage); return; } if (!IsMyTurn) { NativeUI.Alert("Warning", "Not your turn."); return; } if (CurrentMatchData == null) { NativeUI.Alert("Error", "Couldn't find any match data."); return; } MatchOutcome outcome = new MatchOutcome(); outcome.SetParticipantResult(CurrentMatch.SelfParticipantId, MatchOutcome.ParticipantResult.Won); foreach (var id in CurrentOpponents.Select(p => p.ParticipantId)) { outcome.SetParticipantResult(id, MatchOutcome.ParticipantResult.Lost); } CurrentMatchData.WinnerName = CurrentMatch.Self.DisplayName; var callback = GetAlertCallbackAction("Finished the match successfully.", "Failed to finish the match."); callback += success => { if (success) { canTakeTurn = false; } }; GameServices.TurnBased.Finish(CurrentMatch, CurrentMatchData.ToByteArray(), outcome, callback); }