Beispiel #1
0
    public void OnBtnPromoteHandler()
    {
        SoundManager.Instance.Play(15);
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (null == module)
        {
            return;
        }

        DefenceObj       defencedata    = module.GetItemByIDAndPos(uiparam.itemid, uiparam.packpos, uiparam.packtype) as DefenceObj;
        DefenceTableItem defenceItemold = DataManager.DefenceTable[uiparam.itemid] as DefenceTableItem;

        if (null == defencedata || null == defenceItemold)
        {
            return;
        }

        DefenceCombItem combItem = DataManager.DefenceCombTable[defenceItemold.combId] as DefenceCombItem;

        if (null == combItem)
        {
            //弹窗:装备无法提升
            return;
        }

        DefenceTableItem defenceitempromote = DataManager.DefenceTable[combItem.defenceproducedId] as DefenceTableItem;

        //打开二级界面,显示需要的材料,玩家拥有的材料,装备升阶需要的等级

        uint playerhascitem1 = module.GetItemNumByID(combItem.item1, PackageType.Pack_Bag);
        uint playerhascitem2 = module.GetItemNumByID(combItem.item2, PackageType.Pack_Bag);

        if (defenceitempromote.uselevel > module.GetLevel())
        {
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("roll_lv_need"));
            return;
        }

        if (playerhascitem1 < combItem.num1)
        {
            //弹窗:道具【名称】【个数】不足
            //TODO
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("item_need").Replace("?", ItemManager.Instance.getItemName(combItem.item1)));
            return;
        }

        if (playerhascitem2 < combItem.num2)
        {
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("item_need").Replace("?", ItemManager.Instance.getItemName(combItem.item2)));
            return;
        }

        PromoteDefenceActionParam param = new PromoteDefenceActionParam();

        param.DefenceId = uiparam.itemid;
        param.PackType  = (int)uiparam.packtype;
        param.pos       = uiparam.packpos;
        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_DEFENCE_PROMOTE, param);
    }
Beispiel #2
0
    public void SetItemObj(ItemObj itemobj)
    {
        if (itemobj == null)
        {
            Clear();
            return;
        }
        mPackType = itemobj.PackType;
        mPackPos  = itemobj.PackPos;
        mItemID   = itemobj.GetResId();
        SetResID(mItemID);
        SetNumber(itemobj.GetCount());

        if (itemobj is DefenceObj)
        {
            DefenceObj defenceObj = itemobj as DefenceObj;
            if (defenceObj != null)
            {
                SetStrenLv(defenceObj.GetStrenLv());
                SetStonePic(defenceObj.GetStonePic());
                SetStarsLvPic(defenceObj.GetStarsLvPic());
            }
            else
            {
                SetStrenLv(-1);
                SetStonePic(null);
                SetStarsLvPic(null);
            }
        }
    }
Beispiel #3
0
    //构建装备显示外形列表
    public static void BuildEquipView(PlayerData mainData, int[] views)
    {
        Dictionary <int, ItemObj> dic = mainData.mPack.getPackDic(PackageType.Pack_Equip);

        for (int i = 0; i < (int)EquipSlot.EquipSlot_MAX; ++i)
        {
            if (!dic.ContainsKey(i))
            {
                views[i] = -1;
                continue;
            }
            DefenceObj obj = dic[i] as DefenceObj;
            if (obj == null)
            {
                views[i] = -1;
                continue;
            }
            int slot = obj.GetDeRes().slot;
            if (slot < 0 || slot >= (int)EquipSlot.EquipSlot_MAX)
            {
                views[i] = -1;
                continue;
            }
            views[i] = obj.GetDeRes().partmodel;
        }
    }
Beispiel #4
0
    public ItemObj CreateItem(ItemObjInit initData)
    {
        if (initData == null)
        {
            return(null);
        }

        ItemObj itemobj = null;

        switch (GetItemType((uint)initData.mResId))
        {
        case ItemType.Normal:
        {
            itemobj = new NormalItemObj();
        }
        break;

        case ItemType.Defence:
        {
            itemobj = new DefenceObj();
        }
        break;

        case ItemType.Weapon:
        {
            itemobj = new WeaponObj();
        }
        break;

        case ItemType.Stone:
        {
            itemobj = new StoneObj();
        }
        break;

        case ItemType.Box:
        {
            itemobj = new BoxItemObj();
        }
        break;

        default:
            break;
        }

        if (itemobj == null)
        {
            return(null);
        }

        if (!itemobj.Init(initData))
        {
            return(null);
        }

        return(itemobj);
    }
