From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/NPC_Velskud_wing_teleport.cs | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/NPC_Velskud_wing_teleport.cs (limited to 'Client/Assets/Scripts/XMainClient/NPC_Velskud_wing_teleport.cs') diff --git a/Client/Assets/Scripts/XMainClient/NPC_Velskud_wing_teleport.cs b/Client/Assets/Scripts/XMainClient/NPC_Velskud_wing_teleport.cs new file mode 100644 index 00000000..be70d3a1 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/NPC_Velskud_wing_teleport.cs @@ -0,0 +1,63 @@ +using System; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class NPC_Velskud_wing_teleport + { + private static uint _token = 0u; + + private static bool _veiled = false; + + private static float _startVeil = 0.267f; + + private static float _fadeOutTime = 0.1f; + + private static float _veilDuration = 0.267f; + + private static float _fadeInTime = 0.2f; + + public static bool Disappear(XSkill skill) + { + bool casting = skill.Casting; + if (casting) + { + bool flag = !NPC_Velskud_wing_teleport._veiled; + if (flag) + { + NPC_Velskud_wing_teleport._veiled = true; + NPC_Velskud_wing_teleport._token = XSingleton.singleton.SetTimer(NPC_Velskud_wing_teleport._startVeil, new XTimerMgr.ElapsedEventHandler(NPC_Velskud_wing_teleport.Veil), skill.Firer); + } + } + else + { + XSingleton.singleton.KillTimer(NPC_Velskud_wing_teleport._token); + NPC_Velskud_wing_teleport.Unveil(skill.Firer); + NPC_Velskud_wing_teleport._veiled = false; + } + return true; + } + + private static void Veil(object o) + { + XFadeOutEventArgs @event = XEventPool.GetEvent(); + @event.Out = NPC_Velskud_wing_teleport._fadeOutTime; + @event.Firer = (o as XEntity); + XSingleton.singleton.FireEvent(@event); + NPC_Velskud_wing_teleport._token = XSingleton.singleton.SetTimer(NPC_Velskud_wing_teleport._veilDuration, new XTimerMgr.ElapsedEventHandler(NPC_Velskud_wing_teleport.Unveil), o); + } + + private static void Unveil(object o) + { + bool flag = NPC_Velskud_wing_teleport._token > 0u; + if (flag) + { + NPC_Velskud_wing_teleport._token = 0u; + XFadeInEventArgs @event = XEventPool.GetEvent(); + @event.In = NPC_Velskud_wing_teleport._fadeInTime; + @event.Firer = (o as XEntity); + XSingleton.singleton.FireEvent(@event); + } + } + } +} -- cgit v1.1-26-g67d0