示例#1
0
    public void StrenWeapon()
    {
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (module == null)
        {
            return;
        }

        uint lv = module.GetStrenLv();

        StrenTableItem mres = DataManager.StrenTable[(int)(lv + 1)] as StrenTableItem;

        if (mres == null)
        {//满级
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("weapon_stren_max"));
            return;
        }

        StrenTableItem sres = DataManager.StrenTable[(int)lv] as StrenTableItem;

        if (sres == null)
        {
            return;
        }

        uint stren_money = module.GetProceeds(ProceedsType.Money_Stren);

        if (stren_money < sres.cost)
        {
            PopTipManager.Instance.AddNewTip(StringHelper.GetString("gun_stren_money_shortage"));
            return;
        }

        StrenWeaponActionParam param = new StrenWeaponActionParam();

        param.StrenLv          = lv;
        param.money_stren_cost = sres.cost;

        Net.Instance.DoAction((int)Message.MESSAGE_ID.ID_MSG_WD_STREN_WEAPON, param);
    }
示例#2
0
    private void InitWeaponItemInfo()
    {
        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (null == module)
        {
            return;
        }
        WeaponObj mData = module.GetItemByID(uiparam.itemid, PackageType.Pack_Weapon) as WeaponObj;

        if (null == mData)
        {
            return;
        }
        WeaponTableItem item = DataManager.WeaponTable[uiparam.itemid] as WeaponTableItem;

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

        if (null == configitem)
        {
            return;
        }
        PromoteTableItem pres = DataManager.PromoteTable[mData.GetPromoteLv() + item.upgrade] as PromoteTableItem;

        if (pres == null)
        {
            GameDebug.LogError("进阶promote.txt表格无此ID=" + mData.GetPromoteLv());
            return;
        }
        StrenTableItem stritem = DataManager.StrenTable[module.GetStrenLv()] as StrenTableItem;

        if (null == stritem)
        {
            return;
        }

        uint lv     = module.GetStrenLv();
        int  starlv = (int)(lv / STREN_STEP);

        if (starlv > 0 && (lv % STREN_STEP) == 0)
        {
            starlv -= 1;
        }
        uint showlv = lv == 0 ? 0 : (lv % STREN_STEP == 0 ? 10 : lv % STREN_STEP);

        for (uint i = 0; i < showlv; ++i)
        {
            SetIcon(mWeaponStrList[(int)i], "common:strenth (" + (starlv + 7) + ")");
        }

        for (uint i = showlv; i < STREN_STEP; ++i)
        {
            SetIcon(mWeaponStrList[(int)i], "common:starslvback");
        }

        mWeaponName.text       = "[" + configitem.value + "]" + item.name;
        mWeaponUseLv.text      = mData.GetPromoteLv() + "阶";
        mWeaponStrLv.text      = module.GetStrenLv() + "级";
        mWeaponBaseDamage.text = pres.value.ToString();
        mWeaponStrDamage.text  = stritem.value.ToString();
        mWeaponDesc.text       = item.desc;
        mWeaponAbtain.text     = item.desc0;
        mNumLb.text            = mData.GetPromoteLv().ToString();

        //SetIcon(mWeaponPic, item.picname);
    }
示例#3
0
    //枪械属性
    public static void BuildWeaponProperty(PlayerData mainData, PropertyOperation operation)
    {
        operation.Clear();
        //主武器属性
        WeaponObj obj = mainData.mPack.GetItemByID(mainData.main_weaponId, PackageType.Pack_Weapon) as WeaponObj;

        if (null != obj)
        {
            obj.BuildProperty(operation);
        }
        //强化属性
        StrenTableItem item = DataManager.StrenTable[mainData.mStrenLv] as StrenTableItem;

        if (null == item)
        {
            GameDebug.LogError("没有此强化等级 lv = " + mainData.mStrenLv);
            return;
        }
        operation.AddPro((int)PropertyTypeEnum.PropertyTypeDamage, item.value);
        int starlv = (int)(mainData.mStrenLv / (int)STARS_RANK.MAX_STARS_RANK_NUMBER);

        if (starlv > 0 && (mainData.mStrenLv % (int)STARS_RANK.MAX_STARS_RANK_NUMBER) == 0)
        {
            starlv -= 1;
        }
        if (0 != starlv)
        {
            for (int i = 1; i <= starlv; ++i)
            {
                StrProTableItem itempro = DataManager.StrProTable[i] as StrProTableItem;
                if (null == itempro)
                {
                    GameDebug.LogError("strenthpro.txt中不存在id = " + starlv);
                    return;
                }
                if (itempro.life != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeMaxHP, itempro.life);
                }
                if (itempro.damage != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeDamage, itempro.damage);
                }
                if (itempro.crits != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeCrticalLV, itempro.crits);
                }
                if (itempro.defence != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeDefance, itempro.defence);
                }
                if (itempro.energy != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeMaxMana, itempro.energy);
                }
            }
        }
        //配件属性
        FittingsData[] mFittings = mainData.mFittings;
        WeaponModule   module    = ModuleManager.Instance.FindModule <WeaponModule>();

        if (null == module)
        {
            return;
        }
        for (int i = 0; i < (int)FittingsType.MAX_FITTGINS; ++i)
        {
            FittingsTableItem fittingsitem = DataManager.FittingsTable[mFittings[i].GetId()] as FittingsTableItem;
            if (null == fittingsitem)
            {
                break;
            }
            for (int j = 0; j < (int)FittingsType.MAX_PROPERTY; ++j)
            {
                int min = 0;
                int max = 1;
                if (!module.GetFittMinMax(mFittings[i].GetId(), mFittings[i].GetProIdByPos(j), ref min, ref max))
                {
                    continue;
                }

                operation.AddPro(mFittings[i].GetProIdByPos(j), mFittings[i].GetProValueByPos(j));
            }
        }
    }