示例#1
0
 public void Remove_Colony_Location(ColonyLocation location)
 {
     if (Colony_Locations.Contains(location))
     {
         Colony_Locations.Remove(location);
     }
 }
示例#2
0
 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;
     }
 }
示例#3
0
 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()
     });
 }
示例#4
0
 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));
     }
 }
示例#5
0
 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;
     }
 }