/// <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]); } } }
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); }
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); }
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); } }
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); } }