Phase 5: soft gates instead of guardian flags, shoulder passives

Adrian (2026-10-31): HMs abilities stay open; the ones that get around
zone hazards get soft gates (materials or a high-level Pokemon, never
flags; gifted Pokemon and materials count the same); party passives from
shoulder Pokemon; Cobblebase skills and the Power Block move to soft
gates too.

- Gates: a zone gate passes at the top of the zone's band or while the
  Pokemon holds the zone's material (or a harder zone's). Cobblebase
  skills check the pastured Pokemon and tell the owner once what it needs.
- Progress record, guardian unlock messages, the Power Block placement
  gate and /cobblesurvival progress removed; the Power Block's recipe
  already needs Jungle redstone.
- HmsGate: switches off gated HMs auras (Flash, Dive, Mist, Rock Climb,
  Magnet Rise, Lucky Chant, Lava Plume) whose Pokemon doesn't pass.
- ShoulderPassives: type-based effects from shoulder Pokemon, hazard
  ones (warmth, frigidness, water breathing, night vision) gated.
- Self-tests for all of it; docs, balance table, 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 13:41:04 +01:00
1 parent 56ffdd9f2e
commit 70cc2cad50
21 files changed
+578 -206

No files matched your search

@@ -1,5 +1,85 @@
{
"_comment": "Progression gates (Adrian, 2026-10-30): a Cobblebase skill works for a pastured Pokémon, and a block can be placed, only once its owner has beaten that zone's Alpha guardian; null = from the start. A Cobblebase skill missing here stays off. Placeholder stages; see docs/balance.md. Read by the companion mod (progress/Gates.kt); later files in this folder override earlier ones.",
"_comment": "Soft gates (Adrian, 2026-10-31): a Cobblebase skill works for a pastured Pokémon, and a gated Cobblemon HMs aura for the Pokémon giving it, when that Pokémon passes the named zone's gate: its level reaches the gate's level (default: the top of the zone's band), or it holds one of the zone's materials or a material of a zone with a higher gate. Nothing is a flag: gifted Pokémon and materials count the same. Materials are the zone's ores (and guardian drops: Heat Rock, Mystic Water). Skills: null = from the start; a Cobblebase skill missing here stays off. Placeholder stages; see docs/balance.md. Read by the companion mod (progress/Gates.kt, HmsGate.kt); later files in this folder override earlier ones.",
"zones": {
"button_isle": {
"items": [
"minecraft:coal"
]
},
"southwold": {
"items": [
"minecraft:raw_copper",
"minecraft:copper_ingot"
]
},
"lush_caves": {
"items": [
"cobblemon:shiny_stone"
]
},
"westmarch": {
"items": [
"minecraft:raw_iron",
"minecraft:iron_ingot",
"cobblemon:thunder_stone"
]
},
"jungle": {
"items": [
"minecraft:redstone",
"cobblemon:leaf_stone"
]
},
"highlands": {
"items": [
"minecraft:lapis_lazuli",
"cobblemon:sun_stone"
]
},
"mire": {
"items": [
"cobblemon:water_stone"
]
},
"dripstone": {
"items": [
"minecraft:amethyst_shard",
"cobblemon:moon_stone"
]
},
"sunscorch": {
"items": [
"minecraft:raw_gold",
"minecraft:gold_ingot",
"cobblemon:fire_stone",
"cobblemon:heat_rock"
]
},
"deep_sea": {
"items": [
"cobblemon:mystic_water"
]
},
"frostpeak": {
"items": [
"minecraft:emerald",
"cobblemon:ice_stone",
"cobblemon:dawn_stone"
]
},
"deep_dark": {
"items": [
"minecraft:diamond",
"cobblemon:dusk_stone"
]
},
"basalt": {
"items": [
"minecraft:quartz",
"minecraft:netherite_scrap"
]
}
},
"cobblebase_skills": {
"cobblebase:gatherer": null,
"cobblebase:harvester": null,
@@ -46,7 +126,13 @@
"cobblebase:breeder": "deep_dark",
"cobblebase:egg_hatcher": "deep_dark"
},
"blocks": {
"poke_power:power_block": "jungle"
"field_moves": {
"flash": "dripstone",
"dive": "mire",
"rock_climb": "highlands",
"mist": "mire",
"magnet_rise": "sunscorch",
"lucky_chant": "frostpeak",
"lava_plume": "deep_dark"
}
}
@@ -0,0 +1,12 @@
{
"_comment": "Party passives from shoulder Pokémon (Adrian, 2026-10-31): while a Pokémon of one of these types rides a player's shoulder, the player has the effect. 'gate' = a soft gate (progression_gates): the shoulder Pokémon needs that zone's gate level or material, for effects that get around a zone hazard. Placeholder choices; see docs/balance.md. Read by the companion mod (party/ShoulderPassives.kt).",
"passives": [
{"types": ["flying"], "effect": "minecraft:slow_falling"},
{"types": ["electric"], "effect": "minecraft:speed"},
{"types": ["rock", "ground", "steel"], "effect": "minecraft:haste"},
{"types": ["fire"], "effect": "cold_sweat:warmth", "gate": "highlands"},
{"types": ["ice"], "effect": "cold_sweat:frigidness", "gate": "jungle"},
{"types": ["water"], "effect": "minecraft:water_breathing", "gate": "mire"},
{"types": ["ghost", "dark"], "effect": "minecraft:night_vision", "gate": "dripstone"}
]
}