Commit graph

136 commits

Author SHA1 Message Date
dc9184075b grant enemy abilities in debug console 2026-08-04 20:40:32 -07:00
16706a1ecf Scale difficulty by run position; wipe towers at phase end
Follow-up pass on the 2.0 refactor, closing the gap between "waves are drawn
at random" and "difficulty still lives in the enemy assets".

- Enemy health is no longer authored per enemy type. New EnemyScalingConfig
  scales a per-zone HP *budget* by encounter number; per-enemy health is that
  budget divided by the wave's enemy count. Scaling the total rather than the
  per-enemy value keeps enemy count a texture knob (few tanks vs many swarmers)
  instead of a second, uncontrolled difficulty axis. EnemyDefinition.MaxHp
  becomes HpMultiplier, a deviation around 1.0. Speed stays archetype-only and
  unscaled -- escalating it compounds with health and invalidates tower balance
  mid-run.
- GoldConfig entries no longer reference a WaveDefinition. Payout is a property
  of run position, not of which wave got drawn: WaveGoldEntry ->
  EncounterGoldEntry, Waves -> Encounters, keyed by global encounter number.
  Its inspector labels elements "Encounter N" and projects cumulative earnings.
- The wave's voted buffs now show as icon badges in the top bar, read from the
  same RunState slot the spawn path uses so the display can't drift from what
  the enemies actually carry. Hover names the buff; unillustrated cards fall
  back to a lettered badge rather than vanishing.
- Clearing a phase's boss destroys every built tower, unrefunded. Queued build
  jobs still refund -- those towers were never delivered. Runs with the field
  empty, so the walkability churn doesn't hit the re-path scheduler.
- Fixed an RPC codegen break: [ClientRpc] requires a ClientRpc suffix, unlike
  the newer [Rpc(SendTo...)] style this file doesn't use.
- Setup checklist reordered into dependency order; it previously asked for a
  RunDefinition two sections before creating one.

Also carries the editor-side asset reorganisation into Definitions/RunDefinitions
and the sprite move into Enemy/Player draft icon folders.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 00:32:33 -07:00
4892d7253d First pass at full refactor to 2.0 design
Restructures the game around the cyclical run loop from Game Design Doc V2:
5 waves = a cycle, 3 cycles = a phase, each phase ends in a boss.

- New TD.Gameplay.Waves: WaveGroup / PhaseDefinition / RunDefinition author the
  run as draggable weighted pools; RunState owns phase/cycle position, the drawn
  wave slots, and the per-slot enemy buff sets. WaveManager's flat wave array is
  gone -- it now only runs the encounter RunState points at.
- New TD.Gameplay.EnemyUpgrades: the post-wave enemy-buff vote, with public
  live-replicated ballots so the HUD can show who voted for what.
- Inter-wave flow is now strictly sequential: draft -> vote -> build, each stage
  ending early once every player has acted.
- Enemy abilities inverted from per-instance random rolls to deterministic,
  stacking per-wave-slot sets. Six cards ship: Split (reworked), Flight, Blink,
  No Bounty, Gold Theft, Double Up.
- Tower upgrades are a two-step tree: a draft pick unlocks a node, gold converts
  an already-placed tower in place.
- Boss encounters flag their enemies and drive a boss HP bar.
- Player cap reduced to 3 via MatchRules.MaxPlayers.
- GoldConfig is now keyed by global encounter number rather than wave index.

