Пример #1
0
	void CheckAlreadyHaveSocialPoint(ArkQuest _quest)
	{
		List<AchSocialPoint> listSocialPoint = _quest.GetQuestData().Achievement.GetDatas<AchSocialPoint>();

		if (listSocialPoint.Count > 0)
			QuestMessageBroadCaster.BrocastQuest(QuestMessages.QM_SOCIAL_POINT, new AchSocialPoint(AsSocialManager.Instance.SocialData.SocialPoint));
	}
Пример #2
0
	void CheckAlreadyHaveProduceMastery(ArkQuest _quest)
	{
		List<AchProductionMastery> listProduceMastery = _quest.GetQuestData().Achievement.GetDatas<AchProductionMastery>();

		if (listProduceMastery.Count > 0)
		{
			foreach (AchProductionMastery mastery in listProduceMastery)
			{
				if (mastery.ProductionType == eITEM_PRODUCT_TECHNIQUE_TYPE.eITEM_PRODUCT_TECHNIQUE_MAX)
				{
					int lv = AsUserInfo.Instance.HaveProductTechLvMax();
					if (lv != 0)
						QuestMessageBroadCaster.BrocastQuest(QuestMessages.QM_PRODUCE_MASTERY, new AchProductionMastery(mastery.ProductionType, lv));
				}
				else
				{
					int lv = AsUserInfo.Instance.GetProductTechniqueLv(mastery.ProductionType);

					if (lv != 0)
						QuestMessageBroadCaster.BrocastQuest(QuestMessages.QM_PRODUCE_MASTERY, new AchProductionMastery(mastery.ProductionType, lv));
				}
			}
		}
	}
Пример #3
0
	void CheckAlreadyHaveSkill(ArkQuest _quest)
	{
		List<AchGetSkill> listGetSkill = _quest.GetQuestData().Achievement.GetDatas<AchGetSkill>();

		if (listGetSkill.Count > 0)
		{
			foreach (AchGetSkill getskill in listGetSkill)
			{
				Tbl_SkillBook_Record skillBookRecord = AsTableManager.Instance.GetTbl_SkillBook_Record(getskill.SkillID);

				if (skillBookRecord == null)
					return;

				bool haveSkillFirst = SkillBook.Instance.ContainSkillTableID(skillBookRecord.Skill1_Index);
				bool haveSkillSecond = SkillBook.Instance.ContainSkillTableID(skillBookRecord.Skill2_Index);

				if (haveSkillFirst || haveSkillSecond)
					QuestMessageBroadCaster.BrocastQuest(QuestMessages.QM_GET_SKILL, getskill);
			}
		}
	}
Пример #4
0
	void CheckGetItemFromMonKindSkillItem(ArkQuest _quest)
	{
		QuestData questData = _quest.GetQuestData();

		int questID = questData.Info.ID;

		if (!dicGetItemFromMonKindSkillItem.ContainsKey(questID))
		{
			List<AchGetItemFromMonsterKind> getItemFromMonList = questData.Achievement.GetDatas<AchGetItemFromMonsterKind>();

			dicGetItemFromMonKindSkillItem.Add(questID, new List<int>());
			dicGetItemFromMonKind.Add(questID, new List<AchGetItemFromMonsterKind>());

			foreach (AchGetItemFromMonsterKind getItemFromMon in getItemFromMonList)
			{
				if (getItemFromMon.SkillItemID == 0)
					continue;

				if (!dicGetItemFromMonKindSkillItem[questID].Contains(getItemFromMon.SkillItemID))
					dicGetItemFromMonKindSkillItem[questID].Add(getItemFromMon.SkillItemID);

				dicGetItemFromMonKind[questID].Add(getItemFromMon);
			}
		}
	}
Пример #5
0
	void CheckQuestCollectionSkillItem(ArkQuest _quest)
	{
		QuestData questData = _quest.GetQuestData();

		int questID = questData.Info.ID;

		if (!dicQuestCollectSkillItem.ContainsKey(questID))
		{
			List<AchGetQuestCollection> getQuestCollection = questData.Achievement.GetDatas<AchGetQuestCollection>();

			dicQuestCollectSkillItem.Add(questID, new List<int>());

			foreach (AchGetQuestCollection questCollection in getQuestCollection)
			{
				if (questCollection.SkillItemID == 0)
					continue;

				if (!dicQuestCollectSkillItem[questID].Contains(questCollection.SkillItemID))
					dicQuestCollectSkillItem[questID].Add(questCollection.SkillItemID);
			}
		}
	}
