this is so easy to develop there must be a catch
Some checks failed
Create tag and build when new code gets to main / BumpTag (push) Successful in 26s
Create tag and build when new code gets to main / Export (push) Failing after 1m55s

This commit is contained in:
2026-01-25 00:16:16 +01:00
parent 92cc4f0264
commit cf7591b413
5 changed files with 60 additions and 14 deletions

View File

@@ -67,7 +67,9 @@ public partial class PlayerController : CharacterBody3D,
public RayCast3D DirectGroundDetector;
public Area3D WeaponHitbox;
public AudioStreamPlayer3D SfxPlayer;
public ShapeCast3D DashDamageDetector;
public Area3D SlidingEnemyDetector;
// Inspector stuff
[Export] public Marker3D TutorialWeaponTarget;
@@ -393,6 +395,7 @@ public partial class PlayerController : CharacterBody3D,
CeilingDetector = GetNode<ShapeCast3D>("CeilingDetector");
DirectGroundDetector = GetNode<RayCast3D>("DirectGroundDetector");
DashDamageDetector = GetNode<ShapeCast3D>("DashDamage");
SlidingEnemyDetector = GetNode<Area3D>("SlidingEnemyDetector");
RayCast3D stairsBelowRayCast3D = GetNode<RayCast3D>("StairsBelowRayCast3D");
RayCast3D stairsAheadRayCast3D = GetNode<RayCast3D>("StairsAheadRayCast3D");
_headCollisionDetectors = new RayCast3D[NUM_OF_HEAD_COLLISION_DETECTORS];
@@ -547,6 +550,7 @@ public partial class PlayerController : CharacterBody3D,
_weaponDash.StateExited += OnWeaponDashFinished;
SlidingEnemyDetector.BodyEntered += EnemyHitWhileSliding;
_sliding.StateEntered += SlideStarted;
_sliding.StateExited += SlideEnded;
_slideCanceled.StateEntered += OnSlideCanceled;
@@ -1413,8 +1417,11 @@ public partial class PlayerController : CharacterBody3D,
public void SlideStarted()
{
_targetSpeed = Velocity.Length();
SetupSlideCollision();
_audioStream!.SwitchToClipByName("glide");
SetupSlideCollision();
SlidingEnemyDetector.Monitoring = true;
_isInvincible = true;
}
public bool CanStandUpFromSlide()
@@ -1540,11 +1547,22 @@ public partial class PlayerController : CharacterBody3D,
}
public void SlideEnded()
{
_audioStream!.SwitchToClipByName("footsteps");
SlidingEnemyDetector.Monitoring = false;
_isInvincible = false;
SetupStandingCollision();
_audioStream!.SwitchToClipByName("footsteps");
_targetSpeed = WalkSpeed;
}
public void EnemyHitWhileSliding(Node enemy)
{
if(enemy is not IDamageable damageable)
return;
_hitEnemies.Add(damageable);
TriggerDamage();
}
public void JumpFromGroundSlide()
{
_jumpStrengthMultiplier = GroundSlideJumpMultiplier + Velocity.Length()*GroundSlideJumpSpeedFactor;