Esempio n. 1
0
    public override void DrawCell(int i, int index, int count = 0)
    {
        base.DrawCell(i, index, count);
        var dataList = dynamicPackage.GetFilteredTradeInfoList();

        if (mIndex >= dataList.Count)
        {
            return;
        }
        NTradeInfo tradeInfo = dataList[mIndex];
        ITEM_RES   config    = itemPackage.GetItemDataByConfigID(tradeInfo.configID);

        nameLabel.text        = config.MinName;
        iconSprite.spriteName = config.IconName;
        NItemInfo info = itemPackage.GetItemInfo(tradeInfo.configID);

        if (info == null)
        {
            numLabel.text = "0";
        }
        else
        {
            numLabel.text = GlobalFunction.NumberFormat(info.number);
        }
    }
Esempio n. 2
0
    public bool IsAbleToUnlockOrUpgrade(int configID)
    {
        int         requireVal;
        double      curVal;
        ItemPackage itemPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage;
        UserPackage userPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_User) as UserPackage;
        BUILDING    config      = GetBuildingConfigDataByConfigID(configID);

        //level
        requireVal = config.BldgLvLim;
        curVal     = userPackage.GetManorLevel();
        if (curVal < requireVal)
        {
            return(false);
        }
        //gold cost
        requireVal = config.GoldCost;
        curVal     = itemPackage.GetGoldNumber();
        if ((double)requireVal > curVal)
        {
            return(false);
        }
        //item
        for (int i = 0; i < config.CostTableCount; i++)
        {
            var cost = config.GetCostTable(i);
            if (cost.CostId == 0)
            {
                continue;
            }
            requireVal = cost.CostQty;
            NItemInfo info = itemPackage.GetItemInfo(cost.CostId);
            // ITEM_RES itemConfig = itemPackage.GetItemDataByConfigID(cost.CostId);
            // if(itemConfig == null)
            // {
            //     Debug.Log(string.Format("configID = {0} missing!!!", cost.CostId));
            //     continue;
            // }
            if (info == null || info.number < cost.CostQty)
            {
                return(false);
            }
        }
        return(true);
    }
Esempio n. 3
0
    void InitView(NDictionary data = null)
    {
        configID = itemPackage.GetSelectionItemConfigID();
        isBuy    = data.Value <bool>("isbuy");
        ITEM_RES config = itemPackage.GetItemDataByConfigID(configID);

        if (isBuy)
        {
            titleLabel.text = string.Format("购买 {0}", config.MinName);
            double price   = itemPackage.GetItemPrice(configID);
            double curGold = itemPackage.GetGoldNumber();
            double tax     = itemPackage.GetTaxRate();
            itemCap       = Mathf.Min(itemPackage.GetBuyLimit(configID), (int)(curGold / (price * (1 + tax))));
            btnLabel.text = "购买";
        }
        else
        {
            NItemInfo info = itemPackage.GetItemInfo(configID);
            titleLabel.text = string.Format("出售 {0}", config.MinName);
            itemCap         = info.number;
            if (itemCap <= 0)
            {
                ITEM_RES test = itemPackage.GetItemDataByConfigID(info.configID);
                print(string.Format("{0}'s number is zero", test.MinName));
            }
            btnLabel.text = "出售";
        }
        if (config.GoldConv >= 1000)
        {
            ratio = 1;
        }
        else
        {
            ratio = 1000 / config.GoldConv;
        }
        itemCap = AdjustCap(ratio, itemCap);

        value                = 0;
        slider.value         = 0f;
        slider.numberOfSteps = (int)Mathf.Ceil((float)itemCap / (float)ratio) + 1;
        UpdateValueView();
    }
Esempio n. 4
0
    void RefreshItemInfo()
    {
        int selectionConfigID = itemPackage.GetSelectionItemConfigID();

        if (selectionConfigID == 0)
        {
            taxLabel.text    = "";
            nameLabel.text   = "";
            cdTimeLabel.text = "";
            return;
        }
        var dataList = ConfigDataStatic.GetConfigDataTable("ITEM_RES");

        if (!dataList.ContainsKey(selectionConfigID))
        {
            Debug.Log(string.Format("ITEM_RES config={0} missing", selectionConfigID));
            return;
        }

        ITEM_RES itemConfig = dataList[selectionConfigID] as ITEM_RES;

        taxLabel.text   = string.Format("当前中间人费用{0}%", itemPackage.GetTaxRate() * 100);
        nameLabel.text  = string.Format("{0}近3日价格", itemConfig.MinName);
        priceLabel.text = string.Format("当前价格: {0}", itemPackage.GetItemPrice(selectionConfigID).ToString("0.00"));
        //set buy & sell button
        NItemInfo info = itemPackage.GetItemInfo(itemPackage.GetSelectionItemConfigID());

        //PURCHASE_LIM limConfig = ConfigDataStatic.GetConfigDataTable("PURCHASE_LIM")[userPackage.GetPlayerLevel()] as PURCHASE_LIM;
        if (info == null || info.number <= 0)
        {
            sellBtn.isEnabled = false;
        }
        else
        {
            sellBtn.isEnabled = true;
        }
        RefreshBuyLimit();
        RefreshGraph();
    }
