Example #1
0
        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();
                }
            }
        }
Example #2
0
 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);
 }