Beispiel #5
0
    public bool StrenDefence(DefenceUIParam uiparam)
    {
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

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

        DefenceObj       defencedata = module.GetItemByIDAndPos(uiparam.itemid, uiparam.packpos, uiparam.packtype) as DefenceObj;
        DefenceTableItem defenceItem = DataManager.DefenceTable[uiparam.itemid] as DefenceTableItem;

        if (null == defencedata || null == defenceItem)
        {
            return(false);
        }

        //当前装备是否可以强化
        if (defencedata.GetStrenLv() >= defenceItem.strenLevelMax)
        {
            //弹窗.当前装备强化等级已达到最高等级,请提升装备品质
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("strenmax"));
            return(false);
        }

        //根据当前装备属性取得强化等级及消耗并显示
        int strenlv = defencedata.GetStrenLv();
        DefenceStrenProItem strenproItem = DataManager.DefenceStrenProTable[defenceItem.strenSerialNumber + strenlv] as DefenceStrenProItem;
        DefenceStrenItem    strenItem    = DataManager.DefenceStrenTable[strenlv + 1] as DefenceStrenItem;

        if (strenproItem == null || strenItem == null)
        {
            return(false);
        }

        uint x = module.GetProceeds(ProceedsType.Money_Game);

        if (module.GetProceeds(ProceedsType.Money_Game) < strenItem.money * strenproItem.ratio)
        {
            //金币不足,弹窗:提示玩家直接购买
            //TODO
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("money_game_shortage"));
            return(false);
        }

        StrenDefenceActionParam param = new StrenDefenceActionParam();

        param.DefenceId = uiparam.itemid;
        param.PackType  = (int)uiparam.packtype;
        param.pos       = uiparam.packpos;
        param.strenten  = false;

        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_DEFENCE_STEN, param);
        return(true);
    }
Beispiel #6
0
    public bool RisingStar(DefenceUIParam uiparam)
    {
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

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

        DefenceObj       defencedata = module.GetItemByIDAndPos(uiparam.itemid, uiparam.packpos, uiparam.packtype) as DefenceObj;
        DefenceTableItem defenceItem = DataManager.DefenceTable[uiparam.itemid] as DefenceTableItem;

        if (null == defencedata || null == defenceItem)
        {
            return(false);
        }


        //判断装备是否可以升星
        int starslv = defencedata.GetStarsLv();

        if (starslv >= defenceItem.starsLevelMax)
        {
            //弹窗.当前装备星阶已达到最高等级,请提升装备品质
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("rising_stars_max"));
            return(false);
        }

        DefenceStarsItem    starsitem    = DataManager.DefenceStarsTable[starslv + 1] as DefenceStarsItem;
        DefenceStarsProItem starsproitem = DataManager.DefenceStarsProTable[defenceItem.starsSerialNumber + starslv] as DefenceStarsProItem;

        //判断升星石是否足够
        if (module.GetItemNumByID(starsitem.starsstoneId, PackageType.Pack_Bag) < starsitem.cstarsstone * starsproitem.scale)
        {
            //升星石不足,弹窗:提示玩家直接购买
            //TODO
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("rising_stones_need"));
            return(false);
        }

        RisingStarsActionParam param = new RisingStarsActionParam();

        param.DefenceId = uiparam.itemid;
        param.PackType  = (int)uiparam.packtype;
        param.pos       = uiparam.packpos;
        param.riseten   = false;

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

        return(true);
    }
