From 096703626e99ff6c9d8db9c3afd12c3ead1c6f8f Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 29 一月 2026 04:18:31 +0800
Subject: [PATCH] 422 子 【内政】命格系统 / 【内政】命格系统-客户端
---
Main/System/Mingge/MinggeAutoSetCell.cs | 58 ++
Main/System/KnapSack/PackManager.cs | 2
Main/System/InternalAffairs/AffairBaseWin.cs | 25 +
Main/System/Mingge/MinggeWin.cs | 51 ++
Main/System/Mingge/MinggePrayWin.cs | 49 -
Main/System/BoneField/AdsManager.cs | 2
Main/System/Mingge/MinggeAutoSetWin.cs | 530 ++++++++++++++++++++++
Main/System/BeautyMM/BeautyMMTravelWin.cs | 11
Main/System/PhantasmPavilion/PhantasmPavilionManager.cs | 2
Main/System/Main/MainWin.cs | 8
Main/System/Mingge/MinggeEquipWin.cs | 14
Main/System/Mingge/MinggeManager.cs | 617 +++++++++++++++++++++++++
Main/System/Mingge/MinggeAutoSetWin.cs.meta | 11
Main/System/Message/GMNotify.cs | 4
Main/System/Mingge/MinggeAutoSetCell.cs.meta | 11
15 files changed, 1,329 insertions(+), 66 deletions(-)
diff --git a/Main/System/BeautyMM/BeautyMMTravelWin.cs b/Main/System/BeautyMM/BeautyMMTravelWin.cs
index aaf6dab..d7b6fb3 100644
--- a/Main/System/BeautyMM/BeautyMMTravelWin.cs
+++ b/Main/System/BeautyMM/BeautyMMTravelWin.cs
@@ -172,10 +172,21 @@
{
continue;
}
+ if (index >= rateNameText.Length)
+ {
+ break;
+ }
rateNameText[index].text = ItemConfig.Get(config.AwardItemID).ItemName + "x" + config.AwardItemCnt;
rateText[index].text = config.ShowRate;
index++;
}
+
+ for (int i = index; i < rateNameText.Length; i++)
+ {
+ rateNameText[i].text = "";
+ rateText[i].text = "";
+ }
+
horseRateText.text = TravelEventConfig.Get(101).ShowRate;
}
diff --git a/Main/System/BoneField/AdsManager.cs b/Main/System/BoneField/AdsManager.cs
index cdeecb9..1219506 100644
--- a/Main/System/BoneField/AdsManager.cs
+++ b/Main/System/BoneField/AdsManager.cs
@@ -29,7 +29,7 @@
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEvent;
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= UpdateRedpoint;
- DungeonManager.Instance.UpdateFBInfoListEvent += OnUpdateFBInfoChangeEvent;
+ DungeonManager.Instance.UpdateFBInfoListEvent -= OnUpdateFBInfoChangeEvent;
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
}
diff --git a/Main/System/InternalAffairs/AffairBaseWin.cs b/Main/System/InternalAffairs/AffairBaseWin.cs
index 70f9f57..e9d19ed 100644
--- a/Main/System/InternalAffairs/AffairBaseWin.cs
+++ b/Main/System/InternalAffairs/AffairBaseWin.cs
@@ -26,6 +26,7 @@
[SerializeField] HeroSkinModel[] funcNPCs;
[SerializeField] Transform[] talkRects;
[SerializeField] Text[] talkTexts;
+ [SerializeField] UIEffectPlayer autoMGEffect;
protected override void InitComponent()
{
@@ -58,12 +59,14 @@
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
GlobalTimeEvent.Instance.fiveSecondEvent += OnFiveSecondEvent;
+ MinggeManager.Instance.ChangeAutoEvent += ChangeAutoEvent;
Display();
if (GoldRushManager.Instance.openAutoGoldRush)
- {
+ {
GoldRushManager.Instance.GetAllAward();
}
+ ChangeAutoEvent();
}
protected override void OnPreClose()
@@ -73,8 +76,28 @@
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
GlobalTimeEvent.Instance.fiveSecondEvent -= OnFiveSecondEvent;
+ MinggeManager.Instance.ChangeAutoEvent -= ChangeAutoEvent;
}
+ void ChangeAutoEvent()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Mingge))
+ {
+ return;
+ }
+ if (MinggeManager.Instance.isStartAuto)
+ {
+ autoMGEffect.Play();
+ funcNPCs[5].GetModel().PlayAnimation("suanming", true);
+ }
+ else
+ {
+ autoMGEffect.Stop();
+ funcNPCs[5].GetModel().PlayAnimation("idle", true);
+ }
+ }
+
+
protected override void OnOpen()
{
GoldRushManager.Instance.ResumeAutoWorking();
diff --git a/Main/System/KnapSack/PackManager.cs b/Main/System/KnapSack/PackManager.cs
index f9dc130..f7af21d 100644
--- a/Main/System/KnapSack/PackManager.cs
+++ b/Main/System/KnapSack/PackManager.cs
@@ -182,6 +182,8 @@
{
refrechPackEvent(packType);
}
+
+ RefreshItemEvent?.Invoke(packType, -1, -1); //鍙仛涓�娆¢�氱煡鐢�
DelayNotifyPackChange(packType);
}
diff --git a/Main/System/Main/MainWin.cs b/Main/System/Main/MainWin.cs
index 27c94bb..130b27a 100644
--- a/Main/System/Main/MainWin.cs
+++ b/Main/System/Main/MainWin.cs
@@ -32,6 +32,7 @@
[SerializeField] Text multiFightText;
[SerializeField] Transform gameTip; //10杩�
+ [SerializeField] Transform mgTip;
bool isForcePlayFightUIAnim = true; //寮哄埗鎾斁鎴樻枟閿ゅ瓙妗嗗姩鐢�
@@ -69,6 +70,7 @@
EventBroadcast.Instance.AddListener<string>(EventName.BATTLE_START, OnBattleStart);
base.OnPreOpen();
+ mgTip.SetActive(false);
// 鍒锋柊UI
Display();
}
@@ -107,6 +109,8 @@
GlobalTimeEvent.Instance.fiveSecondEvent -= OnFiveSecondEvent;
}
}
+
+ mgTip.SetActive(MinggeManager.Instance.isPauseAuto);
}
void DisplayTopBar()
@@ -120,6 +124,10 @@
{
multiFightText.text = Language.Get("MultiFight", AutoFightModel.Instance.fightCost);
}
+ if (_ui.name == "MinggeWin")
+ {
+ mgTip.SetActive(false);
+ }
}
//鎴樻枟鎸夐挳鍔ㄧ敾
diff --git a/Main/System/Message/GMNotify.cs b/Main/System/Message/GMNotify.cs
index e541c2e..05d82d6 100644
--- a/Main/System/Message/GMNotify.cs
+++ b/Main/System/Message/GMNotify.cs
@@ -15,8 +15,8 @@
public override void Release()
{
GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
- DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin;
- DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEventOnRelogin;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
}
public void OnBeforePlayerDataInitializeEventOnRelogin()
diff --git a/Main/System/Mingge/MinggeAutoSetCell.cs b/Main/System/Mingge/MinggeAutoSetCell.cs
new file mode 100644
index 0000000..2e2d3d9
--- /dev/null
+++ b/Main/System/Mingge/MinggeAutoSetCell.cs
@@ -0,0 +1,58 @@
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+using System;
+
+
+//鍛芥牸鑷姩鐨勫悇涓�夐」鍐呭锛岀粺涓�鐢ㄤ竴涓寜绫诲瀷鍖哄垎
+public class MinggeAutoSetCell : CellView
+{
+ [SerializeField] Text contentText;
+ [SerializeField] Image selectImg;
+ [SerializeField] Button selectBtn;
+
+ //type 婊氬姩鏉$敤閫旂被鍨�
+ //index 鏍规嵁绫诲瀷鑷畾涔�
+ public void Display(int type, int index, MinggeAutoSet autoSet, Action<int> onSelect)
+ {
+ if (type == 1)
+ {
+ //鍝佽川
+ string qualityName = Language.Get("L1039", MGGuayuQualityConfig.Get(index).ColorName);
+ contentText.text = Language.Get("Mingge30", UIHelper.AppendColor(index, qualityName, true, 2));
+ selectImg.SetActive(autoSet.quanlity == index);
+ }
+ else if (type == 2)
+ {
+ //鎴樻枟灞炴��
+ contentText.text = index == 0 ? Language.Get("Mingge33") : PlayerPropertyConfig.Get(index).Name;
+ selectImg.SetActive(autoSet.fightAttrID == index);
+ }
+ else if (type == 3)
+ {
+ //鎶楁�у睘鎬�
+ contentText.text = index == 0 ? Language.Get("Mingge33") : PlayerPropertyConfig.Get(index).Name;
+ selectImg.SetActive(autoSet.deFightAttrID == index);
+ }
+ else if (type == 4)
+ {
+ //鍛芥牸鎶�鑳�
+ contentText.text = index == 0 ? Language.Get("Mingge33") : Language.Get($"MinggeSkillType_{index}");
+ selectImg.SetActive(autoSet.skillID == index);
+ }
+ else if (type == 5)
+ {
+ //娑堣�楁暟閲�
+ contentText.text = index.ToString();
+ selectImg.SetActive(MinggeManager.Instance.autoCostCount == index);
+ }
+
+ selectBtn.AddListener(() =>
+ {
+ onSelect?.Invoke(index);
+ });
+ }
+
+
+
+}
+
diff --git a/Main/System/Mingge/MinggeAutoSetCell.cs.meta b/Main/System/Mingge/MinggeAutoSetCell.cs.meta
new file mode 100644
index 0000000..fe6b193
--- /dev/null
+++ b/Main/System/Mingge/MinggeAutoSetCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 77c0bb1754a43d14985f5b7a2942530e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Mingge/MinggeAutoSetWin.cs b/Main/System/Mingge/MinggeAutoSetWin.cs
new file mode 100644
index 0000000..5c23717
--- /dev/null
+++ b/Main/System/Mingge/MinggeAutoSetWin.cs
@@ -0,0 +1,530 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+public class MinggeAutoSetWin : UIBase
+{
+ [SerializeField] ScrollRect scrollRect;
+ [SerializeField] GroupButtonEx[] presetBtns;
+ List<Text> presetNameTexts = new List<Text>();
+ [SerializeField] Button selectQualityBtn; //鍝佽川閫夋嫨
+ [SerializeField] Text qualityText;
+ [SerializeField] ScrollerController qualityScroller;
+ [SerializeField] Toggle startToggle;
+ [SerializeField] Toggle fightPowerToggle; //鎴樻枟鍔�
+ [SerializeField] Toggle andFPToggle;
+ [SerializeField] Toggle orFPToggle;
+ [SerializeField] Toggle attrToggle; //灞炴��
+ [SerializeField] Button fightAttrBtn; //鍏ぇ鎴樻枟灞炴�� + 鍏堟墜
+ [SerializeField] Text fightAttrText;
+ [SerializeField] ScrollerController fightAttrScroller;
+ [SerializeField] Button deFightAttrBtn; //鍏ぇ鎴樻枟鎶楁�у睘鎬�
+ [SerializeField] Text deFightAttrText;
+ [SerializeField] ScrollerController deFightAttrScroller;
+ [SerializeField] Toggle skillToggle; //鎶�鑳�
+ [SerializeField] Button skillBtn;
+ [SerializeField] Text skillText;
+ [SerializeField] ScrollerController skillScroller;
+ [SerializeField] Toggle andSkillToggle;
+ [SerializeField] Toggle orSkillToggle;
+ [SerializeField] Toggle useMoreItemToggle; //浣跨敤鏇村鐗╁搧 涓嶅嬀閫夐粯璁ゆ秷鑰�1涓�
+ [SerializeField] Button useMoreItemBtn;
+ [SerializeField] Text useMoreItemText;
+ [SerializeField] ScrollerController useMoreItemScroller;
+ [SerializeField] Text itemNameText;
+ [SerializeField] Toggle speedUPToggle; //鍔犻�� 鐗规晥鎾斁鍔犻��
+ [SerializeField] Button startBtn;
+ [SerializeField] Button cancelBtn;
+
+ MinggeAutoSet autoSetData;
+ int selectPresetID = 0;
+
+ protected override void InitComponent()
+ {
+ presetNameTexts.Clear();
+ for (int i = 0; i < presetBtns.Length; i++)
+ {
+ int index = i + 1;
+ presetBtns[i].AddListener(() =>
+ {
+ selectPresetID = index;
+ Display();
+ });
+ presetNameTexts.Add(presetBtns[i].GetComponentInChildren<Text>());
+ }
+ selectQualityBtn.AddListener(() =>
+ {
+ qualityScroller.SetActive(true);
+ });
+ startToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ ClickStartToggle(isOn);
+ });
+ fightPowerToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ autoSetData.fightPowerToggle = isOn;
+ FixAndOrFBToggle();
+ FixAndOrSkillToggle();
+ });
+
+ andFPToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ ClickAndOrFPToggle(isOn);
+ });
+ orFPToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ ClickAndOrFPToggle(isOn);
+ });
+
+ attrToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ autoSetData.fightAttrToggle = isOn;
+ FixAndOrFBToggle();
+ FixAndOrSkillToggle();
+ });
+
+ fightAttrBtn.AddListener(() =>
+ {
+ fightAttrScroller.SetActive(true);
+ });
+ deFightAttrBtn.AddListener(() =>
+ {
+ deFightAttrScroller.SetActive(true);
+ });
+
+ skillToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ autoSetData.skillToggle = isOn;
+ FixAndOrFBToggle();
+ FixAndOrSkillToggle();
+ });
+
+ skillBtn.AddListener(() =>
+ {
+ skillScroller.SetActive(true);
+ });
+ andSkillToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ ClickAndOrSkillToggle(isOn);
+ });
+ orSkillToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ ClickAndOrSkillToggle(isOn);
+ });
+ useMoreItemToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ MinggeManager.Instance.autoCostToggle = isOn;
+ });
+ useMoreItemBtn.AddListener(() =>
+ {
+ useMoreItemScroller.SetActive(true);
+ });
+ speedUPToggle.onValueChanged.AddListener((bool isOn) =>
+ {
+ if (!InvestModel.Instance.IsInvested(InvestModel.monthCardType))
+ {
+ speedUPToggle.SetIsOnWithoutNotify(false);
+ SysNotifyMgr.Instance.ShowTip("MinggeAuto5");
+ UIManager.Instance.OpenWindow<PrivilegeCardWin>();
+ return;
+ }
+ MinggeManager.Instance.autoSpeedUP = isOn;
+ });
+ startBtn.AddListener(() =>
+ {
+ if (!MinggeManager.Instance.qlNotNotify && PackManager.Instance.GetItemCountByID(PackType.Item, MinggeManager.Instance.qlItemID) > 0)
+ {
+ ConfirmCancel.ToggleConfirmCancel(
+ Language.Get("L1003"),
+ Language.Get("Mingge31"),
+ Language.Get("TianziBillborad08"),
+ Language.Get("Mingge35"),
+ Language.Get("Mingge34"),
+ (bool isOK, bool isToggle) =>
+ {
+ if (isOK)
+ {
+ CloseWindow();
+ UIManager.Instance.OpenWindow<MinggePrayWin>();
+ }
+ else
+ {
+ MinggeManager.Instance.StartAuto(true);
+ }
+
+ MinggeManager.Instance.qlNotNotify = isToggle;
+ },
+ false
+ );
+ return;
+ }
+
+ MinggeManager.Instance.StartAuto(true);
+ });
+ cancelBtn.AddListener(() =>
+ {
+ MinggeManager.Instance.StartAuto(false);
+ cancelBtn.SetActive(false);
+ startBtn.SetActive(true);
+ });
+ }
+
+ protected override void OnPreOpen()
+ {
+ selectPresetID = FuncPresetManager.Instance.GetFuncPresetID((int)FuncPresetType.Mingge);
+ if (MinggeManager.Instance.isStartAuto)
+ {
+ MinggeManager.Instance.isPauseAuto = true;
+ SysNotifyMgr.Instance.ShowTip("MinggeAuto4");
+ }
+
+ qualityScroller.OnRefreshCell += OnRefreshQualityCell;
+ fightAttrScroller.OnRefreshCell += OnRefreshFightAttrCell;
+ deFightAttrScroller.OnRefreshCell += OnRefreshDeFightAttrCell;
+ skillScroller.OnRefreshCell += OnRefreshSkillCell;
+ useMoreItemScroller.OnRefreshCell += OnRefreshUseMoreItemCell;
+
+
+ CreateScroller();
+ DisplayPresetBtns();
+ Display();
+ }
+
+ protected override void OnPreClose()
+ {
+ MinggeManager.Instance.isPauseAuto = false;
+ if (MinggeManager.Instance.isStartAuto)
+ {
+ SysNotifyMgr.Instance.ShowTip("MinggeAuto3");
+ MinggeManager.Instance.CalcEquip();
+ }
+
+ qualityScroller.OnRefreshCell -= OnRefreshQualityCell;
+ fightAttrScroller.OnRefreshCell -= OnRefreshFightAttrCell;
+ deFightAttrScroller.OnRefreshCell -= OnRefreshDeFightAttrCell;
+ skillScroller.OnRefreshCell -= OnRefreshSkillCell;
+ useMoreItemScroller.OnRefreshCell -= OnRefreshUseMoreItemCell;
+ }
+
+ public void Display()
+ {
+ autoSetData = MinggeManager.Instance.GetMGAutoSet(selectPresetID);
+ if (autoSetData == null)
+ {
+ return;
+ }
+ string qualityName = Language.Get("L1039", MGGuayuQualityConfig.Get(autoSetData.quanlity).ColorName);
+ qualityText.text = Language.Get("Mingge30", UIHelper.AppendColor(autoSetData.quanlity, qualityName, true, 2));
+
+ startToggle.SetIsOnWithoutNotify(autoSetData.startToggle);
+ fightPowerToggle.SetIsOnWithoutNotify(autoSetData.fightPowerToggle);
+ andFPToggle.SetIsOnWithoutNotify(autoSetData.andOrFPToggle == 1);
+ orFPToggle.SetIsOnWithoutNotify(autoSetData.andOrFPToggle == 2);
+ attrToggle.SetIsOnWithoutNotify(autoSetData.fightAttrToggle);
+
+ fightAttrText.text = autoSetData.fightAttrID == 0 ? Language.Get("Mingge33") : PlayerPropertyConfig.Get(autoSetData.fightAttrID).Name;
+ deFightAttrText.text = autoSetData.deFightAttrID == 0 ? Language.Get("Mingge33") : PlayerPropertyConfig.Get(autoSetData.deFightAttrID).Name;
+
+ skillToggle.SetIsOnWithoutNotify(autoSetData.skillToggle);
+ skillText.text = autoSetData.skillID == 0 ? Language.Get("Mingge33") : Language.Get($"MinggeSkillType_{autoSetData.skillID}");
+ andSkillToggle.SetIsOnWithoutNotify(autoSetData.andOrSkillToggle == 1);
+ orSkillToggle.SetIsOnWithoutNotify(autoSetData.andOrSkillToggle == 2);
+
+ useMoreItemToggle.SetIsOnWithoutNotify(MinggeManager.Instance.autoCostToggle);
+ useMoreItemText.text = MinggeManager.Instance.autoCostCount.ToString();
+
+ itemNameText.text = ItemConfig.Get(MinggeManager.Instance.tyItemID).ItemName;
+ cancelBtn.SetActive(MinggeManager.Instance.isStartAuto);
+ startBtn.SetActive(!MinggeManager.Instance.isStartAuto);
+ }
+
+ public void DisplayPresetBtns()
+ {
+ var cnt = FuncPresetManager.Instance.GetUnlockCnt((int)FuncPresetType.Mingge);
+ if (cnt == 1)
+ {
+ cnt = 0;
+ }
+ if (cnt > 0)
+ {
+ scrollRect.SetActive(true);
+ for (int i = 0; i < presetBtns.Length; i++)
+ {
+ if (i < cnt)
+ {
+ presetBtns[i].SetActive(true);
+ presetNameTexts[i].text = FuncPresetManager.Instance.GetFuncPreset((int)FuncPresetType.Mingge, i + 1).PresetName;
+ }
+ else
+ {
+ presetBtns[i].SetActive(false);
+ }
+ }
+ presetBtns[selectPresetID - 1].SelectBtn();
+ //婊氬姩鍒� selectPresetID 浣嶇疆
+ scrollRect.horizontalNormalizedPosition = selectPresetID < 4 ? 0 : selectPresetID * 1f / cnt;
+ }
+ else
+ {
+ scrollRect.SetActive(false);
+ }
+ }
+
+
+ void ClickStartToggle(bool isOn)
+ {
+ autoSetData.startToggle = isOn;
+ if (!isOn)
+ {
+ //妫�鏌ュ鏂规涓嚦灏戜竴涓嬀閫�
+ if (!MinggeManager.Instance.CanChangeStartToFalse(selectPresetID))
+ {
+ startToggle.SetIsOnWithoutNotify(true);
+ autoSetData.startToggle = true;
+ SysNotifyMgr.Instance.ShowTip("MinggeAuto2");
+ }
+ }
+
+ }
+
+ void ClickAndOrFPToggle(bool isOn)
+ {
+ //鍙湁鎴樻枟鍜屽叾浠栫殑婵�娲诲悗鎵嶈兘 鍕鹃��
+ FixAndOrFBToggle();
+
+
+ }
+
+ void ClickAndOrSkillToggle(bool isOn)
+ {
+ //鎶�鑳藉拰鍏朵粬浠讳竴婵�娲诲悗鎵嶈兘 鍕鹃��
+ FixAndOrSkillToggle();
+
+
+ }
+
+ void FixAndOrFBToggle()
+ {
+ //鍙湁鎴樻枟鍜屽睘鎬ф縺娲诲悗鎵嶈兘 鍕鹃��
+
+ //甯彇娑堢殑鎯呭喌
+ if (!fightPowerToggle.isOn || !attrToggle.isOn)
+ {
+ if (andFPToggle.isOn)
+ {
+ andFPToggle.SetIsOnWithoutNotify(false);
+
+ }
+
+ if (orFPToggle.isOn)
+ {
+ orFPToggle.SetIsOnWithoutNotify(false);
+ }
+ }
+
+ //甯嬀閫夌殑鎯呭喌锛岄粯璁ゅ嬀鍚屾椂
+ if (fightPowerToggle.isOn && attrToggle.isOn)
+ {
+ if (!andFPToggle.isOn && !orFPToggle.isOn)
+ {
+ andFPToggle.SetIsOnWithoutNotify(true);
+ }
+ }
+
+ RefreshAndOrFBToggleValue();
+ }
+
+ void FixAndOrSkillToggle()
+ {
+ //鎶�鑳藉拰鍏朵粬浠讳竴婵�娲诲悗鎵嶈兘 鍕鹃��
+
+ //甯彇娑堢殑鎯呭喌
+ if (!skillToggle.isOn || (!attrToggle.isOn && !fightPowerToggle.isOn))
+ {
+ if (andSkillToggle.isOn)
+ {
+ andSkillToggle.SetIsOnWithoutNotify(false);
+ }
+
+ if (orSkillToggle.isOn)
+ {
+ orSkillToggle.SetIsOnWithoutNotify(false);
+ }
+ }
+
+ //甯嬀閫夌殑鎯呭喌锛岄粯璁ゅ嬀鍚屾椂
+ if (skillToggle.isOn && (attrToggle.isOn || fightPowerToggle.isOn))
+ {
+ if (!andSkillToggle.isOn && !orSkillToggle.isOn)
+ {
+ orSkillToggle.SetIsOnWithoutNotify(true);
+ }
+ }
+
+ RefreshAndOrSkillToggleValue();
+ }
+
+
+ void RefreshAndOrFBToggleValue()
+ {
+ if (andFPToggle.isOn)
+ {
+ autoSetData.andOrFPToggle = 1;
+ }
+ else if (orFPToggle.isOn)
+ {
+ autoSetData.andOrFPToggle = 2;
+ }
+ else
+ {
+ autoSetData.andOrFPToggle = 0;
+ }
+ }
+
+ void RefreshAndOrSkillToggleValue()
+ {
+ if (andSkillToggle.isOn)
+ {
+ autoSetData.andOrSkillToggle = 1;
+ }
+ else if (orSkillToggle.isOn)
+ {
+ autoSetData.andOrSkillToggle = 2;
+ }
+ else
+ {
+ autoSetData.andOrSkillToggle = 0;
+ }
+ }
+
+
+ void CreateScroller()
+ {
+ var rateList = MinggeManager.Instance.GetQLRate(MinggeManager.Instance.m_Lingying);
+ //鍊掑簭鍒犻櫎 姒傜巼涓�0鐨� 鐩村埌鏈夋鐜囧ぇ浜�0鐨�
+ for (int i = rateList.Count - 1; i >= 0; i--)
+ {
+ if (rateList[i] == 0)
+ {
+ rateList.RemoveAt(i);
+ }
+ else
+ {
+ break;
+ }
+ }
+ var rect = qualityScroller.GetComponent<RectTransform>();
+ rect.sizeDelta = new Vector2(rect.sizeDelta.x, rateList.Count * 50);
+ qualityScroller.Refresh();
+ for (int i = 1; i <= rateList.Count; i++)
+ {
+ qualityScroller.AddCell(ScrollerDataType.Header, i);
+ }
+ qualityScroller.Restart();
+
+ fightAttrScroller.Refresh();
+ for (int i = 0; i < MinggeManager.Instance.fightAttrIDList.Length; i++)
+ {
+ fightAttrScroller.AddCell(ScrollerDataType.Header, MinggeManager.Instance.fightAttrIDList[i]);
+ }
+ fightAttrScroller.Restart();
+
+ deFightAttrScroller.Refresh();
+ for (int i = 0; i < MinggeManager.Instance.deFightAttrIDList.Length; i++)
+ {
+ deFightAttrScroller.AddCell(ScrollerDataType.Header, MinggeManager.Instance.deFightAttrIDList[i]);
+ }
+ deFightAttrScroller.Restart();
+
+ skillScroller.Refresh();
+ //鐗规畩澶勭悊 闇�瑕佸姞涓婄涓�涓换鎰�
+ for (int i = 0; i <= MinggeManager.Instance.minggeSkillTypeIDList.Length; i++)
+ {
+ if (i == 0)
+ {
+ skillScroller.AddCell(ScrollerDataType.Header, 0);
+ }
+ else
+ {
+ skillScroller.AddCell(ScrollerDataType.Header, MinggeManager.Instance.minggeSkillTypeIDList[i - 1]);
+ }
+ }
+ skillScroller.Restart();
+
+ useMoreItemScroller.Refresh();
+ for (int i = 0; i < MinggeManager.Instance.autoCostCntList.Length; i++)
+ {
+ useMoreItemScroller.AddCell(ScrollerDataType.Header, MinggeManager.Instance.autoCostCntList[i]);
+ }
+ useMoreItemScroller.Restart();
+ }
+
+
+ void OnRefreshQualityCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as MinggeAutoSetCell;
+ _cell.Display(1, cell.index, autoSetData, (value) =>
+ {
+ qualityScroller.SetActive(false);
+ autoSetData.quanlity = value;
+ string qualityName = Language.Get("L1039", MGGuayuQualityConfig.Get(autoSetData.quanlity).ColorName);
+ qualityText.text = Language.Get("Mingge30", UIHelper.AppendColor(autoSetData.quanlity, qualityName, true, 2));
+ });
+ }
+
+
+ void OnRefreshFightAttrCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as MinggeAutoSetCell;
+ _cell.Display(2, cell.index, autoSetData, (value) =>
+ {
+ fightAttrScroller.SetActive(false);
+ autoSetData.fightAttrID = value;
+ fightAttrText.text = autoSetData.fightAttrID == 0 ? Language.Get("Mingge33") : PlayerPropertyConfig.Get(autoSetData.fightAttrID).Name;
+
+ });
+ }
+
+
+ void OnRefreshDeFightAttrCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as MinggeAutoSetCell;
+ _cell.Display(3, cell.index, autoSetData, (value) =>
+ {
+ deFightAttrScroller.SetActive(false);
+ autoSetData.deFightAttrID = value;
+ deFightAttrText.text = autoSetData.deFightAttrID == 0 ? Language.Get("Mingge33") : PlayerPropertyConfig.Get(autoSetData.deFightAttrID).Name;
+
+ });
+ }
+
+ void OnRefreshSkillCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as MinggeAutoSetCell;
+ _cell.Display(4, cell.index, autoSetData, (value) =>
+ {
+ skillScroller.SetActive(false);
+ autoSetData.skillID = value;
+ skillText.text = autoSetData.skillID == 0 ? Language.Get("Mingge33") : Language.Get($"MinggeSkillType_{autoSetData.skillID}");
+
+ });
+ }
+
+ void OnRefreshUseMoreItemCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as MinggeAutoSetCell;
+ _cell.Display(5, cell.index, autoSetData, (value) =>
+ {
+ useMoreItemScroller.SetActive(false);
+ MinggeManager.Instance.autoCostCount = value;
+ useMoreItemText.text = MinggeManager.Instance.autoCostCount.ToString();
+ });
+ }
+
+
+
+}
+
diff --git a/Main/System/Mingge/MinggeAutoSetWin.cs.meta b/Main/System/Mingge/MinggeAutoSetWin.cs.meta
new file mode 100644
index 0000000..2b6b90a
--- /dev/null
+++ b/Main/System/Mingge/MinggeAutoSetWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cb3d1b698a5646743b6cab34a223e267
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Mingge/MinggeEquipWin.cs b/Main/System/Mingge/MinggeEquipWin.cs
index efd76e7..f6b84f4 100644
--- a/Main/System/Mingge/MinggeEquipWin.cs
+++ b/Main/System/Mingge/MinggeEquipWin.cs
@@ -7,7 +7,6 @@
{
[SerializeField] MinggeEquipChangeCell oldEquipCell;
[SerializeField] MinggeEquipChangeCell newEquipCell;
- [SerializeField] Transform presetObj;
[SerializeField] ScrollRect scrollRect;
[SerializeField] GroupButtonEx[] presetBtns;
List<Text> presetNameTexts = new List<Text>();
@@ -41,6 +40,15 @@
protected override void OnPreClose()
{
PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
+ MinggeManager.Instance.equipShowPresetID = 0;
+ MinggeManager.Instance.selectFloorEquip = null;
+
+ if (!UIManager.Instance.IsOpened<MinggeAutoSetWin>())
+ {
+ MinggeManager.Instance.isPauseAuto = false;
+ }
+ MinggeManager.Instance.redpointAuto.state = RedPointState.None;
+
}
void RefreshItemEvent(PackType packType, int index, int itemID)
@@ -61,7 +69,7 @@
}
if (cnt > 0)
{
- presetObj.SetActive(true);
+ scrollRect.SetActive(true);
for (int i = 0; i < presetBtns.Length; i++)
{
if (i < cnt)
@@ -80,7 +88,7 @@
}
else
{
- presetObj.SetActive(false);
+ scrollRect.SetActive(false);
}
if (MinggeManager.Instance.selectFloorEquip == null || MinggeManager.Instance.selectFloorEquip.config == null)
{
diff --git a/Main/System/Mingge/MinggeManager.cs b/Main/System/Mingge/MinggeManager.cs
index 3cc689d..293ab54 100644
--- a/Main/System/Mingge/MinggeManager.cs
+++ b/Main/System/Mingge/MinggeManager.cs
@@ -2,6 +2,7 @@
using UnityEngine;
using LitJson;
using System;
+using System.Linq;
public class MinggeManager : GameSystemManager<MinggeManager>
@@ -20,11 +21,8 @@
public Dictionary<int, long> minggeAttrDict = new Dictionary<int, long>();
- //鑷姩璁剧疆
- public int autoCostCnt; //鑷姩鎺ㄦ紨娑堣�椾釜鏁�
- public bool isOpenAuto;
-
+ public bool qlNotNotify;
//閰嶇疆
public const int TotleEquip = 12; //涓�濂楄澶囩殑鎬绘暟
@@ -39,21 +37,25 @@
public override void Init()
{
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeRelogin;
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent += OnEquipResult;
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOK;
FuncPresetManager.Instance.OnFuncPresetUseDataEvent += OnFuncPresetUseDataEvent;
+ GlobalTimeEvent.Instance.MSEvent += OnMSEvent;
ParseConfig();
}
public override void Release()
{
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeRelogin;
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent -= OnEquipResult;
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOK;
FuncPresetManager.Instance.OnFuncPresetUseDataEvent -= OnFuncPresetUseDataEvent;
+ GlobalTimeEvent.Instance.MSEvent -= OnMSEvent;
}
@@ -69,6 +71,13 @@
minggeItemTypeList = JsonMapper.ToObject<int[]>(config.Numerical4);
minggeSkillTypeIDList = JsonMapper.ToObject<int[]>(config.Numerical5);
+ config = FuncConfigConfig.Get("MinggeTY2");
+ fightAttrIDList = JsonMapper.ToObject<int[]>(config.Numerical1);
+ deFightAttrIDList = JsonMapper.ToObject<int[]>(config.Numerical2);
+ autoCostCntList = JsonMapper.ToObject<int[]>(config.Numerical3);
+ autoTYCDs = JsonMapper.ToObject<float[]>(config.Numerical4);
+ needOfficialRank = int.Parse(config.Numerical5);
+
for (int i = 0; i < minggeItemTypeList.Length; i++)
{
minggeSkillEquipPlaceList.Add(MGGuayuTypeConfig.Get(minggeItemTypeList[i]).EquipPlace);
@@ -77,17 +86,26 @@
}
- private void OnBeforePlayerDataInitialize()
+ private void OnBeforePlayerDataInitializeRelogin()
{
m_GanwuLV = 1;
m_GanwuExp = 0;
m_Lingying = 0;
+ isStartAuto = false;
+ isPauseAuto = false;
+ qlNotNotify = false;
+ }
+
+ private void OnBeforePlayerDataInitialize()
+ {
waitTYOPPack = false;
}
void OnPlayerLoginOK()
{
+ InitAutoSet();
UpdateRedPoint();
+ redpointAuto.state = RedPointState.None;
}
private void OnEquipResult(HA814_tagMCMakeItemAnswer info)
@@ -96,7 +114,7 @@
return;
OnOPCallbackEvent?.Invoke(0);
-
+
}
void RefreshItemEvent(PackType type, int index, int itemID)
@@ -141,7 +159,7 @@
public void UpdateMinggeInfo(HB132_tagSCMinggeInfo netPack)
{
- var beforeLV= m_GanwuLV;
+ var beforeLV = m_GanwuLV;
m_GanwuLV = netPack.GanwuLV;
m_GanwuExp = (int)netPack.GanwuExp;
m_Lingying = (int)netPack.Lingying;
@@ -220,10 +238,23 @@
}
//鑷姩澶勭悊锛� 鍒ゆ柇鍒嗚В 鍜屾垬鍔涢珮浣� 鍜屽喅瀹氭槸鍝釜鏂规涓嬬殑瑁呭瀵规瘮
+ int autoPreseetID;
+ if (!AutoCalcMG(equip, out autoPreseetID))
+ {
+ return false;
+ }
+
//闈炶嚜鍔ㄦ儏鍐典笅锛岄粯璁ゅ綋鍓嶆柟妗�
- equipShowPresetID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
+ if (autoPreseetID == 0)
+ {
+ equipShowPresetID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
+ }
+ else
+ {
+ equipShowPresetID = autoPreseetID;
+ }
selectFloorEquip = equip;
if (UIManager.Instance.IsOpened<MinggeWin>())
{
@@ -236,6 +267,12 @@
{
UIManager.Instance.OpenWindow<MinggeEquipWin>();
}
+ }
+ else
+ {
+ //鎵撳紑鐣岄潰 涓斿閮ㄦ彁閱掓湁闇�瑕佸鐞嗙殑瑁呭锛屽湪鍏抽棴鐣岄潰鐨勬椂鍊欏垽鏂噸缃爣璇�
+ isPauseAuto = true;
+ redpointAuto.state = RedPointState.Simple;
}
return true;
@@ -270,6 +307,22 @@
var pack = new CB250_tagCSMinggeTuiyan();
pack.Count = (byte)count;
GameNetSystem.Instance.SendInfo(pack);
+ if (isStartAuto && UIManager.Instance.IsOpened<MinggeWin>())
+ {
+ //鏄剧ず鐗规晥
+ var ui = UIManager.Instance.GetUI<MinggeWin>();
+ ui.tyEffect.onComplete = null;
+ ui.tyEffect.Play();
+ if (autoSpeedUP)
+ {
+ ui.tyEffect.speedRate = autoTYCDs[0] / autoTYCDs[1];
+ }
+ else
+ {
+ ui.tyEffect.speedRate = 1;
+ }
+
+ }
}
public void SendChangeMingge(int selectMinggePresetID, int dropIndex, bool autodec)
@@ -325,7 +378,50 @@
}
+ public List<int> GetQLRate(int value)
+ {
+ var keys = MGLingyingQualityConfig.GetKeys();
+ keys.Sort();
+ int littleValue = 0;
+ int bigValue = 0;
+ for (int i = 0; i < keys.Count; i++)
+ {
+ var key = keys[i];
+ if (value < key)
+ {
+ bigValue = key;
+ littleValue = keys[i - 1];
+ break;
+ }
+ else if (i == keys.Count - 1 && value >= key)
+ {
+ bigValue = key;
+ littleValue = key;
+ }
+ }
+
+ var littleRateList = MGLingyingQualityConfig.Get(littleValue).ItemColorWeightList;
+ if (littleValue == bigValue)
+ {
+ return littleRateList.ToList();
+ }
+ var bigRateList = MGLingyingQualityConfig.Get(bigValue).ItemColorWeightList;
+
+ //瀵规瘮涓嬩竴闃舵鐨勭伒搴斿�奸厤缃紝姣旇緝鍚屽搧璐ㄧ殑鏉冮噸宸�间笌涓や釜闃舵鐨勭伒搴斿樊鍊兼眰鍑烘瘡澧炲姞1鐐圭伒搴斿鏌愪釜鍝佽川鐨勬潈閲嶅彉鍖栧�硷紝鍙樺寲鍊煎彲鑳芥彁鍗囨垨鑰呴檷浣�
+
+ var rateList = new List<int>();
+
+ for (int i = 0; i < littleRateList.Length; i++)
+ {
+ var littleRateValue = littleRateList[i];
+ var bigRateValue = bigRateList[i];
+ var diffRate = littleRateValue + (bigRateValue - littleRateValue) / (float)(bigValue - littleValue) * (value - littleValue);
+ rateList.Add((int)diffRate);
+ }
+
+ return rateList;
+ }
#region 绾㈢偣
@@ -333,7 +429,7 @@
Redpoint redpointMG = new Redpoint(MainRedDot.RedPoint_Mingge, MainRedDot.RedPoint_Mingge * 10 + 1);
Redpoint redpointPray = new Redpoint(MainRedDot.RedPoint_Mingge, MainRedDot.RedPoint_Mingge * 10 + 2);
Redpoint redpointPreset = new Redpoint(MainRedDot.RedPoint_Mingge, MainRedDot.RedPoint_Mingge * 10 + 3);
-
+ public Redpoint redpointAuto = new Redpoint(MainRedDot.RedPoint_Mingge, MainRedDot.RedPoint_Mingge * 10 + 4);
void UpdateRedPoint()
{
@@ -344,7 +440,7 @@
{
return;
}
- if (PackManager.Instance.GetItemCountByID(PackType.Item, tyItemID) > 0)
+ if (PackManager.Instance.GetItemCountByID(PackType.Item, tyItemID) > 0 && !isStartAuto)
{
redpointMG.state = RedPointState.Simple;
}
@@ -360,4 +456,505 @@
}
#endregion
+
+
+ #region 鑷姩璁剧疆
+
+ public int[] fightAttrIDList;
+ public int[] deFightAttrIDList;
+ public int[] autoCostCntList;
+ public float[] autoTYCDs; //绉�
+ public float autoTYTime;
+ public int needOfficialRank;
+
+ //鍏叡閮ㄥ垎
+ public bool autoCostToggle
+ {
+ get
+ {
+ return LocalSave.GetBool($"MGCost_{PlayerDatas.Instance.baseData.PlayerID}", false);
+ }
+ set
+ {
+ LocalSave.SetBool($"MGCost_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ public int autoCostCount
+ {
+ get
+ {
+ return LocalSave.GetInt($"MGCostCnt_{PlayerDatas.Instance.baseData.PlayerID}", 1);
+ }
+ set
+ {
+ LocalSave.SetInt($"MGCostCnt_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ public bool autoSpeedUP
+ {
+ get
+ {
+ return LocalSave.GetBool($"MGSpeedUP_{PlayerDatas.Instance.baseData.PlayerID}", false);
+ }
+ set
+ {
+ LocalSave.SetBool($"MGSpeedUP_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+
+
+ public event Action ChangeAutoEvent;
+
+ bool m_IsStartAuto;
+ //鏄惁寮�鍚嚜鍔�
+ public bool isStartAuto
+ {
+ get
+ {
+ return m_IsStartAuto;
+ }
+ private set
+ {
+ m_IsStartAuto = value;
+ isPauseAuto = false;
+ UpdateRedPoint();
+ ChangeAutoEvent?.Invoke();
+ }
+ }
+ public bool isPauseAuto; //寮�鍚殑鎯呭喌涓嬶紝鍥犱负鏌愪簺鍘熷洜鏆傚仠鑷姩
+
+
+ //姣忓鏂规鍚勮嚜鐨勪俊鎭�
+ public List<MinggeAutoSet> autoSetList = new List<MinggeAutoSet>();
+
+ public void InitAutoSet()
+ {
+ autoSetList.Clear();
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Mingge))
+ {
+ return;
+ }
+ var maxCnt = PresetUnlockConfig.GetFuncPresetMaxCount((int)FuncPresetType.Mingge);
+ for (int i = 1; i <= maxCnt; i++)
+ {
+ var autoSet = new MinggeAutoSet();
+ autoSet.presetID = i;
+ autoSetList.Add(autoSet);
+ }
+ }
+
+ public MinggeAutoSet GetMGAutoSet(int presetID)
+ {
+ for (int i = 0; i < autoSetList.Count; i++)
+ {
+ if (autoSetList[i].presetID == presetID)
+ {
+ return autoSetList[i];
+ }
+ }
+ return null;
+ }
+
+ //妫�鏌ヨ嚦灏戣鏈変竴涓惎鍔ㄤ腑
+ public bool CanChangeStartToFalse(int presetID)
+ {
+ for (int i = 0; i < autoSetList.Count; i++)
+ {
+ if (autoSetList[i].presetID != presetID && autoSetList[i].startToggle)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void StartAuto(bool isStart)
+ {
+ if (isStart)
+ {
+ bool canStart = false;
+ for (int i = 0; i < autoSetList.Count; i++)
+ {
+ if (autoSetList[i].startToggle)
+ {
+ canStart = true;
+ }
+ }
+
+ if (!canStart)
+ {
+ SysNotifyMgr.Instance.ShowTip("MinggeAuto2");
+ isStartAuto = false;
+ return;
+ }
+
+
+ if (!ItemLogicUtility.CheckItemCount(PackType.Item, tyItemID, autoCostCount, 2))
+ {
+ isStartAuto = false;
+ return;
+ }
+ }
+ UIManager.Instance.CloseWindow<MinggeAutoSetWin>();
+ isStartAuto = isStart;
+ if (isStartAuto)
+ {
+ //鍏堝鐞嗚澶囦竴娆★紝鍚庣画閫氳繃鐗╁搧鍖呰嚜鍔ㄥ鐞�
+ CalcEquip();
+ }
+ else
+ {
+ SysNotifyMgr.Instance.ShowTip("MinggeAuto1");
+ }
+ }
+
+ //鑷姩澶勭悊瑁呭锛岃繑鍥炴垚鍔熶唬琛ㄩ渶瑕佹墜鍔ㄥ鐞嗚澶囷紝鍏朵粬鎯呭喌涓�寰嬭繑鍥瀎alse濡傚垎瑙� 鎴栭槻鑼�
+ bool AutoCalcMG(ItemModel mgEquip, out int autoPreseetID)
+ {
+ autoPreseetID = 0;
+ if (mgEquip == null)
+ {
+ return false;
+ }
+
+ if (!isStartAuto)
+ return true;
+
+ //浼樺厛鍒ゆ柇褰撳墠鏂规鍛芥牸
+ var curPresetID = FuncPresetManager.Instance.GetFuncPresetID((int)FuncPresetType.Mingge);
+ var autoSet = GetMGAutoSet(curPresetID);
+
+
+ if (!CanDecomposeMG(mgEquip, autoSet))
+ {
+ autoPreseetID = curPresetID;
+ return true;
+ }
+ //鍒ゆ柇鍏朵粬鏂规
+ for (int i = 0; i < autoSetList.Count; i++)
+ {
+ if (autoSetList[i].presetID == curPresetID)
+ {
+ continue;
+ }
+ if (!CanDecomposeMG(mgEquip, autoSetList[i]))
+ {
+ autoPreseetID = autoSetList[i].presetID;
+ return true;
+ }
+ }
+
+ SendDecompose(new byte[] { (byte)mgEquip.gridIndex });
+ return false;
+ }
+
+ //鍗曟柟妗堝垽鏂紝鏈紑鍚殑涔熷綋浣滃彲鍒嗚В锛屽灞傚濂楀垽鏂湁涓�濂楅渶瑕佸氨鏄渶瑕佺┛鎴�
+ bool CanDecomposeMG(ItemModel mgEquip, MinggeAutoSet autoSet)
+ {
+ if (!autoSet.startToggle)
+ {
+ return true;
+ }
+ if (mgEquip.config.ItemColor < autoSet.quanlity)
+ {
+ //鍝佽川涓嶆弧瓒�
+ return true;
+ }
+ if (!autoSet.fightPowerToggle && !autoSet.fightAttrToggle && !autoSet.skillToggle)
+ {
+ //閮戒笉鍕鹃��
+ return true;
+ }
+
+
+ //鍏堝垽鏂妧鑳斤紝鍐嶅垽鏂睘鎬� 鏈�鍚庢垬鍔涳紙姣旇緝娑堣�楋級
+
+ //鎶�鑳藉嬀閫夌殑鎯呭喌
+ if (autoSet.skillToggle && !autoSet.fightPowerToggle && !autoSet.fightAttrToggle)
+ {
+ return !IsSkillOK(mgEquip, autoSet);
+ }
+
+ if (autoSet.skillToggle && autoSet.fightAttrToggle && !autoSet.fightPowerToggle)
+ {
+ if (autoSet.andOrSkillToggle == 1)
+ {
+ return !(IsSkillOK(mgEquip, autoSet) && IsFightAttrOK(mgEquip, autoSet));
+ }
+ else
+ {
+ return !(IsSkillOK(mgEquip, autoSet) || IsFightAttrOK(mgEquip, autoSet));
+ }
+ }
+
+ if (autoSet.skillToggle && autoSet.fightPowerToggle && !autoSet.fightAttrToggle)
+ {
+ if (autoSet.andOrSkillToggle == 1)
+ {
+ return !(IsSkillOK(mgEquip, autoSet) && IsFightPowerOK(mgEquip, autoSet));
+ }
+ else
+ {
+ return !(IsSkillOK(mgEquip, autoSet) || IsFightPowerOK(mgEquip, autoSet));
+ }
+ }
+
+ if (autoSet.skillToggle && autoSet.fightPowerToggle && autoSet.fightAttrToggle)
+ {
+ if (autoSet.andOrSkillToggle == 1 && autoSet.andOrFPToggle == 1)
+ {
+ return !(IsSkillOK(mgEquip, autoSet) && IsFightAttrOK(mgEquip, autoSet) && IsFightPowerOK(mgEquip, autoSet));
+ }
+ else if (autoSet.andOrSkillToggle == 1 && autoSet.andOrFPToggle == 2)
+ {
+ return !((IsSkillOK(mgEquip, autoSet) && IsFightAttrOK(mgEquip, autoSet)) || IsFightPowerOK(mgEquip, autoSet));
+ }
+ else if (autoSet.andOrSkillToggle == 2 && autoSet.andOrFPToggle == 1)
+ {
+ return !((IsFightAttrOK(mgEquip, autoSet) && IsFightPowerOK(mgEquip, autoSet)) || IsSkillOK(mgEquip, autoSet));
+ }
+ else
+ {
+ return !(IsSkillOK(mgEquip, autoSet) || IsFightAttrOK(mgEquip, autoSet) || IsFightPowerOK(mgEquip, autoSet));
+ }
+ }
+
+ //灞炴�у嬀閫夌殑鎯呭喌
+ if (autoSet.fightAttrToggle && !autoSet.fightPowerToggle)
+ {
+ return !IsFightAttrOK(mgEquip, autoSet);
+ }
+ if (autoSet.fightAttrToggle && autoSet.fightPowerToggle)
+ {
+ if (autoSet.andOrFPToggle == 1)
+ {
+ return !(IsFightAttrOK(mgEquip, autoSet) && IsFightPowerOK(mgEquip, autoSet));
+ }
+ else
+ {
+ return !(IsFightAttrOK(mgEquip, autoSet) || IsFightPowerOK(mgEquip, autoSet));
+ }
+ }
+
+ //鎴樺姏鍕鹃�夌殑鎯呭喌
+ if (autoSet.fightPowerToggle)
+ {
+ return !IsFightPowerOK(mgEquip, autoSet);
+ }
+
+ return false;
+ }
+
+ //鎶�鑳芥槸鍚︽弧瓒虫潯浠�
+ bool IsSkillOK(ItemModel mgEquip, MinggeAutoSet autoSet)
+ {
+ var skillID = EquipModel.Instance.GetEquipSkillID(mgEquip);
+ if (skillID == 0)
+ {
+ return false;
+ }
+ if (autoSet.skillID == 0)
+ {
+ //浠绘剰
+ return true;
+ }
+ if (skillID != autoSet.skillID)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ //灞炴�ф槸鍚︽弧瓒虫潯浠�
+ bool IsFightAttrOK(ItemModel mgEquip, MinggeAutoSet autoSet)
+ {
+ var fightAttrs = EquipModel.Instance.GetEquipFightAttrs(mgEquip);
+
+ // 濡傛灉鎸囧畾浜嗗睘鎬э紝鍒欐鏌ヨ澶囨槸鍚﹀寘鍚灞炴��
+ bool deFightAttrOK = autoSet.deFightAttrID == 0 || fightAttrs.Contains(autoSet.deFightAttrID);
+ bool fightAttrOK = autoSet.fightAttrID == 0 || fightAttrs.Contains(autoSet.fightAttrID);
+
+ return deFightAttrOK && fightAttrOK;
+ }
+
+ bool IsFightPowerOK(ItemModel mgEquip, MinggeAutoSet autoSet)
+ {
+ long showFightPower = FightPowerManager.Instance.GetFightPowerMinggeChange(mgEquip, autoSet.presetID);
+ if (showFightPower >= 0)
+ {
+ return true;
+ }
+ return false;
+ }
+
+
+ public void AutoTY()
+ {
+ //鍏堝鐞嗚澶囷紝鍐嶆帹婕�
+ // 姣忎竴濂楁柟妗堥兘瑕佺患鍚堝垽鏂�
+ // if (CalcEquip())
+ // {
+ // return;
+ // }
+ if (UIManager.Instance.IsOpened<MinggeEquipWin>())
+ {
+ return;
+ }
+
+ if (!PackManager.Instance.GetItems(PackType.MinggeDrop).IsNullOrEmpty())
+ {
+ return;
+ }
+
+ if (!ItemLogicUtility.CheckItemCount(PackType.Item, tyItemID, autoCostCount, 1))
+ {
+ isStartAuto = false;
+ SysNotifyMgr.Instance.ShowTip("MinggeAuto1");
+ return;
+ }
+ SendTY(autoCostCount);
+ autoTYTime = Time.time;
+ }
+
+ void OnMSEvent()
+ {
+ if (isPauseAuto)
+ {
+ return;
+ }
+ if (!isStartAuto)
+ {
+ return;
+ }
+ if (Time.time - autoTYTime < autoTYCDs[autoSpeedUP ? 1 : 0])
+ {
+ return;
+ }
+
+ AutoTY();
+ }
+
+ #endregion
+}
+
+public class MinggeAutoSet
+{
+ public int presetID;
+ public bool startToggle
+ {
+ get
+ {
+ return LocalSave.GetBool($"MGStart{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", false);
+ }
+ set
+ {
+ LocalSave.SetBool($"MGStart{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ public int quanlity
+ {
+ get
+ {
+ return LocalSave.GetInt($"MGQuanlity{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", 1);
+ }
+ set
+ {
+ LocalSave.SetInt($"MGQuanlity{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ public bool fightPowerToggle
+ {
+ get
+ {
+ return LocalSave.GetBool($"MGFightPower{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", false);
+ }
+ set
+ {
+ LocalSave.SetBool($"MGFightPower{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ //0 閮戒笉鍕鹃�� 1鍚屾椂 2 鎴栬��
+ public int andOrFPToggle
+ {
+ get
+ {
+ return LocalSave.GetInt($"MGAndOrFP{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", 0);
+ }
+ set
+ {
+ LocalSave.SetInt($"MGAndOrFP{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+
+ public bool fightAttrToggle
+ {
+ get
+ {
+ return LocalSave.GetBool($"MGFightAttr{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", false);
+ }
+ set
+ {
+ LocalSave.SetBool($"MGFightAttr{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ public int fightAttrID
+ {
+ get
+ {
+ return LocalSave.GetInt($"MGFightAttrID{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", 0);
+ }
+ set
+ {
+ LocalSave.SetInt($"MGFightAttrID{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ public int deFightAttrID
+ {
+ get
+ {
+ return LocalSave.GetInt($"MGDeFightAttrID{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", 0);
+ }
+ set
+ {
+ LocalSave.SetInt($"MGDeFightAttrID{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ public bool skillToggle
+ {
+ get
+ {
+ return LocalSave.GetBool($"MGSkill{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", false);
+ }
+ set
+ {
+ LocalSave.SetBool($"MGSkill{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ public int skillID
+ {
+ get
+ {
+ return LocalSave.GetInt($"MGSkillID{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", 0);
+ }
+ set
+ {
+ LocalSave.SetInt($"MGSkillID{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+ //0 閮戒笉鍕鹃�� 1鍚屾椂 2 鎴栬��
+ public int andOrSkillToggle
+ {
+ get
+ {
+ return LocalSave.GetInt($"MGAndOrSkill{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", 0);
+ }
+ set
+ {
+ LocalSave.SetInt($"MGAndOrSkill{presetID}_{PlayerDatas.Instance.baseData.PlayerID}", value);
+ }
+ }
+
+
+
}
\ No newline at end of file
diff --git a/Main/System/Mingge/MinggePrayWin.cs b/Main/System/Mingge/MinggePrayWin.cs
index cb54675..e91f3f9 100644
--- a/Main/System/Mingge/MinggePrayWin.cs
+++ b/Main/System/Mingge/MinggePrayWin.cs
@@ -60,8 +60,8 @@
void DisplayPrayRate()
{
qlValueText.text = MinggeManager.Instance.m_Lingying.ToString();
- var littleRateList = GetRate(MinggeManager.Instance.m_Lingying);
- var bigRateList = GetRate(MinggeManager.Instance.m_Lingying + useCnt);
+ var littleRateList = MinggeManager.Instance.GetQLRate(MinggeManager.Instance.m_Lingying);
+ var bigRateList = MinggeManager.Instance.GetQLRate(MinggeManager.Instance.m_Lingying + useCnt);
for (int i = 0; i < prayRateCells.Length; i++)
{
@@ -109,49 +109,6 @@
}
- public List<int> GetRate(int value)
- {
- var keys = MGLingyingQualityConfig.GetKeys();
- keys.Sort();
-
- int littleValue = 0;
- int bigValue = 0;
- for (int i = 0; i < keys.Count; i++)
- {
- var key = keys[i];
- if (value < key)
- {
- bigValue = key;
- littleValue = keys[i - 1];
- break;
- }
- else if (i == keys.Count - 1 && value >= key)
- {
- bigValue = key;
- littleValue = key;
- }
- }
-
- var littleRateList = MGLingyingQualityConfig.Get(littleValue).ItemColorWeightList;
- if (littleValue == bigValue)
- {
- return littleRateList.ToList();
- }
- var bigRateList = MGLingyingQualityConfig.Get(bigValue).ItemColorWeightList;
-
- //瀵规瘮涓嬩竴闃舵鐨勭伒搴斿�奸厤缃紝姣旇緝鍚屽搧璐ㄧ殑鏉冮噸宸�间笌涓や釜闃舵鐨勭伒搴斿樊鍊兼眰鍑烘瘡澧炲姞1鐐圭伒搴斿鏌愪釜鍝佽川鐨勬潈閲嶅彉鍖栧�硷紝鍙樺寲鍊煎彲鑳芥彁鍗囨垨鑰呴檷浣�
-
- var rateList = new List<int>();
-
- for (int i = 0; i < littleRateList.Length; i++)
- {
- var littleRateValue = littleRateList[i];
- var bigRateValue = bigRateList[i];
- var diffRate = littleRateValue + (bigRateValue - littleRateValue) / (float)(bigValue - littleValue) * (value - littleValue);
- rateList.Add((int)diffRate);
- }
-
- return rateList;
- }
+
}
diff --git a/Main/System/Mingge/MinggeWin.cs b/Main/System/Mingge/MinggeWin.cs
index 9c3d6a6..0bbe61b 100644
--- a/Main/System/Mingge/MinggeWin.cs
+++ b/Main/System/Mingge/MinggeWin.cs
@@ -7,7 +7,7 @@
{
[SerializeField] Button seeAttrBtn;
[SerializeField] MinggeEquipCell[] equipCells;
- [SerializeField] UIEffectPlayer tyEffect; //鎺ㄦ紨鐗规晥
+ [SerializeField] public UIEffectPlayer tyEffect; //鎺ㄦ紨鐗规晥
[SerializeField] Image dropIcon;
[SerializeField] Image dropSkillIcon;
[SerializeField] MoneyMoveByPath moneyMoveByPathCell; //鎺夎惤鐗╅噾閽�
@@ -78,6 +78,7 @@
MinggeManager.Instance.OnMinggeInfoUpdate += OnMinggeInfoUpdate;
UIManager.Instance.OnCloseWindow += OnCloseWindow;
FuncPresetManager.Instance.OnFuncPresetUseDataEvent += OnFuncPresetUseDataEvent;
+ MinggeManager.Instance.ChangeAutoEvent += ChangeAutoEvent;
lastLV = MinggeManager.Instance.m_GanwuLV;
lastExp = MinggeManager.Instance.m_GanwuExp;
Display();
@@ -92,7 +93,17 @@
MinggeManager.Instance.OnMinggeInfoUpdate -= OnMinggeInfoUpdate;
UIManager.Instance.OnCloseWindow -= OnCloseWindow;
FuncPresetManager.Instance.OnFuncPresetUseDataEvent -= OnFuncPresetUseDataEvent;
+ MinggeManager.Instance.ChangeAutoEvent -= ChangeAutoEvent;
}
+
+ protected override void NextFrameAfterOpen()
+ {
+ if (MinggeManager.Instance.isPauseAuto)
+ {
+ MinggeManager.Instance.CalcEquip();
+ }
+ }
+
void OnCloseWindow(UIBase win)
{
@@ -112,6 +123,20 @@
Display();
}
+ void ChangeAutoEvent()
+ {
+ if (MinggeManager.Instance.isStartAuto)
+ {
+ autoImg.SetActive(false);
+ autoEffect.Play();
+ }
+ else
+ {
+ autoImg.SetActive(true);
+ autoEffect.Stop();
+ }
+ }
+
void Display()
{
DisplayMGGanwu();
@@ -123,6 +148,8 @@
presetChooseCells.Display((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
funPresetBtn.SetActive(FuncPresetManager.Instance.IsPreShow());
+ ChangeAutoEvent();
+
}
void RefreshItemEvent(PackType type, int index, int itemID)
{
@@ -216,6 +243,10 @@
void SendTuiyan()
{
+ if (MinggeManager.Instance.isStartAuto)
+ {
+ MinggeManager.Instance.StartAuto(false);
+ }
if (MinggeManager.Instance.CalcEquip())
{
return;
@@ -231,7 +262,12 @@
return;
}
- tyEffect.onComplete += () =>
+ if (MinggeManager.Instance.isStartAuto)
+ {
+ MinggeManager.Instance.StartAuto(false);
+ }
+ tyEffect.speedRate = 1;
+ tyEffect.onComplete = () =>
{
MinggeManager.Instance.SendTY(1);
};
@@ -295,7 +331,16 @@
void AutoTY()
{
-
+ if (InvestModel.Instance.IsInvested(InvestModel.monthCardType) ||
+ PlayerDatas.Instance.baseData.realmLevel >= MinggeManager.Instance.needOfficialRank)
+ {
+ UIManager.Instance.OpenWindow<MinggeAutoSetWin>();
+ }
+ else
+ {
+ SysNotifyMgr.Instance.ShowTip("MinggeAuto6", RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel).Name);
+ UIManager.Instance.OpenWindow<PrivilegeCardWin>();
+ }
}
}
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
index b373111..52ce53f 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
@@ -84,6 +84,8 @@
{
if (type != PackType.Item)
return;
+ if (itemID <= 0)
+ return;
if (ItemConfig.Get(itemID).Type != 146)
return;
UpdateRedPoint();
--
Gitblit v1.8.0