blob: be70d3a1fedb89fd9c98f47ed2faf324dabf1b4c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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<XTimerMgr>.singleton.SetTimer(NPC_Velskud_wing_teleport._startVeil, new XTimerMgr.ElapsedEventHandler(NPC_Velskud_wing_teleport.Veil), skill.Firer);
}
}
else
{
XSingleton<XTimerMgr>.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<XFadeOutEventArgs>.GetEvent();
@event.Out = NPC_Velskud_wing_teleport._fadeOutTime;
@event.Firer = (o as XEntity);
XSingleton<XEventMgr>.singleton.FireEvent(@event);
NPC_Velskud_wing_teleport._token = XSingleton<XTimerMgr>.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<XFadeInEventArgs>.GetEvent();
@event.In = NPC_Velskud_wing_teleport._fadeInTime;
@event.Firer = (o as XEntity);
XSingleton<XEventMgr>.singleton.FireEvent(@event);
}
}
}
}
|