public void ShowDiceModifications() { Selection.ActiveShip.GenerateDiceModifications(DiceModificationTiming); List <GenericAction> diceModifications = Selection.ActiveShip.GetDiceModificationsGenerated(); Combat.DiceModifications.ShowDiceModificationButtons(diceModifications); Roster.HighlightPlayer(Selection.ActiveShip.Owner.PlayerNo); Phases.CurrentSubPhase.IsReadyForCommands = true; if (diceModifications.Count > 0 || IsVital) { if (diceModifications.Any(m => m.IsForced)) { Combat.DiceModifications.HideOkButton(); } IsVital = true; Selection.ActiveShip.Owner.UseDiceModifications(DiceModificationTiming); } else { Combat.DiceModifications.HideAllButtons(); ReplaysManager.ExecuteWithDelay(Combat.DiceModifications.ConfirmDiceResults); } }
public void UseDiceModification(string diceModificationName) { Tooltips.EndTooltip(); if (AvailableDiceModifications.ContainsKey(diceModificationName)) { GenericAction diceModification = AvailableDiceModifications[diceModificationName]; Selection.ActiveShip.AddAlreadyUsedDiceModification(diceModification); diceModification.ActionEffect( delegate { Combat.CurrentDiceRoll.MarkAsModifiedBy(diceModification.HostShip.Owner.PlayerNo); Combat.DiceModifications.RefreshButtonsList(); ReplaysManager.ExecuteWithDelay(Combat.DiceModifications.AskPlayerToContinue); } ); } else if (diceModificationName == "OK") { HideAllButtons(); ReplaysManager.ExecuteWithDelay(ConfirmDiceResults); } else { Messages.ShowError("ERROR: Dice Modification is not found: " + diceModificationName); } }
public static void ConfirmDiceResultsClient() { Phases.CurrentSubPhase.IsReadyForCommands = false; switch (AttackStep) { case CombatStep.Attack: if (Combat.Attacker.CallTryConfirmDiceResults()) { ReplaysManager.ExecuteWithDelay(ConfirmAttackDiceResults); } break; case CombatStep.Defence: if (Combat.Defender.CallTryConfirmDiceResults()) { ReplaysManager.ExecuteWithDelay(ConfirmDefenceDiceResults); } break; case CombatStep.CompareResults: ReplaysManager.ExecuteWithDelay(CompareResultsAndDealDamage); break; } }
public static void SyncDiceResults(List <DieSide> sides) { Phases.CurrentSubPhase.IsReadyForCommands = false; bool wasFixed = false; for (int i = 0; i < DiceRoll.CurrentDiceRoll.DiceList.Count; i++) { Die die = DiceRoll.CurrentDiceRoll.DiceList[i]; if (die.Model == null) { die.ShowWithoutRoll(); } if (die.Side != sides[i]) { die.SetSide(sides[i]); die.SetModelSide(sides[i]); wasFixed = true; } } if (wasFixed) { DiceRoll.CurrentDiceRoll.OrganizeDicePositions(); } ReplaysManager.ExecuteWithDelay(CurrentDiceRoll.ExecuteCallback); }
private static void SelectShipThatCanAttack(Action callback) { foreach (var shipHolder in Roster.GetPlayer(Phases.CurrentPhasePlayer).Ships) { if (shipHolder.Value.State.Initiative == Phases.CurrentSubPhase.RequiredPilotSkill) { if (!shipHolder.Value.IsAttackPerformed) { Selection.ChangeActiveShip("ShipId:" + shipHolder.Value.ShipId); Console.Write(Selection.ThisShip.PilotInfo.PilotName + "(" + Selection.ThisShip.ShipId + ") is selected as attacker", LogTypes.AI); break; } } } if (Selection.ThisShip != null) { ReplaysManager.RecordCommand(CombatSubPhase.GenerateCombatActicationCommand(Selection.ThisShip.ShipId)); Selection.ThisShip.CallCombatActivation(callback); } else { callback(); } }
public static void SyncDiceResults(List <DieSide> sides) { bool wasFixed = false; for (int i = 0; i < DiceRoll.CurrentDiceRoll.DiceList.Count; i++) { Die die = DiceRoll.CurrentDiceRoll.DiceList[i]; if (die.Model == null) { die.ShowWithoutRoll(); } if (die.Side != sides[i]) { die.TrySetSide(sides[i]); die.SetModelSide(sides[i]); wasFixed = true; } } if (wasFixed) { DiceRoll.CurrentDiceRoll.OrganizeDicePositions(); } else { DiceRoll.CurrentDiceRoll.UpdateDiceCompareHelperPrediction(); } ReplaysManager.ExecuteWithDelay(CurrentDiceRoll.ExecuteCallback); }
public static void StartNetworkGame() { GameController.Initialize(); ReplaysManager.TryInitialize(ReplaysMode.Write); GameMode.CurrentGameMode = new NetworkGame(); SwitchToBattleScene(); }
public static void StartNetworkGame() { GameController.Initialize(); ReplaysManager.Initialize(ReplaysMode.Write); Console.Write("Network game is started", LogTypes.GameCommands, true, "aqua"); Network.StartNetworkGame(); }
public static void SendCommand(GameCommand command) { Console.Write($"Command is received: {command.GetType().ToString().Replace("GameCommands.","")}", isBold: true, color: "cyan"); CommandsReceived.Add(command); if (ReplaysManager.Mode == ReplaysMode.Write) { ReplaysManager.RecordCommand(command); } }
// 0.3.2 UI public void CreateMatch() { string roomName = GameObject.Find("UI/Panels/CreateMatchPanel/Panel/Name").GetComponentInChildren <InputField>().text; string password = GameObject.Find("UI/Panels/CreateMatchPanel/Panel/Password").GetComponentInChildren <InputField>().text; GameController.Initialize(); ReplaysManager.Initialize(ReplaysMode.Write); Console.Write("Network game is prepared", LogTypes.GameCommands, true, "aqua"); Network.CreateMatch(roomName, password); }
public override void Execute() { Phases.CurrentSubPhase.IsReadyForCommands = false; ReplaysManager.ExecuteWithDelay( delegate { Console.Write("Critical damage card is confirmed"); InformCrit.ConfirmCrit(); }, 3 ); }
// 0.3.2 UI public void CreateMatch() { string roomName = GameObject.Find("UI/Panels/CreateMatchPanel/Panel/Name").GetComponentInChildren <InputField>().text; string password = GameObject.Find("UI/Panels/CreateMatchPanel/Panel/Password").GetComponentInChildren <InputField>().text; GameController.Initialize(); ReplaysManager.TryInitialize(ReplaysMode.Write); Network.CreateMatch(roomName, password); ChangePanel("WaitingForOpponentsPanel"); }
public static void StartBattle(ReplaysMode mode = ReplaysMode.Write) { GameController.Initialize(); if (ReplaysManager.TryInitialize(mode)) { if (mode == ReplaysMode.Read) { MainMenu.CurrentMainMenu.InitializeSquadBuilder("Replay"); } Global.StartLocalGame(); } }
public static void SendCommand(GameCommand command) { Console.Write("Command is received: " + command.Type, LogTypes.GameCommands, false, "aqua"); CommandsReceived.Add(command); if (ReplaysManager.Mode == ReplaysMode.Write) { ReplaysManager.RecordCommand(command); } command.TryExecute(); }
public static void StartBattle(ReplaysMode mode = ReplaysMode.Write) { GameController.Initialize(); ReplaysManager.Initialize(mode); if (mode == ReplaysMode.Read) { MainMenu.CurrentMainMenu.InitializeSquadBuilder("Replay"); } Console.Write("Game is started", LogTypes.GameCommands, true, "aqua"); SquadBuilder.StartLocalGame(); }
IEnumerator UploadCustomReport(string stackTrace) { JSONObject jsonData = new JSONObject(); jsonData.AddField("rowKey", Guid.NewGuid().ToString()); jsonData.AddField("partitionKey", "CrashReport"); jsonData.AddField("playerName", Options.NickName); jsonData.AddField("description", "No description"); jsonData.AddField("p1pilot", (Selection.ThisShip != null) ? Selection.ThisShip.PilotInfo.PilotName : "None"); jsonData.AddField("p2pilot", (Selection.AnotherShip != null) ? Selection.AnotherShip.PilotInfo.PilotName : "None"); jsonData.AddField("stackTrace", stackTrace.Replace("\n", "NEWLINE")); jsonData.AddField("trigger", (Triggers.CurrentTrigger != null) ? Triggers.CurrentTrigger.Name : "None"); jsonData.AddField("subphase", (Phases.CurrentSubPhase != null) ? Phases.CurrentSubPhase.GetType().ToString() : "None"); jsonData.AddField("scene", UnityEngine.SceneManagement.SceneManager.GetActiveScene().name); jsonData.AddField("version", Global.CurrentVersion); try { jsonData.AddField("p1squad", SquadBuilder.SquadLists[0].SavedConfiguration.ToString().Replace("\"", "\\\"")); jsonData.AddField("p2squad", SquadBuilder.SquadLists[1].SavedConfiguration.ToString().Replace("\"", "\\\"")); } catch (Exception) { jsonData.AddField("p1squad", "None"); jsonData.AddField("p2squad", "None"); } if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "Battle") { jsonData.AddField("replay", ReplaysManager.GetReplayContent().Replace("\"", "\\\"")); } else { jsonData.AddField("replay", "None"); } var request = new UnityWebRequest("https://flycasualdataserver.azurewebsites.net/api/crashreports/create", "POST"); Debug.Log(jsonData.ToString()); byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonData.ToString()); request.uploadHandler = (UploadHandler) new UploadHandlerRaw(bodyRaw); request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.SendWebRequest()); Debug.Log("Status Code: " + request.responseCode); }
public static void UseDiceModification(string diceModificationName) { Phases.CurrentSubPhase.IsReadyForCommands = false; Tooltips.EndTooltip(); GameObject DiceModificationButton = GameObject.Find("UI/CombatDiceResultsPanel").transform.Find("DiceModificationsPanel").Find("Button" + diceModificationName).gameObject; DiceModificationButton.GetComponent <Button>().interactable = false; GenericAction diceModification = AvailableDecisions[diceModificationName]; switch (diceModification.DiceModificationTiming) { case DiceModificationTimingType.Normal: case DiceModificationTimingType.AfterRolled: Selection.ActiveShip = (AttackStep == CombatStep.Attack) ? Attacker : Defender; break; case DiceModificationTimingType.Opposite: Selection.ActiveShip = (AttackStep == CombatStep.Attack) ? Defender : Attacker; break; case DiceModificationTimingType.CompareResults: Selection.ActiveShip = Attacker; break; default: break; } Selection.ActiveShip.AddAlreadyUsedDiceModification(diceModification); diceModification.ActionEffect(delegate { if (!Combat.CurrentDiceRoll.ModifiedBy.Contains(diceModification.HostShip.Owner.PlayerNo)) { Combat.CurrentDiceRoll.ModifiedBy.Add(diceModification.HostShip.Owner.PlayerNo); } ReplaysManager.ExecuteWithDelay(delegate { //make sure UI/CombatDiceResultsPanel is available again GameObject.Find("UI").transform.Find("CombatDiceResultsPanel").gameObject.SetActive(true); ReGenerateListOfButtons(diceModification.DiceModificationTiming); }); }); }
public static void GenerateSwerveCommand(int shipId, string maneuverCode) { JSONObject parameters = new JSONObject(); parameters.AddField("id", shipId.ToString()); parameters.AddField("maneuver", maneuverCode); GameCommand command = new HotacSwerveCommand( GameCommandTypes.HotacSwerve, typeof(SubPhases.ActivationSubPhase), parameters.ToString() ); ReplaysManager.RecordCommand(command); parameters = new JSONObject(); parameters.AddField("id", shipId.ToString()); command = new AssignManeuverCommand( GameCommandTypes.ActivateAndMove, typeof(SubPhases.ActivationSubPhase), parameters.ToString() ); ReplaysManager.RecordCommand(command); }
public override void Execute() { Phases.CurrentSubPhase.IsReadyForCommands = false; ReplaysManager.ExecuteWithDelay(InformCrit.ConfirmCrit, 3); }