public void Remove_Colony_Location(ColonyLocation location) { if (Colony_Locations.Contains(location)) { Colony_Locations.Remove(location); } }
public void Add_Colony_Location(ColonyLocation location) { if (Colony_Locations.Count < MAX_COLONY_LOCATIONS) { Colony_Locations.Add(location); } else { for (int i = 0; i < MAX_COLONY_LOCATIONS - 1; i++) { Colony_Locations[i + 1] = Colony_Locations[i]; } Colony_Locations[0] = location; } }
public CitySaveData Save_Data() { return(new CitySaveData() { Name = Name, Cash = Cash, Buildings = new List <BuildingSaveData>(), Contacts = Contacts.Instance.Save(), Expeditions = Expeditions.Select(x => new ExpeditionSaveData() { Goal = (int)x.Goal, Lenght = (int)x.Lenght, Building_Id = x.Building_Id, Resource = x.Resource != null ? (int)x.Resource.Type : -1, State = (int)x.State, Time_Remaining = x.Time_Remaining, Colony_Data = x.Colony_Data == null ? null : x.Colony_Data.Save_Data }).ToList(), Colony_Locations = Colony_Locations.Select(x => x.Save_Data).ToList() }); }
public void Load(CitySaveData data) { Start_New(data.Name); Cash = data.Cash; Has_Town_Hall = data.Buildings.FirstOrDefault(x => x.Internal_Name == Building.TOWN_HALL_INTERNAL_NAME) != null; Contacts.Instance.Load(data.Contacts); Expeditions = new List <Expedition>(); foreach (ExpeditionSaveData expedition in data.Expeditions) { Expeditions.Add(new Expedition((Expedition.ExpeditionGoal)expedition.Goal, (Expedition.ExpeditionLenght)expedition.Lenght, expedition.Building_Id, expedition.Resource == -1 ? null : Resource.All.First(x => (int)x.Type == expedition.Resource), expedition.Time_Remaining, (Expedition.ExpeditionState)expedition.State, expedition.Colony_Data == null ? null : new ColonyLocation(expedition.Colony_Data))); } foreach (ColonyLocationSaveData colony_location in data.Colony_Locations) { Colony_Locations.Add(new ColonyLocation(colony_location)); } }
public void Start_New(string name) { Has_Town_Hall = false; Buildings = new List <Building>(); Name = name; grace_time_remaining = GRACE_TIME; removed_buildings = new List <Building>(); added_buildings = new List <Building>(); removed_expeditions = new List <Expedition>(); added_expeditions = new List <Expedition>(); Walkers.Clear(); ships.Clear(); ship_spawn_cooldown = 0.0f; Colony_Locations.Clear(); noble_count = 0; foreach (Building.Resident resident in Enum.GetValues(typeof(Building.Resident))) { Unemployment[resident] = 0.0f; Happiness[resident] = 0.0f; Education[resident] = 0.0f; } }