33 lines
887 B
C#
33 lines
887 B
C#
using Godot;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Godot.Collections;
|
|
|
|
namespace Rokojori
|
|
{
|
|
[Tool]
|
|
[GlobalClass, Icon("res://addons/rokojori_action_library/Icons/CCJump.svg")]
|
|
public partial class HeightBasedJumpStrength:JumpStrength
|
|
{
|
|
[Export]
|
|
public float height = 1;
|
|
|
|
[Export]
|
|
public float airControlAmount = 1f;
|
|
|
|
public override float GetJumpStrength( Jump jump )
|
|
{
|
|
var gravityStrength = jump.gravity == null ? Gravity.EarthGravity :
|
|
jump.gravity.strength.GetGravityStrength( jump.gravity );
|
|
|
|
if ( airControlAmount > 0f )
|
|
{
|
|
var airGravityStrength = jump.airControlGravityStrength.GetGravityStrength( jump.gravity ) * 0.5f;
|
|
|
|
gravityStrength -= airGravityStrength * airControlAmount;
|
|
}
|
|
|
|
return Mathf.Sqrt( 2f * gravityStrength * height );
|
|
}
|
|
}
|
|
} |