Exemple #1
0
    public int CompareBagEquip(XEquip xe1, XEquip xe2)
    {
        DEquip equipDB1 = ReadCfgEquip.GetDataById(xe1.Id);
        DEquip equipDB2 = ReadCfgEquip.GetDataById(xe2.Id);

        if (equipDB1.Pos != equipDB2.Pos)
        {
            return(equipDB2.Pos - equipDB1.Pos);
        }
        if (xe1.StrengthenLevel != xe2.StarLevel)
        {
            return(xe2.StrengthenLevel - xe1.StrengthenLevel);
        }
        if (xe1.AdvanceLevel != xe2.AdvanceLevel)
        {
            return(xe2.AdvanceLevel - xe2.AdvanceLevel);
        }
        if (xe1.StarLevel != xe2.StarLevel)
        {
            return(xe2.StarLevel - xe1.StarLevel);
        }
        if (equipDB1.Id != equipDB2.Id)
        {
            return(equipDB2.Id - equipDB1.Id);
        }
        return(xe1.Instance - xe2.Instance);
    }
Exemple #2
0
    public int CompareBagItem(XItem x1, XItem x2)
    {
        DItem itemDB1 = ReadCfgItem.GetDataById(x1.Id);
        DItem itemDB2 = ReadCfgItem.GetDataById(x2.Id);

        if (itemDB1.ItemType != itemDB2.ItemType)
        {
            return(itemDB1.ItemType - itemDB2.ItemType);
        }
        if (itemDB1.Quality != itemDB2.Quality)
        {
            return(itemDB2.Quality - itemDB1.Quality);
        }
        if (itemDB1.ItemType == EItemType.EQUIP)
        {
            XEquip xe1 = DataDBSEquip.GetDataById(x1.Instance);
            XEquip xe2 = DataDBSEquip.GetDataById(x2.Instance);
            return(CompareBagEquip(xe1, xe2));
        }
        if (itemDB1.Id != itemDB2.Id)
        {
            return(itemDB2.Id - itemDB1.Id);
        }
        return(x1.Instance - x2.Instance);
    }
Exemple #3
0
    private void OnAck_AdvanceEquip(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        AckAdvanceEquip        ack = Serializer.Deserialize <AckAdvanceEquip>(ms);

        XEquip       equip     = ack.TarEquip;
        List <XItem> list      = ack.UseItems;
        DEquip       equipDB   = ReadCfgEquip.GetDataById(equip.Id);
        int          advanceID = equipDB.Quality * 1000 + equip.AdvanceLevel + 1;

        DEquipAdvanceCost db = ReadCfgEquipAdvanceCost.GetDataById(advanceID);

        GTDataManager.Instance.UseMoney(db.CostMoneyId, db.CostMoneyNum);
        GTDataManager.Instance.UseItemById(db.CostItemId, db.CostItemNum);
        if (list != null)
        {
            for (int i = 0; i < list.Count; i++)
            {
                GTDataManager.Instance.DelBagEquip(list[i].Pos);
            }
        }
        equip.AdvanceLevel++;
        DataDBSEquip.Update(equip.Instance, equip);

        CharacterManager.Instance.SyncMainPlayerData(ESyncDataType.TYPE_BASEATTR);

        GTEventCenter.FireEvent(GTEventID.TYPE_ADVANCE_EQUIP);
        GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE);
    }
