/// <summary> /// This method initiates all the required checks and moves the character /// </summary> protected virtual void Patrol() { if (_character == null) { return; } if ((_character.ConditionState.CurrentState == CharacterStates.CharacterConditions.Dead) || (_character.ConditionState.CurrentState == CharacterStates.CharacterConditions.Frozen)) { return; } // moves the agent in its current direction CheckForWalls(); CheckForHoles(); _characterHorizontalMovement.SetHorizontalMove(_direction.x); }
/// <summary> /// Moves the character in the decided direction /// </summary> protected virtual void Move() { if (Mathf.Abs(this.transform.position.x - _brain.Target.position.x) < MinimumDistance) { _characterHorizontalMovement.SetHorizontalMove(0f); return; } if (this.transform.position.x < _brain.Target.position.x) { _characterHorizontalMovement.SetHorizontalMove(1f); } else { _characterHorizontalMovement.SetHorizontalMove(-1f); } }
/// <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; } }