add initial project files and configurations, including EventBus, systems, and resources

This commit is contained in:
2026-01-24 02:47:23 +01:00
commit bba82f64fd
110 changed files with 2735 additions and 0 deletions

18
Code/Data/DayConfig.cs Normal file
View File

@@ -0,0 +1,18 @@
using Godot;
using Godot.Collections;
namespace MaxEffort.Code.Data;
[GlobalClass]
public partial class DayConfig : Resource
{
[Export] public int DayNumber;
[Export] public string DayTitle = "Day 1: Light Weight";
[Export] public float TargetWeight = 100f; // Total Lift Distance
[Export] public float Gravity = 2.0f; // Difficulty multiplier
[Export] public PackedScene MiniGameScene;
// Hazards available on this specific day
[Export] public Array<HazardDef> AvailableHazards;
}

View File

@@ -0,0 +1 @@
uid://bkj0pcknqvjco

17
Code/Data/HazardDef.cs Normal file
View File

@@ -0,0 +1,17 @@
using Godot;
namespace MaxEffort.Code.Data;
[GlobalClass]
public partial class HazardDef : Resource
{
[Export] public HazardType Type;
[Export] public string DisplayName;
[Export] public SpriteFrames Animations;
[Export] public string IdleAnimName = "default";
[Export] public string WalkAnimName = "walk"; // Optional, if they walk in
[Export] public float TimeToFail = 3.0f; // How long before Game Over if ignored
[Export] public float SpawnWeight = 1.0f; // Rarity chance
[Export] public float MinFocusToSpawn = 0.3f; // Won't spawn if you aren't somewhat focused
[Export] public int ClicksToResolve = 1;
}

View File

@@ -0,0 +1 @@
uid://ck1vtdnok31dq

10
Code/Data/HazardType.cs Normal file
View File

@@ -0,0 +1,10 @@
namespace MaxEffort.Code.Data;
public enum HazardType
{
None,
GymBro,
LoosePlate,
PhoneDistraction,
Manager
}

View File

@@ -0,0 +1 @@
uid://b7dpyd82o2xlp

23
Code/Data/SoundBank.cs Normal file
View File

@@ -0,0 +1,23 @@
using Godot;
namespace MaxEffort.Code.Data;
[GlobalClass]
public partial class SoundBank : Resource
{
[ExportGroup("Player")]
[Export] public AudioStream StrainLoop; // Looping sound for lifting
[Export] public AudioStream EffortExhale; // "Hnnng!"
[Export] public AudioStream WinStinger; // "Light Weight!"
[Export] public AudioStream FailStinger; // "Fail..."
[Export] public AudioStream HeartbeatLoop;
[ExportGroup("Hazards")]
[Export] public AudioStream HazardSpawn; // Warning beep
[Export] public AudioStream HazardClear; // Success ding
[Export] public AudioStream CameraTrauma; // Heavy impact thud
[ExportGroup("Music")]
[Export] public AudioStream MenuMusic;
[Export] public AudioStream GameMusic;
}

View File

@@ -0,0 +1 @@
uid://c7iph3wg80lv5

12
Code/Data/TunnelConfig.cs Normal file
View File

@@ -0,0 +1,12 @@
using Godot;
namespace MaxEffort.Code.Data;
[GlobalClass]
public partial class TunnelConfig : Resource
{
[Export] public float VisionNarrowRate = 0.5f; // How fast it closes per sec
[Export] public float VisionRecoverRate = 2.0f; // How fast it opens when released
[Export] public float MaxTunnelIntensity = 0.95f; // 95% black screen
[Export] public Curve VisionCurve; // Non-linear progression!
}

View File

@@ -0,0 +1 @@
uid://c4bnx8w383o4e