Exemple #4
0
    public List <XItem> GetItemListToOneKeyStrengthen(XEquip equip)
    {
        List <XItem>      list    = new List <XItem>();
        DEquip            equipDB = ReadCfgEquip.GetDataById(equip.Id);
        DEquipStrengLevel levelDB = ReadCfgEquipStrengLevel.GetDataById(equipDB.Quality * 1000 + equip.StrengthenLevel + 1);
        int moneyNum = GTDataManager.Instance.GetItemCountById(DEquip.EQUIP_STRENGTHEN_MONEY_ID_2);

        if (moneyNum > 0)
        {
            int   needNum = levelDB.RequireExp - equip.StrengthenExp;
            int   addNum  = moneyNum >= needNum ? needNum : moneyNum;
            XItem item    = new XItem();
            item.Id      = DEquip.EQUIP_STRENGTHEN_MONEY_ID_2;
            item.PosType = (int)EPosType.RoleMoney;
            item.Num     = addNum;
            list.Add(item);
            return(list);
        }
        List <XItem> allEquipMatList = GetAllEquipMatList();

        for (int i = 0; i < list.Count; i++)
        {
            if (list.Count >= 6)
            {
                break;
            }
            if (IsCanAsMatToAutoAdd(allEquipMatList[i]))
            {
                XItem item = allEquipMatList[i];
                list.Add(item);
            }
        }
        return(list);
    }
Exemple #5
0
    public bool IsCanAsMatToAutoAdd(XItem item)
    {
        XEquip equip   = DataDBSEquip.GetDataById(item.Instance);
        DEquip equipDB = ReadCfgEquip.GetDataById(equip.Id);

        return(equipDB.Quality < 3);
    }
Exemple #6
0
    public int CompareStrengthMat(XItem x1, XItem x2)
    {
        XEquip e1  = DataDBSEquip.GetDataById(x1.Instance);
        XEquip e2  = DataDBSEquip.GetDataById(x2.Instance);
        DEquip db1 = ReadCfgEquip.GetDataById(e1.Id);
        DEquip db2 = ReadCfgEquip.GetDataById(e2.Id);

        if (db1.Quality != db2.Quality)
        {
            return(db1.Quality - db2.Quality);
        }
        if (e1.StarLevel != e2.StarLevel)
        {
            return(e1.StarLevel - e2.StarLevel);
        }
        if (e1.AdvanceLevel != e2.AdvanceLevel)
        {
            return(e1.AdvanceLevel - e2.AdvanceLevel);
        }
        if (e1.StrengthenExp != e2.StrengthenExp)
        {
            return(e1.StrengthenExp - e2.StrengthenExp);
        }
        return(x2.Pos - x1.Pos);
    }
Exemple #7
0
    public int GetStrengthenExpByMatList(List <XItem> list)
    {
        if (list == null)
        {
            return(0);
        }
        int exp = 0;

        for (int i = 0; i < list.Count; i++)
        {
            if (list[i].PosType == (int)EPosType.RoleMoney)
            {
                exp += list[i].Num;
            }
            else
            {
                XItem  mat     = list[i];
                DEquip equipDB = ReadCfgEquip.GetDataById(mat.Id);
                XEquip equip   = DataDBSEquip.GetDataById(mat.Instance);
                exp += equipDB.DeComposeNum2;
                exp += equip.StrengthenExp;
                int lv = equip.StrengthenLevel;
                for (int j = lv; j > 0; j--)
                {
                    DEquipStrengLevel db = ReadCfgEquipStrengLevel.GetDataById(equipDB.Quality * 1000 + j);
                    exp += db.RequireExp;
                }
            }
        }
        return(exp);
    }
Exemple #8
0
    static void CalcAllEquipPropertys(Dictionary <EAttr, int> dict)
    {
        Dictionary <int, XItem> dressEquips = DataDBSDressEquip.Dict;

        Dictionary <int, XItem> .Enumerator em1 = dressEquips.GetEnumerator();
        while (em1.MoveNext())
        {
            if (em1.Current.Value.Instance == 0)
            {
                continue;
            }
            int instanceID = em1.Current.Value.Instance;
            if (!DataDBSEquip.ContainsKey(instanceID))
            {
                continue;
            }
            XEquip equip = DataDBSEquip.GetDataById(instanceID);
            Dictionary <EAttr, int> .Enumerator em2 = GetPropertys(equip).GetEnumerator();
            while (em2.MoveNext())
            {
                dict[em2.Current.Key] += em2.Current.Value;
            }
            em2.Dispose();
        }
        em1.Dispose();
    }
