using System.Collections.Generic; using FairyGUI; using DG.Tweening; using FGUI.ZM_Common_01; using System; using SGModule.NetKit; using UnityEngine; namespace RedHotRoast { public class LuckyPackUI : BaseUI { private LuckyPackUICtrl ctrl; private LuckyPackModel model; private FGUI.LG_LuckyGift.com_lucky ui; private List list; public LuckyPackUI(LuckyPackUICtrl ctrl) : base(ctrl) { uiName = UIConst.LuckyPackUI; this.ctrl = ctrl; } protected override void SetUIInfo(UIInfo uiInfo) { uiInfo.packageName = "LG_LuckyGift"; uiInfo.assetName = "com_lucky"; uiInfo.layerType = UILayerType.Popup; uiInfo.isNeedOpenAnim = false; uiInfo.isNeedCloseAnim = false; uiInfo.isNeedUIMask = true; } #region 生命周期 protected override void OnInit() { //model = ModuleManager.Instance.GetModel(ModelConst.PackrewardModel) as LuckyPackModel; } protected override void OnClose() { AdExchangeManager.Instance.Destroy(); GameHelper.showGameUI = true; GameDispatcher.Instance.Dispatch(GameMsg.pack_close); int three_gift_got_index = SaveData.GetSaveObject().three_gift_got_index; // if (GameHelper.isAutoPop && (three_gift_got_index <= (int)rewardState.day3)) // { // uiCtrlDispatcher.Dispatch(UICtrlMsg.ThreeDaysGiftUI_Open); // GameHelper.isAutoPop = false; // } GameHelper.CallShowTurn(); } protected override void OnBind() { ui = baseUI as FGUI.LG_LuckyGift.com_lucky; } protected override void OnOpenBefore(object args) { ui.gold.GetChild("text_gold").text = GameHelper.Get101Str(GameHelper.GetGoldNumber()); var needScroll = false; if (args != null) needScroll = (bool)args; ui.type.selectedIndex = needScroll ? 1 : 0; ui.gift_switch.selectedIndex = GameHelper.IsGiftSwitch() ? 1 : 0; Debug.Log($"needScroll============={needScroll}= {ui.type.selectedIndex}"); TrackKit.SendEvent(GameHelper.GetEventName(), needScroll ? ADEventTrack.Property.gift_show : ADEventTrack.Property.first_pack_show); list = ConfigSystem.GetConfig(); if (GameHelper.IsAdModelOfPay()) { AdExchangeManager.Instance.SetWatchAd(IAPPayManager.PRODUCT_FIRST_GIFT, ui.btn_buypack as btn_watchAd, SetTextString1); AdExchangeManager.Instance.SetWatchAd(IAPPayManager.PRODUCT_REMOVE_ADS, ui.btn_buyremovead as btn_watchAd, SetTextString1); } ui.btn_go_ad.SetClick(() => { ui.type.selectedIndex = 1; }); ui.btn_go_lucky.SetClick(() => { ui.type.selectedIndex = 0; }); InitView(); // var fileName = GameHelper.GetBackgroundName(1); // Debug.Log($"fileName======{fileName}"); // TextureHelper.SetImgLoader(ui.no_ad_pic.picture, fileName, null, "Background/"); // // var fileName1 = GameHelper.GetBackgroundName(2); // Debug.Log($"fileName1======{fileName1}"); // // TextureHelper.SetImgLoader(ui.lucky_pic.picture, fileName1, null, "Background/"); // var fileName = GameHelper.GetBackgroundName(1); // var task = new List<(GLoader loader, string fileName, Action callback, string folder, string localFolder)>(); // task.Add((ui.lucky_pic.picture, fileName, null, "Background/", FolderNames.BackgroundName)); // var fileName1 = GameHelper.GetBackgroundName(2); // task.Add((ui.no_ad_pic.picture, fileName1, null, "Background/", FolderNames.BackgroundName)); // TextureHelper.SetImgLoaders(task); } protected override void OnOpen(object args) { } protected override void OnHide() { } protected override void OnDisplay(object args) { } #endregion #region 消息 protected override void AddListener() { GameDispatcher.Instance.AddListener(GameMsg.IAP_PAY_SUCCESS, pay_success); } protected override void RemoveListener() { GameDispatcher.Instance.RemoveListener(GameMsg.IAP_PAY_SUCCESS, pay_success); } #endregion void pay_success(object str) { string type = (string)str; Debug.Log($"pay_success type================{type}"); if (type == IAPPayManager.PRODUCT_REMOVE_ADS) { var gold = list[1].coins_quantity; var start = GameHelper.GetUICenterPosition(ui.text_goldnum2); var end = GameHelper.GetUICenterPosition(ui.gold.GetChild("icon")); var rewardData = new RewardData(); var rewardSingleData = new RewardSingleData(101, gold, RewardOrigin.AdTask) { startPosition = start, endPosition = end, }; rewardData.AddReward(rewardSingleData); rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange; rewardData.AddCompleted((isScu) => { DOVirtual.DelayedCall(0.5f, () => { var startNum = DataMgr.Coin.Value - gold; DOVirtual.Float((float)startNum, (float)GameHelper.GetGoldNumber(), 1f, value => { ui.gold.GetChild("text_gold").text = GameHelper.Get101Str((decimal)value); }); }); }); GameDispatcher.Instance.Dispatch(GameMsg.GetReward, rewardData); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.AdcomingUI_Close); SaveData.GetSaveObject().is_get_removead = true; SaveData.SaveDataFunc(); InitView(); } else if (type == IAPPayManager.PRODUCT_FIRST_GIFT) { var start = GameHelper.GetUICenterPosition(ui.text_goldnum); var end = GameHelper.GetUICenterPosition(ui.gold.GetChild("icon")); var gold = list[0].coins_quantity; var rewardData = new RewardData(); var rewardSingleData = new RewardSingleData(101, gold, RewardOrigin.AdTask) { startPosition = start, endPosition = end, }; rewardData.AddReward(rewardSingleData); rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange; rewardData.AddCompleted((isScu) => { DOVirtual.DelayedCall(0.5f, () => { var startNum = DataMgr.Coin.Value - gold; DOVirtual.Float((float)startNum, (float)GameHelper.GetGoldNumber(), 1f, value => { ui.gold.GetChild("text_gold").text = GameHelper.Get101Str((decimal)value); }); }); }); GameDispatcher.Instance.Dispatch(GameMsg.GetReward, rewardData); SaveData.GetSaveObject().is_get_packreward = true; SaveData.SaveDataFunc(); InitView(); } } //初始化页面逻辑 private int gold_num = 300; private int back_num = 1; private int out_num = 1; private int refresh_num = 1; private void InitView() { gold_num = list[0].coins_quantity; back_num = list[0].props_quantity[1]; out_num = list[0].props_quantity[0]; refresh_num = list[0].props_quantity[2]; ui.text_time.SetVar("time", ConfigSystem.GetCommonConf().RemoveADsPackDuration.ToString()).FlushVars(); ui.btn_close.SetClick(CtrlCloseUI); ui.btn_luck_close.SetClick(CtrlCloseUI); ui.text_goldnum.text = "x" + GameHelper.Get101Str(gold_num); ui.text_backnum1.text = "x" + back_num; ui.text_outnum.text = "x" + out_num; ui.text_refreshnum.text = "x" + refresh_num; var buy_text = ui.btn_buypack.GetChild("title") as GTextField; buy_text.SetVar("price", list[0].Paid_price.ToString()).FlushVars(); ui.text_goldnum2.text = "x" + GameHelper.Get101Str(list[1].coins_quantity); var buy_text1 = ui.btn_buyremovead.GetChild("title") as GTextField; buy_text1.SetVar("price", list[1].Paid_price.ToString()).FlushVars(); if (!GameHelper.IsAdModelOfPay()) { ui.pay_type.selectedIndex = 1; decimal price_pack = (decimal)list[0].Paid_price2; ui.btn_max_pack.title = GameHelper.Get102Str(price_pack); bool is_get = SaveData.GetSaveObject().is_get_packreward; Debug.Log($"is_get================{is_get}"); if (is_get) { ui.btn_max_pack.enabled = false; ui.btn_max_pack.SetClick(() => { }); } else { ui.btn_max_pack.SetClick(() => { ApplePayClass maxPayData = new ApplePayClass { amount = (int)Math.Round(price_pack * 100), sku = IAPPayManager.PRODUCT_FIRST_GIFT, currency = "USD" }; MaxPayManager.Instance.Buy(maxPayData); }); } decimal price_remove = (decimal)list[1].Paid_price2; ui.btn_max_remove.title = GameHelper.Get102Str(price_remove); bool is_get1 = SaveData.GetSaveObject().is_get_removead; Debug.Log($"is_get1================{is_get1}"); if (is_get1) { HallManager.Instance.UpdateSecondEvent += RemoveAdCountDown; ui.btn_max_remove.enabled = false; ui.btn_max_remove.SetClick(() => { }); int cd = SaveData.GetSaveObject().remove_ad_time - Convert.ToInt32(GameHelper.GetNowTime()); if (cd > 24 * 3600) { ui.btn_max_remove.title = CommonHelper.TimeFormat(cd, CountDownType.Day, "D"); } else { ui.btn_max_remove.title = CommonHelper.TimeFormat(cd, CountDownType.Hour); } } else { ui.btn_max_remove.SetClick(() => { ApplePayClass maxPayData = new ApplePayClass { amount = (int)Math.Round(price_remove * 100), sku = IAPPayManager.PRODUCT_REMOVE_ADS, currency = "USD" }; MaxPayManager.Instance.Buy(maxPayData); }); } } else { ui.pay_type.selectedIndex = 0; AdExchangeManager.Instance.Start(); SetTextString1(); decimal price_remove = (decimal)list[1].Paid_price2; bool is_get1 = SaveData.GetSaveObject().is_get_removead; if (is_get1) { HallManager.Instance.UpdateSecondEvent += RemoveAdCountDown; ui.btn_buyremovead.enabled = false; ui.btn_buyremovead.SetClick(() => { }); var lastTimes = SaveData.GetSaveObject()._watch_ad_cd; if (GameHelper.GetNowTime() < lastTimes) { } int cd = SaveData.GetSaveObject().remove_ad_time - Convert.ToInt32(GameHelper.GetNowTime()); if (cd > 24 * 3600) { ui.btn_buyremovead.title = CommonHelper.TimeFormat(cd, CountDownType.Day, "D"); } else { ui.btn_buyremovead.title = CommonHelper.TimeFormat(cd, CountDownType.Hour); } } } } private void RemoveAdCountDown() { int cd = SaveData.GetSaveObject().remove_ad_time - Convert.ToInt32(GameHelper.GetNowTime()); if (cd > 0) { if (cd > 24 * 3600) { ui.btn_max_remove.title = CommonHelper.TimeFormat(cd, CountDownType.Day, "D"); ui.btn_buyremovead.title = CommonHelper.TimeFormat(cd, CountDownType.Day, "D"); } else { ui.btn_max_remove.title = CommonHelper.TimeFormat(cd, CountDownType.Hour); ui.btn_buyremovead.title = CommonHelper.TimeFormat(cd, CountDownType.Hour); } } else { SaveData.GetSaveObject().is_get_removead = false; SaveData.GetSaveObject().remove_ad_time = 0; InitView(); } } public void SetTextString1() { var remove_need = AdExchangeManager.Instance.GetCeilingNeedAds(IAPPayManager.PRODUCT_REMOVE_ADS); var pack_need = AdExchangeManager.Instance.GetCeilingNeedAds(IAPPayManager.PRODUCT_FIRST_GIFT); var myAd = AdExchangeManager.Instance.GetLookRewardADNum(); ui.ads.SetVar("num", myAd.ToString()).FlushVars(); ui.tips1.SetVar("num", pack_need.ToString()).FlushVars(); ui.tips2.SetVar("num", remove_need.ToString()).FlushVars(); } } }