Phase 9: crafted summons for the legendaries

Adrian, 2026-11-09: legendaries, mythicals, Ultra Beasts and Paradox Pokemon
come from crafted summons. 22 Sigils (Naganadel evolves from Poipole), one
item told apart by custom data, from world/summons.json through
tools/summons.py: late-game recipes in three tiers (Lv 70, 80, 90), each used
in a fitting zone. A summoned legend fights as a boss (area attacks by level
and type, arena 32, the Guardian's Ward) but can be caught; on capture it
loses every boss mark. One at a time within 96 blocks.

Quest book: a Legends chapter, one quest per Sigil (97 quests). JEI lists each
Sigil as its own item, and Island Drops says where a legend is summoned; drops
Cobblemon names but doesn't have (Ho-Oh's Sacred Ash) get no slot.

Self-tests every_implemented_pokemon_is_obtainable (spawn, fossil or Sigil for
every implemented species) and sigil_summons_a_catchable_legend. Self-tests
and the island check pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
claudeandClaude Opus 5.5 committed 2026-11-09 13:03:50 +01:00
1 parent e206664b3d
commit f7ea371862
92 files changed
+4081 -21

No files matched your search

@@ -0,0 +1,733 @@
{
default_hide_dependency_lines: false
default_quest_shape: ""
filename: "legends"
group: ""
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "0217ED8D82F11BE4"
order_index: 16
quest_links: [ ]
quests: [
{
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "73A150C1A7221BD0"
size: 1.5d
tasks: [
{
id: "6120ECDE48C04063"
type: "checkmark"
}
]
x: 0.0d
y: 0.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "1334D8BDB02D0027"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "4D7EBD1D4EC8F582"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:zapdos"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 2.0d
y: 0.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "32265A879257CF62"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "7065C0FCA23D43C9"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:regieleki"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 3.5d
y: 0.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "683AFA47A4D71DAD"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "3775C57598442334"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:ironleaves"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 5.0d
y: 0.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "25687CFA78E8BE5E"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "151B4ADB993F3C19"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:regirock"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 6.5d
y: 0.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "65A44ABB757D8EC9"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "31A75B48DEC93541"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:latias"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 8.0d
y: 0.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "0BCD6F1DF120EEF0"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "50D5C5BB7872F734"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:latios"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 9.5d
y: 0.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "492E2A0DB2875211"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "73A0CBBB99E04DD5"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:walkingwake"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 2.0d
y: 1.5d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "47CC5F3E473D3ADA"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "31AAB717DA533470"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:regidrago"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 3.5d
y: 1.5d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "28B36D465013F4FC"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "00D2DC946D0C559D"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:articuno"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 5.0d
y: 1.5d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "2732EB3DCE5B837B"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "64E08548F1BB6B6E"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:regice"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 6.5d
y: 1.5d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "4CA0BE77C607EFF4"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "597B64D4E7AC01A0"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:registeel"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 8.0d
y: 1.5d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "3A7416794209F29E"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "69B2D884307B8F22"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:moltres"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 9.5d
y: 1.5d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "69D61BD349921400"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "79191F2DCD42DFA3"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:poipole"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 2.0d
y: 3.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "44BC987FF615F811"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "7699A61FCF9AD7D4"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:xerneas"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 3.5d
y: 3.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "0804892E5BD15447"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "1721B8E9F78B03AB"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:zarude"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 5.0d
y: 3.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "4AC2A700F404BD2F"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "5681CA1A8AA79725"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:mew"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 6.5d
y: 3.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "55A04905BAB11C0B"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "1AB5DA1326D2AF75"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:hooh"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 8.0d
y: 3.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "7286E3D8F9A6BC2A"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "0F351D73280AA460"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:lugia"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 9.5d
y: 3.0d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "6F2260E7AF1E93B6"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "56542F196CB24CF3"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:regigigas"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 2.0d
y: 4.5d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "06D5D9F10AAA81ED"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "30B074353AB674A7"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:rayquaza"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 3.5d
y: 4.5d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "05C2A740412D6FC6"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "378C79FBBBAE02A3"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:mewtwo"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 5.0d
y: 4.5d
}
{
dependencies: ["73A150C1A7221BD0"]
icon: {
id: "cobblesurvival:summon_sigil"
}
id: "1F0FBB6BF2F87AA2"
tasks: [
{
action: "catch"
amount: 1L
biome: ""
dex_progress: ""
dimension: ""
form: ""
gender: ""
id: "53A3A2FE39371F4C"
max_level: 0
min_level: 0
natures: ""
poke_ball_used: ""
pokemon: "cobblemon:eternatus"
pokemon_type: ""
region: ""
shiny: false
time_max: 0L
time_min: 0L
type: "cobblemon_tasks:cobblemon_task"
}
]
x: 6.5d
y: 4.5d
}
]
}