Beispiel #7
0
    public void StoneInlay(DefenceUIParam uiparam)
    {
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (null == module)
        {
            return;
        }

        DefenceObj     defencedata = module.GetItemByIDAndPos(uiparam.itemid, uiparam.packpos, uiparam.packtype) as DefenceObj;
        StoneTableItem stoneitem   = DataManager.StoneTable[uiparam.stoneid] as StoneTableItem;

        if (null == defencedata || null == stoneitem)
        {
            PopTipManager.Instance.AddNewTip("请选择宝石");
            return;
        }

        List <Message.stone_info> stoneinfo = defencedata.GetStoneInfo();

        for (int i = 0; i < stoneinfo.Count; ++i)
        {
            StoneTableItem itemsss = DataManager.StoneTable[stoneinfo[i].stoneid] as StoneTableItem;
            if (null == itemsss)
            {
                continue;
            }
            if (itemsss.type == stoneitem.type)
            {
                //弹窗,不能镶嵌相同种类的宝石
                PopTipManager.Instance.AddNewTip(StringHelper.GetString("not_inlay_same_type"));
                return;
            }
        }

        StoneInlayActionParam param = new StoneInlayActionParam();

        param.DefenceId = uiparam.itemid;
        param.stoneId   = uiparam.stoneid;
        param.PackType  = (int)uiparam.packtype;
        param.pos       = uiparam.packpos;
        param.stonepos  = uiparam.stonepos;

        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_DEFENCE_STONE_INLAY, param);
    }
Beispiel #8
0
    public void StoneUnInlay(DefenceUIParam uiparam)
    {
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (null == module)
        {
            return;
        }

        DefenceObj     defencedata = module.GetItemByIDAndPos(uiparam.itemid, uiparam.packpos, uiparam.packtype) as DefenceObj;
        StoneTableItem stoneitem   = DataManager.StoneTable[uiparam.stoneid] as StoneTableItem;
        PackageManager pack        = module.GetPackManager();

        if (null == defencedata || null == stoneitem || null == pack)
        {
            return;
        }


        // 判读Bag是否已满
        if (pack.GetPackMaxVaildSize(PackageType.Pack_Gem) >= pack.GetPackMaxSize(PackageType.Pack_Gem) && pack.GetNumByID(uiparam.stoneid, PackageType.Pack_Gem) >= stoneitem.maxFurl)
        {
            //弹窗:Bag已满
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("bag_full"));
            return;
        }

        StoneUnInlayActionParam param = new StoneUnInlayActionParam();

        param.DefenceId = uiparam.itemid;
        param.stoneId   = uiparam.stoneid;
        param.PackType  = (int)uiparam.packtype;
        param.pos       = uiparam.packpos;
        param.stonepos  = uiparam.stonepos;

        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_DEFENCE_STONE_UNINLAY, param);
    }
    private void SetDefenceLabel(PlayerDataModule module)
    {
        DefenceObj defencedata = module.GetItemByIDAndPos(mParam.itemid, mParam.packpos, mParam.packtype) as DefenceObj;

        if (null == defencedata)
        {
            return;
        }
        string ss = string.Format(StringHelper.GetString("defence_sale_money_count"), defencedata.GetSaleMoney());

        if (defencedata.GetSaleStars() > 0)
        {
            ss += "," + string.Format(StringHelper.GetString("defence_sale_starscout"), defencedata.GetSaleStars());
        }
        if (defencedata.GetSaleStones() > 0)
        {
            ss += "," + string.Format(StringHelper.GetString("defence_sale_stonescout"), defencedata.GetSaleStones());
        }
        ss += ".";

        DefenceTableItem item = DataManager.DefenceTable[mParam.itemid] as DefenceTableItem;

        if (null == item)
        {
            return;
        }
        ConfigTableItem configitem = DataManager.ConfigTable[item.quality] as ConfigTableItem;

        if (null == configitem)
        {
            return;
        }

        ss          += string.Format(StringHelper.GetString("is_sale"), "[" + configitem.value + "]" + item.name);
        mLabel1.text = ss;
    }
