コード例 #1
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="pt"></param>
    /// <param name="cost"></param>
    /// <returns></returns>
    public bool GetProcTypeAndCost(ref ProceedsType pt, ref int cost)
    {
        pt   = mPt;
        cost = (int)mCost;

        //ShopTableItem item = DataManager.ShopTable[this.resId] as ShopTableItem;
        //if (item == null)
        //    return false;

        //ShopModule module = ModuleManager.Instance.FindModule<ShopModule>();
        //if (module == null)
        //    return false;

        //if (item.subTable == (int)ShopSubTable.Sceret)
        //{
        //    pt = (ProceedsType)ShopModule.GetShopItemProceedsType(this.resId, mInfo.proceedsTypeIdx);
        //    int perPrice = ShopModule.GetShopItemPerPrice(this.resId, mInfo.proceedsTypeIdx);
        //    cost = (int)(mInfo.count * item.multiple * perPrice);
        //}
        //else
        //{
        //    pt = (ProceedsType)ShopModule.GetShopItemProceedsType(this.resId, 0);
        //    int perPrice = ShopModule.GetShopItemPerPrice(this.resId, 0);
        //    cost = (int)(mInfo.count * item.multiple * perPrice);
        //}

        return(true);
    }
コード例 #2
0
ファイル: UIEgg.cs プロジェクト: fengmin0722/qiangzhan
    void updateEggCostInfo()
    {
        PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (pdm == null)
        {
            return;
        }

        for (int i = 0; i < EggModule.EGG_COUNT; i++)
        {
            EggType      et  = (EggType)(i + 1);
            int          num = EggModule.getCostProcNum(et);
            ProceedsType pt  = EggModule.getCostProcType(et);

            if (pt == ProceedsType.Invalid || num <= 0)
            {
                costLb[i].transform.parent.gameObject.SetActive(false);
            }
            else
            {
                if (pdm.GetProceeds(pt) < num)
                {
                    costLb[i].text = StringHelper.StringWithColor(FontColor.Red, num.ToString());
                }
                else
                {
                    costLb[i].text = num.ToString();
                }

                UIAtlasHelper.SetSpriteByMoneyType(costSp[i], pt, false);
                costLb[i].transform.parent.gameObject.SetActive(true);
            }
        }
    }
コード例 #3
0
    void confirmRefresh(object para)
    {
        PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (pdm == null)
        {
            return;
        }

        //if (ShopModule.SECRET_REFRESH_COST > pdm.GetProceeds(ShopModule.SECRET_REFRESH_PROC_TYPE))
        ProceedsType pt = ShopModule.GetSecretShopRefreshPoceType();

        if (ShopModule.GetSecretShopRefreshCost() > pdm.GetProceeds(pt))
        {
            //PromptUIManager.Instance.AddNewPrompt(ShopModule.GetBuyMoneyNotEnougthStr(pt));
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("refresh_no_money", FontColor.Red));
            return;
        }

        ShopRefreshAction param = new ShopRefreshAction();

        param.OpType = (int)ShopOpType.Refresh;

        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_SHOP, param);
    }
コード例 #4
0
    public static void SetSpriteByMoneyType(UISprite sprite, ProceedsType type, bool pixelPerfect = true)
    {
        string imgName = "";

        switch (type)
        {
        case ProceedsType.Money_Game:
            imgName = "jinbi1";
            break;

        //钻石;
        case ProceedsType.Money_RMB:
            imgName = "zhuanshi1";
            break;

        //声望;
        case ProceedsType.Money_Prestige:
            imgName = "shengwang1";
            break;

        //竞技场货币;
        case ProceedsType.Money_Arena:
            imgName = "hupbi3";
            break;

        default:
            Debug.LogError("没处理的货币类型");
            break;
        }

        SetSpriteImage(sprite, "common:" + imgName, pixelPerfect);
    }
コード例 #5
0
    public bool IsEnougthMoney(EggType et, ref ProceedsType pt)
    {
        pt = getCostProcType(et);

        if (Pdm.GetProceeds(pt) < getCostProcNum(et))
        {
            return(false);
        }

        return(true);
    }
