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:
@@ -7,6 +7,13 @@
|
|||||||
"kg_floor_id": 235,
|
"kg_floor_id": 235,
|
||||||
"pos": [3498, 3300],
|
"pos": [3498, 3300],
|
||||||
"note": "Ascension moved Barthilas to the southern courtyard of the Undead Side"
|
"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
@@ -283,16 +283,28 @@ def main() -> int:
|
|||||||
for e in extras
|
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 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"))
|
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"]:
|
if new_pos is e["pos"] and new_floor == m.get("kg_floor_id"):
|
||||||
e["pos"] = list(new_pos)
|
continue
|
||||||
e["ascension_override"] = True
|
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", []):
|
for ex in entry.get("extras", []):
|
||||||
new_pos, new_floor = apply_overrides(d["tile_key"], ex["name"], ex["pos"], ex.get("kg_floor_id"))
|
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["pos"] = list(new_pos)
|
||||||
ex["kg_floor_id"] = new_floor
|
ex["kg_floor_id"] = new_floor
|
||||||
ex["ascension_override"] = True
|
ex["ascension_override"] = True
|
||||||
|
|||||||
+16
-15
@@ -1486,21 +1486,6 @@
|
|||||||
"pack_id": null,
|
"pack_id": null,
|
||||||
"patrol_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,
|
"id": 29966,
|
||||||
"npc_id": 4807,
|
"npc_id": 4807,
|
||||||
@@ -4400,6 +4385,22 @@
|
|||||||
"kill_priority": null,
|
"kill_priority": null,
|
||||||
"pack_id": null,
|
"pack_id": null,
|
||||||
"patrol_id": 1739
|
"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": [
|
"packs": [
|
||||||
|
|||||||
Reference in New Issue
Block a user