override public void Load(XmlNode node) { ID = node.Attributes["state"].Value; IDN = int.Parse(ID); XmlAttribute networking_attr = node.Attributes["networking"]; if (networking_attr != null) { AfterNetworking = bool.Parse(networking_attr.Value); } XmlAttribute delay_attr = node.Attributes["delay"]; if (delay_attr != null) { delay = float.Parse(delay_attr.Value); } foreach (XmlNode child in node.SelectNodes("Item")) { Targets.Add(new TargetInfo(child)); } XmlNode condition_node = node.SelectSingleNode("Condition"); if (condition_node != null) { Condition = new TutorialConditionBase(condition_node); } this.CutSceneInfo = new CutSceneInfo(node); foreach (XmlNode child in node.SelectNodes("Reward")) { rewards.Add(new RewardBase(child)); } }
public void LoadFromXml( XmlNode _node) { XmlNodeList childNodes = _node.ChildNodes; foreach ( XmlNode node in childNodes) { if( node.Name == TutorialConditionBase.NodeName) { TutorialConditionBase condBase = new TutorialConditionBase(); condBase.LoadFromXml( node); if( condBase.type == TutorialConditionType.NPC || condBase.type == TutorialConditionType.QUEST_ID || condBase.type == TutorialConditionType.SKILL_NOT_HAVE) { TutorialConditionUseInt cond = new TutorialConditionUseInt(); cond.LoadFromXml( node); listCondition.Add( cond); if( cond.type == TutorialConditionType.QUEST_ID) listQuestID.Add( cond.value); } else if( condBase.type == TutorialConditionType.NOT_COMPLETE_ACHIEVEMENT) { TutorialConditionUseInt cond = new TutorialConditionUseInt(); cond.LoadFromXml( node); listConditionAchievement.Add( cond); } else if( condBase.type == TutorialConditionType.NOT_ACTION_ACHIEVEMENT_OVER_COUNT) { TutorialConditionUseInt cond = new TutorialConditionUseInt(); cond.LoadFromXml( node); listConditionAchievementCount.Add( cond); } else if( condBase.type == TutorialConditionType.NOT_COMPLETE_ACHIEVEMENT_UPDATE) { TutorialConditionUseInt conditionAchievementUpdate = new TutorialConditionUseInt(); conditionAchievementUpdate.LoadFromXml( node); listConditionAchievementUpdate.Add( conditionAchievementUpdate); } else if( condBase.type == TutorialConditionType.START_STEP_MSG) { TutorialConditionStartStep startStepCon = new TutorialConditionStartStep(); startStepCon.LoadFromXml( node); listStartStepMsg.Add( startStepCon); } else if( condBase.type == TutorialConditionType.NOT_RESTART_STEP_AFTER_CLOSE) { notRestartAfterClose = true; } } else if( node.Name == TutorialStepInfo.NodeName) { TutorialStepInfo step = new TutorialStepInfo(); step.LoadFromXml( node); // tap inven item if( step.nextMsg == QuestTutorialMsg.TAP_INVEN_ITEM) { foreach ( int id in step.listOption) { if( id != 0) listTapInvenItemID.Add( id); } } if( step.nextMsg == QuestTutorialMsg.USE_ITEM) { foreach ( int id in step.listOption) { if( id != 0) listUseItemID.Add( id); } } if( step.nextMsg == QuestTutorialMsg.TAP_DESIGNATION) { foreach ( int id in step.listOption) { if( id != 0) listSelectDesgination.Add( id); } } if( !listNextStepMsg.Contains( step.nextMsg)) listNextStepMsg.Add( step.nextMsg); listStep.Add( step); } else if( node.Name == "Close") { if( node.Attributes["Msg"] != null) listCloseMsg.Add( ( QuestTutorialMsg)Enum.Parse( typeof( QuestTutorialMsg), node.Attributes["Msg"].Value, true)); } else if( node.Name == "Update") { if( node.Attributes["Msg"] != null) listUpdateMsg.Add( ( QuestTutorialMsg)Enum.Parse( typeof( QuestTutorialMsg), node.Attributes["Msg"].Value, true)); } } }