﻿@prank_modifiers_default_duration_years_value = 15

namespace = feast_events_ewan

##################################################
# #Murder
# 0001 - 0010	Clear your Head - Ambush your target when they go out for a walk.
# 
# #Seduce
# 0201 - 0210	Dinner and a Show - Position yourself opposite your intent_target, eat seductively.
# 
# #Befriend
# 0401 - 0410	Stomach Rumbling - Bond with your intent_target over the terrible/excellent food.
# 
# #Mischief
# 0601 - 0610	A Mere Jest - Stuff a gross item (e.g., dead rat) in a refined foodstuff (e.g., jug of wine).
# 
# #Relax
# 0801 - 0810	A Pleasing Atmosphere - Sit back and enjoy the vibes.
# 
##################################################










##################################################
# MURDER

##################################################
# Clear your Head
# by Ewan Cowhig Croft
# 0001 - 0010
##################################################

scripted_trigger feast_events_ewan_0001_has_suitable_active_scheme_trigger = {
	scheme_type = murder
	scheme_target_character = scope:intent_target
}

scripted_effect feast_events_ewan_0001_kill_intent_target_effect = {
	save_temporary_scope_as = temp_scope
	unknown_murder_effect = {
		VICTIM = scope:intent_target
		MURDERER = scope:temp_scope
		REASON = death_mysterious
	}
}

scripted_effect feast_events_ewan_0001_failure_effect = {
	add_prestige = medium_prestige_loss
	add_secret = {
		type = secret_murder_attempt
		target = scope:intent_target
	}
	reverse_add_opinion = {
		target = scope:intent_target
		modifier = suspicion_opinion
		opinion = -60
	}
}

scripted_effect feast_events_ewan_0001_attempted_murder_stress_effect = {
	stress_impact = {
		brave = miniscule_stress_impact_loss
		vengeful = miniscule_stress_impact_loss
		lazy = minor_stress_impact_gain
		forgiving = medium_stress_impact_gain
		just = major_stress_impact_gain
		craven = major_stress_impact_gain
	}
}

