﻿#Effects used in Lifestyle Focus events


#####################################################################
# EFFECT LIST
#####################################################################
# !!! Remember to add all new effects with a short description here !!!
#


#giving_up_on_commander_trait_training_effect - Effect for when you give up on your commander training

give_random_commander_trait_effect = {
	random_list = {
		100 = {
			trigger = { NOT = { has_trait = logistician } }
			add_trait = logistician
		}
		100 = {
			trigger = { NOT = { has_trait = military_engineer } }
			add_trait = military_engineer
		}
		100 = {
			trigger = { NOT = { has_trait = aggressive_attacker } }
			add_trait = aggressive_attacker
		}
		100 = {
			trigger = { NOT = { has_trait = unyielding_defender } }
			add_trait = unyielding_defender
		}
		100 = {
			trigger = { NOT = { has_trait = forder } }
			add_trait = forder
		}
		100 = {
			trigger = { NOT = { has_trait = flexible_leader } }
			add_trait = flexible_leader
		}
		100 = {
			trigger = {
				NOT = { has_trait = desert_warrior }
				any_sub_realm_barony = {
					title_province = {
						OR = {
							terrain = desert
							terrain = desert_mountains
							terrain = oasis
							terrain = drylands
						}
					}
				}
			}
			add_trait = desert_warrior
		}
		100 = {
			trigger = {
				NOT = { has_trait = jungle_stalker }
				any_sub_realm_barony = {
					title_province = {
						terrain = jungle
					}
				}
			}
			add_trait = jungle_stalker
		}
		100 = {
			trigger = {
				NOT = { has_trait = winter_soldier }
				any_sub_realm_barony = {
					title_province = {
						OR = {
							terrain = taiga
							geographical_region = world_tibet
							geographical_region = world_europe_north
							geographical_region = world_europe_east
							geographical_region = world_steppe
						}
					}
				}
			}
			add_trait = winter_soldier
		}
		100 = {
			trigger = {
				NOT = { has_trait = forest_fighter }
				any_sub_realm_barony = {
					title_province = {
						OR = {
							terrain = forest
							terrain = taiga
						}
					}
				}
			}
			add_trait = forest_fighter
		}
		100 = {
			trigger = {
				NOT = { has_trait = open_terrain_expert }
				any_sub_realm_barony = {
					title_province = {
						OR = {
							terrain = plains
							terrain = farmlands
							terrain = steppe
						}
					}
				}
			}
			add_trait = open_terrain_expert
		}
		100 = {
			trigger = {
				NOT = { has_trait = rough_terrain_expert }
				any_sub_realm_barony = {
					title_province = {
						OR = {
							terrain = hills
							terrain = mountains
							terrain = wetlands
						}
					}
				}
			}
			add_trait = rough_terrain_expert
		}
		100 = {
			trigger = { NOT = { has_trait = reaver } }
			add_trait = reaver
		}
		100 = {
			trigger = { NOT = { has_trait = reckless } }
			add_trait = reckless
		}
		100 = {
			trigger = { NOT = { has_trait = holy_warrior } }
			add_trait = holy_warrior
		}
		100 = {
			trigger = { NOT = { has_trait = organizer } }
			add_trait = organizer
		}
		100 = {
			trigger = { NOT = { has_trait = cautious_leader } }
			add_trait = cautious_leader
		}
	}
}

# Ensure that this effect stays up-to-date with all commander traits in 00_traits.txt
select_ct_for_teacher_to_teach_student_effect = {
	random_list = {
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = logistician }
				$STUDENT$ = { NOT = { has_trait = logistician } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:logistician
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = military_engineer }
				$STUDENT$ = { NOT = { has_trait = military_engineer } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:military_engineer
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = aggressive_attacker }
				$STUDENT$ = { NOT = { has_trait = aggressive_attacker } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:aggressive_attacker
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = unyielding_defender }
				$STUDENT$ = { NOT = { has_trait = unyielding_defender } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:unyielding_defender
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = forder }
				$STUDENT$ = { NOT = { has_trait = forder } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:forder
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = flexible_leader }
				$STUDENT$ = { NOT = { has_trait = flexible_leader } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:flexible_leader
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = desert_warrior }
				$STUDENT$ = { NOT = { has_trait = desert_warrior } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:desert_warrior
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = jungle_stalker }
				$STUDENT$ = { NOT = { has_trait = jungle_stalker } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:jungle_stalker
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = winter_soldier }
				$STUDENT$ = { NOT = { has_trait = winter_soldier } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:winter_soldier
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = reaver }
				$STUDENT$ = { NOT = { has_trait = reaver } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:reaver
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = reckless }
				$STUDENT$ = { NOT = { has_trait = reckless } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:reckless
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = holy_warrior }
				$STUDENT$ = { NOT = { has_trait = holy_warrior } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:holy_warrior
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = open_terrain_expert }
				$STUDENT$ = { NOT = { has_trait = open_terrain_expert } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:open_terrain_expert
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = rough_terrain_expert }
				$STUDENT$ = { NOT = { has_trait = rough_terrain_expert } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:rough_terrain_expert
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = forest_fighter }
				$STUDENT$ = { NOT = { has_trait = forest_fighter } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:forest_fighter
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = cautious_leader }
				$STUDENT$ = { NOT = { has_trait = cautious_leader } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:cautious_leader
				}
			}
		}
		1 = {
			trigger = {
				$TEACHER$ = { has_trait = organizer }
				$STUDENT$ = { NOT = { has_trait = organizer } }
			}
			$STUDENT$ = {
				set_variable = {
					name = commander_trait_being_taught
					value = flag:organizer
				}
			}
		}
	}
}

