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:
+18
-6
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user