﻿namespace = inspiration_system

##################################################
# Inspiration Generation
# Checks how many inspirations currently exist and, if there are not enough, generates new ones for pool characters.
# by Sean Hughes
# 0005
##################################################

inspiration_system.0005 = {
	scope = none
	hidden = yes

	trigger = {
		has_ep1_dlc_trigger = yes

		num_world_inspired_characters_value < ideal_total_world_inspirations
	}

	immediate = {
		set_local_variable = {
			name = try_create_inspiration_attempts
			value = max_new_inspirations_per_year_value
		}

		while = {
			limit = {			
				AND = {
					local_var:try_create_inspiration_attempts > 0
					num_world_inspired_characters_value < ideal_total_world_inspirations
				}
			}
			grant_new_inspiration_in_world_effect = yes
			change_local_variable = {
				name = try_create_inspiration_attempts
				subtract = 1
			}
		}	
	}
}

##################################################
# Inspired Character Maintenance
# Every Royal Court owner occasionally checks guests who have an Inspiration and, if unsponsored, moves them to a different Royal Court
# by Sean Hughes
# 1001-1101
##################################################

inspiration_system.1001 = {
	hidden = yes

	trigger = {
		has_ep1_dlc_trigger = yes
	}

	immediate = {
		every_pool_guest = {
			limit = {
				exists = inspiration
				NOR = {
					# Inspiration is not currently being sponsored
					inspiration = { exists = inspiration_sponsor }
					# Has not arrived at our court in the last X months (defined in 00_ep1_script_values.txt )
					has_character_flag = inspired_character_recent_arrival
				}
			}
			if = {
				limit = {
					inspiration = {
						days_since_creation > 3650
					}
				}
				# Destroy our inspiration, since nobody seems interested in sponsoring it.
				trigger_event = inspiration_system.1101
			}
			else = {
				# Look for a new royal court to visit.
				inspired_character_seek_out_new_royal_court_effect = yes
			}
		}
	}
}

# After going an extended period of time without being recruited or having their Inspiration sponsored, characters lose it in order to make room for new Inspired characters in the pool.
inspiration_system.1101  = {
	hidden = yes

	immediate = {
		destroy_inspiration = inspiration
		move_to_pool = yes

		# Unrealized potential is tough on people.
		random_list = {
			25 = {
				add_trait = depressed_1
				add_stress = minor_stress_gain
			}
			25 = {
				trigger = { can_be_drunkard = yes }
				add_trait = drunkard
				add_stress = minor_stress_gain
			}
			25 = {
				trigger = { can_be_hashishiyah = yes }
				add_trait = hashishiyah
				add_stress = minor_stress_gain
			}
			50 = {
				add_stress = major_stress_gain
			}
		}
	}
}

inspiration_system.1200 = { # Courtier becomes Adventurer
	type = character_event
	hidden = yes
	
	trigger = {
		scope:antiquarian_from_task ?= {
			has_court_position = antiquarian_court_position
		}
		scope:adventure_target ?= {
			is_physically_able_adult = yes
			NOR = {
				exists = inspiration
				has_court_position = antiquarian_court_position
			}
			adventure_inspiration_average_skill_value >= medium_inspiration_skill
			host ?= root
		}
	}

	immediate = {
		send_interface_toast = {
			type = msg_court_inspiration
			left_icon = scope:adventure_target
			right_icon = scope:antiquarian_from_task
			title = antiquarian_inspired_adventurer_message
			desc = antiquarian_inspired_adventurer_effect
			scope:adventure_target = {
				create_inspiration = adventure_inspiration
			}
		}
	}
}
