public Requirement(SerializableRequirement serializable, Database database)
        {
            Type = (RequirementType)serializable.Type;

            Content = RequirementFactory.CreateRequirement(Type);
            Content.Load(serializable, database);
        }
        public void Save(SerializableRequirement serializable)
        {
            if (Requirements.Length == 0)
            {
                serializable.Requirements = null;
                return;
            }

            serializable.Requirements = Requirements.Select(item => item.Save()).ToArray();
        }
 public void Save(SerializableRequirement serializable)
 {
     if (Loot.Type == LootItemType.None)
     {
         serializable.Loot = null;
     }
     else
     {
         Loot.Save(serializable.Loot = new SerializableLootContent());
     }
 }
        public SerializableRequirement Save()
        {
            if (Type == RequirementType.Empty)
            {
                return(null);
            }
            var serializable = new SerializableRequirement {
                Type = (int)Type
            };

            Content.Save(serializable);
            return(serializable);
        }
 public void Load(SerializableRequirement serializable, Database database)
 {
     Item   = database.GetQuestItemId(serializable.ItemId);
     Amount = new NumericValue <int>(serializable.MinValue, 0, 1000000);
 }
 public void Save(SerializableRequirement serializable)
 {
     serializable.MinValue = MinValue.Value;
     serializable.MaxValue = MaxValue.Value;
 }
 public void Save(SerializableRequirement serializable)
 {
     serializable.ItemId   = Item.Id;
     serializable.MinValue = Amount.Value;
 }
 public void Load(SerializableRequirement serializable, Database database)
 {
     Loot = new Loot(serializable.Loot, database);
 }
 public void Save(SerializableRequirement serializable)
 {
 }
 public void Load(SerializableRequirement serializable, Database database)
 {
     Requirements = serializable.Requirements?.Select(item => new Requirement(item, database)).ToArray() ?? new Requirement[] {};
 }
 public void Save(SerializableRequirement serializable)
 {
     serializable.Faction = Faction.Id;
 }
 public void Load(SerializableRequirement serializable, Database database)
 {
 }
 public void Load(SerializableRequirement serializable, Database database)
 {
     LootId = database.GetLootId(serializable.ItemId);
 }
 public void Load(SerializableRequirement serializable, Database database)
 {
     Faction = database.GetFactionId(serializable.Faction);
 }
 public void Load(SerializableRequirement serializable, Database database)
 {
     MinValue.Value = serializable.MinValue;
     MaxValue.Value = serializable.MaxValue;
 }
 public void Save(SerializableRequirement serializable)
 {
     serializable.MinValue  = MinValue.Value;
     serializable.MaxValue  = MaxValue.Value;
     serializable.Character = Character.Id;
 }
 public void Load(SerializableRequirement serializable, Database database)
 {
     MinValue.Value = serializable.MinValue;
     MaxValue.Value = serializable.MaxValue;
     Character      = database.GetCharacterId(serializable.Character);
 }
 public void Save(SerializableRequirement serializable)
 {
     serializable.ItemId = QuestId.Id;
 }
 public void Load(SerializableRequirement serializable, Database database)
 {
     QuestId = database.GetQuest(serializable.ItemId)?.ItemId ?? ItemId <QuestModel> .Empty;
 }