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);
|
}
|
}
|
}
|