| | |
| | | return; |
| | | } |
| | | |
| | | int equipPlace = item.config.EquipPlace; |
| | | switch ((RoleEquipType)equipPlace) |
| | | { |
| | | case RoleEquipType.Weapon: |
| | | case RoleEquipType.Weapon2: |
| | | case RoleEquipType.Hat: |
| | | case RoleEquipType.Clothes: |
| | | case RoleEquipType.Belt: |
| | | case RoleEquipType.Trousers: |
| | | case RoleEquipType.Shoes: |
| | | case RoleEquipType.Neck: |
| | | case RoleEquipType.FairyCan1: |
| | | case RoleEquipType.FairyCan2: |
| | | case RoleEquipType.Glove: |
| | | case RoleEquipType.Jade: |
| | | case RoleEquipType.Wing: |
| | | case RoleEquipType.Guard: |
| | | case RoleEquipType.PeerlessWeapon1: |
| | | case RoleEquipType.PeerlessWeapon2: |
| | | if (betterEquipExceptDungeonDict.ContainsKey(PlayerDatas.Instance.baseData.MapID)) |
| | | { |
| | | if (betterEquipExceptDungeonDict[PlayerDatas.Instance.baseData.MapID].Contains(item.itemId)) |
| | | { |
| | | return; |
| | | } |
| | | } |
| | | SetGetBetterEquipEvent(item); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private void SetGetBetterEquipEvent(ItemModel model) |
| | | { |
| | | if (model.isAuction) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | var itemEffectTime = model.GetUseData((int)ItemUseDataKey.createTime); |
| | | if (!itemEffectTime.IsNullOrEmpty() && itemEffectTime.Count > 0) |
| | | { |
| | | if (itemEffectTime[0] != 0) |
| | | { |
| | | var cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(model.guid); |
| | | double remainTime = 0; |
| | | if (cool != null) |
| | | { |
| | | remainTime = cool.GetRemainTime(); |
| | | } |
| | | |
| | | if (remainTime >= 0 && remainTime < 120 && model.config.ExpireTime > 0) |
| | | { |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (!equipModel.IsLevelUnLocked(model.config.LV)) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | int isFightUp = IsFightUp(model.itemId, model.score); |
| | | if (isFightUp != 1) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (GetBetterEquipEvent != null) |
| | | { |
| | | GetBetterEquipEvent(model.guid); |
| | | } |
| | | int equipPlace = item.config.EquipPlace;
|
| | | if ((RoleEquipType)equipPlace == RoleEquipType.Wing)
|
| | | {
|
| | | var wing = packModel.GetItemByIndex(PackType.Equip, SpiritWeaponModel.WING_EQUIPINDEX);
|
| | | if (wing == null)
|
| | | {
|
| | | if (!SpiritWeaponModel.hasAutoEquipWing)
|
| | | {
|
| | | SpiritWeaponModel.hasAutoEquipWing = true;
|
| | | ItemOperateUtility.Instance.PutOnItem(item.guid);
|
| | | return;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | switch ((RoleEquipType)equipPlace)
|
| | | {
|
| | | case RoleEquipType.Weapon:
|
| | | case RoleEquipType.Weapon2:
|
| | | case RoleEquipType.Hat:
|
| | | case RoleEquipType.Clothes:
|
| | | case RoleEquipType.Belt:
|
| | | case RoleEquipType.Trousers:
|
| | | case RoleEquipType.Shoes:
|
| | | case RoleEquipType.Neck:
|
| | | case RoleEquipType.FairyCan1:
|
| | | case RoleEquipType.FairyCan2:
|
| | | case RoleEquipType.Glove:
|
| | | case RoleEquipType.Jade:
|
| | | case RoleEquipType.Wing:
|
| | | case RoleEquipType.Guard:
|
| | | case RoleEquipType.PeerlessWeapon1:
|
| | | case RoleEquipType.PeerlessWeapon2:
|
| | | if (betterEquipExceptDungeonDict.ContainsKey(PlayerDatas.Instance.baseData.MapID))
|
| | | {
|
| | | if (betterEquipExceptDungeonDict[PlayerDatas.Instance.baseData.MapID].Contains(item.itemId))
|
| | | {
|
| | | return;
|
| | | }
|
| | | }
|
| | | SetGetBetterEquipEvent(item);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | private void SetGetBetterEquipEvent(ItemModel model)
|
| | | {
|
| | | if (model.isAuction)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | var itemEffectTime = model.GetUseData((int)ItemUseDataKey.createTime);
|
| | | if (!itemEffectTime.IsNullOrEmpty() && itemEffectTime.Count > 0)
|
| | | {
|
| | | if (itemEffectTime[0] != 0)
|
| | | {
|
| | | var cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(model.guid);
|
| | | double remainTime = 0;
|
| | | if (cool != null)
|
| | | {
|
| | | remainTime = cool.GetRemainTime();
|
| | | }
|
| | |
|
| | | if (remainTime >= 0 && remainTime < 120 && model.config.ExpireTime > 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (!equipModel.IsLevelUnLocked(model.config.LV))
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | int isFightUp = IsFightUp(model.itemId, model.score);
|
| | | if (isFightUp != 1)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (GetBetterEquipEvent != null)
|
| | | {
|
| | | GetBetterEquipEvent(model.guid);
|
| | | }
|
| | | } |
| | | |
| | | public event Action<PackType, string> PickItemEvent; //捡起的物品 |
| | |
| | | private int playerLv; |
| | | private Dictionary<int, List<ItemModel>> _lifePotionDict = new Dictionary<int, List<ItemModel>>(); //key 药水等级 |
| | | private List<int> _sellItemScorelist = new List<int>(); |
| | | private Dictionary<int, Dictionary<int, List<ItemModel>>> _sameIndexEquipDict = new Dictionary<int, Dictionary<int, List<ItemModel>>>(); //存储相同装备位的装备 |
| | | // private _sameEquipScoreDict = new Dictionary<int, List<ItemModel>>(); //存储相同ID中相同装备评分的装备 |
| | | private Dictionary<int, Dictionary<int, List<ItemModel>>> _sameIndexEquipDict = new Dictionary<int, Dictionary<int, List<ItemModel>>>(); //存储相同装备位的装备
|
| | | // private _sameEquipScoreDict = new Dictionary<int, List<ItemModel>>(); //存储相同ID中相同装备评分的装备
|
| | | private Dictionary<int, ItemModel> _packModelDict; |
| | | private List<ItemModel> _sellItemlist = new List<ItemModel>(); |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | return item.overdueSurplusTime < 0; |
| | | var isoverdue = false; |
| | | switch ((ItemTimeType)item.config.EndureReduceType)
|
| | | {
|
| | | case ItemTimeType.EquipedTime:
|
| | | isoverdue = item.GetUseDataFirstValue(44) > 0 && item.overdueSurplusTime < 0;
|
| | | break;
|
| | | case ItemTimeType.RealityTime:
|
| | | isoverdue = item.overdueSurplusTime < 0;
|
| | | break;
|
| | | } |
| | | |
| | | return isoverdue; |
| | | } |
| | | } |
| | | |