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); } }
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); } }
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); }
public QuestCondition(QuestConditionType type, List <int> count) { Type = type; Count = count; }
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(); } } }