Beispiel #10
0
    private void InitUI()
    {
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (module == null)
        {
            return;
        }

        DefenceObj       defencedata    = module.GetItemByIDAndPos(uiparam.itemid, uiparam.packpos, uiparam.packtype) as DefenceObj;
        DefenceTableItem defenceItemold = DataManager.DefenceTable[uiparam.itemid] as DefenceTableItem;

        if (null == defencedata || null == defenceItemold)
        {
            return;
        }

        DefenceCombItem combItem = DataManager.DefenceCombTable[defenceItemold.combId] as DefenceCombItem;

        if (null == combItem)
        {
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("promote_max"));
            return;
        }

        DefenceTableItem defenceitempromote = DataManager.DefenceTable[combItem.defenceproducedId] as DefenceTableItem;

        //打开二级界面,显示需要的材料,玩家拥有的材料,装备升阶需要的等级
        NormalItemTableItem normalitem = DataManager.NormalItemTable[combItem.item1] as NormalItemTableItem;

        if (null == normalitem)
        {
            return;
        }
        UIAtlasHelper.SetSpriteImage(mItem1pic, normalitem.picname);
        mItem1name.text = normalitem.name + "X" + combItem.num1;
        normalitem      = DataManager.NormalItemTable[combItem.item2] as NormalItemTableItem;
        UIAtlasHelper.SetSpriteImage(mItem2pic, normalitem.picname);
        mItem2name.text = normalitem.name + "X" + combItem.num2;

        uint playerhascitem1 = module.GetItemNumByID(combItem.item1, PackageType.Pack_Bag);
        uint playerhascitem2 = module.GetItemNumByID(combItem.item2, PackageType.Pack_Bag);

        if (combItem.num1 > playerhascitem1)
        {
            mHasitem1.text = "[E92224]";
        }
        else
        {
            mHasitem1.text = "[FAFDF4]";
        }

        if (combItem.num2 > playerhascitem2)
        {
            mHasitem2.text = "[E92224]";
        }
        else
        {
            mHasitem2.text = "[FAFDF4]";
        }
        mHasitem1.text += playerhascitem1.ToString();
        mHasitem2.text += playerhascitem2.ToString();

        if (defenceitempromote.uselevel > module.GetLevel())
        {
            mLvhint.text = "[E92224]";
        }
        else
        {
            mLvhint.text = "[FAFDF4]";
        }
        mLvhint.text += StringHelper.GetString("defencepromotehint").Replace("?", defenceitempromote.uselevel.ToString());
    }
Beispiel #11
0
    public void StoneComb(DefenceUIParam uiparam)
    {
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (null == module)
        {
            return;
        }

        StoneTableItem stoneitem = null;

        if (uiparam.isequiped)
        {
            DefenceObj defencedata = module.GetItemByIDAndPos(uiparam.itemid, uiparam.packpos, uiparam.packtype) as DefenceObj;

            if (null == defencedata)
            {
                return;
            }

            stoneitem = DataManager.StoneTable[defencedata.GetStoneInfoByPos(uiparam.stonepos).stoneid] as StoneTableItem;
        }
        else
        {
            stoneitem = DataManager.StoneTable[uiparam.stoneid] as StoneTableItem;
        }

        if (null == stoneitem)
        {
            return;
        }

        if (-1 == stoneitem.combid)
        {
            //宝石已达最高等级
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("stonesmax"));
            return;
        }

        DefenceCombItem combItem = DataManager.DefenceCombTable[stoneitem.combid] as DefenceCombItem;

        if (null == combItem)
        {
            //弹窗:宝石无法合成
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("stone_comb_error"));
            return;
        }

        if (module.GetProceeds(ProceedsType.Money_Game) < combItem.moenyused)
        {
            //弹窗:玩家金币不足
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("money_game_shortage"));
            return;
        }

        uint playerhascitem = module.GetItemNumByID(combItem.item1, PackageType.Pack_Gem);

        if (uiparam.isequiped)
        {
            playerhascitem += 1;
        }
        if (playerhascitem < combItem.num1)
        {
            ////弹窗:道具【名称】【个数】不足
            stoneitem = DataManager.StoneTable[combItem.item1]  as StoneTableItem;
            if (null == stoneitem)
            {
                GameDebug.LogError("stone.txt中没有此宝石 id = " + combItem.item1);
                return;
            }
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("item_need").Replace("?", stoneitem.name));
            return;
        }

        StoneCombActionParam param = new StoneCombActionParam();

        param.DefenceId = uiparam.itemid;
        param.stoneId   = stoneitem.id;
        param.PackType  = (int)uiparam.packtype;
        param.pos       = uiparam.packpos;
        param.stonepos  = uiparam.stonepos;
        param.isequiped = uiparam.isequiped;
        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_DEFENCE_STONE_COMB, param);
    }