#	Ambush your target when they go out for a walk.
feast_events_ewan.0001 = {
	type = activity_event
	title = feast_events_ewan.0001.t
	desc = {
		desc = feast_events_ewan.0001.desc.intro
		first_valid = {
			# Push from high places.
			triggered_desc = {
				trigger = { scope:kill_locale = flag:tower }
				desc = feast_events_ewan.0001.desc.high_place
			}
			# Drown in body of water.
			triggered_desc = {
				trigger = { scope:kill_locale = flag:water }
				desc = feast_events_ewan.0001.desc.water
			}
			# Huck deadly critter.
			triggered_desc = {
				trigger = { scope:kill_locale = flag:critter }
				desc = feast_events_ewan.0001.desc.critter
			}
			# Throw sharp rock.
			triggered_desc = {
				trigger = { scope:kill_locale = flag:rock }
				desc = feast_events_ewan.0001.desc.rock
			}
		}
		desc = feast_events_ewan.0001.desc.outro
	}
	theme = feast_activity
	left_portrait = {
		character = root
		animation = schadenfreude
	}
	right_portrait = {
		character = scope:intent_target
		animation = personality_bold
	}
	override_background = { reference = corridor_night }

	cooldown = { years = 1 }

	trigger = {
		# Correct intent for vibes time.
		has_activity_intent = murder_attendee_intent
		# Some extra cautious validity checks.
		intent_target ?= {
			is_alive = yes
			this != root
		}
	}

	weight_multiplier = {
		base = 1
		
		# Some characters are more opportunistic.
		## Vengeful.
		modifier = {
			add = 0.25
			has_trait = vengeful
		}
		## Brave
		modifier = {
			add = 0.25
			has_trait = brave
		}
	}

	immediate = {
		# Nab our intent_target for loc & general ease.
		intent_target = { save_scope_as = intent_target }
		# Determine what our method of murder will be.
		random_list = {
			# Push from high place.
			100 = {
				trigger = {
					location_has_multi_story_buildings_trigger = { LOCATION = scope:activity.activity_location }
				}
				save_scope_value_as = {
					name = kill_locale
					value = flag:tower
				}
			}
			# Push into deep water.
			100 = {
				trigger = {
					scope:activity.activity_location = {
						OR = {
							terrain = plains
							terrain = farmlands
							terrain = hills
							terrain = oasis
							terrain = jungle
							terrain = forest
							terrain = taiga
							terrain = wetlands
							terrain = steppe
							terrain = floodplains
							is_riverside_province = yes
							is_coastal = yes
						}
					}
				}
				save_scope_value_as = {
					name = kill_locale
					value = flag:water
				}
			}
			# Throw critter.
			100 = {
				trigger = {
					scope:activity.activity_location = {
						OR = {
							terrain = desert
							terrain = desert_mountains
							terrain = jungle
						}
					}
				}
				save_scope_value_as = {
					name = kill_locale
					value = flag:critter
				}
				set_local_venomous_creature_effect = yes
			}
		}
		# Did we fail to select an option? Hmm, boring locale. Ok, throw a rock.
		if = {
			limit = {
				NOT = { exists = scope:kill_locale }
			}
			save_scope_value_as = {
				name = kill_locale
				value = flag:rock
			}
		}
	}

	# Rolled Tower: firm push.
	option = {
		name = feast_events_ewan.0001.a
		trigger = { scope:kill_locale = flag:tower }

		duel = {
			skill = intrigue
			target = scope:intent_target
			# Out they go!
			40 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				feast_events_ewan_0001_weight_down_for_tier_difference_modifier = yes
				feast_events_ewan_0001_weight_up_for_tier_difference_modifier = yes
				desc = feast_events_ewan.0001.a.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0001.a.tt.success
					left_icon = scope:intent_target
					feast_events_ewan_0001_kill_intent_target_effect = yes
				}
			}
			# They throw themselves to the side.
			60 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				feast_events_ewan_0001_weight_down_for_bodyguards_modifier = yes
				feast_events_ewan_0001_weight_up_for_bodyguards_modifier = yes
				desc = feast_events_ewan.0001.a.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0001.a.tt.failure
					left_icon = scope:intent_target
					feast_events_ewan_0001_failure_effect = yes
				}
			}
		}

		feast_events_ewan_0001_attempted_murder_stress_effect = yes
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 1
				ai_honor = -1
			}
		}
	}
	
	# Rolled Water: sturdy blow & firm push.
	option = {
		name = feast_events_ewan.0001.b
		trigger = { scope:kill_locale = flag:water }

		duel = {
			skill = intrigue
			target = scope:intent_target
			# They're out, then they're under.
			40 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				feast_events_ewan_0001_weight_down_for_tier_difference_modifier = yes
				feast_events_ewan_0001_weight_up_for_tier_difference_modifier = yes
				desc = feast_events_ewan.0001.b.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0001.b.tt.success
					left_icon = scope:intent_target
					feast_events_ewan_0001_kill_intent_target_effect = yes
				}
			}
			#They go in, but they're still conscious.
			60 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				feast_events_ewan_0001_weight_down_for_bodyguards_modifier = yes
				feast_events_ewan_0001_weight_up_for_bodyguards_modifier = yes
				desc = feast_events_ewan.0001.b.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0001.b.tt.failure
					left_icon = scope:intent_target
					feast_events_ewan_0001_failure_effect = yes
				}
			}
		}

		feast_events_ewan_0001_attempted_murder_stress_effect = yes
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 1
				ai_honor = -1
			}
		}
	}
	
	# Rolled deadly critter: huck it.
	option = {
		name = feast_events_ewan.0001.c
		trigger = { scope:kill_locale = flag:critter }

		duel = {
			skill = intrigue
			target = scope:intent_target
			# It's on them, and it's attacking.
			40 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				feast_events_ewan_0001_weight_down_for_tier_difference_modifier = yes
				feast_events_ewan_0001_weight_up_for_tier_difference_modifier = yes
				desc = feast_events_ewan.0001.c.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0001.c.tt.success
					left_icon = scope:intent_target
					feast_events_ewan_0001_kill_intent_target_effect = yes
				}
			}
			# The critter misses then flees.
			60 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				feast_events_ewan_0001_weight_down_for_bodyguards_modifier = yes
				feast_events_ewan_0001_weight_up_for_bodyguards_modifier = yes
				desc = feast_events_ewan.0001.c.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0001.c.tt.failure
					left_icon = scope:intent_target
					feast_events_ewan_0001_failure_effect = yes
				}
			}
		}

		feast_events_ewan_0001_attempted_murder_stress_effect = yes
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 1
				ai_honor = -1
			}
		}
	}
	
	# Fallback/Alt: throw rock.
	option = {
		name = feast_events_ewan.0001.d
		trigger = { scope:kill_locale = flag:rock }

		duel = {
			skill = prowess
			value = high_skill_rating
			# You catch them on the temple.
			40 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				feast_events_ewan_0001_weight_down_for_tier_difference_modifier = yes
				feast_events_ewan_0001_weight_up_for_tier_difference_modifier = yes
				desc = feast_events_ewan.0001.d.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0001.d.tt.success
					left_icon = scope:intent_target
					feast_events_ewan_0001_kill_intent_target_effect = yes
				}
			}
			# You miss.
			60 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				feast_events_ewan_0001_weight_down_for_bodyguards_modifier = yes
				feast_events_ewan_0001_weight_up_for_bodyguards_modifier = yes
				desc = feast_events_ewan.0001.d.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0001.d.tt.failure
					left_icon = scope:intent_target
					feast_events_ewan_0001_failure_effect = yes
				}
			}
		}

		feast_events_ewan_0001_attempted_murder_stress_effect = yes
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = -0.5
				ai_honor = -1
			}
		}
	}
	
	# Simply gather information on HerHis habits and ticks.
	option = {
		name = feast_events_ewan.0001.e

		# Do we already have a scheme against them? If so, add the modifier immediately.
		if = {
			limit = {
				any_scheme = { feast_events_ewan_0001_has_suitable_active_scheme_trigger = yes }
			}
			random_scheme = {
				limit = { feast_events_ewan_0001_has_suitable_active_scheme_trigger = yes }
				add_scheme_modifier = { type = feast_learnt_habits_modifier }
			}
		}
		# Otherwise, note that we notify them that they'll gain a bonus to murdering this character if they start in the next X years.
		else = {
			# If we've already got someone logged for this, warn that we'll overwrite them.
			if = {
				limit = { has_variable = feast_events_ewan_0001_bonus_value }
				custom_tooltip = feast_events_ewan.0001.e.tt.bonus_to_murder_scheme.overwrite
			}
			# Set the variable.
			set_variable = {
				name = feast_events_ewan_0001_bonus_value
				value = scope:intent_target
				years = feast_events_ewan_0001_murder_scheme_bonus_time_to_use_value
			}
			# Inform the player.
			custom_tooltip = feast_events_ewan.0001.e.tt.bonus_to_murder_scheme
		}

		stress_impact = {
			patient = miniscule_stress_impact_loss
			craven = miniscule_stress_impact_loss
			brave = minor_stress_impact_gain
			impatient = medium_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_rationality = 1
				ai_boldness = -0.5
			}
		}
	}
	
	# Go back to the hall and enjoy the feast.
	option = {
		name = feast_events_ewan.0001.f

		# Show some face.
		add_prestige = minor_prestige_gain

		stress_impact = {
			craven = miniscule_stress_impact_loss
			just = miniscule_stress_impact_loss
			impatient = minor_stress_impact_gain
			brave = medium_stress_impact_gain
			vengeful = major_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_honor = 2
				ai_energy = -0.5
				ai_boldness = -1
			}
		}
	}
}











