/// <summary> /// Initialize this weapon. /// </summary> public virtual void Initialization() { Flipped = false; _spriteRenderer = this.gameObject.GetComponent <SpriteRenderer> (); _comboWeapon = this.gameObject.GetComponent <ComboWeapon>(); SetParticleEffects(false); WeaponState = new InfStateMachine <WeaponStates>(gameObject, true); WeaponState.ChangeState(WeaponStates.WeaponIdle); WeaponAmmo = GetComponent <WeaponAmmo> (); _animatorParameters = new List <List <string> >(); _aimableWeapon = GetComponent <WeaponAim>(); InitializeAnimatorParameters(); if (WeaponAmmo == null) { CurrentAmmoLoaded = MagazineSize; } }
/// <summary> /// Describes what happens when the weapon starts /// </summary> protected virtual void TurnWeaponOn() { SfxPlayWeaponStartSound(); WeaponState.ChangeState(WeaponStates.WeaponStart); if ((_characterHorizontalMovement != null) && (ModifyMovementWhileAttacking)) { _movementMultiplierStorage = _characterHorizontalMovement.MovementSpeedMultiplier; _characterHorizontalMovement.MovementSpeedMultiplier = MovementMultiplier; } if (_comboWeapon != null) { _comboWeapon.WeaponStarted(this); } if (PreventAllMovementWhileInUse && (_characterHorizontalMovement != null) && (_controller != null)) { _controller.SetForce(Vector2.zero); _characterHorizontalMovement.SetHorizontalMove(0f); _characterHorizontalMovement.MovementForbidden = true; } }