public CampResourcesDetailUI_ResourceItemUI GetInstance() { CampResourcesDetailUI_ResourceItemUI instance = null; if (mCachedInstances != null) { while ((instance == null || instance.Equals(null)) && mCachedInstances.Count > 0) { instance = mCachedInstances.Dequeue(); } } if (instance == null || instance.Equals(null)) { instance = Instantiate <CampResourcesDetailUI_ResourceItemUI>(m_ResourceItemUI); } Transform t0 = m_ResourceItemUI.transform; Transform t1 = instance.transform; t1.SetParent(t0.parent); t1.localPosition = t0.localPosition; t1.localRotation = t0.localRotation; t1.localScale = t0.localScale; t1.SetSiblingIndex(t0.GetSiblingIndex() + 1); return(instance); }
public bool CacheInstance(CampResourcesDetailUI_ResourceItemUI instance) { if (instance == null || instance.Equals(null)) { return(false); } if (mCachedInstances == null) { mCachedInstances = new Queue <CampResourcesDetailUI_ResourceItemUI>(); } if (mCachedInstances.Contains(instance)) { return(false); } instance.gameObject.SetActive(false); mCachedInstances.Enqueue(instance); return(true); }
private void InitNode() { 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); int curId = 0; SortedDictionary <int, double> maxCousumeCountMap = new SortedDictionary <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; } for (int i = 0; i < curConsume.Length; i += 2) { curId = int.Parse(curConsume[i]); double curMat = totlaNpcNum * double.Parse(curConsume[i + 1]) * maxDayD; maxCousumeCountMap[curId] = curMat; } double totalCount = 0d; double totalMaxCount = 0d; ResourceItemUI.gameObject.SetActive(false); foreach (int id in maxCousumeCountMap.Keys) { double curV = GameItemFactory.GetInstance().GetItem(id); double maxV = maxCousumeCountMap[id]; totalCount += curV; totalMaxCount += maxV; ItemItem itemCfg = Global.gApp.gGameData.ItemData.Get(id); CampResourcesDetailUI_ResourceItemUI itemUI = ResourceItemUI.GetInstance(); itemUI.gameObject.SetActive(true); itemUI.Materials.image.sprite = Global.gApp.gResMgr.LoadAssets <Sprite>(itemCfg.image_grow); itemUI.Progress.image.fillAmount = Convert.ToSingle(curV / maxV); itemUI.IName.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(itemCfg.sourceLanguage); itemUI.Amount.text.text = Math.Ceiling(curV).ToString("0.##") + "/" + Math.Ceiling(maxV).ToString("0.##"); itemUI.ConsumeADayAmount.text.text = (maxV / maxDayD).ToString("0.#"); itemUI.MaintainedDaysAmount.text.text = ((curV * maxDayD) / maxV).ToString("0.#"); itemUI.transform.SetSiblingIndex(id); } int index = -1; if (totalMaxCount > 0) { double rata = (totalCount / (totalMaxCount)) * 100; string[] stateJudge = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_NPC_HEATH_DEFINITION).contents; for (int i = 0; i < stateJudge.Length; i++) { if (rata <= double.Parse(stateJudge[i])) { index = i; break; } } if (index < 0) { index = stateJudge.Length; } } else { index = 0; } string[] stateIds = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_NPC_HEATH_NAME).contents; DName.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(int.Parse(stateIds[index])); if (index == 0) { DName.text.color = new Color(255.0f / 255, 39.0f / 255, 39.0f / 255); } else if (index == 1) { DName.text.color = new Color(255.0f / 255, 234.0f / 255, 99.0f / 255); } else if (index == 2) { DName.text.color = new Color(183.0f / 255, 245.0f / 255, 60.0f / 255); } string[] dws = Global.gApp.gGameData.GeneralConfigData.Get(GeneralConfigConstVal.CAMP_SOURCE_HEALTH_DETAIL_WORD).contents; Text.text.text = Global.gApp.gGameData.GetTipsInCurLanguage(int.Parse(dws[index])); CloseBtn.button.onClick.AddListener(TouchClose); KnowBtn.button.onClick.AddListener(TouchClose); }