少年修仙传客户端代码仓库
client_linchunjie
2018-11-01 cb4003b0ed872cd4b7f2500922d5f667450fb833
4500【前端】【1.2】人物等级低于世界等级X级,单人挑战仙界密境获得伤害BUFF加成
3个文件已修改
139 ■■■■■ 已修改文件
System/Dungeon/DungeonFairyLandWin.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/NormalDungeonEntranceWin.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralDefine.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFairyLandWin.cs
@@ -17,6 +17,12 @@
        [SerializeField]
        List<Text> targetTextList;
        [SerializeField] RectTransform m_FairyLandUpperBehaviour;
        [SerializeField] Text m_FairyLandUpperTip;
        [SerializeField] PositionTween m_PositionTween;
        [SerializeField] ScaleTween m_ScaleTween;
        [SerializeField] RectTransform[] m_MoveRects;
        DungeonModel m_Model;
        DungeonModel model
        {
@@ -64,14 +70,17 @@
        protected override void OnPreOpen()
        {
            m_FairyLandUpperBehaviour.gameObject.SetActive(false);
            SetTween(m_PositionTween, m_ScaleTween, 0);
            StageChangeEvent();
            MyTeamRefreshEvent();
            DungeonEncourageEvent();
            UpdateBuf();
            model.dungeonFairyLandChangeEvent += StageChangeEvent;
            model.dungeonInspireLvEvent += DungeonEncourageEvent;
            PlayerBuffDatas.Even_ObjAddBuf += UpdateBuf;
            PlayerBuffDatas.Even_ObjDelBuff += UpdateBuf;
            PlayerBuffDatas.Even_ObjAddBuf += AddBuff;
            PlayerBuffDatas.Even_ObjDelBuff += DeleteBuff;
            teamModel.myTeamRefreshEvent += MyTeamRefreshEvent;
        }
@@ -93,6 +102,12 @@
                _teamOnlineCnt == 0 ? "<color=#ff2828>" : "<color=#00ff00>", Mathf.Max(0, _teamOnlineCnt - 1) * 10, "%</color>");
        }
        protected override void OnActived()
        {
            base.OnActived();
            DisplayBuff();
        }
        protected override void OnAfterOpen()
        {
        }
@@ -101,8 +116,8 @@
        {
            model.dungeonFairyLandChangeEvent -= StageChangeEvent;
            model.dungeonInspireLvEvent -= DungeonEncourageEvent;
            PlayerBuffDatas.Even_ObjAddBuf -= UpdateBuf;
            PlayerBuffDatas.Even_ObjDelBuff -= UpdateBuf;
            PlayerBuffDatas.Even_ObjAddBuf -= AddBuff;
            PlayerBuffDatas.Even_ObjDelBuff -= DeleteBuff;
            teamModel.myTeamRefreshEvent -= MyTeamRefreshEvent;
        }
@@ -124,6 +139,18 @@
            var level = model.GetDungeonInspireLevel();
            targetTextList[3].text = level == 0 ? StringUtility.Contact(Language.Get("FairyLand_Func3"), ":", Language.Get("FairyLand_Func4"))
                : StringUtility.Contact(Language.Get("FairyLand_Func3"), ":<color=#00ff00>", level * model.GetDungeonInspireUpper(31080), "%</color>");
        }
        private void AddBuff()
        {
            UpdateBuf();
            DisplayBuff();
        }
        private void DeleteBuff()
        {
            UpdateBuf();
            DisplayBuff();
        }
        private void UpdateBuf()
@@ -149,6 +176,67 @@
            }
            targetTextList[4].text = StringUtility.Contact(Language.Get("FairyLand_Func1"), ":", Language.Get("FairyLand_Func2"));
        }
        private void DisplayBuff()
        {
            var gainBuff = Buffmodel._BuffDic.ContainsKey(GeneralDefine.fairyLandBuffId);
            var config = Config.Instance.Get<SkillConfig>(GeneralDefine.fairyLandBuffId);
            if (config != null)
            {
                m_FairyLandUpperTip.text = UIHelper.ReplaceNewLine(Language.Get("XjmjAddHarm2",
                    GeneralDefine.fairyLandBuffCondition, config.EffectValue11 / 10000 + 1));
            }
            if (!gainBuff)
            {
                if (m_FairyLandUpperBehaviour.gameObject.activeSelf)
                {
                    m_FairyLandUpperBehaviour.gameObject.SetActive(false);
                }
            }
            else
            {
                if (!m_FairyLandUpperBehaviour.gameObject.activeSelf)
                {
                    SetTween(m_PositionTween, m_ScaleTween, 0);
                    m_FairyLandUpperBehaviour.gameObject.SetActive(true);
                    m_PositionTween.Play(OnPositionTweenComplete);
                }
            }
        }
        private void OnPositionTweenComplete()
        {
            SetTween(m_PositionTween, m_ScaleTween, 1);
            m_PositionTween.Play();
            m_ScaleTween.Play();
        }
        private void SetTween(PositionTween _posTween, ScaleTween _scaleTween, int index)
        {
            _posTween.from = m_MoveRects[index].localPosition;
            _posTween.to = m_MoveRects[index + 1].localPosition;
            _posTween.duration = index == 0 ? 2f : 1f;
            _posTween.delay = index == 0 ? 0 : 1.0f;
            _posTween.SetStartState();
            if (index == 0)
            {
                _scaleTween.SetStartState();
            }
            else
            {
                _scaleTween.delay = 1.0f;
            }
        }
