少年修仙传客户端代码仓库
client_linchunjie
2019-05-20 3a1104eaa73a20e2c3c2bd2eab27ae9c60a30c66
Merge branch 'master' into HazyRegion_1
6个文件已修改
223 ■■■■■ 已修改文件
Fight/Actor/Status/StatusMgr.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CreateRolePostProcess/CreateRoleMovieSkipWin.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/ItemTipUtility.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipItemBaseInfoWidget.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemLogicUtility.cs 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SpiritWeapon/SpiritWeaponModel.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Status/StatusMgr.cs
@@ -100,6 +100,10 @@
            {
                int _count = _actor.ActorInfo.GetStatusCount((byte)_effectValue.value1, h0605.OwnerID);
                _count += 1;
                if (!_actor.ActorInfo.status4012.ContainsKey((byte)_effectValue.value1))
                {
                    _actor.ActorInfo.status4012.Add((byte)_effectValue.value1, new Dictionary<uint, int>());
                }
                _actor.ActorInfo.status4012[(byte)_effectValue.value1][h0605.OwnerID] = _count;
            }
        }
@@ -190,9 +194,6 @@
            onReceiveStatus(h0605.SkillID);
        }
#if UNITY_EDITOR
        Debug.LogFormat("增加 {0} Buff: {1}", h0605.ObjID, h0605.SkillID);
#endif
    }
    public bool CanCastSkill(uint sid)
@@ -243,6 +244,10 @@
                            }
                            else
                            {
                                if (!_actor.ActorInfo.status4012.ContainsKey((byte)_effectValue.value1))
                                {
                                    _actor.ActorInfo.status4012.Add((byte)_effectValue.value1, new Dictionary<uint, int>());
                                }
                                _actor.ActorInfo.status4012[(byte)_effectValue.value1][objID] = _count;
                            }
                        }
@@ -281,6 +286,10 @@
                }
                else
                {
                    if (!_actor.ActorInfo.status4012.ContainsKey((byte)_effectValue.value1))
                    {
                        _actor.ActorInfo.status4012.Add((byte)_effectValue.value1, new Dictionary<uint, int>());
                    }
                    _actor.ActorInfo.status4012[(byte)_effectValue.value1][h0606.ObjID] = _count;
                }
            }
@@ -360,7 +369,6 @@
            m_StatusDict[sid].Clear();
            m_StatusDict.Remove(sid);
            Debug.LogFormat("删除:{0} 所有Buff", sid);
        }
        if (m_OwnerList.Contains(sid))
System/CreateRolePostProcess/CreateRoleMovieSkipWin.cs
@@ -29,7 +29,10 @@
        protected override void OnPreOpen()
        {
            m_Skip.gameObject.SetActive(false);
            Clock.AlarmAfter(5, () => { m_Skip.gameObject.SetActive(true); });
            if (Application.isEditor)
            {
                Clock.AlarmAfter(5, () => { m_Skip.gameObject.SetActive(true); });
            }
        }
        protected override void OnAfterOpen()
System/ItemTip/ItemTipUtility.cs
@@ -57,6 +57,7 @@
            public int star;
            public int strengthenLevel;
            public int score;
            public bool isOverdue;
            public int auctionSurplusTime;
            public int overdueSurplusTime;
            public int levelLimit;
@@ -892,6 +893,7 @@
                isEquiped = isEquiped,
                isPreview = false,
                score = item.score,
                isOverdue =ItemLogicUtility.Instance.IsOverdue(guid),
                auctionSurplusTime = item.isAuction ? item.auctionSurplusTime : 0,
                overdueSurplusTime = item.overdueSurplusTime,
                levelLimit = item.isAuction ? 0 : item.config.UseLV,
System/ItemTip/TipItemBaseInfoWidget.cs
@@ -51,7 +51,7 @@
                if (baseInfo.isAuction)
                {
                    m_SurplusTimeContainer.gameObject.SetActive(true);
                    if (baseInfo.auctionSurplusTime > 0)
                    if (!baseInfo.isOverdue)
                    {
                        m_SurplusTime.text = TimeUtility.SecondsToHMSCHSRetain(baseInfo.auctionSurplusTime);
                    }
@@ -62,13 +62,21 @@
                }
                else if (itemConfig.ExpireTime > 0)
                {
                    m_SurplusTimeContainer.gameObject.SetActive(true);
                    if (baseInfo.overdueSurplusTime > 0)
                    if (!baseInfo.isOverdue)
                    {
                        m_SurplusTime.text = TimeUtility.SecondsToConsumeRebate(baseInfo.overdueSurplusTime);
                        if (baseInfo.overdueSurplusTime > 0)
                        {
                            m_SurplusTimeContainer.gameObject.SetActive(true);
                            m_SurplusTime.text = TimeUtility.SecondsToConsumeRebate(baseInfo.overdueSurplusTime);
                        }
                        else
                        {
                            m_SurplusTimeContainer.gameObject.SetActive(false);
                        }
                    }
                    else
                    {
                        m_SurplusTimeContainer.gameObject.SetActive(true);
                        m_SurplusTime.text = "已过期";
                    }
                }
System/KnapSack/Logic/ItemLogicUtility.cs
@@ -743,78 +743,92 @@
                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; //捡起的物品
@@ -927,8 +941,8 @@
        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>();
@@ -1420,7 +1434,18 @@
            }
            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;
            }
        }
System/SpiritWeapon/SpiritWeaponModel.cs
@@ -6,6 +6,15 @@
{
    public class SpiritWeaponModel : Model
    {
        public static bool hasAutoEquipWing {
            get {
                return LocalSave.GetBool(StringUtility.Contact("HasAutoEquipWing_", PlayerDatas.Instance.baseData.PlayerID));
            }
            set {
                LocalSave.SetBool(StringUtility.Contact("HasAutoEquipWing_", PlayerDatas.Instance.baseData.PlayerID), value);
            }
        }
        public const int WING_EQUIPINDEX = 0;
        public override void Init()