discover_new_commander_trait_to_teach = {
	random_list = {
		1 = {
			trigger = { NOT = { has_trait = logistician } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:logistician
			}
		}
		1 = {
			trigger = { NOT = { has_trait = military_engineer } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:military_engineer
			}
		}
		1 = {
			trigger = { NOT = { has_trait = aggressive_attacker } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:aggressive_attacker
			}
		}
		1 = {
			trigger = { NOT = { has_trait = unyielding_defender } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:unyielding_defender
			}
		}
		1 = {
			trigger = { NOT = { has_trait = forder } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:forder
			}
		}
		1 = {
			trigger = { NOT = { has_trait = flexible_leader } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:flexible_leader
			}
		}
		1 = {
			trigger = {
				exists = scope:teacher.location
				scope:teacher.location = {
					OR = {
						terrain = oasis
						terrain = desert
						terrain = desert_mountains
					}
				}
				NOT = { has_trait = desert_warrior }
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:desert_warrior
			}
		}
		1 = {
			trigger = {
				exists = scope:teacher.location
				scope:teacher.location = {
					terrain = jungle
				}
				NOT = { has_trait = jungle_stalker }
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:jungle_stalker
			}
		}
		1 = {
			trigger = {
				exists = scope:teacher.location
				scope:teacher.location = {
					OR = {
						terrain = taiga
						geographical_region = world_tibet
						geographical_region = world_europe_north
						geographical_region = world_europe_east
						geographical_region = world_steppe
					}
				}
				NOT = { has_trait = winter_soldier }
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:winter_soldier
			}
		}
		1 = {
			trigger = { NOT = { has_trait = reaver } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:reaver
			}
		}
		1 = {
			trigger = { NOT = { has_trait = reckless } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:reckless
			}
		}
		1 = {
			trigger = { NOT = { has_trait = holy_warrior } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:holy_warrior
			}
		}
		1 = {
			trigger = { NOT = { has_trait = open_terrain_expert } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:open_terrain_expert
			}
		}
		1 = {
			trigger = { NOT = { has_trait = rough_terrain_expert } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:rough_terrain_expert
			}
		}
		1 = {
			trigger = {
				exists = scope:teacher.location
				scope:teacher.location = {
					OR = {
						terrain = forest
						terrain = taiga
					}
				}
				NOT = { has_trait = forest_fighter }
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:forest_fighter
			}
		}
		1 = {
			trigger = { NOT = { has_trait = cautious_leader } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:cautious_leader
			}
		}
		1 = {
			trigger = { NOT = { has_trait = organizer } }
			set_variable = {
				name = commander_trait_being_taught
				value = flag:organizer
			}
		}
	}
}

