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)); }
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)); } } } }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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)); } }
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); }
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; } } }
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)); } }
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); } }
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); } }
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; }