40 Commits
Author SHA1 Message Date
Scottlg d4eb2e00be Fix all stale UID warnings
Scene files referenced assets by UIDs that no longer matched the
importer records. Rewrote 13 ext_resource references to the current
UIDs from the .import sidecars, and gave wow_style.tres the UID that
nine UI scenes were already referencing (its header had none).
Headless load is now warning-free.
2026-07-02 23:10:39 +01:00
Scottlg 4d2b177f7b Tune the Snippest down to a 2x lobster - 5x had too much reach and launched players skyward 2026-07-02 22:48:24 +01:00
Scottlg 8f28304d0f Wave escalation and the Snippest boss
Escalation (EnemySpawner exports, all tunable):
- Wave size grows +1 enemy per wave, capped at 20
- Enemy health +15% and damage +10% per wave, applied identically on
  every peer via the spawn RPC before _ready (so hitbox stats and
  current_health pick them up)

Boss milestone every 5th wave: the Snippest - the basic lobster at
5x scale and 5x combat stats (50 HP, 25 damage, 5x knockback and
reach). Movement deliberately not 5x (1.2x - it lumbers). Pays 250
gold and always drops a health orb. Wave escalation multipliers stack
on top, so later bosses keep scaling.

Boss scene instances basic_enemy.tscn with the BossLobster script;
visual/collision children are scaled uniformly in code (not the
CharacterBody3D root, not shared shape resources).
2026-07-02 22:27:14 +01:00
Scottlg fb10f7b042 Co-op pass: host-disconnect handling, spectate, late-join wave sync
- Clients now handle the host closing the arena: bank winnings if
  still alive (retire), reset the HUD, and return to the camp menu
  instead of being stranded in a dead world
- Death in co-op offers Spectate when a teammate is still fighting:
  closes the results overlay and watches the run; the escape menu
  gains a "Back to Camp" option for dead spectators to leave later
- Late joiners receive the current wave number on connect so their
  HUD doesn't sit on "Prepare..." until the next wave starts
2026-07-01 23:57:38 +01:00
Scottlg f5e0642b39 Arena polish: in-run HUD, no free loot, retire-with-winnings
- HUD arena status (top center): live wave number and run gold,
  driven by GameState signals, torn down cleanly on HUD.reset()
- Free floor weapons removed: the initial sword/shield spawn is gone
  and manually placed level.tscn weapons are deleted server-side at
  init. Gear now only enters play via the armory or enemy drops.
- Retire to Camp: new escape-menu button (shown only while alive in
  an active run) banks 100% of run gold and keeps all gear - the
  counterweight to death's 10% settlement. Exit Game and window close
  also bank winnings before quitting.
- CLAUDE.md rewritten for the gladiator arena era: core loop,
  autoloads, economy API, RPC patterns, verification workflow.
2026-07-01 23:47:03 +01:00
Scottlg 1562b37563 Gladiator arena: gold economy, outfitting shop, permadeath runs
Turns the sandbox into a survival roguelike loop: outfit your gladiator
with banked gold, enter the arena, earn gold from kills and wave clears,
die, keep 10% of your total value (floored at the 500 fresh-start).

Economy (GameState autoload):
- banked_gold, owned items, and loadout persist to user://save.cfg
- Kill gold (basic 10g, armed 25g) credited server-side to the killer
- Wave-clear bonus (25 + 5/wave) for all players; wave synced to peers
- Death settlement liquidates gear, guarded against double-fire

Character creation / shop:
- Menu reframed: armory shop + live Character Sheet loadout preview
- Character Sheet gains preview mode (renders from loadout, no player)
- Buy/Equip with hand rules; two-handers and off-hands displace each
  other symmetrically (shop and in-game pickups)
- Chosen loadout auto-equips on spawn via existing RPC path

Combat feel:
- Attacks snap to camera facing and lock direction for the swing
- Dash commits to its direction for the full duration
- Weapon slots show name text when no icon is set
- Hitbox/hurtbox debug meshes hidden by default (H toggles)

Death is final: players no longer respawn; a results screen shows waves,
time, kills, and the settlement, then returns to camp. Armed enemies no
longer respawn (were an infinite gold farm and respawned invisible).
2026-07-01 23:38:59 +01:00
Scottlg 97ebbb1618 Made more enemies, easier to kill, more slashy. You get passive health regen, health orbs. Little key bindings tooltip. 2026-06-30 22:57:11 +01:00
Twirpytherobot 7fa2efabaf heheh 2026-02-17 22:51:38 +00:00
Twirpytherobot 7629342540 Armed guys! 2026-02-17 22:21:17 +00:00
Scottlg fce4c4a3e2 Added Lobster Axe 2025-11-29 23:40:19 +00:00
Twirpytherobot 689181ac30 eNEMIES!!!!!!!!!
Enemys and enemy spawner

