Exemple #1
0
 protected override void UpdateAction(float elapse)
 {
     if (base.variables == null || base.variables.IsInterrupted())
     {
         base.Finish();
         return;
     }
     this.startTimer -= elapse;
     if (this.startTimer < 0f)
     {
         if (this.step == LokiAction.AnimStep.StepStartAnim)
         {
             if (this.explodeStartPrefab != null)
             {
                 Transform instance = PoolMgr.SpawnParticleSystem(this.explodeStartPrefab.transform, base.variables.skillCaster.transform.position, base.variables.skillCaster.transform.rotation, 1f);
                 PoolMgr.spawnPool.Despawn(instance, this.explodeStartLifeTime);
             }
             PlayAnimationAction.PlayAnimation(base.variables, this.startAnim);
             this.startTimer += this.endAnimTime;
             this.step = LokiAction.AnimStep.StepEndAnim;
         }
         else if (this.step == LokiAction.AnimStep.StepEndAnim)
         {
             if (base.variables.skillTarget != null)
             {
                 base.variables.skillCaster.transform.LookAt(base.variables.skillTarget.transform.position);
                 base.variables.skillCaster.transform.position = base.variables.skillTarget.transform.position + Vector3.Normalize(base.variables.skillCaster.transform.position - base.variables.skillTarget.transform.position) * (base.variables.skillTarget.GetBoundsRadius() + base.variables.skillCaster.GetBoundsRadius() + this.overlayBound);
             }
             PlayAnimationAction.PlayAnimation(base.variables, this.endAnim);
             this.startTimer += this.delayDamage;
             this.step = LokiAction.AnimStep.StepDelayDamage;
         }
         else if (this.step == LokiAction.AnimStep.StepDelayDamage)
         {
             if (this.explodePrefab != null)
             {
                 Transform instance2 = PoolMgr.SpawnParticleSystem(this.explodePrefab.transform, base.variables.skillCaster.transform.position, base.variables.skillCaster.transform.rotation, 1f);
                 PoolMgr.spawnPool.Despawn(instance2, this.explodeLifeTime);
             }
             this.CastSkill();
             this.startTimer += this.delayUnlock;
             this.step = LokiAction.AnimStep.StepDelayLock;
         }
         else if (this.step == LokiAction.AnimStep.StepDelayLock)
         {
             base.variables.skillCaster.OnLockingStop(base.variables.skillInfo);
             this.step = LokiAction.AnimStep.StepMAX;
         }
         else
         {
             this.startTimer = 3.40282347E+38f;
             base.Finish();
         }
     }
 }
Exemple #2
0
 protected override void DoAction()
 {
     this.startTimer = this.startAnimTime;
     this.step = LokiAction.AnimStep.StepStartAnim;
     base.variables.skillCaster.OnLockingStart(true, true);
 }