From 8589ec3bb98ff6c0207d0783838454204956418e Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 29 一月 2026 15:43:52 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Guild/GuildNoteNormalCell.cs | 30 +
Main/System/BoneField/AdsManager.cs | 2
Main/System/HeroUI/HeroGiftLineCell.cs | 4
Main/System/Guild/GuildNoteNormalCell.cs.meta | 11
Main/System/PhantasmPavilion/PhantasmPavilionManager.cs | 2
Main/System/FuncPreset/FuncPresetChooseCells.cs | 5
Main/System/Guild/GuildNoteHeaderCell.cs | 14
Main/System/Mingge/MinggeEquipWin.cs | 14
Main/System/Mingge/MinggeManager.cs | 617 ++++++++++++++++++++
Main/Config/Configs/FBDJGEffectConfig.cs | 5
Main/System/Guild/PlayerFairyData.cs | 3
Main/System/Message/GMNotify.cs | 4
Main/System/Guild/GuildManager.cs | 7
Main/System/Mingge/MinggeAutoSetCell.cs | 58 +
Main/Config/Configs/HeroTalentConfig.cs | 11
Main/System/KnapSack/PackManager.cs | 2
Main/System/InternalAffairs/AffairBaseWin.cs | 25
Main/System/Mingge/MinggeWin.cs | 84 ++
Main/System/Mingge/MinggePrayWin.cs | 49 -
Main/System/Guild/GuildNoteHeaderCell.cs.meta | 11
Main/System/Guild/GuildOPWin.cs | 2
Main/System/Guild/GuildNoteWin.cs.meta | 11
Main/System/Mingge/MinggeAutoSetWin.cs | 530 +++++++++++++++++
Main/System/BeautyMM/BeautyMMTravelWin.cs | 11
Main/System/Guild/GuildNoteWin.cs | 227 +++++++
Main/System/HeroUI/HeroGiftWin.cs | 16
Main/System/Main/MainWin.cs | 8
Main/System/Mingge/MinggeAutoSetWin.cs.meta | 11
Main/System/WarlordPavilion/WarlordPavilionManager.cs | 2
Main/System/Mingge/MinggeAutoSetCell.cs.meta | 11
30 files changed, 1,711 insertions(+), 76 deletions(-)
diff --git a/Main/Config/Configs/FBDJGEffectConfig.cs b/Main/Config/Configs/FBDJGEffectConfig.cs
index b06b61c..8e2d17a 100644
--- a/Main/Config/Configs/FBDJGEffectConfig.cs
+++ b/Main/Config/Configs/FBDJGEffectConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: Thursday, January 8, 2026
+// [ Date ]: 2026骞�1鏈�28鏃�
//--------------------------------------------------------
using System.Collections.Generic;
@@ -21,6 +21,7 @@
public int EffQuality;
public int AttrID;
public int AttrValue;
+ public int RandWeight;
public override int LoadKey(string _key)
{
@@ -41,6 +42,8 @@
int.TryParse(tables[3],out AttrID);
int.TryParse(tables[4],out AttrValue);
+
+ int.TryParse(tables[5],out RandWeight);
}
catch (Exception exception)
{
diff --git a/Main/Config/Configs/HeroTalentConfig.cs b/Main/Config/Configs/HeroTalentConfig.cs
index 0462a49..459636a 100644
--- a/Main/Config/Configs/HeroTalentConfig.cs
+++ b/Main/Config/Configs/HeroTalentConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�8鏈�5鏃�
+// [ Date ]: Wednesday, January 28, 2026
//--------------------------------------------------------
using System.Collections.Generic;
@@ -21,6 +21,9 @@
public int Quality;
public int AttrID;
public int AttrValue;
+ public int InitWeight;
+ public int WashWeight;
+ public int AweakWeight;
public override int LoadKey(string _key)
{
@@ -41,6 +44,12 @@
int.TryParse(tables[3],out AttrID);
int.TryParse(tables[4],out AttrValue);
+
+ int.TryParse(tables[5],out InitWeight);
+
+ int.TryParse(tables[6],out WashWeight);
+
+ int.TryParse(tables[7],out AweakWeight);
}
catch (Exception exception)
{
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/FuncPreset/FuncPresetChooseCells.cs b/Main/System/FuncPreset/FuncPresetChooseCells.cs
index 23f94a1..bc2cfbc 100644
--- a/Main/System/FuncPreset/FuncPresetChooseCells.cs
+++ b/Main/System/FuncPreset/FuncPresetChooseCells.cs
@@ -44,6 +44,11 @@
curFuncType = funcType;
var selectID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType(battleType, funcType);
+ if (unFoldID != 0 && selectID != unFoldID)
+ {
+ //鍏朵粬鍦版柟鍒囨崲浜嗘柟妗堬紝闇�瑕侀獙璇佸綋鍓嶅睍寮�鏄笉鏄悓涓�涓�
+ unFoldID = 0;
+ }
var showCount = FuncPresetManager.Instance.GetShowFuncPresetCount(funcType);
unFoldBtn.SetActive(showCount > 4);
unFoldBtn.AddListener(() =>
diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index f6e8e11..c3141b7 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -180,7 +180,7 @@
public int zbgOrgPriceValue;
public int zbgChangFamilyCD;
public List<int> cutCntListForTalk = new List<int>();
-
+ public int familyRecordMaxCount;
void ParseConfig()
{
@@ -219,6 +219,9 @@
zbgOrgPriceValue = int.Parse(config.Numerical2);
zbgChangFamilyCD = int.Parse(config.Numerical3);
cutCntListForTalk = JsonMapper.ToObject<List<int>>(config.Numerical4);
+
+ config = FuncConfigConfig.Get("FamilyNote");
+ familyRecordMaxCount = int.Parse(config.Numerical1);
}
@@ -865,7 +868,7 @@
return false;
}
bool restart = false;
-
+
for (int i = 0; i < vNetData.FamilyActionList.Length; i++)
{
int playerID = (int)vNetData.FamilyActionList[i].Value1;
diff --git a/Main/System/Guild/GuildNoteHeaderCell.cs b/Main/System/Guild/GuildNoteHeaderCell.cs
new file mode 100644
index 0000000..650ae82
--- /dev/null
+++ b/Main/System/Guild/GuildNoteHeaderCell.cs
@@ -0,0 +1,14 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public class GuildNoteHeaderCell : MonoBehaviour
+{
+ [SerializeField] TextEx date;
+ public void Display(int index, List<GuildNoteData> datas)
+ {
+ if (datas.IsNullOrEmpty() || index < 0 || index >= datas.Count)
+ return;
+ date.text = datas[index].Info;
+ }
+
+}
\ No newline at end of file
diff --git a/Main/System/Guild/GuildNoteHeaderCell.cs.meta b/Main/System/Guild/GuildNoteHeaderCell.cs.meta
new file mode 100644
index 0000000..086a892
--- /dev/null
+++ b/Main/System/Guild/GuildNoteHeaderCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c3a277ed730042a4987a4cc292e794a5
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Guild/GuildNoteNormalCell.cs b/Main/System/Guild/GuildNoteNormalCell.cs
new file mode 100644
index 0000000..124ec3c
--- /dev/null
+++ b/Main/System/Guild/GuildNoteNormalCell.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class GuildNoteNormalCell : MonoBehaviour
+{
+ [SerializeField] TextEx time;
+ [SerializeField] TextEx content;
+
+ public void Display(int index, List<GuildNoteData> datas)
+ {
+ if (datas.IsNullOrEmpty() || index < 0 || index >= datas.Count)
+ return;
+
+ DateTime currentTime = TimeUtility.GetTime(datas[index].Time);
+ time.text = currentTime.ToString("HH:mm");
+ content.text = datas[index].Info;
+ }
+
+ public float GetHeight(string info)
+ {
+ float height = 0f;
+ if (string.IsNullOrEmpty(info))
+ return height;
+
+ content.text = info;
+ height = content.preferredHeight;
+ return height;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Guild/GuildNoteNormalCell.cs.meta b/Main/System/Guild/GuildNoteNormalCell.cs.meta
new file mode 100644
index 0000000..32b7684
--- /dev/null
+++ b/Main/System/Guild/GuildNoteNormalCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e8536aad1963a3244986aedefefbcd5c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Guild/GuildNoteWin.cs b/Main/System/Guild/GuildNoteWin.cs
new file mode 100644
index 0000000..73bcaac
--- /dev/null
+++ b/Main/System/Guild/GuildNoteWin.cs
@@ -0,0 +1,227 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Cysharp.Threading.Tasks;
+using UnityEngine;
+
+/// <summary>
+/// 鍏細鏃ュ織鐣岄潰
+/// </summary>
+public class GuildNoteWin : UIBase
+{
+ [SerializeField] Color32 nameColor;
+ [SerializeField] Transform noNote;
+ [SerializeField] Transform hasNote;
+ [SerializeField] GuildNoteNormalCell guildNoteNormalCell;
+ [SerializeField] ScrollerController scroller;
+ [SerializeField] TextEx maxCount;
+ protected override void OnPreOpen()
+ {
+ GuildManager.Instance.EnterOrQuitGuildEvent += OnEnterOrQuitGuildEvent;
+ GuildManager.Instance.FamilyActionInfoEvent += OnFamilyActionInfoEvent;
+ scroller.OnGetDynamicSize += OnGetChatDynamicSize;
+ scroller.OnRefreshCell += OnRefreshCell;
+
+ maxCount.text = Language.Get("Guild_82", GuildManager.Instance.familyRecordMaxCount);
+
+ GuildManager.Instance.QueryFamilyAction(PlayerDatas.Instance.fairyData.fairy.FamilyID, GuildManager.MemberChangeActionType);
+ }
+
+
+ protected override void OnPreClose()
+ {
+ GuildManager.Instance.EnterOrQuitGuildEvent -= OnEnterOrQuitGuildEvent;
+ GuildManager.Instance.FamilyActionInfoEvent -= OnFamilyActionInfoEvent;
+ scroller.OnGetDynamicSize -= OnGetChatDynamicSize;
+ scroller.OnRefreshCell -= OnRefreshCell;
+ }
+
+ private void OnEnterOrQuitGuildEvent(bool isEnter)
+ {
+ DelayCloseWindow().Forget();
+ }
+
+ private bool OnGetChatDynamicSize(ScrollerDataType type, int index, out float height)
+ {
+ height = 0;
+ if (list.IsNullOrEmpty() || index < 0 || index >= list.Count)
+ return false;
+ var data = list[index];
+ switch (type)
+ {
+ case ScrollerDataType.Header:
+ height = 19;
+ return true;
+ case ScrollerDataType.Normal:
+ height = guildNoteNormalCell.GetHeight(data.Info);
+ return true;
+ }
+ return true;
+ }
+
+ private void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ if (type == ScrollerDataType.Header)
+ {
+ var _cell = cell.GetComponent<GuildNoteHeaderCell>();
+ _cell?.Display(cell.index, list);
+ }
+ else
+ {
+ var _cell = cell.GetComponent<GuildNoteNormalCell>();
+ _cell?.Display(cell.index, list);
+ }
+ }
+
+ private void OnFamilyActionInfoEvent(int familyID, int actionType)
+ {
+ if (familyID != PlayerDatas.Instance.fairyData.fairy.FamilyID)
+ return;
+ if (actionType != GuildManager.MemberChangeActionType)
+ return;
+ Display();
+ }
+
+ List<GuildNoteData> list;
+ private void Display()
+ {
+ if (!GuildManager.Instance.TryGetFamilyActions(GuildManager.MemberChangeActionType, out var actions))
+ {
+ hasNote.SetActive(false);
+ noNote.SetActive(true);
+ return;
+ }
+
+ list = GetShowGuildNoteDataList(actions);
+ bool isNullOrEmpty = list.IsNullOrEmpty();
+ if (isNullOrEmpty)
+ {
+ hasNote.SetActive(false);
+ noNote.SetActive(true);
+ return;
+ }
+
+ scroller.Refresh();
+ if (!isNullOrEmpty)
+ {
+ for (int i = 0; i < list.Count; i++)
+ {
+ if (list[i].ShowType == 0)
+ {
+ scroller.AddCell(ScrollerDataType.Header, i);
+ }
+ else
+ {
+ scroller.AddCell(ScrollerDataType.Normal, i);
+ }
+ }
+ }
+ scroller.Restart();
+
+ noNote.SetActive(isNullOrEmpty);
+ hasNote.SetActive(!isNullOrEmpty);
+
+ }
+
+
+ private List<GuildNoteData> GetShowGuildNoteDataList(HA513_tagMCFamilyActionInfo.tagMCFamilyAction[] actions)
+ {
+ List<GuildNoteData> list = GetGuildNoteDataList(actions);
+ if (list.IsNullOrEmpty())
+ return null;
+
+ var result = new List<GuildNoteData>();
+
+ int lastDay = -1;
+
+ foreach (var noteData in list)
+ {
+ // 鑾峰彇褰撳墠鏉$洰鎵�灞炴棩鏈�
+ DateTime currentTime = TimeUtility.GetTime(noteData.Time);
+ int currentDay = TimeUtility.GetPassDays((int)noteData.Time);
+
+ // 妫�鏌ユ槸鍚﹂渶瑕佹彃鍏ユ棩鏈熸爣棰�
+ if (lastDay == -1 || currentDay != lastDay)
+ {
+ // 鑾峰彇鐩爣澶╃殑鍑屾櫒鏃堕棿鎴�
+ DateTime dayStartTime = TimeUtility.GetDayStartTime(currentTime.Year, currentTime.Month, currentTime.Day);
+ int dayStartSeconds = (int)(dayStartTime - TimeUtility.OriginalTime).TotalSeconds;
+
+ result.Add(new GuildNoteData
+ {
+ ShowType = 0, // 鏍囬绫诲瀷
+ Time = (uint)dayStartSeconds,
+ Info = currentTime.ToString("yyyy-MM-dd"),
+ });
+ }
+
+ result.Add(noteData);
+ lastDay = currentDay;
+ }
+
+ return result;
+ }
+
+ private List<GuildNoteData> GetGuildNoteDataList(HA513_tagMCFamilyActionInfo.tagMCFamilyAction[] actions)
+ {
+ if (actions.IsNullOrEmpty())
+ return null;
+
+ var result = new List<GuildNoteData>();
+ int maxCount = GuildManager.Instance.familyRecordMaxCount;
+ // 鍊掑簭閬嶅巻actions锛屽苟闄愬埗鏁伴噺
+ int count = 0;
+ for (int i = actions.Length - 1; i >= 0 && count < maxCount; i--)
+ {
+ var action = actions[i];
+ string info = GetInfo(action);
+ result.Add(new GuildNoteData
+ {
+ ShowType = 1, // 鍐呭绫诲瀷
+ Time = action.Time,
+ Info = info,
+ });
+ count++;
+ }
+ return result.OrderBy(a => a.Time).ToList();
+ }
+
+ private string GetInfo(HA513_tagMCFamilyActionInfo.tagMCFamilyAction data)
+ {
+ if (data == null || data.Value1 != 2)
+ return string.Empty;
+ switch (data.Value2)
+ {
+ case 0:
+ return Language.Get("Guild_52", GetColorStr(data.Name));
+ case 1:
+ return Language.Get("Guild_53", GetColorStr(data.Name));
+ case 2:
+ return Language.Get("Guild_55", GetColorStr(data.Name));
+ case 4:
+ if (data.Value3 > data.Value4)
+ {
+ return Language.Get("Guild_54", GetColorStr(data.Name), GetColorStr(RichTextMsgReplaceConfig.GetRichReplace("FAMILY", (int)data.Value3)));
+ }
+ else
+ {
+ return Language.Get("Guild_83", GetColorStr(data.Name), GetColorStr(RichTextMsgReplaceConfig.GetRichReplace("FAMILY", (int)data.Value3)));
+ }
+ case 3:
+ default:
+ return string.Empty;
+ }
+ }
+
+ private string GetColorStr(string name)
+ {
+ return UIHelper.AppendColor(nameColor, name);
+ }
+}
+
+public class GuildNoteData
+{
+ public uint Time; //鏃堕棿鎴�
+ public int ShowType; //鏄剧ず鐢ㄩ�旂被鍨� 0-鏍囬锛堝勾-鏈�-鏃ワ級 1-鍐呭
+ public string Info; //淇℃伅
+}
\ No newline at end of file
diff --git a/Main/System/Guild/GuildNoteWin.cs.meta b/Main/System/Guild/GuildNoteWin.cs.meta
new file mode 100644
index 0000000..7c4bfd2
--- /dev/null
+++ b/Main/System/Guild/GuildNoteWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f0e090843a250514f8fabb9b8713e625
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Guild/GuildOPWin.cs b/Main/System/Guild/GuildOPWin.cs
index 2298c04..aecd11e 100644
--- a/Main/System/Guild/GuildOPWin.cs
+++ b/Main/System/Guild/GuildOPWin.cs
@@ -43,7 +43,7 @@
noteBtn.AddListener(() =>
{
- // UIManager.Instance.OpenWindow<GuildNoteWin>();
+ UIManager.Instance.OpenWindow<GuildNoteWin>();
});
}
diff --git a/Main/System/Guild/PlayerFairyData.cs b/Main/System/Guild/PlayerFairyData.cs
index d27d51d..29e2508 100644
--- a/Main/System/Guild/PlayerFairyData.cs
+++ b/Main/System/Guild/PlayerFairyData.cs
@@ -29,6 +29,7 @@
// 0-鎴愬憳锛�1-绮捐嫳锛�2-鍓洘涓伙紝3-鐩熶富
public int leaderID;
+ public string leaderName;
// // 绮捐嫳
public List<int> elitePlayerIDList = new List<int>();
// // 鍓洘涓�
@@ -102,6 +103,7 @@
if (member.FmLV == 3)
{
leaderID = (int)member.PlayerID;
+ leaderName = member.Name;
}
}
@@ -142,6 +144,7 @@
memberDic.Clear();
memberIDList.Clear();
leaderID = 0;
+ leaderName = string.Empty;
}
int SortMember(int id1, int id2)
diff --git a/Main/System/HeroUI/HeroGiftLineCell.cs b/Main/System/HeroUI/HeroGiftLineCell.cs
index ce685b9..c86faa0 100644
--- a/Main/System/HeroUI/HeroGiftLineCell.cs
+++ b/Main/System/HeroUI/HeroGiftLineCell.cs
@@ -6,10 +6,10 @@
[SerializeField] GiftBaseCell[] cardList;
public void Display(int index, List<int> configList)
- {
+ {
for (int i = 0; i < cardList.Length; i++)
{
- if (index < configList.Count)
+ if (index + i < configList.Count)
{
var giftID = configList[index + i];
var giftLV = HeroUIManager.Instance.maxGiftLevel;
diff --git a/Main/System/HeroUI/HeroGiftWin.cs b/Main/System/HeroUI/HeroGiftWin.cs
index e5b2c2c..74dc167 100644
--- a/Main/System/HeroUI/HeroGiftWin.cs
+++ b/Main/System/HeroUI/HeroGiftWin.cs
@@ -17,7 +17,7 @@
protected override void OnPreOpen()
{
scroller.OnRefreshCell += OnRefreshCell;
-
+
CreateScroller();
}
@@ -27,10 +27,22 @@
}
+ private List<int> GetKeys()
+ {
+ List<int> res = new List<int>();
+ foreach (var config in HeroTalentConfig.GetValues())
+ {
+ if (config.InitWeight == 0 || config.WashWeight == 0 || config.AweakWeight == 0)
+ continue;
+ res.Add(config.TalentID);
+ }
+ return res;
+ }
+
List<int> configList = new List<int>();
void CreateScroller()
{
- configList = HeroTalentConfig.GetKeys().ToList();
+ configList = GetKeys();
var totalCount = configList.Count;
scroller.Refresh();
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..8700eba 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; //鎺夎惤鐗╅噾閽�
@@ -49,7 +49,7 @@
}
AttributeManager.Instance.OpenMinggeSimpleAttributeWin(MinggeManager.Instance.minggeAttrDict, skillDict);
});
- tyBtn.AddListener(SendTuiyan);
+ tyBtn.AddListener(CheckTuiyan);
for (int i = 0; i < suiteNameTexts.Length; i++)
{
int index = i;
@@ -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)
{
@@ -214,8 +241,43 @@
moneyMoveByPathCell.PlayAnimation(MinggeManager.Instance.deitemID, 8, 2);
}
+
+ void CheckTuiyan()
+ {
+ 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)
+ {
+ UIManager.Instance.OpenWindow<MinggePrayWin>();
+ }
+ else
+ {
+ SendTuiyan();
+ }
+
+ MinggeManager.Instance.qlNotNotify = isToggle;
+ },
+ false
+ );
+ return;
+ }
+ SendTuiyan();
+ }
+
void SendTuiyan()
{
+ if (MinggeManager.Instance.isStartAuto)
+ {
+ MinggeManager.Instance.StartAuto(false);
+ }
if (MinggeManager.Instance.CalcEquip())
{
return;
@@ -231,7 +293,12 @@
return;
}
- tyEffect.onComplete += () =>
+ if (MinggeManager.Instance.isStartAuto)
+ {
+ MinggeManager.Instance.StartAuto(false);
+ }
+ tyEffect.speedRate = 1;
+ tyEffect.onComplete = () =>
{
MinggeManager.Instance.SendTY(1);
};
@@ -295,7 +362,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();
diff --git a/Main/System/WarlordPavilion/WarlordPavilionManager.cs b/Main/System/WarlordPavilion/WarlordPavilionManager.cs
index 71df39e..582461b 100644
--- a/Main/System/WarlordPavilion/WarlordPavilionManager.cs
+++ b/Main/System/WarlordPavilion/WarlordPavilionManager.cs
@@ -346,6 +346,8 @@
foreach (var config in FBDJGEffectConfig.GetValues())
{
int attrId = config.AttrID;
+ if (config.RandWeight == 0)
+ continue;
if (!attrIds.Contains(attrId))
{
attrIds.Add(attrId);
--
Gitblit v1.8.0