#if UNITY_EDITOR
        [ContextMenu("Test")]
        void Test()
        {
            SetTween(m_PositionTween, m_ScaleTween, 0);
            m_FairyLandUpperBehaviour.gameObject.SetActive(true);
            m_PositionTween.Play(OnPositionTweenComplete);
        }
#endif
    }
}
System/Dungeon/NormalDungeonEntranceWin.cs
@@ -51,6 +51,9 @@
        [SerializeField] RectTransform m_ContainerGroup;
        [SerializeField] RectTransform m_FairyLandTipBehaviour;
        [SerializeField] Text m_FairyLandTip;
        DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
@@ -75,6 +78,7 @@
            DrawDungeonBaseInfo();
            DrawSweepInfo();
            DrawDungeonTicketInfo();
            DisplayFairyLandTip();
            m_BreifInfo.SetDungeonInfo(model.currentDungeon);
        }
@@ -83,6 +87,8 @@
            playerPack.RefreshItemCountAct += OnPackageItemChange;
            model.updateDungeonEnterCD += UpdateDungeonEnterCD;
            m_EnterCdContainer.OnCdComplete += UpdateDungeonEnterCD;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
            PlayerDatas.Instance.OnRoleAttrRefresh += OnWorldLevelRefresh;
        }
        protected override void OnPreClose()
@@ -90,6 +96,8 @@
            playerPack.RefreshItemCountAct -= OnPackageItemChange;
            model.updateDungeonEnterCD -= UpdateDungeonEnterCD;
            m_EnterCdContainer.OnCdComplete -= UpdateDungeonEnterCD;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
            PlayerDatas.Instance.OnRoleAttrRefresh -= OnWorldLevelRefresh;
        }
        protected override void OnAfterClose()
@@ -116,6 +124,7 @@
            bool _cd = model.HasEnterCD(dungeonConfig.DataMapID) && model.IsEnterCountDowning(dungeonConfig.DataMapID);
            m_EnterCdContainer.gameObject.SetActive(_cd);
            m_ContainerBtns.gameObject.SetActive(!_cd);
            DisplayFairyLandTip();
        }
        private void DrawDungeonBaseInfo()
@@ -421,6 +430,34 @@
            }
        }
        private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType)
        {
            if (refreshType == PlayerDataRefresh.LV)
            {
                DisplayFairyLandTip();
            }
        }
        private void OnWorldLevelRefresh()
        {
            DisplayFairyLandTip();
        }
        private void DisplayFairyLandTip()
        {
            var dungeonId = model.GetDungeonId(model.currentDungeon);
            var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
            bool cd = model.HasEnterCD(dungeonConfig.DataMapID) && model.IsEnterCountDowning(dungeonConfig.DataMapID);
            var satisfy = (PlayerDatas.Instance.baseData.LV + GeneralDefine.fairyLandBuffCondition) <= PlayerDatas.Instance.worldLv && !cd;
            m_FairyLandTipBehaviour.gameObject.SetActive(satisfy);
            var config = Config.Instance.Get<SkillConfig>(GeneralDefine.fairyLandBuffId);
            if (config != null)
            {
                m_FairyLandTip.text = UIHelper.ReplaceNewLine(Language.Get("XjmjAddHarm1",
                    GeneralDefine.fairyLandBuffCondition, config.EffectValue11 / 10000 + 1));
            }
        }
    }
}
System/GeneralConfig/GeneralDefine.cs
@@ -149,6 +149,9 @@
    public static int medQualityCount { get; private set; }
    public static int highQualityCount { get; private set; }
    public static int fairyLandBuffCondition { get; private set; }
    public static int fairyLandBuffId { get; private set; }
    public static void Init()
    {
        try
@@ -521,6 +524,9 @@
            lowQualityCount = int.Parse(func.Numerical1);
            medQualityCount = int.Parse(func.Numerical2);
            highQualityCount = int.Parse(func.Numerical3);
            fairyLandBuffCondition = GetInt("XjmjAddHarm", 1);
            fairyLandBuffId = GetInt("XjmjAddHarm", 2);
        }
        catch (Exception ex)
        {