Exemple #9
0
    public void ShowViewByPos(EPosType posType, int pos)
    {
        this.mPos     = pos;
        this.mPosType = posType;
        ShowDress(posType == EPosType.RoleEquip);
        XEquip equip = GTDataManager.Instance.GetEquipDataByPos(mPosType, mPos);

        if (equip == null)
        {
            return;
        }
        int itemID = equip.Id;

        ShowBaseView(itemID);
        equipFightValue.text   = GTTools.Format("战斗力 {0}", GTAttrHelper.GetFightValue(equip));
        equipAdvanceLevel.text = MLEquip.Instance.GetEquipAdvanceNameByLevel(equip.AdvanceLevel);
        Dictionary <EAttr, int> propertys = GTAttrHelper.GetPropertys(equip);

        title3.text = GTTools.Format("装备星级 {0}", equip.StarLevel);
        title2.text = GTTools.Format("进阶等级 {0}", equip.AdvanceLevel);
        title1.text = GTTools.Format("强化等级 {0}", equip.StrengthenLevel);
        GTItemHelper.ShowPropertyText(this.equipPropertys, propertys, true);
        GTItemHelper.ShowEquipStrengthText(text1, itemID, equip.StrengthenLevel);
        GTItemHelper.ShowEquipAdvanceText(text2, itemID, equip.AdvanceLevel);
        GTItemHelper.ShowEquipStarText(text3, itemID, equip.StarLevel);
    }
Exemple #10
0
    public static int GetFightValue(XEquip equip)
    {
        Dictionary <EAttr, int> attrValues = GetPropertys(equip);
        int value = GetFightValue(attrValues);

        return(value);
    }
Exemple #11
0
    private void OnStrengthenEquipClick(GameObject go)
    {
        GTAudioManager.Instance.PlayEffectAudio(GTAudioKey.SOUND_UI_CLICK);
        XEquip equip = GTDataManager.Instance.GetEquipDataByPos(mPosType, mPos);

        EquipService.Instance.TryStrengthEquip(equip, mStrengthenCostItems);
    }
Exemple #12
0
    public void AddNewEquip(int instanceId, int id)
    {
        int newPos = GetNewPos(EBagType.ITEM);

        if (newPos == 0)
        {
            return;
        }
        XItem item = new XItem();

        item.Instance = instanceId;
        item.Pos      = newPos;
        item.Id       = id;
        item.Num      = 1;
        item.PosType  = (int)EPosType.BagItem;
        DataBagItem.Insert(newPos, item);

        XEquip equip = new XEquip();

        equip.Instance        = instanceId;
        equip.Id              = id;
        equip.StarLevel       = 0;
        equip.StrengthenLevel = 0;
        equip.AdvanceLevel    = 0;
        equip.StrengthenExp   = 0;
        DataEquip.Insert(instanceId, equip);
    }
Exemple #13
0
    public void TryUpStarEquip(XEquip equip)
    {
        if (EquipModule.Instance.IsFullStarLevel(equip))
        {
            GTItemHelper.ShowTip("装备星级已满");
            return;
        }
        DEquip     equipDB = ReadCfgEquip.GetDataById(equip.Id);
        int        starID  = equipDB.Quality * 1000 + equip.StarLevel + 1;
        DEquipStar db      = ReadCfgEquipStar.GetDataById(starID);

        if (!GTItemHelper.CheckItemEnongh(db.CostMoneyId, db.CostMoneyNum))
        {
            return;
        }
        if (!GTItemHelper.CheckItemEnongh(db.CostItemId, db.CostItemNum))
        {
            return;
        }

        ReqUpStarEquip req = new ReqUpStarEquip();

        req.TarEquip = equip;
        NetworkManager.Instance.Send <ReqUpStarEquip>(MessageID.MSG_REQ_UPSTAR_EQUIP, req);
    }
Exemple #14
0
    private void OnUpStarEquipClick(GameObject go)
    {
        GTAudioManager.Instance.PlayEffectAudio(GTAudioKey.SOUND_UI_CLICK);
        XEquip equip = GTDataManager.Instance.GetEquipDataByPos(mPosType, mPos);

        EquipService.Instance.TryUpStarEquip(equip);
    }
