using System; 
 | 
using System.Collections.Generic; 
 | 
public class AdsManager : GameSystemManager<AdsManager> 
 | 
{ 
 | 
    //<广告ID,今日已领取广告奖励次数> 
 | 
    private Dictionary<int, int> adsInfoDict = new Dictionary<int, int>(); 
 | 
    public event Action<int,int> 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); 
 | 
        } 
 | 
    } 
 | 
} 
 |