Beispiel #1
0
    override public bool BuildProperty(PropertyOperation operation)
    {
        DefenceTableItem itemdefence = GetDeRes();

        operation.AddPro((int)PropertyTypeEnum.PropertyTypeMaxHP, prolifestren == -1 ? 0 : prolifestren + itemdefence.basePropertyLife);
        operation.AddPro((int)PropertyTypeEnum.PropertyTypeMaxHP, prolifestars == -1 ? 0 : prolifestars);

        operation.AddPro((int)PropertyTypeEnum.PropertyTypeDamage, prodamagestren == -1 ? 0 : prodamagestren + itemdefence.basePropertyDamage);
        operation.AddPro((int)PropertyTypeEnum.PropertyTypeDamage, prodamagestars == -1 ? 0 : prodamagestars);

        operation.AddPro((int)PropertyTypeEnum.PropertyTypeCrticalLV, procritstren == -1 ? 0 : procritstren + itemdefence.basePropertyCrit);
        operation.AddPro((int)PropertyTypeEnum.PropertyTypeCrticalLV, procritstars == -1 ? 0 : procritstars);

        operation.AddPro((int)PropertyTypeEnum.PropertyTypeDefance, prodefencestren == -1 ? 0 : prodefencestren + itemdefence.basePropertyDefence);
        operation.AddPro((int)PropertyTypeEnum.PropertyTypeDefance, prodefencestars == -1 ? 0 : prodefencestars);

        for (int i = 0; i < stoneinfo.Count; ++i)
        {
            StoneTableItem item = DataManager.StoneTable[stoneinfo[i].stoneid] as StoneTableItem;
            if (null == item)
            {
                continue;
            }
            operation.AddPro(item.proid, item.provalue);
        }
        return(false);
    }
Beispiel #2
0
    //服务器数据信息,临时数据
    override public bool Init(ItemObjInit initData)
    {
        if (!base.Init(initData))
        {
            return(false);
        }

        DefenceObjInit defenceInit = initData as DefenceObjInit;

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

        mStrenlevel = defenceInit.mStrenlevel;
        mStarslevel = defenceInit.mStarslevel;

        for (int i = 0; i < defenceInit.stoneinfo.Count; ++i)
        {
            stoneinfo.Add(defenceInit.stoneinfo[i]);
            StoneTableItem item = DataManager.StoneTable[stoneinfo[i].stoneid] as StoneTableItem;
            if (null == item)
            {
                continue;
            }
            //+宝石战力
            fightvalue += item.score;
        }
        salestones = stoneinfo.Count;
        SetProperty();
        return(true);
    }
Beispiel #3
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 #4
0
    public string GetStonePic()
    {
        int mMaxstoneid = -1;

        for (int i = 0; i < stoneinfo.Count; ++i)
        {
            if (stoneinfo[i].stoneid > mMaxstoneid)
            {
                mMaxstoneid = stoneinfo[i].stoneid;
            }
        }

        StoneTableItem item = DataManager.StoneTable[mMaxstoneid] as StoneTableItem;

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

        return(item.picname);
    }
Beispiel #5
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);
    }