Esempio n. 5
0
    void InitView()
    {
        NBuildingInfo info            = sanctuaryPackage.GetBuildingInfo(selectionBuilding.BuildingID);
        var           buildingDataMap = ConfigDataStatic.GetConfigDataTable("BUILDING");
        BUILDING      buildingData    = buildingDataMap[info.configID] as BUILDING;
        int           level           = sanctuaryPackage.GetBulidingLevelByConfigID(info.configID);
        long          remainTime      = 0;

        //check if is crafting
        isCrafting = false;
        isCollect  = false;

        if (GlobalFunction.GetRemainTime(info.processFinishTime, out remainTime))
        {
            isCrafting = true;
        }
        else if (info.number > 0)
        {
            isCollect = true;
        }

        toConfigID   = buildingData.ProId;
        fromConfigID = buildingData.ConId;
        //item name
        var      itemDataMap = ConfigDataStatic.GetConfigDataTable("ITEM_RES");
        ITEM_RES itemData    = itemDataMap[fromConfigID] as ITEM_RES;

        fromItemName.text     = itemData.MinName;
        fromSprite.spriteName = itemData.IconName;
        ratio                 = buildingData.ConPro;
        itemData              = itemDataMap[toConfigID] as ITEM_RES;
        toItemName.text       = itemData.MinName;
        describeLabel.text    = itemData.Desc;
        toSprite.spriteName   = itemData.IconName;
        descSprite.spriteName = itemData.IconName;
        // set number
        NItemInfo itemInfo = itemPackage.GetItemInfo(fromConfigID);

        craftNum     = 0;
        slider.value = 0f;
        if (itemInfo == null)
        {
            craftMax = 0;
        }
        else
        {
            int toItemMax = (int)Mathf.Floor((float)itemInfo.number / (float)ratio);
            craftMax             = toItemMax * ratio;
            slider.numberOfSteps = (int)Mathf.Ceil((float)craftMax / (float)ratio) + 1;
        }
        //check if is self
        if (info.processUID == userPackage.UserID)
        {
            isSelf = true;
        }
        else
        {
            isSelf = false;
        }

        //text
        title.text = string.Format("{0} Lv.{1}", buildingData.BldgName, level);
        collectButton.gameObject.SetActive(false);
        cancelButton.gameObject.SetActive(false);
        //stop timer
        if (TimerCo != null)
        {
            timeLabel.text = "00:00";
            StopCoroutine(TimerCo);
        }

        if (isCrafting)
        {
            //check if is self
            if (isSelf)
            {
                stateLabel.text = "你正在使用";
                cancelButton.gameObject.SetActive(true);
            }
            else
            {
                stateLabel.text = string.Format("玩家Uid{0}正在使用", info.processUID);
            }

            //set time
            if (remainTime > 0)
            {
                TimerCo = StartCoroutine(Timer(remainTime));
            }
        }
        else if (isCollect)
        {
            if (isSelf)
            {
                stateLabel.text = string.Format("可以领取{0}", info.number);
                collectButton.gameObject.SetActive(true);
            }
            timeLabel.text = "00:00";
        }
        else
        {
            stateLabel.text = "该工厂处于空闲状态";
            collectButton.gameObject.SetActive(false);
            cancelButton.gameObject.SetActive(false);
        }
        UpdateNumView();
    }
    void ShowCost(BUILDING configData)
    {
        int count = 0;

        //show gold & elec
        if (configData.GoldCost > 0)
        {
            int    costNum = configData.GoldCost;
            double curNum  = itemPackage.GetGoldNumber();
            costCellList[count].title.text = "黄金消耗: ";
            costCellList[count].value.text = string.Format("{0} / {1}", GlobalFunction.NumberFormat(costNum), GlobalFunction.NumberFormat(curNum));
            costCellList[count].go.SetActive(true);
            if ((double)costNum > curNum)
            {
                costCellList[count].title.color = Color.red;
                costCellList[count].value.color = Color.red;
            }
            else
            {
                costCellList[count].title.color = Color.white;
                costCellList[count].value.color = Color.white;
            }
            count++;
        }
        if (configData.ElecCost > 0)
        {
            int    costNum = configData.ElecCost;
            double curNum  = itemPackage.GetElecNumber();
            costCellList[count].title.text = "电力消耗: ";
            costCellList[count].value.text = string.Format("{0} / {1}", GlobalFunction.NumberFormat(costNum), GlobalFunction.NumberFormat(curNum));
            costCellList[count].go.SetActive(true);
            if ((double)costNum > curNum)
            {
                costCellList[count].title.color = Color.red;
                costCellList[count].value.color = Color.red;
            }
            else
            {
                costCellList[count].title.color = Color.white;
                costCellList[count].value.color = Color.white;
            }
            count++;
        }
        for (int i = 0; i < configData.CostTableCount; i++)
        {
            int itemConfigId = configData.GetCostTable(i).CostId;
            if (itemConfigId == 0)
            {
                continue;
            }
            int       num      = configData.GetCostTable(i).CostQty;
            ITEM_RES  itemData = itemPackage.GetItemDataByConfigID(itemConfigId);
            NItemInfo itemInfo = itemPackage.GetItemInfo(itemConfigId);
            int       curNum   = itemInfo == null ? 0 : itemInfo.number;
            costCellList[count].title.text = itemData.MinName + ": ";
            costCellList[count].value.text = string.Format("{0} / {1}", num.ToString(), curNum);
            costCellList[count].go.SetActive(true);
            if (itemInfo == null || itemInfo.number < num)
            {
                costCellList[count].title.color = Color.red;
                costCellList[count].value.color = Color.red;
            }
            else
            {
                costCellList[count].title.color = Color.white;
                costCellList[count].value.color = Color.white;
            }
            count++;
        }
        for (; count < 5; count++)
        {
            costCellList[count].go.SetActive(false);
        }
    }
