Пример #1
0
 private FleetData(FleetSerializable serializable, Database database)
 {
     ItemId          = new ItemId <FleetData>(serializable.Id, serializable.FileName);
     Factions        = FactionFilterData.Deserialize(serializable.Factions, database);
     LevelBonus      = new NumericValue <int>(serializable.LevelBonus, -100, 100);
     NoRandomShips   = serializable.NoRandomShips;
     CombatTimeLimit = new NumericValue <int>(serializable.CombatTimeLimit, 0, 999);
     LootCondition   = serializable.LootCondition;
     ExpCondition    = serializable.ExpCondition;
     SpecificShips   = serializable.SpecificShips?.Select(item => new Wrapper <ShipBuildData> {
         Item = database.GetShipBuildId(item)
     }).ToArray();
 }
Пример #2
0
        private Fleet(FleetSerializable serializable, Database.Loader loader)
        {
            Id = new ItemId <Fleet>(serializable.Id);
            loader.AddFleet(serializable.Id, this);

            Factions        = RequiredFactions.Create(serializable.Factions, loader);
            LevelBonus      = UnityEngine.Mathf.Clamp(serializable.LevelBonus, -10000, 10000);
            NoRandomShips   = serializable.NoRandomShips;
            CombatTimeLimit = UnityEngine.Mathf.Clamp(serializable.CombatTimeLimit, 0, 999);
            LootCondition   = serializable.LootCondition;
            ExpCondition    = serializable.ExpCondition;
            SpecificShips   = new ImmutableCollection <ShipBuild>(serializable.SpecificShips?.Select(item => loader.GetShipBuild(new ItemId <ShipBuild>(item), true)));

            OnDataDeserialized(serializable, loader);
        }
Пример #3
0
        public Fleet(FleetSerializable serializable, Database database)
        {
            Id              = new ItemId <Fleet>(serializable.Id, serializable.FileName);
            Factions        = new RequiredFactions(serializable.Factions, database);
            LevelBonus      = new NumericValue <int>(serializable.LevelBonus, -10000, 10000);
            NoRandomShips   = serializable.NoRandomShips;
            CombatTimeLimit = new NumericValue <int>(serializable.CombatTimeLimit, 0, 999);
            LootCondition   = serializable.LootCondition;
            ExpCondition    = serializable.ExpCondition;
            SpecificShips   = serializable.SpecificShips?.Select(id => new Wrapper <ShipBuild> {
                Item = database.GetShipBuildId(id)
            }).ToArray();

            OnDataDeserialized(serializable, database);
        }
Пример #4
0
        public FleetSerializable Serialize()
        {
            var serializable = new FleetSerializable();

            serializable.Id              = ItemId.Id;
            serializable.FileName        = ItemId.Name;
            serializable.ItemType        = (int)ItemType.Fleet;
            serializable.Factions        = Factions.Serialize();
            serializable.LevelBonus      = LevelBonus.Value;
            serializable.NoRandomShips   = NoRandomShips;
            serializable.CombatTimeLimit = CombatTimeLimit.Value;
            serializable.LootCondition   = LootCondition;
            serializable.ExpCondition    = ExpCondition;
            serializable.SpecificShips   = SpecificShips?.Select(item => item.Item.Id).ToArray();
            return(serializable);
        }
Пример #5
0
 public void Save(FleetSerializable serializable)
 {
     serializable.Factions        = Factions.Serialize();
     serializable.LevelBonus      = LevelBonus.Value;
     serializable.NoRandomShips   = NoRandomShips;
     serializable.CombatTimeLimit = CombatTimeLimit.Value;
     serializable.LootCondition   = LootCondition;
     serializable.ExpCondition    = ExpCondition;
     if (SpecificShips == null || SpecificShips.Length == 0)
     {
         serializable.SpecificShips = null;
     }
     else
     {
         serializable.SpecificShips = SpecificShips.Select(wrapper => wrapper.Item.Value).ToArray();
     }
     OnDataSerialized(ref serializable);
 }
Пример #6
0
 public static Fleet Create(FleetSerializable serializable, Database.Loader loader)
 {
     return(new Fleet(serializable, loader));
 }
Пример #7
0
 partial void OnDataDeserialized(FleetSerializable serializable, Database.Loader loader);
Пример #8
0
 public static FleetData Deserialize(FleetSerializable serializable, Database database)
 {
     return(new FleetData(serializable, database));
 }
Пример #9
0
 partial void OnDataSerialized(ref FleetSerializable serializable);
Пример #10
0
 partial void OnDataDeserialized(FleetSerializable serializable, Database database);