summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByQTE.cs
blob: 9416d80ff24e88185afbe2119a0bf568f25d4209 (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
64
65
66
67
68
69
using System;
using System.Collections.Generic;
using KKSG;
using XUtliPoolLib;

namespace XMainClient
{
	internal class XBuffTriggerByQTE : XBuffTrigger
	{
		private HashSet<int> m_QTEList = new HashSet<int>();

		private long m_PreToken = 0L;

		public XBuffTriggerByQTE(XBuff buff) : base(buff)
		{
			int num = 0;
			for (;;)
			{
				int num2 = base._GetTriggerParamInt(buff.BuffInfo, num);
				bool flag = num2 == 0;
				if (flag)
				{
					break;
				}
				this.m_QTEList.Add(num2);
				num++;
			}
		}

		public override void OnUpdate()
		{
			base.Trigger();
			base.OnUpdate();
		}

		public override bool CheckTriggerCondition()
		{
			bool flag = base.Entity.Machine == null;
			bool result;
			if (flag)
			{
				result = false;
			}
			else
			{
				bool flag2 = this.m_PreToken == base.Entity.Machine.ActionToken;
				if (flag2)
				{
					result = false;
				}
				else
				{
					this.m_PreToken = base.Entity.Machine.ActionToken;
					bool flag3 = base.Entity.Machine.Current != XStateDefine.XState_BeHit && base.Entity.Machine.Current != XStateDefine.XState_Freeze;
					if (flag3)
					{
						result = false;
					}
					else
					{
						KKSG.XQTEState qtespecificPhase = base.Entity.GetQTESpecificPhase();
						result = this.m_QTEList.Contains(XFastEnumIntEqualityComparer<KKSG.XQTEState>.ToInt(qtespecificPhase));
					}
				}
			}
			return result;
		}
	}
}