##################################################
# SEDUCE

##################################################
# Dinner and a Show
# by Ewan Cowhig Croft
# 0201 - 0210
##################################################

#	Position yourself opposite your intent_target, eat seductively.
##	"Seductively".
feast_events_ewan.0201 = {
	type = activity_event
	title = feast_events_ewan.0201.t
	desc = {
		desc = feast_events_ewan.0201.desc.intro
		random_valid = {
			# Meat-eater options.
			## Snap a leg in tune to a pick-up line.
			triggered_desc = {
				trigger = {
					is_vegetarian_trigger = no
					scope:intent_target = { is_vegetarian_trigger = no }
				}
				desc = feast_events_ewan.0201.desc.meat.dramatic_snap
			}
			## Sink your teeth into the succulent flesh.
			triggered_desc = {
				trigger = {
					is_vegetarian_trigger = no
					scope:intent_target = { is_vegetarian_trigger = no }
				}
				desc = feast_events_ewan.0201.desc.meat.sink_teeth
			}
			## Lick the sauce off of a leg.
			triggered_desc = {
				trigger = {
					is_vegetarian_trigger = no
					scope:intent_target = { is_vegetarian_trigger = no }
				}
				desc = feast_events_ewan.0201.desc.meat.lick
			}
			# Veggie options.
			## Running your finger along the curve of a vegetable.
			triggered_desc = {
				trigger = {
					OR = {
						is_vegetarian_trigger = yes
						scope:intent_target = { is_vegetarian_trigger = yes }
					}
				}
				desc = feast_events_ewan.0201.desc.veggie.suggestive_gesture
			}
			## Taking a bite out of an especially juicy tuber.
			triggered_desc = {
				trigger = {
					OR = {
						is_vegetarian_trigger = yes
						scope:intent_target = { is_vegetarian_trigger = yes }
					}
				}
				desc = feast_events_ewan.0201.desc.veggie.sink_teeth
			}
			## Let your eyes roll back.
			triggered_desc = {
				trigger = {
					OR = {
						is_vegetarian_trigger = yes
						scope:intent_target = { is_vegetarian_trigger = yes }
					}
				}
				desc = feast_events_ewan.0201.desc.veggie.deep_bite
			}
		}
		desc = feast_events_ewan.0201.desc.outro
	}
	theme = feast_activity
	left_portrait = {
		character = root
		animation = admiration
	}
	right_portrait = {
		character = scope:intent_target
		animation = shock
	}

	cooldown = { years = 1 }

	trigger = {
		# Correct intent for vibes time.
		has_activity_intent = woo_attendee_intent
		# Some extra cautious validity checks.
		intent_target ?= {
			is_alive = yes
			NOR = {
				has_relation_lover = root
				this = root
			}
		}
	}

	weight_multiplier = {
		base = 1
		
		# Some characters are more brazen.
		## Lustful.
		modifier = {
			add = 0.25
			has_trait = lustful
		}
		## Seducer.
		modifier = {
			add = 0.25
			has_trait = seducer
		}
	}

	immediate = {
		# Nab our intent_target for loc & general ease.
		intent_target = { save_scope_as = intent_target }
	}

	# Slurp seductively.
	option = {
		name = feast_events_ewan.0201.a

		# Duel to progress lover. We wait a little against to make this not automatically a better shot than seduction schemes.
		duel = {
			skill = intrigue
			target = scope:intent_target
			# Why ROOT.Char.GetFirstName...
			40 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = feast_events_ewan.0201.a.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0201.a.tt.success
					left_icon = scope:intent_target
					progress_towards_lover_effect = {
						CHARACTER = scope:intent_target
						REASON = seduced_at_feast
						OPINION = default_lover_opinion
					}
					# And a bonkin'.
					hidden_effect = {
						if = {
							limit = { has_relation_lover = scope:intent_target }
							had_sex_with_effect = {
								CHARACTER = scope:intent_target
								PREGNANCY_CHANCE = pregnancy_chance
							}
						}
					}
				}
			}
			# What _are_ you doing?
			60 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				desc = feast_events_ewan.0201.a.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0201.a.tt.failure
					left_icon = scope:intent_target
					reverse_add_opinion = {
						target = scope:intent_target
						modifier = disgusted_opinion
						opinion = -35
					}
				}
			}
		}

		stress_impact = {
			lustful = miniscule_stress_impact_loss
			gregarious = miniscule_stress_impact_loss
			shy = medium_stress_impact_gain
			chaste = major_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 1
				# This is, after all, an awkward situation you're putting them in.
				ai_compassion = -0.25
			}
		}
	}
	
	# Abort: show erudition instead!
	option = {
		name = feast_events_ewan.0201.b

		duel = {
			skill = diplomacy
			target = scope:intent_target
			# Quite interesting, quite interesting.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = feast_events_ewan.0201.b.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0201.b.tt.success
					left_icon = scope:intent_target
					progress_towards_lover_effect = {
						CHARACTER = scope:intent_target
						REASON = seduced_at_feast
						OPINION = default_lover_opinion
					}
					# And a bonkin'.
					hidden_effect = {
						if = {
							limit = { has_relation_lover = scope:intent_target }
							had_sex_with_effect = {
								CHARACTER = scope:intent_target
								PREGNANCY_CHANCE = pregnancy_chance
							}
						}
					}
				}
			}
			# Gods you're dreary.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				desc = feast_events_ewan.0201.b.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0201.b.tt.failure
					left_icon = scope:intent_target
					reverse_add_opinion = {
						target = scope:intent_target
						modifier = bored_opinion
						opinion = -20
					}
				}
			}
		}

		stress_impact = {
			craven = miniscule_stress_impact_loss
			diplomat = miniscule_stress_impact_loss
			brave = minor_stress_impact_gain
			lustful = medium_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_rationality = 0.5
				ai_sociability = 0.5
			}
		}
	}
	
	# This is less... firey than I'd hoped...
	option = {
		name = feast_events_ewan.0201.c

		# They're so, so glad you stopped.
		reverse_add_opinion = {
			target = scope:intent_target
			modifier = relieved_opinion
			opinion = 20
		}

		stress_impact = {
			craven = miniscule_stress_impact_loss
			chaste = miniscule_stress_impact_loss
			brave = minor_stress_impact_gain
			lustful = major_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				# It's just mercy.
				ai_compassion = 0.25
				ai_boldness = -0.75
			}
		}
	}
}