Compiles clean; NOT yet verified in-engine. Editor wiring still required --
see Docs/2.0_Setup_Checklist.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 17:45:11 -07:00
7e5c3a8279 Merge branch 'enemy-upgrades' 2026-07-28 22:46:37 -07:00
0a70f36838 simpler enemy split 2026-07-28 22:34:25 -07:00
Ben Calegari
0b7bc936ef Add settings menu to control audio and return to main menu 2026-07-28 22:02:28 -07:00
c88d3fc625 Merge branch 'main' of https://git.marlboro-bc.duckdns.org/yeahweregames/UnityTowerDefense 2026-07-28 21:59:00 -07:00
0498e7e786 Updating slow upgrade icon 2026-07-28 21:58:57 -07:00
11ad19992d enemies split, but it needs a bit of work 2026-07-28 21:40:59 -07:00
Ben Calegari
650cef7bfd Add autocomplete to dev console 2026-07-28 21:26:37 -07:00
8714885efa first pass at enemy upgrades 2026-07-28 20:59:43 -07:00
Ben Calegari
726af6d379 Fix retry after defeat 2026-07-28 20:47:06 -07:00
a26d0acbfb upgrades working; fix a small bug in which a base spell could be re-offered after picking an upgrade 2026-07-25 23:46:45 -07:00
2de6d85b2f slow area upgrade test 2026-07-25 23:22:11 -07:00
db9c828e63 start of draft option upgrades 2026-07-22 00:00:05 -07:00
e78ae0cda1 remove duplicate extra gold draft option 2026-07-21 21:23:18 -07:00
330a929985 remove deprecated buff system 2026-07-21 21:20:30 -07:00
35ea90f71b fix slow area spell area of effect 2026-07-21 20:56:55 -07:00
04d7b42e60 basic developer console 2026-07-21 20:37:57 -07:00
4375350901 added text entry system for debug console 2026-07-20 23:48:20 -07:00
e25a691ad9 no project of mine will have folders with spaces in the names 2026-07-18 21:38:16 -07:00
a33d951abd Updates to spells, HUD, Gold, and Camera Controls. New sound effects! 2026-07-18 18:12:56 -07:00
689fe7be88 shitty looking AOE effect for slow area 2026-07-17 00:03:36 -07:00
fe2c59d326 tab once selects builder, tab twice focuses builder 2026-07-16 20:49:13 -07:00
826d7b5037 Merge branch 'fireball-vfx' 2026-07-16 20:26:31 -07:00
c0e963fbeb fireball looks like a big stupid fuckin meatball now 2026-07-16 20:26:12 -07:00
c38d673768 adding sound effect game object to main branch 2026-07-14 23:57:13 -07:00
52f7bfdf51 Merge pull request 'tower-sell' (#12) from tower-sell into main
Reviewed-on: #12
2026-07-14 23:54:08 -07:00
9f87c04b4c reverting 9player changes 2026-07-14 23:28:12 -07:00
adfc6c106c little bit of sound 2026-07-14 23:24:29 -07:00
0b4cde4590 Adding the feature to sell towers with VFX and audio included 2026-07-14 23:15:34 -07:00
dd87fd6d0a terrible looking placeholder for firework 2026-07-14 23:10:32 -07:00
fb945db872 serialize some fields 2026-07-14 22:04:08 -07:00
ef5063c8a5 get rid of temp logging 2026-07-14 21:41:10 -07:00
ca958376a4 spells work! changed the layer to enemy 2026-07-14 21:37:41 -07:00
7cf15dcaa6 draft options working; spells won't cast though 2026-07-14 20:56:50 -07:00
1794f65b19 Fix sell hitch: batch footprint un-stamp; warn on missing SellEffectSpawner
TowerInstance.StampFootprint now writes walkability via SetWalkableBatch instead of per-tile SetWalkable, so despawning (selling) a 2x2 tower fires one OnWalkabilityChanged / enemy re-path instead of four — matching placement and removing the frame hitch on sell. PlaySellEffectRpc now logs a one-time warning when no SellEffectSpawner is in the scene, since a missing spawner silently suppressed the coin VFX and sound.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 20:44:11 -07:00
86bc916c49 Fix NGO RequireOwnership deprecation warnings; add VFX script metas
Replace deprecated [Rpc(..., RequireOwnership = true)] with InvokePermission = RpcInvokePermission.Owner on the owner-submitted draft/buff RPCs (PlayerDraft, PlayerBuffManager), matching the pattern already used elsewhere. Also commits the .meta files Unity generated for the new sell-VFX scripts so their GUIDs are stable across machines.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 20:22:00 -07:00
9be31b1645 Add tower Sell action with refund + coin VFX/SFX
Owner-validated sell RPC refunds SellRefundPercent of invested gold (Wall refunds 100% while un-upgraded), despawns the tower, and broadcasts a coin-burst VFX + rustle SFX. Refunds do not count as per-wave income. Investment/upgrade tracking added as the seam for the future upgrade system.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 20:05:06 -07:00
ian
2429efbf6a Merge pull request 'new builder option per draft - first one is gold per kill' (#11) from builder-abilities into main
Reviewed-on: #11
2026-07-07 23:45:34 -07:00
bf3c008777 bit field swapped for normal list at API boundaries 2026-07-07 23:43:15 -07:00
157b77ebfa new builder option per draft - first one is gold per kill 2026-07-07 22:55:35 -07:00
05671e8b0c Removing unnecessary Terrain asset and moving 9 player terrain to art folder 2026-07-07 20:45:38 -07:00
4a37d3747c building falling from orbit sound 2026-07-06 23:56:45 -07:00
ffe38ed8b1 add sounds to a few more units 2026-07-06 14:13:25 -07:00
7c0beddec4 remove useless files 2026-07-06 14:08:53 -07:00
51b7d58ada cool sounds 2026-07-06 14:02:00 -07:00
da4f729681 rudimentary dust and shockwave 2026-07-06 13:20:23 -07:00
49ac784f6d VFX graph for basic dust 2026-07-06 11:26:49 -07:00
3febdcf021 remove old building effect vestiges 2026-07-03 14:18:01 -07:00