public override void Core() { bool flag = true; for (int i = 0; i < this.config.Conditions.Length; i++) { QTECondition qteCondition = this.config.Conditions[i]; if (!this.CheckMaintainCondition(qteCondition)) { flag = false; break; } } if (this._qteMaxTimer.isActive) { if (!this._qteMaxTimer.isTimeUp) { this._qteMaxTimer.Core(1f); } else { flag = false; this._qteMaxTimer.Reset(false); this._delayQteTimer.Reset(true); } } if (!flag) { if (!this._avatarActor.IsSwitchInCD() && (this._avatarActor.isAlive != 0)) { if (this._delayQteTimer.isActive) { if (!this._delayQteTimer.isTimeUp) { this._delayQteTimer.Core(1f); } else { this._qteTargetList.Clear(); this._avatarActor.DisableQTEAttack(); } } } else { this._qteTargetList.Clear(); this._avatarActor.DisableQTEAttack(); } } }
private bool CheckMaintainCondition(QTECondition qteCondition) { if (!Singleton <AvatarManager> .Instance.IsLocalAvatar(this._avatarActor.runtimeID)) { if (Singleton <EventManager> .Instance.GetActor <AvatarActor>(Singleton <AvatarManager> .Instance.GetLocalAvatar().GetRuntimeID()).MuteOtherQTE) { return(false); } for (int i = 0; i < this._qteTargetList.Count; i++) { QTETarget target = this._qteTargetList[i]; target.Core(); if (!target.CanCheck()) { return(true); } MonsterActor monsterActor = target.monsterActor; if (((monsterActor != null) && (monsterActor.isAlive != 0)) && this.QTERangeCheck(monsterActor, qteCondition.QTERange)) { if (qteCondition.QTEType == QTEConditionType.QTEAnimationTag) { for (int j = 0; j < qteCondition.QTEValues.Length; j++) { MonsterData.MonsterTagGroup tagGroup = (MonsterData.MonsterTagGroup)((int)Enum.Parse(typeof(MonsterData.MonsterTagGroup), qteCondition.QTEValues[j])); if (monsterActor.monster.IsAnimatorInTag(tagGroup)) { return(true); } } } else if (qteCondition.QTEType == QTEConditionType.QTEBuffTag) { for (int k = 0; k < qteCondition.QTEValues.Length; k++) { AbilityState state = (AbilityState)((int)Enum.Parse(typeof(AbilityState), qteCondition.QTEValues[k])); if ((monsterActor.abilityState & state) != AbilityState.None) { return(true); } } } } } } return(false); }