##################################################
# BEFRIEND

##################################################
# Stomach Rumbling
# by Ewan Cowhig Croft
# 0401 - 0410
##################################################

#	Bond with your intent_target over the terrible/excellent food.
feast_events_ewan.0401 = {
	type = activity_event
	title = feast_events_ewan.0401.t
	desc = {
		desc = feast_events_ewan.0401.desc.intro
		first_valid = {
			# Scope:intent_target is arrogant or mean.
			triggered_desc = {
				trigger = {
					scope:intent_target = {
						OR = {
							has_trait = arrogant
							has_trait = callous
							has_trait = sadistic
							has_trait = gluttonous
							has_trait = brave
						}
						# Shy bois may be thinking it but they won't say it this openly.
						NOT = { has_trait = shy }
					}
				}
				desc = feast_events_ewan.0401.desc.target_personality.flamboyant
			}
			# Scope:intent_target is humble or shy.
			triggered_desc = {
				trigger = {
					scope:intent_target = {
						OR = {
							has_trait = humble
							has_trait = compassionate
							has_trait = shy
							has_trait = temperate
							has_trait = craven
						}
					}
				}
				desc = feast_events_ewan.0401.desc.target_personality.sedate
			}
			# Scope:intent_target is anyone else.
			desc = feast_events_ewan.0401.desc.target_personality.fallback
		}
	}
	theme = feast_activity
	left_portrait = {
		character = root
		animation = admiration
	}
	right_portrait = {
		character = scope:intent_target
		animation = happiness
	}

	cooldown = { years = 1 }

	trigger = {
		# Correct intent for vibes time.
		has_activity_intent = befriend_attendee_intent
		# Some extra cautious validity checks.
		intent_target ?= {
			is_alive = yes
			NOR = {
				has_relation_friend = root
				this = root
			}
		}
	}

	weight_multiplier = {
		base = 1
		
		# Some characters are more foody than others.
		## Gluttonous.
		modifier = {
			add = 0.25
			has_trait = gluttonous
		}
		## Arrogant.
		modifier = {
			add = 0.25
			has_trait = arrogant
		}
	}

	immediate = {
		# Nab our intent_target for loc & general ease.
		intent_target = { save_scope_as = intent_target }
	}

	# Yes, sadly it was just a poor choice, I think.
	option = {
		name = feast_events_ewan.0401.a

		duel = {
			skill = diplomacy
			value = medium_skill_rating
			# You bond over the conversation.
			25 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				# Transfer the weight over from the partial success result if we're already potential friends.
				modifier = {
					add = 25
					has_relation_potential_friend = scope:intent_target
				}
				desc = feast_events_ewan.0401.a.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0401.a.tt.success
					left_icon = scope:intent_target
					set_relation_friend = {
						target = scope:intent_target
						reason = befriended_at_feast
						province = scope:activity.activity_location
					}
				}
			}
			# You make a good impression but don't quite get the whole way.
			25 = {
				# Lock this option off if we're already potential friends.
				trigger = {
					NOT = { has_relation_potential_friend = scope:intent_target }
				}
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = feast_events_ewan.0401.a.tt.partial_success
				send_interface_toast = {
					title = feast_events_ewan.0401.a.tt.partial_success
					left_icon = scope:intent_target
					set_relation_potential_friend = scope:intent_target
				}
			}
			# They like you, but no more than that.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				desc = feast_events_ewan.0401.a.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0401.a.tt.failure
					left_icon = scope:intent_target
					reverse_add_opinion = {
						target = scope:intent_target
						modifier = friendliness_opinion
						opinion = 30
					}
				}
			}
		}

		stress_impact = {
			gregarious = miniscule_stress_impact_loss
			humble = miniscule_stress_impact_loss
			vengeful = minor_stress_impact_gain
			arrogant = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_sociability = 1
				ai_vengefulness = -0.25
			}
		}
	}
	
	# Host: You. _Do_ realise that this is my feast, yes?
	option = {
		name = feast_events_ewan.0401.b
		trigger = { this = scope:activity.activity_host }

		# You shut 'em down quicksharp.
		add_prestige = medium_prestige_gain
		# But they ain't best pleased.
		reverse_add_opinion = {
			target = scope:intent_target
			modifier = overreaction_opinion
			opinion = -10
		}

		stress_impact = {
			arrogant = miniscule_stress_impact_loss
			vengeful = miniscule_stress_impact_loss
			forgiving = minor_stress_impact_gain
			shy = minor_stress_impact_gain
			humble = medium_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 0.5
				ai_vengefulness = 0.25
				ai_sociability = -0.25
			}
		}
	}
	
	# Guest: Loudly sing the meal's praises.
	option = {
		name = feast_events_ewan.0401.c
		trigger = {
			NOR = {
				this = scope:activity.activity_host
				scope:intent_target = scope:activity.activity_host
			}
		}

		# The host is pleased by your sycophancy.
		add_prestige = minor_prestige_gain
		reverse_add_opinion = {
			target = scope:activity.activity_host
			modifier = pleased_opinion
			opinion = 25
		}
		# But scope:intent_target is a tad upset.
		reverse_add_opinion = {
			target = scope:intent_target 
			modifier = annoyed_opinion
			opinion = -10
		}

		stress_impact = {
			arrogant = miniscule_stress_impact_loss
			fickle = miniscule_stress_impact_loss
			shy = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 0.5
				ai_vengefulness = 0.25
				ai_sociability = -0.25
			}
		}
	}
	
	# Switch the subject to something less contentious.
	option = {
		name = feast_events_ewan.0401.d

		# Some consolation prestige for defusing things.
		add_prestige = miniscule_prestige_gain

		stress_impact = {
			humble = miniscule_stress_impact_loss
			compassionate = miniscule_stress_impact_loss
			shy = minor_stress_impact_loss
			arrogant = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_compassion = 1
				ai_vengefulness = -1
			}
		}
	}
}