コード例 #6
0
ファイル: SkillModule.cs プロジェクト: fengmin0722/qiangzhan
    ///技能升级;
    public bool Upgrade(int skillId)
    {
        SkillLevelTableItem item = GetDetailByCurLvSkillID(skillId);

        if (item == null)
        {
            return(false);
        }

        PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (pdm == null)
        {
            return(false);
        }

        ProceedsType pt       = (ProceedsType)item.money_type;
        uint         moneyNum = pdm.GetProceeds(pt);

        if (item.money_num > moneyNum)
        {
            //Debug.LogError("钱不够了,升级失败");
            if (pt == ProceedsType.Money_Game)
            {
                PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_lvup_nomoney")));
            }
            else if (pt == ProceedsType.Money_RMB)
            {
                PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_lvup_normb")));
            }
            return(false);
        }

        if (pdm.GetLevel() < item.level)
        {
            //人物等级不足,技能升级失败;
            PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_lvup_nolevel")));
            return(false);
        }

        SkillLevelActionParam param = new SkillLevelActionParam();

        param.SkillIdxs.Add(skillId);

        Net.Instance.DoAction((int)MESSAGE_ID.ID_MSG_SKILL, param);

//         pdm.ChangeProceeds((ProceedsType)item.money_type, (int)(moneyNum - item.money_num));
//      PlayerData pd = PlayerDataPool.Instance.MainData;
//      int tempLv = pd.skillData.mLevels[skillId];
//      pd.skillData.mLevels[skillId] = tempLv + 1;
        return(true);
    }
コード例 #7
0
    void BuyMallItem(int resId, int subId)
    {
        MallTableItem item = Module.MallTable[resId] as MallTableItem;

        if (item == null)
        {
            return;
        }

        PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();

        //有钱没;
        MallItemInfo info = item.mallItems[subId];
        ProceedsType pt   = (ProceedsType)item.processType;

        if (pdm.GetProceeds(pt) < info.processNow)
        {
            //PromptUIManager.Instance.AddNewPrompt(ShopModule.GetBuyMoneyNotEnougthStr(pt));
            PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, ShopModule.GetBuyMoneyNotEnougthStr(pt)));
            return;
        }

        //次数够了没;
        switch (mModule.GetLimitTypeByID(resId))
        {
        case MallLimitType.ERROR:
            GameDebug.LogError("数据错误");
            return;

        case MallLimitType.NONE:
            break;

        case MallLimitType.DAY:
        case MallLimitType.FOREVER:
            if (mModule.GetPlayerBuyTimes(resId) >= item.limitTimes)
            {
                //PromptUIManager.Instance.AddNewPrompt(StringHelper.GetString("buy_no_time"));
                PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("buy_no_time")));
                return;
            }
            break;
        }

        MallBuyItemAction param = new MallBuyItemAction();

        param.ResId  = resId;
        param.SubIdx = subId;

        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_MALL_BUY, param);
    }
コード例 #8
0
    void UpdateData(int ProceedsTypeIdx, int count, bool isBuy)
    {
        if (mitem == null)
        {
            GameDebug.LogError("请先初始化在进行刷新操作");
            return;
        }

        if (ProceedsTypeIdx < 0 || ProceedsTypeIdx > 2)
        {
            GameDebug.LogError("商店数据错误");
            return;
        }

        int proceedsType = ShopModule.GetShopItemProceedsType(mitem, ProceedsTypeIdx);
        int perPrice     = ShopModule.GetShopItemPerPrice(mitem, ProceedsTypeIdx);

        mPt = (ProceedsType)proceedsType;

        SetMoneyType(mPt);
        int itemNumber = (int)(count * mitem.multiple);

        countLb.text = "x" + itemNumber;

        mCost = (uint)(perPrice * itemNumber);

        if (isBuy)
        {
            moneyLb.text = "已售罄";
        }
        else
        {
            PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();
            if (pdm == null)
            {
                return;
            }

            if (pdm.GetProceeds(mPt) >= mCost)
            {
                moneyLb.text = mCost + "";
            }
            else
            {
                moneyLb.text = StringHelper.StringWithColor(FontColor.Red, mCost.ToString());
            }
        }
        huiSp.gameObject.SetActive(isBuy);
        isScretItemBuyDone = isBuy;
    }
コード例 #9
0
ファイル: ShopModule.cs プロジェクト: fengmin0722/qiangzhan
    public static string GetBuyMoneyNotEnougthStr(ProceedsType pt)
    {
        switch (pt)
        {
        case ProceedsType.Money_Game:
            return(StringHelper.GetString("buy_no_game"));

        case ProceedsType.Money_RMB:
            return(StringHelper.GetString("buy_no_rmb"));

        case ProceedsType.Money_Prestige:
            return(StringHelper.GetString("buy_no_prestige"));

        case ProceedsType.Money_Stren:
            return(StringHelper.GetString("buy_no_stren"));

        case ProceedsType.Money_Arena:
            return(StringHelper.GetString("buy_no_arena"));

        default:
            GameDebug.LogError("缺少该类型的购买钱币不足提示");
            return("");
        }
    }
