Add door interaction system with requirements and HUD integration
This commit is contained in:
15
Code/Resources/DoorComponentResource.cs
Normal file
15
Code/Resources/DoorComponentResource.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using GameCore.Interaction;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace CryptonymThunder.Code.Resources;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class DoorComponentResource : Resource
|
||||
{
|
||||
[Export] public DoorComponent.DoorState InitialState { get; set; } = DoorComponent.DoorState.Closed;
|
||||
[Export] public bool IsOneTimeUnlock { get; set; } = false;
|
||||
[Export(PropertyHint.Range, "0.1,10.0,0.1")] public float OpenSpeed { get; set; } = 1.0f;
|
||||
|
||||
[ExportGroup("Requirements")] [Export] public Array<InteractionRequirementResource> Requirements { get; set; } = [];
|
||||
}
|
||||
1
Code/Resources/DoorComponentResource.cs.uid
Normal file
1
Code/Resources/DoorComponentResource.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ymtyxkea76mv
|
||||
9
Code/Resources/InteractionRequirementResource.cs
Normal file
9
Code/Resources/InteractionRequirementResource.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Godot;
|
||||
|
||||
namespace CryptonymThunder.Code.Resources;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class InteractionRequirementResource : Resource
|
||||
{
|
||||
|
||||
}
|
||||
1
Code/Resources/InteractionRequirementResource.cs.uid
Normal file
1
Code/Resources/InteractionRequirementResource.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dtqh3dwx7xc5u
|
||||
13
Code/Resources/RequiresAttributeRequirementResource.cs
Normal file
13
Code/Resources/RequiresAttributeRequirementResource.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using GameCore.Attributes;
|
||||
using GameCore.Interaction;
|
||||
using Godot;
|
||||
|
||||
namespace CryptonymThunder.Code.Resources;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class RequiresAttributeRequirementResource : InteractionRequirementResource
|
||||
{
|
||||
[Export] public Attribute Attribute { get; set; } = Attribute.Level;
|
||||
[Export] public float RequiredValue { get; set; } = 1.0f;
|
||||
[Export] public ComparisonType Comparison { get; set; } = ComparisonType.GreaterOrEqual;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://d07gx65gcsvb
|
||||
11
Code/Resources/RequiresItemRequirementResource.cs
Normal file
11
Code/Resources/RequiresItemRequirementResource.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Godot;
|
||||
|
||||
namespace CryptonymThunder.Code.Resources;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class RequiresItemRequirementResource : InteractionRequirementResource
|
||||
{
|
||||
[Export] public string ItemId { get; set; } = "item_key_green";
|
||||
[Export(PropertyHint.Range, "1,100,1")] public int Quantity { get; set; } = 1;
|
||||
[Export] public bool ConsumeItem { get; set; } = true;
|
||||
}
|
||||
1
Code/Resources/RequiresItemRequirementResource.cs.uid
Normal file
1
Code/Resources/RequiresItemRequirementResource.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dnyfoaprv6bhw
|
||||
Reference in New Issue
Block a user