Commit Graph

31 Commits

Author SHA1 Message Date
Acentech Dev
05a10d495d fix(CS): persist config via non-caching typed context (caching context saved nothing)
Some checks failed
.NET Core / build (push) Has been cancelled
CreateNewContext(config) returns a caching context whose returned config objects
aren't tracked by that context, so SetConfiguration+SaveChanges was a silent no-op
(DB row never updated). Load a fresh change-tracked PlugInConfiguration by id in a
non-caching typed context, rewrite the JSON, save. Adds a confirmation log line.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 12:30:18 +03:00
Acentech Dev
9bdd57703f feat(CS): persist owner/phase/registrations across restarts via plugin config JSON
Some checks failed
.NET Core / build (push) Has been cancelled
Castle Siege state was in-memory, so the castle owner (and thus the P4 hunting-map
reward) reset on every server restart/redeploy. Now the context marks itself dirty
on any persistable change (phase transition, registration, owner set); the plugin's
periodic tick writes a snapshot into its own PlugInConfiguration CustomConfiguration
(a JSON blob already stored in PostgreSQL - no schema migration) and restores it on
startup. Battle state (defenses/switches/occupier) stays transient. +2 unit tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 12:17:34 +03:00
Acentech Dev
f03f6aa7ad fix(CS-P4): Guard portal uses Land of Trials entry ExitGate (no spawn gate exists)
Some checks failed
.NET Core / build (push) Has been cancelled
Land of Trials (31) has no IsSpawnGate, so SafeZoneSpawnGate was null -> portal
said 'not available'. Fall back to the map's single entry ExitGate (60-69,10-19,
the real map entrance) so owner-guild members actually warp in.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 11:55:54 +03:00
Acentech Dev
d5097752af feat(CS-P4): castle Guard (220) as Land of Trials hunting portal
Some checks failed
.NET Core / build (push) Has been cancelled
The Valley of Loren Guard NPC now warps castle-owning guild members into the
hunting ground (map 31); non-owners get the sealed/owner-only reason. Provides
the in-world entry point that was missing (talking to Guard was unimplemented).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 11:45:01 +03:00
Acentech Dev
dfa884b86c feat(CS-P4): castle-exclusive hunting map (Land of Trials 31) gated to owner guild
Some checks failed
.NET Core / build (push) Has been cancelled
Ownership reward: only members of the current castle-owning guild may warp into
Land of Trials (map 31); sealed while unowned; GMs bypass. Enforced in both
WarpAction and WarpGateAction (// ADAMU-CUSTOM). Tax system deferred per user.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 11:35:34 +03:00
Acentech Dev
b890e82a88 refactor(CS-P3): siege defenses = 6 castle gates only (removed 4 statues per user - kept clean gate mechanic)
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-15 11:18:28 +03:00
Acentech Dev
8114930855 feat(CS-P3): 4 real guardian statues (283) at castle positions 82/107/94,129/131/126 - all defenses required for throne 2026-07-15 10:53:57 +03:00
Acentech Dev
af9554bf91 feat(CS-P3): REAL castle gates (NPC 277) at 6 client gate positions -> client closes+blocks them; breakable via HP template; inner guardian statues (283)
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-15 03:18:00 +03:00
Acentech Dev
72ebc96e28 feat(CS-P3): throne registration via Sinior/Crown talk (223/216) after defenses down + both switches held; reachable defense positions
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-15 02:49:27 +03:00
Acentech Dev
db8bdd394f feat(CS-P3): PROPER siege - position-based Crown Switch hold (stand on them) + gates & statues destructibles + auto throne capture; remove non-working talk handlers
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-15 02:28:14 +03:00
Acentech Dev
c50af5e5c2 feat(CS-P3): full siege objective chain - guardian statues (Destructible spawn) + dual Crown Switch hold + throne capture gating 2026-07-15 01:52:19 +03:00
Acentech Dev
5549c2bec7 feat(CS-P3): siege PvP on Valley of Loren during siege (ADAMU-CUSTOM) + golden phase announcements
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-15 01:23:57 +03:00
Acentech Dev
c7147f7a63 feat(CS-P3): warp registered members to Valley of Loren on siege start + Crown Switch throne capture (NPC 217/218)
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-15 00:57:28 +03:00
Acentech Dev
9f2078d724 feat(CS-P3): throne capture + settlement winner in state machine + tests
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-15 00:48:09 +03:00
Acentech Dev
396527a62a docs: CS P3 siege battle plan (minimal playable increment first) 2026-07-15 00:42:05 +03:00
Acentech Dev
41588bd237 feat(CS-P2): registration fee (zen) + already-registered guard on Guardsman 2026-07-15 00:36:20 +03:00
Acentech Dev
44dcb2fd58 feat(CS-P2): Guardsman (NPC 224) talk handler -> register guild during registration phase
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-14 23:11:35 +03:00
Acentech Dev
268d40acd1 feat(CS-P1): GM chat commands (/csstatus /csstart /csphase /cssetowner /csreset)
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-14 22:44:46 +03:00
Acentech Dev
6999a780f3 feat(CS-P1): periodic Castle Siege plugin (per-context tick + custom config) 2026-07-14 22:41:46 +03:00
Acentech Dev
73de807bef feat(CS-P1): Castle Siege phase state machine (in-memory, time-injected) + tests 2026-07-14 22:40:24 +03:00
Acentech Dev
c2b495c754 docs: CS P1 plan (phase state machine + scheduling + admin, in-memory)
Some checks failed
.NET Core / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 22:33:16 +03:00
Acentech Dev
b44cc4f60d docs: mark remote-NPC touch registry as applied (Faz 0b)
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-14 21:37:03 +03:00
Acentech Dev
2ced76b303 test(ADAMU-CUSTOM): regression test for GameMap.GetNpcByNumber (remote-NPC) 2026-07-14 21:36:34 +03:00
Acentech Dev
03521c3ef5 feat(ADAMU-CUSTOM): port remote-NPC (open NPC window from anywhere via 0x8000 marker) 2026-07-14 21:35:25 +03:00
Acentech Dev
7ff1e12f2a docs: Phase 0b plan (remote-NPC port with ADAMU-CUSTOM markers + regression test)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 21:32:13 +03:00
Acentech Dev
5d48b1512e docs: ADAMU.md project runbook (workflow commands + Faz 0a summary)
Some checks failed
.NET Core / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 21:17:33 +03:00
Acentech Dev
2e59cdfe1f chore: AdamuSw deploy composes (local test + Coolify/Traefik prod) using self-built image
Some checks failed
.NET Core / build (push) Has been cancelled
- deploy-adamu/docker-compose.local.yml: local postgres + adamu-openmu:dev, direct 8080
- deploy-adamu/docker-compose.prod.yml: Coolify/Traefik prod adapted from AdaMu, image swapped to our build
- additive folder (deploy-adamu) to avoid upstream deploy/ merge conflicts
- plan Step5 fixed (-p:ci=true), paths -> deploy-adamu

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 19:31:07 +03:00
Acentech Dev
6aba2dd3c9 docs: fix Phase0a Step5 to use -p:ci=true (skip source-gen prebuild, matches Dockerfile)
Some checks failed
.NET Core / build (push) Has been cancelled
2026-07-14 19:05:58 +03:00
Acentech Dev
36fc125d5c baseline: OpenMU upstream b5a0961 (fresh source) 2026-07-14 19:00:35 +03:00
Acentech Dev
450402e47d docs: Phase 0a implementation plan (bootstrap + self-built image + DockerHub)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 18:56:36 +03:00
Acentech Dev
ed464095f9 docs: Castle Siege umbrella design spec
Full-fidelity Castle Siege architecture + fork/deploy strategy for AdamuSw.
Covers phase state machine, component design, upstream-merge safety
(additive-first, ADAMU-CUSTOM markers, touch registry, regression tests),
and phased rollout (Faz 0 bootstrap + P1-P5).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 18:45:30 +03:00