﻿# Override of vanilla story_cycle_pet_cat: shows the mod's 14 custom portraits via var:bap_cat_type.
# Generated by tools/make_pet_overrides.py - vanilla logic preserved.

story_cycle_pet_cat = {
	visible = yes
	icon = {
		trigger = { var:bap_cat_type ?= flag:black }
		reference = "gfx/interface/icons/pets/bap_cat_black.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:tabby }
		reference = "gfx/interface/icons/pets/bap_cat_tabby.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:white }
		reference = "gfx/interface/icons/pets/bap_cat_white.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:ginger }
		reference = "gfx/interface/icons/pets/bap_cat_ginger.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:grey }
		reference = "gfx/interface/icons/pets/bap_cat_grey.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:tuxedo }
		reference = "gfx/interface/icons/pets/bap_cat_tuxedo.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:calico }
		reference = "gfx/interface/icons/pets/bap_cat_calico.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:tortoiseshell }
		reference = "gfx/interface/icons/pets/bap_cat_tortoiseshell.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:spotted }
		reference = "gfx/interface/icons/pets/bap_cat_spotted.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:cream }
		reference = "gfx/interface/icons/pets/bap_cat_cream.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:siamese }
		reference = "gfx/interface/icons/pets/bap_cat_siamese.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:longhair }
		reference = "gfx/interface/icons/pets/bap_cat_longhair.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:smoke }
		reference = "gfx/interface/icons/pets/bap_cat_smoke.dds"
	}
	icon = {
		trigger = { var:bap_cat_type ?= flag:scarred }
		reference = "gfx/interface/icons/pets/bap_cat_scarred.dds"
	}
	icon = {
		trigger = { always = yes }
		reference = "gfx/interface/icons/pets/bap_cat_black.dds"
	}
	background = {
		reference = "gfx/interface/illustrations/event_scenes/garden.dds"
	}
	
	visualization = {
		custom_string_key = "bap_story_cycle_cat_info"
		modifiers = {
			cat_story_modifier
			cat_story_allergy_modifier
			rat_hunting_cat_modifier
			adventurous_pet_modifier
			feral_pet_modifier
			feast_well_fed_cat_modifier
			cat_dopey_modifier
			cat_wrangler_modifier
			cat_coitus_interrupted_modifier
			cat_rejection_modifier
			cat_ill_modifier
			cat_lover_modifier
		}
		decisions = {
			bap_abandon_pet_decision
			pet_cat_decision
		}
	}

	on_setup = {
		if = {
			limit = { NOT = { exists = var:bap_cat_type } }
			random_list = {
				10 = { set_variable = { name = bap_cat_type value = flag:black } }
				10 = { set_variable = { name = bap_cat_type value = flag:tabby } }
				10 = { set_variable = { name = bap_cat_type value = flag:white } }
				10 = { set_variable = { name = bap_cat_type value = flag:ginger } }
				10 = { set_variable = { name = bap_cat_type value = flag:grey } }
				10 = { set_variable = { name = bap_cat_type value = flag:tuxedo } }
				10 = { set_variable = { name = bap_cat_type value = flag:calico } }
				10 = { set_variable = { name = bap_cat_type value = flag:tortoiseshell } }
				10 = { set_variable = { name = bap_cat_type value = flag:spotted } }
				10 = { set_variable = { name = bap_cat_type value = flag:cream } }
				10 = { set_variable = { name = bap_cat_type value = flag:siamese } }
				10 = { set_variable = { name = bap_cat_type value = flag:longhair } }
				10 = { set_variable = { name = bap_cat_type value = flag:smoke } }
				10 = { set_variable = { name = bap_cat_type value = flag:scarred } }
			}
		}
		assign_cat_gender_effect = { GENDER = random }
		assign_cat_fur_color_effect = { COLOR = random }
		if = { #Has the eye-color already been specified?
			limit = {
				story_owner = { exists = var:cat_eye_color }
			}
			if = {
				limit = {
					story_owner = { var:cat_eye_color = flag:blue }
				}
				assign_cat_eye_color_effect = { COLOR = blue }
			}
			else_if = {
				limit = {
					story_owner = { var:cat_eye_color = flag:yellow }
				}
				assign_cat_eye_color_effect = { COLOR = yellow }
			}
			else_if = {
				limit = {
					story_owner = { var:cat_eye_color = flag:green }
				}
				assign_cat_eye_color_effect = { COLOR = green }
			}
			else_if = {
				limit = {
					story_owner = { var:cat_eye_color = flag:amber }
				}
				assign_cat_eye_color_effect = { COLOR = amber }
			}
			else_if = {
				limit = {
					story_owner = { var:cat_eye_color = flag:copper }
				}
				assign_cat_eye_color_effect = { COLOR = copper }
			}
			else_if = {
				limit = {
					story_owner = { var:cat_eye_color = flag:emerald }
				}
				assign_cat_eye_color_effect = { COLOR = emerald }
			}
		}
		else = {
			assign_cat_eye_color_effect = { COLOR = random }
		}
		set_variable = {
			name = cat_age_variable
			value = 0
		}

		story_owner = {
			add_character_modifier = {
				modifier = cat_story_modifier
			}
			bap_add_cat_pet_upkeep_effect = yes
			add_character_flag = had_cat_story
			#Are you already allergic to the cat?
			if = {
				limit = {
					has_character_modifier = cat_story_allergy_modifier
				}
				remove_character_modifier = cat_story_allergy_modifier
				add_character_modifier = {
					modifier = cat_story_allergy_modifier
				}
			}
		}
		
		# Give the cat a name!
		if = {
			limit = {
				story_owner = {
					NOT = { has_character_flag = is_naming_cat }
				}
				NOT = { exists = story_owner.var:story_cycle_cat_name }
			}
			story_owner = {
				add_character_flag = is_naming_cat
				trigger_event = {
					id = pet_animal.0001
					days = 2
				}
			}
		}

	}

	on_end = {
		story_owner = {
			if = {
				limit = {
					is_alive = yes
					has_character_flag = cat_is_dying
					NOT = { has_character_flag = bap_pet_story_abandoning }
				}
				bap_prepare_pet_memorial_effect = yes
			}
			bap_remove_cat_pet_upkeep_effect = yes
			remove_cat_story_modifiers_effect = yes
			remove_cat_name_effect = yes
		}
	}

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

	#Age the cat
	effect_group = {
		days = 365

		trigger = {
			exists = var:cat_age_variable
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				change_variable = {
					name = cat_age_variable
					add = 1
				}
			}
		}
	}

	# Keep the visible monthly upkeep matched to the current game rule.
	effect_group = {
		days = 30
		chance = 100

		trigger = {
			story_owner = { is_alive = yes }
		}

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

	# The cat dies :(
	effect_group = {
		days = { 5000 7000 }
		chance = 100
	
		triggered_effect = {
			trigger = {
				exists = story_owner.var:story_cycle_cat_name
			}
			effect = {
				story_owner = {
					add_character_flag = {
						flag = cat_is_dying
					}
					trigger_event = pet_animal.0199
				}
			}
		}
	}

	# Something happens - random events
	effect_group = {
		days = { 730 1200 }
		chance = 30

		trigger = {
			has_game_rule = bap_pet_events_rare
			exists = story_owner.var:story_cycle_cat_name
			story_owner = {
				NOT = {
					has_character_flag = cat_is_dying
				}
			}
		}

		first_valid = {
			triggered_effect = {
				trigger = { always = yes }
				effect = {
					story_owner = {
						trigger_event = {
							on_action = ongoing_cat_events
						}
					}
				}
			}
		}
	}

	effect_group = {
		days = { 365 600 }
		chance = 30

		trigger = {
			has_game_rule = bap_pet_events_normal
			exists = story_owner.var:story_cycle_cat_name
			story_owner = {
				NOT = {
					has_character_flag = cat_is_dying
				}
			}
		}

		first_valid = {
			triggered_effect = {
				trigger = { always = yes }
				effect = {
					story_owner = {
						trigger_event = {
							on_action = ongoing_cat_events
						}
					}
				}
			}
		}
	}

	effect_group = {
		days = { 180 300 }
		chance = 30

		trigger = {
			has_game_rule = bap_pet_events_frequent
			exists = story_owner.var:story_cycle_cat_name
			story_owner = {
				NOT = {
					has_character_flag = cat_is_dying
				}
			}
		}

		first_valid = {
			triggered_effect = {
				trigger = { always = yes }
				effect = {
					story_owner = {
						trigger_event = {
							on_action = ongoing_cat_events
						}
					}
				}
			}
		}
	}
}
