28 lines
761 B
C#
28 lines
761 B
C#
using Godot;
|
|
|
|
namespace Mr.BrickAdventures.scripts.components;
|
|
|
|
[GlobalClass]
|
|
public partial class GravityAbility : MovementAbility
|
|
{
|
|
public float AscendGravity { get; set; }
|
|
public float DescendGravity { get; set; }
|
|
|
|
private float _gravity;
|
|
|
|
public override void Initialize(PlayerController controller)
|
|
{
|
|
base.Initialize(controller);
|
|
_gravity = (float)ProjectSettings.GetSetting("physics/2d/default_gravity");
|
|
}
|
|
|
|
public override Vector2 ProcessMovement(Vector2 velocity, double delta)
|
|
{
|
|
if (_body.IsOnFloor()) return velocity;
|
|
|
|
var gravityToApply = velocity.Y < 0 ? AscendGravity : DescendGravity;
|
|
velocity.Y += gravityToApply * (float)delta;
|
|
|
|
return velocity;
|
|
}
|
|
} |