using System; using System.Collections.Generic; public class AdsManager : GameSystemManager { //<广告ID,今日已领取广告奖励次数> private Dictionary adsInfoDict = new Dictionary(); public event Action OnAdsInfoListUpdateEvent;//ADID ADMapID public override void Init() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent; } public override void Release() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent; } public void OnBeforePlayerDataInitializeEvent() { adsInfoDict.Clear(); } public void SendGetReward(int ADID) { var pack = new CA504_tagCMPlayerGetReward(); pack.RewardType = 81; // 广告奖励 81 pack.DataEx = (uint)ADID; // 广告奖励ID GameNetSystem.Instance.SendInfo(pack); } public void PlayAds(int ADID) { if (ADID == 1) { int dataMapID = BoneFieldManager.Instance.DataMapID; if (!DungeonManager.Instance.TryGetFBInfoByMapID(dataMapID, out var fbInfo)) return; SendGetReward(ADID); BoneFieldManager.Instance.SendBBeginFBWipeOut(dataMapID, (int)fbInfo.PassLineID); } } public int GetADCntByADID(int ADID) { if (adsInfoDict.IsNullOrEmpty() || !adsInfoDict.ContainsKey(ADID)) return 0; return adsInfoDict[ADID]; } public void UpdateAdsInfoList(HA722_tagSCADInfoList vNetData) { if (vNetData == null || vNetData.ADInfoList.IsNullOrEmpty()) return; foreach (var item in vNetData.ADInfoList) { adsInfoDict[item.ADID] = item.ADCnt; int mapID = 0; if (ADAwardConfig.HasKey(item.ADID)) { ADAwardConfig aDAwardConfig = ADAwardConfig.Get(item.ADID); mapID = aDAwardConfig.ADMapID; } OnAdsInfoListUpdateEvent?.Invoke(item.ADID, mapID); } } }