﻿### Exotic pet story cycles (wolf / bear / lion / tiger)
### These make the bought exotic pets appear in the character's Stories panel,
### show their bonuses there, and drive recurring + death events.

bap_story_cycle_wolf = {
	visible = yes

	icon = {
		trigger = { var:bap_wolf_type ?= flag:grey }
		reference = "gfx/interface/icons/pets/bap_wolf_grey.dds"
	}
	icon = {
		trigger = { var:bap_wolf_type ?= flag:black }
		reference = "gfx/interface/icons/pets/bap_wolf_black.dds"
	}
	icon = {
		trigger = { var:bap_wolf_type ?= flag:white }
		reference = "gfx/interface/icons/pets/bap_wolf_white.dds"
	}
	icon = {
		trigger = { var:bap_wolf_type ?= flag:timber }
		reference = "gfx/interface/icons/pets/bap_wolf_timber.dds"
	}
	icon = {
		trigger = { always = yes }
		reference = "gfx/interface/icons/pets/bap_wolf_grey.dds"
	}
	background = {
		reference = "gfx/interface/illustrations/event_scenes/garden.dds"
	}

	visualization = {
		custom_string_key = "bap_story_cycle_wolf_info"
		modifiers = {
			bap_pet_wolf
		}
		decisions = {
			bap_rename_pet_decision
			bap_wolf_pet_interaction_decision
			bap_abandon_pet_decision
		}
	}

	on_setup = {
		if = {
			limit = { NOT = { exists = var:bap_wolf_type } }
			random_list = {
				25 = { set_variable = { name = bap_wolf_type value = flag:grey } }
				25 = { set_variable = { name = bap_wolf_type value = flag:black } }
				25 = { set_variable = { name = bap_wolf_type value = flag:white } }
				25 = { set_variable = { name = bap_wolf_type value = flag:timber } }
			}
		}
		story_owner = {
			add_character_flag = bap_wolf_pet_alive
			add_character_flag = {
				flag = bap_pet_can_rename
				years = 1
			}
			add_character_modifier = { modifier = bap_pet_wolf }
			bap_add_wolf_pet_upkeep_effect = yes
			trigger_event = { id = bap_buy_pet.1001 days = 1 }
		}
	}

	on_end = {
		story_owner = {
			if = {
				limit = {
					is_alive = yes
					NOT = { has_character_flag = bap_pet_story_abandoning }
				}
				bap_prepare_pet_memorial_effect = yes
			}
			bap_clear_exotic_pet_effect = yes
		}
	}

	on_owner_death = {
		scope:story = { end_story = yes }
	}

	# Monthly upkeep sync: guarantees the visible finance modifier stays attached.
	effect_group = {
		days = { 30 30 }
		chance = 100

		trigger = {
			story_owner = { is_alive = yes }
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { bap_sync_exotic_pet_modifiers_effect = yes }
			}
		}
	}

	# Recurring flavour event frequency follows the game rule.
	effect_group = {
		days = { 1095 2190 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_rare
			story_owner = {
				is_alive = yes
				has_character_flag = bap_wolf_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3011 }
			}
		}
	}

	effect_group = {
		days = { 730 1460 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_normal
			story_owner = {
				is_alive = yes
				has_character_flag = bap_wolf_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3011 }
			}
		}
	}

	effect_group = {
		days = { 365 730 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_frequent
			story_owner = {
				is_alive = yes
				has_character_flag = bap_wolf_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3011 }
			}
		}
	}

	# The wolf grows old and dies
	effect_group = {
		days = { 2920 4380 }
		chance = 100

		trigger = {
			story_owner = {
				is_alive = yes
				has_character_flag = bap_wolf_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.9001 }
			}
		}
	}
}