##################################################
# MISCHIEF

##################################################
# A Mere Jest
# by Ewan Cowhig Croft
# 0601 - 0610
##################################################

scripted_effect feast_events_ewan_0601_add_or_upgrade_mischievous_effect = {
	# What tier are we trying to skip in at?
	save_scope_value_as = {
		name = modifier_tier
		value = flag:$TIER$
	}
	# Right, now let's apply modifiers.
	## Already has a modifier.
	### t1.
	if = {
		limit = { has_character_modifier = feasts_mischievous_t1_modifier }
		### t1.
		if = {
			limit = { scope:modifier_tier = flag:t1 }
			# Reset the modifier.
			hidden_effect = {
				add_character_modifier = {
					modifier = feasts_mischievous_t1_modifier
					years = @prank_modifiers_default_duration_years_value
				}
			}
			# Some extra stress loss.
			add_stress = medium_stress_loss
		}
		### t2.
		else_if = {
			limit = { scope:modifier_tier = flag:t2 }
			# Remove the old modifier.
			hidden_effect = { remove_character_modifier = feasts_mischievous_t1_modifier }
			# Add the new one.
			add_character_modifier = {
				modifier = feasts_mischievous_t1_modifier
				years = @prank_modifiers_default_duration_years_value
			}
		}
		### t3.
		else_if = {
			limit = { scope:modifier_tier = flag:t3 }
			# Remove the old modifier.
			hidden_effect = { remove_character_modifier = feasts_mischievous_t1_modifier }
			# Add the new one.
			add_character_modifier = {
				modifier = feasts_mischievous_t3_modifier
				years = @prank_modifiers_default_duration_years_value
			}
		}
	}
	### t2.
	else_if = {
		limit = { has_character_modifier = feasts_mischievous_t2_modifier }
		### t1.
		if = {
			limit = { scope:modifier_tier = flag:t1 }
			# No modifier change, just have some extra stress loss.
			add_stress = minor_stress_loss
		}
		### t2.
		else_if = {
			limit = { scope:modifier_tier = flag:t2 }
			# Reset the modifier.
			hidden_effect = {
				add_character_modifier = {
					modifier = feasts_mischievous_t2_modifier
					years = @prank_modifiers_default_duration_years_value
				}
			}
			# Some extra stress loss.
			add_stress = medium_stress_loss
		}
		### t3.
		else_if = {
			limit = { scope:modifier_tier = flag:t3 }
			# Remove the old modifier.
			hidden_effect = { remove_character_modifier = feasts_mischievous_t2_modifier }
			# Add the new one.
			add_character_modifier = {
				modifier = feasts_mischievous_t3_modifier
				years = @prank_modifiers_default_duration_years_value
			}
		}
	}
	### t3.
	else_if = {
		limit = { has_character_modifier = feasts_mischievous_t3_modifier }
		### t1.
		if = {
			limit = { scope:modifier_tier = flag:t1 }
			# No modifier change, just have some extra stress loss.
			add_stress = minor_stress_loss
		}
		### t2.
		else_if = {
			limit = { scope:modifier_tier = flag:t2 }
			# No modifier change, just have some extra stress loss.
			add_stress = minor_stress_loss
		}
		### t3.
		else_if = {
			limit = { scope:modifier_tier = flag:t3 }
			# Reset the modifier.
			hidden_effect = {
				add_character_modifier = {
					modifier = feasts_mischievous_t3_modifier
					years = @prank_modifiers_default_duration_years_value
				}
			}
			# Some extra stress loss.
			add_stress = medium_stress_loss
		}
	}
	## Modifier-free.
	### t1.
	if = {
		limit = { scope:modifier_tier = flag:t1 }
		# Add the new modifier.
		add_character_modifier = {
			modifier = feasts_mischievous_t1_modifier
			years = @prank_modifiers_default_duration_years_value
		}
	}
	### t2.
	else_if = {
		limit = { scope:modifier_tier = flag:t2 }
		# Add the new modifier.
		add_character_modifier = {
			modifier = feasts_mischievous_t2_modifier
			years = @prank_modifiers_default_duration_years_value
		}
	}
	### t3.
	else_if = {
		limit = { scope:modifier_tier = flag:t3 }
		# Add the new modifier.
		add_character_modifier = {
			modifier = feasts_mischievous_t3_modifier
			years = @prank_modifiers_default_duration_years_value
		}
	}
}

