﻿######################################
# Standard actions for random events #
######################################

martial_lifestyle_progress_pulse = { # Fires 4 times per year
	trigger = {
		has_lifestyle = martial_lifestyle
		is_playable_character = yes # Non-playable rulers shouldn't get lifestyle events, even if they still have a lifestyle.
		exists = capital_province # Because in rare situations landed AI rulers can end up without a capital.
		trigger_if = {
			limit = {
				is_ai = no
			}
			has_had_focus_for_days > 30
		}
		NOR = {
			has_character_flag = had_recent_lifestyle_ongoing_event

			# Must not currently be in a martial event chain.
			has_character_flag = is_in_martial_special_event
		}
	}

	first_valid_on_action = {
		martial_lifestyle_ongoing_events # General event pool
		martial_lifestyle_unavailable_events # Special event pool for unavailable characters (imprisoned, commanding an army, infirm, etc.)
	}
}

#Ongoing events and story cycles
martial_lifestyle_ongoing_events = {
	trigger = {
		is_available = yes
	}

	random_on_action = {
		chance_to_happen = 10 # Roughly one event every 18 months
		chance_of_no_event = {
			if = {
				limit = {
					is_ai = yes
					highest_held_title_tier >= tier_kingdom
				}
				add = 30 # No need to waste performance here
			}
			else_if = {
				limit = {
					is_ai = yes
					highest_held_title_tier >= tier_duchy
				}
				add = 70 # No need to waste performance here
			}
			else_if = {
				limit = {
					is_ai = yes
				}
				add = 95 # AI counts aren't particularly important
			}
		}

		80 = martial_lifestyle_common_events
		15 = martial_lifestyle_uncommon_events
		5 = martial_lifestyle_rare_events		
	}
}

# Characters get a Common event roughly once every 24 months (2 years). Most lifestyle events should be Common events.
martial_lifestyle_common_events = {
	random_events = {
		#STRATEGY
		100 = martial_strategy.1051 # Courtiers gossip about your skill in battle.
		100 = martial_strategy.2000 # Reading about old battles (Learning Challenge)
		100 = martial_strategy.2020 # Practicing unfair/unsporting battle tactics (Intrigue Challenge)
		100 = martial_strategy.3010 # Strategy meeting with two prominent vassals.
		100 = martial_strategy.2030 # Ensuring that your troops have the provisions they need (Stewardship Challenge)
		75 = martial_strategy.4000 # Stocking your stores or feeding your servants.
		100 = martial_strategy.4010 # Rebuilding the walls of a lesser domain county, or letting them crumble.
		100 = martial_strategy.7000 # A knight questions your blunt tactics

		#AUTHORITY
		100 = martial_authority.1031 # Mercenaries are being assholes at an inn
		100 = martial_authority.2040 # Resolving a dispute between some soldiers (Diplomacy Challenge)
		100 = martial_authority.2050 # An Extra Hand: Find a right-hand (wo)man
		100 = martial_authority_special.1100 # Soldier and Officer Fighting
		100 = martial_authority_special.1501 # Deal with Deserters
		100 = martial_authority.5000 # You visit some baronies or go partying with an important vassal.
		100 = martial_authority_special.3000 # Impress someone with your leadership
		100 = martial_authority.8000 #Your child starts murdering your knights at a tournament
		100 = martial_authority.4000 #You have an opportunity to repurpose a farming tool you discovered in the armoury

		#CHIVALRY
		100 = martial_chivalry.0001 # A peasant tries to fight you at practice
		100 = martial_chivalry.0002 # Horse Riding Accident - Hope you love horses!
		100 = martial_chivalry.0010 # Train with your signature weapon
		100 = martial_chivalry.1011 # Find an old castle
		100 = martial_chivalry.1021 # Stress triggers bad battle practice
		100 = martial_chivalry.2010 # Getting challenged to a practice duel (Prowess Challenge)
		100 = martial_chivalry.3000 # Teaching a terrible general how to train troops.
		100 = martial_chivalry.4000 # Catch some daring rustlers
		30	= martial_chivalry.5100 # You get mistaken for a commander instead of a ruler
		100 = martial_chivalry.5000 # There are rumors about you sleeping with your liege's spouse
		100 = martial_chivalry.6000 # You find an abandoned church while training in the woods


		#Learning Commander Traits
		25 = learn_commander_trait.0002 #aggressive_attacker, unyielding_defender, or flexible_leader
		25 = learn_commander_trait.0003 #Logistician, Military Engineer, forder
		25 = learn_commander_trait.0004 #Reckless or Reaver
		25 = learn_commander_trait.0006 #Holy Warrior
		25 = learn_commander_trait.0007 #Desert Warrior
		25 = learn_commander_trait.0008 #Jungle Stalker
		25 = learn_commander_trait.0009 #Winter Soldier
		100 = learn_commander_trait.1000 #Start learning chain (completely separate from the above events)

		#Alternate learning events inspired by historical battles.
		100 = historical_commander_trait.0001 #Cannae(Hannibal)	- aggressive_attacker, logistician, or flexible_leader
		100 = historical_commander_trait.0002 #Alesia(Caesar) 	- military_engineer, unyielding_defender, or reckless
		100 = historical_commander_trait.0003 #Tyre(Alexander)	- forder, military_engineer, or reaver
		100 = historical_commander_trait.0004 #Milvian(Constantine) holy_warrior, forder, or flexible_leader
		100 = historical_commander_trait.0005 #Mu'tha(Khalid)		- holy_warrior, unyielding_defender, or logistician
		100 = historical_commander_trait.0006 #Bilge Khagan
		100 = historical_commander_trait.0007  #Sun Tzu
	}
}