- Press N to spawn wave
- Press H to togglt hitboxs
2025-11-29 20:39:30 +00:00
Twirpytherobot b606563f4d Hitbox Timing 2025-11-29 18:24:36 +00:00
Twirpytherobot fab47fb1e0 Colours and practise dummy 2025-11-29 18:10:23 +00:00
Twirpytherobot ddc1522174 weapon timings 2025-11-28 18:40:23 +00:00
Twirpytherobot 7d18de1621 hitbox changes 2025-11-28 18:33:51 +00:00
Twirpytherobot 10cc8720b7 Hithurtboxes 2025-11-21 23:53:28 +00:00
Twirpytherobot 2ec7d56511 Sword animations now sync 2025-11-21 22:59:41 +00:00
Twirpytherobot b1f1016475 Applecorer 2025-11-21 22:48:05 +00:00
Twirpytherobot e192802f01 Finally fixed the sync issue!
Late joining now syncs properly!!!!!!
2025-11-19 23:12:12 +00:00
Twirpytherobot 85e76d67ca Fixed yo shit 2025-11-17 19:26:56 +00:00
Scottlg 6e4e3a3585 Revert to using player.tscn (robot character) temporarily
- Changed level.tscn back to player.tscn instead of Player_Lilguy.tscn
- This ensures the Character script is properly attached
- Lilguy character integration will be done properly later in Godot editor
- Game now runs without type errors
2025-11-16 23:30:48 +00:00
Scottlg bdc507e852 Fix nickname access error on player instantiation
- Changed from player.nickname.text to get_node_or_null approach
- @onready variables aren't available immediately after instantiation
- Prevents 'Invalid access to property or key nickname' error
2025-11-16 23:29:30 +00:00
Scottlg aba42e2a02 Add escape menu and weapon slot tooltips to character sheet
- Escape Menu:
  - Opens with Escape key from base game screen
  - Resume button to return to game
  - Exit Game button to quit application
  - Character sheet closes with Escape if open (takes priority)
  - Mouse capture/release handled by UI components

- Weapon Slot System:
  - Visual weapon boxes (80x80) in character sheet
  - Display weapon icons from WeaponData
  - Empty slots appear dimmed
  - Hover tooltips show weapon stats (not clipped by containers)
  - Tooltips display: slot name, weapon name, damage, range, cooldown, knockback, block percentage
  - Tooltips positioned globally to avoid ScrollContainer clipping

- Bug Fixes:
  - Fixed typo in lilguy_body.gd (dwextends -> extends)
  - Removed manual mouse toggle from player (now handled by UI)

- Updated character_sheet.gd to use weapon slot components instead of text labels
- Added weapon_tooltip.tscn as separate scene for unclipped tooltips
2025-11-16 23:11:51 +00:00
Scottlg 15865dd15f Add comprehensive UI system with action bar, unit frame, and character sheet
- Created UI system in level/ui/ folder
  - Action bar with 12 ability slots (Attack, Block, Dash, Jump + 8 expansion slots)
  - Unit frame showing player portrait with health bar
  - Character sheet/spellbook (toggle with Tab) displaying stats, weapons, and abilities
  - Tab hint indicator showing how to open character sheet
  - Custom theme with golden borders and dark backgrounds

- UI Components:
  - HUD Manager autoload handles all UI initialization and player connections
  - Ability buttons with cooldown overlay and keybind display
  - Real-time health and cooldown tracking via signals
  - Scrollable character sheet with two-page layout

- Player Integration:
  - Added UI signals: dash_cooldown_updated, attack_cooldown_updated, weapon_equipped_changed
  - Mouse capture system (Escape to toggle, click to recapture)
  - Synced attack cooldown from weapons to player for UI tracking

- Updated level.gd to connect local player to HUD Manager
- Updated CLAUDE.md with git commit guidelines
2025-11-16 22:48:50 +00:00
Scottlg d475c0abf9 Dash Fix 2025-11-16 22:22:24 +00:00
Twirpytherobot 38994776df Manually spawn weapons fixed
Pop the world weapon scene into weaponcontainer
2025-11-16 20:56:34 +00:00
Twirpytherobot 3431c12dc2 New player model with anims!!!!!! 2025-11-16 18:42:06 +00:00
Twirpytherobot 9d5feb6f0e Added rigged body test 2025-11-16 16:50:51 +00:00
Twirpytherobot c7f946a9e2 Damage numbers and knockback 2025-11-15 17:17:32 +00:00
Twirpytherobot 61446a0bcd Block maybe 2025-11-15 17:07:28 +00:00
Twirpytherobot 6da70f9bfe Weapon and shield slots 2025-11-15 16:44:58 +00:00
Twirpytherobot 86db6865b7 Base Weapons
Place in world, pick up and drop working on multiplayer
2025-11-15 16:03:38 +00:00
Scottlg 791b1557c7 Hugely big big big massive sword 2025-11-13 23:49:28 +00:00
Scottlg 89ca2186a2 Sword and Shield objects 2025-11-13 23:43:51 +00:00
Scottifermcg e2d9a529aa Redo some of the git ignore, and add a dash function 2025-11-12 23:30:04 +00:00
Twirpytherobot f34fc3e022 Coleseummmm 2025-11-12 20:47:58 +00:00
Twirpytherobot c077bd37a7 Attack animation
added auto fill buttons on the menu
2025-11-12 19:51:47 +00:00
Twirpytherobot bc30cfd6ca Health and attacks! 2025-11-12 19:18:36 +00:00
Twirpytherobot 1d63abc581 First Commit
Base multiplayer example with obster
2025-11-12 18:41:45 +00:00
JamesP 2616f1f052 Initial commit 2025-11-12 18:40:11 +00:00