Пример #6
0
	void CheckUseItemToTarget(ArkQuest _quest)
	{
		QuestData questData = _quest.GetQuestData();

		int questID = questData.Info.ID;

		if (!dicUseItemToTarget.ContainsKey(questID))
		{
			List<AchUseItemToTarget> useItemToTargetList = questData.Achievement.GetDatas<AchUseItemToTarget>();

			dicUseItemToTarget.Add(questID, new List<int>());
			dicUseItemToTargetAch.Add(questID, new List<AchUseItemToTarget>());

			foreach (AchUseItemToTarget useItem in useItemToTargetList)
			{
				if (!dicUseItemToTarget[questID].Contains(useItem.ItemID))
					dicUseItemToTarget[questID].Add(useItem.ItemID);

				dicUseItemToTargetAch[questID].Add(useItem);
			}
		}
	}
Пример #7
0
	void CheckKillMonKindSkillItem(ArkQuest _quest)
	{
		QuestData questData = _quest.GetQuestData();

		int questID = questData.Info.ID;

		if (!dicKillMonKindSkillItem.ContainsKey(questID))
		{
			List<AchKillMonsterKind> killMonList = questData.Achievement.GetDatas<AchKillMonsterKind>();

			dicKillMonKindSkillItem.Add(questID, new List<int>());
			dicKillMonsterKindAch.Add(questID, new List<AchKillMonsterKind>());

			foreach (AchKillMonsterKind killMonKind in killMonList)
			{
				if (killMonKind.SkillItemID == 0)
					continue;

				if (!dicKillMonKindSkillItem[questID].Contains(killMonKind.SkillItemID))
					dicKillMonKindSkillItem[questID].Add(killMonKind.SkillItemID);

				dicKillMonsterKindAch[questID].Add(killMonKind);
			}
		}
	}
Пример #8
0
	void CheckAlreadyEquipItem(ArkQuest _quest)
	{
		QuestData data = _quest.GetQuestData();

		List<AchEquipItem> listAchEquipItem = data.Achievement.GetDatas<AchEquipItem>();

		foreach (AchEquipItem equip in listAchEquipItem)
		{
			if (equip.IsComplete == true)
				continue;

			if (ItemMgr.HadItemManagement.Inven.IsHaveEquipItem(equip.ItemID) || ItemMgr.HadItemManagement.Inven.IsHaveCosEquipItem(equip.ItemID))
				QuestMessageBroadCaster.BrocastQuest(QuestMessages.QM_EQUIP_ITEM, new AchEquipItem(equip.ItemID));
		}
	}
Пример #9
0
	void CheckFriendship(ArkQuest _quest)
	{
		QuestData questData = _quest.GetQuestData();

		List<AchFriendship> listFriendship = questData.Achievement.GetDatas<AchFriendship>();

		foreach (AchFriendship friendship in listFriendship)
			AsCommonSender.SendQuestInfo(questData.Info.ID, friendship.AchievementNum);
	}
