some damage interfacing
This commit is contained in:
@@ -7,7 +7,7 @@ using Movementtests.systems;
|
||||
using Movementtests.player_controller.Scripts;
|
||||
using RustyOptions;
|
||||
|
||||
public partial class PlayerController : CharacterBody3D, IDamageable, IKnockbackable
|
||||
public partial class PlayerController : CharacterBody3D, IDamageable, IKnockbackable, IDamageMaker
|
||||
{
|
||||
// Enums
|
||||
public enum AllowedInputs
|
||||
@@ -59,6 +59,11 @@ public partial class PlayerController : CharacterBody3D, IDamageable, IKnockback
|
||||
[Export] public Marker3D TutorialWeaponTarget;
|
||||
[Export] public bool TutorialDone { get; set; }
|
||||
|
||||
[ExportCategory("Combat")]
|
||||
[ExportGroup("Damage")]
|
||||
[Export]
|
||||
public RDamage GetDamageDealt { get; set; }
|
||||
|
||||
[ExportCategory("Movement")]
|
||||
[ExportGroup("Ground")]
|
||||
[Export(PropertyHint.Range, "0,20,0.1,or_greater")]
|
||||
@@ -1571,26 +1576,6 @@ public partial class PlayerController : CharacterBody3D, IDamageable, IKnockback
|
||||
DashIndicatorMesh.Visible = false;
|
||||
}
|
||||
|
||||
///////////////////////////
|
||||
// Hit Management ///////
|
||||
///////////////////////////
|
||||
public void OnInputHitPressed()
|
||||
{
|
||||
if (_aiming.Active && WeaponSystem.InHandState.Active)
|
||||
{
|
||||
ThrowWeapon();
|
||||
}
|
||||
|
||||
if (!WeaponSystem.InHandState.Active) return;
|
||||
|
||||
var bodies = WeaponHitbox.GetOverlappingBodies();
|
||||
foreach (var body in bodies)
|
||||
{
|
||||
if(body is IDamageable spawnable)
|
||||
spawnable.TakeDamage();
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////
|
||||
// Parry Management ///////
|
||||
///////////////////////////
|
||||
@@ -1741,9 +1726,29 @@ public partial class PlayerController : CharacterBody3D, IDamageable, IKnockback
|
||||
DashIndicatorNode.LookAt(WeaponSystem.GlobalPosition);
|
||||
}
|
||||
}
|
||||
|
||||
public void TakeDamage()
|
||||
|
||||
public void TakeDamage(RDamage damage)
|
||||
{
|
||||
GD.Print("Ouch!");
|
||||
GD.Print("Ouch", damage.DamageDealt);
|
||||
}
|
||||
|
||||
///////////////////////////
|
||||
// Hit Management ///////
|
||||
///////////////////////////
|
||||
public void OnInputHitPressed()
|
||||
{
|
||||
if (_aiming.Active && WeaponSystem.InHandState.Active)
|
||||
{
|
||||
ThrowWeapon();
|
||||
}
|
||||
|
||||
if (!WeaponSystem.InHandState.Active) return;
|
||||
|
||||
var bodies = WeaponHitbox.GetOverlappingBodies();
|
||||
foreach (var body in bodies)
|
||||
{
|
||||
if(body is IDamageable spawnable)
|
||||
spawnable.TakeDamage(GetDamageDealt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user