// Prepares the current player state for file output public void SavePlayers(List <Info_Player> players, bool update = true) { if (!update) { return; } int id = 0; List <CommanderType> commanders = new List <CommanderType>(); foreach (Info_Player player in players) { // Reference to new variable CommanderType com = player.Commander; // Change data { // Add each army and their positions if (com.Armies != null) { com.Armies.Clear(); } else { com.Armies = new List <ArmyType>(); } foreach (Entity.Entity_PlayerArmy army in Otter.Scene.Instance.GetEntities <Entity.Entity_PlayerArmy>()) { // Belong to this player if (army.Player == id) { ArmyType armytype = new ArmyType(); { armytype.Name = ""; armytype.SystemPosition = army.System.Index; armytype.Strength = 1; } com.Armies.Add(armytype); } } // Add each owned system if (com.OwnedSystems != null) { com.OwnedSystems.Clear(); } else { com.OwnedSystems = new List <int>(); } foreach (Entity.Entity_StarSystem system in Otter.Scene.Instance.GetEntities <Entity.Entity_StarSystem>()) { // Belong to this player if (system.Owner == id) { com.OwnedSystems.Add(system.MapID); } } } commanders.Add(com); id++; } // Remove old player data if (Commanders != null) { Commanders.Clear(); } // Add this new data Commanders = new List <CommanderType>(commanders); }
private void NewGame() { // Create new CurrentGame = new Info_Game(); { CurrentGame.StartDate = DateTime.Today.ToShortDateString(); CurrentGame.Players = 2; CurrentGame.Commanders = new List <CommanderType>(); for (int com = 0; com < CurrentGame.Players; com++) { CommanderType commander = new CommanderType(); { commander.PlayerName = "Matthew"; commander.UberID = "\"7420260152538080746\""; //"friends":"[\"11035761434068835310\",\"16024636805495278681\",\"6884095390246756552\"]", commander.FactionName = "Legion"; commander.ModelID = 0; commander.Colour = Color.Random.ColorString; commander.CommanderCards = new List <string>(); { commander.CommanderCards.Add("Miner Upgrade"); } commander.Cards = new List <string>(); { commander.Cards.Add("Advanced Bots"); } commander.Armies = new List <ArmyType>(); { ArmyType army; { army.Name = ""; army.Strength = 1; army.SystemPosition = Rand.Int(0, Galaxy.MaxSystems); } commander.Armies.Add(army); // Store initial state SetPlayerTurn(com); DoTurn(Helper.ACTION_MOVE, army.SystemPosition, com, 0, false); } } CurrentGame.Commanders.Add(commander); // Revert back to player 1 having first turn SetPlayerTurn(0); } // Generate the initial galaxy Galaxy.Generate(); } Galaxy.Initialise(); Galaxy.Generate_Info(); SetupGame(); // Add ownership of the starting locations to those players int playerid = 0; foreach (CommanderType player in CurrentGame.Commanders) { foreach (ArmyType army in player.Armies) { Galaxy.GetSystemByID(army.SystemPosition).SetOwner(playerid); } playerid++; } IsNewGame = true; SaveGame(); }