Ascension override: Lorgus Jett moves to BFD floor 2 (Moonshrine Sanctum)

kg pinned Lorgus on floor 1 (entrance Pool of Ask'ar) but he actually spawns on floor 2 in Moonshrine Sanctum on Ascension. AtlasLoot's subzone tagging confirms this — Lorgus sits with Twilight Lord Kelris and Aku'mai, not the floor-1 lake bosses.

ascension_overrides.json now also supports relocating an enemy across floors (not just position-changing). build_data.py removes the enemy from its source floor and appends it to the target.
This commit is contained in:
2026-04-25 23:41:57 +02:00
parent e11dc1eed5
commit 65ae0158f3
3 changed files with 41 additions and 21 deletions
+7
View File
@@ -7,6 +7,13 @@
"kg_floor_id": 235,
"pos": [3498, 3300],
"note": "Ascension moved Barthilas to the southern courtyard of the Undead Side"
},
{
"tile_key": "blackfathom_deeps",
"name": "Lorgus Jett",
"kg_floor_id": 192,
"pos": [2893, 2827],
"note": "kg places Lorgus on floor 1 (entrance pool) but he's actually in Moonshrine Sanctum on floor 2 — confirmed by AtlasLoot subzone tag"
}
]
}
+18 -6
View File
@@ -283,16 +283,28 @@ def main() -> int:
for e in extras
]
# Ascension overrides: swap pos / floor for a specific named entity
# Ascension overrides: change pos and/or relocate to a different
# floor. We collect relocations first, then apply them in a
# second pass so iteration semantics stay clean.
relocations = [] # list of (enemy_dict, source_map, target_map)
for m in entry["maps"]:
for e in m["enemies"]:
for e in list(m["enemies"]):
new_pos, new_floor = apply_overrides(d["tile_key"], e["name"], e["pos"], m.get("kg_floor_id"))
if new_pos is not e["pos"]:
e["pos"] = list(new_pos)
e["ascension_override"] = True
if new_pos is e["pos"] and new_floor == m.get("kg_floor_id"):
continue
e["pos"] = list(new_pos)
e["ascension_override"] = True
if new_floor is not None and new_floor != m.get("kg_floor_id"):
target = next((mm for mm in entry["maps"] if mm.get("kg_floor_id") == new_floor), None)
if target:
relocations.append((e, m, target))
for e, src, tgt in relocations:
src["enemies"].remove(e)
tgt["enemies"].append(e)
for ex in entry.get("extras", []):
new_pos, new_floor = apply_overrides(d["tile_key"], ex["name"], ex["pos"], ex.get("kg_floor_id"))
if new_pos is not ex["pos"]:
if new_pos is not ex["pos"] or new_floor != ex.get("kg_floor_id"):
ex["pos"] = list(new_pos)
ex["kg_floor_id"] = new_floor
ex["ascension_override"] = True
+16 -15
View File
@@ -1486,21 +1486,6 @@
"pack_id": null,
"patrol_id": null
},
{
"id": 29965,
"npc_id": 12902,
"name": "Lorgus Jett",
"pos": [
3780.0,
2561.0
],
"classification": 3,
"skippable": false,
"required": false,
"kill_priority": null,
"pack_id": null,
"patrol_id": null
},
{
"id": 29966,
"npc_id": 4807,
@@ -4400,6 +4385,22 @@
"kill_priority": null,
"pack_id": null,
"patrol_id": 1739
},
{
"id": 29965,
"npc_id": 12902,
"name": "Lorgus Jett",
"pos": [
2893,
2827
],
"classification": 3,
"skippable": false,
"required": false,
"kill_priority": null,
"pack_id": null,
"patrol_id": null,
"ascension_override": true
}
],
"packs": [