Exemple #15
0
    private void OnAdvanceEquipClick(GameObject go)
    {
        GTAudioManager.Instance.PlayEffectAudio(GTAudioKey.SOUND_UI_CLICK);
        XEquip equip = GTDataManager.Instance.GetEquipDataByPos(mPosType, mPos);

        GTNetworkSend.Instance.TryAdvanceEquip(equip);
    }
Exemple #16
0
    private void ShowAdvanceView()
    {
        XEquip equip = GTDataManager.Instance.GetEquipDataByPos(mPosType, mPos);

        if (equip == null)
        {
            return;
        }
        int itemID = equip.Id;

        if (EquipModule.Instance.IsFullStarLevel(equip))
        {
            return;
        }
        GTItemHelper.ShowItemTexture(mEquipAdvance.nowEquipTexture, itemID);
        GTItemHelper.ShowItemQuality(mEquipAdvance.nowEquipQuality, itemID);
        GTItemHelper.ShowItemName(mEquipAdvance.nowEquipName, itemID);

        GTItemHelper.ShowItemTexture(mEquipAdvance.nexEquipTexture, itemID);
        GTItemHelper.ShowItemQuality(mEquipAdvance.nexEquipQuality, itemID);
        GTItemHelper.ShowItemName(mEquipAdvance.nexEquipName, itemID);

        Dictionary <EAttr, int> nowPropertys = AttrHelper.GetPropertys(equip);
        XEquip nexEquip = new XEquip();

        GTTools.Copy(nexEquip, equip);
        nexEquip.AdvanceLevel++;
        Dictionary <EAttr, int> nexPropertys = AttrHelper.GetPropertys(nexEquip);

        GTItemHelper.ShowPropertyText(mEquipAdvance.nowEquipPropertys, nowPropertys, false);
        GTItemHelper.ShowPropertyText(mEquipAdvance.nexEquipPropertys, nexPropertys, false);
        mEquipAdvance.nowEquipFightValue.text = AttrHelper.GetFightValue(nowPropertys).ToString();
        mEquipAdvance.nexEquipFightValue.text = AttrHelper.GetFightValue(nexPropertys).ToString();

        DEquip            equipDB = ReadCfgEquip.GetDataById(itemID);
        DEquipAdvanceCost db      = ReadCfgEquipAdvanceCost.GetDataById(equipDB.Quality * 1000 + equip.AdvanceLevel + 1);
        int hasItemNum            = GTDataManager.Instance.GetItemCountById(db.CostItemId);

        GTItemHelper.ShowItemTexture(mEquipAdvance.costItemTexture, db.CostItemId);
        GTItemHelper.ShowPriceText(mEquipAdvance.costItemNum, hasItemNum, db.CostItemNum);
        GTItemHelper.ShowItemQuality(mEquipAdvance.costItemQuality, itemID);
        if (db.CostEquipNum > 0)
        {
            mEquipAdvance.costEquipBtn.SetActive(true);
            GTItemHelper.ShowItemTexture(mEquipAdvance.costEquipTexture, itemID);
            GTItemHelper.ShowItemQuality(mEquipAdvance.costEquipQuality, itemID);
            int hasSameEquipNum = EquipModule.Instance.GetBagSameEquipList(equip).Count;
            GTItemHelper.ShowPriceText(mEquipAdvance.costEquipNum, hasSameEquipNum, db.CostEquipNum);
        }
        else
        {
            mEquipAdvance.costEquipBtn.SetActive(false);
        }
        GTItemHelper.ShowItemTexture(mEquipAdvance.costMoneyTexture, db.CostMoneyId);
        GTItemHelper.ShowItemNum(mEquipAdvance.costMoneyNum, db.CostMoneyNum);
        GTItemHelper.ShowEquipAdvanceText(mEquipAdvance.advanceText, itemID, equip.AdvanceLevel);
    }
