
# altered modifiers in the Ai option to make it less likely your spouse (unless they are dishonorable) to make a one night stand into long term lover
# 
# add trait requirements (most likely to cheat) to event trigger
#


#####################
# Soiree with another attendee
# by Petter Vilberg and Linnéa Thimrén
#####################
scripted_trigger feast_default_3006_adultery_target_trigger = {
	feast_default_participant_trigger = yes
	is_adult = yes
	is_ai = no
	NOT = {
		any_consort = {
			this = root
		}
	}
	NOT = { has_trait = chaste }
	num_of_relation_lover < 2
	NOT = { has_relation_lover = root }
	save_temporary_scope_as = adultery_target_check
	possible_mutual_interest_trigger = {
		CHARACTER_1 = scope:adultery_target_check
		CHARACTER_2 = root
	}
	opinion = {
		target = root
		value > 0
	}
	might_cheat_on_every_partner_trigger = yes
}

feast_default.3006 = {
	type = character_event
	title = feast_default.3006.t
	desc = {
		random_valid = {
			desc = feast_default.3006.opening_1
			desc = feast_default.3006.opening_2
			desc = feast_default.3006.opening_3
		}
		first_valid = {
			triggered_desc = {
				trigger = {
					has_opinion_modifier = {
						target = scope:partner
						modifier = love_opinion
					}
				}
				desc = {
					first_valid = {
						triggered_desc = {
							trigger = {
								is_married = yes
								scope:partner = {
									OR = {
										is_married = yes
										is_concubine = yes
									}
								}
							}
							desc = feast_default.3006.both_married_love
						}
						triggered_desc = {
							trigger = {
								is_married = yes
								scope:partner = {
									is_married = no
									is_concubine = no
								}
							}
							desc = feast_default.3006.married_love
						}
						triggered_desc = {
							trigger = {
								is_married = no
								scope:partner = {
									OR = {
										is_married = yes
										is_concubine = yes
									}
								}
							}
							desc = feast_default.3006.partner_married_love
						}
						triggered_desc = {
							trigger = {
								is_married = no
								scope:partner = {
									is_married = no
									is_concubine = no
								}
							}
							desc = feast_default.3006.unmarried_love
						}
					}
				}
			}
			triggered_desc = {
				trigger = {
					is_married = yes
					scope:partner = {
						OR = {
							is_married = yes
							is_concubine = yes
						}
					}
				}
				desc = feast_default.3006.both_married
			}
			triggered_desc = {
				trigger = {
					is_married = yes
					scope:partner = {
						is_married = no
						is_concubine = no
					}
				}
				desc = feast_default.3006.married
			}
			triggered_desc = {
				trigger = {
					is_married = no
					scope:partner = {
						OR = {
							is_married = yes
							is_concubine = yes
						}
					}
				}
				desc = feast_default.3006.partner_married
			}
			triggered_desc = {
				trigger = {
					is_married = no
					scope:partner = {
						is_married = no
						is_concubine = no
					}
				}
				desc = feast_default.3006.unmarried
			}
		}
	}
	theme = feast_activity
	override_background = {
		event_background = sitting_room
	}
	left_portrait = {
		character = scope:partner
		animation = flirtation
	}
	lower_left_portrait = scope:spouse
	lower_center_portrait = scope:partner_spouse
	
	trigger = {
		NOT = { exists = local_var:had_3006 }
		NOT = { has_trait = chaste }
		
		OR = {  # might be redundant, is hard to figure out if the event triggers for Ai
			has_trait = lustful
			has_trait = gluttonous
			has_trait = drunkard 
			has_trait = adulterer
			has_trait = fornicator 
			has_trait = arbitrary 
			has_trait = callous 
			has_trait = seducer 
			has_perk = unshackled_lust
		}
		
		might_cheat_on_every_partner_trigger = yes
		scope:activity = {
			any_participant = {
				OR = {
					feast_default_3006_adultery_target_trigger = yes
					any_consort = {	
						is_landed = no
						feast_default_3006_adultery_target_trigger = yes
					}
					any_child = {
						is_landed = no
						feast_default_3006_adultery_target_trigger = yes
					}
					any_sibling = {
						is_landed = no
						feast_default_3006_adultery_target_trigger = yes
					}
					any_parent = {
						is_landed = no
						feast_default_3006_adultery_target_trigger = yes
					}
				}
			}
		}
	}

	weight_multiplier = {
		base = 0.50
		modifier = {
			add = -1
			num_of_relation_lover > 0
		}
		modifier = {
			add = -0.5
			num_of_relation_lover > 1
		}
		modifier = { # added drunkard value
			add = 0.65
			has_trait = drunkard
		}
		modifier = { # added seducer value
			add = 1
			has_trait = seducer
		}
		modifier = {
			add = 1
			has_trait = lustful
		}
		modifier = { # add gluttonous value
			add = 1
			has_trait = gluttonous
		}
		modifier = {
			add = -0.5
			any_spouse = {
				reverse_opinion = {
					target = root
					value >= 60
				}
			}
		}
		modifier = {
			add = -1
			any_spouse = {
				reverse_opinion = {
					target = root
					value >= 90
				}
			}
		}
		modifier = {
			add = -1
			any_spouse = {
				reverse_has_opinion_modifier = {
					target = root
					modifier = love_opinion
				}
			}
		}
	}

	immediate = {
		set_local_variable = {
			name = had_3006
			value = yes
		}
		scope:activity = {
			every_participant = { #Build a list of potential targets
				if = {
					limit = { feast_default_3006_adultery_target_trigger = yes }
					add_to_list = potential_adulterer
				}
				every_consort = {
					limit = {
						is_landed = no
						feast_default_3006_adultery_target_trigger = yes
					}
					add_to_list = potential_adulterer
				}
				every_child = {
					limit = {
						is_landed = no
						feast_default_3006_adultery_target_trigger = yes
					}
					add_to_list = potential_adulterer
				}
				every_sibling = {
					limit = {
						is_landed = no
						feast_default_3006_adultery_target_trigger = yes
					}
					add_to_list = potential_adulterer
				}
				every_parent = {
					limit = {
						is_landed = no
						feast_default_3006_adultery_target_trigger = yes
					}
					add_to_list = potential_adulterer
				}
			}
		}
		random_in_list = {
			list = potential_adulterer
			weight = {
				base = 5
				interesting_feast_participant_modifier = yes
				modifier = {
					add = 20
					any_consort = {
						is_of_major_interest_to_root_trigger = yes
					}
				}
				modifier = {
					add = 10
					any_consort = {
						is_of_minor_interest_to_root_trigger = yes
					}
				}
				modifier = {
					add = 50
					has_relation_potential_lover = root
				}
			}
			save_scope_as = partner
		}
		scope:partner = {
			add_opinion = {
				modifier = love_opinion
				target = root
				opinion = 15
			}
			hidden_effect = {
				if = { #Character becomes root's potential lover for future reference
					limit = {
						can_set_relation_potential_lover_trigger = { CHARACTER = root }
						opinion = {
							target = root
							value > 10
						}
					}
					set_relation_potential_lover = root
				}
			}
			if = {
				limit ={
					OR = {
						is_married = yes
						is_concubine = yes
					}
				}
				primary_partner = {
					save_scope_as = partner_spouse
				}
			}
		}
		had_sex_with_effect = {
			CHARACTER = scope:partner
			PREGNANCY_CHANCE = pregnancy_chance
		}
		if = {
			limit ={
				OR = {
					is_married = yes
					is_concubine = yes
				}
			}
			primary_partner = {
				save_scope_as = spouse
			}
		}
	}

	option = { #I must see you again!
		name = feast_default.3006.a
		progress_towards_lover_effect = {
			CHARACTER = scope:partner
			OPINION = no
		}
		if = {
			limit = {
				OR = {
					trait_is_shunned_in_faith_trigger = {
						TRAIT = adulterer
						GENDER_CHARACTER = root
						FAITH = root.faith
					}
					trait_is_criminal_in_faith_trigger = {
						TRAIT = adulterer
						GENDER_CHARACTER = root
						FAITH = root.faith
					}
				}
			}
			stress_impact = {
				zealous = major_stress_impact_gain
				chaste = major_stress_impact_gain
				callous = minor_stress_impact_gain
				cynical = minor_stress_impact_gain
				craven = minor_stress_impact_gain
				temperate = minor_stress_impact_gain
			}
		}
		else = {
			stress_impact = {
				chaste = major_stress_impact_gain
				callous = minor_stress_impact_gain
				cynical = minor_stress_impact_gain
				craven = minor_stress_impact_gain
			}
		}
		ai_chance = {
			base = 60
			ai_value_modifier = {
				ai_greed = 0.65
				ai_honor = -1
				ai_boldness = 0.3
			}
		}
	}

	option = { #Let's go for another round
		name = feast_default.3006.b
		add_character_modifier = {
			modifier = feast_blew_off_steam_modifier
			years = 5
		}
		had_sex_with_effect = {
			CHARACTER = scope:partner
			PREGNANCY_CHANCE = pregnancy_chance
		}
		stress_impact = {
			rakish = minor_stress_impact_loss
		}
		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_honor = -0.75
				ai_boldness = 0.5
			}
		}
	}


	option = { #Let us not speak of this again
		name = feast_default.3006.c
		custom_tooltip = feast_default.3006.c.tt
		stress_impact = {
			lustful = minor_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_rationality = 0.5
			}
			opinion_modifier = {
				trigger = { exists = scope:spouse }
				opinion_target = scope:spouse
			}
		}
	}

	after = {
		hidden_effect = {
			feast_wrap_up_or_fire_random_event_effect = yes
		}
	}
}