using ET.EventType; using FairyGUI; using UnityEngine; namespace ET.Client { public class HUDComonent { public static GComponent Root; public static GProgressBar pgTower; public static GProgressBar pgBoss1; public static GProgressBar pgBoss2; public static GProgressBar pgBoss3; public static GProgressBar pgBoss4; public static GProgressBar pgTKLike; public static GList listRank; public static GComponent[] listGift = new GComponent[6]; } [Event] public class ShowHUDEventHandler : BEvent { protected override async ETTask OnEvent(ShowHUDEvent _) { var view = await UIHelper.Create( "HUD" ); HUDComonent.Root = view; HUDComonent.pgTower = view.GetChild("HPBarTower") as GProgressBar; HUDComonent.pgBoss1 = view.GetChild("HPBarBoss1") as GProgressBar; HUDComonent.pgBoss2 = view.GetChild("HPBarBoss2") as GProgressBar; HUDComonent.pgBoss3 = view.GetChild("HPBarBoss3") as GProgressBar; HUDComonent.pgBoss4 = view.GetChild("HPBarBoss4") as GProgressBar; HUDComonent.pgTKLike = view.GetChild("EnergyBar") as GProgressBar; HUDComonent.listRank = view.GetChild("list_rank").asList; for( int i = 1; i <= 6; i++ ) { HUDComonent.listGift[i - 1] = view.GetChild($"CompGift{i}").asCom; } for (int i = 0; i < HUDComonent.listRank.numChildren; i++) { HUDComonent.listRank.GetChildAt(i).visible = false; } HUDComonent.listRank.visible = false; HUDComonent.pgTower.visible = false; HUDComonent.pgBoss1.visible = false; HUDComonent.pgBoss2.visible = false; HUDComonent.pgBoss3.visible = false; HUDComonent.pgBoss4.visible = false; HUDComonent.pgTKLike.visible = false; HUDComonent.pgTKLike.value = 0; var compIcon = view.GetChild("CompGifticon"); var compTips = view.GetChild("CompTips"); var btn = view.GetChild("btn_start"); btn.onClick.Set(() => { btn.visible = false; compIcon.visible = false; compTips.visible = false; HUDComonent.listRank.visible = false; bool flag = GlobalViewMgr.Instance.HeadbarView.visible; if (flag) { GlobalViewMgr.Instance.HeadbarView.visible = false; } CameraMgr.PlayStartAnimation(() => { compIcon.visible = true; HUDComonent.listRank.visible = true; if (flag) { GlobalViewMgr.Instance.HeadbarView.visible = true; } EventSystem.Instance.Publish(BattleFunc.Clone((int)BattleFunc.FUNC.Start)); }).Coroutine(); }); EventSystem.Instance.Publish(BattleFunc.Clone((int)BattleFunc.FUNC.ClientIsReady)); } } [Event] public class HPRefreshEventHandler : BEvent { protected override async ETTask OnEvent(HPRefresh a) { if (UIHelper.GetUI("HUD") == null) { return; } GProgressBar progress = null; switch (a.HPIndex) { case HPRefresh.Index.Tower: progress = HUDComonent.pgTower; HUDComonent.pgTKLike.visible = a.Visible; break; case HPRefresh.Index.Boss1: progress = HUDComonent.pgBoss1; break; case HPRefresh.Index.Boss2: progress = HUDComonent.pgBoss2; break; case HPRefresh.Index.Boss3: progress = HUDComonent.pgBoss3; break; case HPRefresh.Index.Boss4: progress = HUDComonent.pgBoss4; break; case HPRefresh.Index.TiktokLike: progress = HUDComonent.pgTKLike; break; } progress.visible = a.Visible; if (a.Visible) { progress.value = a.Progress; var name = progress.GetChild("name"); if (name != null) { name.text = a.Name; } var txt = progress.GetChild("title"); if (txt != null) { txt.text = a.Title; } } await ETTask.CompletedTask; } } [Event] public class RankEventHandler : BEvent { protected override async ETTask OnEvent(RankChangeEvent a) { if (UIHelper.GetUI("HUD") == null) { return; } var list = HUDComonent.listRank; if (list == null) return; for (int i = 0; i < a.InfoList.Count && i < list.numChildren; i++) { var chd = list.GetChildAt(i).asCom; if(chd == null) { return; } var txt = chd.GetChild("text"); txt.text = a.InfoList[i].Name; var mask = chd.GetChild("compIcon").asCom; var icon = mask.GetChild("iconLoader").asLoader; var url = a.InfoList[i].Url; if (!string.IsNullOrEmpty(url)) { LoadHeadIcon(icon, url).Coroutine(); } chd.visible = true; } for(int i = a.InfoList.Count; i < list.numChildren; i++) { var chd = list.GetChildAt(i); if(chd != null) { chd.visible = false; } } await ETTask.CompletedTask; } private async ETTask LoadHeadIcon(GLoader loader, string url) { var tex = await UrlImageLoader.Instance.LoadImage(url); if (tex != null) { if (GRoot.inst.GetChild("HUD") != null) { loader.texture = new NTexture(tex); } } } } [Event] public class ShowUIAnimationHandler : BEvent { protected override async ETTask OnEvent(ShowUIAnimation a) { if (UIHelper.GetUI("HUD") == null) { return; } var view = HUDComonent.Root; if (view == null) return; switch(a.Type) { case ShowUIAnimation.AniType.Monster: var trans = view.GetTransition("t_warning"); trans.Play(); trans = view.GetTransition($"t_warning_00{a.Param1}"); if (trans != null) { trans.Play(); } else { Log.Error($"NotFound UIAni: {a.Type},{a.Param1}"); } break; case ShowUIAnimation.AniType.Tower: if (a.Param1 == 0) { view.GetTransition("t_help").Play(); } else if (a.Param1 == 1) { view.GetTransition("t_jiayuangaoji").Play(); } break; case ShowUIAnimation.AniType.LikeEnergy: HUDComonent.pgTKLike.visible = true; HUDComonent.pgTKLike.value = a.Param1; trans = HUDComonent.pgTKLike.GetTransition("t0"); trans.Play(); break; default: Log.Error($"unknow ui animation: {a.Type}"); break; } await ETTask.CompletedTask; } } [Event] public class TiktokGiftEventHandler : BEvent { protected override async ETTask OnEvent(TiktokGiftEvent a) { if (UIHelper.GetUI("HUD") == null) { return; } var comp = HUDComonent.listGift[a.index - 1]; comp.GetChild("Text1").text = a.nickname; comp.GetChild("Text2").text = "X" + a.num; var mask = comp.GetChild("n0").asCom; var icon = mask.GetChild("iconLoader").asLoader; var url = a.avatar; if (!string.IsNullOrEmpty(url)) { LoadHeadIcon(icon, url).Coroutine(); } var trans = HUDComonent.Root.GetTransition($"t_gift_00{a.index}"); if (trans != null) { trans.Play(); } await ETTask.CompletedTask; } private async ETTask LoadHeadIcon(GLoader loader, string url) { var tex = await UrlImageLoader.Instance.LoadImage(url); if (tex != null) { if (GRoot.inst.GetChild("HUD") != null) { loader.texture = new NTexture(tex); } } } } [Event] public class ShowOrHideHeadBarHandler : BEvent { protected override async ETTask OnEvent(ShowOrHideHeadBar a) { if(a != null) { GlobalViewMgr.Instance.HeadbarView.visible = a.Flag; } else { GlobalViewMgr.Instance.HeadbarView.visible = !GlobalViewMgr.Instance.HeadbarView.visible; } await ETTask.CompletedTask; } } [Event] public class SoundMuteEventHandler : BEvent { protected override async ETTask OnEvent(SoundMuteEvent a) { bool isMute = SoundManager.Instance.UnityAudioSource.mute; if (a != null) { isMute = a.Flag; } else { isMute = !isMute; } SoundManager.Instance.UnityAudioSource.mute = isMute; GameSetting.Instance.SetBool(GameSetting.Sets.Mute_int, isMute); await ETTask.CompletedTask; } } }