From 27e508f58e143c1972c221578b5c9952fa018f54 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 12 五月 2026 19:17:59 +0800
Subject: [PATCH] 492 武将登场和武将返场 增加元宝招募选项
---
Main/System/HeroDebut/HeroDebutCallButton.cs | 39 +++++++++++--
Main/System/HeroReturn/HeroReturnCallWin.cs | 35 +++++++++++
Main/System/HeroDebut/HeroDebutCallWin.cs | 37 ++++++++++++
Main/System/HeroDebut/HeroDebutManager.cs | 15 +++++
Main/System/HeroReturn/HeroReturnCallButton.cs | 39 +++++++++++--
Main/System/HeroReturn/HeroReturnManager.cs | 15 +++++
6 files changed, 167 insertions(+), 13 deletions(-)
diff --git a/Main/System/HeroDebut/HeroDebutCallButton.cs b/Main/System/HeroDebut/HeroDebutCallButton.cs
index 36c203b..e30c548 100644
--- a/Main/System/HeroDebut/HeroDebutCallButton.cs
+++ b/Main/System/HeroDebut/HeroDebutCallButton.cs
@@ -40,14 +40,41 @@
needCostItemCnt = treasureSetConfig.CostItemCountList[index];
hasItemCnt = PackManager.Instance.GetItemCountByID(PackType.Item, treasureSetConfig.CostItemID);
- // 鐗╁搧涓嶈冻 && 娌¤秴璐у竵鎷涘嫙娆℃暟涓婇檺
- if (hasItemCnt < needCostItemCnt &&
- nowMoneyCnt + treasureCnt <= dailyMaxCountMoney)
+ // 鍐呴儴璇诲彇璐у竵鎷涘嫙寮�鍏崇姸鎬�
+ bool isMoneyToggleOn = false;
+ var act = manager.GetOperationHeroAppearInfo();
+ if (act != null)
{
- DisplayByMoney(treasureSetConfig.CostMoneyType, needCostMoneyCnt, moneyCount);
- return;
+ var config = ActHeroAppearConfig.Get(act.CfgID);
+ if (config != null)
+ {
+ isMoneyToggleOn = manager.LoadCallMoneyToggleData(config.CfgID, act.startDate, act.endDate);
+ }
}
- DisplayByItem(treasureSetConfig.CostItemID, treasureCnt);
+
+ if (isMoneyToggleOn)
+ {
+ // 鍕鹃�夛細璐у竵浼樺厛锛屾病瓒呮鏁板氨鐢ㄨ揣甯�
+ if (nowMoneyCnt + treasureCnt <= dailyMaxCountMoney)
+ {
+ DisplayByMoney(treasureSetConfig.CostMoneyType, needCostMoneyCnt, moneyCount);
+ }
+ else
+ {
+ DisplayByItem(treasureSetConfig.CostItemID, treasureCnt);
+ }
+ }
+ else
+ {
+ // 娌″嬀閫夛細淇濇寔鍘熼�昏緫
+ if (hasItemCnt < needCostItemCnt &&
+ nowMoneyCnt + treasureCnt <= dailyMaxCountMoney)
+ {
+ DisplayByMoney(treasureSetConfig.CostMoneyType, needCostMoneyCnt, moneyCount);
+ return;
+ }
+ DisplayByItem(treasureSetConfig.CostItemID, treasureCnt);
+ }
}
void DisplayByMoney(int moneyType, long needCostMoneyCnt, long moneyCount)
diff --git a/Main/System/HeroDebut/HeroDebutCallWin.cs b/Main/System/HeroDebut/HeroDebutCallWin.cs
index 637b9f3..fc551a0 100644
--- a/Main/System/HeroDebut/HeroDebutCallWin.cs
+++ b/Main/System/HeroDebut/HeroDebutCallWin.cs
@@ -12,8 +12,10 @@
[SerializeField] UIEffectPlayer changeUIEffect;
[SerializeField] OwnItemCell ownItemCell;
- [SerializeField] ButtonEx closeBtn;
[SerializeField] Toggle skipToggle;
+ [SerializeField] Toggle moneyToggle;
+ [SerializeField] ButtonEx moneyToggleTipButton;
+
[SerializeField] HeroDebutCallButton xbButton1;
[SerializeField] HeroDebutCallButton xbButton10;
[SerializeField] TextEx resMoneyCallCntText;
@@ -62,6 +64,30 @@
skipToggle.AddListener((value) =>
{
manager.SaveCallSkipData(config.CfgID, act.startDate, act.endDate, value);
+ });
+ moneyToggle.AddListener((value) =>
+ {
+ if (value)
+ {
+ int treasureType = config.ActTreasureType;
+ var info = HappyXBModel.Instance.GetXBInfoByType(treasureType);
+ var treasureSetConfig = TreasureSetConfig.Get(treasureType);
+ if (info != null && treasureSetConfig != null &&
+ info.treasureCountTodayGold >= treasureSetConfig.DailyMaxCountMoney)
+ {
+ SysNotifyMgr.Instance.ShowTip("CallToggleErr1");
+ moneyToggle.SetIsOnWithoutNotify(false);
+ return;
+ }
+ }
+ manager.SaveCallMoneyToggleData(config.CfgID, act.startDate, act.endDate, value);
+ Display();
+ });
+ moneyToggleTipButton.AddListener(() =>
+ {
+ SmallTipWin.showText = Language.Get("CallTip01");
+ SmallTipWin.worldPos = moneyToggleTipButton.transform.position;
+ UIManager.Instance.OpenWindow<SmallTipWin>();
});
}
@@ -260,6 +286,15 @@
ownItemCell.itemID = treasureSetConfig.CostItemID;
skipToggle.isOn = manager.LoadCallSkipData(config.CfgID, act.startDate, act.endDate);
+ // moneyToggle锛氬姞杞藉瓨妗o紙涓嶈Е鍙戠洃鍚櫒锛夛紝娆℃暟婊℃椂寮哄埗鍙栨秷
+ bool savedToggle = manager.LoadCallMoneyToggleData(config.CfgID, act.startDate, act.endDate);
+ if (xbTypeInfo.treasureCountTodayGold >= treasureSetConfig.DailyMaxCountMoney)
+ {
+ savedToggle = false;
+ manager.SaveCallMoneyToggleData(config.CfgID, act.startDate, act.endDate, false);
+ }
+ moneyToggle.SetIsOnWithoutNotify(savedToggle);
+
xbButton1.Display(config.ActTreasureType, 0);
xbButton10.Display(config.ActTreasureType, 1);
resMoneyCallCntText.text = Language.Get("HeroDebut24", Mathf.Max(treasureSetConfig.DailyMaxCountMoney - xbTypeInfo.treasureCountTodayGold, 0));
diff --git a/Main/System/HeroDebut/HeroDebutManager.cs b/Main/System/HeroDebut/HeroDebutManager.cs
index 5f4c475..0b7f6b9 100644
--- a/Main/System/HeroDebut/HeroDebutManager.cs
+++ b/Main/System/HeroDebut/HeroDebutManager.cs
@@ -756,6 +756,21 @@
LocalSave.SetBool(GetCallSkipKey(cfgID, startDate, endDate), value);
}
+ private string GetCallMoneyToggleKey(int cfgID, OperationDate startDate, OperationDate endDate)
+ {
+ return string.Concat("HeroDebutManager_CallMoneyToggle_", cfgID, "_", ToInt(startDate), "_", ToInt(endDate), "_", PlayerDatas.Instance.PlayerId);
+ }
+
+ public bool LoadCallMoneyToggleData(int cfgID, OperationDate startDate, OperationDate endDate)
+ {
+ return LocalSave.GetBool(GetCallMoneyToggleKey(cfgID, startDate, endDate));
+ }
+
+ public void SaveCallMoneyToggleData(int cfgID, OperationDate startDate, OperationDate endDate, bool value)
+ {
+ LocalSave.SetBool(GetCallMoneyToggleKey(cfgID, startDate, endDate), value);
+ }
+
/// <summary>
/// 褰撳墠鎷涘嫙閫変腑鐨勬灏咺D
/// </summary>
diff --git a/Main/System/HeroReturn/HeroReturnCallButton.cs b/Main/System/HeroReturn/HeroReturnCallButton.cs
index fdd1419..637f29d 100644
--- a/Main/System/HeroReturn/HeroReturnCallButton.cs
+++ b/Main/System/HeroReturn/HeroReturnCallButton.cs
@@ -40,14 +40,41 @@
needCostItemCnt = treasureSetConfig.CostItemCountList[index];
hasItemCnt = PackManager.Instance.GetItemCountByID(PackType.Item, treasureSetConfig.CostItemID);
- // 鐗╁搧涓嶈冻 && 娌¤秴璐у竵鎷涘嫙娆℃暟涓婇檺
- if (hasItemCnt < needCostItemCnt &&
- nowMoneyCnt + treasureCnt <= dailyMaxCountMoney)
+ // 鍐呴儴璇诲彇璐у竵鎷涘嫙寮�鍏崇姸鎬�
+ bool isMoneyToggleOn = false;
+ var act = manager.GetOperationHeroAppearInfo();
+ if (act != null)
{
- DisplayByMoney(treasureSetConfig.CostMoneyType, needCostMoneyCnt, moneyCount);
- return;
+ var config = ActHeroAppearConfig.Get(act.CfgID);
+ if (config != null)
+ {
+ isMoneyToggleOn = manager.LoadCallMoneyToggleData(config.CfgID, act.startDate, act.endDate);
+ }
}
- DisplayByItem(treasureSetConfig.CostItemID, treasureCnt);
+
+ if (isMoneyToggleOn)
+ {
+ // 鍕鹃�夛細璐у竵浼樺厛锛屾病瓒呮鏁板氨鐢ㄨ揣甯�
+ if (nowMoneyCnt + treasureCnt <= dailyMaxCountMoney)
+ {
+ DisplayByMoney(treasureSetConfig.CostMoneyType, needCostMoneyCnt, moneyCount);
+ }
+ else
+ {
+ DisplayByItem(treasureSetConfig.CostItemID, treasureCnt);
+ }
+ }
+ else
+ {
+ // 娌″嬀閫夛細淇濇寔鍘熼�昏緫
+ if (hasItemCnt < needCostItemCnt &&
+ nowMoneyCnt + treasureCnt <= dailyMaxCountMoney)
+ {
+ DisplayByMoney(treasureSetConfig.CostMoneyType, needCostMoneyCnt, moneyCount);
+ return;
+ }
+ DisplayByItem(treasureSetConfig.CostItemID, treasureCnt);
+ }
}
void DisplayByMoney(int moneyType, long needCostMoneyCnt, long moneyCount)
diff --git a/Main/System/HeroReturn/HeroReturnCallWin.cs b/Main/System/HeroReturn/HeroReturnCallWin.cs
index 84d2be5..4be450f 100644
--- a/Main/System/HeroReturn/HeroReturnCallWin.cs
+++ b/Main/System/HeroReturn/HeroReturnCallWin.cs
@@ -24,6 +24,8 @@
[SerializeField] OwnItemCell ownItemCell;
[SerializeField] ButtonEx closeBtn;
[SerializeField] Toggle skipToggle;
+ [SerializeField] Toggle moneyToggle;
+ [SerializeField] ButtonEx moneyToggleTipButton;
[SerializeField] HeroReturnCallButton xbButton1;
[SerializeField] HeroReturnCallButton xbButton10;
[SerializeField] TextEx resMoneyCallCntText;
@@ -73,6 +75,30 @@
skipToggle.AddListener((value) =>
{
manager.SaveCallSkipData(config.CfgID, act.startDate, act.endDate, value);
+ });
+ moneyToggle.AddListener((value) =>
+ {
+ if (value)
+ {
+ int treasureType = config.ActTreasureType;
+ var info = HappyXBModel.Instance.GetXBInfoByType(treasureType);
+ var treasureSetConfig = TreasureSetConfig.Get(treasureType);
+ if (info != null && treasureSetConfig != null &&
+ info.treasureCountTodayGold >= treasureSetConfig.DailyMaxCountMoney)
+ {
+ SysNotifyMgr.Instance.ShowTip("CallToggleErr1");
+ moneyToggle.SetIsOnWithoutNotify(false);
+ return;
+ }
+ }
+ manager.SaveCallMoneyToggleData(config.CfgID, act.startDate, act.endDate, value);
+ Display();
+ });
+ moneyToggleTipButton.AddListener(() =>
+ {
+ SmallTipWin.showText = Language.Get("CallTip01");
+ SmallTipWin.worldPos = moneyToggleTipButton.transform.position;
+ UIManager.Instance.OpenWindow<SmallTipWin>();
});
}
@@ -272,6 +298,15 @@
ownItemCell.itemID = treasureSetConfig.CostItemID;
skipToggle.isOn = manager.LoadCallSkipData(config.CfgID, act.startDate, act.endDate);
+ // moneyToggle锛氬姞杞藉瓨妗o紙涓嶈Е鍙戠洃鍚櫒锛夛紝娆℃暟婊℃椂寮哄埗鍙栨秷
+ bool savedToggle = manager.LoadCallMoneyToggleData(config.CfgID, act.startDate, act.endDate);
+ if (xbTypeInfo.treasureCountTodayGold >= treasureSetConfig.DailyMaxCountMoney)
+ {
+ savedToggle = false;
+ manager.SaveCallMoneyToggleData(config.CfgID, act.startDate, act.endDate, false);
+ }
+ moneyToggle.SetIsOnWithoutNotify(savedToggle);
+
xbButton1.Display(config.ActTreasureType, 0);
xbButton10.Display(config.ActTreasureType, 1);
resMoneyCallCntText.text = Language.Get("HeroDebut24", Mathf.Max(treasureSetConfig.DailyMaxCountMoney - xbTypeInfo.treasureCountTodayGold, 0));
diff --git a/Main/System/HeroReturn/HeroReturnManager.cs b/Main/System/HeroReturn/HeroReturnManager.cs
index 1578f94..2fc1775 100644
--- a/Main/System/HeroReturn/HeroReturnManager.cs
+++ b/Main/System/HeroReturn/HeroReturnManager.cs
@@ -848,6 +848,21 @@
LocalSave.SetBool(GetCallSkipKey(cfgID, startDate, endDate), value);
}
+ private string GetCallMoneyToggleKey(int cfgID, OperationDate startDate, OperationDate endDate)
+ {
+ return string.Concat("HeroReturnManager_CallMoneyToggle_", cfgID, "_", ToInt(startDate), "_", ToInt(endDate), "_", PlayerDatas.Instance.PlayerId);
+ }
+
+ public bool LoadCallMoneyToggleData(int cfgID, OperationDate startDate, OperationDate endDate)
+ {
+ return LocalSave.GetBool(GetCallMoneyToggleKey(cfgID, startDate, endDate));
+ }
+
+ public void SaveCallMoneyToggleData(int cfgID, OperationDate startDate, OperationDate endDate, bool value)
+ {
+ LocalSave.SetBool(GetCallMoneyToggleKey(cfgID, startDate, endDate), value);
+ }
+
/// <summary>
/// 褰撳墠鎷涘嫙閫変腑鐨勬灏咺D
/// </summary>
--
Gitblit v1.8.0