#	Stuff a gross item (e.g., dead rat) in a refined foodstuff (e.g., jug of wine).
feast_events_ewan.0601 = {
	type = activity_event
	title = feast_events_ewan.0601.t
	desc = {
		desc = feast_events_ewan.0601.desc.intro
		random_valid = {
			# Vegetarians in CK3 tend to be those with an ethical commitment to protecting life, so we avoid them taking one for a prank.
			triggered_desc = {
				trigger = { is_vegetarian_trigger = yes }
				desc = feast_events_ewan.0601.desc.dead_rat
			}
			triggered_desc = {
				trigger = { is_vegetarian_trigger = yes }
				desc = feast_events_ewan.0601.desc.humongous_beetle
			}
			triggered_desc = {
				trigger = { is_vegetarian_trigger = yes }
				desc = feast_events_ewan.0601.desc.raw_eyeball
			}
			# Everyone can enjoy these, though.
			desc = feast_events_ewan.0601.desc.used_sponge
			desc = feast_events_ewan.0601.desc.rotten_vegetable
			desc = feast_events_ewan.0601.desc.dodgy_mushroom
			desc = feast_events_ewan.0601.desc.hank_of_hair
		}
	}
	theme = feast_activity
	left_portrait = {
		character = root
		animation = schadenfreude
	}

	cooldown = { years = 1 }

	trigger = {
		# Correct intent for vibes time.
		has_activity_intent = banquet_mischief_intent
	}

	weight_multiplier = {
		base = 1
		
		# Some characters are more brazen.
		## Arbitrary.
		modifier = {
			add = 0.25
			has_trait = arbitrary
		}
		## Fickle.
		modifier = {
			add = 0.25
			has_trait = fickle
		}
	}

	# Spoil the drinks.
	option = {
		name = feast_events_ewan.0601.a

		duel = {
			skill = intrigue
			value = high_skill_rating
			# You're in and out like a shadow.
			35 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = feast_events_ewan.0601.a.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0601.a.tt.success
					feast_events_ewan_0601_add_or_upgrade_mischievous_effect = { TIER = t3 }
				}
			}
			# You're caught.
			65 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				desc = feast_events_ewan.0601.a.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0601.a.tt.failure
					add_prestige = medium_prestige_loss
				}
			}
		}

		stress_impact = {
			base = massive_stress_impact_loss
			fickle = miniscule_stress_impact_loss
			arbitrary = miniscule_stress_impact_loss
			callous = miniscule_stress_impact_loss
			sadistic = minor_stress_impact_loss
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 2
				ai_compassion = -0.25
			}
		}
	}
	
	# Spoil a centre dish.
	option = {
		name = feast_events_ewan.0601.b

		duel = {
			skill = intrigue
			value = high_skill_rating
			# You're in and out like a shadow.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = feast_events_ewan.0601.b.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0601.b.tt.success
					feast_events_ewan_0601_add_or_upgrade_mischievous_effect = { TIER = t2 }
				}
			}
			# You're caught.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				desc = feast_events_ewan.0601.b.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0601.b.tt.failure
					add_prestige = minor_prestige_loss
				}
			}
		}

		stress_impact = {
			base = major_stress_impact_loss
			fickle = miniscule_stress_impact_loss
			arbitrary = miniscule_stress_impact_loss
			callous = miniscule_stress_impact_loss
			sadistic = minor_stress_impact_loss
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 1
				ai_rationality = 0.25
				ai_compassion = -0.25
			}
		}
	}
	
	# Spoil a side dish.
	option = {
		name = feast_events_ewan.0601.c

		duel = {
			skill = prowess
			value = high_skill_rating
			# You're in and out like a shadow.
			60 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = feast_events_ewan.0601.c.tt.success
				send_interface_toast = {
					title = feast_events_ewan.0601.c.tt.success
					feast_events_ewan_0601_add_or_upgrade_mischievous_effect = { TIER = t1 }
				}
			}
			# You're caught.
			40 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				desc = feast_events_ewan.0601.c.tt.failure
				send_interface_toast = {
					title = feast_events_ewan.0601.c.tt.failure
					add_prestige = minor_prestige_loss
				}
			}
		}

		stress_impact = {
			base = major_stress_impact_loss
			fickle = miniscule_stress_impact_loss
			arbitrary = miniscule_stress_impact_loss
			callous = miniscule_stress_impact_loss
			sadistic = minor_stress_impact_loss
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = -0.5
				ai_compassion = -0.25
			}
		}
	}

	# Chicken out.
	option = {
		name = feast_events_ewan.0601.d

		# Consolation prestige.
		add_prestige = miniscule_prestige_gain

		stress_impact = {
			craven = miniscule_stress_impact_loss
			brave = minor_stress_impact_gain
			deceitful = medium_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_compassion = 1
				ai_boldness = -1
			}
		}
	}
}











