Example #1
0
    public override void DrawCell(int index, int count = 0)
    {
        base.DrawCell(index, count);
        var dataList = dynamicPackage.GetVisibleEventList();

        if (index >= dataList.Count)
        {
            return;
        }
        NWorldEventInfo info = dataList[index];

        var          configMap = ConfigDataStatic.GetConfigDataTable("WORLD_EVENTS");
        WORLD_EVENTS config    = configMap[info.configID] as WORLD_EVENTS;

        titleLabel.text   = config.EventName;
        contentLabel.text = config.EventNews;
        endTime           = info.happenTime + config.EventDuration * 60 * 1000;
        //print(string.Format("{0}, {1}, {2}", config.EventName, GlobalFunction.DateFormat(info.happenTime), GlobalFunction.DateFormat(endTime)));
        if (GlobalFunction.IsHappened(info.happenTime))
        {
            ShowTime(endTime, true);
        }
        else
        {
            ShowTime(info.happenTime, false);
        }
    }
Example #2
0
    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);
    }
Example #3
0
 void OpenSmallWindow(NBuffInfo info)
 {
     if (info.type == NBuffType.WorldEvent)
     {
         WORLD_EVENTS config = eventPackage.GetEventConfigDataByConfigID(info.configID);
         iconSprite.spriteName = config.EventIcon;
     }
 }
Example #4
0
    //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);
            }
        }
    }
Example #5
0
    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());
            }
        }
    }