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); }
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); } } }
//构建装备显示外形列表 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; } }
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); }
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); }
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); }
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); }
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; }
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()); }
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); }