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); }
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); }