少年修仙传客户端代码仓库
client_linchunjie
2018-11-20 939e945fd41c9b72ded979d426c283643a56ac0e
4736 【1.3】【前端】神兵系统修改
4个文件已修改
123 ■■■■■ 已修改文件
System/Role/AutoHammerWin.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/GodWeaponPreviewWin.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/MagicianModel.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/MagicianWin.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/AutoHammerWin.cs
@@ -35,6 +35,7 @@
        public static int selectGodWeaponType = 1;
        private int targetLevel = 0;
        private int cost = 0;
        #region Built-in
        protected override void BindController()
@@ -130,24 +131,40 @@
        private void DisplayCost()
        {
            var godWeaponInfo = model.GetGodWeaponInfo(selectGodWeaponType);
            var requireExp = 0;
            if (godWeaponInfo != null)
            {
                for (int i = godWeaponInfo.level; i < targetLevel; i++)
                {
                    var config = GodWeaponConfig.GetConfig(selectGodWeaponType, i);
                    if (config != null)
                    {
                        requireExp += config.NeedExp;
                    }
                }
                requireExp -= (int)godWeaponInfo.exp;
                requireExp = Mathf.Max(0, requireExp);
            }
            var count = Mathf.CeilToInt((float)requireExp / model.autoHammerSingleExp);
            count = Mathf.Max(1, count);
            cost = count * model.autoHammerSingleCost;
            m_Cost.text = cost.ToString();
        }
        private void Confirm()
        {
            if (targetLevel >= m_NumKeyBoard.max)
            if (PlayerDatas.Instance.baseData.Gold < cost)
            {
                targetLevel = (int)m_NumKeyBoard.max;
            }
            else if (targetLevel <= m_NumKeyBoard.min)
            {
                targetLevel = (int)m_NumKeyBoard.min;
                WindowCenter.Instance.Open<RechargeTipWin>();
                return;
            }
            model.autoHammerLevel = targetLevel;
            if (onConfirm != null)
            {
                onConfirm(true);
            }
            CloseImmediately();
        }
        private void OnNumConfirm(bool isOk)
System/Role/GodWeaponPreviewWin.cs
@@ -85,7 +85,9 @@
        private void DisplayRequireLevel()
        {
            var requireLevel = model.GetGodWeaponStageRequireLevel(selectStage);
            var config = GodWeaponConfig.GetConfig(selectGodWeaponType, 1);
            m_RequireLevel.text = Language.Get("GodWeaponStageRequireLevel", config.Name, requireLevel);
        }
        private void DisplayModel()
System/Role/MagicianModel.cs
@@ -96,6 +96,10 @@
        public int gotoType = 0;
        public int autoHammerLevel { get; set; }
        public int autoHammerSingleCost { get; private set; }
        public int autoHammerSingleExp { get; private set; }
        public int[] godWeaponStages { get; private set; }
        void ParseConfig()
        {
            godWeaponTypes = GodWeaponConfig.GetGodWeaponType();
@@ -180,6 +184,11 @@
                autoHammerExpArea = ConfigParse.GetMultipleStr<int>(autoHammerConfig.Numerical1);
                autoHammerCount = ConfigParse.GetMultipleStr<int>(autoHammerConfig.Numerical2);
            }
            autoHammerSingleCost = 10;
            autoHammerSingleExp = 10;
            godWeaponStages = new int[] { 100, 200, 300 };
        }
        public int[] GetLevelUpItemByType(int type)
@@ -437,6 +446,35 @@
            return godWeaponConditions.TryGetValue(type, out list);
        }
        public int GetGodWeaponStage(int type)
        {
            var godWeaponInfo = GetGodWeaponInfo(type);
            if (godWeaponInfo != null)
            {
                for (int i = 0; i < godWeaponStages.Length; i++)
                {
                    if (godWeaponInfo.level >= godWeaponStages[i])
                    {
                        return i + 1;
                    }
                    else
                    {
                        break;
                    }
                }
            }
            return 0;
        }
        public int GetGodWeaponStageRequireLevel(int stage)
        {
            if (stage > 0 && stage - 1 < godWeaponStages.Length)
            {
                return godWeaponStages[stage - 1];
            }
            return 0;
        }
        public bool IsGodWeaponMaxLevelByItem(int _itemId)
        {
            foreach (var _key in godWeaponLevelUpCost.Keys)
System/Role/MagicianWin.cs
@@ -450,6 +450,15 @@
            }
        }
        private void CheckSelectItemCounts()
        {
            int[] items = model.GetLevelUpItemByType(model.selectType);
            if (items != null && model.selectItemIndex >= 0 && model.selectItemIndex < items.Length)
            {
                selectItemCount = packModel.GetItemCountByID(PackType.rptItem, items[model.selectItemIndex]);
            }
        }
        private int GetItemIndex(int type, int except = -1)
        {
            var items = model.GetLevelUpItemByType(type);
@@ -729,11 +738,15 @@
        {
            if (autoHammerState != AutoHammerState.None)
            {
                return;
                autoHammerState = AutoHammerState.None;
            }
            if (selectItemCount <= 0)
            {
                OnSelectItem(GetItemIndex(model.selectType));
                CheckSelectItemCounts();
                if (selectItemCount <= 0)
                {
                    OnSelectItem(GetItemIndex(model.selectType));
                }
                if (selectItemCount <= 0)
                {
                    if (!WindowCenter.Instance.IsOpen<GetItemPathWin>())
@@ -757,7 +770,7 @@
        {
            if (autoHammerState != AutoHammerState.None)
            {
                return;
                autoHammerState = AutoHammerState.None;
            }
            var godWeaponInfo = model.GetGodWeaponInfo(model.selectType);
            bool requireSwitchItem = false;
@@ -841,12 +854,43 @@
            }
            else
            {
                autoHammerState = AutoHammerState.None;
                return;
                var godWeaponInfo = model.GetGodWeaponInfo(model.selectType);
                if (godWeaponInfo != null && godWeaponInfo.level >= model.autoHammerLevel)
                {
                    autoHammerState = AutoHammerState.None;
                    return;
                }
                var requireExp = 0;
                for (int i = godWeaponInfo.level; i < model.autoHammerLevel; i++)
                {
                    var config = GodWeaponConfig.GetConfig(model.selectType, i);
                    if (config != null)
                    {
                        requireExp += config.NeedExp;
                    }
                }
                requireExp -= (int)godWeaponInfo.exp;
                requireExp = Mathf.Max(0, requireExp);
                var count = model.GetAutoHammerCount(model.selectType);
                if (count * model.autoHammerSingleExp > requireExp)
                {
                    count = Mathf.CeilToInt((float)requireExp / model.autoHammerSingleExp);
                }
                count = Mathf.Max(1, count);
                var cost = count * model.autoHammerSingleCost;
                if (PlayerDatas.Instance.baseData.Gold < cost)
                {
                    autoHammerState = AutoHammerState.None;
                    return;
                }
                //CA555_tagCMGodWeaponPlus pak = new CA555_tagCMGodWeaponPlus();
                //pak.ItemID = (uint)items[index];
                //pak.WeaponType = (uint)model.selectType;
                //pak.IsAutoBuy = 1;
                //pak.ItemCount = 1;
                //GameNetSystem.Instance.SendInfo(pak);
            }
            lockGodWeaponUpdate = true;
            lockItemUpdate = true;