Exemple #17
0
    private void OnRecvDressEquip(int srcPos, int tarPos)
    {
        ShowCellView(tarPos);
        if (mAvatar == null)
        {
            return;
        }
        XEquip dressEquip = GTDataManager.Instance.GetEquipDataByPos(EPosType.RoleEquip, tarPos);

        mAvatar.ChangeAvatar(tarPos, dressEquip == null ? 0 : dressEquip.Id);
    }
Exemple #18
0
    public static XEquip     CreateEquip(int id, int instance)
    {
        XEquip tab = new XEquip();

        tab.Id              = id;
        tab.Instance        = instance;
        tab.StrengthenLevel = 0;
        tab.StarLevel       = 0;
        tab.StrengthenExp   = 0;
        tab.AdvanceLevel    = 0;
        return(tab);
    }
Exemple #19
0
    public XEquip GetDressEquipByPos(int pos)
    {
        if (!DressEquips.ContainsKey(pos))
        {
            return(null);
        }
        XItem  item  = DressEquips[pos];
        XEquip equip = null;

        Equips.TryGetValue(item.Instance, out equip);
        return(equip);
    }
Exemple #20
0
    public XEquip Clone()
    {
        XEquip e = new XEquip();

        e.Id              = this.Id;
        e.Instance        = this.Instance;
        e.StarLevel       = this.StarLevel;
        e.AdvanceLevel    = this.AdvanceLevel;
        e.StrengthenLevel = this.StrengthenLevel;
        e.StrengthenExp   = this.StrengthenExp;
        return(e);
    }
Exemple #21
0
    public static Dictionary <EAttr, int> GetPropertys(XEquip equip)
    {
        Dictionary <EAttr, int> attrValues = GetEquipBasePropertys(equip.Id);

        if (equip != null)
        {
            CalCfgStrengthValuethLevel(attrValues, equip);
            CalcEquipAdvanceLevel(attrValues, equip);
            CalcEquipStarLevel(attrValues, equip);
        }
        CalcMaxAttrValue(ref attrValues);
        return(attrValues);
    }
Exemple #22
0
    private void ShowStrengthenView()
    {
        XEquip equip = GTDataManager.Instance.GetEquipDataByPos(mPosType, mPos);

        if (equip == null)
        {
            return;
        }
        if (EquipModule.Instance.IsFullStrengthenLevel(equip) == true)
        {
            return;
        }
        int itemID = equip.Id;

        GTItemHelper.ShowItemTexture(mEquipStrengthen.equipTexture, itemID);
        GTItemHelper.ShowItemQuality(mEquipStrengthen.equipQuality, itemID);
        GTItemHelper.ShowItemName(mEquipStrengthen.equipName, itemID);

        int costEquipNum = mStrengthenCostItems.Count;

        for (int i = 0; i < mEquipStrengthen.mStrengthenItems.Count; i++)
        {
            ItemStrengthen cell = mEquipStrengthen.mStrengthenItems[i];
            if (i < costEquipNum)
            {
                XItem mat = mStrengthenCostItems[i];
                cell.Show(true);
                int id = mStrengthenCostItems[i].Id;
                GTItemHelper.ShowItemTexture(cell.itemTexture, id);
                GTItemHelper.ShowItemQuality(cell.itemQuality, id);
                GTItemHelper.ShowItemNum(cell.itemNum, mat.Num);
            }
            else
            {
                cell.Show(false);
            }
        }
        DEquip            equipDB = ReadCfgEquip.GetDataById(itemID);
        DEquipStrengLevel levelDB = ReadCfgEquipStrengLevel.GetDataById(equipDB.Quality * 1000 + equip.StrengthenLevel + 1);
        int addExpNum             = EquipModule.Instance.GetStrengthenExpByMatList(mStrengthenCostItems);

        GTItemHelper.ShowItemTexture(mEquipStrengthen.costMoneyTexture, DEquip.EQUIP_STRENGTHEN_MONEY_ID_1);
        mEquipStrengthen.costMoneyNum.text       = addExpNum.ToString();
        mEquipStrengthen.equipStrengthLevel.text = GTTools.Format("强化等级 {0}", equip.StrengthenLevel);
        GTItemHelper.ShowProgressText(mEquipStrengthen.equipStrengthExp, equip.StrengthenExp, levelDB.RequireExp);
        GTItemHelper.ShowProgressSlider(mEquipStrengthen.equipStrengthExpBar, equip.StrengthenExp, levelDB.RequireExp);
        Dictionary <EAttr, int> propertys = AttrHelper.GetPropertys(equip);

        GTItemHelper.ShowEquipStrengthText(mEquipStrengthen.strengthText, itemID, equip.StrengthenLevel);
        GTItemHelper.ShowPropertyText(mEquipStrengthen.propertyText, propertys, true);
    }