##################################################
# RELAX

##################################################
# A Pleasing Atmosphere
# by Ewan Cowhig Croft
# 0801 - 0810
##################################################

#	Sit back and enjoy the vibes.
feast_events_ewan.0801 = {
	type = activity_event
	title = feast_events_ewan.0801.t
	desc = {
		desc = feast_events_ewan.0801.desc.intro
		random_valid = {
			# Lustful
			triggered_desc = {
				trigger = { has_trait = lustful }
				desc = feast_events_ewan.0801.desc.lustful
			}
			# Chaste
			triggered_desc = {
				trigger = { has_trait = chaste }
				desc = feast_events_ewan.0801.desc.chaste
			}
			# Gluttonous
			triggered_desc = {
				trigger = { has_trait = gluttonous }
				desc = feast_events_ewan.0801.desc.gluttonous
			}
			# Temperate
			triggered_desc = {
				trigger = { has_trait = temperate }
				desc = feast_events_ewan.0801.desc.temperate
			}
			# Greedy
			triggered_desc = {
				trigger = { has_trait = greedy }
				desc = feast_events_ewan.0801.desc.greedy
			}
			# Generous
			triggered_desc = {
				trigger = { has_trait = generous }
				desc = feast_events_ewan.0801.desc.generous
			}
			# Lazy
			triggered_desc = {
				trigger = { has_trait = lazy }
				desc = feast_events_ewan.0801.desc.lazy
			}
			# Diligent
			triggered_desc = {
				trigger = { has_trait = diligent }
				desc = feast_events_ewan.0801.desc.diligent
			}
			# Wrathful
			triggered_desc = {
				trigger = { has_trait = wrathful }
				desc = feast_events_ewan.0801.desc.wrathful
			}
			# Calm
			triggered_desc = {
				trigger = { has_trait = calm }
				desc = feast_events_ewan.0801.desc.calm
			}
			# Patient
			triggered_desc = {
				trigger = { has_trait = patient }
				desc = feast_events_ewan.0801.desc.patient
			}
			# Impatient
			triggered_desc = {
				trigger = { has_trait = impatient }
				desc = feast_events_ewan.0801.desc.impatient
			}
			# Arrogant
			triggered_desc = {
				trigger = { has_trait = arrogant }
				desc = feast_events_ewan.0801.desc.arrogant
			}
			# Humble
			triggered_desc = {
				trigger = { has_trait = humble }
				desc = feast_events_ewan.0801.desc.humble
			}
			# Deceitful
			triggered_desc = {
				trigger = { has_trait = deceitful }
				desc = feast_events_ewan.0801.desc.deceitful
			}
			# Honest
			triggered_desc = {
				trigger = { has_trait = honest }
				desc = feast_events_ewan.0801.desc.honest
			}
			# Craven
			triggered_desc = {
				trigger = { has_trait = craven }
				desc = feast_events_ewan.0801.desc.craven
			}
			# Brave
			triggered_desc = {
				trigger = { has_trait = brave }
				desc = feast_events_ewan.0801.desc.brave
			}
			# Shy
			triggered_desc = {
				trigger = { has_trait = shy }
				desc = feast_events_ewan.0801.desc.shy
			}
			# Gregarious
			triggered_desc = {
				trigger = { has_trait = gregarious }
				desc = feast_events_ewan.0801.desc.gregarious
			}
			# Ambitious
			triggered_desc = {
				trigger = { has_trait = ambitious }
				desc = feast_events_ewan.0801.desc.ambitious
			}
			# Content
			triggered_desc = {
				trigger = { has_trait = content }
				desc = feast_events_ewan.0801.desc.content
			}
			# Arbitrary
			triggered_desc = {
				trigger = { has_trait = arbitrary }
				desc = feast_events_ewan.0801.desc.arbitrary
			}
			# Just
			triggered_desc = {
				trigger = { has_trait = just }
				desc = feast_events_ewan.0801.desc.just
			}
			# Cynical
			triggered_desc = {
				trigger = { has_trait = cynical }
				desc = feast_events_ewan.0801.desc.cynical
			}
			# Zealous
			triggered_desc = {
				trigger = { has_trait = zealous }
				desc = feast_events_ewan.0801.desc.zealous
			}
			# Paranoid
			triggered_desc = {
				trigger = { has_trait = paranoid }
				desc = feast_events_ewan.0801.desc.paranoid
			}
			# Trusting
			triggered_desc = {
				trigger = { has_trait = trusting }
				desc = feast_events_ewan.0801.desc.trusting
			}
			# Compassionate
			triggered_desc = {
				trigger = { has_trait = compassionate }
				desc = feast_events_ewan.0801.desc.compassionate
			}
			# Callous
			triggered_desc = {
				trigger = { has_trait = callous }
				desc = feast_events_ewan.0801.desc.callous
			}
			# Sadistic
			triggered_desc = {
				trigger = { has_trait = sadistic }
				desc = feast_events_ewan.0801.desc.sadistic
			}
			# Stubborn
			triggered_desc = {
				trigger = { has_trait = stubborn }
				desc = feast_events_ewan.0801.desc.stubborn
			}
			# Fickle
			triggered_desc = {
				trigger = { has_trait = fickle }
				desc = feast_events_ewan.0801.desc.fickle
			}
			# Vengeful
			triggered_desc = {
				trigger = { has_trait = vengeful }
				desc = feast_events_ewan.0801.desc.vengeful
			}
			# Forgiving
			triggered_desc = {
				trigger = { has_trait = forgiving }
				desc = feast_events_ewan.0801.desc.forgiving
			}
		}
		desc = feast_events_ewan.0801.desc.outro
	}
	theme = feast_activity
	left_portrait = {
		character = root
		animation = happiness
	}
	
	center_portrait = {
		character = scope:fellow_guest_1
		animation = toast_goblet
	}
	
	right_portrait = {
		character = scope:fellow_guest_2
		animation = personality_compassionate
	}

	cooldown = { years = 1 }

	trigger = {
		# Correct intent for vibes time.
		has_activity_intent = reduce_stress_intent
		trigger_if = { # Incorrect vibes for a Murder Feast host
			limit = {
				OR = {
					scope:activity = {
						has_activity_type = activity_feast
						has_activity_option = {
							category = special_type
							option = feast_type_murder
						}
					}
					scope:activity = {
						has_activity_type = activity_wedding
						has_activity_option = {
							category = special_type
							option = wedding_type_bloody
						}
					}
				}
			}
			this != scope:host
		}
	}
	
	immediate = {
		involved_activity = {
			random_attending_character = {
				limit = {
					this != root
					number_of_traits_in_common = {
						target = root
						value >= 1
					}
				}
				save_scope_as = fellow_guest_1
			}
			random_attending_character = {
				limit = {
					this != root
					NAND = {
						exists = scope:fellow_guest_1
						this = scope:fellow_guest_1
					}
					number_of_traits_in_common = {
						target = root
						value >= 1
					}
				}
				save_scope_as = fellow_guest_2
			}
		}
	}

	weight_multiplier = {
		base = 1
		
		# Some characters have a little more fun.
		## Gregarious.
		modifier = {
			add = 0.25
			has_trait = gregarious
		}
		## Reveller.
		modifier = {
			add = 0.25
			has_trait = lifestyle_reveler
		}
	}

	# Soak in the atmosphere.
	option = {
		name = feast_events_ewan.0801.a

		# Effects handled in stress loss.

		stress_impact = {
			base = massive_stress_impact_loss
			reclusive = major_stress_impact_gain
		}
		ai_chance = {
			# Higher base weight because the AI wants to lose stress when it selects this intent.
			base = 100
			ai_value_modifier = {
				# Since you have various reasons for enjoying what you like here, we go for rationality & boldness — sticking with what you like. 
				ai_rationality = 0.5
				ai_boldness = -0.5
			}
		}
	}
	
	# Hang out with those you have something in common with.
	option = {
		name = feast_events_ewan.0801.b
		# Make sure some other character does have at least one trait in common with us. Just in case.
		## Haha, they don't know I'm Arbitrary - Stubborn - Shy.
		trigger = {
			scope:activity = {
				any_attending_character = {
					number_of_traits_in_common = {
						target = root
						value >= 1
					}
				}
			}
		}

		scope:activity = {
			every_attending_character = {
				limit = {
					this != root
					number_of_traits_in_common = {
						target = root
						value >= 1
					}
				}
				custom = custom.every_activity_guest_with_trait_in_common
				add_opinion = {
					target = root
					modifier = friendliness_opinion
					opinion = 20
				}
			}
		}

		# Lil bit of stress loss here too, since however you cut it you're hanging out with folks you can get along with.
		stress_impact = {
			base = minor_stress_impact_loss
			gregarious = miniscule_stress_impact_loss
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_sociability = 0.5
				ai_boldness = -0.25

			}
		}
	}
	
	# Hob-knob with the most important people at the feast.
	option = {
		name = feast_events_ewan.0801.c

		add_prestige = minor_prestige_gain

		stress_impact = {
			gregarious = miniscule_stress_impact_loss
			arrogant = miniscule_stress_impact_loss
			shy = medium_stress_impact_gain
			humble = medium_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 0.5
				ai_energy = 0.5
			}
		}
	}
}
