Main/Config/ConfigManager.cs
@@ -58,7 +58,6 @@ typeof(HeroQualityLVConfig), typeof(HorseClassConfig), typeof(HorseSkinConfig), typeof(InvestConfig), typeof(ItemCompoundConfig), typeof(ItemConfig), typeof(LLMJConfig), @@ -273,7 +272,6 @@ // 清空 HorseSkinConfig 字典 ClearConfigDictionary<HorseSkinConfig>(); // 清空 InvestConfig 字典 ClearConfigDictionary<InvestConfig>(); // 清空 ItemCompoundConfig 字典 ClearConfigDictionary<ItemCompoundConfig>(); // 清空 ItemConfig 字典 Main/Config/Configs/InvestConfig.cs
File was deleted Main/Config/PartialConfigs/PlayerPropertyConfig.cs
@@ -107,12 +107,12 @@ } //largeNumFormat 大数值格式:0 默认原数值 1 按万或者(K)显示 2 按6位数以上(才转换大数值,根据情况可统一调整) public static string GetValueDescription(int id, long value, int largeNumFormat = 1) public static string GetValueDescription(int id, long value, int largeNumFormat = 2) { return GetValueDescriptionEx(id, value, largeNumFormat); } public static string GetValueDescriptionEx(int id, long value, int largeNumFormat = 1) public static string GetValueDescriptionEx(int id, long value, int largeNumFormat = 2) { var config = Get(id); if (config == null) Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA338_tagMCInvestInfo.cs
File was deleted Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA338_tagMCInvestInfo.cs.meta
File was deleted Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA338_tagSCInvestInfo.cs
New file @@ -0,0 +1,12 @@ using UnityEngine; using System.Collections; // A3 38 投资信息 #tagSCInvestInfo public class DTCA338_tagSCInvestInfo : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HA338_tagSCInvestInfo vNetData = vNetPack as HA338_tagSCInvestInfo; InvestModel.Instance.UpdateInvestInfo(vNetData); } } Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA338_tagSCInvestInfo.cs.meta
File was renamed from Main/Config/Configs/InvestConfig.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: ff3d77591e2aeaa438955b2b6322cfba guid: 6691147a9486d0c4fb11244f78333c35 MonoImporter: externalObjects: {} serializedVersion: 2 Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB121_tagMCTreeInfo.cs
@@ -4,8 +4,7 @@ // B1 21 仙树信息 #tagMCTreeInfo public class DTCB121_tagMCTreeInfo : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HB121_tagMCTreeInfo vNetData = vNetPack as HB121_tagMCTreeInfo; BlessLVManager.Instance.UpdateBlessLVInfo(vNetData); Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -98,7 +98,7 @@ Register(typeof(HB125_tagSCPlayerHeroInfo), typeof(DTCB125_tagSCPlayerHeroInfo)); Register(typeof(HA814_tagMCMakeItemAnswer), typeof(DTCA814_tagMCMakeItemAnswer)); Register(typeof(HB122_tagSCHeroInfo), typeof(DTCB122_tagSCHeroInfo)); Register(typeof(HA338_tagMCInvestInfo), typeof(DTCA338_tagMCInvestInfo)); Register(typeof(HA338_tagSCInvestInfo), typeof(DTCA338_tagSCInvestInfo)); Register(typeof(HB121_tagMCTreeInfo), typeof(DTCB121_tagMCTreeInfo)); Register(typeof(HA720_tagMCCreateRoleAwardState), typeof(DTCA720_tagMCCreateRoleAwardState)); Register(typeof(HB405_tagMCAddExp), typeof(DTCB405_tagMCAddExp)); Main/Core/NetworkPackage/ServerPack/HA3_Function/HA338_tagMCInvestInfo.cs
File was deleted Main/Core/NetworkPackage/ServerPack/HA3_Function/HA338_tagMCInvestInfo.cs.meta
File was deleted Main/Core/NetworkPackage/ServerPack/HA3_Function/HA338_tagSCInvestInfo.cs
New file @@ -0,0 +1,23 @@ using UnityEngine; using System.Collections; // A3 38 投资信息 #tagSCInvestInfo public class HA338_tagSCInvestInfo : GameNetPackBasic { public byte InvestType; // 投资类型 public uint InvestBuyTime; // 投资购买时间戳,永久的通过该时间判断是否有效或已过天数,任意类型均有该值,过期没有重置,前端自己判断 public uint InvestEndTime; // 投资到期时间戳,非永久的通过该时间判断到期时间,有天数限制的才有值 public byte AwardState; // 今日是否已领取奖励 public HA338_tagSCInvestInfo () { _cmd = (ushort)0xA338; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out InvestType, vBytes, NetDataType.BYTE); TransBytes (out InvestBuyTime, vBytes, NetDataType.DWORD); TransBytes (out InvestEndTime, vBytes, NetDataType.DWORD); TransBytes (out AwardState, vBytes, NetDataType.BYTE); } } Main/Core/NetworkPackage/ServerPack/HA3_Function/HA338_tagSCInvestInfo.cs.metacopy from Main/Config/Configs/InvestConfig.cs.meta copy to Main/Core/NetworkPackage/ServerPack/HA3_Function/HA338_tagSCInvestInfo.cs.meta
File was copied from Main/Config/Configs/InvestConfig.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: ff3d77591e2aeaa438955b2b6322cfba guid: 6cb173a2eae27ba4f9194108916e9b48 MonoImporter: externalObjects: {} serializedVersion: 2 Main/Core/NetworkPackage/ServerPack/HB1_Role/HB121_tagMCTreeInfo.cs
@@ -1,14 +1,14 @@ using UnityEngine; using System.Collections; using UnityEngine; using System.Collections; // B1 21 仙树信息 #tagMCTreeInfo public class HB121_tagMCTreeInfo : GameNetPackBasic { public byte TreeLV; // 当前仙树等级 public byte LVUPState; // 0-非升级中;1-升级中 public uint LVUPRemainTime; // 升级剩余时间,秒;当升级中且倒计时为0时可发送B223执行升级包进行升级 public byte FreeTimeCnt; // 今日已免费减时次数 public uint FreeTimeLast; // 上次免费减时时间戳 public byte Energy; // 当前累计充能次数 public uint EnergyTimeLast; // 上次获得充能次数时间戳 public HB121_tagMCTreeInfo () { _cmd = (ushort)0xB121; @@ -18,8 +18,8 @@ TransBytes (out TreeLV, vBytes, NetDataType.BYTE); TransBytes (out LVUPState, vBytes, NetDataType.BYTE); TransBytes (out LVUPRemainTime, vBytes, NetDataType.DWORD); TransBytes (out FreeTimeCnt, vBytes, NetDataType.BYTE); TransBytes (out FreeTimeLast, vBytes, NetDataType.DWORD); TransBytes (out Energy, vBytes, NetDataType.BYTE); TransBytes (out EnergyTimeLast, vBytes, NetDataType.DWORD); } } Main/System/Equip/BlessLVADWin.cs
New file @@ -0,0 +1,50 @@ using System; using UnityEngine; using UnityEngine.UI; public class BlessLVADWin : UIBase { [SerializeField] Text moneyText; [SerializeField] Image moneyTypeImg; [SerializeField] Button adBtn; [SerializeField] Button useMoneyBtn; protected override void InitComponent() { adBtn.AddListener(OnAD); useMoneyBtn.AddListener(OnUseMoney); } protected override void OnPreOpen() { moneyText.text = UIHelper.ShowUseMoney(BlessLVManager.Instance.freeEnergyMoneyType, BlessLVManager.Instance.freeEnergyMoney); moneyTypeImg.SetIconWithMoneyType(BlessLVManager.Instance.freeEnergyMoneyType); } void OnAD() { AdsManager.Instance.SendGetReward(4); CloseWindow(); } void OnUseMoney() { CloseWindow(); if (UIHelper.CheckMoneyCount(BlessLVManager.Instance.freeEnergyMoneyType, BlessLVManager.Instance.freeEnergyMoney, 2)) { var pack = new CA504_tagCMPlayerGetReward(); pack.RewardType = 82; GameNetSystem.Instance.SendInfo(pack); } } } Main/System/Equip/BlessLVADWin.cs.metacopy from Main/Config/Configs/InvestConfig.cs.meta copy to Main/System/Equip/BlessLVADWin.cs.meta
File was copied from Main/Config/Configs/InvestConfig.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: ff3d77591e2aeaa438955b2b6322cfba guid: 199b4612be93c4e4098abc71de6cdb64 MonoImporter: externalObjects: {} serializedVersion: 2 Main/System/Equip/BlessLVManager.cs
@@ -9,17 +9,22 @@ public int m_TreeLV { get; private set; } // 当前仙树等级 public int m_LVUPState { get; private set; } // 0-非升级中;1-升级中 public int m_LVUPRemainTime { get; private set; } // 升级剩余时间,秒;当升级中且倒计时为0时可发送B223执行升级包进行升级 public int m_FreeTimeCnt { get; private set; } // 今日已免费减时次数 public int m_FreeTimeLast { get; private set; } // 上次免费减时时间戳 public int m_Energy; // 当前累计充能次数 public int m_EnergyTimeLast; // 上次获得充能次数时间戳 public event Action OnBlessLVUpdateEvent; int m_LVPackTime; //收包时间用于计算剩余时间m_LVUPRemainTime public int upgradeTreeMoneyType; //升级仙树消耗的货币类型 public int timeUpTreeItemID; //加速仙树升级的道具ID public int timeUpTreeItemSubTime; //减少仙树升级时间的道具减少的时间 public int dayFreeMaxTimes; //每日免费升级次数 public int freeTimeCD; //免费减少时间的冷却CD 分 public int freeSubTime; //免费减少的时间 分 int freeEnergyMax; //充能次数上限,特权额外次数在 InvestPower 配置 public int freeEnergyCD; //充能CD,分钟,x分钟获得1个能量 public int freeEnergySubTreeTime; //领取充能奖励减少祝福升级时间 分钟 public int freeEnergyMoneyType; //可消耗货币领取充能奖励, 货币类型|货币值,也可广告领取,二选一 public int freeEnergyMoney; public int lastTreeLV; //上一次树的等级 用于打开界面的时候播放下升级特效 @@ -28,6 +33,8 @@ m_TreeLV = 0; m_LVUPState = 0; m_LVUPRemainTime = 0; m_Energy = 0; m_EnergyTimeLast = 0; m_LVPackTime = 0; DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOK; GlobalTimeEvent.Instance.fiveSecondEvent += OnTimeEvent; @@ -56,9 +63,15 @@ var arr = config.Numerical2.Split('|'); timeUpTreeItemID = int.Parse(arr[0]); timeUpTreeItemSubTime = int.Parse(arr[1]); dayFreeMaxTimes = int.Parse(config.Numerical3); freeTimeCD = int.Parse(config.Numerical4); freeSubTime = int.Parse(config.Numerical5); config = FuncConfigConfig.Get("TreeEnergy"); freeEnergyMax = int.Parse(config.Numerical2); freeEnergyCD = int.Parse(config.Numerical3); freeEnergySubTreeTime = int.Parse(config.Numerical4); arr = config.Numerical5.Split('|'); freeEnergyMoneyType = int.Parse(arr[0]); freeEnergyMoney = int.Parse(arr[1]); } public void UpdateBlessLVInfo(HB121_tagMCTreeInfo netPack) @@ -66,8 +79,8 @@ m_TreeLV = netPack.TreeLV; m_LVUPState = netPack.LVUPState; m_LVUPRemainTime = (int)netPack.LVUPRemainTime; m_FreeTimeCnt = netPack.FreeTimeCnt; m_FreeTimeLast = (int)netPack.FreeTimeLast; m_Energy = netPack.Energy; m_EnergyTimeLast = (int)netPack.EnergyTimeLast; m_LVPackTime = TimeUtility.AllSeconds; if (lastTreeLV == 0) { @@ -85,11 +98,15 @@ return m_LVUPRemainTime - (TimeUtility.AllSeconds - m_LVPackTime); } public int GetMaxEnergyCnt() { return freeEnergyMax; } //充能时间倒计时, 用于客户端主动领取 或者 只有从0到1才显示用 public int GetFreeRemainTime() { if (m_LVUPState == 0) return 0; return m_FreeTimeLast + freeTimeCD * 60 - TimeUtility.AllSeconds; return freeEnergyCD * 60 - (TimeUtility.AllSeconds - m_EnergyTimeLast); } Redpoint redpointTree = new Redpoint(MainRedDot.BlessLVRedpoint); @@ -122,7 +139,7 @@ { redpointTreeItem.state = RedPointState.Simple; } if (m_FreeTimeCnt < dayFreeMaxTimes && GetFreeRemainTime() <= 0) if (m_Energy > 0) { redpointTreeFree.state = RedPointState.Simple; } @@ -156,10 +173,29 @@ AutoUpgrade(); } SendGetFreeEnergy(); UpdateTreeRedpoint(); } public void SendGetFreeEnergy() { if (m_Energy >= GetMaxEnergyCnt()) { return; } if (GetFreeRemainTime() > 0) { return; } var pack = new CA504_tagCMPlayerGetReward(); pack.RewardType = 82; pack.DataEx = 1; GameNetSystem.Instance.SendInfo(pack); } //装备品质的起始表现,最小1 public int GetStartEquipQuality() Main/System/Equip/BlessLVWin.cs
@@ -17,6 +17,7 @@ [SerializeField] Button timeUpBtn; //加速时间按钮 [SerializeField] Button freeBtn; [SerializeField] Text freeLeftTime; [SerializeField] Text energyCntText; [SerializeField] Transform upgradeWaiteState; //待升级 [SerializeField] Image processImg; //进度 @@ -41,9 +42,7 @@ freeBtn.AddListener(() => { var pack = new CA504_tagCMPlayerGetReward(); pack.RewardType = 82; GameNetSystem.Instance.SendInfo(pack); UIManager.Instance.OpenWindow<BlessLVADWin>(); }); } @@ -131,26 +130,26 @@ itemCntTxt.text = itemCnt + "/" + needCount; itemCntTxt.color = itemCnt >= needCount ? UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true); if (BlessLVManager.Instance.m_FreeTimeCnt < BlessLVManager.Instance.dayFreeMaxTimes) if (BlessLVManager.Instance.m_Energy == 0) { freeBtn.interactable = false; var freeeRemainTime = BlessLVManager.Instance.GetFreeRemainTime(); if (freeeRemainTime > 0) { freeLeftTime.text = TimeUtility.SecondsToHMS(freeeRemainTime); freeBtn.interactable = false; } else { freeLeftTime.text = ""; freeBtn.interactable = true; } } else { freeLeftTime.text = ""; freeBtn.interactable = false; freeBtn.interactable = true; } energyCntText.text = Language.Get("BlessTree9", BlessLVManager.Instance.m_Energy, BlessLVManager.Instance.GetMaxEnergyCnt()); } void CreateScroller() Main/System/Invest/InvestModel.cs
@@ -6,36 +6,24 @@ public class InvestModel : GameSystemManager<InvestModel> { // public ILOpenServerActivityProxy activity; public const int FuncID = 25; public const int monthCardType = 1; // 月卡 public const int foreverCardType = 2; //永久卡 权限 //投资对应奖励 Dictionary<int, Dictionary<int, List<Item>>> m_InvestItems = new Dictionary<int, Dictionary<int, List<Item>>>(); Dictionary<int, int[][]> m_InvestItems = new Dictionary<int, int[][]>(); //投资对应充值ID Dictionary<int, int[]> m_InvestRechargeIds = new Dictionary<int, int[]>(); //投资对应购买情况 Dictionary<int, InvestInfo> m_InvestInfos = new Dictionary<int, InvestInfo>(); //{投资类型:[领取天,当前天]} 天从1开始 Dictionary<int, List<List<int>>> m_InvestSingleInfos = new Dictionary<int, List<List<int>>>(); //投资对应的红点 Dictionary<int, Redpoint> m_Redpoints = new Dictionary<int, Redpoint>(); //投资类型 public List<int> investTypes = new List<int>(); //永久卡 权限 public const int foreverCardType = 12; //投资类型 public const int monthCardType = 7; // 月卡7 public event Action onSelectUpdate; public event Action<int> onInvestUpdate; public const int redpointID = 20931; public Redpoint redpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, redpointID); public Redpoint redpoint = new Redpoint(redpointID); public override void Init() @@ -60,14 +48,13 @@ public bool IsOpen() { return FuncOpen.Instance.IsFuncOpen(FuncID); return FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.PrivilegeCard); } public void OnBeforePlayerDataInitialize() { m_InvestInfos.Clear(); m_InvestSingleInfos.Clear(); } public void OnPlayerLoginOk() @@ -78,49 +65,16 @@ void ParseConfig() { investTypes.Clear(); var funcConfig = FuncConfigConfig.Get("InvestCost"); m_InvestRechargeIds = ConfigParse.ParseIntArrayDict(funcConfig.Numerical3); //m_Redpoints m_InvestRechargeIds = ConfigParse.ParseIntArrayDict(funcConfig.Numerical1); funcConfig = FuncConfigConfig.Get("InvestDay"); m_InvestItems = ConfigParse.ParseIntArray2Dict(funcConfig.Numerical3); investTypes = m_InvestRechargeIds.Keys.ToList(); investTypes.Sort(); var configs = InvestConfig.GetValues(); for (int i = 0; i < configs.Count; i++) { var config = configs[i]; if (!investTypes.Contains(config.type)) { continue; } Dictionary<int, List<Item>> dict; if (!m_InvestItems.TryGetValue(config.type, out dict)) { dict = new Dictionary<int, List<Item>>(); m_InvestItems.Add(config.type, dict); } List<Item> items; if (!dict.TryGetValue(config.id, out items)) { items = new List<Item>(); dict.Add(config.id, items); } var itemArray = config.award[1]; //1暂时约定月卡 永久卡,其他的自定义后续再定 for (int j = 0; j < itemArray.Length; j++) { items.Add(new Item() { id = itemArray[j][0], countEx = itemArray[j][1], bind = itemArray[j][2], }); } } } public OrderInfoConfig GetOrderInfoId(int type) @@ -144,113 +98,70 @@ } public int GetInvestPassDays(int type) { return m_InvestInfos.ContainsKey(type) ? m_InvestInfos[type].days : 0; } // public int GetInvestPassDays(int type) // { // return m_InvestInfos.ContainsKey(type) ? m_InvestInfos[type].days : 0; // } //获得单投资的总收益 public long GetTotalIncome(int type) { long income = 0; if (m_InvestItems.ContainsKey(type)) { var keyList = m_InvestItems[type].Keys.ToList(); for (int i = 0; i < keyList.Count; i++) { var items = m_InvestItems[type][keyList[i]]; for (var j = 0; j < items.Count; j++) { var item = items[j]; if (item.id == 20 || item.id == 30) income += item.countEx; } } } return income; } //id 为表里的ID //0-未投资 1-未达成 2-可领取 3-已领取 public int GetSingleInvestState(int type, int id) { if (IsInvested(type)) { var day = GetInvestPassDays(type); if (m_InvestItems.ContainsKey(type) && m_InvestItems[type].ContainsKey(id)) { if (IsRewardGot(type, id)) { return 3; } var config = InvestConfig.Get(id); // if (IsInvested(type)) // { // var day = GetInvestPassDays(type); // if (m_InvestItems.ContainsKey(type) // && m_InvestItems[type].ContainsKey(id)) // { // if (IsRewardGot(type, id)) // { // return 3; // } // var config = InvestConfig.Get(id); if (!m_InvestSingleInfos.ContainsKey(type)) { return 0; } // if (!m_InvestSingleInfos.ContainsKey(type)) // { // return 0; // } var index = id % 100; //每个数按位存31个激活索引 var listIndex = index / 31; var bitIndex = index % 31; // var index = id % 100; // //每个数按位存31个激活索引 // var listIndex = index / 31; // var bitIndex = index % 31; return day < config.needDay ? 1 : 2; } } // return day < config.needDay ? 1 : 2; // } // } return 0; } public bool TryGetItems(int type, int id, out List<Item> items) { items = null; if (m_InvestItems.ContainsKey(type)) { return m_InvestItems[type].TryGetValue(id, out items); } return false; } public List<int> GetIdsByType(int type) { if (m_InvestItems.ContainsKey(type)) { return m_InvestItems[type].Keys.ToList(); } return null; } //判断是否购买了投资 public bool IsInvested(int type) { return m_InvestInfos.ContainsKey(type) && m_InvestInfos[type].money > 0; if (!m_InvestInfos.ContainsKey(type)) { return false; } if (type == 1) { //月卡 限时类型的投资 未到期就算投资 return m_InvestInfos[type].InvestEndTime > 0 && m_InvestInfos[type].InvestEndTime < TimeUtility.AllSeconds; } //永久类型的投资 只要购买了就算投资 return m_InvestInfos[type].InvestBuyTime > 0; } //奖励是否已领取 public bool IsRewardGot(int type, int id) { if (m_InvestSingleInfos.ContainsKey(type)) { var index = id % 100; //每个数按位存31个激活索引 var listIndex = index / 31; var bitIndex = index % 31; return ((int)Math.Pow(2, bitIndex) & m_InvestSingleInfos[type][1][listIndex]) != 0; } return false; } private void OnFuncStateChangeEvent(int id) { if (id == FuncID) if (id == (int)FuncOpenEnum.PrivilegeCard) { // activity.StateUpdate(id); UpdateRedpoint(); } @@ -262,7 +173,7 @@ { var pak = new CA541_tagCMGetInvestReward(); pak.InvestType = (byte)type; pak.RewardIndex = (byte)(id % 100); pak.RewardIndex = (byte)id; GameNetSystem.Instance.SendInfo(pak); } @@ -272,7 +183,7 @@ RechargeManager.Instance.CTG(GetOrderInfoId(type)); } public void UpdateInvestInfo(HA338_tagMCInvestInfo package) public void UpdateInvestInfo(HA338_tagSCInvestInfo package) { if (!investTypes.Contains(package.InvestType)) { @@ -281,26 +192,12 @@ m_InvestInfos[package.InvestType] = new InvestInfo() { days = (int)package.CurDay, money = package.CurDay >= 1 ? 1 : 0, InvestBuyTime = (int)package.InvestBuyTime, InvestEndTime = (int)package.InvestEndTime, AwardState = package.AwardState }; List<List<int>> singleInfos; if (!m_InvestSingleInfos.TryGetValue(package.InvestType, out singleInfos)) { singleInfos = new List<List<int>>(); m_InvestSingleInfos.Add(package.InvestType, singleInfos); } singleInfos.Clear(); singleInfos.Add(new List<int>()); singleInfos.Add(new List<int>()); singleInfos.Add(new List<int>()); singleInfos[0].Add((int)package.CurDay); for (int i = 0; i < package.ValueCount; i++) { singleInfos[1].Add((int)package.RewardValue[i]); singleInfos[2].Add((int)package.ProgressValue[i]); } UpdateRedpoint(); if (onInvestUpdate != null) @@ -311,67 +208,20 @@ void UpdateRedpoint() { List<int> redpointTypes = new List<int>(); if (IsOpen()) if (!IsOpen()) { for (var i = 0; i < investTypes.Count; i++) { var type = investTypes[i]; if (!IsInvested(type)) { continue; } var keyList = m_InvestItems[type].Keys.ToList(); for (int j = 0; j < keyList.Count; j++) { var id = keyList[j]; if (GetSingleInvestState(type, id) == 2) { redpointTypes.Add(type); break; } } } return; } var redList = m_Redpoints.Keys.ToList(); for (int j = 0; j < redList.Count; j++) { var type = redList[j]; m_Redpoints[type].state = redpointTypes.Contains(type) ? RedPointState.Simple : RedPointState.None; } } //已经购买并领取所有物品 public bool IsFinish() { for (int i = 0; i < investTypes.Count; i++) { int type = investTypes[i]; //忽略永久卡 if (type == foreverCardType) continue; var idsList = GetIdsByType(type); if (idsList.IsNullOrEmpty()) continue; for (int j = 0; j < idsList.Count; j++) { int id = idsList[j]; if (GetSingleInvestState(type, id) != 3) { return false; } } } return true; } public struct InvestInfo { public int money; public int days; public int InvestBuyTime; // 投资购买时间戳,永久的通过该时间判断是否有效或已过天数,任意类型均有该值,过期没有重置,前端自己判断 public int InvestEndTime; // 投资到期时间戳,非永久的通过该时间判断到期时间,有天数限制的才有值 public int AwardState; // 今日是否已领取奖励 } } Main/System/Recharge/PrivilegeCardWin.cs
New file @@ -0,0 +1,133 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //特权卡 public class PrivilegeCardWin : UIBase { [SerializeField] GroupButtonEx djqBtn; [SerializeField] GroupButtonEx goldBtn; [SerializeField] ScrollerController djqScroller; [SerializeField] ScrollerController goldScroller; [SerializeField] Transform djqInfo; List<int> _list = new List<int>(); protected override void InitComponent() { djqBtn.AddListener(() => { OnSelectFuncType(0); }); goldBtn.AddListener(() => { OnSelectFuncType(1); }); } protected override void OnPreOpen() { djqScroller.OnRefreshCell += OnDjqRefreshCell; goldScroller.OnRefreshCell += OnGoldRefreshCell; RechargeManager.Instance.rechargeCountEvent += RechargeEvent; if (RechargeManager.Instance.selectTabIndex == 0) { djqBtn.SelectBtn(); } else if (RechargeManager.Instance.selectTabIndex == 1) { goldBtn.SelectBtn(); } Display(); } protected override void OnPreClose() { djqScroller.OnRefreshCell -= OnDjqRefreshCell; goldScroller.OnRefreshCell -= OnGoldRefreshCell; RechargeManager.Instance.rechargeCountEvent -= RechargeEvent; } void RechargeEvent(int id) { Display(); } void Display() { CreateScroller(); } void CreateScroller() { if (RechargeManager.Instance.selectTabIndex == 0) { _list = RechargeManager.Instance.GetCTGIDListByType(17); djqScroller.SetActive(true); djqInfo.SetActive(true); goldScroller.SetActive(false); if (djqScroller.GetCellTotalCount() == 0) { djqScroller.Refresh(); for (int i = 0; i < _list.Count; i++) { if (i % 3 == 0) { djqScroller.AddCell(ScrollerDataType.Header,i); } } djqScroller.Restart(); } else { djqScroller.m_Scorller.RefreshActiveCellViews(); } } else if (RechargeManager.Instance.selectTabIndex == 1) { _list = RechargeManager.Instance.GetCTGIDListByType(2); djqScroller.SetActive(false); djqInfo.SetActive(false); goldScroller.SetActive(true); if (goldScroller.GetCellTotalCount() == 0) { goldScroller.Refresh(); for (int i = 0; i < _list.Count; i++) { if (i % 3 == 0) { goldScroller.AddCell(ScrollerDataType.Header, i); } } goldScroller.Restart(); } else { goldScroller.m_Scorller.RefreshActiveCellViews(); } } } void OnDjqRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as RechargeDJQLineCell; _cell.Display(cell.index, _list); } void OnGoldRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as RechargeGoldLineCell; _cell.Display(cell.index, _list); } void OnSelectFuncType(int index) { RechargeManager.Instance.selectTabIndex = index; Display(); } } Main/System/Recharge/PrivilegeCardWin.cs.metacopy from Main/Config/Configs/InvestConfig.cs.meta copy to Main/System/Recharge/PrivilegeCardWin.cs.meta
File was copied from Main/Config/Configs/InvestConfig.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: ff3d77591e2aeaa438955b2b6322cfba guid: dfb43dd8cb814e24bba8dc559e1cb24d MonoImporter: externalObjects: {} serializedVersion: 2 Main/System/Redpoint/MainRedDot.cs
@@ -84,15 +84,6 @@ #endregion #region 开服活动红点 public const int REDPOINT_OPENSERVER = 209; public Redpoint openServerRedpoint = new Redpoint(REDPOINT_OPENSERVER); //280 开头用于节日祝福 public const int RedPoint_HolidayWishes = 280; public Redpoint holidayWishesRedpoint = new Redpoint(RedPoint_HolidayWishes); #endregion public const int REDPOINT_OPENRANK = 258; public Redpoint openRankRedpoint = new Redpoint(REDPOINT_OPENRANK); #region 仙盟活动红点 Main/Utility/EnumHelper.cs
@@ -833,6 +833,7 @@ Chat = 19,//聊天 AutoFight = 20,//自动战斗 Recharge = 22,//充值 PrivilegeCard = 25, //特权卡 Horse = 37, //坐骑 BattlePass = 40, //基金(战令) LLMJ = 41, //历练秘笈