Guest User

Untitled

a guest
Dec 16th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.20 KB | None | 0 0
  1. --v function(ax: number, ay: number, bx: number, by: number) --> number
  2. local function distance_2D(ax, ay, bx, by)
  3. return (((bx - ax) ^ 2 + (by - ay) ^ 2) ^ 0.5);
  4. end;
  5.  
  6. local leave_alive = {
  7.  
  8. --- PLAYABLE FACTIONS ---
  9. --Bretonnians
  10. --"wh_main_brt_bretonnia",
  11. --"wh_main_brt_carcassonne",
  12. --"wh_main_brt_bordeleaux",
  13. --Dwarfs
  14. --"wh_main_dwf_dwarfs",
  15. --"wh_main_dwf_karak_izor",
  16. --"wh_main_dwf_karak_kadrin",
  17. --Empire
  18. --"wh_main_emp_empire",
  19. --Greenskins
  20. --"wh_main_grn_crooked_moon",
  21. --"wh_main_grn_greenskins",
  22. --"wh_main_grn_orcs_of_the_bloody_hand",
  23. -- Vampire Counts
  24. --"wh_main_vmp_schwartzhafen",
  25. --"wh_main_vmp_vampire_counts",
  26. --"wh2_dlc11_vmp_the_barrow_legion",
  27. --Skaven
  28. --"wh2_dlc09_skv_clan_rictus",
  29. --"wh2_main_skv_clan_mors",
  30. --"wh2_main_skv_clan_pestilens",
  31. --Tomb Kings
  32. --"wh2_dlc09_tmb_exiles_of_nehek",
  33. --"wh2_dlc09_tmb_followers_of_nagash",
  34. --"wh2_dlc09_tmb_khemri",
  35. --"wh2_dlc09_tmb_lybaras",
  36. --Dark Elves
  37. --"wh2_main_def_naggarond",
  38. --"wh2_main_def_har_ganeth",
  39. --"wh2_main_def_cult_of_pleasure",
  40. --"wh2_dlc11_def_the_blessed_dread",
  41. --High Elves
  42. --"wh2_main_hef_order_of_loremasters",
  43. --"wh2_main_hef_eataine",
  44. --"wh2_main_hef_nagarythe",
  45. --"wh2_main_hef_avelorn",
  46. --Lizardmen
  47. --"wh2_main_lzd_last_defenders",
  48. --"wh2_main_lzd_hexoatl",
  49. --Norsca
  50. --"wh_dlc08_nor_wintertooth",
  51. --"wh_dlc08_nor_norsca",
  52. --Vampire Coast
  53. --"wh2_dlc11_cst_vampire_coast",
  54. --"wh2_dlc11_cst_the_drowned",
  55. --"wh2_dlc11_cst_noctilus",
  56. --"wh2_dlc11_cst_pirates_of_sartosa",
  57. --Wood Elves
  58. --"wh_dlc05_wef_wood_elves",
  59. --"wh_dlc05_wef_argwylon",
  60. --Beastmen
  61. --"wh_dlc03_bst_beastmen",
  62.  
  63. --MINOR FACTIONS--
  64. --Bretonnia
  65. --"wh2_main_brt_knights_of_origo",
  66. --"wh2_main_brt_knights_of_the_flame",
  67. --"wh2_main_brt_thegans_crusaders",
  68. --"wh_main_brt_parravon",
  69. --"wh_main_brt_lyonesse",
  70. --"wh_main_brt_carcassonne",
  71. --"wh_main_brt_bastonne",
  72. --"wh_main_brt_artois",
  73. --Kislev
  74. --"wh_main_ksl_kislev",
  75. --Dwarves
  76. --"wh2_main_dwf_karak_zorn",
  77. --"wh_main_dwf_kraka_drak",
  78. --"wh_main_dwf_karak_azul",
  79. --"wh_main_dwf_barak_varr",
  80. --"wh2_main_dwf_greybeards_prospectors",
  81. --"wh_main_dwf_karak_hirn",
  82. --"wh_main_dwf_karak_ziflin",
  83. --"wh_main_dwf_zhufbar",
  84. --Empire
  85. --"wh2_main_emp_sudenburg",
  86. --"wh_main_emp_middenland",
  87. --"wh_main_emp_ostland",
  88. --"wh_main_emp_talabecland",
  89. --"wh_main_emp_averland",
  90. --"wh_main_emp_wissenland",
  91. --"wh_main_emp_hochland",
  92. --"wh_main_emp_nordland",
  93. --"wh_main_emp_ostermark",
  94. --"wh_main_emp_stirland",
  95. --"wh_main_emp_marienburg",
  96. --- Empire of Man Mod
  97. --"wh_main_emp_cult_of_ulric",
  98. --"wh_main_emp_cult_of_sigmar",
  99. --Greenskins
  100. --"wh2_main_grn_blue_vipers",
  101. --"wh2_main_grn_blue_vipers_waaagh",
  102. --"wh2_main_grn_arachnos",
  103. --"wh2_main_grn_arachnos_waaagh",
  104. --"wh_main_grn_red_eye",
  105. --"wh_main_grn_red_fangs",
  106. --"wh_main_grn_necksnappers_waaagh",
  107. --"wh_main_grn_orcs_of_the_bloody_hand_waaagh",
  108. --"wh_main_grn_red_eye_waaagh",
  109. --"wh_main_grn_red_fangs_waaagh",
  110. --"wh_main_grn_greenskins_waaagh",
  111. --"wh_main_grn_skullsmasherz_waaagh",
  112. --"wh_main_grn_scabby_eye_waaagh",
  113. --"wh_main_grn_teef_snatchaz_waaagh",
  114. --"wh_main_grn_crooked_moon_waaagh",
  115. --"wh_main_grn_broken_nose_waaagh",
  116. --"wh_main_grn_black_venom_waaagh",
  117. --"wh_main_grn_bloody_spearz_waaagh",
  118. --TEB
  119. --"wh_main_teb_border_princes",
  120. --"wh_main_teb_estalia",
  121. --"wh_main_teb_tilea",
  122. --"wh2_main_emp_new_world_colonies",
  123. -- CFU MOD
  124. --"wh2_main_emp_pirates_of_sartosa",
  125. --"wh_main_teb_bilbali",
  126. --"wh_main_teb_lichtenburg_confederacy",
  127. --"wh_main_teb_magritta",
  128. --"wh_main_teb_tobaro",
  129. --Dark Elves
  130. --"wh2_main_def_scourge_of_khaine",
  131. --"wh2_main_def_hag_graef",
  132. --"wh2_main_def_karond_kar",
  133. --"wh2_main_def_the_forgebound",
  134. --"wh2_main_def_ssildra_tor",
  135. --"wh2_main_def_ghrond",
  136. --"wh2_main_def_deadwood_sentinels",
  137. --"wh2_main_def_cult_of_excess",
  138. --"wh2_main_def_bleak_holds",
  139. --"wh2_main_def_clar_karond",
  140. --Wood Elves
  141. --"wh2_main_wef_bowmen_of_oreon",
  142. --"wh_dlc05_wef_torgovann",
  143. --"wh_dlc05_wef_wydrioth",
  144. --High Elves
  145. --"wh2_main_hef_caledor",
  146. --"wh2_main_hef_chrace",
  147. --"wh2_main_hef_saphery",
  148. --"wh2_main_hef_tiranoc",
  149. --"wh2_main_hef_cothique",
  150. --"wh2_main_hef_ellyrion",
  151. --"wh2_main_hef_yvresse",
  152. --Lizardmen
  153. --"wh2_main_lzd_itza",
  154. --"wh2_main_lzd_xlanhuapec",
  155. --"wh2_main_lzd_tlaxtlan",
  156. --"wh2_main_lzd_teotiqua",
  157. --"wh2_main_lzd_sentinels_of_xeti",
  158. --Norsca
  159. --"wh2_main_nor_skeggi",
  160. --"wh2_main_nor_aghol",
  161. --"wh_dlc08_nor_vanaheimlings",
  162. --"wh2_main_nor_mung",
  163. --"wh_main_nor_varg",
  164. --"wh_main_nor_skaeling",
  165. --"wh_dlc08_nor_naglfarlings",
  166. --"wh_dlc08_nor_helspire_tribe",
  167. --"wh_dlc08_nor_goromadny_tribe",
  168. --Skaven
  169. --"wh2_main_skv_clan_skyre",
  170. --"wh2_main_skv_clan_moulder",
  171. --"wh2_main_skv_clan_eshin",
  172. --"wh2_main_skv_clan_gnaw",
  173. --"wh2_main_skv_clan_septik",
  174. --Vampire Counts
  175. --"wh_main_vmp_mousillon",
  176. --"wh2_main_vmp_necrarch_brotherhood",
  177. --"wh2_main_vmp_strygos_empire",
  178. --"wh2_main_vmp_the_silver_host",
  179. --Beastmen
  180. --"wh2_main_bst_blooded_axe",
  181. --"wh2_main_bst_blooded_axe_brayherd",
  182. --"wh2_main_bst_manblight",
  183. --"wh2_main_bst_manblight_brayherd",
  184. --"wh2_main_bst_ripper_horn",
  185. --"wh2_main_bst_ripper_horn_brayherd",
  186. --"wh2_main_bst_shadowgor",
  187. --"wh2_main_bst_shadowgor_brayherd",
  188. --"wh_dlc03_bst_jagged_horn",
  189. --"wh_dlc03_bst_jagged_horn_brayherd",
  190. --"wh_dlc03_bst_redhorn",
  191. --"wh_dlc03_bst_redhorn_brayherd",
  192. --Vampire Coast
  193. --"wh2_dlc11_cst_rogue_terrors_of_the_dark_straights",
  194. --"wh2_dlc11_cst_rogue_boyz_of_the_forbidden_coast",
  195. --"wh2_dlc11_cst_rogue_freebooters_of_port_royale",
  196. --"wh2_dlc11_cst_rogue_bleak_coast_buccaneers",
  197. --"wh2_dlc11_cst_rogue_grey_point_scuttlers",
  198. --"wh2_dlc11_cst_rogue_the_churning_gulf_raiders",
  199. --"wh2_dlc11_cst_rogue_tyrants_of_the_black_ocean",
  200. --Tomb Kings
  201. --"wh2_dlc09_tmb_the_sentinels",
  202. --"wh2_dlc09_tmb_rakaph_dynasty",
  203. --"wh2_dlc09_tmb_numas",
  204. --"wh2_dlc09_tmb_dune_kingdoms",
  205. --Chaos
  206. --"wh_main_chs_chaos"
  207. } --:vector<string>
  208.  
  209. function me_turn_time_destroyer()
  210. if cm:model():campaign_name("main_warhammer") then
  211. if cm:is_new_game() then
  212.  
  213. if cm:is_multiplayer() then
  214. return
  215. end
  216. local whitelist = {} --:map<string, boolean>
  217. for i = 1, #leave_alive do
  218. whitelist[leave_alive[i]] = true
  219. end
  220.  
  221. local region_list = cm:model():world():region_manager():region_list()
  222. local home_faction = cm:get_faction(cm:get_local_faction(true)):home_region():settlement()
  223. local x, y = home_faction:logical_position_x(), home_faction:logical_position_y()
  224. local factions = {} --:map<string, boolean>
  225. for i = 0, region_list:num_items() - 1 do
  226. local region = region_list:item_at(i)
  227. if not (region:owning_faction():is_null_interface() or region:settlement():is_null_interface()) then
  228. local distance = distance_2D(x, y, region:settlement():logical_position_x(), region:settlement():logical_position_y())
  229. local faction = region:owning_faction():name()
  230. if distance > 10 then
  231. if factions[faction] == nil then
  232. factions[faction] = true
  233. end
  234. else
  235. factions[faction] = false
  236. end
  237. end
  238. end
  239.  
  240. for faction_name, kill in pairs(factions) do
  241. if kill and (not whitelist[faction_name]) then
  242. local faction = cm:get_faction(faction_name)
  243. local regions = faction:region_list()
  244. for i = 0, regions:num_items() - 1 do
  245. cm:set_region_abandoned(regions:item_at(i):name())
  246. end
  247. local characters = faction:character_list()
  248. for i = 0, characters:num_items() - 1 do
  249. if cm:char_is_mobile_general_with_army(characters:item_at(i)) then
  250. cm:callback(function()
  251. cm:kill_character(characters:item_at(i):cqi(), true, true)
  252. end, (i+1)/10)
  253. end
  254. end
  255. end
  256. end
  257.  
  258. cm:callback(function()
  259.  
  260. -- Weaken Kislev
  261.  
  262. if cm:get_faction("wh_main_emp_ostland"):is_dead() then
  263.  
  264. cm:set_region_abandoned("wh_main_southern_oblast_zavastra")
  265. cm:set_region_abandoned("wh_main_southern_oblast_fort_jakova")
  266. cm:set_region_abandoned("wh_main_northern_oblast_fort_ostrosk")
  267. cm:set_region_abandoned("wh_main_northern_oblast_fort_straghov")
  268. cm:set_region_abandoned("wh_main_troll_country_zoishenk")
  269. cm:set_region_abandoned("wh_main_eastern_oblast_praag")
  270.  
  271. end;
  272.  
  273. -- Weaken Border Princes
  274.  
  275. if cm:get_faction("wh_main_grn_black_venom"):is_dead() then
  276.  
  277. cm:set_region_abandoned("wh_main_western_border_princes_myrmidens")
  278.  
  279. end;
  280.  
  281. -- Strengthen Empire
  282.  
  283. if cm:get_faction("wh_main_emp_ostland"):is_dead() then
  284.  
  285. cm:transfer_region_to_faction("wh_main_ostland_castle_von_rauken", "wh_main_emp_empire");
  286. cm:transfer_region_to_faction("wh_main_ostermark_bechafen", "wh_main_emp_empire");
  287.  
  288. end;
  289.  
  290. if cm:get_faction("wh_main_emp_averland"):is_dead() then
  291.  
  292. cm:transfer_region_to_faction("wh_main_averland_averheim", "wh_main_emp_empire");
  293.  
  294. end;
  295.  
  296. if cm:get_faction("wh_main_emp_talabecland"):is_dead() then
  297.  
  298. cm:transfer_region_to_faction("wh_main_talabecland_talabheim", "wh_main_emp_empire");
  299. cm:transfer_region_to_faction("wh_main_middenland_middenheim", "wh_main_emp_empire");
  300.  
  301. end;
  302.  
  303. --Strenthen Dwarfs
  304.  
  305. if cm:get_faction("wh_main_dwf_zhufbar"):is_dead() then
  306.  
  307. cm:transfer_region_to_faction("wh_main_zhufbar_oakenhammer", "wh_main_dwf_dwarfs");
  308.  
  309. end;
  310.  
  311. -- Weaken Karak Azul and Red Fangs
  312.  
  313. if cm:get_faction("wh_main_grn_teef_snatchaz"):is_dead() then
  314.  
  315. --Karak Azul
  316. cm:set_region_abandoned("wh_main_blightwater_misty_mountain")
  317. cm:set_region_abandoned("wh_main_desolation_of_nagash_spitepeak")
  318.  
  319. --Red Fangs
  320. cm:set_region_abandoned("wh_main_death_pass_iron_rock")
  321. cm:set_region_abandoned("wh_main_desolation_of_nagash_spitepeak")
  322.  
  323. end;
  324.  
  325. -- Weaken Scourge of Khaine
  326.  
  327. if cm:get_faction("wh2_main_hef_chrace"):is_dead() then
  328.  
  329. cm:set_region_abandoned("wh2_main_nagarythe_tor_anlec")
  330. cm:set_region_abandoned("wh2_main_avelorn_tor_saroir")
  331.  
  332. end;
  333.  
  334. ----- Weaken minor factions who should be dead
  335.  
  336. --Top Knotz
  337.  
  338. if cm:get_faction("wh_main_grn_teef_snatchaz"):is_dead() and not cm:get_faction("wh_main_grn_top_knotz"):is_dead() then
  339.  
  340. cm:set_region_abandoned("wh_main_southern_badlands_galbaraz")
  341. cm:set_region_abandoned("wh_main_southern_badlands_gor_gazan")
  342.  
  343. end;
  344.  
  345. --Deadwood
  346.  
  347. if cm:get_faction("wh2_main_def_karond_kar"):is_dead() and not cm:get_faction("wh2_main_def_deadwood_sentinels"):is_dead() then
  348.  
  349. cm:set_region_abandoned("wh2_main_deadwood_dargoth")
  350. cm:set_region_abandoned("wh2_main_the_road_of_skulls_spite_reach")
  351.  
  352. end;
  353.  
  354.  
  355. -- Ghrond
  356.  
  357. if cm:get_faction("wh2_main_def_karond_kar"):is_dead() and not cm:get_faction("wh2_main_def_ghrond"):is_dead() then
  358.  
  359. cm:set_region_abandoned("wh2_main_the_chill_road_the_great_arena")
  360. cm:set_region_abandoned("wh2_main_the_chill_road_ashrak")
  361.  
  362. end;
  363.  
  364. --- TMB KING - SENTINELS
  365.  
  366. if cm:get_faction("wh2_main_vmp_strygos_empire"):is_dead() and not cm:get_faction("wh2_dlc09_tmb_the_sentinels"):is_dead() then
  367. cm:set_region_abandoned("wh2_main_great_mortis_delta_black_pyramid_of_nagash")
  368. end;
  369. end, 20);
  370.  
  371. end;
  372. end;
  373. end
Add Comment
Please, Sign In to add comment