Exemple #23
0
    public XEquip GetEquipDataByPos(EPosType posType, int pos)
    {
        Dictionary <int, XItem> dict = GetItemDataByPosType(posType);
        XItem item = null;

        dict.TryGetValue(pos, out item);
        if (item == null)
        {
            return(null);
        }
        XEquip equip = null;

        DataDBSEquip.Dict.TryGetValue(item.Instance, out equip);
        return(equip);
    }
Exemple #24
0
    static void CalcEquipStarLevel(Dictionary <EAttr, int> dict, XEquip equip)
    {
        int        lv      = equip.StarLevel;
        DEquip     equipDB = ReadCfgEquip.GetDataById(equip.Id);
        DEquipStar starDB  = ReadCfgEquipStar.GetDataById(equipDB.Quality * 1000 + lv);
        float      percent = 1;

        if (starDB != null)
        {
            percent = starDB.Percent / 100f + 1;
        }
        dict[EAttr.HP] = (int)(dict[EAttr.HP] * percent);
        dict[EAttr.AP] = (int)(dict[EAttr.AP] * percent);
        dict[EAttr.DF] = (int)(dict[EAttr.DF] * percent);
    }
Exemple #25
0
    public XEquip GetXEquipByPos(EPosType posType, int pos)
    {
        Dictionary <int, XItem> dict = GetItemDataByPosType(posType);

        if (!dict.ContainsKey(pos))
        {
            return(null);
        }
        XItem  itemPos = dict[pos];
        XEquip equip   = null;

        if (Equips.ContainsKey(itemPos.Instance))
        {
            equip = Equips[itemPos.Instance];
        }
        return(equip);
    }
Exemple #26
0
    private void OnAutoToAddMatClick(GameObject go)
    {
        GTAudioManager.Instance.PlayEffectAudio(GTAudioKey.SOUND_UI_CLICK);
        if (mStrengthenCostItems.Count > 0)
        {
            return;
        }
        XEquip       equip = GTDataManager.Instance.GetEquipDataByPos(mPosType, mPos);
        List <XItem> list  = EquipModule.Instance.GetItemListToOneKeyStrengthen(equip);

        if (list.Count == 0)
        {
            GTItemHelper.ShowTip("没有蓝绿装,且没有水晶");
            return;
        }
        mStrengthenCostItems = list;
        ShowStrengthenView();
    }
Exemple #27
0
    static void CalcEquipAdvanceLevel(Dictionary <EAttr, int> dict, XEquip equip)
    {
        int           lv = equip.AdvanceLevel;
        DEquipAdvance db = ReadCfgEquipAdvance.GetDataById(equip.Id);

        for (int i = 0; i < db.Propertys.Count; i++)
        {
            if (i < lv)
            {
                KeyValuePair <EAttr, int> ep = db.Propertys[i];
                dict[ep.Key] += ep.Value;
            }
            else
            {
                break;
            }
        }
    }
