public override void DrawCell(int index, int count = 0) { base.DrawCell(index, count); var dataList = dynamicPackage.GetBuffList(); if (index >= dataList.Count) { return; } info = dataList[index]; // set icon if (info.type == NBuffType.WorldEvent) { WORLD_EVENTS config = eventPackage.GetEventConfigDataByConfigID(info.configID); iconSprite.spriteName = config.EventIcon; } else if (info.type == NBuffType.Cooperation) { if (info.configID == 2) { iconSprite.spriteName = "efficiency1"; } else if (info.configID == 3) { iconSprite.spriteName = "efficiency2"; } else if (info.configID == 4) { iconSprite.spriteName = "efficiency3"; } } OpenSmallWindow(info); }
//get item history price public void CalculateGraphInfo(int configID, long startTime, long curTime) { mGraphInfoList.Clear(); EventPackage eventPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Event) as EventPackage; ItemPackage itemPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage; ITEM_RES itemConfig = itemPackage.GetItemDataByConfigID(configID); List <NWorldEventInfo> eventList = eventPackage.GetHistoryEventList(); string itemKeyName = itemConfig.KeyName; itemKeyName = char.ToUpper(itemKeyName[0]) + itemKeyName.Substring(1).ToLower(); //reflection System.Type type = System.Type.GetType("com.nkm.framework.resource.data." + "WORLD_EVENTS"); PropertyInfo itemPriceProperty = type.GetProperty(itemKeyName); PropertyInfo itemHasProperty = type.GetProperty("Has" + itemKeyName); NGraphNode preNode = null; NGraphNode node = null; //add start node node = new NGraphNode(); node.price = (double)itemConfig.GoldConv / 1000d; node.time = startTime; mGraphInfoList.Add(node); for (int i = 0; i < eventList.Count; i++) { NWorldEventInfo info = eventList[i]; WORLD_EVENTS eventConfig = eventPackage.GetEventConfigDataByConfigID(info.configID); bool isHas = (bool)itemHasProperty.GetValue(eventConfig, null); if (!isHas) { continue; } double priceArgs = System.Convert.ToDouble(itemPriceProperty.GetValue(eventConfig, null)) / 100; if (info.happenTime <= startTime) { node = mGraphInfoList[0]; node.price *= priceArgs; } else { preNode = mGraphInfoList[mGraphInfoList.Count - 1]; node = new NGraphNode(); if (info.isHappen) { node.price = preNode.price * priceArgs; } else { node.price = preNode.price / priceArgs; } mGraphInfoList.Add(node); } } }
public void RefreshState() { NBuildingInfo info = sanctuaryPackage.GetBuildingInfo(buildingID); long remainTime = 0; if (info == null) { mState = BuildingState.Locked; Building building = sanctuaryPackage.GetTypeBuilding(buildingType); if (building == null) { return; } //if under building's min visible level, hide the building if (!sanctuaryPackage.IsBuildingVisible(buildingType)) { building.gameObject.SetActive(false); } else { building.gameObject.SetActive(true); } } else { BuildingFunc func = sanctuaryPackage.GetBuildingFuncByConfigID(info.configID); info.building.gameObject.SetActive(true); if (info.upgradeFinishTime > 0 && GlobalFunction.GetRemainTime(info.upgradeFinishTime, out remainTime)) { mState = BuildingState.Upgrade; } else if (info.processUID != 0 && info.number > 0) { if (GlobalFunction.GetRemainTime(info.processFinishTime, out remainTime)) { mState = BuildingState.Craft; } else { mState = BuildingState.Collect; } } else { mState = BuildingState.Idle; } //store number and update number if (func == BuildingFunc.Collect) { proNumber = info.number; BUILDING config = sanctuaryPackage.GetBuildingConfigDataByConfigID(info.configID); //print(string.Format("Buidlin={0}, number={1}", config.BldgName, info.number)); sanctuaryPackage.GetProAttribute(info.configID, out proSpeed, out proCap); EventPackage eventPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Event) as EventPackage; UserPackage userPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_User) as UserPackage; BUILDING buildingConfig = sanctuaryPackage.GetBuildingConfigDataByConfigID(info.configID); string buildingName = buildingConfig.BldgFuncTableName; buildingName = Char.ToUpper(buildingName[0]) + buildingName.Substring(1).ToLower(); var eventList = eventPackage.GetCurEventList(); foreach (var eventInfo in eventList) { WORLD_EVENTS eventConfig = eventPackage.GetEventConfigDataByConfigID(eventInfo.configID); if (eventConfig == null) { continue; } Type type = Type.GetType("com.nkm.framework.resource.data.WORLD_EVENTS"); PropertyInfo propertyInfo = type.GetProperty(buildingName + "Bldgcap"); PropertyInfo hasPropertyInfo = type.GetProperty("Has" + buildingName + "Bldgcap"); bool isHave = (bool)hasPropertyInfo.GetValue(eventConfig, null); if (isHave) { int effect = (int)propertyInfo.GetValue(eventConfig, null); if (effect != 0) { proSpeed *= (float)effect / 100f; } } } //add person num int personNum = userPackage.GetManorPersonNumber(); if (personNum == 2) { proSpeed *= 1.6f; } else if (personNum == 3) { proSpeed *= 2.2f; } else if (personNum == 4) { proSpeed *= 2.8f; } if (proTimer != null) { StopCoroutine(proTimer); } proTimer = StartCoroutine(ProduceTimer()); } } }