示例#1
0
        /// <summary>
        /// 计算器灵的属性加成
        /// activeCount 激活的升华属性数量
        /// </summary>
        public static void ComputeAttribute(GoodsGodEquip goods, uint activeCount, ActorAttribute attr)
        {
            if (attr == null || goods == null)
            {
                return;
            }

            foreach (var baseAttr in goods.BasicAttrs)
            {
                attr.Add(baseAttr.Value.Id, baseAttr.Value.Value);
            }

            for (var i = 0; i < goods.ExtraAttrs.Count; i++)
            {
                if (i >= activeCount)
                {
                    break;
                }
                var extraAttr = goods.ExtraAttrs[i];
                if (extraAttr.Id > 0)
                {
                    attr.Add(extraAttr.Data.SubAttrId, extraAttr.Values[0]);
                }
            }
        }
示例#2
0
        public static GoodsGodEquip GetBestGoodsGodEquip()
        {
            if (SysConfigManager.Instance.CheckSysHasOpened(GameConst.SYS_OPEN_GOD_EQUIP, false) == false)
            {
                return(null);
            }

            List <uint> posList = GetAllOpenPos();

            if (posList != null)
            {
                for (var i = 0; i < posList.Count; i++)
                {
                    uint          pos     = posList[i];
                    GoodsGodEquip wearing = GetWearingGodEquipGoodsByPos(pos);
                    GoodsGodEquip ret     = null;


                    if (ItemManager.Instance.CheckHavePos(GameConst.GIVE_TYPE_GOD_EQUIP, (uint)pos))
                    {
                        continue;
                    }

                    foreach (var item in ItemManager.Instance.GodEquipGoodsOids)
                    {
                        if (ItemManager.Instance.mCloseQuickUseGoodsIdArray.ContainsKey(item.Value.type_idx))
                        {
                            continue;
                        }

                        if (item.Value.PosId == pos)
                        {
                            if (ret == null)
                            {
                                if (wearing == null || item.Value.Score > wearing.Score)
                                {
                                    ret = item.Value;
                                }
                            }
                            else
                            {
                                if (item.Value.Score > ret.Score)
                                {
                                    ret = item.Value;
                                }
                            }
                        }
                    }
                    if (ret != null)
                    {
                        return(ret);
                    }
                }
            }

            return(null);
        }
示例#3
0
 private static int SortFunc(GoodsGodEquip goods1, GoodsGodEquip goods2)
 {
     if (goods1.Score < goods2.Score)
     {
         return(1);
     }
     else if (goods1.Score > goods2.Score)
     {
         return(-1);
     }
     return(0);
 }
示例#4
0
        public static void ShowGodEquipTipsWindow(GoodsGodEquip godEquip, string showType)
        {
            uint expPos = xc.GameConstHelper.GetUint("GAME_GOD_EQUIP_EXP_POS");

            if (godEquip.PosId == expPos)
            {
                UIManager.Instance.ShowWindow("UIGoodsTipsWindow", godEquip, showType);
            }
            else
            {
                UIManager.Instance.ShowWindow("UIGodEquipGoodsTipsWindow", godEquip, showType);
            }
        }
示例#5
0
        public static bool IsBetterGodEquip(GoodsGodEquip goods)
        {
            if (SysConfigManager.Instance.CheckSysHasOpened(GameConst.SYS_OPEN_GOD_EQUIP, false) == false)
            {
                return(false);
            }

            if (!CheckPosOpen(goods.PosId))
            {
                return(false);
            }

            GoodsGodEquip wearingGoods = GetWearingGodEquipGoodsByPos(goods.PosId);

            if (wearingGoods == null)
            {
                return(true);
            }
            else
            {
                return(goods.Score > wearingGoods.Score);
            }
        }