bap_story_cycle_bear = {
	visible = yes

	icon = {
		trigger = { var:bap_bear_type ?= flag:brown }
		reference = "gfx/interface/icons/pets/bap_bear_brown.dds"
	}
	icon = {
		trigger = { var:bap_bear_type ?= flag:black }
		reference = "gfx/interface/icons/pets/bap_bear_black.dds"
	}
	icon = {
		trigger = { var:bap_bear_type ?= flag:panda }
		reference = "gfx/interface/icons/pets/bap_bear_panda.dds"
	}
	icon = {
		trigger = { var:bap_bear_type ?= flag:white }
		reference = "gfx/interface/icons/pets/bap_bear_white.dds"
	}
	icon = {
		trigger = { always = yes }
		reference = "gfx/interface/icons/pets/bap_bear_brown.dds"
	}
	background = {
		reference = "gfx/interface/illustrations/event_scenes/garden.dds"
	}

	visualization = {
		custom_string_key = "bap_story_cycle_bear_info"
		modifiers = {
			bap_pet_bear
		}
		decisions = {
			bap_rename_pet_decision
			bap_bear_pet_interaction_decision
			bap_abandon_pet_decision
		}
	}

	on_setup = {
		if = {
			limit = { NOT = { exists = var:bap_bear_type } }
			random_list = {
				25 = { set_variable = { name = bap_bear_type value = flag:brown } }
				25 = { set_variable = { name = bap_bear_type value = flag:black } }
				25 = { set_variable = { name = bap_bear_type value = flag:panda } }
				25 = { set_variable = { name = bap_bear_type value = flag:white } }
			}
		}
		story_owner = {
			add_character_flag = bap_bear_pet_alive
			add_character_flag = {
				flag = bap_pet_can_rename
				years = 1
			}
			add_character_modifier = { modifier = bap_pet_bear }
			bap_add_bear_pet_upkeep_effect = yes
			trigger_event = { id = bap_buy_pet.1001 days = 1 }
		}
	}

	on_end = {
		story_owner = {
			if = {
				limit = {
					is_alive = yes
					NOT = { has_character_flag = bap_pet_story_abandoning }
				}
				bap_prepare_pet_memorial_effect = yes
			}
			bap_clear_exotic_pet_effect = yes
		}
	}

	on_owner_death = {
		scope:story = { end_story = yes }
	}

	# Monthly upkeep sync: guarantees the visible finance modifier stays attached.
	effect_group = {
		days = { 30 30 }
		chance = 100

		trigger = {
			story_owner = { is_alive = yes }
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { bap_sync_exotic_pet_modifiers_effect = yes }
			}
		}
	}

	# Recurring flavour event frequency follows the game rule.
	effect_group = {
		days = { 1095 2190 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_rare
			story_owner = {
				is_alive = yes
				has_character_flag = bap_bear_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3012 }
			}
		}
	}

	effect_group = {
		days = { 730 1460 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_normal
			story_owner = {
				is_alive = yes
				has_character_flag = bap_bear_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3012 }
			}
		}
	}

	effect_group = {
		days = { 365 730 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_frequent
			story_owner = {
				is_alive = yes
				has_character_flag = bap_bear_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3012 }
			}
		}
	}

	effect_group = {
		days = { 3650 5475 }
		chance = 100

		trigger = {
			story_owner = {
				is_alive = yes
				has_character_flag = bap_bear_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.9001 }
			}
		}
	}
}

bap_story_cycle_lion = {
	visible = yes

	icon = {
		trigger = { var:bap_lion_type ?= flag:golden }
		reference = "gfx/interface/icons/pets/bap_lion_golden.dds"
	}
	icon = {
		trigger = { var:bap_lion_type ?= flag:blackmane }
		reference = "gfx/interface/icons/pets/bap_lion_blackmane.dds"
	}
	icon = {
		trigger = { var:bap_lion_type ?= flag:white }
		reference = "gfx/interface/icons/pets/bap_lion_white.dds"
	}
	icon = {
		trigger = { var:bap_lion_type ?= flag:sandy }
		reference = "gfx/interface/icons/pets/bap_lion_sandy.dds"
	}
	icon = {
		trigger = { always = yes }
		reference = "gfx/interface/icons/pets/bap_lion_golden.dds"
	}
	background = {
		reference = "gfx/interface/illustrations/event_scenes/garden.dds"
	}

	visualization = {
		custom_string_key = "bap_story_cycle_lion_info"
		modifiers = {
			bap_pet_lion
		}
		decisions = {
			bap_rename_pet_decision
			bap_lion_pet_interaction_decision
			bap_abandon_pet_decision
		}
	}

	on_setup = {
		if = {
			limit = { NOT = { exists = var:bap_lion_type } }
			random_list = {
				25 = { set_variable = { name = bap_lion_type value = flag:golden } }
				25 = { set_variable = { name = bap_lion_type value = flag:blackmane } }
				25 = { set_variable = { name = bap_lion_type value = flag:white } }
				25 = { set_variable = { name = bap_lion_type value = flag:sandy } }
			}
		}
		story_owner = {
			add_character_flag = bap_lion_pet_alive
			add_character_flag = {
				flag = bap_pet_can_rename
				years = 1
			}
			add_character_modifier = { modifier = bap_pet_lion }
			bap_add_lion_pet_upkeep_effect = yes
			trigger_event = { id = bap_buy_pet.1001 days = 1 }
		}
	}

	on_end = {
		story_owner = {
			if = {
				limit = {
					is_alive = yes
					NOT = { has_character_flag = bap_pet_story_abandoning }
				}
				bap_prepare_pet_memorial_effect = yes
			}
			bap_clear_exotic_pet_effect = yes
		}
	}

	on_owner_death = {
		scope:story = { end_story = yes }
	}

	# Monthly upkeep sync: guarantees the visible finance modifier stays attached.
	effect_group = {
		days = { 30 30 }
		chance = 100

		trigger = {
			story_owner = { is_alive = yes }
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { bap_sync_exotic_pet_modifiers_effect = yes }
			}
		}
	}

	# Recurring flavour event frequency follows the game rule.
	effect_group = {
		days = { 1095 2190 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_rare
			story_owner = {
				is_alive = yes
				has_character_flag = bap_lion_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3013 }
			}
		}
	}

	effect_group = {
		days = { 730 1460 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_normal
			story_owner = {
				is_alive = yes
				has_character_flag = bap_lion_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3013 }
			}
		}
	}

	effect_group = {
		days = { 365 730 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_frequent
			story_owner = {
				is_alive = yes
				has_character_flag = bap_lion_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3013 }
			}
		}
	}

	effect_group = {
		days = { 3650 5840 }
		chance = 100

		trigger = {
			story_owner = {
				is_alive = yes
				has_character_flag = bap_lion_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.9001 }
			}
		}
	}
}

