Ejemplo n.º 1
0
	public bool CanProcess( QuestTutorialMsgInfo _msgInfo)
	{
		List<int> listQuestID = new List<int>();
		bool bCheckQuestID = false;
		foreach ( TutorialConditionBase condition in listCondition)
		{
			if( condition.type != TutorialConditionType.QUEST_ID)
				continue;

			TutorialConditionUseInt conQuestID = condition as TutorialConditionUseInt;

			listQuestID.Add( conQuestID.value);

			if( conQuestID.value < 0)
			{
				if( !ArkQuestmanager.instance.IsProgressQuest( conQuestID.value * -1) && !ArkQuestmanager.instance.IsCompleteQuest( conQuestID.value * -1) && !ArkQuestmanager.instance.IsClearQuest( conQuestID.value * -1))
				{
					bCheckQuestID = true;
					break;
				}
			}
			else
			{
				if( ArkQuestmanager.instance.IsProgressQuest( conQuestID.value) == true)
				{
					bCheckQuestID = true;
					break;
				}
			}
		}

		if( bCheckQuestID == false)
			return false;

		// not complete achivement
		if( CheckCompleteAchievement() == false)
			return false;

		if( CheckActionAchievementCount() == false)
			return false;

		foreach ( TutorialConditionBase condition in listCondition)
		{
			if( condition.type == TutorialConditionType.QUEST_ID)
				continue;

			if( condition.CanProgress( _msgInfo) == false)
				return false;
		}
	
		return true;
	}
Ejemplo n.º 2
0
	public TutorialStepInfo ProcessMessage( QuestTutorialMsgInfo _msgInfo)
	{
		// 시작 메시지를 찾는다
		if( listStartStepMsg.Count > 0)
		{
			if( _msgInfo.message == listStartStepMsg[0].msg)
			{
				nowStep = listStep[0];
				nowStepIdx = 0;
				return nowStep;
			}
		}

		// check next msg
		int count = 0;
		foreach ( TutorialStepInfo step in listStep)
		{
			if( _msgInfo.message == step.nextMsg)
			{
				if( _msgInfo.message == QuestTutorialMsg.TAP_INVEN_ITEM)
				{
					if( !listTapInvenItemID.Contains( _msgInfo.value))
						return null;
				}
				else if( _msgInfo.message == QuestTutorialMsg.USE_ITEM)
				{
					if( !listUseItemID.Contains( _msgInfo.value))
						return null;
				}
				else if( _msgInfo.message == QuestTutorialMsg.TAP_DESIGNATION)
				{
					if( !( listSelectDesgination.Contains( _msgInfo.value)))
						return null;
				}

				nowStep = listStep[count + 1];
				nowStepIdx = count + 1;
				return nowStep;
			}
			count++;
		}

		return null;
	}
Ejemplo n.º 3
0
	virtual public bool CanProgress( QuestTutorialMsgInfo _msgInfo)
	{
		return true;
	}
Ejemplo n.º 4
0
	public override bool CanProgress( QuestTutorialMsgInfo _msgInfo)
	{
		if( type == TutorialConditionType.QUEST_ID)
		{
			if( value <= 0)
			{
				int realValue = value * -1;
				return !ArkQuestmanager.instance.IsProgressQuest( realValue) && !ArkQuestmanager.instance.IsCompleteQuest( realValue);
			}
			else
				return ArkQuestmanager.instance.IsProgressQuest( value);
		}
		else if( type == TutorialConditionType.SKILL_NOT_HAVE)
		{
			return !SkillBook.Instance.ContainSkillTableID( value);
		}
		else if( type == TutorialConditionType.NPC)
		{
			if( _msgInfo.message == QuestTutorialMsg.ACCEPT_QUEST)
				return true;

			if( AsHUDController.Instance.targetInfo != null)
			{
				if( AsHUDController.Instance.targetInfo.getCurTargetEntity != null)
				{
					if( AsHUDController.Instance.targetInfo.getCurTargetEntity.FsmType == eFsmType.NPC)
					{
						int npcId = AsHUDController.Instance.targetInfo.getCurTargetEntity.GetProperty<int>( eComponentProperty.NPC_ID);

						if( npcId == value)
							return true;
					}
				}
			}

			return false;
		}

		return true;
	}
Ejemplo n.º 5
0
	public void ProcessQuestTutorialMsg( QuestTutorialMsgInfo _msgInfo)
	{
		// accept quest
		if( _msgInfo.message == QuestTutorialMsg.ACCEPT_QUEST)
		{
			foreach ( QuestTutorial tutorial in listTutorial)
			{
				if( tutorial.CanProcess( _msgInfo) == true)
				{
					nowSelectTutorial = tutorial;
					TutorialStepInfo stepInfo = nowSelectTutorial.ForcedStartStepZero();

					if( stepInfo != null)
					{
						nowStep = stepInfo;
						ShowFinger( stepInfo);
							return;
					}
				}
			}
		}

		if( nowSelectTutorial == null)
			return;

		// clear Quest
		if( _msgInfo.message == QuestTutorialMsg.CLEAR_QUEST || _msgInfo.message == QuestTutorialMsg.DROP_QUEST)
		{
			nowStep = null;

			if( _msgInfo.message == QuestTutorialMsg.DROP_QUEST)
			{
				if( nowSelectTutorial.notProcessMsg == true)
					nowSelectTutorial.notProcessMsg = false;
			}

			nowSelectTutorial = null;
			HideFinger();
		}
		else if( nowSelectTutorial != null)
		{
			// close Msg
			if( nowSelectTutorial.listCloseMsg.Contains( _msgInfo.message))
			{
				Debug.LogWarning( "Close accept this msg = "+_msgInfo.message);
				nowStep = null;
				HideFinger();

				// check restart step
				if( nowSelectTutorial.listStartStepMsg.Count == 0 && nowSelectTutorial.notRestartAfterClose == false)
				{
					TutorialStepInfo stepInfo = nowSelectTutorial.ForcedProgressStep( 0);
					if( stepInfo != null)
					{
						nowStep = stepInfo;
						ShowFinger( stepInfo);
					}
				}
			}
			else if( nowSelectTutorial.listUpdateMsg.Contains( _msgInfo.message))
			{
				nowStep = nowSelectTutorial.ProcessUpdateMessage();
				if( nowStep != null)
				ShowFinger( nowStep);
			}
			else
			{
				if( nowSelectTutorial.CanProcess( _msgInfo) == false)
					return;

				TutorialStepInfo step = nowSelectTutorial.ProcessMessage( _msgInfo);

				if( step == null)
					return;

				if( step.type == TutorialStepType.HIDE || step.type == TutorialStepType.LAST_HIDE)
				{
					nowStep = step;
					HideFinger();

					if( step.type == TutorialStepType.LAST_HIDE)
						nowSelectTutorial.notProcessMsg = true;
				}
				else
				{
					// check not process ----> last hide
					if( nowSelectTutorial.notProcessMsg == false)
					{
						nowStep = step;

						if( nowStep.type == TutorialStepType.OVER_INVEN_ITEM)
							SetInvenPageExistThisItem( nowStep.listOption[0]);
	
						ShowFinger( step);
					}
				}
			}
		}
	}