Phase 5: Cobblebase jobs take back gated work, dig only zone ores

From Adrian's Mining test (2026-10-31):

- A gated job assigned to a pastured Pokemon that doesn't pass its gate
  is taken back at once (BaseManager assignment cleared, Cobblebase's
  assignment sync sent, owner told what the Pokemon needs), so it no
  longer sticks or shows under Buffs -> Active.
- Mining, Ore Finder and Evolution-item Finder only give the ores and
  evolution stones of the pasture's zone: new loot condition
  cobblesurvival:in_zone, the pack's versions of the 12 Cobblebase
  tables (tools/cobblebase_loot.py), Cobblebase's built-in copies
  removed at server start (ore/BaseLoot.kt). Mining adds quartz and the
  evolution stones, drops the type gems.
- Mining's loot reaching the chest needs an Item Gatherer in the same
  pasture (Cobblebase's design); documented, not changed.
- Self-tests gated_jobs_are_taken_back, base_jobs_dig_their_zones_ores;
  docs, balance table, licenses, Phase 5 checklist.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
claudeandClaude Opus 5.5 committed 2026-10-31 18:56:00 +01:00
1 parent 70cc2cad50
commit 11a583db01
27 files changed
+1458 -28

No files matched your search

+1
View File
@@ -42,6 +42,7 @@ Every tunable lives in a config file or in this table. **Placeholder** means gue
| Power Block gate | none of its own: Poke Power's recipe takes 4 redstone blocks (Verdant Jungle ore), 4 iron blocks and an Electirizer | Placeholder | Poke Power's recipe | The Phase 4 guardian flag is gone (Adrian, 2026-10-31) |
| Soft gate levels and materials | a Pokémon passes a zone's gate at the top of its band (Button Isle 10, Southwold 18, Lush Caves 28, Westmarch 25, Jungle 30, Highlands 35, Mire 38, Dripstone 38, Sunscorch 45, Deep Sea 50, Frostpeak 55, Deep Dark 60, Basalt 70), or holding a material: coal; raw copper/copper ingot; shiny stone; raw iron/iron ingot/thunder stone; redstone/leaf stone; lapis/sun stone; water stone; amethyst shard/moon stone; raw gold/gold ingot/fire stone/Heat Rock; Mystic Water; emerald/ice stone/dawn stone; diamond/dusk stone; quartz/netherite scrap. A harder zone's material counts too | Placeholder | `progression_gates/base.json` → `zones` (an optional `level` overrides the band top) | Adrian, 2026-10-31: soft gates, no flags |
| Gated field moves (Cobblemon HMs auras) | Flash: Dripstone; Dive, Mist: Mire; Rock Climb: Highlands; Magnet Rise: Sunscorch; Lucky Chant: Frostpeak; Lava Plume: Deep Dark | Placeholder | `progression_gates/base.json` → `field_moves` | Checked on the Pokémon giving the aura |
| Base job loot (Cobblebase Mining, Ore Finder, Evolution-item Finder) | ores and evolution stones only from the pasture's zone (by the zone of their tier); Mining adds quartz (uncommon, weight 8) and the evolution stones (rare, weight 3) and drops the type gems; Cobblebase's other entries and weights unchanged | Placeholder | `tools/cobblebase_loot.py` → `datapacks/core/data/cobblebase/loot_table/` | Adrian, 2026-10-31. Rerun the tool after changing ore tiers in `world/zones.json` |
| Shoulder passives | Flying slow falling, Electric speed, Rock/Ground/Steel haste; gated: Fire warmth (Highlands), Ice frigidness (Jungle), Water water breathing (Mire), Ghost/Dark night vision (Dripstone); all level I | Placeholder | `datapacks/core/data/cobblesurvival/shoulder_passives/base.json` | Warmth and frigidness are Cold Sweat's effects |
| Poke Power output | 50 FE/t per Pokémon level, block stores 120,000 FE, 16,000 FE/t out; cable 32,000 / 16,000 | The mod's defaults | `pack/config/poke_power/server.toml` | Nothing uses the energy before Phase 6 |
| Cobblebase jobs | the mod's defaults (finder cooldown 240 s, passive XP 5 % a minute with a Mentor, recruiter rates, buffs) | The mod's defaults | `pack/config/cobblebase.json` (skill cooldowns in its own skill data) | Tune after play-testing |
+10 -2
View File
@@ -12,9 +12,13 @@
- **Rock Smash mines the island's ore:** the ore drops, and mined vein blocks turn into regenerators that grow back. Automated: `rock_smash_mines_veins`.
- **HMs' Trainer Ditto** (a visiting TM seller that is a wild Ditto underneath) neither hunts weak trainers nor despawns as a stray.
- **Soft gates** replace the guardian flags. A gate names a zone; the Pokémon doing the work passes it at the top of that zone's level band, or while holding one of its materials (or a harder zone's). Table in `docs/balance.md`.
- Cobblebase skills: checked on the pastured Pokémon; its owner is told once what it needs. Automated: `cobblebase_skills_need_level_or_material`.
- Cobblebase skills: checked on the pastured Pokémon. Automated: `cobblebase_skills_need_level_or_material`.
- Power Block: no gate of its own, its recipe takes the Jungle's redstone blocks. Automated: `power_block_gated_by_its_recipe`.
- HMs auras that get around hazards (Flash, Dive, Mist, Rock Climb, Magnet Rise, Lucky Chant, Lava Plume): switched off, with a message, while the Pokémon giving them doesn't pass. Automated: `hazard_auras_need_level_or_material`.
- **From your Mining test (2026-10-31):**
- Mining drops its loot at the Pokémon's feet; an **Item Gatherer** in the same pasture carries it into the chest (Cobblebase's design). Without one, the loot despawns after 5 minutes.
- A gated job doesn't stick: assigned to a Pokémon that doesn't pass, it's taken back at once (gone from Buffs → Active) with a message saying what the Pokémon needs. Automated: `gated_jobs_are_taken_back`.
- Mining, the Ore Finder and the Evolution-item Finder only give the ores and evolution stones of the pasture's zone; Mining no longer gives type gems. Automated: `base_jobs_dig_their_zones_ores`.
- **Shoulder passives:** a shoulder Pokémon gives an effect by type (Flying slow falling, Electric speed, Rock/Ground/Steel haste; gated: Fire warmth, Ice frigidness, Water water breathing, Ghost/Dark night vision). Automated: `shoulder_pokemon_give_passives`.
## In game (Prism instance)
@@ -22,12 +26,16 @@
- [ ] Send out a Pokémon that knows Rock Smash, pick Rock Smash on its interaction wheel, and punch an ore node: the node breaks in one go, drops its ore and turns into a regenerator.
- [ ] Do the same on an underground vein that needs a better pickaxe than the one you hold (e.g. iron in Westmarch with no pickaxe): it still breaks.
- [ ] Switch on Flash from a low-level Pokémon: it switches off again with a message saying what it needs. Give it an amethyst shard to hold (or a diamond), switch it on again: it stays on.
- [ ] Put a Pokémon below Lv 25 with the Mining skill in a pasture: you get a message that it needs Lv 25 or Westmarch ore. Give it an iron ingot to hold: it starts mining.
- [ ] Put a Pokémon below Lv 25 with the Mining skill in a pasture and assign it Mining: the job is taken back at once (Buffs → Active stays empty) with a message that it needs Lv 25 or Westmarch ore. Give it an iron ingot to hold and assign Mining again: it stays and mines.
- [ ] Add a Pokémon working as Item Gatherer to the same pasture, with a chest within a few blocks: Mining's loot ends up in the chest.
- [ ] With a pasture on Button Isle, Mining brings coal, tumblestones, cobblestone, gravel, flint and fossils, but no iron, copper, gold, diamonds or gems. In Westmarch it brings raw iron and thunder stones instead of coal.
- [ ] Craft and place a Power Block in survival: no guardian needed.
- [ ] Put Pidgey (or another Flying type) on your shoulder: slow falling. A low-level Fire type on your shoulder: a message about warmth; with a sun stone or lapis held, Cold Sweat's warmth shows.
- [ ] Look at the other abilities your Pokémon offer on the wheel (Cut, Strength, Surf boosts, ...) and note any you want switched off or tuned.
## Ask Adrian
- Gated jobs are taken back but their buttons still show in Cobblebase's Skills tab. Hiding them per Pokémon is possible (the screen knows each Pokémon's level and held item) but needs a client-side patch of Cobblebase's screen, which can break when Cobblebase updates. Want it?
- Mining should deliver straight into the chest instead of relying on an Item Gatherer?
- The gate levels, materials and which aura sits behind which zone are placeholders (`docs/balance.md`). Dive, Mist and Rock Climb were added to your four because they get around hazards the same way; say if any should stay open.
- Phase 5's roadmap done-when asked for fire with `doFireTick`; there's no fire move any more (furnaces are Phase 6). Approve Phase 5 as it is?
+8
View File
@@ -196,6 +196,14 @@ Adrian's answers (2026-10-31): HMs' abilities stay open; the ones that get aroun
Self-tests: `gates_cover_every_cobblebase_skill`, `cobblebase_skills_need_level_or_material`, `power_block_gated_by_its_recipe`, `hazard_auras_need_level_or_material`, `shoulder_pokemon_give_passives`.
**Cobblebase Mining, from Adrian's play-test (2026-10-31):**
- *Loot on the ground.* Cobblebase's Mining never fills a chest: it drops what it digs at the Pokémon's feet, tagged with its pasture. A second Pokémon in the same pasture working as **Item Gatherer** (open from the start) picks up items tagged with its pasture and puts them into the best container within 12 blocks of it. Untouched, the loot despawns after 5 minutes like any dropped item. Left as Cobblebase designed it; direct delivery would be a change in the companion mod.
- *Gated jobs don't stick.* Cobblebase lets the player assign one job per pastured Pokémon in its Skills tab, and the Buffs tab's "Active" list shows the assigned jobs. A job the Pokémon doesn't pass the gate for is now taken back the moment Cobblebase ticks it: the assignment is cleared, every client gets Cobblebase's assignment sync (so it leaves the Active list), and the owner is told what the Pokémon needs (`progress/CobblebaseGate.kt`). The job's button still shows in the Skills tab. Hiding it per Pokémon would need the gate tables sent to clients and a client mixin into Cobblebase's `SkillsPanel` (the screen already knows each pastured Pokémon's level and held item); not built, offered to Adrian.
- *Ores from the pasture's zone only* (Adrian: only the items of the zone the pasture is in). Mining, the Ore Finder and the Evolution-item Finder roll Cobblebase's tables `mining_*`, `finder_ore_*` and `finder_evo_*`. Cobblebase rolls its own built-in copy of a table (without loot conditions) and only falls back to the data pack's table when it has none, so the companion mod removes its copies of those twelve tables at server start (`ore/BaseLoot.kt`) and the pack ships its own versions (`datapacks/core/data/cobblebase/loot_table/`, written by `tools/cobblebase_loot.py` from Cobblebase's): every ore and evolution stone carries the loot condition `cobblesurvival:in_zone` (`zone/InZoneCondition.kt`) naming the zone of its tier in `world/zones.json`, checked at the Pokémon's position. Mining also gets the zone ores Cobblebase leaves out (quartz, the evolution stones) and loses the type gems, which are crafting shortcuts to gate materials (a Fire Gem makes a Heat Rock); ruins archaeology still has the gems. Cobblestone, gravel, flint, tumblestones and fossils stay everywhere. A table an operator edits in Cobblebase's own loot editor still wins.
Self-tests: `gated_jobs_are_taken_back`, `base_jobs_dig_their_zones_ores`.
## Notes for Phase 6 (researched 2026-10-31)
Adrian asked for existing mods for the multiblocks, or at least their logic. Phase 6's machines need a pattern-checked structure with a controller, a Pokémon stored inside (keeping its data, visible), safe return when the structure breaks, and state that survives unload and restart. Power is already Poke Power's (Phase 4), so the first machine is the Large Furnace. Nothing on NeoForge 1.21.1 puts a Pokémon into a multiblock; the structure part has several options:
+1
View File
@@ -57,6 +57,7 @@ Licenses of mods planned for later phases are in `docs/addon-status.md` and move
| `pack/config/worldgen_editor/presets/cobblesurvival_island.json` | Field format of WorldGen Editor presets; our own values | CC BY-NC-SA 4.0 to be safe |
| `datapacks/core/data/cobblemon/worldgen/placed_feature/ore/*.json` | Cobblemon's placed features (feature id kept, placement replaced) | MPL-2.0, like Cobblemon |
| `datapacks/core/data/cobblemon/worldgen/processor_list/**`, `.../template_pool/**` | Cobblemon's processor lists with an ore-stripping rule appended, and Gimmighoul tower pools without their mob pieces (`tools/clean_structures.py`) | MPL-2.0, like Cobblemon |
| `datapacks/core/data/cobblebase/loot_table/*.json` | Cobblebase's mining, Ore Finder and Evolution-item Finder loot tables, with zone conditions added and type gems removed (`tools/cobblebase_loot.py`) | MPL-2.0, like Cobblebase |
| `datapacks/core/data/cobblesurvival/spawn_pool_world/*.json`, `docs/zone-species.md` | Cobblemon's spawn pool entries, regrouped by zone with levels clamped (`tools/zone_spawns.py`) | MPL-2.0, like Cobblemon |
| `datapacks/core/data/minecraft/worldgen/processor_list/fossil_*.json`, `datapacks/core/data/minecraft/tags/worldgen/biome/has_structure/*.json` | Vanilla fossil processor lists (ore rule appended) and structure biome tags (basalt deltas removed) | Mojang's data, adapted as data packs commonly do |