# Characters get an Uncommon event roughly once every 120 months (10 years). Longer event chains and lucrative opporunities should be Uncommon events.
martial_lifestyle_uncommon_events = {
	random_events = {
		100 = martial_strategy_special.1301 # Storm Your Own Castle
		100 = martial_strategy_special.1401 # March gone awry
		100 = martial_chivalry_special.1201 # Mounted Warrior Practice
		50 = martial_chivalry_special.1601 # Train a warhorse
	}
	fallback = martial_lifestyle_common_events
}

# Characters get a Rare event roughly once every 360 months (30 years). Character-defining events and easter egg events should be Rare events.
martial_lifestyle_rare_events = {
	random_events = {
		150 = lifestyle_nicknames.0005 # Martial nickname for someone who's arrogant
		150 = lifestyle_nicknames.0006 # Martial nickname when the character is humble
	}
	fallback = martial_lifestyle_uncommon_events
}

# Special event pool for unavailable characters (imprisoned, commanding an army, infirm, etc.)
martial_lifestyle_unavailable_events = {
	trigger = {
		is_available = no
	}

	random_events = {
 		# WARNING: All events in this pool *MUST* have custom is_available triggers defined.
 		# Otherwise we can wind up with weird things like imprisoned characters having a strategy discussion with their army commanders out on the campaign trail.
 		chance_to_happen = 10

		100 = martial_authority.2040 # Resolving a dispute between some soldiers (Diplomacy Challenge)
 		100 = martial_strategy.3010 # Strategy meeting with two prominent vassals.
	}
}


###############################
# ONGOING EVENT ON_ACTIONS
###############################

#Hands out the correct event for when you have a horse riding accident
horse_riding_accident_outcome = {
	events = {
		martial_chivalry.0007 #Die
		martial_chivalry.0006 #Become Near Death
		martial_chivalry.0005 #Become Severely Injured
		martial_chivalry.0004 #Become Wounded
	}
}


#Event cycle for searching for your troops (starting from warfare_progress.1401)
search_for_troops_event_selection = {
	random_events = {
		100 = martial_strategy_special.1402 #Soldiers at a local tavern
		100 = martial_strategy_special.1403 #Soldiers camping by a body of water
		100 = martial_strategy_special.1404 #Soldiers still being trained by a sergeant
		100 = martial_strategy_special.1405 #Soldiers starting to serve a preacher
		50 = martial_strategy_special.1498 #Success!
	}
}


###############################
# On actions handling the learning commander trait chain
###############################