コード例 #10
0
 void SetMoneyType(ProceedsType type)
 {
     mPt = type;
     UIAtlasHelper.SetSpriteByMoneyType(moneySp, type, true);
     moneySp.transform.localScale = new Vector3(0.5f, 0.5f, 1f);
 }
コード例 #11
0
    public void SetData(ShopTableItem node)
    {
        if (node == null)
        {
            resId = -1;
            mitem = null;

            SetName("");

            huiSp.gameObject.SetActive(true);
            nullLb.gameObject.SetActive(true);

            icon.gameObject.SetActive(false);
            moneyLb.gameObject.SetActive(false);
            moneySp.gameObject.SetActive(false);
            countLb.gameObject.SetActive(false);
            discountSp.gameObject.SetActive(false);
            discountLb.gameObject.SetActive(false);
            effectSp.gameObject.SetActive(false);
            orignalPriceLb.gameObject.SetActive(false);
            orignalPriceSp.gameObject.SetActive(false);
            limitTimesLb.gameObject.SetActive(false);
            limitTimesSp.gameObject.SetActive(false);

            return;
        }

        ItemTableItem itemItem = ItemManager.GetItemRes(node.itemId);

        if (itemItem == null)
        {
            Debug.LogError("找不到物品id" + node.itemId + "对应的物品");
            return;
        }

        resId = node.resId;
        mitem = node;

        SetName(ItemManager.getItemNameWithColor(node.itemId));
        SetIcon(itemItem.picname);

        if (node.subTable != (int)ShopSubTable.Sceret)
        {
            uint count = node.minCount * node.multiple;

            mPt   = (ProceedsType)(node.proceedType0);
            mCost = (uint)node.perPrice0 * count;

            //UIAtlasHelper.SetSpriteByMoneyType(moneySp, mPt);
            SetMoneyType(mPt);
            SetCurPrice(mCost);
            countLb.text = "x" + count;

            mInfo = new ShopItemInfo();
            mInfo.proceedsTypeIdx = 0;
            mInfo.isBuyDone       = false;
            mInfo.count           = (int)node.minCount;
        }
        nullLb.gameObject.SetActive(false);
        huiSp.gameObject.SetActive(false);
        discountSp.gameObject.SetActive(false);
        discountLb.gameObject.SetActive(false);
        effectSp.gameObject.SetActive(false);
        orignalPriceLb.gameObject.SetActive(false);
        orignalPriceSp.gameObject.SetActive(false);
        limitTimesLb.gameObject.SetActive(false);
        limitTimesSp.gameObject.SetActive(false);
    }
コード例 #12
0
ファイル: UIEgg.cs プロジェクト: fengmin0722/qiangzhan
    /// <summary>
    /// 普通蛋:倒计时完成了就可以砸;
    /// 高级蛋、钻石蛋:倒计时到了就可以免费砸一次,否则花钱也可以砸;
    /// </summary>
    /// <param name="go"></param>
    void onEggClick(GameObject go)
    {
        if (go == null)
        {
            return;
        }

        string last = go.name.Substring(go.name.Length - 1, 1);

        int idx = System.Convert.ToInt32(last);

        if (idx < 1 || idx > mEggs.Length)
        {
            GameDebug.LogError("名字不配代码");
            return;
        }

        bool isFree = false;

        EggType et = (EggType)idx;

        // 时间到了吗;
        if (Module.GetSecondsByEggId(et) > 0)
        {
            switch (et)
            {
            case EggType.Normal:
                //GameDebug.LogError("时间没到砸不开");
                PopTipManager.Instance.AddNewTip(StringHelper.GetString("egg_is_counting", FontColor.Red));
                return;

            case EggType.Supper:
            case EggType.ZuanShi:
                break;
            }

            isFree = false;
        }
        else
        {
            isFree = true;
        }

        // 次数不够了;
        if (Module.GetRemainTimeByEggId(et) == 0)
        {
            //PromptUIManager.Instance.AddNewPrompt("今日次数已用完!");
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("egg_no_times", FontColor.Red));
            return;
        }

        // 钱不够;
        ProceedsType pt = ProceedsType.Invalid;

        if (!isFree && !Module.IsEnougthMoney(et, ref pt))
        {
            //PromptUIManager.Instance.AddNewPrompt("钱不够,无法砸蛋!");
            if (pt == ProceedsType.Money_Game)
            {
                PopTipManager.Instance.AddNewTip(StringHelper.GetString("egg_no_money", FontColor.Red));
            }
            else if (pt == ProceedsType.Money_RMB)
            {
                PopTipManager.Instance.AddNewTip(StringHelper.GetString("egg_no_rmb", FontColor.Red));
            }
            return;
        }

        RequestOpenEgg(idx);
    }
