From 39001a600fcae2bcf27c225df8752d75fb92fef4 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 31 十月 2025 11:18:26 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/HappyXB/HappyXBModel.cs | 179 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 135 insertions(+), 44 deletions(-)
diff --git a/Main/System/HappyXB/HappyXBModel.cs b/Main/System/HappyXB/HappyXBModel.cs
index 1b5af30..7d072a4 100644
--- a/Main/System/HappyXB/HappyXBModel.cs
+++ b/Main/System/HappyXB/HappyXBModel.cs
@@ -39,11 +39,16 @@
}
private Dictionary<int, XBTypeInfo> xbTypeInfoDict = new Dictionary<int, XBTypeInfo>(); //鎶藉鐘舵�佺浉鍏崇殑 鏈嶅姟鍣ㄨ褰�
+ public int lhQuality;
+
public override void Init()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
FuncOpen.Instance.OnFuncStateChangeEvent += UpdateFuncState;
PackManager.Instance.RefreshItemEvent += RefreshXBTool;
+ TimeMgr.Instance.OnDayEvent += OnDayEvent;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
+ InvestModel.Instance.onInvestUpdate += OnInvestUpdate;
xbGetItemDict.Clear();
xbTypeItemDict.Clear();
@@ -64,6 +69,9 @@
xbTypeItemDict[list[i].TreasureType].Add(list[i]);
}
+
+ var config = FuncConfigConfig.Get("HeroCall");
+ lhQuality = int.Parse(config.Numerical1);
}
public override void Release()
@@ -71,17 +79,30 @@
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
FuncOpen.Instance.OnFuncStateChangeEvent -= UpdateFuncState;
PackManager.Instance.RefreshItemEvent -= RefreshXBTool;
+ TimeMgr.Instance.OnDayEvent -= OnDayEvent;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
+ InvestModel.Instance.onInvestUpdate -= OnInvestUpdate;
}
- public void OnBeforePlayerDataInitialize()
+ void OnBeforePlayerDataInitialize()
{
isXBCoolTime = false;
xbTypeInfoDict.Clear();
}
+ void OnPlayerLoginOk()
+ {
+ HeroCallRedPoint();
+ }
+
+ void OnInvestUpdate(int type)
+ {
+ if (type == 7)
+ HeroCallRedPoint();
+ }
public XBGetItemConfig GetXBItemConfigByType(int type)
{
int lv = 0;
@@ -307,33 +328,32 @@
//璐у竵瀵诲疂
int moneyType = funcSet.CostMoneyType;
int xbOneMoney = funcSet.CostMoneyList[0];
-
- if (UIHelper.GetMoneyCnt(moneyType) >= (ulong)xbOneMoney)
+ //鏆傚畾鍏呭�艰揣甯侀渶瑕佷簩娆$‘璁�
+ if (moneyType == 1)
{
- //鏆傚畾鍏呭�艰揣甯侀渶瑕佷簩娆$‘璁�
- if (moneyType == 1)
+ StoreModel.Instance.UseMoneyCheck(xbOneMoney, moneyType, () =>
{
- StoreModel.Instance.UseMoneyCheck(xbOneMoney, moneyType, () =>
+ if (UIHelper.GetMoneyCnt(moneyType) >= xbOneMoney)
{
SendXBQuest(xbType, 0, 0);
- }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, xbOneMoney,
- UIHelper.GetIconNameWithMoneyType(moneyType), funcSet.CostItemCountList[0]));
+ }
+ else
+ {
+ ItemTipUtility.ShowMoneyTip(moneyType);
+ }
+ }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, xbOneMoney,
+ UIHelper.GetIconNameWithMoneyType(moneyType), funcSet.CostItemCountList[0]));
- }
- else
- {
- SendXBQuest(xbType, 0, 0);
- }
}
else
{
- if (!GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType))
- {
- SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
+ if (UIHelper.GetMoneyCnt(moneyType) >= xbOneMoney)
+ {
+ SendXBQuest(xbType, 0, 0);
}
else
{
- ItemTipUtility.Show(GeneralDefine.MoneyDisplayModel[moneyType], true);
+ ItemTipUtility.ShowMoneyTip(moneyType);
}
}
}
@@ -363,32 +383,33 @@
//璐у竵瀵诲疂
int moneyType = funcSet.CostMoneyType;
- if (UIHelper.GetMoneyCnt(moneyType) >= (ulong)needMoney)
+
+ //鏆傚畾鍏呭�艰揣甯侀渶瑕佷簩娆$‘璁�
+ if (moneyType == 1)
{
- //鏆傚畾鍏呭�艰揣甯侀渶瑕佷簩娆$‘璁�
- if (moneyType == 1)
+ StoreModel.Instance.UseMoneyCheck(needMoney, moneyType, () =>
{
- StoreModel.Instance.UseMoneyCheck(needMoney, moneyType, () =>
+ //鍙鏈夐亾鍏峰氨鏄亾鍏峰瀹濓紝涓嶈冻閮ㄥ垎鏈嶅姟绔墸璐у竵
+ if (UIHelper.GetMoneyCnt(moneyType) >= needMoney)
{
- //鍙鏈夐亾鍏峰氨鏄亾鍏峰瀹濓紝涓嶈冻閮ㄥ垎鏈嶅姟绔墸璐у竵
SendXBQuest(xbType, 1, toolCnt > 0 ? 2 : 0);
- }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, needMoney,
- UIHelper.GetIconNameWithMoneyType(moneyType), needToolCnt - toolCnt));
- }
- else
- {
- SendXBQuest(xbType, 1, toolCnt > 0 ? 2 : 0);
- }
+ }
+ else
+ {
+ ItemTipUtility.ShowMoneyTip(moneyType);
+ }
+ }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, needMoney,
+ UIHelper.GetIconNameWithMoneyType(moneyType), needToolCnt - toolCnt));
}
else
{
- if (!GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType))
- {
- SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
+ if (UIHelper.GetMoneyCnt(moneyType) >= needMoney)
+ {
+ SendXBQuest(xbType, 1, toolCnt > 0 ? 2 : 0);
}
else
{
- ItemTipUtility.Show(GeneralDefine.MoneyDisplayModel[moneyType], true);
+ ItemTipUtility.ShowMoneyTip(moneyType);
}
}
@@ -410,6 +431,50 @@
//鍒ゆ柇鏄惁鏈夊厤璐规鏁帮紝涓斿厤璐规鏁版槸鍚︾敤瀹�
var funcSet = TreasureSetConfig.Get(type);
return freeCountToday < funcSet.DailyFreeCount;
+ }
+
+
+ public int GetFreeCountToday(int type)
+ {
+ XBTypeInfo typeInfo = GetXBInfoByType(type);
+ if (typeInfo != null)
+ {
+ return typeInfo.freeCountToday;
+ }
+
+ return 0;
+ }
+
+ public int GetDailyFreeCount(int type)
+ {
+ return TreasureSetConfig.Get(type).DailyFreeCount;
+ }
+
+ //鑾峰彇杩橀渶澶氬皯娆″彲寰楀垢杩愬鍔�
+ public int GetNextXBCountForBigAward(int type, out List<int> qualityList)
+ {
+ qualityList = new List<int>();
+ XBTypeInfo typeInfo = GetXBInfoByType(type);
+ if (typeInfo == null)
+ {
+ return 0;
+ }
+
+ var xbConfig = GetXBItemConfigByType(type);
+ var luckList = xbConfig.LuckyItemRateInfo.Keys.ToList();
+ luckList.Sort();
+ //鎸夐樁姊樉绀�
+ for (int i = 0; i < luckList.Count; i++)
+ {
+ if (typeInfo.luckValue < luckList[i])
+ {
+ //鎶婁簩缁存暟缁勯噷鐨勬墍鏈夌浜屼釜鍏冪礌缁勬垚鏂板垪琛�
+ qualityList = xbConfig.LuckyItemRateInfo[luckList[i]].Select(x => x[1]).ToList();
+ qualityList.Sort();
+ return luckList[i] - typeInfo.luckValue;
+ }
+ }
+ return 0;
}
@@ -493,10 +558,15 @@
#region 绾㈢偣閫昏緫
public const int HappyXB_RedKey = 203;
public const int XBHeroCall1_RedKey = 20300; //姝﹀皢鍏嶈垂鍙敜
+ public const int XBHeroCall10_RedKey = 20301; //姝﹀皢10鍙敜
+ public const int XBHeroCallScore_RedKey = 20302; //姝﹀皢绉垎鍙敜
- public Redpoint happyXBRed = new Redpoint(HappyXB_RedKey);
+ public Redpoint happyXBRed = new Redpoint(MainRedDot.MainHerosRedpoint, HappyXB_RedKey);
public Redpoint bestXBFreeRed = new Redpoint(HappyXB_RedKey, XBHeroCall1_RedKey);
+ public Redpoint bestXB10Red = new Redpoint(HappyXB_RedKey, XBHeroCall10_RedKey);
+ public Redpoint bestXBScoreRed = new Redpoint(HappyXB_RedKey, XBHeroCallScore_RedKey);
+
private void UpdateFuncState(int funcId)
@@ -514,39 +584,60 @@
HeroCallRedPoint();
}
+ void OnDayEvent()
+ {
+ HeroCallRedPoint();
+ }
+
//鑻遍泟鎷涘嫙
public void HeroCallRedPoint()
{
- if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure))
+ return;
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Hero))
+ return;
+
// 鍏嶈垂 10杩� 绉垎
- happyXBRed.state = RedPointState.None;
+ bestXB10Red.state = RedPointState.None;
+ bestXBFreeRed.state = RedPointState.None;
+ bestXBScoreRed.state = RedPointState.None;
if (IsHaveFreeXB((int)HappXBTitle.HeroCallAdvanced))
{
bestXBFreeRed.state = RedPointState.Simple;
- return;
- }
- else
- {
- bestXBFreeRed.state = RedPointState.None;
}
if (IsHaveManyXBToolEx((int)HappXBTitle.HeroCallAdvanced, out int xbtoolCnt, out int needtoolCnt, out int needMoney))
{
- happyXBRed.state = RedPointState.Simple;
+ bestXB10Red.state = RedPointState.Simple;
return;
}
//绉垎瓒冲
-
+ if ((InvestModel.Instance.IsInvested(InvestModel.monthCardType)
+ || GetXBInfoByType((int)HappXBTitle.HeroCallScore)?.treasureCount == 0)
+ && UIHelper.GetMoneyCnt(51) >= TreasureSetConfig.Get((int)HappXBTitle.HeroCallScore).CostMoneyList[0])
+ {
+ bestXBScoreRed.state = RedPointState.Simple;
+ }
}
+ //鎸夋牸瀛愬簱閰嶇疆鐨勫姹� 鑾峰緱鑾峰彇鐗╁搧
+ public List<int> GetAllGridLibItemIDByType(int type)
+ {
+ List<int> itemIDListTemp = new List<int>();
+ foreach (var kv in GetXBItemConfigByType(type).GridLibInfo)
+ {
+ itemIDListTemp.AddRange(TreasureItemLibConfig.GetItemIDList(kv.Value));
+ }
+ return itemIDListTemp.Distinct().ToList();
+ }
#endregion
-}
+ }
public class XBTypeInfo
{
--
Gitblit v1.8.0