From 27ca4a943889eff56ec448512e274fa4feb74c08 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 07 十一月 2025 18:53:30 +0800
Subject: [PATCH] 342 子 【主界面】官职晋升 / 官职补充修改
---
Main/System/OfficialRank/OfficialRankManager.cs | 35 ++++++++++-
Main/System/OfficialRank/OfficialUpWin.cs | 39 +++++++++---
Main/System/Main/HomeWin.cs | 18 ++++++
Main/System/OfficialRank/OfficialUpCell.cs | 17 +++--
Main/System/NewBieGuidance/NewBieCenter.cs | 26 +++++---
5 files changed, 103 insertions(+), 32 deletions(-)
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index fdac2ad..95fce4a 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -14,6 +14,7 @@
[SerializeField] Text playerLevelText;
[SerializeField] SmoothSlider expSlider;
[SerializeField] Button officialUpBtn;
+ [SerializeField] Transform officialTip;
//浠诲姟鍖�
[SerializeField] Button taskButton; //寮曞鎴栬�呴鍙栦换鍔″鍔�
@@ -132,6 +133,7 @@
DisplayRestState();
funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
+ officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
}
protected override void OnPreOpen()
@@ -147,6 +149,7 @@
FirstChargeManager.Instance.OnUpdateFirstChargeInfo += OnUpdateFirstChargeInfo;
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
HeroUIManager.Instance.OnUnLockHeroCountEvent += OnUnLockHeroCountEvent;
+ OfficialRankManager.Instance.OnOfficialCanLVUpEvent += OnOfficialCanLVUpEvent;
Display();
DisplayFirstChargeBtn();
@@ -169,9 +172,15 @@
FirstChargeManager.Instance.OnUpdateFirstChargeInfo -= OnUpdateFirstChargeInfo;
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
HeroUIManager.Instance.OnUnLockHeroCountEvent -= OnUnLockHeroCountEvent;
+ OfficialRankManager.Instance.OnOfficialCanLVUpEvent -= OnOfficialCanLVUpEvent;
// 鍏抽棴鐨勬椂鍊欐妸鎴樻枟鐣岄潰涔熺粰鍏充簡 铏界劧鏄湪澶栭潰寮�鐨�
UIManager.Instance.CloseWindow<BattleWin>();
+ }
+
+ void OnOfficialCanLVUpEvent()
+ {
+ officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
}
private void OnClickEnterBoss()
@@ -208,6 +217,10 @@
case PlayerDataType.ExAttr1:
case PlayerDataType.ExAttr2:
DisplayLevel();
+ break;
+
+ case PlayerDataType.RealmLevel:
+ OnOfficialCanLVUpEvent();
break;
}
@@ -270,6 +283,11 @@
{
taskButton.SetActive(true);
var taskConfig = TaskConfig.Get(task.TaskID);
+ if (taskConfig == null)
+ {
+ Debug.LogError("鎵句笉鍒颁换鍔� " + task.TaskID);
+ return;
+ }
taskText.text = taskConfig.TaskDescribe;
taskNumText.text = string.Format("({0}/{1})", task.CurValue, taskConfig.NeedValue);
taskNumText.color = task.CurValue >= taskConfig.NeedValue ? UIHelper.GetUIColor(TextColType.NavyYellow) : UIHelper.GetUIColor(TextColType.Red);
diff --git a/Main/System/NewBieGuidance/NewBieCenter.cs b/Main/System/NewBieGuidance/NewBieCenter.cs
index dc303e9..4344ee0 100644
--- a/Main/System/NewBieGuidance/NewBieCenter.cs
+++ b/Main/System/NewBieGuidance/NewBieCenter.cs
@@ -49,6 +49,7 @@
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
UIManager.Instance.OnOpenWindow += OnOpenWindow;
UIManager.Instance.OnCloseWindow += OnCloseWindow;
+ OfficialRankManager.Instance.OnOfficialCanLVUpEvent += OnOfficialCanLVUpEvent;
}
public override void Release()
@@ -59,6 +60,16 @@
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
UIManager.Instance.OnOpenWindow -= OnOpenWindow;
UIManager.Instance.OnCloseWindow -= OnCloseWindow;
+ OfficialRankManager.Instance.OnOfficialCanLVUpEvent -= OnOfficialCanLVUpEvent;
+ }
+
+ void OnOfficialCanLVUpEvent()
+ {
+ var guides = GuideConfig.GetGuideListByType((int)GuideTriggerType.Realm);
+ if (guides != null)
+ {
+ TryStartNewBieGuides(guides, true);
+ }
}
void OnOpenWindow(UIBase _ui)
@@ -131,14 +142,6 @@
TryStartNewBieGuides(guides);
}
}
- else if (type == PlayerDataType.RealmLevel)
- {
- var guides = GuideConfig.GetGuideListByType((int)GuideTriggerType.Realm);
- if (guides != null)
- {
- TryStartNewBieGuides(guides);
- }
- }
}
@@ -191,8 +194,9 @@
return false;
}
- if (currentGuide != 0)
+ if (currentGuide != 0 && GuideConfig.Get(currentGuide).NoRecord == 0)
{
+ // 鍙噸澶嶈Е鍙戠殑寮曞灞炰簬浣庝紭鍏堢骇 浼氳鏂板紩瀵兼浛鎹�
return false;
}
@@ -448,7 +452,7 @@
case GuideTriggerType.Level:
return PlayerDatas.Instance.baseData.LV >= config.Condition;
case GuideTriggerType.Realm:
- return PlayerDatas.Instance.baseData.realmLevel >= config.Condition;
+ return PlayerDatas.Instance.baseData.realmLevel >= config.Condition && OfficialRankManager.Instance.CanOfficialLVUP();
case GuideTriggerType.OpenWindow:
return UIManager.Instance.IsOpened(config.WinName);
case GuideTriggerType.MainLineQuestCanDo:
@@ -545,6 +549,6 @@
MissionClick = 4, //鐐瑰嚮浠诲姟鎸変换鍔$被鍨嬪紩瀵�
OpenWindow = 5, //鎵撳紑鐣岄潰鐨勬椂鏈� 濡傝澶囨浛鎹㈢晫闈�
Level = 6, //绛夌骇婊¤冻鏉′欢
- Realm = 7, //瀹樿亴绛夌骇
+ Realm = 7, //瀹樿亴鎵�鏈変换鍔″畬鎴愭椂瑙﹀彂寮曞锛屽6鍗�7锛�6鐨勪换鍔″叏閮ㄥ畬鎴愶紝閰嶇疆6
}
\ No newline at end of file
diff --git a/Main/System/OfficialRank/OfficialRankManager.cs b/Main/System/OfficialRank/OfficialRankManager.cs
index 08dbf62..3ea8869 100644
--- a/Main/System/OfficialRank/OfficialRankManager.cs
+++ b/Main/System/OfficialRank/OfficialRankManager.cs
@@ -13,8 +13,12 @@
int taskAwardState;
Dictionary<int, int> taskValues = new Dictionary<int, int>();
public event Action RealmMissionRefreshEvent;
+ public event Action OnOfficialCanLVUpEvent; //妫�娴嬪埌鍙互鍗囧畼鑱�
public Dictionary<int, int> mainLevelDict = new Dictionary<int, int>(); //id锛氱储寮� 鐢ㄤ簬鍒ゆ柇杩橀渶澶氬皯鍏�
+
+ public Dictionary<int, int> guideDict = new Dictionary<int, int>();
+
public override void Init()
{
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
@@ -26,9 +30,11 @@
var levelList = MainLevelConfig.GetKeys().ToList();
levelList.Sort();
for (int i = 0; i < levelList.Count; i++)
- {
+ {
mainLevelDict[levelList[i]] = i;
}
+
+ ParseConfig();
}
public override void Release()
@@ -43,6 +49,13 @@
{
taskValues.Clear();
taskAwardState = 0;
+ }
+
+ void ParseConfig()
+ {
+ var config = FuncConfigConfig.Get("Official");
+ guideDict = ConfigParse.ParseIntDict(config.Numerical1);
+
}
@@ -97,10 +110,8 @@
return PlayerDatas.Instance.baseData.ExAttr1 / 100 > config.NeedValueList[0] ? 1 : 0;
case 3:
return taskValues.ContainsKey(missionID) && taskValues[missionID] >= config.NeedValueList[0] ? 1 : 0;
-
case 4:
return BlessLVManager.Instance.m_TreeLV >= config.NeedValueList[0] ? 1 : 0;
-
default:
return 0;
}
@@ -191,12 +202,28 @@
finish = false;
}
}
-
+
if (finish)
redpoint.state = RedPointState.Simple;
+
+ CanOfficialLVUP(true);
}
+ public bool CanOfficialLVUP(bool notifyEvent = false)
+ {
+ //鍙浠诲姟瀹屾垚鍗冲彲
+ var ids = RealmLVUPTaskConfig.GetMissionIDs(PlayerDatas.Instance.baseData.realmLevel);
+ foreach (var id in ids)
+ {
+ if (GetMissionState(PlayerDatas.Instance.baseData.realmLevel, id) == 0)
+ return false;
+ }
+
+ if (notifyEvent)
+ OnOfficialCanLVUpEvent?.Invoke();
+ return true;
+ }
public Color GetOfficialRankColor(int quality)
diff --git a/Main/System/OfficialRank/OfficialUpCell.cs b/Main/System/OfficialRank/OfficialUpCell.cs
index c25f777..75f8ef1 100644
--- a/Main/System/OfficialRank/OfficialUpCell.cs
+++ b/Main/System/OfficialRank/OfficialUpCell.cs
@@ -32,12 +32,13 @@
getAwardImg.SetActive(state == 1);
getAwardEffect.SetActive(state == 1);
bgImg.SetSprite(state == 0 ? "OfficialMissionBG0" : "OfficialMissionBG1");
- switch (config.TaskType)
+ var type = config.TaskType;
+ switch (type)
{
case 1:
case 3:
case 4:
- taskName.text = Language.Get("OfficialMission" + config.TaskType, config.NeedValueList[0]);
+ taskName.text = Language.Get("OfficialMission" + type, config.NeedValueList[0]);
break;
case 2:
var mainLVConfig = MainLevelConfig.Get(config.NeedValueList[0]);
@@ -51,15 +52,19 @@
taskProcessText.text = process + "/" + total;
int itemID = config.AwardItemList[0][0];
taskReward.Init(new ItemCellModel(itemID, false, config.AwardItemList[0][1]));
- taskReward.button.AddListener(() =>
- {
- ItemTipUtility.Show(itemID);
- });
+ // taskReward.button.AddListener(() =>
+ // {
+ // ItemTipUtility.Show(itemID);
+ // });
getBtn.AddListener(() =>
{
if (state != 1)
+ {
+ UIManager.Instance.CloseWindow<OfficialUpWin>();
+ NewBieCenter.Instance.StartNewBieGuide(OfficialRankManager.Instance.guideDict[type]);
return;
+ }
OfficialRankManager.Instance.RequestAllAwards(id);
});
diff --git a/Main/System/OfficialRank/OfficialUpWin.cs b/Main/System/OfficialRank/OfficialUpWin.cs
index cbf9e0e..478c217 100644
--- a/Main/System/OfficialRank/OfficialUpWin.cs
+++ b/Main/System/OfficialRank/OfficialUpWin.cs
@@ -15,6 +15,7 @@
[SerializeField] Image officialIcon;
[SerializeField] Image officialNextIcon;
[SerializeField] Button closeBtn;
+ [SerializeField] Text addLVText;
[SerializeField] PositionTween[] paopaoArr;
[SerializeField] Text[] paopaoTextArrName;
[SerializeField] Text[] paopaoTextArrValue;
@@ -61,9 +62,14 @@
for (int i = 0; i < paopaoArr.Length; i++)
{
paopaoArr[i].Play();
- paopaoTextArrName[i].text = PlayerPropertyConfig.Get(nextConfig.AddAttrType[i]).Name;
- paopaoTextArrValue[i].text = "+" + PlayerPropertyConfig.GetValueDescription(nextConfig.AddAttrType[i], nextConfig.AddAttrNum[i]);
+ if (i < nextConfig.AddAttrType.Length)
+ {
+ paopaoTextArrName[i].text = PlayerPropertyConfig.Get(nextConfig.AddAttrType[i]).Name;
+ paopaoTextArrValue[i].text = "+" + PlayerPropertyConfig.GetValueDescription(nextConfig.AddAttrType[i], nextConfig.AddAttrNum[i]);
+ }
}
+
+ addLVText.text = "+" + (nextConfig.LVMax - config.LVMax);
RefreshBtn();
}
@@ -81,20 +87,31 @@
}
}
- //鎵�鏈夋场娉¢鍚戞寜閽�
- for (int i = 0; i < paopaoArr.Length; i++)
- {
- paopaoArr[i].Stop();
- paopaoArr[i].transform.DOLocalMove(lvUpBtn.transform.localPosition, 0.4f);
- }
- effectPlayer.Play();
-
upEffect.onComplete = () =>
{
CA523_tagCMRealmLVUp pak = new CA523_tagCMRealmLVUp();
GameNetSystem.Instance.SendInfo(pak);
};
- upEffect.Play();
+
+ effectPlayer.onComplete = () =>
+ {
+ upEffect.Play();
+ };
+
+ //鎵�鏈夋场娉¢鍚戞寜閽�
+ for (int i = 0; i < paopaoArr.Length; i++)
+ {
+ int index = i;
+ paopaoArr[i].Stop();
+ paopaoArr[i].transform.DOLocalMove(lvUpBtn.transform.localPosition, 0.3f).onComplete = () =>
+ {
+ if (index == 0)
+ {
+ effectPlayer.Play();
+ }
+ };
+ }
+
}
--
Gitblit v1.8.0