bap_story_cycle_tiger = {
	visible = yes

	icon = {
		trigger = { var:bap_tiger_type ?= flag:amur }
		reference = "gfx/interface/icons/pets/bap_tiger_amur.dds"
	}
	icon = {
		trigger = { var:bap_tiger_type ?= flag:siberian }
		reference = "gfx/interface/icons/pets/bap_tiger_siberian.dds"
	}
	icon = {
		trigger = { var:bap_tiger_type ?= flag:black }
		reference = "gfx/interface/icons/pets/bap_tiger_black.dds"
	}
	icon = {
		trigger = { var:bap_tiger_type ?= flag:white }
		reference = "gfx/interface/icons/pets/bap_tiger_white.dds"
	}
	icon = {
		trigger = { always = yes }
		reference = "gfx/interface/icons/pets/bap_tiger_amur.dds"
	}
	background = {
		reference = "gfx/interface/illustrations/event_scenes/garden.dds"
	}

	visualization = {
		custom_string_key = "bap_story_cycle_tiger_info"
		modifiers = {
			bap_pet_tiger
		}
		decisions = {
			bap_rename_pet_decision
			bap_tiger_pet_interaction_decision
			bap_abandon_pet_decision
		}
	}

	on_setup = {
		if = {
			limit = { NOT = { exists = var:bap_tiger_type } }
			random_list = {
				25 = { set_variable = { name = bap_tiger_type value = flag:amur } }
				25 = { set_variable = { name = bap_tiger_type value = flag:siberian } }
				25 = { set_variable = { name = bap_tiger_type value = flag:black } }
				25 = { set_variable = { name = bap_tiger_type value = flag:white } }
			}
		}
		story_owner = {
			add_character_flag = bap_tiger_pet_alive
			add_character_flag = {
				flag = bap_pet_can_rename
				years = 1
			}
			add_character_modifier = { modifier = bap_pet_tiger }
			bap_add_tiger_pet_upkeep_effect = yes
			trigger_event = { id = bap_buy_pet.1001 days = 1 }
		}
	}

	on_end = {
		story_owner = {
			if = {
				limit = {
					is_alive = yes
					NOT = { has_character_flag = bap_pet_story_abandoning }
				}
				bap_prepare_pet_memorial_effect = yes
			}
			bap_clear_exotic_pet_effect = yes
		}
	}

	on_owner_death = {
		scope:story = { end_story = yes }
	}

	# Monthly upkeep sync: guarantees the visible finance modifier stays attached.
	effect_group = {
		days = { 30 30 }
		chance = 100

		trigger = {
			story_owner = { is_alive = yes }
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { bap_sync_exotic_pet_modifiers_effect = yes }
			}
		}
	}

	# Recurring flavour event frequency follows the game rule.
	effect_group = {
		days = { 1095 2190 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_rare
			story_owner = {
				is_alive = yes
				has_character_flag = bap_tiger_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3014 }
			}
		}
	}

	effect_group = {
		days = { 730 1460 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_normal
			story_owner = {
				is_alive = yes
				has_character_flag = bap_tiger_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3014 }
			}
		}
	}

	effect_group = {
		days = { 365 730 }
		chance = 100

		trigger = {
			has_game_rule = bap_pet_events_frequent
			story_owner = {
				is_alive = yes
				has_character_flag = bap_tiger_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.3014 }
			}
		}
	}

	effect_group = {
		days = { 3650 5840 }
		chance = 100

		trigger = {
			story_owner = {
				is_alive = yes
				has_character_flag = bap_tiger_pet_alive
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = { trigger_event = bap_buy_pet.9001 }
			}
		}
	}
}
