public override void OnEnter()
        {
            if (goodState == null)
            {
                goodState = new ChargeCannons();
            }
            attackString       = goodState.attackString;
            chargeEffectPrefab = ChargeEmbers.chargeEffectPrefab;
            laserEffectPrefab  = ChargeEmbers.laserEffectPrefab;

            base.OnEnter();
            Util.PlayAttackSpeedSound(attackString, gameObject, attackSpeedStat * (2f / baseDuration));
            duration = baseDuration / attackSpeedStat;
            Transform modelTransform = GetModelTransform();

            if (modelTransform)
            {
                ChildLocator childLocator = modelTransform.GetComponent <ChildLocator>();
                if (childLocator)
                {
                    Transform muzzleTransform = childLocator.FindChild("Muzzle");
                    if (muzzleTransform)
                    {
                        if ((bool)chargeEffectPrefab)
                        {
                            chargeEffectInstance = UnityEngine.Object.Instantiate(chargeEffectPrefab, transform.position, transform.rotation);
                            chargeEffectInstance.transform.parent = transform;
                            ScaleParticleSystemDuration component2 = chargeEffectInstance.GetComponent <ScaleParticleSystemDuration>();
                            if ((bool)component2)
                            {
                                component2.newDuration = duration;
                            }
                        }
                        if ((bool)laserEffectPrefab)
                        {
                            laserEffectInstance = UnityEngine.Object.Instantiate(laserEffectPrefab, transform.position, transform.rotation);
                            laserEffectInstance.transform.parent = transform;
                            laserEffectInstanceLineRenderer      = laserEffectInstance.GetComponent <LineRenderer>();
                        }
                    }
                }
            }

            if (base.characterBody)
            {
                base.characterBody.SetAimTimer(duration);
            }
            base.PlayAnimation("Body", "ChargeAttack1", "ChargeAttack1.playbackRate", duration);
        }
Example #2
0
        public override void OnEnter()
        {
            if (this.goodState == null)
            {
                this.goodState = new ChargeCannons();
            }
            this.attackString = this.goodState.attackString;
            this.effectPrefab = this.goodState.effectPrefab;

            base.OnEnter();
            Util.PlayAttackSpeedSound(this.attackString, base.gameObject, this.attackSpeedStat * (2f / ChargeWispCannon.baseDuration));
            this.duration = ChargeWispCannon.baseDuration / this.attackSpeedStat;
            Transform modelTransform = base.GetModelTransform();

            if (modelTransform)
            {
                ChildLocator childLocator = modelTransform.GetComponent <ChildLocator>();
                if (childLocator)
                {
                    Transform muzzleTransform = childLocator.FindChild("Muzzle");
                    if (muzzleTransform)
                    {
                        this.chargeEffect = UnityEngine.Object.Instantiate <GameObject>(this.effectPrefab, transform.position, transform.rotation);
                        this.chargeEffect.transform.parent = transform;
                        ScaleParticleSystemDuration scaleParticleSystemDuration = this.chargeEffect.GetComponent <ScaleParticleSystemDuration>();
                        if (scaleParticleSystemDuration)
                        {
                            scaleParticleSystemDuration.newDuration = this.duration;
                        }
                    }
                }
            }

            if (base.characterBody)
            {
                base.characterBody.SetAimTimer(this.duration);
            }

            base.PlayAnimation("Body", "ChargeAttack1", "ChargeAttack1.playbackRate", this.duration);
        }