Guest User

Untitled

a guest
Jul 3rd, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 158.50 KB | None | 0 0
  1.  
  2. events = get_events()
  3.  
  4.  
  5. -- Trigger declarations
  6.  
  7. --[[ wh_main_trig_agent_critical_failure ]]--
  8.  
  9. function wh_main_trig_agent_critical_failure_impl (context)
  10. return char_is_agent(context:character()) and context:mission_result_critial_failure()
  11. end
  12.  
  13. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  14. function (context)
  15. if wh_main_trig_agent_critical_failure_impl(context) then
  16. effect.trait("wh_main_trait_all_personality_all_unlucky", "agent", 1, 5, context)
  17. effect.trait("wh_main_trait_agent_personality_all_mad", "agent", 1, 5, context)
  18. return true
  19. end
  20. return false
  21. end
  22.  
  23. --[[ wh_main_trig_agent_has_trait_mad ]]--
  24.  
  25. function wh_main_trig_agent_has_trait_mad_impl (context)
  26. return char_is_agent(context:character()) and context:character():has_trait("wh_main_trait_agent_personality_all_mad") and context:character():model():turn_number() > 4
  27. end
  28.  
  29. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  30. function (context)
  31. if wh_main_trig_agent_has_trait_mad_impl(context) then
  32. effect.trait("wh_main_trait_agent_personality_all_mad", "agent", 1, 5, context)
  33. return true
  34. end
  35. return false
  36. end
  37.  
  38. --[[ wh_main_trig_agent_success ]]--
  39.  
  40. function wh_main_trig_agent_success_impl (context)
  41. return char_is_agent(context:character()) and context:mission_result_success()
  42. end
  43.  
  44. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  45. function (context)
  46. if wh_main_trig_agent_success_impl(context) then
  47. effect.trait("wh_main_trait_all_personality_all_lucky", "agent", 1, 5, context)
  48. return true
  49. end
  50. return false
  51. end
  52.  
  53. --[[ wh_main_trig_brt_damsel_caster ]]--
  54.  
  55. function wh_main_trig_brt_damsel_caster_impl (context)
  56. return context:character():character_subtype("brt_damsel") and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  57. end
  58.  
  59. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  60. function (context)
  61. if wh_main_trig_brt_damsel_caster_impl(context) then
  62. effect.trait("wh_main_trait_brt_damsel_caster", "agent", 1, 100, context)
  63. return true
  64. end
  65. return false
  66. end
  67.  
  68. --[[ wh_main_trig_brt_lord_character_killer ]]--
  69.  
  70. function wh_main_trig_brt_lord_character_killer_impl (context)
  71. return context:character():character_subtype("default") and context:character():faction():culture() == "wh_main_brt_bretonnia" and char_is_general(context:character()) and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  72. end
  73.  
  74. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  75. function (context)
  76. if wh_main_trig_brt_lord_character_killer_impl(context) then
  77. effect.trait("wh_main_trait_brt_lord_character_killer", "agent", 1, 100, context)
  78. return true
  79. end
  80. return false
  81. end
  82.  
  83. --[[ wh_main_trig_brt_paladin_unit_killer ]]--
  84.  
  85. function wh_main_trig_brt_paladin_unit_killer_impl (context)
  86. return context:character():character_subtype("brt_paladin") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  87. end
  88.  
  89. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  90. function (context)
  91. if wh_main_trig_brt_paladin_unit_killer_impl(context) then
  92. effect.trait("wh_main_trait_brt_paladin_unit_killer", "agent", 1, 100, context)
  93. return true
  94. end
  95. return false
  96. end
  97.  
  98. --[[ wh_main_trig_champion_action_success_assist_army ]]--
  99.  
  100. function wh_main_trig_champion_action_success_assist_army_impl (context)
  101. return context:character():has_skill("wh_main_skill_all_champion_campaign_drill_master") and context:character():is_embedded_in_military_force()
  102. end
  103.  
  104. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  105. function (context)
  106. if wh_main_trig_champion_action_success_assist_army_impl(context) then
  107. effect.trait("wh_main_trait_action_champion_assist_army", "agent", 1, 5, context)
  108. return true
  109. end
  110. return false
  111. end
  112.  
  113. --[[ wh_main_trig_champion_action_success_assist_province ]]--
  114.  
  115. function wh_main_trig_champion_action_success_assist_province_impl (context)
  116. return context:character():character_type("champion") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name()
  117. end
  118.  
  119. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  120. function (context)
  121. if wh_main_trig_champion_action_success_assist_province_impl(context) then
  122. effect.trait("wh_main_trait_action_champion_assist_province", "agent", 1, 5, context)
  123. return true
  124. end
  125. return false
  126. end
  127.  
  128. --[[ wh_main_trig_champion_action_success_hinder_army ]]--
  129.  
  130. function wh_main_trig_champion_action_success_hinder_army_impl (context)
  131. return context:character():character_type("champion") and context:mission_result_success() and context:agent_action_key() == "wh_main_agent_action_champion_hinder_army"
  132. end
  133.  
  134. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  135. function (context)
  136. if wh_main_trig_champion_action_success_hinder_army_impl(context) then
  137. effect.trait("wh_main_trait_action_champion_hinder_army", "agent", 1, 15, context)
  138. return true
  139. end
  140. return false
  141. end
  142.  
  143. --[[ wh_main_trig_champion_action_success_hinder_character ]]--
  144.  
  145. function wh_main_trig_champion_action_success_hinder_character_impl (context)
  146. return context:character():character_type("champion") and (context:mission_result_success() or context:mission_result_critial_success()) and context:agent_action_key() == "wh_main_agent_action_champion_hinder_character"
  147. end
  148.  
  149. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  150. function (context)
  151. if wh_main_trig_champion_action_success_hinder_character_impl(context) then
  152. effect.trait("wh_main_trait_action_champion_hinder_character", "agent", 1, 25, context)
  153. return true
  154. end
  155. return false
  156. end
  157.  
  158. --[[ wh_main_trig_champion_action_success_hinder_province ]]--
  159.  
  160. function wh_main_trig_champion_action_success_hinder_province_impl (context)
  161. return context:character():character_type("champion") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() ~= context:character():region():owning_faction():name()
  162. end
  163.  
  164. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  165. function (context)
  166. if wh_main_trig_champion_action_success_hinder_province_impl(context) then
  167. effect.trait("wh_main_trait_action_champion_hinder_province", "agent", 1, 5, context)
  168. return true
  169. end
  170. return false
  171. end
  172.  
  173. --[[ wh_main_trig_champion_action_success_hinder_settlement ]]--
  174.  
  175. function wh_main_trig_champion_action_success_hinder_settlement_impl (context)
  176. return context:character():character_type("champion") and context:mission_result_success()
  177. end
  178.  
  179. events.CharacterGarrisonTargetAction[#events.CharacterGarrisonTargetAction+1] =
  180. function (context)
  181. if wh_main_trig_champion_action_success_hinder_settlement_impl(context) then
  182. effect.trait("wh_main_trait_action_champion_hinder_settlement", "agent", 1, 15, context)
  183. return true
  184. end
  185. return false
  186. end
  187.  
  188. --[[ wh_main_trig_character_enters_garrison_high_buildings ]]--
  189.  
  190. function wh_main_trig_character_enters_garrison_high_buildings_impl (context)
  191. return context:character():has_region() and context:character():region():num_buildings() > 3 and context:character():action_points_remaining_percent() > 5
  192. end
  193.  
  194. events.CharacterEntersGarrison[#events.CharacterEntersGarrison+1] =
  195. function (context)
  196. if wh_main_trig_character_enters_garrison_high_buildings_impl(context) then
  197. effect.trait("wh_main_trait_general_government_all_architect", "agent", 1, 6, context)
  198. return true
  199. end
  200. return false
  201. end
  202.  
  203. --[[ wh_main_trig_character_enters_garrison_high_public_order ]]--
  204.  
  205. function wh_main_trig_character_enters_garrison_high_public_order_impl (context)
  206. return context:character():has_region() and context:character():region():public_order() > 40 and context:character():action_points_remaining_percent() > 5
  207. end
  208.  
  209. events.CharacterEntersGarrison[#events.CharacterEntersGarrison+1] =
  210. function (context)
  211. if wh_main_trig_character_enters_garrison_high_public_order_impl(context) then
  212. effect.trait("wh_main_trait_general_government_civilised_politician", "agent", 1, 10, context)
  213. return true
  214. end
  215. return false
  216. end
  217.  
  218. --[[ wh_main_trig_character_enters_garrison_high_public_order_dwarfs ]]--
  219.  
  220. function wh_main_trig_character_enters_garrison_high_public_order_dwarfs_impl (context)
  221. return context:character():has_region() and context:character():region():public_order() > 40 and context:character():faction():culture() == "wh_main_dwf_dwarfs" and context:character():action_points_remaining_percent() > 5
  222. end
  223.  
  224. events.CharacterEntersGarrison[#events.CharacterEntersGarrison+1] =
  225. function (context)
  226. if wh_main_trig_character_enters_garrison_high_public_order_dwarfs_impl(context) then
  227. effect.trait("wh_main_trait_ruler_personality_dwf_clan", "agent", 1, 4, context)
  228. effect.trait("wh_main_trait_general_government_dwf_lord", "agent", 1, 10, context)
  229. return true
  230. end
  231. return false
  232. end
  233.  
  234. --[[ wh_main_trig_character_enters_garrison_high_public_order_empire_or_bretonnia ]]--
  235.  
  236. function wh_main_trig_character_enters_garrison_high_public_order_empire_or_bretonnia_impl (context)
  237. return context:character():has_region() and context:character():region():public_order() > 40 and (context:character():faction():culture() == "wh_main_emp_empire" or context:character():faction():culture() == "wh_main_brt_bretonnia") and context:character():action_points_remaining_percent() > 5
  238. end
  239.  
  240. events.CharacterEntersGarrison[#events.CharacterEntersGarrison+1] =
  241. function (context)
  242. if wh_main_trig_character_enters_garrison_high_public_order_empire_or_bretonnia_impl(context) then
  243. effect.trait("wh_main_trait_general_government_emp_noble", "agent", 1, 10, context)
  244. return true
  245. end
  246. return false
  247. end
  248.  
  249. --[[ wh_main_trig_character_enters_garrison_high_public_order_greenskins ]]--
  250.  
  251. function wh_main_trig_character_enters_garrison_high_public_order_greenskins_impl (context)
  252. return context:character():has_region() and context:character():region():public_order() > 40 and context:character():faction():culture() == "wh_main_grn_greenskins" and context:character():action_points_remaining_percent() > 5
  253. end
  254.  
  255. events.CharacterEntersGarrison[#events.CharacterEntersGarrison+1] =
  256. function (context)
  257. if wh_main_trig_character_enters_garrison_high_public_order_greenskins_impl(context) then
  258. effect.trait("wh_main_trait_general_government_grn_warboss", "agent", 1, 10, context)
  259. return true
  260. end
  261. return false
  262. end
  263.  
  264. --[[ wh_main_trig_character_faction_has_many_allies_not_horde ]]--
  265.  
  266. function wh_main_trig_character_faction_has_many_allies_not_horde_impl (context)
  267. return context:character():faction():num_allies() >= 3 and context:character():model():turn_number() > 10 and not context:character():faction():is_horde()
  268. end
  269.  
  270. events.CharacterRankUp[#events.CharacterRankUp+1] =
  271. function (context)
  272. if wh_main_trig_character_faction_has_many_allies_not_horde_impl(context) then
  273. effect.trait("wh_main_trait_ruler_government_all_negotiator", "agent", 1, 2, context)
  274. return true
  275. end
  276. return false
  277. end
  278.  
  279. --[[ wh_main_trig_character_faction_is_trade_empire ]]--
  280.  
  281. function wh_main_trig_character_faction_is_trade_empire_impl (context)
  282. return context:character():faction():trade_value_percent() > 25 and context:character():model():turn_number() > 5
  283. end
  284.  
  285. events.CharacterRankUp[#events.CharacterRankUp+1] =
  286. function (context)
  287. if wh_main_trig_character_faction_is_trade_empire_impl(context) then
  288. effect.trait("wh_main_trait_ruler_government_all_negotiator", "agent", 1, 2, context)
  289. return true
  290. end
  291. return false
  292. end
  293.  
  294. --[[ wh_main_trig_character_long_time_in_lands_and_in_city ]]--
  295.  
  296. function wh_main_trig_character_long_time_in_lands_and_in_city_impl (context)
  297. return context:character() and context:character():has_region() and context:character():turns_in_own_regions() >= 10 and context:character():in_settlement() and context:character():model():turn_number() > 1 and context:character():model():turn_number() % 5 == 0
  298. end
  299.  
  300. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  301. function (context)
  302. if wh_main_trig_character_long_time_in_lands_and_in_city_impl(context) then
  303. effect.trait("wh_main_trait_all_personality_all_lazy", "agent", 1, 5, context)
  304. effect.trait("wh_main_trait_general_personality_all_girls", "agent", 1, 5, context)
  305. effect.trait("wh_main_trait_all_personality_all_drink", "agent", 1, 5, context)
  306. return true
  307. end
  308. return false
  309. end
  310.  
  311. --[[ wh_main_trig_character_post_battle_release_chaos ]]--
  312.  
  313. function wh_main_trig_character_post_battle_release_chaos_impl (context)
  314. return char_is_general_with_army(context:character()) and context:character():faction():culture() == "wh_main_chs_chaos"
  315. end
  316.  
  317. events.CharacterPostBattleRelease[#events.CharacterPostBattleRelease+1] =
  318. function (context)
  319. if wh_main_trig_character_post_battle_release_chaos_impl(context) then
  320. effect.trait("wh_main_trait_all_personality_chs_tempter", "agent", 1, 5, context)
  321. return true
  322. end
  323. return false
  324. end
  325.  
  326. --[[ wh_main_trig_character_rank_up_at_peace_not_greenskins ]]--
  327.  
  328. function wh_main_trig_character_rank_up_at_peace_not_greenskins_impl (context)
  329. return not context:character():faction():at_war() and not context:character():faction():culture() == "wh_main_grn_greenskins" and not context:character():faction():is_horde()
  330. end
  331.  
  332. events.CharacterRankUp[#events.CharacterRankUp+1] =
  333. function (context)
  334. if wh_main_trig_character_rank_up_at_peace_not_greenskins_impl(context) then
  335. effect.trait("wh_main_trait_general_government_all_pacifist", "agent", 1, 10, context)
  336. return true
  337. end
  338. return false
  339. end
  340.  
  341. --[[ wh_main_trig_character_rank_up_at_war_not_horde ]]--
  342.  
  343. function wh_main_trig_character_rank_up_at_war_not_horde_impl (context)
  344. return context:character():faction():at_war() and context:character():faction():factions_at_war_with():num_items() > 2 and not context:character():faction():is_horde()
  345. end
  346.  
  347. events.CharacterRankUp[#events.CharacterRankUp+1] =
  348. function (context)
  349. if wh_main_trig_character_rank_up_at_war_not_horde_impl(context) then
  350. effect.trait("wh_main_trait_general_government_all_warmonger", "agent", 1, 10, context)
  351. return true
  352. end
  353. return false
  354. end
  355.  
  356. --[[ wh_main_trig_character_rank_up_high_public_order_player_only_not_horde ]]--
  357.  
  358. function wh_main_trig_character_rank_up_high_public_order_player_only_not_horde_impl (context)
  359. return context:character():has_region() and context:character():region():public_order() >60 and context:character():faction():is_human() and not context:character():faction():is_horde()
  360. end
  361.  
  362. events.CharacterRankUp[#events.CharacterRankUp+1] =
  363. function (context)
  364. if wh_main_trig_character_rank_up_high_public_order_player_only_not_horde_impl(context) then
  365. effect.trait("wh_main_trait_general_government_all_authoritarian", "agent", 1, 10, context)
  366. return true
  367. end
  368. return false
  369. end
  370.  
  371. --[[ wh_main_trig_character_rank_up_low_public_order_player_only_not_horde ]]--
  372.  
  373. function wh_main_trig_character_rank_up_low_public_order_player_only_not_horde_impl (context)
  374. return context:character():has_region() and context:character():region():public_order() <10 and context:character():faction():is_human() and not context:character():faction():is_horde()
  375. end
  376.  
  377. events.CharacterRankUp[#events.CharacterRankUp+1] =
  378. function (context)
  379. if wh_main_trig_character_rank_up_low_public_order_player_only_not_horde_impl(context) then
  380. effect.trait("wh_main_trait_ruler_government_all_taxman", "agent", 1, 1, context)
  381. effect.trait("wh_main_trait_general_status_all_popular", "agent", 1, 10, context)
  382. return true
  383. end
  384. return false
  385. end
  386.  
  387. --[[ wh_main_trig_character_rank_up_region_high_corruption_emp ]]--
  388.  
  389. function wh_main_trig_character_rank_up_region_high_corruption_emp_impl (context)
  390. return context:character():has_region() and context:character():faction():subculture() == "wh_main_sc_emp_empire" and context:character():region():religion_proportion("wh_main_religion_untainted") < 0.7
  391. end
  392.  
  393. events.CharacterRankUp[#events.CharacterRankUp+1] =
  394. function (context)
  395. if wh_main_trig_character_rank_up_region_high_corruption_emp_impl(context) then
  396. effect.trait("wh_main_trait_not_priest_personality_monotheist_religious", "agent", 1, 6, context)
  397. return true
  398. end
  399. return false
  400. end
  401.  
  402. --[[ wh_main_trig_character_rank_up_region_high_corruption_not_vmp_chs ]]--
  403.  
  404. function wh_main_trig_character_rank_up_region_high_corruption_not_vmp_chs_impl (context)
  405. return context:character():has_region() and (context:character():faction():culture() ~= "wh_main_vmp_vampire_counts" and context:character():faction():culture() ~= "wh_main_chs_chaos") and context:character():region():religion_proportion("wh_main_religion_untainted") < 0.7
  406. end
  407.  
  408. events.CharacterRankUp[#events.CharacterRankUp+1] =
  409. function (context)
  410. if wh_main_trig_character_rank_up_region_high_corruption_not_vmp_chs_impl(context) then
  411. effect.trait("wh_main_trait_not_priest_personality_polytheist_religious", "agent", 1, 6, context)
  412. return true
  413. end
  414. return false
  415. end
  416.  
  417. --[[ wh_main_trig_character_won_battle_vampire_counts ]]--
  418.  
  419. function wh_main_trig_character_won_battle_vampire_counts_impl (context)
  420. return context:character():faction():culture() == "wh_main_vmp_vampire_counts" and context:character():won_battle()
  421. end
  422.  
  423. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  424. function (context)
  425. if wh_main_trig_character_won_battle_vampire_counts_impl(context) then
  426. effect.trait("wh_main_trait_all_personality_vmp_fear_incarnate", "agent", 1, 5, context)
  427. return true
  428. end
  429. return false
  430. end
  431.  
  432. --[[ wh_main_trig_chs_exalted_hero_unit_killer ]]--
  433.  
  434. function wh_main_trig_chs_exalted_hero_unit_killer_impl (context)
  435. return context:character():character_subtype("chs_exalted_hero") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  436. end
  437.  
  438. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  439. function (context)
  440. if wh_main_trig_chs_exalted_hero_unit_killer_impl(context) then
  441. effect.trait("wh_main_trait_chs_exalted_hero_unit_killer", "agent", 1, 100, context)
  442. return true
  443. end
  444. return false
  445. end
  446.  
  447. --[[ wh_main_trig_chs_lord_character_killer ]]--
  448.  
  449. function wh_main_trig_chs_lord_character_killer_impl (context)
  450. return context:character():character_subtype("chs_lord") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  451. end
  452.  
  453. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  454. function (context)
  455. if wh_main_trig_chs_lord_character_killer_impl(context) then
  456. effect.trait("wh_main_trait_chs_lord_character_killer", "agent", 1, 100, context)
  457. return true
  458. end
  459. return false
  460. end
  461.  
  462. --[[ wh_main_trig_chs_sorcerer_caster ]]--
  463.  
  464. function wh_main_trig_chs_sorcerer_caster_impl (context)
  465. return (context:character():character_subtype("chs_sorcerer_death") or context:character():character_subtype("chs_sorcerer_metal") or context:character():character_subtype("chs_sorcerer_fire")) and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  466. end
  467.  
  468. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  469. function (context)
  470. if wh_main_trig_chs_sorcerer_caster_impl(context) then
  471. effect.trait("wh_main_trait_chs_sorcerer_caster", "agent", 1, 100, context)
  472. return true
  473. end
  474. return false
  475. end
  476.  
  477. --[[ wh_main_trig_chs_sorcerer_lord_caster ]]--
  478.  
  479. function wh_main_trig_chs_sorcerer_lord_caster_impl (context)
  480. return (context:character():character_subtype("chs_sorcerer_lord_death") or context:character():character_subtype("chs_sorcerer_lord_metal") or context:character():character_subtype("chs_sorcerer_lord_fire")) and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  481. end
  482.  
  483. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  484. function (context)
  485. if wh_main_trig_chs_sorcerer_lord_caster_impl(context) then
  486. effect.trait("wh_main_trait_chs_sorcerer_lord_caster", "agent", 1, 100, context)
  487. return true
  488. end
  489. return false
  490. end
  491.  
  492. --[[ wh_main_trig_dignitary_action_success_assist_army ]]--
  493.  
  494. function wh_main_trig_dignitary_action_success_assist_army_impl (context)
  495. return context:character():has_skill("wh_main_skill_all_dignitary_campaign_provider") and context:character():is_embedded_in_military_force()
  496. end
  497.  
  498. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  499. function (context)
  500. if wh_main_trig_dignitary_action_success_assist_army_impl(context) then
  501. effect.trait("wh_main_trait_action_dignitary_assist_army", "agent", 1, 5, context)
  502. return true
  503. end
  504. return false
  505. end
  506.  
  507. --[[ wh_main_trig_dignitary_action_success_assist_province ]]--
  508.  
  509. function wh_main_trig_dignitary_action_success_assist_province_impl (context)
  510. return context:character():character_type("dignitary") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name()
  511. end
  512.  
  513. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  514. function (context)
  515. if wh_main_trig_dignitary_action_success_assist_province_impl(context) then
  516. effect.trait("wh_main_trait_action_dignitary_assist_province", "agent", 1, 5, context)
  517. return true
  518. end
  519. return false
  520. end
  521.  
  522. --[[ wh_main_trig_dignitary_action_success_hinder_army ]]--
  523.  
  524. function wh_main_trig_dignitary_action_success_hinder_army_impl (context)
  525. return context:character():character_type("dignitary") and context:mission_result_success() and context:agent_action_key() == "wh_main_agent_action_dignitary_hinder_army"
  526. end
  527.  
  528. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  529. function (context)
  530. if wh_main_trig_dignitary_action_success_hinder_army_impl(context) then
  531. effect.trait("wh_main_trait_action_dignitary_hinder_army", "agent", 1, 15, context)
  532. return true
  533. end
  534. return false
  535. end
  536.  
  537. --[[ wh_main_trig_dignitary_action_success_hinder_character ]]--
  538.  
  539. function wh_main_trig_dignitary_action_success_hinder_character_impl (context)
  540. return context:character():character_type("dignitary") and (context:mission_result_success() or context:mission_result_critial_success()) and context:agent_action_key() == "wh_main_agent_action_dignitary_hinder_character"
  541. end
  542.  
  543. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  544. function (context)
  545. if wh_main_trig_dignitary_action_success_hinder_character_impl(context) then
  546. effect.trait("wh_main_trait_action_dignitary_hinder_character", "agent", 1, 25, context)
  547. return true
  548. end
  549. return false
  550. end
  551.  
  552. --[[ wh_main_trig_dignitary_action_success_hinder_province ]]--
  553.  
  554. function wh_main_trig_dignitary_action_success_hinder_province_impl (context)
  555. return context:character():character_type("dignitary") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() ~= context:character():region():owning_faction():name()
  556. end
  557.  
  558. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  559. function (context)
  560. if wh_main_trig_dignitary_action_success_hinder_province_impl(context) then
  561. effect.trait("wh_main_trait_action_dignitary_hinder_province", "agent", 1, 5, context)
  562. return true
  563. end
  564. return false
  565. end
  566.  
  567. --[[ wh_main_trig_dignitary_action_success_hinder_settlement ]]--
  568.  
  569. function wh_main_trig_dignitary_action_success_hinder_settlement_impl (context)
  570. return context:character():character_type("dignitary") and context:mission_result_success()
  571. end
  572.  
  573. events.CharacterGarrisonTargetAction[#events.CharacterGarrisonTargetAction+1] =
  574. function (context)
  575. if wh_main_trig_dignitary_action_success_hinder_settlement_impl(context) then
  576. effect.trait("wh_main_trait_action_dignitary_hinder_settlement", "agent", 1, 15, context)
  577. return true
  578. end
  579. return false
  580. end
  581.  
  582. --[[ wh_main_trig_dwf_engineer_caster ]]--
  583.  
  584. function wh_main_trig_dwf_engineer_caster_impl (context)
  585. return context:character():character_subtype("dwf_master_engineer") and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  586. end
  587.  
  588. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  589. function (context)
  590. if wh_main_trig_dwf_engineer_caster_impl(context) then
  591. effect.trait("wh_main_trait_dwf_engineer_caster", "agent", 1, 100, context)
  592. return true
  593. end
  594. return false
  595. end
  596.  
  597. --[[ wh_main_trig_dwf_lord_tank ]]--
  598.  
  599. function wh_main_trig_dwf_lord_tank_impl (context)
  600. return context:character():character_subtype("default") and context:character():faction():culture() == "wh_main_dwf_dwarfs" and char_is_general(context:character()) and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  601. end
  602.  
  603. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  604. function (context)
  605. if wh_main_trig_dwf_lord_tank_impl(context) then
  606. effect.trait("wh_main_trait_dwf_lord_tank", "agent", 1, 100, context)
  607. return true
  608. end
  609. return false
  610. end
  611.  
  612. --[[ wh_main_trig_dwf_runesmith_caster ]]--
  613.  
  614. function wh_main_trig_dwf_runesmith_caster_impl (context)
  615. return context:character():character_subtype("dwf_runesmith") and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  616. end
  617.  
  618. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  619. function (context)
  620. if wh_main_trig_dwf_runesmith_caster_impl(context) then
  621. effect.trait("wh_main_trait_dwf_runesmith_caster", "agent", 1, 100, context)
  622. return true
  623. end
  624. return false
  625. end
  626.  
  627. --[[ wh_main_trig_dwf_thane_unit_killer ]]--
  628.  
  629. function wh_main_trig_dwf_thane_unit_killer_impl (context)
  630. return context:character():character_subtype("dwf_thane") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  631. end
  632.  
  633. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  634. function (context)
  635. if wh_main_trig_dwf_thane_unit_killer_impl(context) then
  636. effect.trait("wh_main_trait_dwf_thane_unit_killer", "agent", 1, 100, context)
  637. return true
  638. end
  639. return false
  640. end
  641.  
  642. --[[ wh_main_trig_emp_battle_wizard_caster ]]--
  643.  
  644. function wh_main_trig_emp_battle_wizard_caster_impl (context)
  645. return (context:character():character_subtype("emp_celestial_wizard") or context:character():character_subtype("emp_bright_wizard") or context:character():character_subtype("emp_light_wizard")) and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  646. end
  647.  
  648. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  649. function (context)
  650. if wh_main_trig_emp_battle_wizard_caster_impl(context) then
  651. effect.trait("wh_main_trait_emp_battle_wizard_caster", "agent", 1, 100, context)
  652. return true
  653. end
  654. return false
  655. end
  656.  
  657. --[[ wh_main_trig_emp_captain_unit_killer ]]--
  658.  
  659. function wh_main_trig_emp_captain_unit_killer_impl (context)
  660. return context:character():character_subtype("emp_captain") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  661. end
  662.  
  663. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  664. function (context)
  665. if wh_main_trig_emp_captain_unit_killer_impl(context) then
  666. effect.trait("wh_main_trait_emp_captain_unit_killer", "agent", 1, 100, context)
  667. return true
  668. end
  669. return false
  670. end
  671.  
  672. --[[ wh_main_trig_emp_general_tank ]]--
  673.  
  674. function wh_main_trig_emp_general_tank_impl (context)
  675. return context:character():character_subtype("default") and context:character():faction():culture() == "wh_main_emp_empire" and char_is_general(context:character()) and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  676. end
  677.  
  678. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  679. function (context)
  680. if wh_main_trig_emp_general_tank_impl(context) then
  681. effect.trait("wh_main_trait_emp_general_tank", "agent", 1, 100, context)
  682. return true
  683. end
  684. return false
  685. end
  686.  
  687. --[[ wh_main_trig_emp_warrior_priest_caster ]]--
  688.  
  689. function wh_main_trig_emp_warrior_priest_caster_impl (context)
  690. return context:character():character_subtype("emp_warrior_priest") and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  691. end
  692.  
  693. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  694. function (context)
  695. if wh_main_trig_emp_warrior_priest_caster_impl(context) then
  696. effect.trait("wh_main_trait_emp_warrior_priest_caster", "agent", 1, 100, context)
  697. return true
  698. end
  699. return false
  700. end
  701.  
  702. --[[ wh_main_trig_emp_witch_hunter_character_killer ]]--
  703.  
  704. function wh_main_trig_emp_witch_hunter_character_killer_impl (context)
  705. return context:character():character_subtype("emp_witch_hunter") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  706. end
  707.  
  708. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  709. function (context)
  710. if wh_main_trig_emp_witch_hunter_character_killer_impl(context) then
  711. effect.trait("wh_main_trait_emp_witch_hunter_character_killer", "agent", 1, 100, context)
  712. return true
  713. end
  714. return false
  715. end
  716.  
  717. --[[ wh_main_trig_engineer_action_success_assist_army ]]--
  718.  
  719. function wh_main_trig_engineer_action_success_assist_army_impl (context)
  720. return context:character():has_skill("wh_main_skill_dwf_engineer_campaign_logistical_engineer") and context:character():is_embedded_in_military_force()
  721. end
  722.  
  723. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  724. function (context)
  725. if wh_main_trig_engineer_action_success_assist_army_impl(context) then
  726. effect.trait("wh_main_trait_action_engineer_assist_army", "agent", 1, 5, context)
  727. return true
  728. end
  729. return false
  730. end
  731.  
  732. --[[ wh_main_trig_engineer_action_success_assist_province ]]--
  733.  
  734. function wh_main_trig_engineer_action_success_assist_province_impl (context)
  735. return context:character():character_type("engineer") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name()
  736. end
  737.  
  738. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  739. function (context)
  740. if wh_main_trig_engineer_action_success_assist_province_impl(context) then
  741. effect.trait("wh_main_trait_action_engineer_assist_province", "agent", 1, 5, context)
  742. return true
  743. end
  744. return false
  745. end
  746.  
  747. --[[ wh_main_trig_engineer_action_success_hinder_army ]]--
  748.  
  749. function wh_main_trig_engineer_action_success_hinder_army_impl (context)
  750. return context:character():character_type("engineer") and context:mission_result_success() and context:agent_action_key() == "wh_main_agent_action_engineer_hinder_army"
  751. end
  752.  
  753. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  754. function (context)
  755. if wh_main_trig_engineer_action_success_hinder_army_impl(context) then
  756. effect.trait("wh_main_trait_action_engineer_hinder_army", "agent", 1, 15, context)
  757. return true
  758. end
  759. return false
  760. end
  761.  
  762. --[[ wh_main_trig_engineer_action_success_hinder_character ]]--
  763.  
  764. function wh_main_trig_engineer_action_success_hinder_character_impl (context)
  765. return context:character():character_type("engineer") and (context:mission_result_success() or context:mission_result_critial_success()) and context:agent_action_key() == "wh_main_agent_action_engineer_hinder_character"
  766. end
  767.  
  768. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  769. function (context)
  770. if wh_main_trig_engineer_action_success_hinder_character_impl(context) then
  771. effect.trait("wh_main_trait_action_engineer_hinder_character", "agent", 1, 25, context)
  772. return true
  773. end
  774. return false
  775. end
  776.  
  777. --[[ wh_main_trig_engineer_action_success_hinder_province ]]--
  778.  
  779. function wh_main_trig_engineer_action_success_hinder_province_impl (context)
  780. return context:character():character_type("engineer") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() ~= context:character():region():owning_faction():name()
  781. end
  782.  
  783. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  784. function (context)
  785. if wh_main_trig_engineer_action_success_hinder_province_impl(context) then
  786. effect.trait("wh_main_trait_action_engineer_hinder_province", "agent", 1, 5, context)
  787. return true
  788. end
  789. return false
  790. end
  791.  
  792. --[[ wh_main_trig_engineer_action_success_hinder_settlement ]]--
  793.  
  794. function wh_main_trig_engineer_action_success_hinder_settlement_impl (context)
  795. return context:character():character_type("engineer") and context:mission_result_success()
  796. end
  797.  
  798. events.CharacterGarrisonTargetAction[#events.CharacterGarrisonTargetAction+1] =
  799. function (context)
  800. if wh_main_trig_engineer_action_success_hinder_settlement_impl(context) then
  801. effect.trait("wh_main_trait_action_engineer_hinder_settlement", "agent", 1, 15, context)
  802. return true
  803. end
  804. return false
  805. end
  806.  
  807. --[[ wh_main_trig_general_10_turns_enemy_territory_chaos ]]--
  808.  
  809. function wh_main_trig_general_10_turns_enemy_territory_chaos_impl (context)
  810. return context:character():faction():culture() == "wh_main_chs_chaos" and context:character():has_region() and context:character():turns_in_enemy_regions() >= 1 and context:character():model():turn_number() > 1 and context:character():model():turn_number() % 5 == 0
  811. end
  812.  
  813. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  814. function (context)
  815. if wh_main_trig_general_10_turns_enemy_territory_chaos_impl(context) then
  816. effect.trait("wh_main_trait_all_personality_chs_schemer", "agent", 1, 6, context)
  817. effect.trait("wh_main_trait_all_personality_chs_words", "agent", 1, 5, context)
  818. return true
  819. end
  820. return false
  821. end
  822.  
  823. --[[ wh_main_trig_general_10_turns_enemy_territory_not_horde ]]--
  824.  
  825. function wh_main_trig_general_10_turns_enemy_territory_not_horde_impl (context)
  826. return char_is_general(context:character()) and context:character():has_region() and context:character():turns_in_enemy_regions() >= 1 and context:character():model():turn_number() > 1 and context:character():model():turn_number() % 5 == 0 and not context:character():faction():is_horde()
  827. end
  828.  
  829. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  830. function (context)
  831. if wh_main_trig_general_10_turns_enemy_territory_not_horde_impl(context) then
  832. effect.trait("wh_main_trait_general_government_all_authoritarian", "agent", 1, 10, context)
  833. return true
  834. end
  835. return false
  836. end
  837.  
  838. --[[ wh_main_trig_general_10_turns_enemy_territory_vampire_counts ]]--
  839.  
  840. function wh_main_trig_general_10_turns_enemy_territory_vampire_counts_impl (context)
  841. return context:character():character_subtype("vmp_necromancer") and context:character():has_region() and context:character():turns_in_enemy_regions() >= 1 and context:character():model():turn_number() > 1 and context:character():model():turn_number() % 5 == 0
  842. end
  843.  
  844. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  845. function (context)
  846. if wh_main_trig_general_10_turns_enemy_territory_vampire_counts_impl(context) then
  847. effect.trait("wh_main_trait_wizard_personality_vmp_conniving", "agent", 1, 5, context)
  848. effect.trait("wh_main_trait_all_personality_vmp_dark_majesty", "agent", 1, 5, context)
  849. return true
  850. end
  851. return false
  852. end
  853.  
  854. --[[ wh_main_trig_general_constructed_building_sch_agriculture_not_horde ]]--
  855.  
  856. function wh_main_trig_general_constructed_building_sch_agriculture_not_horde_impl (context)
  857. return context:character():has_region() and context:character():turns_in_own_regions() > 1 and (region_has_superchain(context:character():region(), "wh_main_sch_dwarf_farm") or region_has_superchain(context:character():region(), "wh_main_sch_greenskin_farm") or region_has_superchain(context:character():region(), "wh_main_sch_human_farm_basic")) and not context:character():faction():is_horde()
  858. end
  859.  
  860. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  861. function (context)
  862. if wh_main_trig_general_constructed_building_sch_agriculture_not_horde_impl(context) then
  863. effect.trait("wh_main_trait_general_government_all_farmer", "agent", 1, 5, context)
  864. return true
  865. end
  866. return false
  867. end
  868.  
  869. --[[ wh_main_trig_general_constructed_building_sch_port_empire ]]--
  870.  
  871. function wh_main_trig_general_constructed_building_sch_port_empire_impl (context)
  872. return context:character():has_region() and context:character():turns_in_own_regions() > 1 and region_has_superchain(context:character():region(), "wh_main_sch_port") and context:character():faction():subculture() == "wh_main_sc_emp_empire"
  873. end
  874.  
  875. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  876. function (context)
  877. if wh_main_trig_general_constructed_building_sch_port_empire_impl(context) then
  878. effect.trait("wh_main_trait_general_government_all_trader", "agent", 1, 13, context)
  879. return true
  880. end
  881. return false
  882. end
  883.  
  884. --[[ wh_main_trig_general_entered_settlement_high_public_order ]]--
  885.  
  886. function wh_main_trig_general_entered_settlement_high_public_order_impl (context)
  887. return context:character():has_region() and char_is_general(context:character()) and context:character():region():public_order() >= 80.0 and context:character():action_points_remaining_percent() > 5
  888. end
  889.  
  890. events.CharacterEntersGarrison[#events.CharacterEntersGarrison+1] =
  891. function (context)
  892. if wh_main_trig_general_entered_settlement_high_public_order_impl(context) then
  893. return true
  894. end
  895. return false
  896. end
  897.  
  898. --[[ wh_main_trig_general_entered_settlement_low_public_order_player_only_not_horde ]]--
  899.  
  900. function wh_main_trig_general_entered_settlement_low_public_order_player_only_not_horde_impl (context)
  901. return context:character():has_region() and char_is_general(context:character()) and context:character():region():public_order() <= 1.0 and context:character():faction():is_human() and not context:character():faction():is_horde() and context:character():action_points_remaining_percent() > 5
  902. end
  903.  
  904. events.CharacterEntersGarrison[#events.CharacterEntersGarrison+1] =
  905. function (context)
  906. if wh_main_trig_general_entered_settlement_low_public_order_player_only_not_horde_impl(context) then
  907. return true
  908. end
  909. return false
  910. end
  911.  
  912. --[[ wh_main_trig_general_faction_is_losing_money_player_only_not_horde_not_vmp_not_grn ]]--
  913.  
  914. function wh_main_trig_general_faction_is_losing_money_player_only_not_horde_not_vmp_not_grn_impl (context)
  915. return context:character():faction():losing_money() and context:character():faction():is_human() and context:character():model():turn_number() > 5 and not context:character():faction():is_horde() and context:character():faction():culture() ~= "wh_main_vmp_vampire_counts" and context:character():faction():culture() ~= "wh_main_grn_greenskins"
  916. end
  917.  
  918. events.CharacterRankUp[#events.CharacterRankUp+1] =
  919. function (context)
  920. if wh_main_trig_general_faction_is_losing_money_player_only_not_horde_not_vmp_not_grn_impl(context) then
  921. effect.trait("wh_main_trait_ruler_personality_all_spender", "agent", 1, 10, context)
  922. return true
  923. end
  924. return false
  925. end
  926.  
  927. --[[ wh_main_trig_general_faction_is_rich_player_only_not_horde ]]--
  928.  
  929. function wh_main_trig_general_faction_is_rich_player_only_not_horde_impl (context)
  930. return context:character():faction():treasury() > 25000 and context:character():faction():is_human() and context:character():model():turn_number() > 10 and not context:character():faction():is_horde()
  931. end
  932.  
  933. events.CharacterRankUp[#events.CharacterRankUp+1] =
  934. function (context)
  935. if wh_main_trig_general_faction_is_rich_player_only_not_horde_impl(context) then
  936. effect.trait("wh_main_trait_ruler_personality_all_miser", "agent", 1, 10, context)
  937. return true
  938. end
  939. return false
  940. end
  941.  
  942. --[[ wh_main_trig_general_fought_battle_against_chaos_not_chaos ]]--
  943.  
  944. function wh_main_trig_general_fought_battle_against_chaos_not_chaos_impl (context)
  945. return context:character():faction():culture() ~= "wh_main_chs_chaos" and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_chs_chaos") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_chs_chaos")
  946. end
  947.  
  948. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  949. function (context)
  950. if wh_main_trig_general_fought_battle_against_chaos_not_chaos_impl(context) then
  951. effect.trait("wh_main_trait_all_personality_all_hates_chaos", "agent", 1, 10, context)
  952. effect.trait("wh_main_trait_all_personality_all_likes_chaos", "agent", 1, 10, context)
  953. return true
  954. end
  955. return false
  956. end
  957.  
  958. --[[ wh_main_trig_general_fought_battle_against_dwarfs_not_dwarfs ]]--
  959.  
  960. function wh_main_trig_general_fought_battle_against_dwarfs_not_dwarfs_impl (context)
  961. return context:character():faction():culture() ~= "wh_main_dwf_dwarfs" and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_dwf_dwarfs") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_dwf_dwarfs")
  962. end
  963.  
  964. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  965. function (context)
  966. if wh_main_trig_general_fought_battle_against_dwarfs_not_dwarfs_impl(context) then
  967. effect.trait("wh_main_trait_all_personality_all_hates_dwarfs", "agent", 1, 10, context)
  968. return true
  969. end
  970. return false
  971. end
  972.  
  973. --[[ wh_main_trig_general_fought_battle_against_dwarfs_not_dwarfs_chaos ]]--
  974.  
  975. function wh_main_trig_general_fought_battle_against_dwarfs_not_dwarfs_chaos_impl (context)
  976. return (context:character():faction():culture() ~= "wh_main_dwf_dwarfs" and context:character():faction():culture() ~= "wh_main_chs_chaos") and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_dwf_dwarfs") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_dwf_dwarfs")
  977. end
  978.  
  979. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  980. function (context)
  981. if wh_main_trig_general_fought_battle_against_dwarfs_not_dwarfs_chaos_impl(context) then
  982. effect.trait("wh_main_trait_all_personality_all_likes_dwarfs", "agent", 1, 10, context)
  983. return true
  984. end
  985. return false
  986. end
  987.  
  988. --[[ wh_main_trig_general_fought_battle_against_greenskins_dwarfs_not_faction_leader ]]--
  989.  
  990. function wh_main_trig_general_fought_battle_against_greenskins_dwarfs_not_faction_leader_impl (context)
  991. return not context:character():is_faction_leader() and context:character():faction():culture() == "wh_main_dwf_dwarfs" and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_grn_greenskins") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_grn_greenskins")
  992. end
  993.  
  994. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  995. function (context)
  996. if wh_main_trig_general_fought_battle_against_greenskins_dwarfs_not_faction_leader_impl(context) then
  997. effect.trait("wh_main_trait_all_personality_all_likes_greenskins", "agent", 1, 3, context)
  998. return true
  999. end
  1000. return false
  1001. end
  1002.  
  1003. --[[ wh_main_trig_general_fought_battle_against_greenskins_not_greenskins ]]--
  1004.  
  1005. function wh_main_trig_general_fought_battle_against_greenskins_not_greenskins_impl (context)
  1006. return context:character():faction():culture() ~= "wh_main_grn_greenskins" and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_grn_greenskins") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_grn_greenskins")
  1007. end
  1008.  
  1009. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1010. function (context)
  1011. if wh_main_trig_general_fought_battle_against_greenskins_not_greenskins_impl(context) then
  1012. effect.trait("wh_main_trait_all_personality_all_hates_greenskins", "agent", 1, 10, context)
  1013. return true
  1014. end
  1015. return false
  1016. end
  1017.  
  1018. --[[ wh_main_trig_general_fought_battle_against_greenskins_not_greenskins_chaos_dwarfs ]]--
  1019.  
  1020. function wh_main_trig_general_fought_battle_against_greenskins_not_greenskins_chaos_dwarfs_impl (context)
  1021. return (context:character():faction():culture() ~= "wh_main_dwf_dwarfs" and context:character():faction():culture() ~= "wh_main_chs_chaos" and context:character():faction():culture() ~= "wh_main_grn_greenskins") and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_grn_greenskins") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_grn_greenskins")
  1022. end
  1023.  
  1024. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1025. function (context)
  1026. if wh_main_trig_general_fought_battle_against_greenskins_not_greenskins_chaos_dwarfs_impl(context) then
  1027. effect.trait("wh_main_trait_all_personality_all_likes_greenskins", "agent", 1, 10, context)
  1028. return true
  1029. end
  1030. return false
  1031. end
  1032.  
  1033. --[[ wh_main_trig_general_fought_battle_against_men_not_men ]]--
  1034.  
  1035. function wh_main_trig_general_fought_battle_against_men_not_men_impl (context)
  1036. return (context:character():faction():culture() ~= "wh_main_emp_empire" and context:character():faction():culture() ~= "wh_main_brt_bretonnia") and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and (context:pending_battle():defender():faction():culture() == "wh_main_emp_empire" or context:pending_battle():defender():faction():culture() == "wh_main_brt_bretonnia")) or (context:pending_battle():defender() == context:character() and (context:pending_battle():attacker():faction():culture() == "wh_main_emp_empire" or context:pending_battle():attacker():faction():culture() == "wh_main_brt_bretonnia"))
  1037. end
  1038.  
  1039. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1040. function (context)
  1041. if wh_main_trig_general_fought_battle_against_men_not_men_impl(context) then
  1042. effect.trait("wh_main_trait_all_personality_all_hates_men", "agent", 1, 10, context)
  1043. return true
  1044. end
  1045. return false
  1046. end
  1047.  
  1048. --[[ wh_main_trig_general_fought_battle_against_men_not_men_chaos ]]--
  1049.  
  1050. function wh_main_trig_general_fought_battle_against_men_not_men_chaos_impl (context)
  1051. return (context:character():faction():culture() ~= "wh_main_emp_empire" and context:character():faction():culture() ~= "wh_main_brt_bretonnia" and context:character():faction():culture() ~= "wh_main_chs_chaos") and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and (context:pending_battle():defender():faction():culture() == "wh_main_emp_empire" or context:pending_battle():defender():faction():culture() == "wh_main_brt_bretonnia")) or (context:pending_battle():defender() == context:character() and (context:pending_battle():attacker():faction():culture() == "wh_main_emp_empire" or context:pending_battle():attacker():faction():culture() == "wh_main_brt_bretonnia"))
  1052. end
  1053.  
  1054. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1055. function (context)
  1056. if wh_main_trig_general_fought_battle_against_men_not_men_chaos_impl(context) then
  1057. effect.trait("wh_main_trait_all_personality_all_likes_men", "agent", 1, 10, context)
  1058. return true
  1059. end
  1060. return false
  1061. end
  1062.  
  1063. --[[ wh_main_trig_general_fought_battle_against_vampire_counts_not_vampire_counts ]]--
  1064.  
  1065. function wh_main_trig_general_fought_battle_against_vampire_counts_not_vampire_counts_impl (context)
  1066. return context:character():faction():culture() ~= "wh_main_vmp_vampire_counts" and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_vmp_vampire_counts") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_vmp_vampire_counts")
  1067. end
  1068.  
  1069. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1070. function (context)
  1071. if wh_main_trig_general_fought_battle_against_vampire_counts_not_vampire_counts_impl(context) then
  1072. effect.trait("wh_main_trait_all_personality_all_hates_vampire_counts", "agent", 1, 10, context)
  1073. return true
  1074. end
  1075. return false
  1076. end
  1077.  
  1078. --[[ wh_main_trig_general_fought_battle_against_vampire_counts_not_vampire_counts_chaos ]]--
  1079.  
  1080. function wh_main_trig_general_fought_battle_against_vampire_counts_not_vampire_counts_chaos_impl (context)
  1081. return (context:character():faction():culture() ~= "wh_main_vmp_vampire_counts" and context:character():faction():culture() ~= "wh_main_chs_chaos") and char_is_general(context:character()) and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_vmp_vampire_counts") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_vmp_vampire_counts")
  1082. end
  1083.  
  1084. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1085. function (context)
  1086. if wh_main_trig_general_fought_battle_against_vampire_counts_not_vampire_counts_chaos_impl(context) then
  1087. effect.trait("wh_main_trait_all_personality_all_likes_vampire_counts", "agent", 1, 10, context)
  1088. return true
  1089. end
  1090. return false
  1091. end
  1092.  
  1093. --[[ wh_main_trig_general_fought_in_battle ]]--
  1094.  
  1095. function wh_main_trig_general_fought_in_battle_impl (context)
  1096. return char_is_general_with_army(context:character()) and ( (context:pending_battle():attacker() == context:character() and context:pending_battle():attacker_commander_fought_in_melee()) or (context:pending_battle():defender() == context:character() and context:pending_battle():defender_commander_fought_in_melee()) )
  1097. end
  1098.  
  1099. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1100. function (context)
  1101. if wh_main_trig_general_fought_in_battle_impl(context) then
  1102. effect.trait("wh_main_trait_all_personality_all_energetic", "agent", 1, 5, context)
  1103. effect.trait("wh_main_trait_general_personality_all_bravery", "agent", 1, 6, context)
  1104. effect.trait("wh_main_trait_general_military_barbarian_berserker", "agent", 1, 6, context)
  1105. effect.trait("wh_main_trait_general_military_all_fighter", "agent", 1, 6, context)
  1106. return true
  1107. end
  1108. return false
  1109. end
  1110.  
  1111. --[[ wh_main_trig_general_fought_in_battle_has_trait_lazy ]]--
  1112.  
  1113. function wh_main_trig_general_fought_in_battle_has_trait_lazy_impl (context)
  1114. return char_is_general_with_army(context:character()) and ((context:pending_battle():attacker() == context:character() and context:pending_battle():attacker_commander_fought_in_melee()) or (context:pending_battle():defender() == context:character() and context:pending_battle():defender_commander_fought_in_melee())) and context:character():has_trait("wh_main_trait_all_personality_all_lazy")
  1115. end
  1116.  
  1117. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1118. function (context)
  1119. if wh_main_trig_general_fought_in_battle_has_trait_lazy_impl(context) then
  1120. effect.trait("wh_main_trait_all_personality_all_energetic", "agent", 1, 85, context)
  1121. return true
  1122. end
  1123. return false
  1124. end
  1125.  
  1126. --[[ wh_main_trig_general_has_trait_mad ]]--
  1127.  
  1128. function wh_main_trig_general_has_trait_mad_impl (context)
  1129. return context:character():has_trait("wh_main_trait_general_personality_all_mad") and context:character():model():turn_number() > 10
  1130. end
  1131.  
  1132. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  1133. function (context)
  1134. if wh_main_trig_general_has_trait_mad_impl(context) then
  1135. effect.trait("wh_main_trait_general_personality_all_mad", "agent", 1, 2, context)
  1136. return true
  1137. end
  1138. return false
  1139. end
  1140.  
  1141. --[[ wh_main_trig_general_land_lost_battle ]]--
  1142.  
  1143. function wh_main_trig_general_land_lost_battle_impl (context)
  1144. return char_is_general_with_army(context:character()) and not context:character():won_battle()
  1145. end
  1146.  
  1147. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1148. function (context)
  1149. if wh_main_trig_general_land_lost_battle_impl(context) then
  1150. effect.trait("wh_main_trait_all_personality_all_lewd", "agent", 1, 1, context)
  1151. effect.trait("wh_trait_general_personality_all_sick", "agent", 1, 5, context)
  1152. effect.trait("wh_main_trait_all_personality_all_sober", "agent", 1, 10, context)
  1153. effect.trait("wh_main_trait_all_personality_all_lucky", "agent", 1, 5, context)
  1154. return true
  1155. end
  1156. return false
  1157. end
  1158.  
  1159. --[[ wh_main_trig_general_land_lost_battle_as_dwarfs ]]--
  1160.  
  1161. function wh_main_trig_general_land_lost_battle_as_dwarfs_impl (context)
  1162. return context:character():faction():culture() == "wh_main_dwf_dwarfs" and not context:character():won_battle()
  1163. end
  1164.  
  1165. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1166. function (context)
  1167. if wh_main_trig_general_land_lost_battle_as_dwarfs_impl(context) then
  1168. effect.trait("wh_main_trait_ruler_personality_dwf_grudge", "agent", 1, 10, context)
  1169. effect.trait("wh_main_trait_all_personality_dwf_grumbler", "agent", 1, 10, context)
  1170. return true
  1171. end
  1172. return false
  1173. end
  1174.  
  1175. --[[ wh_main_trig_general_land_lost_battle_as_greenskins ]]--
  1176.  
  1177. function wh_main_trig_general_land_lost_battle_as_greenskins_impl (context)
  1178. return context:character():faction():culture() == "wh_main_grn_greenskins" and not context:character():won_battle()
  1179. end
  1180.  
  1181. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1182. function (context)
  1183. if wh_main_trig_general_land_lost_battle_as_greenskins_impl(context) then
  1184. effect.trait("wh_main_trait_all_personality_grn_bragger", "agent", 1, 4, context)
  1185. effect.trait("wh_main_trait_general_personality_grn_bully", "agent", 1, 4, context)
  1186. effect.trait("wh_main_trait_all_personality_grn_gloomy", "agent", 1, 12, context)
  1187. return true
  1188. end
  1189. return false
  1190. end
  1191.  
  1192. --[[ wh_main_trig_general_land_lost_battle_as_vampire_counts ]]--
  1193.  
  1194. function wh_main_trig_general_land_lost_battle_as_vampire_counts_impl (context)
  1195. return context:character():faction():culture() == "wh_main_vmp_vampire_counts"and not context:character():won_battle()
  1196. end
  1197.  
  1198. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1199. function (context)
  1200. if wh_main_trig_general_land_lost_battle_as_vampire_counts_impl(context) then
  1201. effect.trait("wh_main_trait_all_personality_vmp_insane", "agent", 1, 12, context)
  1202. return true
  1203. end
  1204. return false
  1205. end
  1206.  
  1207. --[[ wh_main_trig_general_long_time_in_lands_and_in_city_not_horde_not_leader ]]--
  1208.  
  1209. function wh_main_trig_general_long_time_in_lands_and_in_city_not_horde_not_leader_impl (context)
  1210. return char_is_general(context:character()) and context:character():has_region() and context:character():turns_in_own_regions() >= 10 and context:character():in_settlement() and context:character():model():turn_number() > 1 and context:character():model():turn_number() % 5 == 0 and not context:character():faction():is_horde() and not context:character():is_faction_leader()
  1211. end
  1212.  
  1213. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  1214. function (context)
  1215. if wh_main_trig_general_long_time_in_lands_and_in_city_not_horde_not_leader_impl(context) then
  1216. effect.trait("wh_main_trait_general_personality_all_gambling", "agent", 1, 5, context)
  1217. return true
  1218. end
  1219. return false
  1220. end
  1221.  
  1222. --[[ wh_main_trig_general_long_time_in_lands_and_in_port_not_horde ]]--
  1223.  
  1224. function wh_main_trig_general_long_time_in_lands_and_in_port_not_horde_impl (context)
  1225. return char_is_general(context:character()) and context:character():has_region() and context:character():turns_in_own_regions() >= 10 and context:character():in_port() and context:character():model():turn_number() > 1 and context:character():model():turn_number() % 5 == 0 and not context:character():faction():is_horde()
  1226. end
  1227.  
  1228. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  1229. function (context)
  1230. if wh_main_trig_general_long_time_in_lands_and_in_port_not_horde_impl(context) then
  1231. effect.trait("wh_main_trait_general_personality_all_feck", "agent", 1, 5, context)
  1232. return true
  1233. end
  1234. return false
  1235. end
  1236.  
  1237. --[[ wh_main_trig_general_lost_battle_against_chaos_not_chaos ]]--
  1238.  
  1239. function wh_main_trig_general_lost_battle_against_chaos_not_chaos_impl (context)
  1240. return char_is_general(context:character()) and not context:character():faction():culture() == "wh_main_chs_chaos" and not context:character():won_battle() and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_chs_chaos") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_chs_chaos")
  1241. end
  1242.  
  1243. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1244. function (context)
  1245. if wh_main_trig_general_lost_battle_against_chaos_not_chaos_impl(context) then
  1246. effect.trait("wh_main_trait_all_personality_all_fears_chaos", "agent", 1, 10, context)
  1247. return true
  1248. end
  1249. return false
  1250. end
  1251.  
  1252. --[[ wh_main_trig_general_lost_battle_against_dwarfs_not_dwarfs ]]--
  1253.  
  1254. function wh_main_trig_general_lost_battle_against_dwarfs_not_dwarfs_impl (context)
  1255. return char_is_general(context:character()) and not context:character():faction():culture() == "wh_main_dwf_dwarfs" and not context:character():won_battle() and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_dwf_dwarfs") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_dwf_dwarfs")
  1256. end
  1257.  
  1258. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1259. function (context)
  1260. if wh_main_trig_general_lost_battle_against_dwarfs_not_dwarfs_impl(context) then
  1261. effect.trait("wh_main_trait_all_personality_all_fears_dwarfs", "agent", 1, 10, context)
  1262. return true
  1263. end
  1264. return false
  1265. end
  1266.  
  1267. --[[ wh_main_trig_general_lost_battle_against_greenskins_not_greenskins ]]--
  1268.  
  1269. function wh_main_trig_general_lost_battle_against_greenskins_not_greenskins_impl (context)
  1270. return char_is_general(context:character()) and not context:character():faction():culture() == "wh_main_grn_greenskins" and not context:character():won_battle() and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_grn_greenskins") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_grn_greenskins")
  1271. end
  1272.  
  1273. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1274. function (context)
  1275. if wh_main_trig_general_lost_battle_against_greenskins_not_greenskins_impl(context) then
  1276. effect.trait("wh_main_trait_all_personality_all_fears_greenskins", "agent", 1, 10, context)
  1277. return true
  1278. end
  1279. return false
  1280. end
  1281.  
  1282. --[[ wh_main_trig_general_lost_battle_against_men_not_men ]]--
  1283.  
  1284. function wh_main_trig_general_lost_battle_against_men_not_men_impl (context)
  1285. return char_is_general(context:character()) and not (context:character():faction():culture() == "wh_main_emp_empire" or context:character():faction():culture() == "wh_main_brt_bretonnia") and not context:character():won_battle() and (context:pending_battle():attacker() == context:character() and (context:pending_battle():defender():faction():culture() == "wh_main_emp_empire" or context:pending_battle():defender():faction():culture() == "wh_main_brt_bretonnia")) or (context:pending_battle():defender() == context:character() and (context:pending_battle():attacker():faction():culture() == "wh_main_emp_empire" or context:pending_battle():attacker():faction():culture() == "wh_main_brt_bretonnia"))
  1286. end
  1287.  
  1288. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1289. function (context)
  1290. if wh_main_trig_general_lost_battle_against_men_not_men_impl(context) then
  1291. effect.trait("wh_main_trait_all_personality_all_fears_men", "agent", 1, 10, context)
  1292. return true
  1293. end
  1294. return false
  1295. end
  1296.  
  1297. --[[ wh_main_trig_general_lost_battle_against_vampire_counts_not_vampire_counts ]]--
  1298.  
  1299. function wh_main_trig_general_lost_battle_against_vampire_counts_not_vampire_counts_impl (context)
  1300. return char_is_general(context:character()) and not context:character():faction():culture() == "wh_main_vmp_vampire_counts" and not context:character():won_battle() and (context:pending_battle():attacker() == context:character() and context:pending_battle():defender():faction():culture() == "wh_main_vmp_vampire_counts") or (context:pending_battle():defender() == context:character() and context:pending_battle():attacker():faction():culture() == "wh_main_vmp_vampire_counts")
  1301. end
  1302.  
  1303. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1304. function (context)
  1305. if wh_main_trig_general_lost_battle_against_vampire_counts_not_vampire_counts_impl(context) then
  1306. effect.trait("wh_main_trait_all_personality_all_fears_vampire_counts", "agent", 1, 10, context)
  1307. return true
  1308. end
  1309. return false
  1310. end
  1311.  
  1312. --[[ wh_main_trig_general_lost_battle_ambush_attacking ]]--
  1313.  
  1314. function wh_main_trig_general_lost_battle_ambush_attacking_impl (context)
  1315. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():ambush_battle()
  1316. end
  1317.  
  1318. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1319. function (context)
  1320. if wh_main_trig_general_lost_battle_ambush_attacking_impl(context) then
  1321. effect.trait("wh_main_trait_general_military_army_all_ambusher_bad", "agent", 1, 75, context)
  1322. return true
  1323. end
  1324. return false
  1325. end
  1326.  
  1327. --[[ wh_main_trig_general_lost_battle_army_decimated_not_chaos ]]--
  1328.  
  1329. function wh_main_trig_general_lost_battle_army_decimated_not_chaos_impl (context)
  1330. return char_is_general_with_army(context:character()) and context:character():won_battle() == false and (context:pending_battle():attacker() == context:character() and context:pending_battle():percentage_of_attacker_killed() >= 70) or (context:pending_battle():defender() == context:character() and context:pending_battle():percentage_of_defender_killed() >= 70) and not context:character():faction():culture() == "wh_main_chs_chaos"
  1331. end
  1332.  
  1333. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1334. function (context)
  1335. if wh_main_trig_general_lost_battle_army_decimated_not_chaos_impl(context) then
  1336. effect.trait("wh_main_trait_ruler_personality_all_paranoid", "agent", 1, 10, context)
  1337. return true
  1338. end
  1339. return false
  1340. end
  1341.  
  1342. --[[ wh_main_trig_general_lost_battle_as_chaos ]]--
  1343.  
  1344. function wh_main_trig_general_lost_battle_as_chaos_impl (context)
  1345. return context:character():faction():culture() == "wh_main_chs_chaos" and not context:character():won_battle()
  1346. end
  1347.  
  1348. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1349. function (context)
  1350. if wh_main_trig_general_lost_battle_as_chaos_impl(context) then
  1351. effect.trait("wh_main_trait_all_personality_chs_touched", "agent", 1, 10, context)
  1352. return true
  1353. end
  1354. return false
  1355. end
  1356.  
  1357. --[[ wh_main_trig_general_lost_battle_blockade_attacking ]]--
  1358.  
  1359. function wh_main_trig_general_lost_battle_blockade_attacking_impl (context)
  1360. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():has_contested_garrison()
  1361. end
  1362.  
  1363. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1364. function (context)
  1365. if wh_main_trig_general_lost_battle_blockade_attacking_impl(context) then
  1366. effect.trait("wh_main_trait_general_military_navy_all_blockader_bad", "agent", 1, 6, context)
  1367. return true
  1368. end
  1369. return false
  1370. end
  1371.  
  1372. --[[ wh_main_trig_general_lost_battle_blockade_defending ]]--
  1373.  
  1374. function wh_main_trig_general_lost_battle_blockade_defending_impl (context)
  1375. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():has_contested_garrison()
  1376. end
  1377.  
  1378. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1379. function (context)
  1380. if wh_main_trig_general_lost_battle_blockade_defending_impl(context) then
  1381. effect.trait("wh_main_trait_general_military_navy_all_blockade_defender_bad", "agent", 1, 6, context)
  1382. return true
  1383. end
  1384. return false
  1385. end
  1386.  
  1387. --[[ wh_main_trig_general_lost_battle_land_attacking_close_defeat ]]--
  1388.  
  1389. function wh_main_trig_general_lost_battle_land_attacking_close_defeat_impl (context)
  1390. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "close_defeat"
  1391. end
  1392.  
  1393. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1394. function (context)
  1395. if wh_main_trig_general_lost_battle_land_attacking_close_defeat_impl(context) then
  1396. effect.trait("wh_main_trait_general_personality_all_mad", "agent", 1, 2, context)
  1397. effect.trait("wh_main_trait_general_military_all_disciplinarian_bad", "agent", 1, 10, context)
  1398. return true
  1399. end
  1400. return false
  1401. end
  1402.  
  1403. --[[ wh_main_trig_general_lost_battle_land_attacking_crushing_defeat ]]--
  1404.  
  1405. function wh_main_trig_general_lost_battle_land_attacking_crushing_defeat_impl (context)
  1406. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "crushing_defeat"
  1407. end
  1408.  
  1409. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1410. function (context)
  1411. if wh_main_trig_general_lost_battle_land_attacking_crushing_defeat_impl(context) then
  1412. effect.trait("wh_main_trait_general_military_army_all_attacker_bad", "agent", 1, 10, context)
  1413. return true
  1414. end
  1415. return false
  1416. end
  1417.  
  1418. --[[ wh_main_trig_general_lost_battle_land_attacking_crushing_defeat_player_only_not_horde ]]--
  1419.  
  1420. function wh_main_trig_general_lost_battle_land_attacking_crushing_defeat_player_only_not_horde_impl (context)
  1421. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "crushing_defeat" and context:character():faction():is_human() and not context:character():faction():is_horde()
  1422. end
  1423.  
  1424. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1425. function (context)
  1426. if wh_main_trig_general_lost_battle_land_attacking_crushing_defeat_player_only_not_horde_impl(context) then
  1427. effect.trait("wh_main_trait_general_status_all_unpopular", "agent", 1, 10, context)
  1428. return true
  1429. end
  1430. return false
  1431. end
  1432.  
  1433. --[[ wh_main_trig_general_lost_battle_land_attacking_decisive_defeat ]]--
  1434.  
  1435. function wh_main_trig_general_lost_battle_land_attacking_decisive_defeat_impl (context)
  1436. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "decisive_defeat"
  1437. end
  1438.  
  1439. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1440. function (context)
  1441. if wh_main_trig_general_lost_battle_land_attacking_decisive_defeat_impl(context) then
  1442. effect.trait("wh_main_trait_general_military_army_all_attacker_bad", "agent", 1, 10, context)
  1443. return true
  1444. end
  1445. return false
  1446. end
  1447.  
  1448. --[[ wh_main_trig_general_lost_battle_land_attacking_valiant_defeat ]]--
  1449.  
  1450. function wh_main_trig_general_lost_battle_land_attacking_valiant_defeat_impl (context)
  1451. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "valiant_defeat"
  1452. end
  1453.  
  1454. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1455. function (context)
  1456. if wh_main_trig_general_lost_battle_land_attacking_valiant_defeat_impl(context) then
  1457. effect.trait("wh_main_trait_general_military_all_survivor", "agent", 1, 10, context)
  1458. return true
  1459. end
  1460. return false
  1461. end
  1462.  
  1463. --[[ wh_main_trig_general_lost_battle_land_defending_close_defeat ]]--
  1464.  
  1465. function wh_main_trig_general_lost_battle_land_defending_close_defeat_impl (context)
  1466. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "close_defeat"
  1467. end
  1468.  
  1469. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1470. function (context)
  1471. if wh_main_trig_general_lost_battle_land_defending_close_defeat_impl(context) then
  1472. effect.trait("wh_main_trait_all_personality_all_drink", "agent", 1, 10, context)
  1473. return true
  1474. end
  1475. return false
  1476. end
  1477.  
  1478. --[[ wh_main_trig_general_lost_battle_land_defending_crushing_defeat ]]--
  1479.  
  1480. function wh_main_trig_general_lost_battle_land_defending_crushing_defeat_impl (context)
  1481. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "crushing_defeat"
  1482. end
  1483.  
  1484. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1485. function (context)
  1486. if wh_main_trig_general_lost_battle_land_defending_crushing_defeat_impl(context) then
  1487. effect.trait("wh_main_trait_general_military_army_all_defender_bad", "agent", 1, 10, context)
  1488. return true
  1489. end
  1490. return false
  1491. end
  1492.  
  1493. --[[ wh_main_trig_general_lost_battle_land_defending_crushing_defeat_player_only_not_horde ]]--
  1494.  
  1495. function wh_main_trig_general_lost_battle_land_defending_crushing_defeat_player_only_not_horde_impl (context)
  1496. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "crushing_defeat" and context:character():faction():is_human() and not context:character():faction():is_horde()
  1497. end
  1498.  
  1499. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1500. function (context)
  1501. if wh_main_trig_general_lost_battle_land_defending_crushing_defeat_player_only_not_horde_impl(context) then
  1502. effect.trait("wh_main_trait_general_status_all_unpopular", "agent", 1, 10, context)
  1503. return true
  1504. end
  1505. return false
  1506. end
  1507.  
  1508. --[[ wh_main_trig_general_lost_battle_land_defending_decisive_defeat ]]--
  1509.  
  1510. function wh_main_trig_general_lost_battle_land_defending_decisive_defeat_impl (context)
  1511. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "decisive_defeat"
  1512. end
  1513.  
  1514. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1515. function (context)
  1516. if wh_main_trig_general_lost_battle_land_defending_decisive_defeat_impl(context) then
  1517. effect.trait("wh_main_trait_general_military_army_all_defender_bad", "agent", 1, 10, context)
  1518. return true
  1519. end
  1520. return false
  1521. end
  1522.  
  1523. --[[ wh_main_trig_general_lost_battle_land_defending_valiant_defeat ]]--
  1524.  
  1525. function wh_main_trig_general_lost_battle_land_defending_valiant_defeat_impl (context)
  1526. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "valiant_defeat"
  1527. end
  1528.  
  1529. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1530. function (context)
  1531. if wh_main_trig_general_lost_battle_land_defending_valiant_defeat_impl(context) then
  1532. effect.trait("wh_main_trait_general_military_all_fighter", "agent", 1, 10, context)
  1533. return true
  1534. end
  1535. return false
  1536. end
  1537.  
  1538. --[[ wh_main_trig_general_lost_battle_naval_attacking_close_defeat ]]--
  1539.  
  1540. function wh_main_trig_general_lost_battle_naval_attacking_close_defeat_impl (context)
  1541. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "close_defeat"
  1542. end
  1543.  
  1544. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1545. function (context)
  1546. if wh_main_trig_general_lost_battle_naval_attacking_close_defeat_impl(context) then
  1547. effect.trait("wh_main_trait_general_military_all_disciplinarian_bad", "agent", 1, 10, context)
  1548. return true
  1549. end
  1550. return false
  1551. end
  1552.  
  1553. --[[ wh_main_trig_general_lost_battle_naval_attacking_crushing_defeat ]]--
  1554.  
  1555. function wh_main_trig_general_lost_battle_naval_attacking_crushing_defeat_impl (context)
  1556. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "crushing_defeat"
  1557. end
  1558.  
  1559. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1560. function (context)
  1561. if wh_main_trig_general_lost_battle_naval_attacking_crushing_defeat_impl(context) then
  1562. effect.trait("wh_main_trait_general_military_navy_all_attacker_sea_bad", "agent", 1, 10, context)
  1563. return true
  1564. end
  1565. return false
  1566. end
  1567.  
  1568. --[[ wh_main_trig_general_lost_battle_naval_attacking_crushing_defeat_player_only_not_horde ]]--
  1569.  
  1570. function wh_main_trig_general_lost_battle_naval_attacking_crushing_defeat_player_only_not_horde_impl (context)
  1571. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "crushing_defeat" and context:character():faction():is_human() and not context:character():faction():is_horde()
  1572. end
  1573.  
  1574. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1575. function (context)
  1576. if wh_main_trig_general_lost_battle_naval_attacking_crushing_defeat_player_only_not_horde_impl(context) then
  1577. effect.trait("wh_main_trait_general_status_all_unpopular", "agent", 1, 10, context)
  1578. return true
  1579. end
  1580. return false
  1581. end
  1582.  
  1583. --[[ wh_main_trig_general_lost_battle_naval_attacking_decisive_defeat ]]--
  1584.  
  1585. function wh_main_trig_general_lost_battle_naval_attacking_decisive_defeat_impl (context)
  1586. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "decisive_defeat"
  1587. end
  1588.  
  1589. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1590. function (context)
  1591. if wh_main_trig_general_lost_battle_naval_attacking_decisive_defeat_impl(context) then
  1592. effect.trait("wh_main_trait_general_military_navy_all_attacker_sea_bad", "agent", 1, 10, context)
  1593. return true
  1594. end
  1595. return false
  1596. end
  1597.  
  1598. --[[ wh_main_trig_general_lost_battle_naval_attacking_valiant_defeat ]]--
  1599.  
  1600. function wh_main_trig_general_lost_battle_naval_attacking_valiant_defeat_impl (context)
  1601. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():attacker_battle_result() == "valiant_defeat"
  1602. end
  1603.  
  1604. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1605. function (context)
  1606. if wh_main_trig_general_lost_battle_naval_attacking_valiant_defeat_impl(context) then
  1607. effect.trait("wh_main_trait_general_military_all_survivor", "agent", 1, 10, context)
  1608. return true
  1609. end
  1610. return false
  1611. end
  1612.  
  1613. --[[ wh_main_trig_general_lost_battle_naval_defending_close_defeat ]]--
  1614.  
  1615. function wh_main_trig_general_lost_battle_naval_defending_close_defeat_impl (context)
  1616. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "close_defeat"
  1617. end
  1618.  
  1619. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1620. function (context)
  1621. if wh_main_trig_general_lost_battle_naval_defending_close_defeat_impl(context) then
  1622. effect.trait("wh_main_trait_all_personality_all_drink", "agent", 1, 10, context)
  1623. return true
  1624. end
  1625. return false
  1626. end
  1627.  
  1628. --[[ wh_main_trig_general_lost_battle_naval_defending_crushing_defeat ]]--
  1629.  
  1630. function wh_main_trig_general_lost_battle_naval_defending_crushing_defeat_impl (context)
  1631. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "crushing_defeat"
  1632. end
  1633.  
  1634. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1635. function (context)
  1636. if wh_main_trig_general_lost_battle_naval_defending_crushing_defeat_impl(context) then
  1637. effect.trait("wh_main_trait_general_military_navy_all_defender_sea_bad", "agent", 1, 10, context)
  1638. return true
  1639. end
  1640. return false
  1641. end
  1642.  
  1643. --[[ wh_main_trig_general_lost_battle_naval_defending_crushing_defeat_player_only_not_horde ]]--
  1644.  
  1645. function wh_main_trig_general_lost_battle_naval_defending_crushing_defeat_player_only_not_horde_impl (context)
  1646. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "crushing_defeat" and context:character():faction():is_human() and not context:character():faction():is_horde()
  1647. end
  1648.  
  1649. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1650. function (context)
  1651. if wh_main_trig_general_lost_battle_naval_defending_crushing_defeat_player_only_not_horde_impl(context) then
  1652. effect.trait("wh_main_trait_general_status_all_unpopular", "agent", 1, 10, context)
  1653. return true
  1654. end
  1655. return false
  1656. end
  1657.  
  1658. --[[ wh_main_trig_general_lost_battle_naval_defending_decisive_defeat ]]--
  1659.  
  1660. function wh_main_trig_general_lost_battle_naval_defending_decisive_defeat_impl (context)
  1661. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "decisive_defeat"
  1662. end
  1663.  
  1664. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1665. function (context)
  1666. if wh_main_trig_general_lost_battle_naval_defending_decisive_defeat_impl(context) then
  1667. effect.trait("wh_main_trait_general_military_navy_all_defender_sea_bad", "agent", 1, 10, context)
  1668. return true
  1669. end
  1670. return false
  1671. end
  1672.  
  1673. --[[ wh_main_trig_general_lost_battle_naval_defending_valiant_defeat ]]--
  1674.  
  1675. function wh_main_trig_general_lost_battle_naval_defending_valiant_defeat_impl (context)
  1676. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():defender_battle_result() == "valiant_defeat"
  1677. end
  1678.  
  1679. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1680. function (context)
  1681. if wh_main_trig_general_lost_battle_naval_defending_valiant_defeat_impl(context) then
  1682. effect.trait("wh_main_trait_general_military_all_fighter", "agent", 1, 10, context)
  1683. return true
  1684. end
  1685. return false
  1686. end
  1687.  
  1688. --[[ wh_main_trig_general_lost_battle_naval_transporting ]]--
  1689.  
  1690. function wh_main_trig_general_lost_battle_naval_transporting_impl (context)
  1691. return char_is_general_with_navy(context:character()) and context:character():is_carrying_troops() and context:character():won_battle() == false
  1692. end
  1693.  
  1694. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1695. function (context)
  1696. if wh_main_trig_general_lost_battle_naval_transporting_impl(context) then
  1697. effect.trait("wh_main_trait_general_military_navy_all_escort_bad", "agent", 1, 6, context)
  1698. return true
  1699. end
  1700. return false
  1701. end
  1702.  
  1703. --[[ wh_main_trig_general_lost_battle_night_attacking ]]--
  1704.  
  1705. function wh_main_trig_general_lost_battle_night_attacking_impl (context)
  1706. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and not context:character():won_battle() and context:pending_battle():night_battle()
  1707. end
  1708.  
  1709. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1710. function (context)
  1711. if wh_main_trig_general_lost_battle_night_attacking_impl(context) then
  1712. effect.trait("wh_main_trait_general_military_all_noctophobia", "agent", 1, 12, context)
  1713. return true
  1714. end
  1715. return false
  1716. end
  1717.  
  1718. --[[ wh_main_trig_general_lost_battle_night_defending ]]--
  1719.  
  1720. function wh_main_trig_general_lost_battle_night_defending_impl (context)
  1721. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and not context:character():won_battle() and context:pending_battle():night_battle()
  1722. end
  1723.  
  1724. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1725. function (context)
  1726. if wh_main_trig_general_lost_battle_night_defending_impl(context) then
  1727. effect.trait("wh_main_trait_general_military_all_noctophobia", "agent", 1, 12, context)
  1728. return true
  1729. end
  1730. return false
  1731. end
  1732.  
  1733. --[[ wh_main_trig_general_lost_battle_siege_attacking ]]--
  1734.  
  1735. function wh_main_trig_general_lost_battle_siege_attacking_impl (context)
  1736. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() == false and context:pending_battle():has_contested_garrison()
  1737. end
  1738.  
  1739. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1740. function (context)
  1741. if wh_main_trig_general_lost_battle_siege_attacking_impl(context) then
  1742. effect.trait("wh_main_trait_general_military_army_all_besieger_bad", "agent", 1, 6, context)
  1743. return true
  1744. end
  1745. return false
  1746. end
  1747.  
  1748. --[[ wh_main_trig_general_lost_battle_siege_defending ]]--
  1749.  
  1750. function wh_main_trig_general_lost_battle_siege_defending_impl (context)
  1751. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() == false and context:pending_battle():has_contested_garrison()
  1752. end
  1753.  
  1754. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1755. function (context)
  1756. if wh_main_trig_general_lost_battle_siege_defending_impl(context) then
  1757. effect.trait("wh_main_trait_general_military_army_all_siege_defender_bad", "agent", 1, 6, context)
  1758. return true
  1759. end
  1760. return false
  1761. end
  1762.  
  1763. --[[ wh_main_trig_general_many_spies_not_horde ]]--
  1764.  
  1765. function wh_main_trig_general_many_spies_not_horde_impl (context)
  1766. return char_is_general(context:character()) and num_agents_in_faction(context:character():faction(), "spy") > 1 and not context:character():faction():is_horde() and not context:character():faction():culture() == "wh_main_vmp_vampire_counts"
  1767. end
  1768.  
  1769. events.CharacterRankUp[#events.CharacterRankUp+1] =
  1770. function (context)
  1771. if wh_main_trig_general_many_spies_not_horde_impl(context) then
  1772. effect.trait("wh_main_trait_ruler_government_all_spymaster", "agent", 1, 10, context)
  1773. return true
  1774. end
  1775. return false
  1776. end
  1777.  
  1778. --[[ wh_main_trig_general_not_fought_in_battle_player_only ]]--
  1779.  
  1780. function wh_main_trig_general_not_fought_in_battle_player_only_impl (context)
  1781. return char_is_general_with_army(context:character()) and context:character():faction():is_human() and ((context:pending_battle():attacker() == context:character() and not context:pending_battle():attacker_commander_fought_in_melee()) or (context:pending_battle():defender() == context:character() and not context:pending_battle():defender_commander_fought_in_melee()))
  1782. end
  1783.  
  1784. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1785. function (context)
  1786. if wh_main_trig_general_not_fought_in_battle_player_only_impl(context) then
  1787. effect.trait("wh_main_trait_general_personality_all_cowardice", "agent", 1, 6, context)
  1788. return true
  1789. end
  1790. return false
  1791. end
  1792.  
  1793. --[[ wh_main_trig_general_post_battle_enslave_player_only_not_horde ]]--
  1794.  
  1795. function wh_main_trig_general_post_battle_enslave_player_only_not_horde_impl (context)
  1796. return char_is_general_with_army(context:character()) and context:character():faction():is_human() and not context:character():faction():is_horde()
  1797. end
  1798.  
  1799. events.CharacterPostBattleEnslave[#events.CharacterPostBattleEnslave+1] =
  1800. function (context)
  1801. if wh_main_trig_general_post_battle_enslave_player_only_not_horde_impl(context) then
  1802. effect.trait("wh_main_trait_ruler_personality_all_harsh", "agent", 1, 10, context)
  1803. return true
  1804. end
  1805. return false
  1806. end
  1807.  
  1808. --[[ wh_main_trig_general_post_battle_release_not_horde ]]--
  1809.  
  1810. function wh_main_trig_general_post_battle_release_not_horde_impl (context)
  1811. return char_is_general_with_army(context:character()) and not context:character():faction():is_horde()
  1812. end
  1813.  
  1814. events.CharacterPostBattleRelease[#events.CharacterPostBattleRelease+1] =
  1815. function (context)
  1816. if wh_main_trig_general_post_battle_release_not_horde_impl(context) then
  1817. effect.trait("wh_main_trait_general_personality_all_honest", "agent", 1, 25, context)
  1818. effect.trait("wh_main_trait_ruler_personality_all_kind", "agent", 1, 10, context)
  1819. return true
  1820. end
  1821. return false
  1822. end
  1823.  
  1824. --[[ wh_main_trig_general_post_battle_slaughter_player_only_not_horde ]]--
  1825.  
  1826. function wh_main_trig_general_post_battle_slaughter_player_only_not_horde_impl (context)
  1827. return char_is_general_with_army(context:character()) and context:character():faction():is_human() and not context:character():faction():is_horde()
  1828. end
  1829.  
  1830. events.CharacterPostBattleSlaughter[#events.CharacterPostBattleSlaughter+1] =
  1831. function (context)
  1832. if wh_main_trig_general_post_battle_slaughter_player_only_not_horde_impl(context) then
  1833. effect.trait("wh_main_trait_ruler_personality_all_unjust", "agent", 1, 10, context)
  1834. return true
  1835. end
  1836. return false
  1837. end
  1838.  
  1839. --[[ wh_main_trig_general_post_battle_slaughter_player_only_not_horde_not_leader ]]--
  1840.  
  1841. function wh_main_trig_general_post_battle_slaughter_player_only_not_horde_not_leader_impl (context)
  1842. return char_is_general_with_army(context:character()) and context:character():faction():is_human() and not context:character():faction():is_horde() and not context:character():is_faction_leader()
  1843. end
  1844.  
  1845. events.CharacterPostBattleSlaughter[#events.CharacterPostBattleSlaughter+1] =
  1846. function (context)
  1847. if wh_main_trig_general_post_battle_slaughter_player_only_not_horde_not_leader_impl(context) then
  1848. effect.trait("wh_main_trait_general_personality_all_dishonest", "agent", 1, 25, context)
  1849. return true
  1850. end
  1851. return false
  1852. end
  1853.  
  1854. --[[ wh_main_trig_general_won_battle_ambush_attacking ]]--
  1855.  
  1856. function wh_main_trig_general_won_battle_ambush_attacking_impl (context)
  1857. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():ambush_battle()
  1858. end
  1859.  
  1860. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1861. function (context)
  1862. if wh_main_trig_general_won_battle_ambush_attacking_impl(context) then
  1863. effect.trait("wh_main_trait_general_military_army_all_ambusher_good", "agent", 1, 75, context)
  1864. return true
  1865. end
  1866. return false
  1867. end
  1868.  
  1869. --[[ wh_main_trig_general_won_battle_blockade_attacking ]]--
  1870.  
  1871. function wh_main_trig_general_won_battle_blockade_attacking_impl (context)
  1872. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():has_contested_garrison()
  1873. end
  1874.  
  1875. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1876. function (context)
  1877. if wh_main_trig_general_won_battle_blockade_attacking_impl(context) then
  1878. effect.trait("wh_main_trait_general_military_navy_all_blockader_good", "agent", 1, 10, context)
  1879. return true
  1880. end
  1881. return false
  1882. end
  1883.  
  1884. --[[ wh_main_trig_general_won_battle_blockade_defending ]]--
  1885.  
  1886. function wh_main_trig_general_won_battle_blockade_defending_impl (context)
  1887. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():has_contested_garrison()
  1888. end
  1889.  
  1890. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1891. function (context)
  1892. if wh_main_trig_general_won_battle_blockade_defending_impl(context) then
  1893. effect.trait("wh_main_trait_general_military_navy_all_blockade_defender_good", "agent", 1, 10, context)
  1894. return true
  1895. end
  1896. return false
  1897. end
  1898.  
  1899. --[[ wh_main_trig_general_won_battle_chaos ]]--
  1900.  
  1901. function wh_main_trig_general_won_battle_chaos_impl (context)
  1902. return context:character():faction():culture() == "wh_main_chs_chaos" and context:character():won_battle()
  1903. end
  1904.  
  1905. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1906. function (context)
  1907. if wh_main_trig_general_won_battle_chaos_impl(context) then
  1908. effect.trait("wh_main_trait_all_personality_chs_stench", "agent", 1, 3, context)
  1909. effect.trait("wh_main_trait_all_personality_chs_mantle", "agent", 1, 3, context)
  1910. effect.trait("wh_main_trait_all_personality_chs_fury", "agent", 1, 6, context)
  1911. return true
  1912. end
  1913. return false
  1914. end
  1915.  
  1916. --[[ wh_main_trig_general_won_battle_enemy_decimated ]]--
  1917.  
  1918. function wh_main_trig_general_won_battle_enemy_decimated_impl (context)
  1919. return char_is_general_with_army(context:character()) and context:character():won_battle() == false and (context:pending_battle():attacker() == context:character() and context:pending_battle():percentage_of_defender_killed() >= 70) or (context:pending_battle():defender() == context:character() and context:pending_battle():percentage_of_attacker_killed() >= 70)
  1920. end
  1921.  
  1922. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1923. function (context)
  1924. if wh_main_trig_general_won_battle_enemy_decimated_impl(context) then
  1925. effect.trait("wh_main_trait_general_military_all_high_casualties", "agent", 1, 10, context)
  1926. effect.trait("wh_main_trait_general_personality_all_bereaved", "agent", 1, 10, context)
  1927. return true
  1928. end
  1929. return false
  1930. end
  1931.  
  1932. --[[ wh_main_trig_general_won_battle_enemy_decimated_empire ]]--
  1933.  
  1934. function wh_main_trig_general_won_battle_enemy_decimated_empire_impl (context)
  1935. return context:character():faction():subculture() == "wh_main_sc_emp_empire" and char_is_general_with_army(context:character()) and context:character():won_battle() and (context:pending_battle():attacker() == context:character() and context:pending_battle():percentage_of_defender_killed() >= 70) or (context:pending_battle():defender() == context:character() and context:pending_battle():percentage_of_attacker_killed() >= 70)
  1936. end
  1937.  
  1938. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1939. function (context)
  1940. if wh_main_trig_general_won_battle_enemy_decimated_empire_impl(context) then
  1941. effect.trait("wh_trait_general_personality_emp_monster", "agent", 1, 15, context)
  1942. return true
  1943. end
  1944. return false
  1945. end
  1946.  
  1947. --[[ wh_main_trig_general_won_battle_land_attacking_close_victory ]]--
  1948.  
  1949. function wh_main_trig_general_won_battle_land_attacking_close_victory_impl (context)
  1950. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "close_victory"
  1951. end
  1952.  
  1953. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1954. function (context)
  1955. if wh_main_trig_general_won_battle_land_attacking_close_victory_impl(context) then
  1956. effect.trait("wh_main_trait_general_military_all_disciplinarian_good", "agent", 1, 10, context)
  1957. return true
  1958. end
  1959. return false
  1960. end
  1961.  
  1962. --[[ wh_main_trig_general_won_battle_land_attacking_close_victory_emp ]]--
  1963.  
  1964. function wh_main_trig_general_won_battle_land_attacking_close_victory_emp_impl (context)
  1965. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "close_victory" and context:character():faction():culture() == "wh_main_emp_empire"
  1966. end
  1967.  
  1968. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1969. function (context)
  1970. if wh_main_trig_general_won_battle_land_attacking_close_victory_emp_impl(context) then
  1971. effect.trait("wh_main_trait_not_priest_personality_monotheist_religious", "agent", 1, 4, context)
  1972. return true
  1973. end
  1974. return false
  1975. end
  1976.  
  1977. --[[ wh_main_trig_general_won_battle_land_attacking_close_victory_not_vmp_chs ]]--
  1978.  
  1979. function wh_main_trig_general_won_battle_land_attacking_close_victory_not_vmp_chs_impl (context)
  1980. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "close_victory" and (context:character():faction():culture() ~= "wh_main_vmp_vampire_counts" and context:character():faction():culture() ~= "wh_main_chs_chaos")
  1981. end
  1982.  
  1983. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1984. function (context)
  1985. if wh_main_trig_general_won_battle_land_attacking_close_victory_not_vmp_chs_impl(context) then
  1986. effect.trait("wh_main_trait_not_priest_personality_polytheist_religious", "agent", 1, 4, context)
  1987. return true
  1988. end
  1989. return false
  1990. end
  1991.  
  1992. --[[ wh_main_trig_general_won_battle_land_attacking_decisive_victory ]]--
  1993.  
  1994. function wh_main_trig_general_won_battle_land_attacking_decisive_victory_impl (context)
  1995. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "decisive_victory"
  1996. end
  1997.  
  1998. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  1999. function (context)
  2000. if wh_main_trig_general_won_battle_land_attacking_decisive_victory_impl(context) then
  2001. effect.trait("wh_main_trait_general_personality_all_fervour", "agent", 1, 5, context)
  2002. effect.trait("wh_main_trait_general_military_army_all_attacker_good", "agent", 1, 10, context)
  2003. return true
  2004. end
  2005. return false
  2006. end
  2007.  
  2008. --[[ wh_main_trig_general_won_battle_land_attacking_heroic_victory ]]--
  2009.  
  2010. function wh_main_trig_general_won_battle_land_attacking_heroic_victory_impl (context)
  2011. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "heroic_victory"
  2012. end
  2013.  
  2014. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2015. function (context)
  2016. if wh_main_trig_general_won_battle_land_attacking_heroic_victory_impl(context) then
  2017. effect.trait("wh_main_trait_general_military_army_all_attacker_good", "agent", 1, 10, context)
  2018. return true
  2019. end
  2020. return false
  2021. end
  2022.  
  2023. --[[ wh_main_trig_general_won_battle_land_attacking_heroic_victory_not_horde ]]--
  2024.  
  2025. function wh_main_trig_general_won_battle_land_attacking_heroic_victory_not_horde_impl (context)
  2026. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "heroic_victory" and not context:character():faction():is_horde()
  2027. end
  2028.  
  2029. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2030. function (context)
  2031. if wh_main_trig_general_won_battle_land_attacking_heroic_victory_not_horde_impl(context) then
  2032. effect.trait("wh_main_trait_general_status_all_popular", "agent", 1, 10, context)
  2033. return true
  2034. end
  2035. return false
  2036. end
  2037.  
  2038. --[[ wh_main_trig_general_won_battle_land_defending_close_victory ]]--
  2039.  
  2040. function wh_main_trig_general_won_battle_land_defending_close_victory_impl (context)
  2041. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "close_victory"
  2042. end
  2043.  
  2044. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2045. function (context)
  2046. if wh_main_trig_general_won_battle_land_defending_close_victory_impl(context) then
  2047. effect.trait("wh_main_trait_general_military_all_strategist", "agent", 1, 10, context)
  2048. return true
  2049. end
  2050. return false
  2051. end
  2052.  
  2053. --[[ wh_main_trig_general_won_battle_land_defending_decisive_victory ]]--
  2054.  
  2055. function wh_main_trig_general_won_battle_land_defending_decisive_victory_impl (context)
  2056. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "decisive_victory"
  2057. end
  2058.  
  2059. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2060. function (context)
  2061. if wh_main_trig_general_won_battle_land_defending_decisive_victory_impl(context) then
  2062. effect.trait("wh_main_trait_general_military_army_all_defender_good", "agent", 1, 10, context)
  2063. return true
  2064. end
  2065. return false
  2066. end
  2067.  
  2068. --[[ wh_main_trig_general_won_battle_land_defending_heroic_victory ]]--
  2069.  
  2070. function wh_main_trig_general_won_battle_land_defending_heroic_victory_impl (context)
  2071. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "heroic_victory"
  2072. end
  2073.  
  2074. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2075. function (context)
  2076. if wh_main_trig_general_won_battle_land_defending_heroic_victory_impl(context) then
  2077. effect.trait("wh_main_trait_general_military_army_all_defender_good", "agent", 1, 10, context)
  2078. return true
  2079. end
  2080. return false
  2081. end
  2082.  
  2083. --[[ wh_main_trig_general_won_battle_land_defending_heroic_victory_not_horde ]]--
  2084.  
  2085. function wh_main_trig_general_won_battle_land_defending_heroic_victory_not_horde_impl (context)
  2086. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "heroic_victory" and not context:character():faction():is_horde()
  2087. end
  2088.  
  2089. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2090. function (context)
  2091. if wh_main_trig_general_won_battle_land_defending_heroic_victory_not_horde_impl(context) then
  2092. effect.trait("wh_main_trait_general_status_all_popular", "agent", 1, 10, context)
  2093. return true
  2094. end
  2095. return false
  2096. end
  2097.  
  2098. --[[ wh_main_trig_general_won_battle_land_defending_pyrrhic_victory ]]--
  2099.  
  2100. function wh_main_trig_general_won_battle_land_defending_pyrrhic_victory_impl (context)
  2101. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "pyrrhic_victory"
  2102. end
  2103.  
  2104. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2105. function (context)
  2106. if wh_main_trig_general_won_battle_land_defending_pyrrhic_victory_impl(context) then
  2107. effect.trait("wh_main_trait_general_military_all_tactician", "agent", 1, 10, context)
  2108. return true
  2109. end
  2110. return false
  2111. end
  2112.  
  2113. --[[ wh_main_trig_general_won_battle_naval_attacking_close_victory ]]--
  2114.  
  2115. function wh_main_trig_general_won_battle_naval_attacking_close_victory_impl (context)
  2116. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "close_victory"
  2117. end
  2118.  
  2119. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2120. function (context)
  2121. if wh_main_trig_general_won_battle_naval_attacking_close_victory_impl(context) then
  2122. effect.trait("wh_main_trait_general_military_all_disciplinarian_good", "agent", 1, 10, context)
  2123. return true
  2124. end
  2125. return false
  2126. end
  2127.  
  2128. --[[ wh_main_trig_general_won_battle_naval_attacking_decisive_victory ]]--
  2129.  
  2130. function wh_main_trig_general_won_battle_naval_attacking_decisive_victory_impl (context)
  2131. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "decisive_victory"
  2132. end
  2133.  
  2134. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2135. function (context)
  2136. if wh_main_trig_general_won_battle_naval_attacking_decisive_victory_impl(context) then
  2137. effect.trait("wh_main_trait_general_military_navy_all_attacker_sea_good", "agent", 1, 10, context)
  2138. return true
  2139. end
  2140. return false
  2141. end
  2142.  
  2143. --[[ wh_main_trig_general_won_battle_naval_attacking_heroic_victory ]]--
  2144.  
  2145. function wh_main_trig_general_won_battle_naval_attacking_heroic_victory_impl (context)
  2146. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "heroic_victory"
  2147. end
  2148.  
  2149. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2150. function (context)
  2151. if wh_main_trig_general_won_battle_naval_attacking_heroic_victory_impl(context) then
  2152. effect.trait("wh_main_trait_general_military_navy_all_attacker_sea_good", "agent", 1, 10, context)
  2153. return true
  2154. end
  2155. return false
  2156. end
  2157.  
  2158. --[[ wh_main_trig_general_won_battle_naval_attacking_heroic_victory_not_horde ]]--
  2159.  
  2160. function wh_main_trig_general_won_battle_naval_attacking_heroic_victory_not_horde_impl (context)
  2161. return char_is_general_with_navy(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():attacker_battle_result() == "heroic_victory" and not context:character():faction():is_horde()
  2162. end
  2163.  
  2164. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2165. function (context)
  2166. if wh_main_trig_general_won_battle_naval_attacking_heroic_victory_not_horde_impl(context) then
  2167. effect.trait("wh_main_trait_general_status_all_popular", "agent", 1, 10, context)
  2168. return true
  2169. end
  2170. return false
  2171. end
  2172.  
  2173. --[[ wh_main_trig_general_won_battle_naval_defending_close_victory ]]--
  2174.  
  2175. function wh_main_trig_general_won_battle_naval_defending_close_victory_impl (context)
  2176. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "close_victory"
  2177. end
  2178.  
  2179. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2180. function (context)
  2181. if wh_main_trig_general_won_battle_naval_defending_close_victory_impl(context) then
  2182. effect.trait("wh_main_trait_general_military_all_strategist", "agent", 1, 10, context)
  2183. return true
  2184. end
  2185. return false
  2186. end
  2187.  
  2188. --[[ wh_main_trig_general_won_battle_naval_defending_decisive_victory ]]--
  2189.  
  2190. function wh_main_trig_general_won_battle_naval_defending_decisive_victory_impl (context)
  2191. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "decisive_victory"
  2192. end
  2193.  
  2194. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2195. function (context)
  2196. if wh_main_trig_general_won_battle_naval_defending_decisive_victory_impl(context) then
  2197. effect.trait("wh_main_trait_general_military_navy_all_defender_sea_good", "agent", 1, 10, context)
  2198. return true
  2199. end
  2200. return false
  2201. end
  2202.  
  2203. --[[ wh_main_trig_general_won_battle_naval_defending_heroic_victory ]]--
  2204.  
  2205. function wh_main_trig_general_won_battle_naval_defending_heroic_victory_impl (context)
  2206. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "heroic_victory"
  2207. end
  2208.  
  2209. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2210. function (context)
  2211. if wh_main_trig_general_won_battle_naval_defending_heroic_victory_impl(context) then
  2212. effect.trait("wh_main_trait_general_military_navy_all_defender_sea_good", "agent", 1, 10, context)
  2213. return true
  2214. end
  2215. return false
  2216. end
  2217.  
  2218. --[[ wh_main_trig_general_won_battle_naval_defending_heroic_victory_not_horde ]]--
  2219.  
  2220. function wh_main_trig_general_won_battle_naval_defending_heroic_victory_not_horde_impl (context)
  2221. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "heroic_victory" and not context:character():faction():is_horde()
  2222. end
  2223.  
  2224. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2225. function (context)
  2226. if wh_main_trig_general_won_battle_naval_defending_heroic_victory_not_horde_impl(context) then
  2227. effect.trait("wh_main_trait_general_status_all_popular", "agent", 1, 10, context)
  2228. return true
  2229. end
  2230. return false
  2231. end
  2232.  
  2233. --[[ wh_main_trig_general_won_battle_naval_defending_pyrrhic_victory ]]--
  2234.  
  2235. function wh_main_trig_general_won_battle_naval_defending_pyrrhic_victory_impl (context)
  2236. return char_is_general_with_navy(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():defender_battle_result() == "pyrrhic_victory"
  2237. end
  2238.  
  2239. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2240. function (context)
  2241. if wh_main_trig_general_won_battle_naval_defending_pyrrhic_victory_impl(context) then
  2242. effect.trait("wh_main_trait_general_military_all_tactician", "agent", 1, 10, context)
  2243. return true
  2244. end
  2245. return false
  2246. end
  2247.  
  2248. --[[ wh_main_trig_general_won_battle_naval_transporting ]]--
  2249.  
  2250. function wh_main_trig_general_won_battle_naval_transporting_impl (context)
  2251. return char_is_general_with_navy(context:character()) and context:character():is_carrying_troops() and context:character():won_battle()
  2252. end
  2253.  
  2254. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2255. function (context)
  2256. if wh_main_trig_general_won_battle_naval_transporting_impl(context) then
  2257. effect.trait("wh_main_trait_general_military_navy_all_escort_good", "agent", 1, 10, context)
  2258. return true
  2259. end
  2260. return false
  2261. end
  2262.  
  2263. --[[ wh_main_trig_general_won_battle_night_attacking ]]--
  2264.  
  2265. function wh_main_trig_general_won_battle_night_attacking_impl (context)
  2266. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():night_battle()
  2267. end
  2268.  
  2269. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2270. function (context)
  2271. if wh_main_trig_general_won_battle_night_attacking_impl(context) then
  2272. effect.trait("wh_main_trait_general_military_all_noctophilia", "agent", 1, 20, context)
  2273. return true
  2274. end
  2275. return false
  2276. end
  2277.  
  2278. --[[ wh_main_trig_general_won_battle_night_defending ]]--
  2279.  
  2280. function wh_main_trig_general_won_battle_night_defending_impl (context)
  2281. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():night_battle()
  2282. end
  2283.  
  2284. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2285. function (context)
  2286. if wh_main_trig_general_won_battle_night_defending_impl(context) then
  2287. effect.trait("wh_main_trait_general_military_all_noctophilia", "agent", 1, 20, context)
  2288. return true
  2289. end
  2290. return false
  2291. end
  2292.  
  2293. --[[ wh_main_trig_general_won_battle_siege_attacking ]]--
  2294.  
  2295. function wh_main_trig_general_won_battle_siege_attacking_impl (context)
  2296. return char_is_general_with_army(context:character()) and context:pending_battle():attacker() == context:character() and context:character():won_battle() and context:pending_battle():has_contested_garrison()
  2297. end
  2298.  
  2299. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2300. function (context)
  2301. if wh_main_trig_general_won_battle_siege_attacking_impl(context) then
  2302. effect.trait("wh_main_trait_general_military_army_all_besieger_good", "agent", 1, 10, context)
  2303. return true
  2304. end
  2305. return false
  2306. end
  2307.  
  2308. --[[ wh_main_trig_general_won_battle_siege_defending ]]--
  2309.  
  2310. function wh_main_trig_general_won_battle_siege_defending_impl (context)
  2311. return char_is_general_with_army(context:character()) and context:pending_battle():defender() == context:character() and context:character():won_battle() and context:pending_battle():has_contested_garrison()
  2312. end
  2313.  
  2314. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2315. function (context)
  2316. if wh_main_trig_general_won_battle_siege_defending_impl(context) then
  2317. effect.trait("wh_main_trait_general_military_army_all_siege_defender_good", "agent", 1, 10, context)
  2318. return true
  2319. end
  2320. return false
  2321. end
  2322.  
  2323. --[[ wh_main_trig_general_won_battle_siege_looted_settlement ]]--
  2324.  
  2325. function wh_main_trig_general_won_battle_siege_looted_settlement_impl (context)
  2326. return char_is_general(context:character())
  2327. end
  2328.  
  2329. events.CharacterLootedSettlement[#events.CharacterLootedSettlement+1] =
  2330. function (context)
  2331. if wh_main_trig_general_won_battle_siege_looted_settlement_impl(context) then
  2332. effect.trait("wh_main_trait_general_military_all_looter", "agent", 1, 20, context)
  2333. return true
  2334. end
  2335. return false
  2336. end
  2337.  
  2338. --[[ wh_main_trig_general_won_battle_siege_looted_settlement_chaos ]]--
  2339.  
  2340. function wh_main_trig_general_won_battle_siege_looted_settlement_chaos_impl (context)
  2341. return context:character():faction():culture() == "wh_main_chs_chaos"
  2342. end
  2343.  
  2344. events.CharacterLootedSettlement[#events.CharacterLootedSettlement+1] =
  2345. function (context)
  2346. if wh_main_trig_general_won_battle_siege_looted_settlement_chaos_impl(context) then
  2347. effect.trait("wh_main_trait_all_personality_chs_dread", "agent", 1, 3, context)
  2348. return true
  2349. end
  2350. return false
  2351. end
  2352.  
  2353. --[[ wh_main_trig_general_won_battle_vampire_counts ]]--
  2354.  
  2355. function wh_main_trig_general_won_battle_vampire_counts_impl (context)
  2356. return char_is_general(context:character()) and context:character():faction():culture() == "wh_main_vmp_vampire_counts" and context:character():won_battle()
  2357. end
  2358.  
  2359. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2360. function (context)
  2361. if wh_main_trig_general_won_battle_vampire_counts_impl(context) then
  2362. effect.trait("wh_main_trait_general_personality_vmp_black_arts", "agent", 1, 5, context)
  2363. effect.trait("wh_main_trait_general_personality_vmp_beast_master", "agent", 1, 3, context)
  2364. effect.trait("wh_main_trait_general_personality_vmp_summon_creatures", "agent", 1, 2, context)
  2365. return true
  2366. end
  2367. return false
  2368. end
  2369.  
  2370. --[[ wh_main_trig_governor_rank_up_poor_region ]]--
  2371.  
  2372. function wh_main_trig_governor_rank_up_poor_region_impl (context)
  2373. return context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name() and context:character():region():faction_province_growth_per_turn() < 20 and context:character():region():faction_province_growth() > 0
  2374. end
  2375.  
  2376. events.CharacterRankUp[#events.CharacterRankUp+1] =
  2377. function (context)
  2378. if wh_main_trig_governor_rank_up_poor_region_impl(context) then
  2379. effect.trait("wh_main_trait_general_government_all_corrupt", "agent", 1, 5, context)
  2380. effect.trait("wh_main_trait_general_government_all_meek", "agent", 1, 5, context)
  2381. return true
  2382. end
  2383. return false
  2384. end
  2385.  
  2386. --[[ wh_main_trig_governor_rank_up_poor_region_empire ]]--
  2387.  
  2388. function wh_main_trig_governor_rank_up_poor_region_empire_impl (context)
  2389. return context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name() and context:character():region():faction_province_growth_per_turn() < 20 and context:character():region():faction_province_growth() > 0 and context:character():faction():subculture() == "wh_main_sc_emp_empire"
  2390. end
  2391.  
  2392. events.CharacterRankUp[#events.CharacterRankUp+1] =
  2393. function (context)
  2394. if wh_main_trig_governor_rank_up_poor_region_empire_impl(context) then
  2395. effect.trait("wh_main_trait_general_government_all_admin_bad", "agent", 1, 10, context)
  2396. return true
  2397. end
  2398. return false
  2399. end
  2400.  
  2401. --[[ wh_main_trig_governor_rank_up_rich_region ]]--
  2402.  
  2403. function wh_main_trig_governor_rank_up_rich_region_impl (context)
  2404. return context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name() and context:character():region():faction_province_growth_per_turn() > 100
  2405. end
  2406.  
  2407. events.CharacterRankUp[#events.CharacterRankUp+1] =
  2408. function (context)
  2409. if wh_main_trig_governor_rank_up_rich_region_impl(context) then
  2410. effect.trait("wh_main_trait_ruler_personality_dwf_gold_sickness", "agent", 1, 7, context)
  2411. return true
  2412. end
  2413. return false
  2414. end
  2415.  
  2416. --[[ wh_main_trig_governor_rank_up_rich_region_empire ]]--
  2417.  
  2418. function wh_main_trig_governor_rank_up_rich_region_empire_impl (context)
  2419. return context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name() and context:character():region():faction_province_growth_per_turn() >100 and context:character():faction():subculture() == "wh_main_sc_emp_empire"
  2420. end
  2421.  
  2422. events.CharacterRankUp[#events.CharacterRankUp+1] =
  2423. function (context)
  2424. if wh_main_trig_governor_rank_up_rich_region_empire_impl(context) then
  2425. effect.trait("wh_main_trait_general_government_all_admin_good", "agent", 1, 10, context)
  2426. return true
  2427. end
  2428. return false
  2429. end
  2430.  
  2431. --[[ wh_main_trig_governor_rank_up_rich_region_not_greenskins ]]--
  2432.  
  2433. function wh_main_trig_governor_rank_up_rich_region_not_greenskins_impl (context)
  2434. return context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name() and context:character():region():faction_province_growth_per_turn() >100 and context:character():faction():culture() == "wh_main_grn_greenskins"
  2435. end
  2436.  
  2437. events.CharacterRankUp[#events.CharacterRankUp+1] =
  2438. function (context)
  2439. if wh_main_trig_governor_rank_up_rich_region_not_greenskins_impl(context) then
  2440. effect.trait("wh_main_trait_general_government_all_ruler", "agent", 1, 7, context)
  2441. return true
  2442. end
  2443. return false
  2444. end
  2445.  
  2446. --[[ wh_main_trig_greenskin_general_lost_battle_against_goblin_great_shaman ]]--
  2447.  
  2448. function wh_main_trig_greenskin_general_lost_battle_against_goblin_great_shaman_impl (context)
  2449. return wh_main_trig_greenskin_general_lost_battle_against_goblin_great_shaman_test(context:character(), context:pending_battle())
  2450. end
  2451.  
  2452. events.CharacterCompletedBattle[#events.CharacterCompletedBattle+1] =
  2453. function (context)
  2454. if wh_main_trig_greenskin_general_lost_battle_against_goblin_great_shaman_impl(context) then
  2455. effect.trait("wh_main_trait_general_personality_grn_hates_goblins", "agent", 1, 75, context)
  2456. return true
  2457. end
  2458. return false
  2459. end
  2460.  
  2461. --[[ wh_main_trig_grn_goblin_big_boss_character_killer ]]--
  2462.  
  2463. function wh_main_trig_grn_goblin_big_boss_character_killer_impl (context)
  2464. return context:character():character_subtype("grn_goblin_big_boss") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  2465. end
  2466.  
  2467. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  2468. function (context)
  2469. if wh_main_trig_grn_goblin_big_boss_character_killer_impl(context) then
  2470. effect.trait("wh_main_trait_grn_goblin_big_boss_character_killer", "agent", 1, 100, context)
  2471. return true
  2472. end
  2473. return false
  2474. end
  2475.  
  2476. --[[ wh_main_trig_grn_goblin_great_shaman_caster ]]--
  2477.  
  2478. function wh_main_trig_grn_goblin_great_shaman_caster_impl (context)
  2479. return context:character():character_subtype("grn_goblin_great_shaman") and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  2480. end
  2481.  
  2482. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  2483. function (context)
  2484. if wh_main_trig_grn_goblin_great_shaman_caster_impl(context) then
  2485. effect.trait("wh_main_trait_grn_goblin_great_shaman_caster", "agent", 1, 100, context)
  2486. return true
  2487. end
  2488. return false
  2489. end
  2490.  
  2491. --[[ wh_main_trig_grn_night_goblin_shaman_caster ]]--
  2492.  
  2493. function wh_main_trig_grn_night_goblin_shaman_caster_impl (context)
  2494. return context:character():character_subtype("grn_night_goblin_shaman") and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  2495. end
  2496.  
  2497. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  2498. function (context)
  2499. if wh_main_trig_grn_night_goblin_shaman_caster_impl(context) then
  2500. effect.trait("wh_main_trait_grn_night_goblin_shaman_caster", "agent", 1, 100, context)
  2501. return true
  2502. end
  2503. return false
  2504. end
  2505.  
  2506. --[[ wh_main_trig_grn_orc_shaman_caster ]]--
  2507.  
  2508. function wh_main_trig_grn_orc_shaman_caster_impl (context)
  2509. return context:character():character_subtype("grn_orc_shaman") and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  2510. end
  2511.  
  2512. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  2513. function (context)
  2514. if wh_main_trig_grn_orc_shaman_caster_impl(context) then
  2515. effect.trait("wh_main_trait_grn_orc_shaman_caster", "agent", 1, 100, context)
  2516. return true
  2517. end
  2518. return false
  2519. end
  2520.  
  2521. --[[ wh_main_trig_grn_orc_warboss_character_killer ]]--
  2522.  
  2523. function wh_main_trig_grn_orc_warboss_character_killer_impl (context)
  2524. return context:character():character_subtype("grn_orc_warboss") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  2525. end
  2526.  
  2527. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  2528. function (context)
  2529. if wh_main_trig_grn_orc_warboss_character_killer_impl(context) then
  2530. effect.trait("wh_main_trait_grn_orc_warboss_character_killer", "agent", 1, 100, context)
  2531. return true
  2532. end
  2533. return false
  2534. end
  2535.  
  2536. --[[ wh_main_trig_has_trait_sober ]]--
  2537.  
  2538. function wh_main_trig_has_trait_sober_impl (context)
  2539. return context:character():has_trait("wh_main_trait_all_personality_all_sober")
  2540. end
  2541.  
  2542. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  2543. function (context)
  2544. if wh_main_trig_has_trait_sober_impl(context) then
  2545. effect.trait("wh_main_trait_all_personality_all_sober", "agent", 1, 3, context)
  2546. return true
  2547. end
  2548. return false
  2549. end
  2550.  
  2551. --[[ wh_main_trig_has_trait_vmp_insane ]]--
  2552.  
  2553. function wh_main_trig_has_trait_vmp_insane_impl (context)
  2554. return context:character():has_trait("wh_main_trait_all_personality_vmp_insane") and context:character():model():turn_number() > 5
  2555. end
  2556.  
  2557. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  2558. function (context)
  2559. if wh_main_trig_has_trait_vmp_insane_impl(context) then
  2560. effect.trait("wh_main_trait_all_personality_vmp_insane", "agent", 1, 25, context)
  2561. return true
  2562. end
  2563. return false
  2564. end
  2565.  
  2566. --[[ wh_main_trig_hero_fought_battle_against_chaos_not_chaos ]]--
  2567.  
  2568. function wh_main_trig_hero_fought_battle_against_chaos_not_chaos_impl (context)
  2569. return context:character():faction():culture() ~= "wh_main_chs_chaos" and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_chs_chaos") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_chs_chaos")
  2570. end
  2571.  
  2572. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2573. function (context)
  2574. if wh_main_trig_hero_fought_battle_against_chaos_not_chaos_impl(context) then
  2575. effect.trait("wh_main_trait_all_personality_all_likes_chaos", "agent", 1, 10, context)
  2576. effect.trait("wh_main_trait_all_personality_all_hates_chaos", "agent", 1, 10, context)
  2577. return true
  2578. end
  2579. return false
  2580. end
  2581.  
  2582. --[[ wh_main_trig_hero_fought_battle_against_dwarfs_not_dwarfs ]]--
  2583.  
  2584. function wh_main_trig_hero_fought_battle_against_dwarfs_not_dwarfs_impl (context)
  2585. return context:character():faction():culture() ~= "wh_main_dwf_dwarfs" and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_dwf_dwarfs") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_dwf_dwarfs")
  2586. end
  2587.  
  2588. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2589. function (context)
  2590. if wh_main_trig_hero_fought_battle_against_dwarfs_not_dwarfs_impl(context) then
  2591. effect.trait("wh_main_trait_all_personality_all_hates_dwarfs", "agent", 1, 10, context)
  2592. return true
  2593. end
  2594. return false
  2595. end
  2596.  
  2597. --[[ wh_main_trig_hero_fought_battle_against_dwarfs_not_dwarfs_chaos ]]--
  2598.  
  2599. function wh_main_trig_hero_fought_battle_against_dwarfs_not_dwarfs_chaos_impl (context)
  2600. return (context:character():faction():culture() ~= "wh_main_dwf_dwarfs" and context:character():faction():culture() ~= "wh_main_chs_chaos") and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_dwf_dwarfs") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_dwf_dwarfs")
  2601. end
  2602.  
  2603. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2604. function (context)
  2605. if wh_main_trig_hero_fought_battle_against_dwarfs_not_dwarfs_chaos_impl(context) then
  2606. effect.trait("wh_main_trait_all_personality_all_likes_dwarfs", "agent", 1, 10, context)
  2607. return true
  2608. end
  2609. return false
  2610. end
  2611.  
  2612. --[[ wh_main_trig_hero_fought_battle_against_greenskins_dwarfs ]]--
  2613.  
  2614. function wh_main_trig_hero_fought_battle_against_greenskins_dwarfs_impl (context)
  2615. return context:character():faction():culture() == "wh_main_dwf_dwarfs" and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_grn_greenskins") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_grn_greenskins")
  2616. end
  2617.  
  2618. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2619. function (context)
  2620. if wh_main_trig_hero_fought_battle_against_greenskins_dwarfs_impl(context) then
  2621. effect.trait("wh_main_trait_all_personality_all_likes_greenskins", "agent", 1, 3, context)
  2622. return true
  2623. end
  2624. return false
  2625. end
  2626.  
  2627. --[[ wh_main_trig_hero_fought_battle_against_greenskins_not_greenskins ]]--
  2628.  
  2629. function wh_main_trig_hero_fought_battle_against_greenskins_not_greenskins_impl (context)
  2630. return context:character():faction():culture() ~= "wh_main_grn_greenskins" and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_grn_greenskins") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_grn_greenskins")
  2631. end
  2632.  
  2633. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2634. function (context)
  2635. if wh_main_trig_hero_fought_battle_against_greenskins_not_greenskins_impl(context) then
  2636. effect.trait("wh_main_trait_all_personality_all_hates_greenskins", "agent", 1, 10, context)
  2637. return true
  2638. end
  2639. return false
  2640. end
  2641.  
  2642. --[[ wh_main_trig_hero_fought_battle_against_greenskins_not_greenskins_chaos_dwarfs ]]--
  2643.  
  2644. function wh_main_trig_hero_fought_battle_against_greenskins_not_greenskins_chaos_dwarfs_impl (context)
  2645. return (context:character():faction():culture() ~= "wh_main_dwf_dwarfs" and context:character():faction():culture() ~= "wh_main_grn_greenskins" and context:character():faction():culture() ~= "wh_main_chs_chaos") and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_grn_greenskins") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_grn_greenskins")
  2646. end
  2647.  
  2648. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2649. function (context)
  2650. if wh_main_trig_hero_fought_battle_against_greenskins_not_greenskins_chaos_dwarfs_impl(context) then
  2651. effect.trait("wh_main_trait_all_personality_all_likes_greenskins", "agent", 1, 10, context)
  2652. return true
  2653. end
  2654. return false
  2655. end
  2656.  
  2657. --[[ wh_main_trig_hero_fought_battle_against_men_not_men ]]--
  2658.  
  2659. function wh_main_trig_hero_fought_battle_against_men_not_men_impl (context)
  2660. return (context:character():faction():culture() ~= "wh_main_emp_empire" and context:character():faction():culture() ~= "wh_main_brt_bretonnia") and (char_is_attacker_hero(context:character()) and (context:character():model():pending_battle():defender():faction():culture() == "wh_main_emp_empire" or context:character():model():pending_battle():defender():faction():culture() == "wh_main_brt_bretonnia")) or (char_is_defender_hero(context:character()) and (context:character():model():pending_battle():attacker():faction():culture() == "wh_main_emp_empire" or context:character():model():pending_battle():attacker():faction():culture() == "wh_main_brt_bretonnia"))
  2661. end
  2662.  
  2663. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2664. function (context)
  2665. if wh_main_trig_hero_fought_battle_against_men_not_men_impl(context) then
  2666. effect.trait("wh_main_trait_all_personality_all_hates_men", "agent", 1, 10, context)
  2667. return true
  2668. end
  2669. return false
  2670. end
  2671.  
  2672. --[[ wh_main_trig_hero_fought_battle_against_men_not_men_chaos ]]--
  2673.  
  2674. function wh_main_trig_hero_fought_battle_against_men_not_men_chaos_impl (context)
  2675. return (context:character():faction():culture() ~= "wh_main_emp_empire" and context:character():faction():culture() ~= "wh_main_brt_bretonnia" and context:character():faction():culture() ~= "wh_main_chs_chaos") and (char_is_attacker_hero(context:character()) and (context:character():model():pending_battle():defender():faction():culture() == "wh_main_emp_empire" or context:character():model():pending_battle():defender():faction():culture() == "wh_main_brt_bretonnia")) or (char_is_defender_hero(context:character()) and (context:character():model():pending_battle():attacker():faction():culture() == "wh_main_emp_empire" or context:character():model():pending_battle():attacker():faction():culture() == "wh_main_brt_bretonnia"))
  2676. end
  2677.  
  2678. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2679. function (context)
  2680. if wh_main_trig_hero_fought_battle_against_men_not_men_chaos_impl(context) then
  2681. effect.trait("wh_main_trait_all_personality_all_likes_men", "agent", 1, 10, context)
  2682. return true
  2683. end
  2684. return false
  2685. end
  2686.  
  2687. --[[ wh_main_trig_hero_fought_battle_against_vampire_counts_not_vampire_counts ]]--
  2688.  
  2689. function wh_main_trig_hero_fought_battle_against_vampire_counts_not_vampire_counts_impl (context)
  2690. return context:character():faction():culture() ~= "wh_main_vmp_vampire_counts" and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_vmp_vampire_counts") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_vmp_vampire_counts")
  2691. end
  2692.  
  2693. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2694. function (context)
  2695. if wh_main_trig_hero_fought_battle_against_vampire_counts_not_vampire_counts_impl(context) then
  2696. effect.trait("wh_main_trait_all_personality_all_hates_vampire_counts", "agent", 1, 10, context)
  2697. return true
  2698. end
  2699. return false
  2700. end
  2701.  
  2702. --[[ wh_main_trig_hero_fought_battle_against_vampire_counts_not_vampire_counts_chaos ]]--
  2703.  
  2704. function wh_main_trig_hero_fought_battle_against_vampire_counts_not_vampire_counts_chaos_impl (context)
  2705. return (context:character():faction():culture() ~= "wh_main_vmp_vampire_counts" and context:character():faction():culture() ~= "wh_main_chs_chaos") and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_vmp_vampire_counts") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_vmp_vampire_counts")
  2706. end
  2707.  
  2708. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2709. function (context)
  2710. if wh_main_trig_hero_fought_battle_against_vampire_counts_not_vampire_counts_chaos_impl(context) then
  2711. effect.trait("wh_main_trait_all_personality_all_likes_vampire_counts", "agent", 1, 10, context)
  2712. return true
  2713. end
  2714. return false
  2715. end
  2716.  
  2717. --[[ wh_main_trig_hero_fought_in_battle ]]--
  2718.  
  2719. function wh_main_trig_hero_fought_in_battle_impl (context)
  2720. return context:character():fought_in_battle()
  2721. end
  2722.  
  2723. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2724. function (context)
  2725. if wh_main_trig_hero_fought_in_battle_impl(context) then
  2726. effect.trait("wh_main_trait_all_personality_all_energetic", "agent", 1, 5, context)
  2727. effect.trait("wh_main_trait_general_personality_all_bravery", "agent", 1, 6, context)
  2728. effect.trait("wh_main_trait_general_military_barbarian_berserker", "agent", 1, 6, context)
  2729. effect.trait("wh_main_trait_general_military_all_fighter", "agent", 1, 6, context)
  2730. return true
  2731. end
  2732. return false
  2733. end
  2734.  
  2735. --[[ wh_main_trig_hero_fought_in_battle_has_trait_lazy ]]--
  2736.  
  2737. function wh_main_trig_hero_fought_in_battle_has_trait_lazy_impl (context)
  2738. return context:character():fought_in_battle() and context:character():has_trait("wh_main_trait_all_personality_all_lazy")
  2739. end
  2740.  
  2741. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2742. function (context)
  2743. if wh_main_trig_hero_fought_in_battle_has_trait_lazy_impl(context) then
  2744. effect.trait("wh_main_trait_all_personality_all_energetic", "agent", 1, 85, context)
  2745. return true
  2746. end
  2747. return false
  2748. end
  2749.  
  2750. --[[ wh_main_trig_hero_land_lost_battle ]]--
  2751.  
  2752. function wh_main_trig_hero_land_lost_battle_impl (context)
  2753. return not context:character():won_battle()
  2754. end
  2755.  
  2756. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2757. function (context)
  2758. if wh_main_trig_hero_land_lost_battle_impl(context) then
  2759. effect.trait("wh_main_trait_all_personality_all_sober", "agent", 1, 10, context)
  2760. effect.trait("wh_main_trait_all_personality_all_lewd", "agent", 1, 1, context)
  2761. effect.trait("wh_trait_general_personality_all_sick", "agent", 1, 5, context)
  2762. return true
  2763. end
  2764. return false
  2765. end
  2766.  
  2767. --[[ wh_main_trig_hero_land_lost_battle_as_dwarfs ]]--
  2768.  
  2769. function wh_main_trig_hero_land_lost_battle_as_dwarfs_impl (context)
  2770. return context:character():faction():culture() == "wh_main_dwf_dwarfs" and not context:character():won_battle()
  2771. end
  2772.  
  2773. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2774. function (context)
  2775. if wh_main_trig_hero_land_lost_battle_as_dwarfs_impl(context) then
  2776. effect.trait("wh_main_trait_ruler_personality_dwf_grudge", "agent", 1, 10, context)
  2777. effect.trait("wh_main_trait_all_personality_dwf_grumbler", "agent", 1, 10, context)
  2778. return true
  2779. end
  2780. return false
  2781. end
  2782.  
  2783. --[[ wh_main_trig_hero_land_lost_battle_as_greenskins ]]--
  2784.  
  2785. function wh_main_trig_hero_land_lost_battle_as_greenskins_impl (context)
  2786. return context:character():faction():culture() == "wh_main_grn_greenskins" and not context:character():won_battle()
  2787. end
  2788.  
  2789. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2790. function (context)
  2791. if wh_main_trig_hero_land_lost_battle_as_greenskins_impl(context) then
  2792. effect.trait("wh_main_trait_all_personality_grn_bragger", "agent", 1, 4, context)
  2793. effect.trait("wh_main_trait_all_personality_grn_gloomy", "agent", 1, 12, context)
  2794. return true
  2795. end
  2796. return false
  2797. end
  2798.  
  2799. --[[ wh_main_trig_hero_land_lost_battle_as_vampire_counts ]]--
  2800.  
  2801. function wh_main_trig_hero_land_lost_battle_as_vampire_counts_impl (context)
  2802. return context:character():faction():culture() == "wh_main_vmp_vampire_counts"and not context:character():won_battle()
  2803. end
  2804.  
  2805. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2806. function (context)
  2807. if wh_main_trig_hero_land_lost_battle_as_vampire_counts_impl(context) then
  2808. effect.trait("wh_main_trait_all_personality_vmp_insane", "agent", 1, 12, context)
  2809. return true
  2810. end
  2811. return false
  2812. end
  2813.  
  2814. --[[ wh_main_trig_hero_lost_battle_against_chaos_not_chaos ]]--
  2815.  
  2816. function wh_main_trig_hero_lost_battle_against_chaos_not_chaos_impl (context)
  2817. return not context:character():won_battle() and not context:character():faction():culture() == "wh_main_chs_chaos" and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_chs_chaos") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_chs_chaos")
  2818. end
  2819.  
  2820. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2821. function (context)
  2822. if wh_main_trig_hero_lost_battle_against_chaos_not_chaos_impl(context) then
  2823. effect.trait("wh_main_trait_all_personality_all_fears_chaos", "agent", 1, 10, context)
  2824. return true
  2825. end
  2826. return false
  2827. end
  2828.  
  2829. --[[ wh_main_trig_hero_lost_battle_against_dwarfs_not_dwarfs ]]--
  2830.  
  2831. function wh_main_trig_hero_lost_battle_against_dwarfs_not_dwarfs_impl (context)
  2832. return not context:character():won_battle() and not context:character():faction():culture() == "wh_main_dwf_dwarfs" and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_dwf_dwarfs") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_dwf_dwarfs")
  2833. end
  2834.  
  2835. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2836. function (context)
  2837. if wh_main_trig_hero_lost_battle_against_dwarfs_not_dwarfs_impl(context) then
  2838. effect.trait("wh_main_trait_all_personality_all_fears_dwarfs", "agent", 1, 10, context)
  2839. return true
  2840. end
  2841. return false
  2842. end
  2843.  
  2844. --[[ wh_main_trig_hero_lost_battle_against_greenskins_not_greenskins ]]--
  2845.  
  2846. function wh_main_trig_hero_lost_battle_against_greenskins_not_greenskins_impl (context)
  2847. return not context:character():won_battle() and not context:character():faction():culture() == "wh_main_grn_greenskins" and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_grn_greenskins") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_grn_greenskins")
  2848. end
  2849.  
  2850. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2851. function (context)
  2852. if wh_main_trig_hero_lost_battle_against_greenskins_not_greenskins_impl(context) then
  2853. effect.trait("wh_main_trait_all_personality_all_fears_greenskins", "agent", 1, 10, context)
  2854. return true
  2855. end
  2856. return false
  2857. end
  2858.  
  2859. --[[ wh_main_trig_hero_lost_battle_against_men_not_men ]]--
  2860.  
  2861. function wh_main_trig_hero_lost_battle_against_men_not_men_impl (context)
  2862. return not context:character():won_battle() and not (context:character():faction():culture() == "wh_main_emp_empire" or context:character():faction():culture() == "wh_main_brt_bretonnia") and (char_is_attacker_hero(context:character()) and (context:character():model():pending_battle():defender():faction():culture() == "wh_main_emp_empire" or context:character():model():pending_battle():defender():faction():culture() == "wh_main_brt_bretonnia")) or (char_is_defender_hero(context:character()) and (context:character():model():pending_battle():attacker():faction():culture() == "wh_main_emp_empire" or context:character():model():pending_battle():attacker():faction():culture() == "wh_main_brt_bretonnia"))
  2863. end
  2864.  
  2865. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2866. function (context)
  2867. if wh_main_trig_hero_lost_battle_against_men_not_men_impl(context) then
  2868. effect.trait("wh_main_trait_all_personality_all_fears_men", "agent", 1, 10, context)
  2869. return true
  2870. end
  2871. return false
  2872. end
  2873.  
  2874. --[[ wh_main_trig_hero_lost_battle_against_vampire_counts_not_vampire_counts ]]--
  2875.  
  2876. function wh_main_trig_hero_lost_battle_against_vampire_counts_not_vampire_counts_impl (context)
  2877. return not context:character():won_battle() and not context:character():faction():culture() == "wh_main_vmp_vampire_counts" and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():defender():faction():culture() == "wh_main_vmp_vampire_counts") or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():attacker():faction():culture() == "wh_main_vmp_vampire_counts")
  2878. end
  2879.  
  2880. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2881. function (context)
  2882. if wh_main_trig_hero_lost_battle_against_vampire_counts_not_vampire_counts_impl(context) then
  2883. effect.trait("wh_main_trait_all_personality_all_fears_vampire_counts", "agent", 1, 10, context)
  2884. return true
  2885. end
  2886. return false
  2887. end
  2888.  
  2889. --[[ wh_main_trig_hero_lost_battle_as_chaos ]]--
  2890.  
  2891. function wh_main_trig_hero_lost_battle_as_chaos_impl (context)
  2892. return context:character():faction():culture() == "wh_main_chs_chaos" and not context:character():won_battle()
  2893. end
  2894.  
  2895. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2896. function (context)
  2897. if wh_main_trig_hero_lost_battle_as_chaos_impl(context) then
  2898. effect.trait("wh_main_trait_all_personality_chs_touched", "agent", 1, 13, context)
  2899. return true
  2900. end
  2901. return false
  2902. end
  2903.  
  2904. --[[ wh_main_trig_hero_lost_battle_land_attacking_valiant_defeat ]]--
  2905.  
  2906. function wh_main_trig_hero_lost_battle_land_attacking_valiant_defeat_impl (context)
  2907. return not context:character():won_battle() and char_is_attacker_hero(context:character()) and context:character():model():pending_battle():attacker_battle_result() == "valiant_defeat"
  2908. end
  2909.  
  2910. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2911. function (context)
  2912. if wh_main_trig_hero_lost_battle_land_attacking_valiant_defeat_impl(context) then
  2913. effect.trait("wh_main_trait_general_military_all_survivor", "agent", 1, 10, context)
  2914. return true
  2915. end
  2916. return false
  2917. end
  2918.  
  2919. --[[ wh_main_trig_hero_lost_battle_land_defending_close_defeat ]]--
  2920.  
  2921. function wh_main_trig_hero_lost_battle_land_defending_close_defeat_impl (context)
  2922. return not context:character():won_battle() and char_is_defender_hero(context:character()) and context:character():model():pending_battle():defender_battle_result() == "close_defeat"
  2923. end
  2924.  
  2925. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2926. function (context)
  2927. if wh_main_trig_hero_lost_battle_land_defending_close_defeat_impl(context) then
  2928. effect.trait("wh_main_trait_all_personality_all_drink", "agent", 1, 10, context)
  2929. return true
  2930. end
  2931. return false
  2932. end
  2933.  
  2934. --[[ wh_main_trig_hero_lost_battle_land_defending_valiant_defeat ]]--
  2935.  
  2936. function wh_main_trig_hero_lost_battle_land_defending_valiant_defeat_impl (context)
  2937. return not context:character():won_battle() and char_is_defender_hero(context:character()) and context:character():model():pending_battle():defender_battle_result() == "valiant_defeat"
  2938. end
  2939.  
  2940. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2941. function (context)
  2942. if wh_main_trig_hero_lost_battle_land_defending_valiant_defeat_impl(context) then
  2943. effect.trait("wh_main_trait_general_military_all_fighter", "agent", 1, 10, context)
  2944. return true
  2945. end
  2946. return false
  2947. end
  2948.  
  2949. --[[ wh_main_trig_hero_not_fought_in_battle_player_only ]]--
  2950.  
  2951. function wh_main_trig_hero_not_fought_in_battle_player_only_impl (context)
  2952. return context:character():faction():is_human() and context:character():fought_in_battle()
  2953. end
  2954.  
  2955. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2956. function (context)
  2957. if wh_main_trig_hero_not_fought_in_battle_player_only_impl(context) then
  2958. effect.trait("wh_main_trait_general_personality_all_cowardice", "agent", 1, 6, context)
  2959. return true
  2960. end
  2961. return false
  2962. end
  2963.  
  2964. --[[ wh_main_trig_hero_won_battle_chaos ]]--
  2965.  
  2966. function wh_main_trig_hero_won_battle_chaos_impl (context)
  2967. return context:character():faction():culture() == "wh_main_chs_chaos" and context:character():won_battle()
  2968. end
  2969.  
  2970. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2971. function (context)
  2972. if wh_main_trig_hero_won_battle_chaos_impl(context) then
  2973. effect.trait("wh_main_trait_all_personality_chs_stench", "agent", 1, 3, context)
  2974. effect.trait("wh_main_trait_all_personality_chs_mantle", "agent", 1, 3, context)
  2975. effect.trait("wh_main_trait_all_personality_chs_fury", "agent", 1, 6, context)
  2976. return true
  2977. end
  2978. return false
  2979. end
  2980.  
  2981. --[[ wh_main_trig_hero_won_battle_enemy_decimated_empire ]]--
  2982.  
  2983. function wh_main_trig_hero_won_battle_enemy_decimated_empire_impl (context)
  2984. return context:character():faction():subculture() == "wh_main_sc_emp_empire" and context:character():won_battle() and (char_is_attacker_hero(context:character()) and context:character():model():pending_battle():percentage_of_defender_killed() >= 70) or (char_is_defender_hero(context:character()) and context:character():model():pending_battle():percentage_of_attacker_killed() >= 70)
  2985. end
  2986.  
  2987. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  2988. function (context)
  2989. if wh_main_trig_hero_won_battle_enemy_decimated_empire_impl(context) then
  2990. effect.trait("wh_trait_general_personality_emp_monster", "agent", 1, 15, context)
  2991. return true
  2992. end
  2993. return false
  2994. end
  2995.  
  2996. --[[ wh_main_trig_hero_won_battle_land_attacking_decisive_victory ]]--
  2997.  
  2998. function wh_main_trig_hero_won_battle_land_attacking_decisive_victory_impl (context)
  2999. return char_is_attacker_hero(context:character()) and context:character():won_battle() and context:character():model():pending_battle():attacker_battle_result() == "decisive_victory"
  3000. end
  3001.  
  3002. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  3003. function (context)
  3004. if wh_main_trig_hero_won_battle_land_attacking_decisive_victory_impl(context) then
  3005. effect.trait("wh_main_trait_general_personality_all_fervour", "agent", 1, 5, context)
  3006. return true
  3007. end
  3008. return false
  3009. end
  3010.  
  3011. --[[ wh_main_trig_hero_won_battle_land_defending_pyrrhic_victory ]]--
  3012.  
  3013. function wh_main_trig_hero_won_battle_land_defending_pyrrhic_victory_impl (context)
  3014. return context:character():won_battle() and char_is_defender_hero(context:character()) and context:character():model():pending_battle():defender_battle_result() == "pyrrhic_victory"
  3015. end
  3016.  
  3017. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  3018. function (context)
  3019. if wh_main_trig_hero_won_battle_land_defending_pyrrhic_victory_impl(context) then
  3020. effect.trait("wh_main_trait_general_military_all_tactician", "agent", 1, 10, context)
  3021. return true
  3022. end
  3023. return false
  3024. end
  3025.  
  3026. --[[ wh_main_trig_hero_won_battle_vampire_counts ]]--
  3027.  
  3028. function wh_main_trig_hero_won_battle_vampire_counts_impl (context)
  3029. return context:character():faction():culture() == "wh_main_vmp_vampire_counts" and context:character():won_battle()
  3030. end
  3031.  
  3032. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  3033. function (context)
  3034. if wh_main_trig_hero_won_battle_vampire_counts_impl(context) then
  3035. effect.trait("wh_main_trait_all_personality_vmp_fear_incarnate", "agent", 1, 5, context)
  3036. return true
  3037. end
  3038. return false
  3039. end
  3040.  
  3041. --[[ wh_main_trig_runesmith_action_success_assist_army ]]--
  3042.  
  3043. function wh_main_trig_runesmith_action_success_assist_army_impl (context)
  3044. return context:character():has_skill("wh_main_skill_dwf_runesmith_campaign_rune_of_spellbreaking") and context:character():is_embedded_in_military_force()
  3045. end
  3046.  
  3047. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  3048. function (context)
  3049. if wh_main_trig_runesmith_action_success_assist_army_impl(context) then
  3050. effect.trait("wh_main_trait_action_runesmith_assist_army", "agent", 1, 5, context)
  3051. return true
  3052. end
  3053. return false
  3054. end
  3055.  
  3056. --[[ wh_main_trig_runesmith_action_success_assist_province ]]--
  3057.  
  3058. function wh_main_trig_runesmith_action_success_assist_province_impl (context)
  3059. return context:character():character_type("runesmith") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name()
  3060. end
  3061.  
  3062. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  3063. function (context)
  3064. if wh_main_trig_runesmith_action_success_assist_province_impl(context) then
  3065. effect.trait("wh_main_trait_action_runesmith_assist_province", "agent", 1, 5, context)
  3066. return true
  3067. end
  3068. return false
  3069. end
  3070.  
  3071. --[[ wh_main_trig_runesmith_action_success_hinder_army ]]--
  3072.  
  3073. function wh_main_trig_runesmith_action_success_hinder_army_impl (context)
  3074. return context:character():character_type("runesmith") and context:mission_result_success() and context:agent_action_key() == "wh_main_agent_action_runesmith_hinder_army"
  3075. end
  3076.  
  3077. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  3078. function (context)
  3079. if wh_main_trig_runesmith_action_success_hinder_army_impl(context) then
  3080. effect.trait("wh_main_trait_action_runesmith_hinder_army", "agent", 1, 15, context)
  3081. return true
  3082. end
  3083. return false
  3084. end
  3085.  
  3086. --[[ wh_main_trig_runesmith_action_success_hinder_character ]]--
  3087.  
  3088. function wh_main_trig_runesmith_action_success_hinder_character_impl (context)
  3089. return context:character():character_type("runesmith") and (context:mission_result_success() or context:mission_result_critial_success()) and context:agent_action_key() == "wh_main_agent_action_runesmith_hinder_character"
  3090. end
  3091.  
  3092. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  3093. function (context)
  3094. if wh_main_trig_runesmith_action_success_hinder_character_impl(context) then
  3095. effect.trait("wh_main_trait_action_runesmith_hinder_character", "agent", 1, 25, context)
  3096. return true
  3097. end
  3098. return false
  3099. end
  3100.  
  3101. --[[ wh_main_trig_runesmith_action_success_hinder_province ]]--
  3102.  
  3103. function wh_main_trig_runesmith_action_success_hinder_province_impl (context)
  3104. return context:character():character_type("runesmith") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() ~= context:character():region():owning_faction():name()
  3105. end
  3106.  
  3107. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  3108. function (context)
  3109. if wh_main_trig_runesmith_action_success_hinder_province_impl(context) then
  3110. effect.trait("wh_main_trait_action_runesmith_hinder_province", "agent", 1, 5, context)
  3111. return true
  3112. end
  3113. return false
  3114. end
  3115.  
  3116. --[[ wh_main_trig_runesmith_action_success_hinder_settlement ]]--
  3117.  
  3118. function wh_main_trig_runesmith_action_success_hinder_settlement_impl (context)
  3119. return context:character():character_type("runesmith") and context:mission_result_success()
  3120. end
  3121.  
  3122. events.CharacterGarrisonTargetAction[#events.CharacterGarrisonTargetAction+1] =
  3123. function (context)
  3124. if wh_main_trig_runesmith_action_success_hinder_settlement_impl(context) then
  3125. effect.trait("wh_main_trait_action_runesmith_hinder_settlement", "agent", 1, 15, context)
  3126. return true
  3127. end
  3128. return false
  3129. end
  3130.  
  3131. --[[ wh_main_trig_spy_action_success_assist_army ]]--
  3132.  
  3133. function wh_main_trig_spy_action_success_assist_army_impl (context)
  3134. return context:character():has_skill("wh_main_skill_all_spy_campaign_watcher") and context:character():is_embedded_in_military_force()
  3135. end
  3136.  
  3137. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  3138. function (context)
  3139. if wh_main_trig_spy_action_success_assist_army_impl(context) then
  3140. effect.trait("wh_main_trait_action_spy_assist_army", "agent", 1, 5, context)
  3141. return true
  3142. end
  3143. return false
  3144. end
  3145.  
  3146. --[[ wh_main_trig_spy_action_success_assist_province ]]--
  3147.  
  3148. function wh_main_trig_spy_action_success_assist_province_impl (context)
  3149. return context:character():character_type("spy") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name()
  3150. end
  3151.  
  3152. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  3153. function (context)
  3154. if wh_main_trig_spy_action_success_assist_province_impl(context) then
  3155. effect.trait("wh_main_trait_action_spy_assist_province", "agent", 1, 5, context)
  3156. return true
  3157. end
  3158. return false
  3159. end
  3160.  
  3161. --[[ wh_main_trig_spy_action_success_hinder_army ]]--
  3162.  
  3163. function wh_main_trig_spy_action_success_hinder_army_impl (context)
  3164. return context:character():character_type("spy") and context:mission_result_success() and context:agent_action_key() == "wh_main_agent_action_spy_hinder_army"
  3165. end
  3166.  
  3167. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  3168. function (context)
  3169. if wh_main_trig_spy_action_success_hinder_army_impl(context) then
  3170. effect.trait("wh_main_trait_action_spy_passive_ability", "agent", 1, 5, context)
  3171. effect.trait("wh_main_trait_action_spy_hinder_army", "agent", 1, 15, context)
  3172. return true
  3173. end
  3174. return false
  3175. end
  3176.  
  3177. --[[ wh_main_trig_spy_action_success_hinder_character ]]--
  3178.  
  3179. function wh_main_trig_spy_action_success_hinder_character_impl (context)
  3180. return context:character():character_type("spy") and (context:mission_result_success() or context:mission_result_critial_success()) and context:agent_action_key() == "wh_main_agent_action_spy_hinder_character"
  3181. end
  3182.  
  3183. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  3184. function (context)
  3185. if wh_main_trig_spy_action_success_hinder_character_impl(context) then
  3186. effect.trait("wh_main_trait_action_spy_passive_ability", "agent", 1, 10, context)
  3187. effect.trait("wh_main_trait_action_spy_hinder_character", "agent", 1, 25, context)
  3188. return true
  3189. end
  3190. return false
  3191. end
  3192.  
  3193. --[[ wh_main_trig_spy_action_success_hinder_province ]]--
  3194.  
  3195. function wh_main_trig_spy_action_success_hinder_province_impl (context)
  3196. return context:character():character_type("spy") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() ~= context:character():region():owning_faction():name()
  3197. end
  3198.  
  3199. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  3200. function (context)
  3201. if wh_main_trig_spy_action_success_hinder_province_impl(context) then
  3202. effect.trait("wh_main_trait_action_spy_hinder_province", "agent", 1, 5, context)
  3203. return true
  3204. end
  3205. return false
  3206. end
  3207.  
  3208. --[[ wh_main_trig_spy_action_success_hinder_settlement ]]--
  3209.  
  3210. function wh_main_trig_spy_action_success_hinder_settlement_impl (context)
  3211. return context:character():character_type("spy") and context:mission_result_success()
  3212. end
  3213.  
  3214. events.CharacterGarrisonTargetAction[#events.CharacterGarrisonTargetAction+1] =
  3215. function (context)
  3216. if wh_main_trig_spy_action_success_hinder_settlement_impl(context) then
  3217. effect.trait("wh_main_trait_action_spy_hinder_settlement", "agent", 1, 15, context)
  3218. effect.trait("wh_main_trait_action_spy_passive_ability", "agent", 1, 5, context)
  3219. return true
  3220. end
  3221. return false
  3222. end
  3223.  
  3224. --[[ wh_main_trig_unit_completed_battle_night_goblin_shaman ]]--
  3225.  
  3226. function wh_main_trig_unit_completed_battle_night_goblin_shaman_impl (context)
  3227. return context:character():character_subtype("grn_night_goblin_shaman")
  3228. end
  3229.  
  3230. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  3231. function (context)
  3232. if wh_main_trig_unit_completed_battle_night_goblin_shaman_impl(context) then
  3233. effect.trait("wh_main_trait_night_goblin_shaman_personality_grn_goblin_mushrooms", "agent", 1, 20, context)
  3234. return true
  3235. end
  3236. return false
  3237. end
  3238.  
  3239. --[[ wh_main_trig_unit_completed_battle_orc_shaman ]]--
  3240.  
  3241. function wh_main_trig_unit_completed_battle_orc_shaman_impl (context)
  3242. return context:character():character_subtype("grn_orc_shaman")
  3243. end
  3244.  
  3245. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  3246. function (context)
  3247. if wh_main_trig_unit_completed_battle_orc_shaman_impl(context) then
  3248. effect.trait("wh_main_trait_orc_shaman_personality_grn_dance", "agent", 1, 20, context)
  3249. return true
  3250. end
  3251. return false
  3252. end
  3253.  
  3254. --[[ wh_main_trig_vmp_banshee_character_killer ]]--
  3255.  
  3256. function wh_main_trig_vmp_banshee_character_killer_impl (context)
  3257. return context:character():character_subtype("vmp_banshee") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  3258. end
  3259.  
  3260. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  3261. function (context)
  3262. if wh_main_trig_vmp_banshee_character_killer_impl(context) then
  3263. effect.trait("wh_main_trait_vmp_banshee_character_killer", "agent", 1, 100, context)
  3264. return true
  3265. end
  3266. return false
  3267. end
  3268.  
  3269. --[[ wh_main_trig_vmp_lord_character_killer ]]--
  3270.  
  3271. function wh_main_trig_vmp_lord_character_killer_impl (context)
  3272. return context:character():character_subtype("vmp_lord") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  3273. end
  3274.  
  3275. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  3276. function (context)
  3277. if wh_main_trig_vmp_lord_character_killer_impl(context) then
  3278. effect.trait("wh_main_trait_vmp_lord_character_killer", "agent", 1, 100, context)
  3279. return true
  3280. end
  3281. return false
  3282. end
  3283.  
  3284. --[[ wh_main_trig_vmp_master_necromancer_caster ]]--
  3285.  
  3286. function wh_main_trig_vmp_master_necromancer_caster_impl (context)
  3287. return context:character():character_subtype("vmp_master_necromancer") and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  3288. end
  3289.  
  3290. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  3291. function (context)
  3292. if wh_main_trig_vmp_master_necromancer_caster_impl(context) then
  3293. effect.trait("wh_main_trait_vmp_master_necromancer_caster", "agent", 1, 100, context)
  3294. return true
  3295. end
  3296. return false
  3297. end
  3298.  
  3299. --[[ wh_main_trig_vmp_necromancer_caster ]]--
  3300.  
  3301. function wh_main_trig_vmp_necromancer_caster_impl (context)
  3302. return context:character():character_subtype("vmp_necromancer") and char_spent_skill_point_on_buff_skill(context:skill_point_spent_on())
  3303. end
  3304.  
  3305. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  3306. function (context)
  3307. if wh_main_trig_vmp_necromancer_caster_impl(context) then
  3308. effect.trait("wh_main_trait_vmp_necromancer_caster", "agent", 1, 100, context)
  3309. return true
  3310. end
  3311. return false
  3312. end
  3313.  
  3314. --[[ wh_main_trig_vmp_vampire_unit_killer ]]--
  3315.  
  3316. function wh_main_trig_vmp_vampire_unit_killer_impl (context)
  3317. return context:character():character_subtype("vmp_vampire") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  3318. end
  3319.  
  3320. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  3321. function (context)
  3322. if wh_main_trig_vmp_vampire_unit_killer_impl(context) then
  3323. effect.trait("wh_main_trait_vmp_vampire_unit_killer", "agent", 1, 100, context)
  3324. return true
  3325. end
  3326. return false
  3327. end
  3328.  
  3329. --[[ wh_main_trig_vmp_wight_king_tank ]]--
  3330.  
  3331. function wh_main_trig_vmp_wight_king_tank_impl (context)
  3332. return context:character():character_subtype("vmp_wight_king") and char_spent_skill_point_on_level2_skill(context:skill_point_spent_on())
  3333. end
  3334.  
  3335. events.CharacterSkillPointAllocated[#events.CharacterSkillPointAllocated+1] =
  3336. function (context)
  3337. if wh_main_trig_vmp_wight_king_tank_impl(context) then
  3338. effect.trait("wh_main_trait_vmp_wight_king_tank", "agent", 1, 100, context)
  3339. return true
  3340. end
  3341. return false
  3342. end
  3343.  
  3344. --[[ wh_main_trig_wizard_action_success_assist_army ]]--
  3345.  
  3346. function wh_main_trig_wizard_action_success_assist_army_impl (context)
  3347. return context:character():has_skill("wh_main_skill_all_wizard_campaign_magic_detection") and context:character():is_embedded_in_military_force()
  3348. end
  3349.  
  3350. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  3351. function (context)
  3352. if wh_main_trig_wizard_action_success_assist_army_impl(context) then
  3353. effect.trait("wh_main_trait_action_wizard_assist_army", "agent", 1, 5, context)
  3354. return true
  3355. end
  3356. return false
  3357. end
  3358.  
  3359. --[[ wh_main_trig_wizard_action_success_assist_province ]]--
  3360.  
  3361. function wh_main_trig_wizard_action_success_assist_province_impl (context)
  3362. return context:character():character_type("wizard") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() == context:character():region():owning_faction():name()
  3363. end
  3364.  
  3365. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  3366. function (context)
  3367. if wh_main_trig_wizard_action_success_assist_province_impl(context) then
  3368. effect.trait("wh_main_trait_action_wizard_assist_province", "agent", 1, 5, context)
  3369. return true
  3370. end
  3371. return false
  3372. end
  3373.  
  3374. --[[ wh_main_trig_wizard_action_success_hinder_army ]]--
  3375.  
  3376. function wh_main_trig_wizard_action_success_hinder_army_impl (context)
  3377. return context:character():character_type("wizard") and context:mission_result_success() and context:agent_action_key() == "wh_main_agent_action_wizard_hinder_army"
  3378. end
  3379.  
  3380. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  3381. function (context)
  3382. if wh_main_trig_wizard_action_success_hinder_army_impl(context) then
  3383. effect.trait("wh_main_trait_action_wizard_hinder_army", "agent", 1, 15, context)
  3384. return true
  3385. end
  3386. return false
  3387. end
  3388.  
  3389. --[[ wh_main_trig_wizard_action_success_hinder_character ]]--
  3390.  
  3391. function wh_main_trig_wizard_action_success_hinder_character_impl (context)
  3392. return context:character():character_type("wizard") and (context:mission_result_success() or context:mission_result_critial_success()) and context:agent_action_key() == "wh_main_agent_action_wizard_hinder_character"
  3393. end
  3394.  
  3395. events.CharacterCharacterTargetAction[#events.CharacterCharacterTargetAction+1] =
  3396. function (context)
  3397. if wh_main_trig_wizard_action_success_hinder_character_impl(context) then
  3398. effect.trait("wh_main_trait_action_wizard_hinder_character", "agent", 1, 25, context)
  3399. return true
  3400. end
  3401. return false
  3402. end
  3403.  
  3404. --[[ wh_main_trig_wizard_action_success_hinder_province ]]--
  3405.  
  3406. function wh_main_trig_wizard_action_success_hinder_province_impl (context)
  3407. return context:character():character_type("wizard") and context:character():is_deployed() and context:character():has_region() and context:character():faction():name() ~= context:character():region():owning_faction():name()
  3408. end
  3409.  
  3410. events.CharacterTurnStart[#events.CharacterTurnStart+1] =
  3411. function (context)
  3412. if wh_main_trig_wizard_action_success_hinder_province_impl(context) then
  3413. effect.trait("wh_main_trait_action_wizard_hinder_province", "agent", 1, 5, context)
  3414. return true
  3415. end
  3416. return false
  3417. end
  3418.  
  3419. --[[ wh_main_trig_wizard_action_success_hinder_settlement ]]--
  3420.  
  3421. function wh_main_trig_wizard_action_success_hinder_settlement_impl (context)
  3422. return context:character():character_type("wizard") and context:mission_result_success()
  3423. end
  3424.  
  3425. events.CharacterGarrisonTargetAction[#events.CharacterGarrisonTargetAction+1] =
  3426. function (context)
  3427. if wh_main_trig_wizard_action_success_hinder_settlement_impl(context) then
  3428. effect.trait("wh_main_trait_action_wizard_hinder_settlement", "agent", 1, 15, context)
  3429. return true
  3430. end
  3431. return false
  3432. end
  3433.  
  3434. --[[ wh_main_trig_wizard_won_battle_vampire_counts ]]--
  3435.  
  3436. function wh_main_trig_wizard_won_battle_vampire_counts_impl (context)
  3437. return context:character():character_subtype("vmp_necromancer") and context:character():won_battle()
  3438. end
  3439.  
  3440. events.HeroCharacterParticipatedInBattle[#events.HeroCharacterParticipatedInBattle+1] =
  3441. function (context)
  3442. if wh_main_trig_wizard_won_battle_vampire_counts_impl(context) then
  3443. effect.trait("wh_main_trait_wizard_personality_vmp_lore", "agent", 1, 20, context)
  3444. return true
  3445. end
  3446. return false
  3447. end
Add Comment
Please, Sign In to add comment