コード例 #13
0
    void OpenBuyForm(int resId)
    {
        if (!DataManager.ShopTable.ContainsKey(resId))
        {
            return;
        }

        if (!mAllItemsLists.ContainsKey(resId))
        {
            return;
        }

        ShopItemUI itemUi = mAllItemsLists[resId];

        if (itemUi == null || itemUi.IsScretItemBuyDone)
        {
            return;
        }

        ShopTableItem item = DataManager.ShopTable[resId] as ShopTableItem;

        ItemTableItem tableItem = ItemManager.GetItemRes(item.itemId);

        if (tableItem == null)
        {
#if UNITY_EDITOR
            GameDebug.LogError("物品表中缺少ID为" + item.itemId + "的物品");
#endif
            return;
        }

        //gNameLb.text = tableItem.name;
        gNameLb.text       = ItemManager.getItemNameWithColor(item.itemId);
        gItemDetailLb.text = tableItem.desc;
        gGetDetailLb.text  = tableItem.desc0;
        UIAtlasHelper.SetSpriteImage(gIconSp, tableItem.picname, true);
        gItemTypeLb.text = ItemManager.GetItemTypeStr(item.itemId);

        ProceedsType pt   = ProceedsType.Invalid;
        int          cost = 0;

        if (!itemUi.GetProcTypeAndCost(ref pt, ref cost))
        {
            return;
        }

        UIAtlasHelper.SetSpriteByMoneyType(gMoneySp, pt);
        gMoneySp.transform.localScale = new Vector3(0.5f, 0.5f, 1f);

        PlayerDataModule playerModule = ModuleManager.Instance.FindModule <PlayerDataModule>();
        if (playerModule == null)
        {
            GameDebug.LogError("player data is null!");
            return;
        }

        if (playerModule.GetProceeds(pt) < cost)
        {
            gMoneyLb.text = StringHelper.StringWithColor(FontColor.Red, cost.ToString());
        }
        else
        {
            gMoneyLb.text = cost.ToString();
        }

        gBuyObj.SetActive(true);
    }
コード例 #14
0
    void BuyMallItem(int resId)
    {
        ShopTableItem item = DataManager.ShopTable[resId] as ShopTableItem;

        if (item == null)
        {
            return;
        }

        PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (pdm == null || pdm.GetShopIsBuyDone(resId))
        {
            return;
        }

        if (!mAllItemsLists.ContainsKey(resId))
        {
            return;
        }

        ShopItemUI itemUi = mAllItemsLists[resId];

        if (itemUi == null)
        {
            return;
        }

        // 已经买了吗;
        if (itemUi.IsScretItemBuyDone)
        {
            //PromptUIManager.Instance.AddNewPrompt(StringHelper.GetString("buy_done"));
            PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("buy_done")));
            return;
        }

        /// 钱够了吗;
        ProceedsType pt   = ProceedsType.Invalid;
        int          cost = 0;

        if (!itemUi.GetProcTypeAndCost(ref pt, ref cost))
        {
            return;
        }

        if (pdm.GetProceeds(pt) < cost)
        {
            //PromptUIManager.Instance.AddNewPrompt(ShopModule.GetBuyMoneyNotEnougthStr(pt));
            PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, ShopModule.GetBuyMoneyNotEnougthStr(pt)));
            return;
        }

        // 成功逻辑;
        ShopBuyItemAction param = new ShopBuyItemAction();

        param.OpType = (int)ShopOpType.BuyItem;
        param.ResId  = resId;

        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_SHOP, param);

        //MallBuyItemAction param = new MallBuyItemAction();
        //param.ResId = resId;
        //param.SubIdx = subId;

        ////有钱没;
        //MallItemInfo info = item.mallItems[subId];
        //if (pdm.GetProceeds((ProceedsType)item.processType) < info.processNow)
        //{
        //    PromptUIManager.Instance.AddNewPrompt("钱不够");
        //    return;
        //}

        ////次数够了没;
        //switch (mModule.GetLimitTypeByID(resId))
        //{
        //    case MallLimitType.ERROR:
        //        GameDebug.LogError("数据错误");
        //        return;
        //    case MallLimitType.NONE:
        //        break;
        //    case MallLimitType.DAY:
        //    case MallLimitType.FOREVER:
        //        if (mModule.GetPlayerBuyTimes(resId) >= item.limitTimes)
        //        {
        //            PromptUIManager.Instance.AddNewPrompt("购买次数够了");
        //            return;
        //        }
        //        break;
        //}

        //Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_MALL_BUY, param);
    }