using System.Collections; using System.Collections.Generic; using UnityEngine; using FutureCore; using FairyGUI; using FGUI.threeDaysGift; using Spine.Unity; using DG.Tweening; using FGUI.P01_Common; using System; namespace FlowerPower { public class ThreeDaysGiftUI : BaseUI { private ThreeDaysGiftUICtrl ctrl; private ThreeDaysGiftModel model; private FGUI.threeDaysGift.com_three_days ui; public ThreeDaysGiftUI(ThreeDaysGiftUICtrl ctrl) : base(ctrl) { uiName = UIConst.ThreeDaysGiftUI; this.ctrl = ctrl; } protected override void SetUIInfo(UIInfo uiInfo) { uiInfo.packageName = "threeDaysGift"; uiInfo.assetName = "com_three_days"; uiInfo.layerType = UILayerType.Popup; uiInfo.isNeedOpenAnim = false; uiInfo.isNeedCloseAnim = false; uiInfo.isNeedUIMask = true; } #region 生命周期 protected override void OnInit() { } protected override void OnClose() { HallManager.Instance.UpdateSecondEvent -= InitView; GameHelper.showGameUI = true; GameDispatcher.Instance.Dispatch(GameMsg.pack_close); GameHelper.CallShowTurn(); } protected override void OnBind() { ui = baseUI as FGUI.threeDaysGift.com_three_days; } private Action closeCallback; protected override void OnOpenBefore(object args) { NetworkKit.BuriedPoint(BuriedPointEvent.Apple_pay_event, BuriedPointEvent.three_days_gift_show, 1); list = ConfigSystem.GetConfig().dataList; ui.btn_close.SetClick(() => { GameDispatcher.Instance.Dispatch(GameMsg.ThreeDaysGiftUIClose); CtrlCloseUI(); }); ui.groups.visible = false; var ske_bg = FXManager.Instance.SetFx(ui.ani_bg, Fx_Type.fx_three_gift, ref closeCallback); ske_bg.state.SetAnimation(0, "3_days", false); ske_bg.state.Complete += (a) => { ske_bg.state.SetAnimation(0, "3_days_dj", false); }; DOVirtual.DelayedCall(0.5f, () => { ui.groups.visible = true; }); var ske_btn = FXManager.Instance.SetFx(ui.ani_title, Fx_Type.fx_title_effect, ref closeCallback); ske_btn.state.SetAnimation(0, "animation", true); InitBroadCast(); InitView(); if (GameHelper.IsGiftSwitch()) { ui.broadcast_top.visible = true; } else { ui.broadcast_top.visible = false; } HallManager.Instance.UpdateSecondEvent += InitView; if (Screen.safeArea.y != 0) { ui.broadcast_top.y += Screen.safeArea.y; } } 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.apple_pay_success, pay_success); GameDispatcher.Instance.AddListener(GameMsg.rewardMul_close, rewardMul_close); } protected override void RemoveListener() { GameDispatcher.Instance.RemoveListener(GameMsg.apple_pay_success, pay_success); GameDispatcher.Instance.RemoveListener(GameMsg.rewardMul_close, rewardMul_close); } #endregion void pay_success(object str) { string type = (string)str; if (type == PurchasingManager.three_days_gift) { // var start = Vector2.zero; // if (SaveData.GetSaveobject().three_gift_got_index == (int)rewardState.day1) { // start = GameHelper.GetUICenterPosition(ui.day1.item1.lab_num); // } else if (SaveData.GetSaveobject().three_gift_got_index == (int)rewardState.day2) { // start = GameHelper.GetUICenterPosition(ui.day2.item1.lab_num); // } else if (SaveData.GetSaveobject().three_gift_got_index == (int)rewardState.day3) { // start = GameHelper.GetUICenterPosition(ui.day3.item1.lab_num); // } // // var rewardData = new RewardData(); // var end = GameHelper.GetUICenterPosition(ui.node_end); // // var rewardSingleData = new RewardSingleData(101, list[1].coins_quantity, RewardOrigin.AdTask) // { // startPosition = start, // endPosition = end // }; // // rewardData.AddReward(rewardSingleData); // rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange; // rewardData.AddCompleted(success => // { // // if (success) // // { // // RefreshGold(awardNum); // // } // }); // // GameDispatcher.Instance.Dispatch(GameMsg.GetReward, rewardData); // // PreferencesMgr.Instance.Currency101 -= list[1].coins_quantity; // // UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.AdcomingUI_Close); // SaveData.GetSaveobject().is_get_removead = true; // InitView(); ui.pay_type.selectedIndex = 2; } // GameDispatcher.Instance.Dispatch(GameMsg.noads_refresh); } void rewardMul_close(object str) { if (SaveData.GetSaveobject().three_gift_got_index == (int)rewardState.day1) { NetworkKit.BuriedPoint(BuriedPointEvent.Three_days_gift_event, BuriedPointEvent.three_day1_success, 1); } else if (SaveData.GetSaveobject().three_gift_got_index == (int)rewardState.day2) { NetworkKit.BuriedPoint(BuriedPointEvent.Three_days_gift_event, BuriedPointEvent.three_day2_success, 1); } else if (SaveData.GetSaveobject().three_gift_got_index == (int)rewardState.day3) { NetworkKit.BuriedPoint(BuriedPointEvent.Three_days_gift_event, BuriedPointEvent.three_day3_success, 1); } SaveData.GetSaveobject().three_gift_got_index++; SaveData.GetSaveobject().last_got_three_gift_time = GameHelper.GetNowTime(); } private List list; // int adNums = AdRdManager.Instance.GetLookRewardADNum(); // adNums++; // AdRdManager.Instance.SetLookRewardADNum(adNums); private void InitView() { ui.text_have.text = "Owner ADs:" + AdRdManager.Instance.GetLookRewardADNum(); ui.need_text.text = "need " + list[0].Paid_price + " ADs"; ui.btn_buypack.GetChild("img_saveingpot").visible = false; ui.btn_max_pack.GetChild("img_saveingpot").visible = false; initItem(0); initItem(1); initItem(2); FGUI.threeDaysGift.btn_watchAd btn_buypack = (ui.btn_buypack as FGUI.threeDaysGift.btn_watchAd); GObject pack_title = ui.btn_buypack.GetChild("btn_text"); if (SaveData.GetSaveobject().is_get_ThreeDaysGift) { ui.pay_type.selectedIndex = 2; var isToday = GameHelper.InToday(SaveData.GetSaveobject().last_got_three_gift_time, 0, true); int three_gift_got_index = SaveData.GetSaveobject().three_gift_got_index; if (isToday || (three_gift_got_index > (int)rewardState.day3)) { ui.btn_get.grayed = true; ui.btn_get.SetClick(() => { if (three_gift_got_index < (int)rewardState.day3) { GameHelper.ShowTips("Come back and pick it up tomorrow."); } }); } else { ui.btn_get.SetClick(() => { getReward(); ui.btn_get.SetClick(() => { }); }); } } else { if (!GameHelper.IsAdModelOfPay()) { ui.pay_type.selectedIndex = 1; decimal price_pack = (decimal)list[0].Paid_price2; ui.btn_max_pack.title = GameHelper.getPrice(price_pack); bool is_get = SaveData.GetSaveobject().is_get_ThreeDaysGift; if (is_get) { ui.btn_max_pack.enabled = false; ui.btn_max_pack.SetClick(() => { }); } else { if (GameHelper.IsGiftSwitch() && ConfigSystem.GetConfig().PiggyBankSwitch == 1) { ui.btn_max_pack.GetChild("img_saveingpot").visible = true; } ui.btn_max_pack.SetClick(() => { ApplePayClass maxPayData = new ApplePayClass { amount = (int)Math.Round(price_pack * 100), sku = PurchasingManager.three_days_gift, currency = "USD" }; MaxPayManager.Instance.Buy(maxPayData); }); } } else { ui.pay_type.selectedIndex = 0; bool is_get = SaveData.GetSaveobject().is_get_ThreeDaysGift; if (is_get) { btn_buypack.buy_state.selectedIndex = 0; btn_buypack.can_buy.selectedIndex = 1; ui.btn_buypack.grayed = true; pack_title.text = "Cliamed"; ui.btn_buypack.SetClick(() => { }); } else if (AdRdManager.Instance.GetLookRewardADNum() >= list[0].Paid_price) { btn_buypack.buy_state.selectedIndex = 1; btn_buypack.can_buy.selectedIndex = 0; btn_buypack.SetClick(() => { NetworkKit.BuriedPoint(BuriedPointEvent.Apple_AD_event, BuriedPointEvent.three_days_gift_buy_success, 1); // SaveData.GetSaveobject().look_ad_numbers int adNums = AdRdManager.Instance.GetLookRewardADNum(); adNums -= (int)list[0].Paid_price; AdRdManager.Instance.SetLookRewardADNum(adNums); GameDispatcher.Instance.Dispatch(GameMsg.apple_pay_success, PurchasingManager.three_days_gift); // getReward(); ui.btn_buypack.SetClick(() => { }); }); } else if (SaveData.GetSaveobject()._watch_ad_cd > GameHelper.GetNowTime()) { btn_buypack.buy_state.selectedIndex = 0; btn_buypack.can_buy.selectedIndex = 1; pack_title.text = CommonHelper.TimeFormat(SaveData.GetSaveobject()._watch_ad_cd - Convert.ToInt32(GameHelper.GetNowTime()), CountDownType.Hour); btn_buypack.SetClick(() => { }); } else { btn_buypack.buy_state.selectedIndex = 0; btn_buypack.can_buy.selectedIndex = 0; if (GameHelper.IsGiftSwitch() && ConfigSystem.GetConfig().PiggyBankSwitch == 1) { ui.btn_buypack.GetChild("img_saveingpot").visible = true; } pack_title.text = "Watch AD"; btn_buypack.SetClick(() => { GameHelper.ShowVideoAd("ThreeDaysGift", (issuccess) => { if (issuccess) { SaveData.GetSaveobject()._watch_ad_cd = (int)GameHelper.GetNowTime() + GameHelper.GetCommonModel().exchangeCD; InitView(); } }); NetworkKit.BuriedPoint(BuriedPointEvent.Apple_AD_event, BuriedPointEvent.three_days_gift_click, 1); }); } } } BroadCast(); } private void initItem(int index) { com_item day = null; if (index == 0) { day = ui.day1; } else if (index == 1) { day = ui.day2; } else if (index == 2) { day = ui.day3; } if (SaveData.GetSaveobject().three_gift_got_index - 1 > index) { day.img_select.visible = true; if (SaveData.GetSaveobject().three_gift_got_index - 1 > 2) { day.img_select2.visible = true; } } day.state.selectedIndex = list[index].props_quantity.Length; setItemUrl(day.item1.loader_, GiftType.coin); day.item1.lab_num.text = "x" + list[index].coins_quantity; for (int i = 0; i < list[index].props_quantity.Length; i++) { item_reward item = (day.GetChild("item" + (i + 2)) as item_reward); setItemUrl(item.loader_, (GiftType)list[index].props_type[i]); item.lab_num.text = "x" + list[index].props_quantity[i]; } } private void setItemUrl(GLoader loader, GiftType urltype) { if (urltype == GiftType.coin) loader.url = "ui://threeDaysGift/3DAYS_prs_001"; else if (urltype == GiftType.move_out) loader.url = "ui://threeDaysGift/3DAYS_prs_003"; else if (urltype == GiftType.refresh) loader.url = "ui://threeDaysGift/3DAYS_prs_002"; else if (urltype == GiftType.undo) loader.url = "ui://threeDaysGift/3DAYS_prs_004"; } private void getReward() { int index = SaveData.GetSaveobject().three_gift_got_index; com_item item = null; if (index == (int)rewardState.day1) { item = ui.day1; } else if (index == (int)rewardState.day2) { item = ui.day2; } else if (index == (int)rewardState.day3) { item = ui.day3; } item.img_select.visible = true; List types = new List(); List rewards = new List(); types.Add((int)GiftType.coin); rewards.Add(list[index - 1].coins_quantity); for (int i = 0; i < list[index - 1].props_quantity.Length; i++) { types.Add(list[index - 1].props_type[i]); // GiftType 类型 rewards.Add(list[index - 1].props_quantity[i]); } GiftData data = new GiftData(); data.type = types; data.reward = rewards; uiCtrlDispatcher.Dispatch(UICtrlMsg.RewardMulNewUI_Open, data); } private int broadtime = 0; private List config_name_list = ConfigSystem.GetConfig().config_name_list; private List config_money_list = ConfigSystem.GetConfig().config_money_list; private List broad_list = new List(); private List text_list = new List(); private void InitBroadCast() { text_list.Add((ui.broadcast_top as broadcast_top).item_0.text_1); text_list.Add((ui.broadcast_top as broadcast_top).item_1.text_1); text_list.Add((ui.broadcast_top as broadcast_top).item_2.text_1); for (int i = 0; i < 3; i++) { int name_index = UnityEngine.Random.Range(0, config_name_list.Count); int money_index = UnityEngine.Random.Range(0, config_money_list.Count); broad_list.Add(new string[2] { config_name_list[name_index], config_money_list[money_index] }); text_list[i].text = "Congratulations,User [color=#ffda68][size=36]" + broad_list[i][0] + "[/size][/color] !After purchasing the ThreeDays Bouns,play [color=#ffda68]" + broad_list[i][1] + "[/color] matcher to clear the stage!"; } } private void BroadCast() { broadtime++; if (broadtime % 13 == 1) { (ui.broadcast_top as broadcast_top).t1.Play(() => { int name_index = UnityEngine.Random.Range(0, config_name_list.Count); int money_index = UnityEngine.Random.Range(0, config_money_list.Count); string[] array_ = new string[2] { config_name_list[name_index], config_money_list[money_index] }; text_list[0].text = "Congratulations,User [color=#ffda68][size=36]" + array_[0] + "[/size][/color] !After purchasing the ThreeDays Bouns,play [color=#ffda68]" + array_[1] + "[/color] matcher to clear the stage!"; }); } else if (broadtime % 13 == 4) { (ui.broadcast_top as broadcast_top).t2.Play(() => { int name_index = UnityEngine.Random.Range(0, config_name_list.Count); int money_index = UnityEngine.Random.Range(0, config_money_list.Count); string[] array_ = new string[2] { config_name_list[name_index], config_money_list[money_index] }; text_list[1].text = "Congratulations,User [color=#ffda68][size=36]" + array_[0] + "[/size][/color] !After purchasing the ThreeDays Bouns,play [color=#ffda68]" + array_[1] + "[/color] matcher to clear the stage!"; }); } else if (broadtime % 13 == 7) { (ui.broadcast_top as broadcast_top).t3.Play(() => { int name_index = UnityEngine.Random.Range(0, config_name_list.Count); int money_index = UnityEngine.Random.Range(0, config_money_list.Count); string[] array_ = new string[2] { config_name_list[name_index], config_money_list[money_index] }; text_list[2].text = "Congratulations,User [color=#ffda68][size=36]" + array_[0] + "[/size][/color] !After purchasing the ThreeDays Bouns,play [color=#ffda68]" + array_[1] + "[/color] matcher to clear the stage!"; }); } } } } enum rewardState { day1 = 1, day2, day3 } public class GiftData { public List type; public List reward; public string uiName; } public enum GiftType : int { coin = 101, move_out = 0, undo = 1, refresh = 2, }