Esempio n. 7
0
    public override void DrawCell(int index, int count = 0)
    {
        base.DrawCell(index, count);
        var      dataList = sanctuaryPackage.GetBuildingCostList();
        NCostDef cost     = dataList[index];
        bool     isEnough = true;

        if (cost.configID == 1)
        {
            nameLabel.text  = string.Format("庄园等级限制:");
            valueLabel.text = string.Format("{0}/{1}", cost.value, userPackage.GetManorLevel());
            if (userPackage.GetManorLevel() < cost.value)
            {
                isEnough = false;
            }
        }
        else if (cost.configID == 2)
        {
            nameLabel.text  = string.Format("黄金:");
            valueLabel.text = string.Format("{0}/{1}", cost.value, GlobalFunction.NumberFormat(itemPackage.GetGoldNumber()));
            if (itemPackage.GetGoldNumber() < cost.value)
            {
                isEnough = false;
            }
        }
        else if (cost.configID == 3)
        {
            nameLabel.text  = string.Format("电力:");
            valueLabel.text = string.Format("{0}/{1}", cost.value, GlobalFunction.NumberFormat(itemPackage.GetElecNumber()));
            if (itemPackage.GetElecNumber() < cost.value)
            {
                isEnough = false;
            }
        }
        else
        {
            ITEM_RES itemData = itemPackage.GetItemDataByConfigID(cost.configID);
            if (itemData == null)
            {
                return;
            }
            nameLabel.text = string.Format("{0}:", itemData.MinName);
            NItemInfo itemInfo = itemPackage.GetItemInfo(cost.configID);
            if (itemInfo == null)
            {
                valueLabel.text = string.Format("{0}/{1}", cost.value, 0);
                isEnough        = false;
            }
            else
            {
                valueLabel.text = string.Format("{0}/{1}", cost.value, GlobalFunction.NumberFormat(itemInfo.number));
                if (itemInfo.number < cost.value)
                {
                    isEnough = false;
                }
            }
        }
        if (isEnough)
        {
            nameLabel.color  = Color.white;
            valueLabel.color = Color.white;
        }
        else
        {
            nameLabel.color  = Color.red;
            valueLabel.color = Color.red;
        }
    }