public void SetTaskState(int taskState) { m_CurTime = 0; if (taskState == NpcState.OnGoing) { RewardNode.gameObject.SetActive(false); TaskNode.gameObject.SetActive(true); if (m_NpcBehavior.IsTargetNpc(GameConstVal.Npc_OldWoman)) { Received.gameObject.SetActive(false); UnReceive.gameObject.SetActive(true); UnReceive.rectTransform.localScale = new Vector3(1.2f, 1.2f, 1); } else { UnReceive.gameObject.SetActive(false); Received.gameObject.SetActive(true); } Complet.gameObject.SetActive(false); m_InDestroyState = false; } else if (taskState == NpcState.UnReceived) { RewardNode.gameObject.SetActive(true); /// load Sprite CampTasksItem campTasksItem = Global.gApp.gGameData.CampTasksConfig.Get(m_TaskId); if (campTasksItem != null) { ItemItem rewardItem = Global.gApp.gGameData.ItemData.Get(int.Parse(campTasksItem.reward[0])); if (rewardItem != null) { Reward.image.sprite = Resources.Load(rewardItem.image_grow, typeof(Sprite)) as Sprite; } } TaskNode.gameObject.SetActive(false); m_InDestroyState = false; } else if (taskState == NpcState.Received) { RewardNode.gameObject.SetActive(false); TaskNode.gameObject.SetActive(true); Received.gameObject.SetActive(false); UnReceive.gameObject.SetActive(false); Complet.gameObject.SetActive(true); m_DelayDestroyTime = 3; m_InDestroyState = true; } else if (taskState == NpcState.None) { RewardNode.gameObject.SetActive(false); TaskNode.gameObject.SetActive(false); Received.gameObject.SetActive(false); UnReceive.gameObject.SetActive(false); Complet.gameObject.SetActive(false); m_DelayDestroyTime = 0.5f; m_InDestroyState = true; } }
public void InitNode(NpcQuestItemDTO dto, int index, CampTaskDetails parent) { m_DTO = dto; m_Index = index; m_Parent = parent; CampTasksItem taskCfg = Global.gApp.gGameData.CampTasksConfig.Get(m_DTO.npcQuestId); gameObject.SetActive(true); if (taskCfg.taskCondition[0] == FilterTypeConstVal.GET_ITEM) { ItemItem itemCfg = Global.gApp.gGameData.ItemData.Get(Convert.ToInt32(taskCfg.taskCondition[1])); IName.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(itemCfg.sourceLanguage); TargetIcon.image.sprite = Resources.Load(itemCfg.image_grow, typeof(Sprite)) as Sprite; TaskTargetText.text.text = string.Format(Global.gApp.gGameData.GetTipsInCurLanguage(taskCfg.describe), Global.gApp.gGameData.GetTipsInCurLanguage(itemCfg.sourceLanguage)); TaskTargetAmount.text.text = taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString(); } else if (taskCfg.taskCondition[0] == FilterTypeConstVal.KILL_ZOMBIE) { IName.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(4265); TargetIcon.image.sprite = Resources.Load(CommonResourceConstVal.CAMP_KILL_ICON, typeof(Sprite)) as Sprite; TaskTargetText.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(taskCfg.describe); TaskTargetAmount.text.text = taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString(); } else if (taskCfg.taskCondition[0] == FilterTypeConstVal.GET_ITEM_BY_TYPE) { IName.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(4268); TargetIcon.image.sprite = Resources.Load(CommonResourceConstVal.CAMP_GET_TYPE_ITEM_ICON, typeof(Sprite)) as Sprite; TaskTargetText.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(taskCfg.describe); TaskTargetAmount.text.text = taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString(); } else { Debug.LogError("该条件类型未告知如何显示 taskCfg.taskCondition[0] = " + taskCfg.taskCondition[0]); } string cur = m_DTO.cur > taskCfg.taskCondition[taskCfg.taskCondition.Length - 1] ? taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString() : m_DTO.cur.ToString(); Amount.text.text = cur + "/" + taskCfg.taskCondition[taskCfg.taskCondition.Length - 1].ToString(); Progress.image.fillAmount = Convert.ToSingle(m_DTO.cur / taskCfg.taskCondition[taskCfg.taskCondition.Length - 1]); if (int.Parse(taskCfg.reward[0]) == SpecialItemIdConstVal.GOLD) { Gold_paramsItem gpiCfg = Global.gApp.gGameData.GoldParamsConfig.Get(Global.gApp.gSystemMgr.GetBaseAttrMgr().GetLevel()); AwardAmount.text.text = UiTools.FormateMoneyUP(double.Parse(taskCfg.reward[1]) * gpiCfg.coinParams); } else { AwardAmount.text.text = UiTools.FormateMoneyUP(int.Parse(taskCfg.reward[1])); } ItemItem awardItem = Global.gApp.gGameData.ItemData.Get(int.Parse(taskCfg.reward[0])); AwardIcon.image.sprite = Resources.Load(awardItem.image_grow, typeof(Sprite)) as Sprite; ChangeStateAndIndex(); Btn.button.onClick.AddListener(OnReceive); }
private void InitNode() { DayTaskItemUI.gameObject.SetActive(false); TotalTaskItem.gameObject.SetActive(false); List <NpcQuestItemDTO> nqidList = Global.gApp.gSystemMgr.GetNpcMgr().NpcQuestList; for (int i = 0; i < nqidList.Count; i++) { if (nqidList[i].npcQuestId == -1) { continue; } CampNpcItem campNpcItem = Global.gApp.gGameData.CampNpcConfig.Get(nqidList[i].npcId); ItemItem npcItem = Global.gApp.gGameData.GetItemDataByName(nqidList[i].npcId); if (campNpcItem.notFresh == 1) { CampTasksItem taskCfg = Global.gApp.gGameData.CampTasksConfig.Get(nqidList[i].npcQuestId); if (taskCfg == null) { continue; } CampTaskDetails_TotalTaskItem itemUI = TotalTaskItem.GetInstance(); itemUI.InitNode(nqidList[i], i, this); m_TotalItemList.Add(itemUI); } else { CampTasksItem taskCfg = Global.gApp.gGameData.CampTasksConfig.Get(nqidList[i].npcQuestId); if (taskCfg == null) { continue; } CampTaskDetails_DayTaskItemUI itemUI = DayTaskItemUI.GetInstance(); itemUI.InitNode(nqidList[i], i, this); m_ItemList.Add(itemUI); } } m_none.gameObject.SetActive(m_TotalItemList.Count == 0); ChangeTotalShowIndex(); ChangeShowIndex(); CloseBtn.button.onClick.AddListener(TouchClose); }
private void GenerateRecycleMat() { CampRecycleItem[] campRecycleItems = Global.gApp.gGameData.CampRecycleConfig.items; string[] curConsume = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_NPC_DAY_COST).contents; string maxDayStr = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_NPC_MAX_STORE_DAY).content; double maxDayD = double.Parse(maxDayStr); Dictionary <int, double> maxCousumeCountMap = new Dictionary <int, double>(); Dictionary <string, ItemDTO> npcMap = Global.gApp.gSystemMgr.GetNpcMgr().NpcMap; double totlaNpcNum = 0; foreach (KeyValuePair <string, ItemDTO> kvValue in npcMap) { totlaNpcNum += kvValue.Value.num; } int curId = 0; for (int i = 0; i < curConsume.Length; i++) { if (i % 2 == 1) { maxCousumeCountMap[curId] = totlaNpcNum * double.Parse(curConsume[i]) * maxDayD; } else { curId = int.Parse(curConsume[i]); maxCousumeCountMap.Add(i, 0); } } // 把当前所有的 材料全部 加到表里去 foreach (CampRecycleItem campRecycleItem in campRecycleItems) { double count = GameItemFactory.GetInstance().GetItem(campRecycleItem.id); if (count > 0) { m_RecyclyMat.Add(campRecycleItem.id, count); } } foreach (KeyValuePair <int, double> keyValuePair in maxCousumeCountMap) { if (m_RecyclyMat.ContainsKey(keyValuePair.Key)) { double leftVal = m_RecyclyMat[keyValuePair.Key] - keyValuePair.Value; if (leftVal > 0) { m_RecyclyMat[keyValuePair.Key] = leftVal; } else { m_RecyclyMat.Remove(keyValuePair.Key); } } } List <NpcQuestItemDTO> npcQuestList = Global.gApp.gSystemMgr.GetNpcMgr().NpcQuestList; Dictionary <int, double> m_QuestMatCount = new Dictionary <int, double>(); foreach (NpcQuestItemDTO npcQuestItemDTO in npcQuestList) { // FilterTypeConstVal if (npcQuestItemDTO.state != NpcState.None && npcQuestItemDTO.state != NpcState.Received && npcQuestItemDTO.npcQuestId > 0) { CampTasksItem campTasksItem = Global.gApp.gGameData.CampTasksConfig.Get(npcQuestItemDTO.npcQuestId); if (campTasksItem != null && campTasksItem.taskCondition[0] == FilterTypeConstVal.GET_ITEM) { int matId = (int)campTasksItem.taskCondition[1]; if (!m_QuestMatCount.ContainsKey(matId)) { m_QuestMatCount.Add(matId, 0); } m_QuestMatCount[matId] += campTasksItem.taskCondition[2]; } } } foreach (KeyValuePair <int, double> keyValuePair in m_QuestMatCount) { if (m_RecyclyMat.ContainsKey(keyValuePair.Key)) { double leftVal = m_RecyclyMat[keyValuePair.Key] - keyValuePair.Value; if (leftVal > 0) { m_RecyclyMat[keyValuePair.Key] = leftVal; } else { m_RecyclyMat.Remove(keyValuePair.Key); } } } }
public void InitDetailsInfo(NpcQuestItemDTO taskItem, int taskIndex, Transform adaptNode, Action closeCallBack) { m_CloseCallBack = closeCallBack; m_TaskIndex = taskIndex; m_FollowRectTsf.anchoredPosition = UiTools.WorldToRectPos(gameObject, adaptNode.position, m_ParentRectTsf); CampTasksItem campTasksItem = Global.gApp.gGameData.CampTasksConfig.Get(taskItem.npcQuestId); if (campTasksItem != null) { TitleText.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(campTasksItem.title); prNum.text.text = ((int)taskItem.cur).ToString() + "/" + campTasksItem.taskCondition[2].ToString(); m_passProgress.image.fillAmount = (float)taskItem.cur / campTasksItem.taskCondition[2]; ItemItem conditonItem = Global.gApp.gGameData.ItemData.Get((int)campTasksItem.taskCondition[1]); if (conditonItem != null) { taskIcon.image.sprite = Resources.Load(conditonItem.image_grow, typeof(Sprite)) as Sprite; } else { if (campTasksItem.taskCondition[0] == FilterTypeConstVal.KILL_ZOMBIE) { taskIcon.image.sprite = Resources.Load(CommonResourceConstVal.CAMP_KILL_ICON, typeof(Sprite)) as Sprite; } else if (campTasksItem.taskCondition[0] == FilterTypeConstVal.GET_ITEM_BY_TYPE) { taskIcon.image.sprite = Resources.Load(CommonResourceConstVal.CAMP_GET_TYPE_ITEM_ICON, typeof(Sprite)) as Sprite; } else { taskIcon.image.sprite = Resources.Load(CommonResourceConstVal.CAMP_KILL_ICON, typeof(Sprite)) as Sprite; } } ItemItem rewardItem = Global.gApp.gGameData.ItemData.Get(int.Parse(campTasksItem.reward[0])); if (rewardItem != null) { icon.image.sprite = Resources.Load(rewardItem.image_grow, typeof(Sprite)) as Sprite; } if (rewardItem.id == SpecialItemIdConstVal.GOLD) { double itemNum = double.Parse(campTasksItem.reward[1]); Gold_paramsItem cfg = Global.gApp.gGameData.GoldParamsConfig.Get(Global.gApp.gSystemMgr.GetBaseAttrMgr().GetLevel()); itemNum *= cfg.coinParams; Num.text.text = UiTools.FormateMoneyUP(itemNum); } else { Num.text.text = UiTools.FormateMoneyUP(double.Parse(campTasksItem.reward[1])); } } if (taskItem.state == NpcState.UnReceived) { WaitRewardBtn.gameObject.SetActive(false); RewardBtn.gameObject.SetActive(true); RewardBtn.button.onClick.AddListener(ReceiveReward); } else { WaitRewardBtn.gameObject.SetActive(true); RewardBtn.gameObject.SetActive(false); } }