示例#1
0
        private void loadQuestDetails(dynamic resource)
        {
            foreach (dynamic questDetailRes in resource.QuestDetailList)
            {
                var questDetail = new QuestDetail();
                questDetail.Index            = questDetailRes.Index;
                questDetail.GameMode         = GameMode.Parse(questDetailRes.GameMode);
                questDetail.LevelRestriction = questDetailRes.LevelRestriction;

                int conditionIndex = 1;
                while (questDetailRes.Members.ContainsKey("ConditionType" + conditionIndex))
                {
                    var condition = new QuestCondition(QuestConditionType.Parse(questDetailRes.Members["ConditionType" + conditionIndex]),
                                                       ((string)questDetailRes.Members["ConditionCount" + conditionIndex]).Split(',').Select(int.Parse).ToList());
                    questDetail.Conditions.Add(condition);
                    conditionIndex++;
                }

                int requireItemIndex = 1;
                while (questDetailRes.Members.ContainsKey("RequireItem" + requireItemIndex))
                {
                    var requirement = new QuestItemRequirement(questDetailRes.Members["RequireItem" + requireItemIndex], questDetailRes.Members["Quantity" + requireItemIndex]);
                    questDetail.ItemRequirement.Add(requirement);
                    requireItemIndex++;
                }
                _questDetails.Add(questDetail.Index, questDetail);
            }
        }
示例#2
0
 public void SetDailyQuestConditions(NodeAddedEvent e, QuestConditionNode quest)
 {
     if ((quest.questCondition.Condition != null) && (quest.questCondition.Condition.Count != 0))
     {
         QuestConditionType key = quest.questCondition.Condition.First <KeyValuePair <QuestConditionType, long> >().Key;
         long   id  = quest.questCondition.Condition.First <KeyValuePair <QuestConditionType, long> >().Value;
         string str = (key == QuestConditionType.MODE) ? ((byte)id).ToString() : Flow.Current.EntityRegistry.GetEntity(id).GetComponent <DescriptionItemComponent>().Name;
         quest.questItemGUI.ConditionText = string.Format(quest.questConditionDescription.restrictionFormat, quest.questConditionDescription.restrictions[key], str);
     }
 }
示例#3
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);
        }
示例#4
0
 public QuestCondition(QuestConditionType type, List <int> count)
 {
     Type  = type;
     Count = count;
 }
示例#5
0
        public QuestCondition Parse(XElement 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.level_reached: {
                return(new ReachLevelQuestCondition(element));
            }

            case QuestConditionType.create_companion: {
                return(new CompanionCreatedQuestCondition(element));
            }

            case QuestConditionType.player_killed: {
                return(new KillPlayerQuestCondition(element));
            }

            case QuestConditionType.system_captured: {
                return(new CaptureSystemQuestCondition(element));
            }

            case QuestConditionType.npc_killed_with_bot_group: {
                return(new NpcKilledWithBotGroupQuestCondition(element));
            }

            default: {
                throw new NotImplementedException();
            }
            }
        }