示例#1
0
    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));
        }
    }
示例#2
0
	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));
			}
		}
	}