summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByQTE.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByQTE.cs')
-rw-r--r--Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByQTE.cs69
1 files changed, 69 insertions, 0 deletions
diff --git a/Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByQTE.cs b/Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByQTE.cs
new file mode 100644
index 00000000..9416d80f
--- /dev/null
+++ b/Client/Assets/Scripts/XMainClient/Buff/XBuffTriggerByQTE.cs
@@ -0,0 +1,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;
+ }
+ }
+}