Убрано НАХУЙ _Recovery, добавлено движение в воздухе, деду добавлен стан как от дэша, так и от слайда, воллран вынесен в конфиг

This commit is contained in:
MrTorex committed 2025-12-04 17:34:12 +03:00
1 parent 77fd9af29d
commit b4de41894f
40 files changed
+69 -4526

No files matched your search

@@ -36,6 +36,7 @@ namespace Code.Gameplay.Character.Controller
private AirMovementSystem _airMovement;
public bool IsSliding => _slideMechanic.IsSliding;
public bool IsDashing => _dashMechanic.IsDashing;
public bool IsWallRunning => _wallRunningMechanic.IsWallRunning;
private float abilityBlockTimer;
@@ -62,16 +63,14 @@ namespace Code.Gameplay.Character.Controller
_characterConfig.slideMinVelocityThreshold,
_characterConfig.slideCooldown
);
_wallRunningMechanic = new WallRunningMechanic();
// TODO: WallRunningMechanic (можно вынести в конфиг позже)
_wallRunningMechanic.MaxWallRunTime = 1.75f;
_wallRunningMechanic.WallRunSpeed = 15.0f;
_wallRunningMechanic.WallRunAcceleration = 25.0f;
_wallRunningMechanic.WallRunGravityScale = 0.25f;
_wallRunningMechanic.WallDetachImpulse = 7.0f;
_wallRunningMechanic.WallContactAngleThreshold = 45.0f;
_wallRunningMechanic = new WallRunningMechanic(
_characterConfig.wallRunMaxTime,
_characterConfig.wallRunSpeed,
_characterConfig.wallRunAcceleration,
_characterConfig.wallRunGravityScale,
_characterConfig.wallDetachImpulse,
_characterConfig.wallContactAngleThreshold
);
_wallLeanMechanic = new WallLeanMechanic(
_characterConfig.leanAngle,
_characterConfig.leanThreshold,
@@ -82,8 +81,11 @@ namespace Code.Gameplay.Character.Controller
_characterConfig.stableMovementSharpness,
_characterConfig.jumpSpeed
);
_airMovement = new AirMovementSystem(_characterConfig.gravity);
_airMovement = new AirMovementSystem(
_characterConfig.gravity,
_characterConfig.maxAirSpeed,
_characterConfig.airControlSharpness
);
motor.CharacterController = this; // Регистрация этого контроллера в движке
_inputHandler.FirstPersonCameraRotation =
@@ -214,7 +216,7 @@ namespace Code.Gameplay.Character.Controller
// Если персонаж не на земле — стандартное воздушное движение
else
{
_airMovement.UpdateVelocity(ref currentVelocity, deltaTime);
_airMovement.UpdateVelocity(ref currentVelocity, _inputHandler, motor, deltaTime);
_groundMovement.CancelJumpRequest();
}
}