5.3 KiB
5.3 KiB
type, title, description
| type | title | description |
|---|---|---|
| Log | Spigot Tyrant Design Log | Chronological record of material decisions affecting the Spigot Tyrant design. |
Spigot Tyrant Design Log
2026-08-14 — Administrative lifecycle completed
- Completed US-001 with permission-gated
/tyrantadminstart, status, pause, resume, and confirmed reset operations. - Initial Vigilantes may be assigned explicitly or selected among eligible recently active players, with offline selections persisted as pending confirmations.
- Pause/resume preserves progression and assignments, shifts every cooldown, participation, inactivity, and pending-selection deadline, and invokes managed effect suppression/restoration.
- Added detailed operator status output and verified lifecycle, timer shifting, permissions, confirmation safety, candidate filtering, metadata, and effect hooks with the Gradle suite.
2026-08-14 — Administrative lifecycle implementation started
- US-001 begins with test-first game start, pause/resume deadline freezing, permission-gated administration, inspection, and confirmed reset behavior.
2026-08-14 — Tyrant class assignment completed
- Completed US-004 with
/tyrant assign <class> <player>, purchased-class authorization, UUID state, one holder per class, and one Tyrant-side class per player. - Preserved dual alignment so Vigilantes and Followers can hold a Tyrant-side class, while rejecting the Tyrant and opted-out targets.
- Added reassignment and reign cleanup for class cooldown/item state, online assignment/removal notices, and login control reminders.
- Verified assignment constraints, dual alignment, cleanup, commands, notifications, and reminders with the Gradle test suite.
2026-08-14 — Tyrant class assignment implementation started
- US-004 begins with test-first purchased-class authorization, one-holder constraints, dual alignment, reassignment cleanup, and reign-wide removal.
2026-08-14 — Tyrant progression completed
- Completed US-003 with exact Tyrant-on-Vigilante kill attribution, level and choice rewards, pause guards, one-time purchases, and reign reset behavior.
- Added
/tyrant choicesstatus output and/tyrant buy <unlock>with durable atomic state updates and clear failure feedback. - Verified progression, duplicate purchase, authorization, paused-state, reset, command presentation, metadata, and persistence behavior with the Gradle test suite.
2026-08-14 — Tyrant progression implementation started
- US-003 begins with test-first kill attribution, one-time unlock purchases, and player-visible choice status.
2026-08-14 — Configuration and persistence completed
- Completed US-012 with validated defaults for ranges, timers, effects, items, messages, and mob restrictions, including runtime Bukkit section parsing.
- Added immutable lifecycle and player state for roles, dual-alignment classes, progression, participation, cooldowns, bound items, and captured mobs.
- Added RFC 3339 UTC timestamp persistence, paused deadline shifting, atomic YAML replacement, invalid-record rejection, unknown-field preservation, periodic saves, and shutdown saves.
- Verified all state, settings, bundled configuration, corruption, forward-compatibility, and pause-time tests with
./gradlew clean check jar.
2026-08-14 — Configuration and persistence implementation started
- US-012 begins with test-first validated defaults, immutable UUID-keyed domain state, paused-time-aware clocks, and defensive atomic YAML persistence.
2026-08-14 — Build and release foundation completed
- Completed US-013 with a Java 17 Gradle build, Spigot 26.2 API, strict compiler linting, JUnit 5 and Mockito dependencies, plugin metadata, and a minimal plugin entrypoint.
- Added Gitea push and pull-request CI, conventional-commit validation, development artifacts, semantic versioning, and versioned Gitea release assets modeled on
../spigot-base/. - Verified
./gradlew clean check jar, a release-version1.2.3JAR and embedded plugin version, workflow delivery settings, and OKF conformance.
2026-08-14 — Build and release implementation started
- Approved implementation begins with US-013 and a test-driven Java 17, Gradle, Spigot, and Gitea Actions foundation modeled on
../spigot-base/.
2026-08-14 — Initial game design
- The game has one Tyrant and one Vigilante, with Followers aligned to the Vigilante and Assassin, Fixer, and Tamer classes assigned by the Tyrant.
- A player who kills the Tyrant becomes the next Tyrant; a Tyrant death without a player killer causes random succession among recently active eligible players.
- Every Tyrant death clears all class and Follower assignments and resets the former Tyrant's reign progression.
- Every Vigilante death rerolls the role among eligible players active in the preceding 24 hours. The previous Vigilante is reused only when no other eligible non-Tyrant player exists.
- A Tyrant levels and earns one unlock choice only by personally killing the Vigilante.
- Class abilities use named bound items where appropriate. Consumed cooldown items return when ready, and
/tyrant itemrecovers missing ready items. - The Tamer has no cooldown and uses a named fishing rod plus a separate captured-mob item.
- Game timers freeze while administratively paused.
- The project will follow the Java 17, Gradle, testing, Gitea CI, and semantic-release structure demonstrated by
../spigot-base/.