randomize_commander_trait_to_be_taught_effect = {
	random_list = {
		100 = {
			trigger = {
				NOT = { has_trait = logistician }
				scope:teacher = {
					has_trait = logistician
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:logistician
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = military_engineer }
				scope:teacher = {
					has_trait = military_engineer
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:military_engineer
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = aggressive_attacker }
				scope:teacher = {
					has_trait = aggressive_attacker
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:aggressive_attacker
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = unyielding_defender }
				scope:teacher = {
					has_trait = unyielding_defender
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:unyielding_defender
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = forder }
				scope:teacher = {
					has_trait = forder
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:forder
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = flexible_leader }
				scope:teacher = {
					has_trait = flexible_leader
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:flexible_leader
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = desert_warrior }
				scope:teacher = {
					has_trait = desert_warrior
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:desert_warrior
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = jungle_stalker }
				scope:teacher = {
					has_trait = jungle_stalker
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:jungle_stalker
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = winter_soldier }
				scope:teacher = {
					has_trait = winter_soldier
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:winter_soldier
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = reaver }
				scope:teacher = {
					has_trait = reaver
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:reaver
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = reckless }
				scope:teacher = {
					has_trait = reckless
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:reckless
			}
		}
		100 = {
			trigger = {
				NOT = { has_trait = holy_warrior }
				scope:teacher = {
					has_trait = holy_warrior
				}
			}
			set_variable = {
				name = commander_trait_being_taught
				value = flag:holy_warrior
			}
		}
	}
	if = { #Fallback
		limit = {
			NOT = { exists = var:commander_trait_being_taught }
		}
		set_variable = {
			name = commander_trait_being_taught
			value = flag:flexible_leader
		}
	}
}


commander_trait_teaching_setup_effect = {
	hidden_effect = {
		trigger_event = {
			on_action = learn_commander_trait_test
			days = { 200 730 }
		}
	}
	if = {
		limit = { NOT = {has_relation_mentor = scope:teacher } }
		set_relation_mentor = scope:teacher
	}
	else = {
		save_scope_value_as = {
			name = long_term_mentor
			value = yes
		}
	}
}


giving_up_on_commander_trait_training_effect = {
	custom_tooltip = learn_commander_trait.giving_up_tt
	if = {
		limit = {
			scope:teacher = { is_alive = yes }
		}
		scope:teacher = {
			add_opinion = {
				target = root
				modifier = gave_up_on_learn_commander_trait_opinion
			}
		}
	}
	if = {
		limit = {
			NOT = { exists = scope:long_term_mentor }
			has_relation_mentor = scope:teacher
		}
		remove_relation_mentor = scope:teacher
	}
	remove_character_flag = being_taught_commander_trait
	remove_variable = commander_trait_being_taught
}


learn_commander_trait_success_effect = {
	remove_character_flag = being_taught_commander_trait
	if = {
		limit = {
			has_relation_mentor = scope:teacher
			NOT = { exists = scope:long_term_mentor }
			scope:teacher = {
				is_alive = yes
			}
		}
		remove_relation_mentor = scope:teacher
	}
	if = {
		limit = {
			scope:teacher = {
				is_alive = yes
			}
		}
		hidden_effect = {
			add_opinion = {
				target = scope:teacher
				modifier = taught_me_commander_trait_opinion
			}
		}
	}
	if = {
		limit = { var:commander_trait_being_taught = flag:logistician }
		add_trait = logistician
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:military_engineer }
		add_trait = military_engineer
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:aggressive_attacker }
		add_trait = aggressive_attacker
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:unyielding_defender }
		add_trait = unyielding_defender
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:forder }
		add_trait = forder
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:flexible_leader }
		add_trait = flexible_leader
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:desert_warrior }
		add_trait = desert_warrior
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:jungle_stalker }
		add_trait = jungle_stalker
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:winter_soldier }
		add_trait = winter_soldier
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:reaver }
		add_trait = reaver
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:reckless }
		add_trait = reckless
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:holy_warrior }
		add_trait = holy_warrior
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:open_terrain_expert }
		add_trait = open_terrain_expert
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:rough_terrain_expert }
		add_trait = rough_terrain_expert
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:forest_fighter }
		add_trait = forest_fighter
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:cautious_leader }
		add_trait = cautious_leader
	}
	else_if = {
		limit = { var:commander_trait_being_taught = flag:organizer }
		add_trait = organizer
	}
}


learn_commander_trait_final_test_duel_effect = {
	duel = {
		skill = martial
		value = 10
		10 = {
			compare_modifier = {
				value = scope:duel_value
			}
			desc = learn_commander_trait_final_test_success
			custom_tooltip = learn_commander_trait_final_test_success_tt
			trigger_event = {
				on_action = learn_commander_trait_success
				days = 1
			}
		}
		10 = {
			desc = learn_commander_trait_final_test_failure
			custom_tooltip = learn_commander_trait_final_test_failure_tt
			trigger_event = {
				on_action = learn_commander_trait_failure
				days = 1
			}
		}
	}
}



martial_authority_special_1100_a_failure_effect = {
	add_character_modifier = {
		modifier = fought_a_seasoned_warrior
		days = 3650
	}
	random = {
		chance = 33
		increase_wounds_effect = { REASON = training_accident }
	}
}



martial_authority_special_1100_soldier_friend_effects_effect = {
	hidden_effect = {
		set_relation_soldier_friend = scope:soldier_friend
		set_relation_potential_friend = scope:soldier_friend
	}
	reverse_add_opinion = {
		target = scope:soldier_friend
		modifier = grateful_opinion
		opinion = 15
	}

	add_hook = {
		type = loyalty_hook
		target = scope:soldier_friend
	}

	add_courtier = scope:soldier_friend
}
