Esempio n. 1
0
        public QuestCondition Parse(UniXMLElement element)
        {
            QuestConditionType type = element.GetEnum <QuestConditionType>("type");

            switch (type)
            {
            case QuestConditionType.player_level_ge: {
                return(new PlayerLevelGEQuestCondition(element));
            }

            case QuestConditionType.npc_killed_with_level: {
                return(new NpcKilledWithLevelQuestCondition(element));
            }

            case QuestConditionType.npc_killed_with_class: {
                return(new NpcKilledWithClassQuestCondition(element));
            }

            case QuestConditionType.npc_killed_with_color: {
                return(new NpcKilledWithColorQuestCondition(element));
            }

            case QuestConditionType.quest_completed: {
                return(new QuestCompletedQuestCondition(element));
            }

            case QuestConditionType.module_crafted: {
                return(new ModuleCraftedQuestCondition(element));
            }

            case QuestConditionType.collect_ore: {
                return(new CollectOreQuestCondition(element));
            }

            case QuestConditionType.create_structure: {
                return(new CreateStructureQuestCondition(element));
            }

            case QuestConditionType.npc_killed_with_bot_group: {
                return(new NpcKilledWithBotGroupQuestCondition(element));
            }
            }
            return(null);
        }
Esempio n. 2
0
        public void Load(UniXMLElement element)
        {
            Id           = element.GetString("id");
            Type         = element.GetEnum <QuestType>("type");
            RaceBaseData = new Dictionary <Race, BaseData>();
            LoadBaseData(element, Race.Humans, "humans");
            LoadBaseData(element, Race.Borguzands, "borgs");
            LoadBaseData(element, Race.Criptizoids, "krips");

            Rewards = new List <QuestRewardData>();
            foreach (var rewardElement in element.Element("rewards").Elements("reward"))
            {
                QuestRewardData reward = new QuestRewardData();
                reward.Load(rewardElement);
                Rewards.Add(reward);
            }

            var humansCompleteConditions = element.Element("complete_conditions").Element("humans");
            var borgsCompleteConditions  = element.Element("complete_conditions").Element("borgs");
            var kripsCompleteConditions  = element.Element("complete_conditions").Element("krips");

            QuestConditionCollection humanComplete = new QuestConditionCollection();

            humanComplete.Load(humansCompleteConditions);

            QuestConditionCollection borgsComple = new QuestConditionCollection();

            borgsComple.Load(borgsCompleteConditions);

            QuestConditionCollection kripsComplete = new QuestConditionCollection();

            kripsComplete.Load(kripsCompleteConditions);

            CompleteConditions[Race.Humans]      = humanComplete;
            CompleteConditions[Race.Borguzands]  = borgsComple;
            CompleteConditions[Race.Criptizoids] = kripsComplete;
        }
Esempio n. 3
0
 public CreateStructureQuestCondition(UniXMLElement element)
 {
     Structure = element.GetEnum <QuestStructureType>("value");
     //Count = element.GetInt("count");
 }
Esempio n. 4
0
 public ModuleCraftedQuestCondition(UniXMLElement element)
 {
     ModuleType = element.GetEnum <ShipModelSlotType>("value");
     Color      = element.GetEnum <ObjectColor>("color");
     Level      = element.GetInt("level");
 }
Esempio n. 5
0
 public void Load(UniXMLElement element)
 {
     Type  = element.GetEnum <QuestRewardType>("type");
     Count = element.GetInt("count");
 }