public override void Load(XmlNode node) { base.Load(node); Type = (eQuestType)Enum.Parse(typeof(eQuestType), node.Attributes["type"].Value); eQuestCondition condition = (eQuestCondition)Enum.Parse(typeof(eQuestCondition), node.Attributes["condition"].Value); Condition = QuestConditionFactory.Instance.Create(condition); Condition.Load(node); Title = node.Attributes["title"].Value; _Description = node.Attributes["description"].Value; IconID = node.Attributes["icon_id"].Value; if (condition == eQuestCondition.progress) { XmlNode triggerNode = node.SelectSingleNode("Trigger"); if (triggerNode != null) { eQuestTrigger trigger = (eQuestTrigger)Enum.Parse(typeof(eQuestTrigger), triggerNode.Attributes["type"].Value); Trigger = QuestTriggerFactory.Instance.Create(trigger); Trigger.Load(triggerNode); } } XmlAttribute reward_exp_attr = node.Attributes["reward_exp"]; if (reward_exp_attr != null) { RewardExp = int.Parse(reward_exp_attr.Value); } foreach (XmlNode reward_node in node.SelectNodes("Reward")) { RewardBase quest_reward = new RewardBase(reward_node); Rewards.Add(quest_reward); } XmlNode available_condition_node = node.SelectSingleNode("Condition"); if (available_condition_node != null) { AvailableCondition = new QuestAvailableCondition(available_condition_node); } XmlNode moveNode = node.SelectSingleNode("Move"); if (moveNode != null) { try { eQuestMove move = (eQuestMove)Enum.Parse(typeof(eQuestMove), moveNode.Attributes["type"].Value); Move = QuestMoveFactory.Instance.Create(move); Move.Load(moveNode); } catch (ArgumentException) { } } XmlAttribute fire_type_attr = node.Attributes["fire_type"]; if (fire_type_attr != null) { FireTriggerType = (eQuestTrigger)Enum.Parse(typeof(eQuestTrigger), fire_type_attr.Value); } XmlAttribute progress_show_attr = node.Attributes["progress_show"]; if (progress_show_attr != null) { ProgressShow = bool.Parse(progress_show_attr.Value); } else { ProgressShow = false; } }
virtual public void Load(XmlNode node) { MoveType = (eQuestMove)Enum.Parse(typeof(eQuestMove), node.Attributes["type"].Value); }