| System/Role/AutoHammerWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Role/GodWeaponPreviewWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Role/MagicianModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Role/MagicianWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | 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;