// first version by unknown // additional edit by jcfgonc @ 2016-07-03 //TODO at least one fdops should be in axis global InitializeRoutes = function() { MapRoutes = { ATTACK_Intersection = { ROUTE_allied_garage_spawn_high = { ROUTE_612 = { ROUTE_13 = { ROUTE_251 = { ROUTE_594 = { }, ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, ROUTE_1084 = { ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, }, ROUTE_231 = { ROUTE_1760 = { ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, ROUTE_101 = { ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, }, }, ROUTE_628_high = { ROUTE_251 = { ROUTE_594 = { }, ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, ROUTE_1084 = { ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, ROUTE_256 = { ROUTE_16 = { ROUTE_18 = { ROUTE_594 = { }, ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_1036 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_846 = { }, ROUTE_44 = { ROUTE_1048 = { }, }, ROUTE_859 = { ROUTE_46 = { ROUTE_47 = { }, ROUTE_761 = { }, }, }, }, }, }, }, }, ROUTE_17 = { ROUTE_251 = { ROUTE_594 = { }, ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, }, }, }, ROUTE_101 = { ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, }, ROUTE_423_high = { ROUTE_18 = { ROUTE_594 = { }, ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_1036 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_846 = { }, ROUTE_44 = { ROUTE_1048 = { }, }, ROUTE_859 = { ROUTE_46 = { ROUTE_47 = { }, ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_allied_shack_spawn = { ROUTE_441 = { ROUTE_437 = { ROUTE_251 = { ROUTE_594 = { }, ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, }, }, ROUTE_114 = { ROUTE_135 = { ROUTE_1760 = { ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, }, ROUTE_140_high = { ROUTE_835_high = { }, ROUTE_552_high = { }, ROUTE_182_high = { ROUTE_1141 = { ROUTE_1134 = { }, ROUTE_1131 = { }, ROUTE_737 = { ROUTE_1127 = { }, }, }, ROUTE_1142 = { }, }, }, ROUTE_404 = { ROUTE_101 = { ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, }, ROUTE_1765 = { ROUTE_1107 = { ROUTE_1084 = { ROUTE_1310 = { ROUTE_1036 = { }, }, ROUTE_604 = { ROUTE_1036 = { }, ROUTE_162 = { ROUTE_83 = { }, ROUTE_425 = { }, ROUTE_787 = { }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, }, }, }, }, }, ATTACK_tb1 = { ROUTE_allied_garage_spawn_high = { ROUTE_612 = { ROUTE_13 = { ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, ROUTE_17 = { }, ROUTE_251 = { }, ROUTE_243 = { }, ROUTE_1084 = { }, ROUTE_1760 = { }, ROUTE_253 = { }, ROUTE_256 = { ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, }, ROUTE_245 = { }, ROUTE_1056 = { }, ROUTE_244 = { }, ROUTE_101 = { }, ROUTE_1004 = { }, ROUTE_1059 = { }, }, ROUTE_231 = { ROUTE_251 = { }, ROUTE_243 = { }, ROUTE_1084 = { }, ROUTE_1760 = { }, ROUTE_253 = { }, ROUTE_256 = { ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, }, ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, ROUTE_245 = { }, ROUTE_244 = { }, ROUTE_101 = { }, ROUTE_1004 = { }, ROUTE_1059 = { }, }, }, ROUTE_628_high = { ROUTE_16 = { }, ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, ROUTE_256 = { ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, }, ROUTE_17 = { }, }, ROUTE_423_high = { ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, }, }, ROUTE_allied_shack_spawn = { ROUTE_120 = { ROUTE_256 = { ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, }, }, ROUTE_243 = { }, ROUTE_441 = { ROUTE_243 = { }, ROUTE_1077 = { ROUTE_243 = { }, ROUTE_256 = { ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, }, }, ROUTE_437 = { ROUTE_251 = { }, ROUTE_1760 = { }, ROUTE_1084 = { }, ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, ROUTE_101 = { }, ROUTE_17 = { }, }, }, ROUTE_114 = { ROUTE_140_high = { ROUTE_155_high = { ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, ROUTE_182_high = { ROUTE_1142 = { }, }, ROUTE_389_high = { ROUTE_452 = { }, }, }, ROUTE_404 = { ROUTE_1760 = { }, ROUTE_135 = { }, }, ROUTE_1765 = { ROUTE_251 = { }, ROUTE_1760 = { }, ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, ROUTE_1107 = { ROUTE_251 = { }, ROUTE_1760 = { }, ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, }, }, }, ROUTE_437 = { ROUTE_251 = { }, ROUTE_1760 = { }, ROUTE_1084 = { }, ROUTE_18 = { ROUTE_594 = { }, ROUTE_43 = { ROUTE_552_high = { }, ROUTE_1125 = { ROUTE_1317 = { }, ROUTE_42 = { ROUTE_523 = { ROUTE_984 = { }, ROUTE_846 = { }, }, }, }, }, }, ROUTE_101 = { }, ROUTE_17 = { }, }, }, ROUTE_604 = { ROUTE_162 = { ROUTE_1023 = { ROUTE_83 = { ROUTE_780 = { }, ROUTE_772 = { }, ROUTE_1634 = { }, }, ROUTE_425 = { ROUTE_84 = { }, ROUTE_1036 = { }, }, }, ROUTE_788 = { ROUTE_787 = { ROUTE_282 = { }, }, ROUTE_409 = { ROUTE_408 = { }, }, }, }, }, }, DEFEND_crypt_to_tb2 = { ROUTE_axis_church_spawn = { ROUTE_890 = { }, ROUTE_464 = { ROUTE_1131 = { ROUTE_1134 = { }, ROUTE_1138 = { }, }, ROUTE_1127 = { ROUTE_1134 = { }, }, }, ROUTE_1138 = { }, ROUTE_1724 = { }, ROUTE_1179_high = { }, ROUTE_84 = { }, ROUTE_737 = { }, ROUTE_67 = { }, ROUTE_739 = { }, }, ROUTE_axis_bank_spawn = { ROUTE_335 = { ROUTE_1127 = { ROUTE_1134 = { }, }, ROUTE_67 = { }, }, ROUTE_1044 = { }, ROUTE_559_high = { ROUTE_69 = { ROUTE_67 = { }, }, ROUTE_282 = { ROUTE_780 = { ROUTE_185 = { ROUTE_731 = { }, }, }, ROUTE_83 = { }, }, }, ROUTE_523 = { ROUTE_46 = { }, ROUTE_1127 = { ROUTE_1134 = { }, }, ROUTE_42 = { ROUTE_1317 = { ROUTE_84 = { }, ROUTE_1036 = { ROUTE_69 = { ROUTE_67 = { }, }, }, ROUTE_408 = { ROUTE_780 = { ROUTE_185 = { ROUTE_731 = { }, }, }, }, }, }, ROUTE_67 = { }, }, }, }, DEFEND_axis_spawn_back = { ROUTE_axis_church_spawn = { ROUTE_464 = { ROUTE_1044 = { }, ROUTE_1131 = { }, ROUTE_1127 = { }, ROUTE_72 = { }, ROUTE_737 = { ROUTE_1131 = { }, }, ROUTE_739 = { ROUTE_1134 = { ROUTE_1131 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, ROUTE_1138 = { ROUTE_890 = { ROUTE_887 = { ROUTE_1724 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, }, ROUTE_1134 = { ROUTE_1131 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, }, }, }, ROUTE_1138 = { ROUTE_890 = { ROUTE_887 = { ROUTE_1724 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, }, ROUTE_1134 = { ROUTE_1131 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, }, ROUTE_737 = { ROUTE_1131 = { }, }, ROUTE_67 = { ROUTE_69 = { ROUTE_984 = { }, }, ROUTE_185 = { ROUTE_731 = { ROUTE_737 = { ROUTE_1131 = { }, }, ROUTE_739 = { ROUTE_1134 = { ROUTE_1131 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, ROUTE_1138 = { ROUTE_890 = { ROUTE_887 = { ROUTE_1724 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, }, ROUTE_1134 = { ROUTE_1131 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, }, }, }, ROUTE_1138 = { ROUTE_890 = { ROUTE_887 = { ROUTE_1724 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, }, ROUTE_1134 = { ROUTE_1131 = { }, ROUTE_54 = { ROUTE_1560 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, ROUTE_1785 = { ROUTE_1560 = { }, }, }, }, }, }, ROUTE_72 = { }, ROUTE_737 = { ROUTE_1131 = { }, }, }, }, ROUTE_axis_bank_spawn = { ROUTE_335 = { }, ROUTE_984 = { }, ROUTE_559_high = { }, ROUTE_523 = { ROUTE_42 = { ROUTE_1036 = { }, }, ROUTE_44 = { ROUTE_859 = { ROUTE_47 = { ROUTE_761 = { }, }, ROUTE_46 = { ROUTE_47 = { ROUTE_761 = { }, }, }, }, }, }, ROUTE_846 = { ROUTE_1048 = { ROUTE_1044 = { }, ROUTE_72 = { }, ROUTE_1127 = { }, }, ROUTE_859 = { ROUTE_47 = { ROUTE_761 = { }, }, ROUTE_46 = { ROUTE_47 = { ROUTE_761 = { }, }, }, }, }, }, }, DEFEND_intersection = { ROUTE_axis_church_spawn = { ROUTE_69 = { }, ROUTE_464 = { ROUTE_1131 = { ROUTE_1138 = { ROUTE_1024 = { }, }, }, ROUTE_1127 = { ROUTE_731 = { ROUTE_185 = { ROUTE_84 = { }, }, }, }, ROUTE_72 = { ROUTE_984 = { }, ROUTE_1048 = { }, }, ROUTE_737 = { ROUTE_1134 = { ROUTE_1138 = { ROUTE_1024 = { }, }, }, }, }, ROUTE_1179_high = { }, ROUTE_67 = { }, ROUTE_739 = { ROUTE_1138 = { ROUTE_1024 = { }, }, }, }, ROUTE_axis_bank_spawn = { ROUTE_335 = { }, ROUTE_984 = { }, ROUTE_559_high = { }, ROUTE_1127 = { ROUTE_731 = { ROUTE_185 = { ROUTE_84 = { }, }, }, }, ROUTE_523 = { ROUTE_42 = { ROUTE_1125 = { ROUTE_552_high = { }, ROUTE_43 = { ROUTE_1310 = { }, }, }, }, ROUTE_44 = { ROUTE_46 = { ROUTE_47 = { ROUTE_761 = { }, ROUTE_1044 = { ROUTE_1176_high = { }, }, }, ROUTE_761 = { }, }, }, }, ROUTE_1036 = { }, ROUTE_846 = { }, }, }, DEFEND_end = { ROUTE_axis_church_spawn = { ROUTE_835_high = { ROUTE_155_high = { }, }, ROUTE_731 = { ROUTE_1142 = { ROUTE_182_high = { }, }, }, ROUTE_1142 = { ROUTE_182_high = { }, }, ROUTE_1138 = { ROUTE_1142 = { ROUTE_182_high = { }, }, }, ROUTE_1179_high = { ROUTE_155_high = { }, }, }, ROUTE_axis_bank_spawn = { ROUTE_335 = { ROUTE_552_high = { }, }, ROUTE_984 = { ROUTE_552_high = { }, }, ROUTE_523 = { ROUTE_552_high = { }, }, ROUTE_846 = { ROUTE_552_high = { }, }, }, }, CHECKPOINT_bank_flag = { ROUTE_axis_church_spawn = { ROUTE_464 = { ROUTE_72 = { }, ROUTE_1127 = { ROUTE_46 = { ROUTE_859 = { }, ROUTE_44 = { }, }, ROUTE_1044 = { }, }, ROUTE_1048 = { }, }, ROUTE_737 = { ROUTE_1131 = { ROUTE_72 = { }, ROUTE_1127 = { ROUTE_46 = { ROUTE_859 = { }, ROUTE_44 = { }, }, ROUTE_1044 = { }, }, }, }, ROUTE_739 = { ROUTE_1134 = { ROUTE_1131 = { ROUTE_72 = { }, ROUTE_1127 = { ROUTE_46 = { ROUTE_859 = { }, ROUTE_44 = { }, }, ROUTE_1044 = { }, }, }, }, }, ROUTE_67 = { ROUTE_69 = { ROUTE_984 = { ROUTE_1048 = { }, ROUTE_846 = { }, }, ROUTE_846 = { }, ROUTE_1317 = { ROUTE_42 = { ROUTE_523 = { }, }, }, }, ROUTE_185 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_1131 = { ROUTE_72 = { }, ROUTE_1127 = { ROUTE_46 = { ROUTE_859 = { }, ROUTE_44 = { }, }, ROUTE_1044 = { }, }, }, }, }, ROUTE_737 = { ROUTE_1131 = { ROUTE_72 = { }, ROUTE_1127 = { ROUTE_46 = { ROUTE_859 = { }, ROUTE_44 = { }, }, ROUTE_1044 = { }, }, }, }, ROUTE_739 = { ROUTE_1134 = { ROUTE_1131 = { ROUTE_72 = { }, ROUTE_1127 = { ROUTE_46 = { ROUTE_859 = { }, ROUTE_44 = { }, }, ROUTE_1044 = { }, }, }, }, }, }, }, }, ROUTE_axis_bank_spawn = { ROUTE_335 = { ROUTE_846 = { }, }, ROUTE_523 = { }, ROUTE_846 = { }, ROUTE_1317 = { ROUTE_42 = { ROUTE_523 = { }, }, }, }, }, MOBILEMG42_axis_towards_bridge_3 = { ROUTE_axis_church_spawn = { ROUTE_464 = { ROUTE_1044 = { }, ROUTE_1127 = { }, ROUTE_72 = { }, }, ROUTE_737 = { ROUTE_1131 = { }, }, ROUTE_67 = { ROUTE_69 = { ROUTE_984 = { }, ROUTE_1048 = { }, }, }, ROUTE_739 = { ROUTE_1134 = { ROUTE_761 = { }, ROUTE_1559 = { }, ROUTE_51 = { }, }, }, }, ROUTE_axis_bank_spawn = { ROUTE_46 = { }, ROUTE_335 = { ROUTE_1048 = { }, }, ROUTE_523 = { ROUTE_846 = { }, ROUTE_859 = { ROUTE_47 = { }, ROUTE_46 = { }, }, ROUTE_44 = { }, }, ROUTE_1048 = { }, ROUTE_846 = { }, ROUTE_1317 = { ROUTE_42 = { ROUTE_523 = { ROUTE_846 = { }, ROUTE_859 = { ROUTE_47 = { }, ROUTE_46 = { }, }, ROUTE_44 = { }, }, }, }, }, }, BUILD_Tank_Barrier_2 = { ROUTE_axis_church_spawn = { ROUTE_185 = { ROUTE_1142 = { }, }, ROUTE_464 = { ROUTE_1131 = { ROUTE_1138 = { ROUTE_1142 = { }, }, }, }, ROUTE_1138 = { ROUTE_1142 = { }, }, ROUTE_67 = { ROUTE_1142 = { }, }, }, ROUTE_axis_bank_spawn = { ROUTE_523 = { ROUTE_42 = { ROUTE_1317 = { ROUTE_1036 = { ROUTE_1142 = { }, ROUTE_604 = { ROUTE_162 = { ROUTE_1142 = { }, }, }, }, }, }, ROUTE_846 = { ROUTE_1131 = { ROUTE_1138 = { ROUTE_1142 = { }, }, }, ROUTE_67 = { ROUTE_1142 = { }, }, }, }, ROUTE_1036 = { ROUTE_1142 = { }, ROUTE_604 = { ROUTE_162 = { ROUTE_1142 = { }, }, }, }, ROUTE_67 = { ROUTE_1142 = { }, }, }, }, BUILD_tunnel_door = { ROUTE_axis_church_spawn = { ROUTE_594 = { }, ROUTE_731 = { ROUTE_1024 = { ROUTE_162 = { ROUTE_594 = { }, }, }, }, ROUTE_67 = { ROUTE_83 = { ROUTE_1023 = { ROUTE_162 = { ROUTE_594 = { }, }, }, ROUTE_162 = { ROUTE_594 = { }, }, }, ROUTE_408 = { ROUTE_594 = { }, }, }, }, ROUTE_axis_bank_spawn = { ROUTE_523 = { ROUTE_43 = { }, }, ROUTE_1317 = { ROUTE_594 = { }, }, }, }, BUILD_Tank_Barrier_1 = { ROUTE_axis_church_spawn = { ROUTE_464 = { ROUTE_1048 = { ROUTE_1036 = { ROUTE_604 = { }, }, }, ROUTE_737 = { ROUTE_1138 = { ROUTE_1141 = { ROUTE_1142 = { ROUTE_1023 = { ROUTE_162 = { }, }, }, }, }, }, ROUTE_846 = { ROUTE_523 = { ROUTE_1125 = { ROUTE_43 = { }, }, }, }, }, ROUTE_731 = { ROUTE_185 = { ROUTE_395 = { ROUTE_162 = { }, }, ROUTE_425 = { ROUTE_162 = { }, }, }, }, ROUTE_67 = { ROUTE_772 = { ROUTE_1125 = { ROUTE_43 = { }, }, ROUTE_604 = { }, }, ROUTE_83 = { ROUTE_1023 = { ROUTE_162 = { }, }, ROUTE_162 = { }, }, ROUTE_408 = { }, }, }, ROUTE_axis_bank_spawn = { ROUTE_523 = { ROUTE_1125 = { ROUTE_43 = { }, }, }, ROUTE_1036 = { ROUTE_604 = { }, }, }, }, BUILD_Embankment_Assault_Ramp = { ROUTE_allied_garage_spawn_high = { ROUTE_612 = { ROUTE_231 = { ROUTE_1074 = { ROUTE_1077 = { ROUTE_441 = { ROUTE_114 = { ROUTE_491 = { }, }, ROUTE_491 = { }, }, }, }, ROUTE_1077 = { ROUTE_441 = { ROUTE_114 = { ROUTE_491 = { }, }, ROUTE_491 = { }, }, }, }, }, ROUTE_628_high = { }, ROUTE_423_high = { }, }, ROUTE_allied_shack_spawn = { ROUTE_114 = { ROUTE_491 = { }, }, }, ROUTE_84 = {}, }, MOBILEMG42_allies_nicespot_above_tank = { ROUTE_allied_garage_spawn_high = { ROUTE_612 = { ROUTE_13 = { ROUTE_256 = { ROUTE_16 = { ROUTE_251 = { }, }, }, ROUTE_1059 = { ROUTE_253 = { ROUTE_1004 = { ROUTE_251 = { }, ROUTE_101 = { }, }, }, ROUTE_1056 = { ROUTE_251 = { }, ROUTE_1760 = { ROUTE_101 = { }, }, }, }, }, ROUTE_231 = { ROUTE_1074 = { ROUTE_1077 = { ROUTE_441 = { ROUTE_114 = { ROUTE_404 = { ROUTE_135 = { ROUTE_1826 = { ROUTE_1760 = { ROUTE_101 = { }, }, }, }, }, ROUTE_1765 = { ROUTE_1107 = { ROUTE_1760 = { ROUTE_101 = { }, }, }, }, }, }, ROUTE_437 = { ROUTE_101 = { }, }, }, }, ROUTE_243 = { ROUTE_244 = { ROUTE_251 = { }, ROUTE_245 = { ROUTE_1084 = { }, ROUTE_101 = { }, }, }, ROUTE_437 = { ROUTE_101 = { }, }, }, ROUTE_1077 = { ROUTE_441 = { ROUTE_114 = { ROUTE_404 = { ROUTE_135 = { ROUTE_1826 = { ROUTE_1760 = { ROUTE_101 = { }, }, }, }, }, ROUTE_1765 = { ROUTE_1107 = { ROUTE_1760 = { ROUTE_101 = { }, }, }, }, }, }, ROUTE_437 = { ROUTE_101 = { }, }, }, ROUTE_1059 = { ROUTE_253 = { ROUTE_1004 = { ROUTE_251 = { }, ROUTE_101 = { }, }, }, ROUTE_1056 = { ROUTE_251 = { }, ROUTE_1760 = { ROUTE_101 = { }, }, }, }, }, }, ROUTE_628_high = { ROUTE_256 = { ROUTE_16 = { ROUTE_251 = { }, }, }, ROUTE_1059 = { ROUTE_253 = { ROUTE_1004 = { ROUTE_251 = { }, ROUTE_101 = { }, }, }, ROUTE_1056 = { ROUTE_251 = { }, ROUTE_1760 = { ROUTE_101 = { }, }, }, }, }, ROUTE_423_high = { ROUTE_16 = { ROUTE_251 = { }, }, }, }, ROUTE_allied_shack_spawn = { ROUTE_114 = { ROUTE_404 = { ROUTE_135 = { ROUTE_1826 = { ROUTE_1760 = { ROUTE_101 = { }, }, }, }, }, ROUTE_1765 = { ROUTE_1107 = { ROUTE_1760 = { ROUTE_101 = { }, }, }, }, }, }, ROUTE_84 = {}, }, PLANT_Axis_Command_Post = { ROUTE_allied_garage_spawn_high = { ROUTE_612 = { ROUTE_13 = { ROUTE_256 = { ROUTE_16 = { ROUTE_18 = { ROUTE_43 = { ROUTE_1125 = { ROUTE_42 = { ROUTE_523 = { ROUTE_44 = { ROUTE_859 = { ROUTE_46 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, ROUTE_1059 = { ROUTE_253 = { ROUTE_1004 = { ROUTE_17 = { ROUTE_18 = { ROUTE_43 = { ROUTE_1125 = { ROUTE_42 = { ROUTE_523 = { ROUTE_44 = { ROUTE_859 = { ROUTE_46 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_1056 = { ROUTE_1760 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_231 = { ROUTE_1074 = { ROUTE_1077 = { ROUTE_441 = { ROUTE_114 = { ROUTE_404 = { ROUTE_135 = { ROUTE_1826 = { ROUTE_1760 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_140_high = { ROUTE_182_high = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_586 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_389_high = { ROUTE_382 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, ROUTE_921 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_454_high = { ROUTE_452 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_491 = { ROUTE_140_high = { ROUTE_182_high = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_586 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_389_high = { ROUTE_382 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, ROUTE_921 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_454_high = { ROUTE_452 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_1765 = { ROUTE_1107 = { ROUTE_1760 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_491 = { ROUTE_140_high = { ROUTE_182_high = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_586 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_389_high = { ROUTE_382 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, ROUTE_921 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_454_high = { ROUTE_452 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_437 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_243 = { ROUTE_244 = { ROUTE_245 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_437 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_1077 = { ROUTE_441 = { ROUTE_114 = { ROUTE_404 = { ROUTE_135 = { ROUTE_1826 = { ROUTE_1760 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_140_high = { ROUTE_182_high = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_586 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_389_high = { ROUTE_382 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, ROUTE_921 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_454_high = { ROUTE_452 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_491 = { ROUTE_140_high = { ROUTE_182_high = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_586 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_389_high = { ROUTE_382 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, ROUTE_921 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_454_high = { ROUTE_452 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_1765 = { ROUTE_1107 = { ROUTE_1760 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_491 = { ROUTE_140_high = { ROUTE_182_high = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_586 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_389_high = { ROUTE_382 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, ROUTE_921 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_454_high = { ROUTE_452 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_437 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_1059 = { ROUTE_253 = { ROUTE_1004 = { ROUTE_17 = { ROUTE_18 = { ROUTE_43 = { ROUTE_1125 = { ROUTE_42 = { ROUTE_523 = { ROUTE_44 = { ROUTE_859 = { ROUTE_46 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_1056 = { ROUTE_1760 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_628_high = { ROUTE_256 = { ROUTE_16 = { ROUTE_18 = { ROUTE_43 = { ROUTE_1125 = { ROUTE_42 = { ROUTE_523 = { ROUTE_44 = { ROUTE_859 = { ROUTE_46 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, ROUTE_1059 = { ROUTE_253 = { ROUTE_1004 = { ROUTE_17 = { ROUTE_18 = { ROUTE_43 = { ROUTE_1125 = { ROUTE_42 = { ROUTE_523 = { ROUTE_44 = { ROUTE_859 = { ROUTE_46 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_1056 = { ROUTE_1760 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_423_high = { ROUTE_16 = { ROUTE_18 = { ROUTE_43 = { ROUTE_1125 = { ROUTE_42 = { ROUTE_523 = { ROUTE_44 = { ROUTE_859 = { ROUTE_46 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_allied_shack_spawn = { ROUTE_114 = { ROUTE_404 = { ROUTE_135 = { ROUTE_1826 = { ROUTE_1760 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_140_high = { ROUTE_182_high = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_586 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_389_high = { ROUTE_382 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, ROUTE_921 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_454_high = { ROUTE_452 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_491 = { ROUTE_140_high = { ROUTE_182_high = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_586 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_389_high = { ROUTE_382 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, ROUTE_921 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, ROUTE_454_high = { ROUTE_452 = { ROUTE_584 = { ROUTE_893 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_1765 = { ROUTE_1107 = { ROUTE_1760 = { ROUTE_101 = { ROUTE_604 = { ROUTE_162 = { ROUTE_395 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, ROUTE_1023 = { ROUTE_425 = { ROUTE_1141 = { ROUTE_1138 = { ROUTE_1134 = { ROUTE_54 = { ROUTE_51 = { ROUTE_1559 = { ROUTE_761 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_84 = {}, }, PLANT_Tank_Barrier_1 = { ROUTE_allied_garage_spawn_high = { ROUTE_13 = { }, ROUTE_1074 = { ROUTE_243 = { ROUTE_1056 = { }, }, ROUTE_437 = { ROUTE_1760 = { }, }, }, ROUTE_231 = { ROUTE_437 = { ROUTE_1760 = { }, }, }, ROUTE_253 = { }, ROUTE_18 = { ROUTE_594 = { }, }, ROUTE_256 = { ROUTE_16 = { ROUTE_18 = { ROUTE_594 = { }, }, }, }, ROUTE_1056 = { }, ROUTE_1077 = { ROUTE_244 = { }, ROUTE_101 = { }, }, ROUTE_628_high = { }, ROUTE_423_high = { }, ROUTE_1004 = { ROUTE_17 = { ROUTE_18 = { ROUTE_594 = { }, }, }, }, ROUTE_1059 = { }, }, ROUTE_allied_shack_spawn = { ROUTE_120 = { ROUTE_123 = { ROUTE_1077 = { ROUTE_244 = { }, ROUTE_101 = { }, }, }, }, ROUTE_441 = { ROUTE_437 = { ROUTE_1760 = { }, }, }, ROUTE_114 = { ROUTE_135 = { ROUTE_1760 = { }, }, ROUTE_491 = { ROUTE_135 = { ROUTE_1760 = { }, }, ROUTE_140_high = { ROUTE_182_high = { ROUTE_395 = { ROUTE_788 = { ROUTE_162 = { }, }, ROUTE_162 = { }, }, ROUTE_1024 = { ROUTE_788 = { ROUTE_162 = { }, }, }, ROUTE_1023 = { }, ROUTE_1142 = { ROUTE_408 = { }, }, }, }, }, }, }, }, PLANT_tunnel_door = { ROUTE_allied_garage_spawn_high = { ROUTE_612 = { ROUTE_13 = { ROUTE_256 = { ROUTE_16 = { ROUTE_18 = { }, }, }, ROUTE_1059 = { ROUTE_253 = { ROUTE_1004 = { ROUTE_17 = { ROUTE_18 = { }, }, }, }, }, }, ROUTE_231 = { ROUTE_1059 = { ROUTE_253 = { ROUTE_1004 = { ROUTE_17 = { ROUTE_18 = { }, }, }, }, }, }, }, ROUTE_628_high = { ROUTE_256 = { ROUTE_16 = { ROUTE_18 = { }, }, }, ROUTE_1059 = { ROUTE_253 = { ROUTE_1004 = { ROUTE_17 = { ROUTE_18 = { }, }, }, }, }, }, ROUTE_423_high = { ROUTE_16 = { ROUTE_18 = { }, }, }, }, ROUTE_allied_shack_spawn = {}, ROUTE_84 = {}, }, CHECKPOINT_shack_flag = { ROUTE_allied_garage_spawn_high = { ROUTE_612 = { ROUTE_231 = { ROUTE_1074 = { ROUTE_123 = { ROUTE_120 = { }, }, }, }, }, ROUTE_628_high = { }, ROUTE_423_high = { }, }, ROUTE_allied_shack_spawn = { ROUTE_120 = { }, }, ROUTE_84 = {}, }, }; MapRoutes["DEFEND_tb1.*"] = MapRoutes.BUILD_Tank_Barrier_1; MapRoutes["DEFEND_intersection.*"] = MapRoutes.DEFEND_intersection; MapRoutes["DEFEND_axis_spawn_back.*"] = MapRoutes.DEFEND_axis_spawn_back; MapRoutes["DEFEND_crypt_to_tb2.*"] = MapRoutes.DEFEND_crypt_to_tb2; MapRoutes["DEFEND_end.*"] = MapRoutes.DEFEND_end; MapRoutes["MOBILEMG42_axis_towards_bridge.*"] = MapRoutes.MOBILEMG42_axis_towards_bridge_3; MapRoutes["ATTACK_tb1.*"] = MapRoutes.ATTACK_tb1; MapRoutes["ATTACK_Intersection.*"] = MapRoutes.ATTACK_Intersection; MapRoutes["ATTACK_Axis_Spawn_Back.*"] = MapRoutes.ATTACK_Intersection; MapRoutes["ATTACK_tb2.*"] = MapRoutes.ATTACK_Intersection; MapRoutes.BUILD_Allied_Command_Post = MapRoutes.PLANT_Tank_Barrier_1; MapRoutes.ATTACK_tb1_4 = MapRoutes.ATTACK_tb1_2; Util.Routes(MapRoutes); Util.MapDebugPrint( "InitializeRoutes" ); }; global Map = { PlayersTable = {}, DefaultTargetBreakableDist = 150.0, Debug = false, Ammo_Cabinet_south_ammocabinet = "AMMOCAB_south_ammocabinet", Health_Cabinet_south_healthcabinet = "HEALTHCAB_south_healthcabinet", Checkpoint_bank_flag = "CHECKPOINT_bank_flag", Checkpoint_shack_flag = "CHECKPOINT_shack_flag", Build_Allied_Command_Post = "BUILD_Allied_Command_Post", Build_Axis_Command_Post = "BUILD_Axis_Command_Post", Build_Embankment_Assault_Ramp = "BUILD_Embankment_Assault_Ramp", Build_Tank_Barrier_1 = "BUILD_Tank_Barrier_1", Build_Tank_Barrier_2 = "BUILD_Tank_Barrier_2", Build_Tiger_Tank = "BUILD_Tiger_Tank", Build_Unexploded_Bomb = "BUILD_Unexploded_Bomb", Build_Unexploded_Bomb_1 = "BUILD_Unexploded_Bomb_1", Build_bunker_MG42 = "BUILD_bunker_MG42", Build_crypt_door = "BUILD_crypt_door", Build_tunnel_door = "BUILD_tunnel_door", Plant_Allied_Command_Post = "PLANT_Allied_Command_Post", Plant_Axis_Command_Post = "PLANT_Axis_Command_Post", Plant_Embankment_Assault_Ramp = "PLANT_Embankment_Assault_Ramp", Plant_Tank_Barrier_1 = "PLANT_Tank_Barrier_1", Plant_Tank_Barrier_2 = "PLANT_Tank_Barrier_2", Plant_Unexploded_Bomb = "PLANT_Unexploded_Bomb", Plant_bunker_MG42 = "PLANT_bunker_MG42", Plant_crypt_door = "PLANT_crypt_door", Plant_tunnel_door = "PLANT_tunnel_door", Explode_Unexploded_Bomb = "EXPLODE_Unexploded_Bomb", Mount_361 = "MOUNTMG42_361", Mount_432 = "MOUNTMG42_432", Mount_bunker_MG42 = "MOUNTMG42_bunker_MG42", Repair_361 = "REPAIRMG42_361", Repair_432 = "REPAIRMG42_432", Repair_bunker_MG42 = "REPAIRMG42_bunker_MG42", Mobile_MG42_78 = "MOBILEMG42_78", Snipe_338 = "SNIPE_338", Snipe_78 = "SNIPE_78", Snipe_98 = "SNIPE_98", Mover_tank = "MOVER_tank", BreakableAxisMGRoof_Destroyed = false, BreakableAxisMGRoof_Info = null, BreakableFence1_Destroyed = false, BreakableFence1_Info = null, BreakableFence2_Destroyed = false, BreakableFence2_Info = null, BreakableLadder1_Destroyed = false, BreakableLadder2_Destroyed = false, BreakableFlagDoor_Destroyed = false, BreakableFlagDoor_Info = null, BreakableFlagDoor_1_Info = null, BreakableWindow_Destroyed = false, BreakableWindow_Info = null, Breakable_Window_Back_Destroyed = false, Breakable_Window_Back_Info = null, Breakable_Side_Window_Back_Destroyed = false, Breakable_Side_Window_Back_Info = null, Breakable_Side_Window_Front_Destroyed = false, Breakable_Side_Window_Front_Info = null, Lift_Info = null, setRandomSpawn = function() { while(1) { foreach(bot in BotTable) { //axis is 1/3 //allies is 2/4 spawnPos = -1; rint = RandInt(0, 1); //0 or 1 if (bot.GetTeam() == TEAM.ALLIES) { if(rint==0) { spawnPos=2; } else { spawnPos=4; } } else { if(rint==0) { spawnPos=1; } else { spawnPos=3; } } bot.ChangeSpawnPoint(spawnPos); } sleep(20000); } }, check_lift = function() { Util.MapDebugPrint( "thread check_lift started", true ); wpOne = Util.WpNameInfo("lift_left"); wpTwo = Util.WpNameInfo("lift_right"); while( 1 ) { tr = TraceLine( wpOne.position, wpTwo.position, null, TRACE.SHOT, 0, false ); if ( tr.fraction < 1 ) { if ( Map.Debug ) { DrawDebugLine(wpOne.position, wpTwo.position, COLOR.RED, 0.25); } Wp.SetWaypointFlag("liftpt", "closed", false); } else { if ( Map.Debug ) { DrawDebugLine(wpOne.position, wpTwo.position, COLOR.GREEN, 0.25); } Wp.SetWaypointFlag("liftpt", "closed", true); } sleep(0.333); } }, check_axis_mg_roof = function() { Util.MapDebugPrint( "thread check_axis_mg_roof started", true ); wpOne = Util.WpNameInfo("axis_mg_roof_1"); //top wpTwo = Util.WpNameInfo("axis_mg_roof_2"); //bottom startoffset = Vector3(0,0,0); endoffset = Vector3(0,0,0); while( !Map.BreakableAxisMGRoof_Destroyed ) { tr = TraceLine( wpOne.position + startoffset, wpTwo.position + endoffset, null, TRACE.SHOT, 0, false ); // Util.MapDebugPrint( "tr: " + tr.fraction, true ); if ( tr.fraction < 0.9 ) { //more than enough SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_Axis_Spawn_Back.*" ); //jcfgonc I don't see why not all the time if ( Map.Debug ) { DrawDebugLine(wpOne.position + startoffset, wpTwo.position + endoffset, COLOR.RED, 0.25); } } else { if ( Map.Debug ) { DrawDebugLine(wpOne.position + startoffset, wpTwo.position + endoffset, COLOR.GREEN, 0.25); } Map.BreakableAxisMGRoof_Destroyed = true; SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_Axis_Spawn_Back.*" ); // Wp.SetWaypointFlag("axis_mg_roof_1", "closed", true); // Wp.SetWaypointFlag("axis_mg_roof_2", "closed", true); Util.MapDebugPrint( "thread check_axis_mg_roof ended", true ); } sleep(1); } }, Navigation = { lift = { navigate = function(_this) { if ( !Map.Lift_Info ) { Map.Lift_Info = Util.WpNameInfo("liftpt"); } if ( _this.Goto(Map.Lift_Info.position) == EVENT.PATH_SUCCESS ) { _this.AddAimRequest(Priority.High, "facing", Map.Lift_Info.facing); _this.Bot.HoldButton(BTN.FORWARD, 0.5); sleep(4); } }, }, }, Allied_Command_Post_Built = function( trigger ) { Util.MapDebugPrint( "Allied_Command_Post_Built" ); }, Axis_Command_Post_Built = function( trigger ) { Util.MapDebugPrint( "Axis_Command_Post_Built" ); }, Allies_Steal_Tank = function( trigger ) { Util.MapDebugPrint( "Allies_Steal_Tank" ); }, Tank_Barrier_1_Built = function( trigger ) { Util.MapDebugPrint( "Tank_Barrier_1_Built" ); }, Tank_Barrier_2_Built = function( trigger ) { Util.MapDebugPrint( "Tank_Barrier_2_Built" ); }, Tiger_Tank_Built = function( trigger ) { SetGoalPriority( "AIRSTRIKE_axis_stop_tank.*", 1.0); //jcfgonc Util.MapDebugPrint( "Tiger_Tank_Built" ); }, Tiger_Tank_Damaged = function( trigger ) { SetGoalPriority( "AIRSTRIKE_axis_stop_tank.*", 0.7); //jcfgonc Util.MapDebugPrint( "Tiger_Tank_Damaged" ); }, Unexploded_Bomb_Built = function( trigger ) { Util.MapDebugPrint( "Unexploded_Bomb_Built" ); }, Unexploded_Bomb_1_Built = function( trigger ) { Util.MapDebugPrint( "Unexploded_Bomb_1_Built" ); }, bunker_MG42_Built = function( trigger ) { Util.MapDebugPrint( "bunker_MG42_Built" ); }, crypt_door_Built = function( trigger ) { Util.MapDebugPrint( "crypt_door_Built" ); }, Allied_Command_Post_Destroyed = function( trigger ) { Util.MapDebugPrint( "Allied_Command_Post_Destroyed" ); }, Axis_Command_Post_Planted = function( trigger ) { Util.MapDebugPrint( "Axis_Command_Post_Planted" ); }, Axis_Command_Post_Destroyed = function( trigger ) { Util.MapDebugPrint( "Axis_Command_Post_Destroyed" ); }, Embankment_Assault_Ramp_Built = function( trigger ) { Util.MapDebugPrint( "Embankment_Assault_Ramp_Built" ); SetAvailableMapGoals( TEAM.AXIS, true, "ARTILLERY_S_allies_ramp_top.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ROUTE_140_high" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ROUTE_491" ); }, Embankment_Assault_Ramp_Destroyed = function( trigger ) { Util.MapDebugPrint( "Embankment_Assault_Ramp_Destroyed" ); SetAvailableMapGoals( TEAM.AXIS, false, "ARTILLERY_S_allies_ramp_top.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "ROUTE_140_high" ); SetAvailableMapGoals( TEAM.ALLIES, false, "ROUTE_491" ); }, Tank_Barrier_1_Planted = function( trigger ) { Util.MapDebugPrint( "Tank_Barrier_1_Planted" ); }, Tank_Barrier_1_Defused = function( trigger ) { Util.MapDebugPrint( "Tank_Barrier_1_Defused" ); }, Tank_Barrier_1_Destroyed = function( trigger ) { Util.MapDebugPrint( "Tank_Barrier_1_Destroyed" ); }, Tank_Barrier_2_Planted = function( trigger ) { Util.MapDebugPrint( "Tank_Barrier_2_Planted" ); }, Tank_Barrier_2_Defused = function( trigger ) { Util.MapDebugPrint( "Tank_Barrier_2_Defused" ); }, Tank_Barrier_2_Destroyed = function( trigger ) { Util.MapDebugPrint( "Tank_Barrier_2_Destroyed" ); }, Unexploded_Bomb_Destroyed = function( trigger ) { Util.MapDebugPrint( "Unexploded_Bomb_Destroyed" ); }, bunker_MG42_Destroyed = function( trigger ) { Util.MapDebugPrint( "bunker_MG42_Destroyed" ); }, crypt_door_Planted = function( trigger ) { Util.MapDebugPrint( "crypt_door_Planted" ); }, crypt_door_Destroyed = function( trigger ) { Util.MapDebugPrint( "crypt_door_Destroyed" ); }, tunnel_door_Built = function( trigger ) { Wp.SetWaypointFlag("tunnel_door", "axis", true); Wp.SetWaypointFlag("tunnel_door", "team1", true); SetAvailableMapGoals( TEAM.ALLIES, false, "ROUTE_18"); Util.MapDebugPrint( "tunnel_door_Built" ); }, tunnel_door_Destroyed = function( trigger ) { Wp.SetWaypointFlag("tunnel_door", "axis", false); Wp.SetWaypointFlag("tunnel_door", "team1", false); SetAvailableMapGoals( TEAM.ALLIES, true, "ROUTE_18"); Util.MapDebugPrint( "tunnel_door_Destroyed" ); }, bank_flag_Axis_Captured = function( trigger ) { Util.MapDebugPrint( "bank_flag_Axis_Captured" ); }, bank_flag_Allies_Captured = function( trigger ) { Util.MapDebugPrint( "bank_flag_Allies_Captured" ); }, shack_flag_Axis_Captured = function( trigger ) { // SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT_bank_flag" ); // SetAvailableMapGoals( TEAM.AXIS, false, "CHECKPOINT_bank_flag" ); Util.MapDebugPrint( "shack_flag_Axis_Captured" ); }, shack_flag_Allies_Captured = function( trigger ) { // SetAvailableMapGoals( TEAM.ALLIES, false, "CHECKPOINT_bank_flag" ); // SetAvailableMapGoals( TEAM.AXIS, true, "CHECKPOINT_bank_flag" ); Util.MapDebugPrint( "shack_flag_Allies_Captured" ); }, Tank_Passed_Barrier1 = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, { "ATTACK_tb1.*", "MOBILEMG42_allies_nicespot_above_tank", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "ATTACK_Intersection.*", "CHECKPOINT_shack_flag", "PLANT_Tank_Barrier_2", "PLANT_crypt_door", }); SetGoalPriority("CHECKPOINT_shack_flag", 0.83); // SetGoalPriority( "BUILD_Embankment_Assault_Ramp", 0.88 ); //jcfgonc SetAvailableMapGoals( TEAM.AXIS, false, { "DEFEND_tb1.*", // "PLANTMINE_tb1.*", }); SetAvailableMapGoals( TEAM.AXIS, true, { "CHECKPOINT_bank_flag", "DEFEND_intersection.*", "ARTILLERY_S_above_tb1.*", }); SetGoalPriority( "ARTILLERY_S_above_tb1.*", 0.85 ); Util.MapDebugPrint( "Tank_Passed_Barrier1" ); }, tank_at_location = function( trigger ) { // clear all axis tank airstrikes SetAvailableMapGoals( TEAM.AXIS, false, { "AIRSTRIKE_axis_stop_tank.*", "PLANTMINE_.*", }); switch(Map.VehicleLocation) { case 1: // tank out of the garage, going down the garage ramp { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_depot_ramp", // plantmines after tb1 "PLANTMINE_1517", "PLANTMINE_1032_1", "PLANTMINE_1032", "PLANTMINE_202", "PLANTMINE_1032_3", "PLANTMINE_1032_2", }); } case 2: //tank at bottom garage ramp { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_between_trees", //or AIRSTRIKE_axis_stop_tank_between_trees_1 // plantmines after tb1 "PLANTMINE_1517", "PLANTMINE_1032_1", "PLANTMINE_1032", "PLANTMINE_202", "PLANTMINE_1032_3", "PLANTMINE_1032_2", }); } case 3: //tank between two first trees outside garage { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_nearby_signal", // plantmines after tb1 "PLANTMINE_1517", "PLANTMINE_1032_1", "PLANTMINE_1032", "PLANTMINE_202", "PLANTMINE_1032_3", "PLANTMINE_1032_2", }); } case 4: //tank front between last tree and warning sign { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_tunnel_door", // plantmines after tb1 "PLANTMINE_1517", "PLANTMINE_1032_1", "PLANTMINE_1032", "PLANTMINE_202", "PLANTMINE_1032_3", "PLANTMINE_1032_2", }); } case 5: // between tunnel entrance and inside { SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_Tank_Barrier_1"); SetAvailableMapGoals( TEAM.ALLIES, true, "MOBILEMG42_allies_nicespot_above_tank"); SetAvailableMapGoals( TEAM.ALLIES, false, "MOUNTMG42_bunker_MG42"); //jcfgonc no axis view SetGoalPriority( "MOUNTMG42_bunker_MG42", 0.75); //jcfgonc SetGoalPriority( "PLANT_Tank_Barrier_1", 0.89); //jcfgonc SetGoalPriority( "MOBILEMG42_allies_nicespot_above_tank", 1.1); //jcfgonc SetGoalPriority( "BUILD_Tiger_Tank", 0.87, 0, 0 ); //jcfgonc SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_tunnel_door", // plantmines after tb1 "PLANTMINE_1517", "PLANTMINE_1032_1", "PLANTMINE_1032", "PLANTMINE_202", "PLANTMINE_1032_3", "PLANTMINE_1032_2", }); } //5-6 tank passes the barrier case 6: // most of the tank outside the tunnel { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_tunnel_exit", "AIRSTRIKE_axis_stop_tank_tunnel_exit_1", // plantmines after tb1 "PLANTMINE_1517", "PLANTMINE_1032_1", "PLANTMINE_1032", "PLANTMINE_202", "PLANTMINE_1032_3", "PLANTMINE_1032_2", }); } case 7: //tank fully outside the tunnel { SetAvailableMapGoals( TEAM.AXIS, true, { // "AIRSTRIKE_axis_stop_tank_tunnel_exit", "AIRSTRIKE_axis_stop_tank_nearby_bomb", "PLANTMINE_1269", "PLANTMINE_1034_1", "PLANTMINE_681", "PLANTMINE_1516", "PLANTMINE_22", "PLANTMINE_1034", }); } case 8: //tank before passing the bomb { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_nearby_bomb", "PLANTMINE_1036_2", "PLANTMINE_1036", "PLANTMINE_985", "PLANTMINE_1036_1", "PLANTMINE_1037_1", "PLANTMINE_1037", //"PLANTMINE_983_1", }); } case 9: //tank passing the bomb { SetAvailableMapGoals( TEAM.ALLIES, true, "REPAIRMG42_bunker_MG42"); //jcfgonc SetAvailableMapGoals( TEAM.ALLIES, true, "MOUNTMG42_bunker_MG42"); //jcfgonc SetGoalPriority( "REPAIRMG42_bunker_MG42", 0.75); //jcfgonc SetGoalPriority( "MOUNTMG42_bunker_MG42", 0.75); //jcfgonc SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_Intersection.*" ); // SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_Axis_Spawn_Back.*" ); if ( Map.BreakableAxisMGRoof_Destroyed ) { SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_Axis_Spawn_Back.*" ); } SetAvailableMapGoals( TEAM.AXIS, true, { "DEFEND_intersection.*", "MOBILEMG42_axis_above_crypt", //jcfgonc "MOBILEMG42_axis_before_end", //jcfgonc "MOBILEMG42_axis_towards_bridge.*", //jcfgonc // "MOBILEMG42_axis_towards_bridge_1", //jcfgonc // "MOBILEMG42_axis_towards_bridge_2", //jcfgonc // "MOBILEMG42_axis_towards_bridge_3", //jcfgonc "MOBILEMG42_axis_towards_tb2.*", //jcfgonc // "MOBILEMG42_axis_towards_tb2_1", //jcfgonc // "MOBILEMG42_axis_towards_tb2_78", //jcfgonc }); SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_intersection", "AIRSTRIKE_axis_stop_tank_nearby_bomb_1", "PLANTMINE_983", "PLANTMINE_306", "PLANTMINE_1038_1", "PLANTMINE_306_1", "PLANTMINE_70_1", "PLANTMINE_1039", }); } case 10: //tank at intersection bank/church { SetAvailableMapGoals( TEAM.ALLIES, true, { "MOBILEMG42_allies_inside_crypt", "ATTACK_tb2_Hill.*", }); SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bank", "AIRSTRIKE_axis_stop_tank_bank_1", "PLANTMINE_1040", "PLANTMINE_1040_1", "PLANTMINE_984", "PLANTMINE_1041_3", "PLANTMINE_1041", "PLANTMINE_1453", }); } case 11: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bank_1", "PLANTMINE_1042_3", "PLANTMINE_1042_1", "PLANTMINE_1051", "PLANTMINE_1043_2", "PLANTMINE_1043", "PLANTMINE_1051_1", }); } case 12: //tank nearby the bank lift { SetAvailableMapGoals( TEAM.AXIS, true, { // "AIRSTRIKE_axis_stop_tank_bank_1", "AIRSTRIKE_axis_stop_tank_bank_2", // "AIRSTRIKE_axis_stop_tank_mghouse", "PLANTMINE_72_1", "PLANTMINE_72_2", "PLANTMINE_1044_3", "PLANTMINE_1044_2", "PLANTMINE_1045_1", "PLANTMINE_1045", }); } case 13: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_mghouse", "AIRSTRIKE_axis_stop_tank_behind_church", "PLANTMINE_1045", "PLANTMINE_1045_1", "PLANTMINE_1966", "PLANTMINE_1045_2", "PLANTMINE_535", //last spot after the church curve }); } case 14: //tank entering the church curve { SetAvailableMapGoals( TEAM.AXIS, false, { "MOBILEMG42_axis_towards_bridge_2", //because of visibility "MOBILEMG42_axis_towards_bridge_3", "MOBILEMG42_axis_towards_bridge", "DEFEND_intersection.*", }); SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_mghouse", "AIRSTRIKE_axis_stop_tank_behind_church", "DEFEND_axis_spawn_back.*", "PLANTMINE_1966", "PLANTMINE_1045_2", "PLANTMINE_1045_3", "PLANTMINE_72_1", "PLANTMINE_1044", "PLANTMINE_535", //last spot after the church curve }); } case 15: //tank exited the church curve { SetAvailableMapGoals( TEAM.AXIS, true, { "MOBILEMG42_axis_towards_bridge_2", "MOBILEMG42_axis_towards_bridge_3", "MOBILEMG42_axis_towards_bridge_5", "MOBILEMG42_axis_towards_bridge_6", "MOBILEMG42_axis_towards_bridge_7", "MOBILEMG42_axis_towards_bridge_8", }); SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_behind_church", "AIRSTRIKE_axis_stop_tank_behind_church_1", "PLANTMINE_1044_1", "PLANTMINE_1044", "PLANTMINE_72_1", "PLANTMINE_1044_3", "PLANTMINE_1044_2", "PLANTMINE_1045_1", }); } case 16: //tank behind church back window { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_behind_church_alley", "PLANTMINE_1138", "PLANTMINE_62", "PLANTMINE_1137", "PLANTMINE_1137_1", "PLANTMINE_1139_1", "PLANTMINE_1139", }); } case 17: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_behind_church_alley", "PLANTMINE_1138", "PLANTMINE_62", "PLANTMINE_1137", "PLANTMINE_1137_1", "PLANTMINE_1139_1", "PLANTMINE_1139", }); } case 18: //narrower road section behind the church { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_church_garden", //switch mines "PLANTMINE_1138", "PLANTMINE_62", "PLANTMINE_1137", "PLANTMINE_1137_1", "PLANTMINE_1139_1", "PLANTMINE_1139", }); } case 19: //turrent entering the crypts curve { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_church_garden", "PLANTMINE_1138", "PLANTMINE_62", "PLANTMINE_1137", "PLANTMINE_1137_1", "PLANTMINE_1139_1", "PLANTMINE_1139", }); } case 20: //tank doing the crypt's road curve { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_church_garden_1", "PLANTMINE_1138", "PLANTMINE_62", "PLANTMINE_1137", "PLANTMINE_1137_1", "PLANTMINE_1139_1", "PLANTMINE_1139", }); } case 21: //tank about to complete the crypt's curve { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_church_garden_1", "PLANTMINE_1139_5", "PLANTMINE_1139_4", "PLANTMINE_1417", "PLANTMINE_1140_2", "PLANTMINE_1417_1", "PLANTMINE_1140", }); } case 22: //tank exited the crypt's road curve, at the garden's side entrance { SetAvailableMapGoals( TEAM.ALLIES, true, { "ATTACK_tb2.*", } ); SetAvailableMapGoals( TEAM.ALLIES, false, { "ATTACK_tb2_Hill.*", "MOBILEMG42_allies_inside_crypt", } ); SetAvailableMapGoals( TEAM.AXIS, false, { "DEFEND_axis_spawn_back.*", }); SetGoalPriority("BUILD_Tank_Barrier_2", 1.0); SetGoalPriority( "BUILD_Embankment_Assault_Ramp", 0.9 ); //jcfgonc SetAvailableMapGoals( TEAM.AXIS, true, { "DEFEND_crypt_to_tb2.*", "AIRSTRIKE_axis_stop_tank_church_garden_2", "AIRSTRIKE_axis_stop_tank_church_garden_1", "PLANTMINE_1139_1", "PLANTMINE_1139", "PLANTMINE_1139_3", "PLANTMINE_1139_2", "PLANTMINE_1139_4", "PLANTMINE_1139_5", "PLANTMINE_1140", "PLANTMINE_1140_2", "PLANTMINE_1417", "PLANTMINE_1417_1", }); } case 23: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_church_garden_2", "AIRSTRIKE_axis_stop_tank_garden_ramp", "PLANTMINE_64", "PLANTMINE_64_2", "PLANTMINE_64_1", "PLANTMINE_1145", "PLANTMINE_1141", "PLANTMINE_1141_2", }); } case 24: //at bottom ramp { SetAvailableMapGoals(TEAM.AXIS, true, "ARTILLERY_S_above_tb2.*"); SetGoalPriority("ARTILLERY_S_above_tb2.*", 0.89); SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_garden_ramp", // "AIRSTRIKE_axis_stop_tank_ramp_start", "PLANTMINE_1142_2", "PLANTMINE_1142_3", "PLANTMINE_1141", "PLANTMINE_1143_1", "PLANTMINE_1143_3", "PLANTMINE_35", }); } case 25: //started going up the ramp { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_ramp_start_1", "AIRSTRIKE_axis_stop_tank_ramp_start_2", "PLANTMINE_1144", "PLANTMINE_1144_3", "PLANTMINE_1144_2", "PLANTMINE_1144_1", "PLANTMINE_1146_1", "PLANTMINE_36", }); } case 26: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_ramp_start_2", "AIRSTRIKE_axis_stop_tank_ramp_middle", "PLANTMINE_1146", "PLANTMINE_289_1", "PLANTMINE_1146_2", "PLANTMINE_289", "PLANTMINE_173", "PLANTMINE_289_2", }); } case 27: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_ramp_middle", "PLANTMINE_172", "PLANTMINE_1148_2", "PLANTMINE_1148", "PLANTMINE_1147_1", "PLANTMINE_1744", "PLANTMINE_1149", }); } case 28: //tank stopped at the second tank barrier { SetGoalPriority( "PLANT_Tank_Barrier_2", 0.89 ); //jcfgonc SetGoalPriority( "BUILD_Tiger_Tank", 0.88, 0, 0 ); //jcfgonc SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_ramp_middle_1", "PLANTMINE_1744", "PLANTMINE_288", "PLANTMINE_1149_2", "PLANTMINE_1149_1", "PLANTMINE_181", "PLANTMINE_181_1", "PLANTMINE_288_1", "PLANTMINE_181_2", "PLANTMINE_181_3", "PLANTMINE_182", "PLANTMINE_38", "PLANTMINE_181_4", }); } case 29: //tank inside the second tank barrier //TODO: correct airstrikes here { SetAvailableMapGoals( TEAM.AXIS, false, { "DEFEND_.*", }); SetAvailableMapGoals( TEAM.AXIS, true, { "DEFEND_end.*", }); SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_nearby_tb2", //this one preferred "AIRSTRIKE_axis_stop_tank_tb2", "PLANTMINE_181_2", "PLANTMINE_181_3", "PLANTMINE_182", "PLANTMINE_38", "PLANTMINE_181_4", }); } case 30: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_nearby_tb2", "AIRSTRIKE_axis_stop_tank_tb2", "AIRSTRIKE_axis_stop_tank_after_tb2", }); } case 31: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_nearby_tb2", "AIRSTRIKE_axis_stop_tank_tb2", "AIRSTRIKE_axis_stop_tank_after_tb2", }); } case 32: //tank passed the second barrier { SetAvailableMapGoals( TEAM.AXIS, false, { "BUILD.*", "PLANT_.*", "PLANTMINE.*", "MOBILEMG42.*", "SNIPE.*", "ARTILLERY_S_above_tb1.*", }); SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bridge_start", "AIRSTRIKE_axis_stop_tank_after_tb2", "MOBILEMG42_axis_before_end.*", }); SetGoalPriority( "DEFUSE.*", 0.50, TEAM.AXIS, CLASS.ENGINEER, true); SetGoalPriority( "DEFEND.*", 0.90, TEAM.AXIS ); } case 33: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bridge_start", }); } case 34: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bridge", }); } case 35: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bridge", }); } case 36: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bridge", // "AIRSTRIKE_axis_stop_tank_67", }); } case 37: //tank on top of the tunnel { SetAvailableMapGoals( TEAM.AXIS, false, { "SNIPE.*", "PLANT.*", "BUILD.*", "DEFEND_end_30", "DEFEND_end_31", "DEFEND_end_32", "DEFEND_end_33", "DEFEND_end_34", "DEFEND_end_35", }); SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bridge_2", }); } case 38: { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bridge_end", }); } case 39: //last tank path position before ending the map { SetAvailableMapGoals( TEAM.AXIS, true, { "AIRSTRIKE_axis_stop_tank_bridge_end", }); } } if(Map.VehicleLocation>=10) { //tank has passed the intersection / bomb SetAvailableMapGoals( TEAM.ALLIES, true, { "MOBILEMG42_allies_inside_tunnel" }); } SetGoalPriority( "PLANTMINE.*", 0.91 ); //for mines set above, they are important to stop the tank // plant 4 mines nearby tb2, always SetAvailableMapGoals( TEAM.AXIS, true, { "PLANTMINE_181_4", "PLANTMINE_1149_1", "PLANTMINE_38", "PLANTMINE_288", }); SetGoalPriority( "PLANTMINE_181.*", 0.8 ); //for mines set above, they are important to stop the tank SetGoalPriority( "PLANTMINE_1149_1.*", 0.8 ); //for mines set above, they are important to stop the tank SetGoalPriority( "PLANTMINE_1149_2.*", 0.8 ); //for mines set above, they are important to stop the tank SetGoalPriority( "PLANTMINE_288.*", 0.8 ); //for mines set above, they are important to stop the tank Util.MapDebugPrint("tank at location " + Map.VehicleLocation, true); }, Tank_Passed_Barrier2 = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, { "PLANTMINE.*", "DEFEND_crypt_to_tb2.*", "MOBILEMG42_axis_towards_bridge.*", "MOBILEMG42_axis_towards_tb.*", "BUILD_Tank_Barrier_1", "BUILD_Tank_Barrier_2", "BUILD_tunnel_door", }); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_end.*" ); Util.MapDebugPrint( "Tank_Passed_Barrier2" ); }, RailClimbing = { Name="RailClimbing", TriggerOnClass = CLASS.ANYPLAYER, OnEnter = function(ent) { Util.MapDebugPrint(GetEntName(ent) + " entered RailClimbing trigger"); b = Util.IsBot(ent); if (b) { b.TargetBreakableDist = 0; b.GetAllEnemy(CAT.PLAYER, 0, Map.PlayersTable); foreach ( enemy in Map.PlayersTable ) { b.IgnoreTarget(enemy, 2.5); } //they may be killed while climbing and not restore target ignore - jcfgonc // thread(Map.RailClimbing.Timeout, ent); } }, OnExit = function(ent) { return; b = Util.IsBot(ent); if (b) { b.TargetBreakableDist = Map.DefaultTargetBreakableDist; b.GetAllEnemy(CAT.PLAYER, 0, Map.PlayersTable); foreach ( enemy in Map.PlayersTable ) { b.IgnoreTarget(enemy, 0.1); } } Util.MapDebugPrint(GetEntName(ent) + " exited RailClimbing trigger"); Util.MapDebugPrint("^1 -2- " + GetEntName(ent) + " ---------------- entered RailClimbing Timeout"); }, Timeout = function(ent) { Util.MapDebugPrint("^1 -1- " + GetEntName(ent) + " ---------------- entered RailClimbing Timeout"); sleep(3); Map.RailClimbing.OnExit(ent); } }, }; global saveRoutesGML = function(){ //jcfgonc most recent version // write it out to file for easy copy / paste gmfile = File(); fileName = GetMapName() + "_route_positions.gml"; if ( !System.FileExists(fileName) ) { gmfile.Open(fileName, "text", false); } else { gmfile.Open(fileName, "text", false, false); } gmfile.Write("graph ["); gmfile.Write(System.NewLine); gmfile.Write(" directed 1"); gmfile.Write(System.NewLine); id = 0; goals = Util.GoalTable(); //goals = {}; GetGoals(goals, TEAM.AXIS, ".*", { Sort="name" }); foreach( goal in goals ) { // properties goalPosition = goal.GetPosition(); x = -goalPosition.x; //because of mirroring y = goalPosition.y; z = goalPosition.z; radius = goal.GetRadius(); if(radius < 10 ) { radius = 10; } name = goal.GetName(); // Util.MapDebugPrint( name ); // --------------------------------------------- gmfile.Write(" node ["); gmfile.Write(System.NewLine); gmfile.Write(" id ", id); gmfile.Write(System.NewLine); gmfile.Write(" label \"", name, "\""); gmfile.Write(System.NewLine); // --------------------------------------------- gmfile.Write(" graphics ["); gmfile.Write(System.NewLine); gmfile.Write(" x ", x); gmfile.Write(System.NewLine); gmfile.Write(" y ", y); gmfile.Write(System.NewLine); gmfile.Write(" w ", radius); gmfile.Write(System.NewLine); gmfile.Write(" h ", radius); gmfile.Write(System.NewLine); gmfile.Write(" type \"ellipse\""); gmfile.Write(System.NewLine); if(name.Find("ROUTE") != -1) { gmfile.Write(" fill \"#00FF00\""); } else if(name.Find("ATTACK") != -1) { gmfile.Write(" fill \"#FF0000\""); } else if(name.Find("DEFEND") != -1) { gmfile.Write(" fill \"#0000FF\""); } else if(name.Find("CAPPOINT") != -1) { gmfile.Write(" fill \"#FFFF00\""); } else { gmfile.Write(" fill \"#FF00FF\""); } gmfile.Write(System.NewLine); gmfile.Write(" ]"); gmfile.Write(System.NewLine); // --------------------------------------------- gmfile.Write(" LabelGraphics ["); gmfile.Write(System.NewLine); gmfile.Write(" text \"", name, "\""); gmfile.Write(System.NewLine); gmfile.Write(" fontSize 12"); gmfile.Write(System.NewLine); gmfile.Write(" fontName \"Dialog\""); gmfile.Write(System.NewLine); gmfile.Write(" model \"null\""); gmfile.Write(System.NewLine); gmfile.Write(" ]"); gmfile.Write(System.NewLine); // --------------------------------------------- gmfile.Write(" ]"); gmfile.Write(System.NewLine); id = id+1; } gmfile.Write("]"); gmfile.Write(System.NewLine); gmfile.Close(); Util.MapDebugPrint( "saveRoutesGML" ); }; global OnMapLoad = function() { // saveRoutesGML(); OnTrigger( "Allied Command Post constructed. Charge speed increased!`", Map.Allied_Command_Post_Built ); OnTrigger( "Allied team has stolen the Tank!", Map.Allies_Steal_Tank ); OnTrigger( "Allies have destroyed the Axis Command Post! ^3Axis respawn time now 25 secs!", Map.Axis_Command_Post_Destroyed ); OnTrigger( "Axis Command Post constructed. Charge speed increased!", Map.Axis_Command_Post_Built ); OnTrigger( "Axis have destroyed the Allied Command Post! ^3Allied respawn time now 20 secs!", Map.Allied_Command_Post_Destroyed ); OnTrigger( "Defused at Tank Barrier #1.", Map.Tank_Barrier_1_Defused ); OnTrigger( "Defused at Tank Barrier #2.", Map.Tank_Barrier_2_Defused ); OnTrigger( "goldrush_allies_tank_barrier1", Map.Tank_Passed_Barrier1 ); OnTrigger( "goldrush_allies_tank_barrier2", Map.Tank_Passed_Barrier2 ); OnTrigger( "Planted at Tank Barrier #1.", Map.Tank_Barrier_1_Planted ); OnTrigger( "Planted at Tank Barrier #2.", Map.Tank_Barrier_2_Planted ); OnTrigger( "Planted at the Axis Command Post.", Map.Axis_Command_Post_Planted ); OnTrigger( "Planted at the crypt door.", Map.crypt_door_Planted ); OnTrigger( "tank at location", Map.tank_at_location ); OnTrigger( "Tank Barrier #1 has been constructed.", Map.Tank_Barrier_1_Built ); OnTrigger( "Tank Barrier #1 has been destroyed.", Map.Tank_Barrier_1_Destroyed ); OnTrigger( "Tank Barrier #2 has been constructed.", Map.Tank_Barrier_2_Built ); OnTrigger( "Tank Barrier #2 has been destroyed.", Map.Tank_Barrier_2_Destroyed ); OnTrigger( "The Tiger has been repaired!", Map.Tiger_Tank_Built ); OnTrigger( "The Tank has been damaged!", Map.Tiger_Tank_Damaged ); OnTrigger( "^3Allies have built the bunker MG42!", Map.bunker_MG42_Built ); OnTrigger( "^3Allies have built the Embankment Assault Ramp!", Map.Embankment_Assault_Ramp_Built ); OnTrigger( "^3Allies have captured the Shack!", Map.shack_flag_Allies_Captured ); OnTrigger( "^3Allies have destroyed the crypt door!", Map.crypt_door_Destroyed ); OnTrigger( "^3Allies have destroyed the foot tunnel door!", Map.tunnel_door_Destroyed ); OnTrigger( "^3Allies have taken the Bank!", Map.bank_flag_Allies_Captured ); OnTrigger( "^3Axis have built the crypt door!", Map.crypt_door_Built ); OnTrigger( "^3Axis have built the foot tunnel door!", Map.tunnel_door_Built ); OnTrigger( "^3Axis have captured the Bank!", Map.bank_flag_Axis_Captured ); OnTrigger( "^3Axis have destroyed the bunker MG42!", Map.bunker_MG42_Destroyed ); OnTrigger( "^3Axis have destroyed the Embankment Assault Ramp!", Map.Embankment_Assault_Ramp_Destroyed ); OnTrigger( "^3Axis have taken the Shack!", Map.shack_flag_Axis_Captured ); // tank positions OnTriggerRegion(Vector3(2994.841, 5149.566, 84.180), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2842.782, 4929.268, 22.147), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2740.145, 4631.693, 50.257), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2687.488, 4351.438, 73.719), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2612.944, 4176.322, 49.728), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2549.159, 3534.793, 51.683), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2547.072, 3205.352, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2618.598, 2884.417, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2565.558, 2469.214, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2565.308, 2212.125, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2547.045, 1972.710, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2565.823, 1702.568, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2603.836, 1427.541, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2562.348, 1160.125, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2349.485, 1075.585, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2060.896, 1115.197, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1822.792, 1143.206, 26.230), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1658.010, 1151.300, 24.918), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1513.728, 1128.962, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1187.160, 1107.303, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1108.109, 1296.513, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1071.398, 1555.395, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1100.231, 1770.758, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1152.307, 2062.770, 24.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1250.221, 2465.440, 103.107), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1259.163, 2721.039, 195.315), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1277.135, 2884.124, 228.418), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1253.379, 3131.207, 289.595), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1250.209, 3354.030, 323.494), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1248.817, 3565.047, 336.125), 150, RegionTrigger.VehicleTrigger); //Tank_Passed_Barrier2 OnTriggerRegion(Vector3(1343.862, 3721.668, 340.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1506.220, 3783.223, 352.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1726.164, 3832.962, 336.269), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(1928.015, 3833.973, 340.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2080.938, 3839.281, 340.125), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2303.118, 3832.321, 344.251), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2557.018, 3841.640, 344.251), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2892.423, 3828.996, 344.190), 150, RegionTrigger.VehicleTrigger); OnTriggerRegion(Vector3(2949.840, 3831.036, 336.125), 150, RegionTrigger.VehicleTrigger); // bot problematic movement at rails OnTriggerRegion(AABB(2002.859,1926.518,505.125,2129.591,2065.321,915.592), Map.RailClimbing); OnTriggerRegion(AABB(2092.232,2160.462,358.990,2202.320,2760.895,579.140), Map.RailClimbing); OnTriggerRegion(AABB(2694.549,1114.306,9.125,2787.944,1237.466,372.181), Map.RailClimbing); OnTriggerRegion(AABB(2695.018,3031.968,1.125,2763.129,3133.125,355.125), Map.RailClimbing); OnTriggerRegion(AABB(2697.600,2742.283,1.125,2760.875,2837.125,349.125), Map.RailClimbing); OnTriggerRegion(AABB(2697.620,3334.831,1.125,2777.722,3429.989,349.125), Map.RailClimbing); OnTriggerRegion(AABB(3140.535,3074.875,1.125,3206.066,3167.305,355.125), Map.RailClimbing); OnTriggerRegion(AABB(3143.125,2498.875,1.125,3199.050,2597.161,347.125), Map.RailClimbing); Util.DisableGoal(".*"); SetAvailableMapGoals( TEAM.ALLIES, true, { "AMMOCAB_.*", //jcfgonc "ARTILLERY_S_axis_bank_spawn.*", //jcfgonc "ARTILLERY_S_axis_church_spawn.*", //jcfgonc "ATTACK_tb1.*", "BUILD_Allied_Command_Post", "BUILD_bunker_MG42", //jcfgonc "BUILD_Embankment_Assault_Ramp", //jcfgonc imo should be from the start, provides additional routes and variation "BUILD_Tiger_Tank", "CALLARTILLERY.*", "CHECKPOINT_shack_flag", //jcfgonc "HEALTHCAB.*", //jcfgonc "MOBILEMG42_allies_overtunnel_towards_axis_spawns.*", //jcfgonc "MOBILEMG42_allies_right_of_ramp", //jcfgonc "MOUNTMG42_bunker_MG42", //jcfgonc "MOUNT_tank", "MOVER_tank", "Plant_Axis_Command_Post", //jcfgonc why not? "PLANT_crypt_door", //jcfgonc why not? "PLANT_Tank_Barrier_1", "PLANT_tunnel_door", //jcfgonc - without that door it's more complicated "SNIPE_allies_garage_towards_axis_spawns", "SNIPE_allies_garage_towards_axis_spawns_1", "SNIPE_allies_heheh_towards_axis_spawns", "SNIPE_allies_heheh_towards_axis_spawns_1", "SNIPE_allies_tb2_towards_axis_spawns", "SNIPE_allies_tb2_towards_axis_spawns_1", "SNIPE_allies_tb2_towards_axis_spawns_2", }); SetAvailableMapGoals( TEAM.AXIS, true, { "AMMOCAB_.*", //jcfgonc "ARTILLERY_S_allies_ramp_top.*", //jcfgonc "ARTILLERY_S_before_1st_bridge.*", //jcfgonc "BUILD_Axis_Command_Post", "BUILD_Tank_Barrier_1", "BUILD_Tank_Barrier_2", "BUILD_tunnel_door", "CALLARTILLERY.*", //jcfgonc "CHECKPOINT_bank_flag", "DEFEND_tb1.*", "HEALTHCAB.*", //jcfgonc "MOBILEMG42_axis_towards.*", //jcfgonc "MOBILEMG42_axis_towards_bridge", //jcfgonc "MOBILEMG42_axis_towards_bridge_1", //jcfgonc "MOBILEMG42_axis_towards_bridge_2", //jcfgonc "MOBILEMG42_axis_towards_bridge_3", //jcfgonc "PLANT_Allied_Command_Post", //jcfgonc - promoting variation "PLANT_Embankment_Assault_Ramp", "SNIPE_axis_towards_tb2", //jcfgonc "SNIPE_axis_towards_tb2_1", //jcfgonc "SNIPE_axis_towards_tb2_2", //jcfgonc "SNIPE_axis_towards_tb2_3", //jcfgonc "SNIPE_axis_towards_tb2_4", //jcfgonc "SNIPE_axis_towards_tunnel", //jcfgonc "SNIPE_axis_towards_tunnel_1", //jcfgonc "SNIPE_axis_towards_tunnel_2", //jcfgonc // "MOBILEMG42_axis_above_crypt", //jcfgonc // "MOBILEMG42_axis_before_end", //jcfgonc // "MOBILEMG42_axis_towards_tb2", //jcfgonc // "MOBILEMG42_axis_towards_tb2_78", //jcfgonc // "PLANTMINE_tb1.*", // "BUILD_crypt_door", //jcfgonc when opened, it is useful }); Map.Embankment_Assault_Ramp_Destroyed(); Map.tunnel_door_Destroyed(); Map.tank_at_location(1); SetAvailableMapGoals( TEAM.AXIS, false, "CALLARTILLERY_garage_mg"); SetMapGoalProperties( "ATTACK.*", {MinCampTime=20, MaxCampTime=45}); SetMapGoalProperties( "DEFEND.*", {MinCampTime=20, MaxCampTime=45}); SetMapGoalProperties( "SNIPE.*", {MinCampTime=180, MaxCampTime=600}); SetMapGoalProperties( "MOBILEMG42.*", {MinCampTime=180, MaxCampTime=600}); // SetGoalPriority( "AMMO.*", 0.85, 0, 0, true); //jcfgonc // SetGoalPriority( "HEALTH.*", 0.85, 0, 0, true ); //jcfgonc // SetGoalPriority( "HEAL.*", 2.0, 0, 0, true ); //jcfgonc // SetGoalPriority( "REVIVE.*", 2.0, 0, 0, true ); //jcfgonc SetGoalPriority( "ARTILLERY_S_axis_bank_spawn", 0.89 ); SetGoalPriority( "ARTILLERY_S_axis_church_spawn", 0.88 ); SetGoalPriority( "ARTILLERY_S_before_1st_bridge", 0.89 ); SetGoalPriority("CHECKPOINT.*", 0.80); SetGoalPriority( "MOUNTMG42_bunker_MG42", 0.75); //jcfgonc //axis SetGoalPriority( "BUILD_Axis_Command_Post", 0.87 ); SetGoalPriority( "PLANT_Allied_Command_Post", 0.86 ); // SetGoalPriority( "BUILD_crypt_door", 0.86 ); SetGoalPriority( "BUILD_Tank_Barrier_1", 0.90 ); SetGoalPriority( "BUILD_Tank_Barrier_2", 0.81 ); SetGoalPriority( "BUILD_tunnel_door", 0.88 ); SetGoalPriority( "PLANT_bunker_MG42", 0.5 ); //jcfgonc SetGoalPriority( "DEFUSE_tunnel_door.*", 0.65, TEAM.AXIS, CLASS.ENGINEER, true ); //not critical - jcfgonc SetGoalPriority( "DEFUSE_Axis_Command_Post.*", 0.65, TEAM.AXIS, CLASS.ENGINEER, true ); //not critical - jcfgonc SetGoalPriority( "DEFUSE_Allied_Command_Post.*", 0.55, TEAM.ALLIES, CLASS.ENGINEER, true ); //not critical - jcfgonc SetGoalPriority( "PLANT_Embankment_Assault_Ramp.*", 0.65, TEAM.AXIS, CLASS.ENGINEER, true ); //not critical - jcfgonc // SetGoalPriority( "DEFUSE_Tank_Barrier_1", 0.85, TEAM.AXIS, CLASS.ENGINEER, true ); // SetGoalPriority( "DEFUSE_Tank_Barrier_2", 0.85, TEAM.AXIS, CLASS.ENGINEER, true ); // SetGoalPriority( "DEFUSE_tunnel_door.*", 0.8, TEAM.AXIS, CLASS.ENGINEER, true); //jcfgonc SetGoalPriority( "AIRSTRIKE_axis_stop_tank.*", 1.0); //jcfgonc //allies SetGoalPriority( "BUILD_Allied_Command_Post", 0.82 ); SetGoalPriority( "BUILD_Embankment_Assault_Ramp", 0.88 ); //jcfgonc SetGoalPriority( "BUILD_Tiger_Tank", 0.85); //jcfgonc SetGoalPriority( "PLANT_Tank_Barrier_1", 0.86 ); //jcfgonc SetGoalPriority( "PLANT_Tank_Barrier_2", 0.86 ); //jcfgonc SetGoalPriority( "PLANT_tunnel_door", 0.83 ); //jcfgonc SetGoalPriority( "PLANT_crypt_door", 0.82 ); //jcfgonc SetGoalPriority( "PLANT_Axis_Command_Post", 0.81 ); //jcfgonc // SetGoalPriority( "MOBILEMG42_allies_overtunnel_towards_axis_spawns.*", 0.91 ); //jcfgonc // SetGoalPriority( "MOVER_tank.*", 1.5 ); //jcfgonc SetGoalPriority("CHECKPOINT_shack_flag", 1.83); Util.SetMaxUsers( 1, "DEFEND.*" ); Util.SetMaxUsers( 1, "ATTACK.*" ); Util.SetMaxUsers( 1, "HEAL.*" ); Util.SetMaxUsers( 1, "CHECKPOINT_bank_flag" ); Util.SetMaxUsers( 1, "CHECKPOINT_shack_flag" ); Util.SetMaxUsers( 1, "MOUNTMG42.*" ); Util.SetMaxUsers( 1, "MOBILEMG42.*" ); Util.SetMaxUsers( 1, "BUILD.*" ); Util.SetMaxUsers( 1, "PLANT.*" ); Util.SetMaxUsers( 2, "PLANT_Tank_Barrier.*" ); // Util.SetMaxUsers( 1, "MOVER_tank.*" ); Util.SetMaxUsers( 1, "PLANT_tunnel_door" ); //jcfgonc Util.AddUsePoint("PLANT_Tank_Barrier_1", { Vec3(2670.327, 3693.955, 30.997), Vec3(2431.247, 3761.908, 30.194), Vec3(2586.183, 3681.507, 32.127), Vec3(2672.742, 3763.210, 30.191), Vec3(2431.259, 3680.929, 30.198)}); // Util.SetGoalPosition( 1236.304, 3773.758, 352.125, "PLANT_Tank_Barrier_2"); Util.SetGoalPosition( 1205.565, 3750.383, 352.125, "PLANT_Tank_Barrier_2"); Util.AddUsePoint( "PLANT_Embankment_Assault_Ramp", { Vec3( 699.318, 4121.474, 348.125), Vec3(1306.493, 4094.766, 41.137) } ); //jcfgonc Util.SetGoalPosition( 1044.778, 3479.928, 332.882, "BUILD_Tank_Barrier_2"); //jcfgonc Util.AddUsePoint( "PLANT_tunnel_door", Vec3( 3218.474, 3846.338, 8.064)); Util.SetGoalPosition( 831.457, 1257.125, 72.125, "PLANT_crypt_door"); //jcfgonc Util.SetGoalPosition( 350, 1260, 72, "PLANT_Axis_Command_Post"); //jcfgonc // Util.SetGoalPosition( 2767.795, 5426.125, 72.125, "MOUNTMG42_bunker_MG42"); //jcfgonc Util.SetGoalPosition( 2767.647, 5400.0, 60.687, "MOUNTMG42_bunker_MG42"); //jcfgonc // Server.MinClassCount[TEAM.AXIS][CLASS.SOLDIER] = 0; // Server.MinClassCount[TEAM.AXIS][CLASS.MEDIC] = 0; // Server.MinClassCount[TEAM.AXIS][CLASS.ENGINEER] = 1; // Server.MinClassCount[TEAM.AXIS][CLASS.FIELDOPS] = 1; // Server.MinClassCount[TEAM.AXIS][CLASS.COVERTOPS] = 0; // Server.MinClassCount[TEAM.ALLIES][CLASS.SOLDIER] = 0; // Server.MinClassCount[TEAM.ALLIES][CLASS.MEDIC] = 0; // Server.MinClassCount[TEAM.ALLIES][CLASS.ENGINEER] = 1; // Server.MinClassCount[TEAM.ALLIES][CLASS.FIELDOPS] = 0; // Server.MinClassCount[TEAM.ALLIES][CLASS.COVERTOPS] = 0; // thread(Map.check_flagDoor); thread(Map.check_lift); thread(Map.check_axis_mg_roof); thread(Map.setRandomSpawn); Util.EnableGoal("ROUTE.*"); //enable routing for both teams Util.MapDebugPrint( "OnMapLoad" ); }; global OnBotJoin = function( bot ) { //jcfgonc destroy breakables bot.TargetBreakableDist = Map.DefaultTargetBreakableDist; weaps = { WEAPON.THOMPSON, WEAPON.MP40, WEAPON.SHOTGUN, WEAPON.M97, WEAPON.M7, WEAPON.GARAND, WEAPON.K43, WEAPON.BAR, WEAPON.STEN, WEAPON.MP34, WEAPON.BAR, WEAPON.STG44, WEAPON.FG42, WEAPON.MOBILE_MG42, WEAPON.MOBILE_MG42_SET, WEAPON.MOUNTABLE_MG42, WEAPON.SHOTGUN, WEAPON.STG44, WEAPON.BAR, WEAPON.MP34, WEAPON.VENOM, WEAPON.M97, WEAPON.PPSH, WEAPON.LAW, WEAPON.M79, WEAPON.ITHACA, WEAPON.RPD, WEAPON.M3A1, WEAPON.SAK47, WEAPON.REVOLVER, WEAPON.AKIMBO_MAC10 }; foreach( id and weap in weaps ) { w = bot.GetWeapon(weap); w.PrimaryFire.SetTargetBias(CLASS.BREAKABLE, 1.2); // w.PrimaryFire.SetDesirabilityRange(0, 300, 1.0); } w = bot.GetWeapon(WEAPON.KNIFE); w.PrimaryFire.SetTargetBias(CLASS.BREAKABLE, 0.5); w.PrimaryFire.SetDesirabilityRange(0, 15, 0.8); toIgnore = {100, 101, 102, 103, 105, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 192, 193, 194, 229, 231, 232, 233, 235, // 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, //these are the bridge wood fences 250, 252, 391, 393, 394, 408, 413, 418, 426, 427, 428, 429, 441, 457, 458, 459, 460, 461, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 95, 96, 97, 98, 99}; foreach( entityid in toIgnore ) { bot.IgnoreTarget(entityid, 32767); Util.MapDebugPrint( "IgnoreTarget: "+entityid ); } if ( bot.GetClass() == CLASS.COVERTOPS && bot.HasWeapon(WEAPON.FG42) ) { bot.PickNewPrimaryWeapon( WEAPON.STEN ); } bot.MaxViewDistance = 65535; }; global OnExit = function() { threadKillAll(); };