diff --git a/README.md b/README.md index cd0a7164..0ae0496b 100644 --- a/README.md +++ b/README.md @@ -401,6 +401,7 @@ * Zombies spawn in the Warehouse zone when in the Fog After Power Station zone * Survival & Grief: power doors are buyable doors * Grief: added Ballistic Knife, Ray Gun, and Ray Gun Mark 2 to the Mystery Box +* Fixed zombie pathing at Cornfield behind the tower * Fixed a zombie riser spawn point at Outside Power Station being too high above ground * Fixed a zombie pathing exploit at Town in Bookstore diff --git a/scripts/zm/zm_transit/zm_transit_reimagined.gsc b/scripts/zm/zm_transit/zm_transit_reimagined.gsc index af5feaa7..c225ccb9 100644 --- a/scripts/zm/zm_transit/zm_transit_reimagined.gsc +++ b/scripts/zm/zm_transit/zm_transit_reimagined.gsc @@ -54,6 +54,7 @@ init() screecher_spawner_changes(); zombie_spawn_location_changes(); + cornfield_spawn_path_nodes(); path_exploit_fixes(); level thread power_local_electric_doors_globally(); @@ -238,6 +239,40 @@ zombie_spawn_location_changes() } } +cornfield_spawn_path_nodes() +{ + new_origins = array((7040, -256, -196), (7040, -384, -196), (7040, -512, -196), (7040, -640, -196), (7040, -768, -196), (7168, -256, -196), (7168, -384, -196), (7168, -512, -196), (7168, -640, -196), (7168, -768, -196)); + + foreach (origin in new_origins) + { + spawn_path_node(origin, (0, 0, 0)); + } + + for (i = level._spawned_path_nodes.size - 1; i >= level._spawned_path_nodes.size - (new_origins.size + 1); i--) + { + node = level._spawned_path_nodes[i]; + + nodes = getNodesInRadius( node.origin, 256, 0, 512, "Path" ); + foreach (other_node in nodes) + { + if (node.origin[0] - 128 == other_node.origin[0] || node.origin[0] + 128 == other_node.origin[0] || node.origin[1] - 128 == other_node.origin[1] || node.origin[1] + 128 == other_node.origin[1]) + { + link_nodes(node, other_node); + } + } + + for (j = i; j >= level._spawned_path_nodes.size - (new_origins.size + 1); j--) + { + other_node = level._spawned_path_nodes[j]; + + if (node.origin[0] - 128 == other_node.origin[0] || node.origin[0] + 128 == other_node.origin[0] || node.origin[1] - 128 == other_node.origin[1] || node.origin[1] + 128 == other_node.origin[1]) + { + link_nodes(node, other_node); + } + } + } +} + path_exploit_fixes() { // town bookstore near jug