Beispiel #6
0
    private void InitStoneItemInfo()
    {
        StoneTableItem item = DataManager.StoneTable[uiparam.itemid] as StoneTableItem;

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

        if (null == configitem)
        {
            return;
        }
        mItemName.text   = "[" + configitem.value + "]" + item.name;
        mItemType.text   = "物品类型";
        mItemUseLv.text  = item.desc1;
        mItemDesc.text   = item.desc;
        mItemAbtain.text = item.desc0;
        mSaleMoney.text  = item.gameprice.ToString();
        SetIcon(mItemPic, item.picname);
        SetIcon(mItemPic1, item.picname2);
        mItemLb.text = item.picname3;
    }
    private bool StoneCombInfoInit(int resid)
    {
        StoneTableItem stoneitem = DataManager.StoneTable[resid] as StoneTableItem;

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

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

        if (null == combitem || 0 == combitem.num1)
        {
            GameDebug.LogError("defencecomb.txt中没有此合成序列 id = " + stoneitem.combid);
            return(false);
        }

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

        if (null == module)
        {
            return(false);
        }
        PackageManager pack = module.GetPackManager();

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

        stoneitem = DataManager.StoneTable[combitem.defenceproducedId] as StoneTableItem;
        if (null == stoneitem)
        {
            GameDebug.LogError("stones.txt中没有此宝石 id = " + combitem.defenceproducedId);
            return(false);
        }

        PropertyTableItem proitem = DataManager.PropertyTable[stoneitem.proid] as PropertyTableItem;

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

        UIAtlasHelper.SetSpriteImage(mStoneDemandPic, stoneitem.picname);
        mStoneDemandName.text = stoneitem.name;// + " Lv" + stoneitem.level;
        mStoneDemandPro.text  = proitem.name + " " + stoneitem.provalue;
        if (module.GetProceeds(ProceedsType.Money_Game) < combitem.moenyused)
        {
            mStoneDemandMoney.text = "[E92224]";
        }
        else
        {
            mStoneDemandMoney.text = "[3EFF00]";
        }
        mStoneDemandMoney.text += "金币 X" + combitem.moenyused;

        if (module.GetItemNumByID(combitem.item1, PackageType.Pack_Gem) < combitem.num1)
        {
            mStoneDemandNum.text = "[E92224]";
        }
        else
        {
            mStoneDemandNum.text = "[3EFF00]";
        }
        mStoneDemandNum.text += stoneitem.name /* + " Lv" + stoneitem.level*/ + " X" + combitem.num1;
        return(true);
    }
    private void OnRespondCombHandler(EventBase evt)
    {
        UILabel        stonetext  = null;
        UILabel        stonepromt = null;
        StoneTableItem stoneitem  = DataManager.StoneTable[mParam.stoneid] as StoneTableItem;

        if (null == stoneitem)
        {
            GameDebug.LogError("stones.txt中没有此宝石 id = " + mParam.stoneid);
            return;
        }
        DefenceCombItem combitem = DataManager.DefenceCombTable[stoneitem.combid] as DefenceCombItem;

        if (null == combitem || 0 == combitem.num1)
        {
            return;
        }
        for (int i = 0; i < 5; ++i)
        {
            for (int j = 0; j < 7; ++j)
            {
                if (mDicBtn[i][j].name.Equals("Sprite" + mParam.stoneid))
                {
                    stonetext = dic[i][j];
                }
                else if (mDicBtn[i][j].name.Equals("Sprite" + combitem.defenceproducedId))
                {
                    stonepromt = dic[i][j];
                }

                if (null != stonetext && null != stonepromt)
                {
                    break;
                }
            }
        }
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (null == module)
        {
            SetStoneActive(stonetext);
            return;
        }
        PackageManager pack = module.GetPackManager();

        if (null == pack)
        {
            SetStoneActive(stonetext);
            return;
        }

        uint num = pack.GetNumByID(combitem.item1, PackageType.Pack_Gem) / (uint)combitem.num1;

        if (0 != num)
        {
            stonetext.text = "【可合成数量 " + num + " 】";
        }
        else
        {
            SetStoneActive(stonetext);
        }

        stoneitem = DataManager.StoneTable[combitem.defenceproducedId] as StoneTableItem;
        if (null == stoneitem)
        {
            GameDebug.LogError("stones.txt中没有此宝石 id = " + combitem.defenceproducedId);
            return;
        }

        combitem = DataManager.DefenceCombTable[stoneitem.combid] as DefenceCombItem;
        if (null == combitem)
        {
            GameDebug.LogError("defencecomb.txt中没有此合成序列 id = " + stoneitem.combid);
            return;
        }
        num = pack.GetNumByID(combitem.item1, PackageType.Pack_Gem) / (uint)combitem.num1;
        if (0 != num)
        {
            stonepromt.text = "【可合成数量 " + num + " 】";
        }

        StoneCombInfoInit(mParam.stoneid);
        onCombSucess();
    }
Beispiel #9
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);
    }