Exemple #28
0
    private void OnAck_StrengthEquip(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        AckStrengthEquip       ack = Serializer.Deserialize <AckStrengthEquip>(ms);

        XEquip       equip           = ack.TarEquip;
        List <XItem> list            = ack.UseItems;
        DEquip       cfg             = ReadCfgEquip.GetDataById(equip.Id);
        int          strengthenLevel = equip.StrengthenLevel;
        int          strID           = cfg.Quality * 1000 + strengthenLevel + 1;
        int          addExpNum       = EquipModule.Instance.GetStrengthenExpByMatList(list);

        DEquipStrengLevel db = ReadCfgEquipStrengLevel.GetDataById(strID);
        int expNum           = db.RequireExp - equip.StrengthenExp;

        while (addExpNum >= expNum)
        {
            strengthenLevel++;
            db      = ReadCfgEquipStrengLevel.GetDataById(cfg.Quality * 1000 + strengthenLevel + 1);
            expNum += db.RequireExp;
        }
        equip.StrengthenLevel = strengthenLevel;
        equip.StrengthenExp   = addExpNum + db.RequireExp - expNum;

        DataDBSEquip.Update(equip.Instance, equip);
        GTDataManager.Instance.UseMoney(DEquip.EQUIP_STRENGTHEN_MONEY_ID_1, expNum);
        for (int i = 0; i < list.Count; i++)
        {
            XItem item = list[i];
            if ((EPosType)item.PosType == EPosType.RoleMoney)
            {
                GTDataManager.Instance.UseMoney(item.Id, item.Num);
            }
            else
            {
                GTDataManager.Instance.DelBagEquip(item.Pos);
            }
        }

        CharacterManager.Instance.SyncMainPlayerData(ESyncDataType.TYPE_BASEATTR);

        GTEventCenter.FireEvent(GTEventID.TYPE_STRENGTHEN_EQUIP);
        GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE);
    }
Exemple #29
0
    public void TryAdvanceEquip(XEquip equip)
    {
        if (EquipModule.Instance.IsFullAdvanceLevel(equip))
        {
            GTItemHelper.ShowTip("进阶等级已满");
            return;
        }
        DEquip            cfg       = ReadCfgEquip.GetDataById(equip.Id);
        int               advanceID = cfg.Quality * 1000 + equip.AdvanceLevel + 1;
        DEquipAdvanceCost db        = ReadCfgEquipAdvanceCost.GetDataById(advanceID);

        if (!GTItemHelper.CheckItemEnongh(db.CostMoneyId, db.CostMoneyNum))
        {
            return;
        }
        if (!GTItemHelper.CheckItemEnongh(db.CostItemId, db.CostItemNum))
        {
            return;
        }

        List <XItem> list;

        if (db.CostEquipNum > 0)
        {
            list = EquipModule.Instance.GetBagSameEquipList(equip);
            if (list.Count < db.CostEquipNum)
            {
                GTItemHelper.ShowTip("缺少同样的装备");
                return;
            }
            list.RemoveRange(db.CostEquipNum, list.Count - db.CostEquipNum);
        }
        else
        {
            list = new List <XItem>();
        }

        ReqAdvanceEquip req = new ReqAdvanceEquip();

        req.TarEquip = equip;
        req.UseItems.AddRange(list);
        NetworkManager.Instance.Send <ReqAdvanceEquip>(MessageID.MSG_REQ_ADVANCE_EQUIP, req);
    }
Exemple #30
0
    public List <XItem> GetBagSameEquipList(XEquip equip)
    {
        List <XItem> list = new List <XItem>();

        Dictionary <int, XItem> .Enumerator em = DataDBSBagItem.Dict.GetEnumerator();
        while (em.MoveNext())
        {
            XItem item   = em.Current.Value;
            DItem itemDB = ReadCfgItem.GetDataById(item.Id);
            if (itemDB.ItemType != EItemType.EQUIP)
            {
                continue;
            }
            XEquip e = DataDBSEquip.GetDataById(item.Instance);
            if (e.Id != equip.Id)
            {
                continue;
            }
            if (e.Instance == equip.Instance)
            {
                continue;
            }
            if (e.StarLevel > 0)
            {
                continue;
            }
            if (e.StrengthenLevel > 0)
            {
                continue;
            }
            if (e.StrengthenExp > 0)
            {
                continue;
            }
            if (e.AdvanceLevel > 0)
            {
                continue;
            }
            list.Add(item);
        }
        em.Dispose();
        return(list);
    }