Пример #10
0
	void CheckTimeAchievement(ArkQuest _quest, bool _isDrop)
	{
		if (_quest == null)
		{
			Debug.LogError("(checkTimeAchievement) ArkQeust is null");
			return;
		}

		if (_quest.NowQuestProgressState != QuestProgressState.QUEST_PROGRESS_IN)
			return;

		// check time achievement
		List<AchTimeLimit> listTimeLimit = _quest.GetQuestData().Achievement.GetDatas<AchTimeLimit>();
		List<AchTimeSurvival> listTimeSruvival = _quest.GetQuestData().Achievement.GetDatas<AchTimeSurvival>();


		if (_isDrop == true && (listTimeLimit.Count > 0 || listTimeSruvival.Count > 0))
		{
			if (questTime != null)
				GameObject.DestroyImmediate(questTime.gameObject);

			return;
		}

		if (listTimeLimit.Count > 0 || listTimeSruvival.Count > 0)
		{
			if (_quest.NowQuestProgressState != QuestProgressState.QUEST_PROGRESS_FAIL)
			{
				if (questTime == null)
				{
					GameObject questTimeObj = GameObject.Instantiate(Resources.Load("UI/Optimization/Prefab/QuestTimeDlg")) as GameObject;
					questTime = questTimeObj.GetComponent<QuestTimeDlg>();
				}
				else
					questTime.gameObject.SetActiveRecursively(true);


				if (questTime != null)
					_quest.TimeSpriteText = questTime.questTimeText;

				if (AsGameMain.s_gameState != GAME_STATE.STATE_INGAME)
					questTime.questTimeText.gameObject.layer = LayerMask.NameToLayer("Default");

				visibleTimeUI = true;
			}
			else
			{
				if (questTime != null)
				{
					GameObject.DestroyImmediate(questTime.gameObject);
					questTime = null;
				}

				visibleTimeUI = false;
			}
		}
	}
Пример #11
0
	void CheckGetLevel(ArkQuest _quest)
	{
		List<AchGetLevel> listGetLevel = _quest.GetQuestData().Achievement.GetDatas<AchGetLevel>();

		foreach (AchGetLevel getLevel in listGetLevel)
		{
			int nowLevel = AsEntityManager.Instance.UserEntity.GetProperty<int>(eComponentProperty.LEVEL);
			if (nowLevel >= getLevel.Level)
				QuestMessageBroadCaster.BrocastQuest(QuestMessages.QM_LEVEL_UP, new AchGetLevel(nowLevel));
		}
	}
Пример #12
0
	void CheckHaveGetQuestCollection(ArkQuest _quest)
	{
		QuestData questData = _quest.GetQuestData();

		List<AchGetQuestCollection> listQuestCollection = questData.Achievement.GetDatas<AchGetQuestCollection>();

		if (listQuestCollection.Count > 0)
		{
			List<AchGetQuestCollection> listAch = new List<AchGetQuestCollection>();

			foreach (AchGetQuestCollection getQuestCollection in listQuestCollection)
				listAch.Add(getQuestCollection);

			if (dicGetQuestCollection.ContainsKey(questData.Info.ID))
				dicGetQuestCollection[questData.Info.ID] = listAch;
			else
				dicGetQuestCollection.Add(questData.Info.ID, listAch);
		}
	}
Пример #13
0
	void CheckHaveQuestItem(ArkQuest _quest)
	{
		int itemCount = 0;
		int questID = _quest.GetQuestData().Info.ID;
		QuestAchievement ach = _quest.GetQuestData().Achievement;
		itemCount += ach.GetDataCount<AchGetItem>();
		itemCount += ach.GetDataCount<AchGetItemFromMonster>();
		itemCount += ach.GetDataCount<AchGetItemFromMonsterKind>();
		itemCount += ach.GetDataCount<AchGetQuestCollection>();

		if (itemCount > 0)
		{
			if (!dicQuestContainQuestItem.ContainsKey(questID))
				dicQuestContainQuestItem.Add(questID, _quest);
		}
	}
Пример #14
0
	UIListItem AddQuest(ArkQuest quest)
	{
		ArkSphereQuestTool.QuestData data = quest.GetQuestData();
		UIListItem item = questList.CreateItem(questItem, questList.Count, true) as UIListItem;// quest.GetQuestData().Info.Name);

		item.SetInputDelegate(ListItemInputEvent);

		item.spriteText.Text = data.Info.Name;

		QuestBookItemController questBookItemController = item.GetComponent<QuestBookItemController>();

		questBookItemController.questType = data.Info.QuestType;
		questBookItemController.questProgressState = data.NowQuestProgressState;

		questBookItemController.UpdateQuestStateIcon();

		QuestListIconController questIconCon = item.gameObject.GetComponent<QuestListIconController>();

		if (questIconCon != null)
			questIconCon.SetQuestIconType(data.Info.QuestType);

		item.SetOffset(new Vector3(0.0f, 0.0f, -0.2f));
		item.gameObject.SetActive(false);

		return item;
	}