#Select the correct event for a character to approach you with an offer to learn a trait
learn_commander_trait_offer = {
	random_events = {
		100 = learn_commander_trait.1101 #logistician
		100 = learn_commander_trait.1102 #military_engineer
		100 = learn_commander_trait.1103 #aggressive_attacker
		100 = learn_commander_trait.1104 #unyielding_defender
		100 = learn_commander_trait.1105 #forder
		100 = learn_commander_trait.1106 #flexible_leader
		100 = learn_commander_trait.1107 #desert_warrior
		100 = learn_commander_trait.1108 #jungle_stalker
		100 = learn_commander_trait.1109 #winter_soldier
		100 = learn_commander_trait.1110 #reaver
		100 = learn_commander_trait.1112 #reckless
		100 = learn_commander_trait.1113 #holy_warrior
		#Unop: Added missing traits
		100 = learn_commander_trait.1114 #open_terrain_expert 
		100 = learn_commander_trait.1115 #rough_terrain_expert
		100 = learn_commander_trait.1116 #forest_fighter
		100 = learn_commander_trait.1117 #cautious_leader
		100 = learn_commander_trait.1118 #organizer
	}
}

#Final test for correct trait
learn_commander_trait_test = {
	first_valid = {
		learn_commander_trait.1291 #Teacher is no longer with you
		learn_commander_trait.1201 #logistician
		learn_commander_trait.1202 #military_engineer
		learn_commander_trait.1203 #aggressive_attacker
		learn_commander_trait.1204 #unyielding_defender
		learn_commander_trait.1205 #forder
		learn_commander_trait.1206 #flexible_leader
		learn_commander_trait.1207 #desert_warrior
		learn_commander_trait.1208 #jungle_stalker
		learn_commander_trait.1209 #winter_soldier
		learn_commander_trait.1210 #reaver
		learn_commander_trait.1212 #reckless
		learn_commander_trait.1213 #holy_warrior
		#Unop: Added missing traits
		learn_commander_trait.1214 #open_terrain_expert
		learn_commander_trait.1215 #rough_terrain_expert
		learn_commander_trait.1216 #forest_fighter
		learn_commander_trait.1217 #cautious_leader
		learn_commander_trait.1218 #organizer
	}
}

#Success for correct trait
learn_commander_trait_success = {
	first_valid = {
		learn_commander_trait.1391 #Teacher is no longer with you
		learn_commander_trait.1301 #logistician
		learn_commander_trait.1302 #military_engineer
		learn_commander_trait.1303 #aggressive_attacker
		learn_commander_trait.1304 #unyielding_defender
		learn_commander_trait.1305 #forder
		learn_commander_trait.1306 #flexible_leader
		learn_commander_trait.1307 #desert_warrior
		learn_commander_trait.1308 #jungle_stalker
		learn_commander_trait.1309 #winter_soldier
		learn_commander_trait.1310 #reaver
		learn_commander_trait.1312 #reckless
		learn_commander_trait.1313 #holy_warrior
		#Unop: Added missing traits
		learn_commander_trait.1314 #open_terrain_expert
		learn_commander_trait.1315 #rough_terrain_expert
		learn_commander_trait.1316 #forest_fighter
		learn_commander_trait.1317 #cautious_leader
		learn_commander_trait.1318 #organizer
	}
}

#Failure for correct trait
learn_commander_trait_failure = {
	first_valid = {
		learn_commander_trait.1491 #Teacher is no longer with you
		learn_commander_trait.1401 #logistician
		learn_commander_trait.1402 #military_engineer
		learn_commander_trait.1403 #aggressive_attacker
		learn_commander_trait.1404 #unyielding_defender
		learn_commander_trait.1405 #forder
		learn_commander_trait.1406 #flexible_leader
		learn_commander_trait.1407 #desert_warrior
		learn_commander_trait.1408 #jungle_stalker
		learn_commander_trait.1409 #winter_soldier
		learn_commander_trait.1410 #reaver
		learn_commander_trait.1412 #reckless
		learn_commander_trait.1413 #holy_warrior
		#Unop: Added missing traits
		learn_commander_trait.1414 #open_terrain_expert
		learn_commander_trait.1415 #rough_terrain_expert
		learn_commander_trait.1416 #forest_fighter
		learn_commander_trait.1417 #cautious_leader
		learn_commander_trait.1418 #organizer
	}
}
