using asap.core; using cfg; using GameCore; using System; using System.Collections.Generic; using UniRx; using UnityEngine; public class GetGiftBtnPosEvent { public Vector3 Pos; public float width; } /// /// 其他礼包 /// public class HomeGiftBtnPanel : MonoBehaviour { GiftButton ct_giftButton; GameObject btn_gift_piggybank; GameObject btn_gift_bargain; GameObject btn_gift9; GameObject btn_gift10; GameObject btn_gift11; Transform _minibp; Tables _tables; bool CollectingTarget = false; FishingEventData fishingEventData; protected CompositeDisposable disposables = new CompositeDisposable(); private void Awake() { GContext.OnEvent() .Where(_ => (_.type == 3 && _.subType == 8) || _.type == 9 || _.type == 6) .Subscribe(FishingEvent).AddTo(disposables); GContext.OnEvent().Subscribe(OnHideHomePanelEvent).AddTo(disposables); } private void OnHideHomePanelEvent(HideHomePanelEvent e) { Destroy(this); } public void Init() { fishingEventData = GContext.container.Resolve(); btn_gift9 = transform.Find("btn_gift9").gameObject; btn_gift10 = transform.Find("btn_gift10").gameObject; btn_gift11 = transform.Find("btn_gift11").gameObject; btn_gift_piggybank = transform.Find("btn_gift_piggybank").gameObject; btn_gift_bargain = transform.Find("btn_gift_bargain").gameObject; _minibp = transform.Find("MiniBPGroup"); _tables = GContext.container.Resolve(); ct_giftButton = transform.Find("btn_gift7").GetComponent(); ct_giftButton.gameObject.SetActive(false); int eventID38 = fishingEventData.GetEvent(3, 8); Show1A1(eventID38); int eventID6 = fishingEventData.GetEvent(6, 1); Show1A2(eventID6); SetPiggyBankShow(); SetBarginPackShow(); } #region 目标奖励活动礼包 GiftPopupPanel_7 public void InitCollectingTarget() { var pack = GContext.container.Resolve().IsShowCTGift(); CollectingTarget = pack != null; if (CollectingTarget) { ct_giftButton.Init(UITypes.GiftPopupPanel_7, GContext.container.Resolve().collectingTargetInit.GiftIcon); } else { ct_giftButton.gameObject.SetActive(false); } } public void SetCollectingTargetTime(string timeStr) { if (CollectingTarget && ct_giftButton != null) { ct_giftButton.SetTime(timeStr); } } public void HideTarget() { if (ct_giftButton != null) { ct_giftButton.gameObject.SetActive(false); } } #endregion #region //猪猪银行活动礼包 async void SetPiggyBankShow() { var fishingData = GContext.container.Resolve(); if (fishingData.isAddPiggyBank) { CanvasGroup canvasGroup = btn_gift_piggybank.GetComponent(); canvasGroup.alpha = 0; await Awaiters.Until(() => fishingData.isShowTargetPanel); fishingData.isShowTargetPanel = false; fishingData.isAddPiggyBank = false; if (GContext.container.Resolve().IsPackActivated) { Transform Ani_Container = btn_gift_piggybank.transform.Find("icon"); GetGiftBtnPosEvent getBuffPosEvent = new GetGiftBtnPosEvent(); getBuffPosEvent.Pos = Ani_Container.position; getBuffPosEvent.width = Ani_Container.GetComponent().rect.width; await Awaiters.Seconds(2f); GContext.Publish(getBuffPosEvent); await Awaiters.Seconds(0.66f); canvasGroup.alpha = 1; } } } #endregion #region //砍价礼包活动礼包 public async void SetBarginPackShow() { var fishingData = GContext.container.Resolve(); if (fishingData.isAddBarginPack) { CanvasGroup canvasGroup = btn_gift_bargain.GetComponent(); canvasGroup.alpha = 0; await Awaiters.Until(() => fishingData.isShowTargetPanel); fishingData.isShowTargetPanel = false; fishingData.isAddBarginPack = false; //if (GContext.container.Resolve().IsPackActivated) { Transform Ani_Container = btn_gift_bargain.transform.Find("icon"); GetGiftBtnPosEvent getBuffPosEvent = new GetGiftBtnPosEvent(); getBuffPosEvent.Pos = Ani_Container.position; getBuffPosEvent.width = Ani_Container.GetComponent().rect.width; await Awaiters.Seconds(2f); GContext.Publish(getBuffPosEvent); await Awaiters.Seconds(0.66f); canvasGroup.alpha = 1; } } } #endregion void FishingEvent(TargetEvent targetEvent) { if (targetEvent.type == 3) { Show1A1(targetEvent.id); } else if (targetEvent.type == 6) { switch (targetEvent.subType) { case 1: Show1A2(targetEvent.id); break; } } else if (targetEvent.type == 9) { ShowMiniBP(targetEvent.subType); } } #region 1+1活动礼包 void Show1A1(int eventid) { if (fishingEventData.Pack1A1Data != null && fishingEventData.Pack1A1Data.lastID == eventid && fishingEventData.Pack1A1Data.index < 2) { btn_gift10.SetActive(true); return; } btn_gift10.SetActive(false); var _epd = GContext.container.Resolve(); if (_epd != null && _epd.CurrentEventID == eventid) { btn_gift9.SetActive(true); return; } btn_gift9.SetActive(false); } #endregion #region 1+2活动礼包 void Show1A2(int eventid) { Pack1A2Data Pack1A2Data = fishingEventData.Pack1A2Data; if (fishingEventData.Pack1A2Data == null || Pack1A2Data.lastID != eventid) { btn_gift11.SetActive(false); return; } EventPackManager eventPackManager = fishingEventData.Get1A2EventPackManager(); List packIDs = eventPackManager.VIPPackList[Pack1A2Data.vipLevel]; if (packIDs.Count <= Pack1A2Data.index) { btn_gift11.SetActive(false); return; } btn_gift11.SetActive(true); } #region 小战令 void ShowMiniBP(int subType) { int count = _minibp.childCount; for (int i = 0; i < count; i++) { HomeBtnMiniBP homeBtnMiniBP = _minibp.GetChild(i).GetComponent(); if (homeBtnMiniBP != null&& homeBtnMiniBP.Type == (MiniBattlePassType)subType) { homeBtnMiniBP.SetShow(); } } } #endregion 小战令 #endregion void OnDestroy() { disposables?.Dispose(); disposables = null; } }