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(); }
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); }
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); }
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); }
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); }
public static Fleet Create(FleetSerializable serializable, Database.Loader loader) { return(new Fleet(serializable, loader)); }
partial void OnDataDeserialized(FleetSerializable serializable, Database.Loader loader);
public static FleetData Deserialize(FleetSerializable serializable, Database database) { return(new FleetData(serializable, database)); }
partial void OnDataSerialized(ref FleetSerializable serializable);
partial void OnDataDeserialized(FleetSerializable serializable, Database database);