Phase 9: reproducible builds, balance from the server, spark check, play feedback
Build: every tool pinned (JDK, packwiz, Gradle plugins, Python packages), exports normalised, tools/check_reproducible.py proves two clean builds are byte-identical. Server-side balance: a server can load config/cobblesurvival/datapack.zip in place of the jar's data, /reload applies it, tools/server_update.py packages it and refuses when a client change is needed. JEI drop pages are sent by the server. Code-held balance numbers moved to tuning/server.json. Performance: spark in the pack (server only), tools/perf_test.py with fake players whose chunks really are active, docs/performance.md. Adrian's feedback: default keys R, U, J, §; drop pages link to Cobblemon Info and show real chances; bosses only hurt in battles; battle XP halved; channels between the islands low level; temperature ×3 with insulation doubled; hazards start at once; no item dots on the map; a wild attack starts a battle; the starter only faints; quest book on join with a basics page and an HMs page; regional forms obtainable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0741c84077
commit
4083791944
133 files changed
+8350
-3273
No files matched your search
@@ -12,8 +12,27 @@
|
||||
- **Shaders:** Iris and Complementary Reimagined are installed, off by default.
|
||||
- **Left-out Pokémon:** 31 lines (67 species) spawn rarely in fitting zones (`docs/zone-species.md`). Automated: `spawn_pools_are_zoned`, `drop_sources_match_the_server`.
|
||||
|
||||
- **Reproducible build:** `tools/check_reproducible.py` compares two clean builds byte for byte.
|
||||
- **Balance on the server:** `tools/server_update.py` updates a server without touching clients. Automated: `tools/check_server_update.py`, `drop_sources_reach_the_client`.
|
||||
- **Performance:** `docs/performance.md`, from `tools/perf_test.py`.
|
||||
|
||||
- **Adrian's list of 2026-11-09:** shortcuts, drop pages link to Cobblemon Info, real drop chances, bosses only hurt in battles, half the battle XP, low channels, quicker hazards, no item dots on the map, attacks start battles. Automated: `drop_chances_match_cobblemon`, `starter_only_faints`, `regional_forms_are_obtainable`, `new_players_get_the_quest_book`, `bosses_only_take_battle_damage`, `wild_attack_starts_a_battle`, `wild_attack_hurts_without_a_party`, `mire_poisons_without_waders`.
|
||||
|
||||
## In game (Prism instance)
|
||||
|
||||
- [ ] Let your starter faint: it stays, fainted, and a Healing Machine wakes it. Try to release it and sacrifice it: both are refused. Any other Pokémon is still lost.
|
||||
- [ ] A new player spawns with the quest book. Its first page walks through the basics; the second lists every HM.
|
||||
- [ ] Are the regional forms' zones and rarity right? They're in `docs/zone-species.md`.
|
||||
- [ ] R on an item shows recipes, U its uses, J the map, § the quest book (left of 1 on a Swiss keyboard).
|
||||
- [ ] On JEI's Island Drops, click the Pokémon in the corner: Cobblemon Info's pages for it open.
|
||||
- [ ] Hit a guardian with a sword, set it on fire: nothing happens.
|
||||
- [ ] Anger a wild Pokémon: its attack starts a battle, you lose no hearts. With no Pokémon able to fight it hurts you.
|
||||
- [ ] Walk into Sunscorch or Frostpeak: temperature moves about three times as fast. Into the Mire: poison starts within half a second.
|
||||
- [ ] Dropped items show no dot on the minimap.
|
||||
- [ ] The channels between the islands have Lv 5–20 Pokémon, the open sea around the island Lv 30–50.
|
||||
|
||||
- [ ] Join a dedicated server with this pack: JEI's Island Drops, Boss Rewards and the rest are filled in. Change a drop, run `tools/server_update.py --install`, `/reload`: the page changes without relogging. (The client side of this can't be tested without a game window.)
|
||||
|
||||
- [ ] In the new save, mine into an ore node or vein: the mined blocks turn into faint glass, and you can keep aiming and mining the ore behind them. Sneak and use one: its info still shows.
|
||||
- [ ] Do nodes and veins feel right: fewer, bigger? The island has 1.5–3× the old ore; tell me if that's too much.
|
||||
- [ ] Give yourself a Sigil from JEI (creative) and use it outside its zone: it refuses and says where it works. Use it in its zone: the legend appears with a sound and particles. Fight it: area attacks, at most a quarter of its HP per attack. Weaken it and catch it; afterwards it's an ordinary Pokémon in your party (no quarter-HP limit in later battles).
|
||||
|
||||
Reference in new issue
Block a user