Files
healer-man/src/assets/game/dungeons/grafu-castle/mechanics-audit.json
T
2026-09-12 11:07:25 -04:00

853 lines
20 KiB
JSON

{
"schemaVersion": 1,
"dungeonId": "grafu-castle",
"zoneId": 137,
"status": "review-required",
"source": {
"populationRecipe": "scripts/runewaker-pipeline/recipes/grafu-castle-population.json",
"snapshot": "scripts/runewaker-pipeline/snapshots/grafu-castle-zone-137.json",
"snapshotContentSha256": "0113f241c8bb527a6e0bd365c2cf9586a6f922719098aea009292f3f3c04c801",
"dungeonConfig": "../rom-pvt-server-backups/Runewaker/Tools/dungeon_config.json",
"dungeonConfigId": "grafu_castle"
},
"configuredBossTemplateIds": [],
"reviewedBossTemplateIds": [
105204,
105224,
105351,
105542,
105543,
105616
],
"configuredBossPositions": {},
"bossRows": [],
"scriptedBossSpawns": [
{
"scriptedPlacementId": "cayus",
"sourceAnchorSpawnId": 41927224,
"controllerSpawnId": 41928351,
"templateId": 105616,
"name": "Cayus",
"sourcePosition": [
-348.7113952636719,
1254.5040283203125,
-999.6005249023438
],
"sourceScriptRoot": "Dy_Z19_BOSSN_AIC",
"objective": true,
"evidence": [
"Resource/luascript/02345.lua:CreateObjByFlag(105616,780696,1,1)"
]
},
{
"scriptedPlacementId": "ardmond",
"sourceAnchorSpawnId": 41926939,
"controllerSpawnId": 41928345,
"templateId": 105542,
"name": "Ardmond",
"sourcePosition": [
-1427.9969482421875,
1133.35498046875,
-1353.3699951171875
],
"sourceScriptRoot": "kg_105542_01",
"objective": true,
"evidence": [
"Resource/luascript/02324.lua:kg_105542_CreateBoss"
]
},
{
"scriptedPlacementId": "issac",
"sourceAnchorSpawnId": 41926939,
"controllerSpawnId": 41928345,
"templateId": 105543,
"name": "Issac",
"sourcePosition": [
-1427.9969482421875,
1133.35498046875,
-1313.3699951171875
],
"sourceScriptRoot": "kg_105542_01",
"objective": false,
"evidence": [
"Resource/luascript/02324.lua:kg_105542_CreateBoss"
]
},
{
"scriptedPlacementId": "boro-boro-brothers",
"sourceAnchorSpawnId": 41926924,
"controllerSpawnId": 41927347,
"templateId": 105224,
"name": "Boro-Boro Brothers",
"sourcePosition": [
-2172.174072265625,
1095.10400390625,
-22.212709426879883
],
"sourceScriptRoot": "ic_105224_01",
"objective": true,
"evidence": [
"Resource/luascript/02231.lua:CreateObjByFlag(105224,780775,1,1)"
]
},
{
"scriptedPlacementId": "conjurer-chapeaunoir",
"sourceAnchorSpawnId": 41926979,
"controllerSpawnId": 41927358,
"templateId": 105204,
"name": "Conjurer Chapeaunoir",
"sourcePosition": [
-1732.9649658203125,
914.618896484375,
1190.8310546875
],
"sourceScriptRoot": "cl_136_105205_N",
"objective": true,
"evidence": [
"Resource/luascript/02330.lua:CreateObjByFlag(105204,780767,0,1)"
]
},
{
"scriptedPlacementId": "larvanger-barkud",
"sourceAnchorSpawnId": 41927071,
"controllerSpawnId": 41927369,
"templateId": 105351,
"name": "Larvanger Barkud",
"sourcePosition": [
-305.8063049316406,
902.5551147460938,
941.4002075195312
],
"sourceScriptRoot": "un_zone19_boss5_allconreal_1_01",
"objective": true,
"evidence": [
"Resource/luascript/02297.lua:CreateObjByFlag(105351,780838,1,1)"
]
}
],
"luaSources": [],
"luaSignals": [],
"templateCandidates": [
{
"templateId": 102678,
"name": "Template 102678",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [
"zone_19_130_132_133_Out"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 102680,
"name": "Template 102680",
"classification": "deferred-object",
"spawnCount": 10,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 103120,
"name": "Template 103120",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 104324,
"name": "Template 104324",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [
"ic_105224_01"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 104810,
"name": "Template 104810",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105100,
"name": "Template 105100",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [
"un_zone19_boss5_allconreal_1_01"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105201,
"name": "Template 105201",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [
"Dy_Z19_BOSSN_AIC"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105204,
"name": "Conjurer Chapeaunoir",
"classification": "boss",
"spawnCount": 0,
"autoPlots": [
"cl_136_105205_N"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105205,
"name": "Template 105205",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [
"cl_136_105205_N"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105210,
"name": "Template 105210",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [
"kg_105542_01"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105211,
"name": "Template 105211",
"classification": "combat",
"spawnCount": 3,
"autoPlots": [
"LuaP_Crouch",
"Lua_Deadkeep"
],
"plotClassNames": [],
"templateScripts": [
{
"event": "init",
"script": "ic_npc_saybuff_3"
}
],
"spells": []
},
{
"templateId": 105212,
"name": "Template 105212",
"classification": "combat",
"spawnCount": 2,
"autoPlots": [
"LuaP_Crouch",
"Lua_Deadkeep"
],
"plotClassNames": [],
"templateScripts": [
{
"event": "init",
"script": "ic_npc_saybuff_3"
}
],
"spells": []
},
{
"templateId": 105213,
"name": "Template 105213",
"classification": "deferred-object",
"spawnCount": 4,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105214,
"name": "Template 105214",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105215,
"name": "Template 105215",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105216,
"name": "Template 105216",
"classification": "deferred-object",
"spawnCount": 5,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105217,
"name": "Template 105217",
"classification": "deferred-object",
"spawnCount": 7,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105224,
"name": "Boro-Boro Brothers",
"classification": "boss",
"spawnCount": 0,
"autoPlots": [
"ic_105224_01"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105229,
"name": "Smirking Castle Clown",
"classification": "combat",
"spawnCount": 0,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105230,
"name": "Odd Castle Clown",
"classification": "combat",
"spawnCount": 0,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105233,
"name": "Cursed Steel Soldier",
"classification": "combat",
"spawnCount": 0,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105235,
"name": "Conjurer's Apprentice",
"classification": "combat",
"spawnCount": 0,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105236,
"name": "Giant Enraged Bear",
"classification": "combat",
"spawnCount": 0,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105237,
"name": "Manipulated Bear",
"classification": "combat",
"spawnCount": 0,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105254,
"name": "Template 105254",
"classification": "deferred-object",
"spawnCount": 10,
"autoPlots": [
"cl_136_01_01_N",
"cl_136_03_01_N",
"cl_136_03_02_N",
"cl_136_03_042",
"cl_136_03_042_N",
"cl_136_03_04_N",
"cl_136_04_052"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105258,
"name": "Template 105258",
"classification": "deferred-object",
"spawnCount": 5,
"autoPlots": [
"cl_105258_1",
"cl_105258_2",
"cl_105258_3",
"cl_105258_4",
"cl_105258_5"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105262,
"name": "Template 105262",
"classification": "deferred-object",
"spawnCount": 18,
"autoPlots": [
"cl_136_105262",
"cl_136_105262_1",
"cl_136_AI_N"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105305,
"name": "Template 105305",
"classification": "deferred-object",
"spawnCount": 2,
"autoPlots": [
"cl_105238AI",
"cl_136_105305_N"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105351,
"name": "Larvanger Barkud",
"classification": "boss",
"spawnCount": 0,
"autoPlots": [
"un_zone19_boss5_allconreal_1_01"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105542,
"name": "Ardmond",
"classification": "boss",
"spawnCount": 0,
"autoPlots": [
"kg_105542_01"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105543,
"name": "Issac",
"classification": "boss",
"spawnCount": 0,
"autoPlots": [
"kg_105542_01"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105596,
"name": "Smirking Castle Clown",
"classification": "combat",
"spawnCount": 1,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": [
{
"id": 490537,
"level": 1
},
{
"id": 497023,
"level": 0
},
{
"id": 497025,
"level": 12
}
]
},
{
"templateId": 105597,
"name": "Odd Castle Clown",
"classification": "combat",
"spawnCount": 6,
"autoPlots": [
"LuaS_Discowood_NowToHide"
],
"plotClassNames": [],
"templateScripts": [],
"spells": [
{
"id": 497026,
"level": 1
},
{
"id": 497504,
"level": 12
}
]
},
{
"templateId": 105598,
"name": "Manipulated Steel Soldier",
"classification": "combat",
"spawnCount": 4,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": [
{
"id": 490535,
"level": 20
},
{
"id": 497038,
"level": 5
},
{
"id": 497508,
"level": 65
}
]
},
{
"templateId": 105599,
"name": "Cursed Steel Soldier",
"classification": "combat",
"spawnCount": 0,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105600,
"name": "Juggler's Apprentice",
"classification": "combat",
"spawnCount": 10,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": [
{
"id": 497020,
"level": 50
},
{
"id": 497021,
"level": 0
},
{
"id": 497022,
"level": 0
}
]
},
{
"templateId": 105601,
"name": "Conjurer's Apprentice",
"classification": "combat",
"spawnCount": 7,
"autoPlots": [
"cl_105601_N"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 105603,
"name": "Manipulated Steel Soldier",
"classification": "combat",
"spawnCount": 7,
"autoPlots": [
"cl_105603_N"
],
"plotClassNames": [],
"templateScripts": [
{
"event": "init",
"script": "cl_105232_1"
}
],
"spells": [
{
"id": 490535,
"level": 20
},
{
"id": 497038,
"level": 5
},
{
"id": 497508,
"level": 65
}
]
},
{
"templateId": 105604,
"name": "Template 105604",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": [
{
"id": 497033,
"level": 0
},
{
"id": 497034,
"level": 0
},
{
"id": 497037,
"level": 0
}
]
},
{
"templateId": 105616,
"name": "Cayus",
"classification": "boss",
"spawnCount": 0,
"autoPlots": [
"Dy_Z19_BOSSN_AIC"
],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 116434,
"name": "Skeleton of an Adventurer",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 117547,
"name": "Locked Iron Gate",
"classification": "deferred-object",
"spawnCount": 1,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780696,
"name": "Template 780696",
"classification": "deferred-object",
"spawnCount": 4,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780767,
"name": "Template 780767",
"classification": "deferred-object",
"spawnCount": 31,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780775,
"name": "Template 780775",
"classification": "deferred-object",
"spawnCount": 4,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780793,
"name": "Template 780793",
"classification": "deferred-object",
"spawnCount": 13,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780838,
"name": "Template 780838",
"classification": "deferred-object",
"spawnCount": 7,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780839,
"name": "Template 780839",
"classification": "deferred-object",
"spawnCount": 14,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780844,
"name": "Template 780844",
"classification": "deferred-object",
"spawnCount": 12,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780845,
"name": "Template 780845",
"classification": "deferred-object",
"spawnCount": 10,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780859,
"name": "Template 780859",
"classification": "deferred-object",
"spawnCount": 3,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780860,
"name": "Template 780860",
"classification": "deferred-object",
"spawnCount": 8,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780862,
"name": "Template 780862",
"classification": "deferred-object",
"spawnCount": 3,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780873,
"name": "Template 780873",
"classification": "deferred-object",
"spawnCount": 16,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
},
{
"templateId": 780877,
"name": "Template 780877",
"classification": "deferred-object",
"spawnCount": 10,
"autoPlots": [],
"plotClassNames": [],
"templateScripts": [],
"spells": []
}
],
"categories": {
"summon": 0,
"door": 0,
"timer": 0,
"movement": 0,
"spell": 0,
"death": 2,
"phase": 0,
"interaction": 0,
"loot": 0
},
"reviewQueue": [
"Map authoritative spell ids/scripts to HealerMan EnemyAttackDefinition data.",
"Implement and test doors/gates as encounter state, not static combat entities.",
"Map summons and waves only after identifying their trigger, lifetime, and reset rules.",
"Convert patrol/AutoPlot routes to navmesh-projected paths.",
"Separate interactables/loot from combat population and define offline state transitions.",
"Add encounter-specific tests and a browser playtest before marking mechanics green."
],
"safety": {
"executableMechanicsGenerated": false,
"reason": "Lua/AutoPlot syntax is audited as evidence; ambiguous behavior is never silently guessed.",
"runtimeSqlDependency": false
}
}