private IEnumerator PlaySkillAnimationInternal(CharacterParams attacker)
 {
     if (attacker != null)
     {
         if (this._cameraMotionId.Length > 0)
         {
             this.SetPosition(attacker.transform, null);
         }
         else
         {
             this.SetPosition(attacker.transform, new Vector3?(attacker.dropItemOffsetPosition));
         }
     }
     this.StopAnimationInternal();
     this._isPlaying        = true;
     this.currentStageColor = Color.black;
     if (this._renderCamera != null)
     {
         this.currentStageColor = this._renderCamera.backgroundColor;
         if (this._hideStage)
         {
             if (this._lightColorChanger != null)
             {
                 this._lightColorChanger.isEnable    = false;
                 this.currentSunLightColor           = this._lightColorChanger.light.color;
                 this._lightColorChanger.light.color = this._hideStageLightColor;
                 this.currentSunLightRotation        = this._lightColorChanger.light.transform.rotation;
                 this._lightColorChanger.light.transform.rotation = Quaternion.Euler(this._hideStageLightEulerAngles);
             }
             if (this._stageObject != null)
             {
                 this._stageObject.SetActive(false);
             }
             this._renderCamera.backgroundColor = this._hideStageBackgroundColor;
         }
     }
     this._effectAnimation.clip.wrapMode = WrapMode.Once;
     this._effectAnimation[this._effectAnimation.clip.name].time = 0f;
     this._effectAnimation.PlayQueued(this._effectAnimation.clip.name, QueueMode.PlayNow);
     if (attacker != null && attacker.GetFindAttackMotion(this._motionIndex))
     {
         attacker.PlayAnimation(CharacterAnimationType.attacks, this._attackAnimationType, this._motionIndex, null, null);
         this.CharacterFollowingInitializeInternal(attacker);
         this.BillboardObjectInitializeInternal(attacker.transform, attacker.RootToCenterDistance());
         this.ParticheControllerInitializeInternal();
     }
     if (this._cameraMotionId.Length == 0)
     {
         this._scale = attacker.effectScale;
         base.transform.localScale  = Vector3.one;
         base.transform.localScale *= this._scale;
         foreach (ParticleSystem particles in this._particleSystems)
         {
             ParticleScaler.Scale(particles, this._scale, true, null);
         }
     }
     if (this._attackAnimationType == SkillType.InheritanceTechnique)
     {
         float motionTime = (!(attacker != null)) ? 0f : attacker.AnimationClipLength;
         float effectTime = this._effectAnimation[this._effectAnimation.clip.name].length;
         float time       = Mathf.Max(motionTime, effectTime);
         while (time > 0f)
         {
             time -= Time.deltaTime;
             if (!this._effectAnimation.isPlaying && this._effectAnimation.gameObject.activeInHierarchy)
             {
                 this._effectAnimation.gameObject.SetActive(false);
             }
             yield return(null);
         }
         this._effectAnimation.gameObject.SetActive(true);
     }
     else
     {
         while (this._effectAnimation.isPlaying)
         {
             yield return(null);
         }
     }
     yield break;
 }