﻿##################################################
# Silk Road Scripted Effects
##################################################

tgp_silk_road_downstream_player_sub_region_effect = {
	save_temporary_scope_as = player_temp
	scope:origin_sub_region_temp = { 
		if = {
			limit = { any_situation_sub_region_participant = { this = scope:player_temp } }
			save_temporary_scope_as = player_sub_region_temp
		}
	}
	if = {
		limit = { NOT = { exists = scope:player_sub_region_temp } }
		random_in_list = {
			list = second_sub_regions
			limit = { any_situation_sub_region_participant = { this = scope:player_temp } }
			save_temporary_scope_as = player_sub_region_temp
		}
	}
	if = {
		limit = { NOT = { exists = scope:player_sub_region_temp } }
		random_in_list = {
			list = third_sub_regions
			limit = { any_situation_sub_region_participant = { this = scope:player_temp } }
			save_temporary_scope_as = player_sub_region_temp
		}
	}
}

tgp_silk_road_downstream_effect = {
	save_temporary_scope_as = origin_sub_region_temp
	switch = {
		trigger = scope:origin_sub_region_temp
		# China
		situation:silk_road_situation.situation_sub_region:region_silk_road_proper_china = {
			situation:silk_road_situation = {
				# Secondary
				situation_sub_region:region_silk_road_proper_tibet = { add_to_temporary_list = second_sub_regions }
				situation_sub_region:region_silk_road_proper_central_asia = { add_to_temporary_list = second_sub_regions }
				# Tertiary
				situation_sub_region:region_silk_road_proper_india = { add_to_temporary_list = third_sub_regions }
				situation_sub_region:region_silk_road_proper_transcaspia = { add_to_temporary_list = third_sub_regions }
				situation_sub_region:region_silk_road_proper_occident = { add_to_temporary_list = third_sub_regions }
			}
		}
		# Tibet
		situation:silk_road_situation.situation_sub_region:region_silk_road_proper_tibet = {
			situation:silk_road_situation = {
				# Secondary
				situation_sub_region:region_silk_road_proper_india = { add_to_temporary_list = second_sub_regions }
				# Tertiary
				situation_sub_region:region_silk_road_proper_occident = { add_to_temporary_list = third_sub_regions }
			}
		}
		# Central Asia
		situation:silk_road_situation.situation_sub_region:region_silk_road_proper_central_asia = {
			situation:silk_road_situation = {
				# Secondary
				situation_sub_region:region_silk_road_proper_transcaspia = { add_to_temporary_list = second_sub_regions }
				# Tertiary
				situation_sub_region:region_silk_road_proper_occident = { add_to_temporary_list = third_sub_regions }
			}
		}
		# India
		situation:silk_road_situation.situation_sub_region:region_silk_road_proper_india = {
			situation:silk_road_situation = {
				# Secondary
				situation_sub_region:region_silk_road_proper_occident = { add_to_temporary_list = second_sub_regions }
			}
		}
		# Transcaspia
		situation:silk_road_situation.situation_sub_region:region_silk_road_proper_transcaspia = {
			situation:silk_road_situation = {
				# Secondary
				situation_sub_region:region_silk_road_proper_occident = { add_to_temporary_list = second_sub_regions }
			}
		}
		# Occident
		situation:silk_road_situation.situation_sub_region:region_silk_road_proper_occident = {} # Terminus
	}
	# Fire changes/messages
	scope:origin_sub_region_temp ?= {
		if = {
			limit = { silk_road_sub_region_conflict_trigger = yes }
			tgp_silk_road_downstream_war_effect = yes
		}
		else = { tgp_silk_road_downstream_peace_effect = yes }
	}
	# Cleanup
	clear_saved_scope = origin_sub_region_temp
	every_in_list = {
		list = second_sub_regions
		remove_from_list = second_sub_regions
	}
	every_in_list = {
		list = third_sub_regions
		remove_from_list = third_sub_regions
	}
}

# Effects to move sub regions towards Hardship
tgp_silk_road_downstream_war_effect = {
	# Disabled for now
	#tgp_silk_road_downstream_war_message_effect = yes
	scope:origin_sub_region_temp ?= {
		trigger_sub_region_catalyst = { catalyst = catalyst_silk_road_region_peace }
	}
	every_in_list = {
		list = second_sub_regions
		trigger_sub_region_catalyst = { catalyst = catalyst_silk_road_adjacent_upstream_region_peace }
	}
	every_in_list = {
		list = third_sub_regions
		trigger_sub_region_catalyst = { catalyst = catalyst_silk_road_distant_upstream_region_peace }
	}
}

tgp_silk_road_downstream_war_message_effect = {
	every_player = {
		tgp_silk_road_downstream_player_sub_region_effect = yes
		if = {
			limit = { exists = scope:player_sub_region_temp }
			send_interface_message = {
				type = msg_silk_road_prosperity_war_bad
				title = msg_silk_road_prosperity_upstream_war
				desc = tgp_silk_road_move_sub_region_towards_hardship_tt
				scope:player_sub_region_temp = {
					if = {
						limit = { sub_region_current_phase = phase_exceptional_bounty }
						if = {
							limit = { this = scope:origin_sub_region_temp }
							custom_tooltip = tgp_silk_road_move_sub_region_towards_steady_trading_primary_tt
						}
						else_if = {
							limit = { is_in_list = second_sub_regions }
							custom_tooltip = tgp_silk_road_move_sub_region_towards_steady_trading_secondary_tt
						}
						else = { custom_tooltip = tgp_silk_road_move_sub_region_towards_steady_trading_tertiary_tt }
					}
					else_if = {
						limit = {
							NOT = { sub_region_current_phase = phase_hardship }
						}
						if = {
							limit = { this = scope:origin_sub_region_temp }
							custom_tooltip = tgp_silk_road_move_sub_region_towards_hardship_primary_tt
						}
						else_if = {
							limit = { is_in_list = second_sub_regions }
							custom_tooltip = tgp_silk_road_move_sub_region_towards_hardship_secondary_tt
						}
						else = { custom_tooltip = tgp_silk_road_move_sub_region_towards_hardship_tertiary_tt }
					}
				}
			}
		}
	}
}

# Effects to move sub regions towards Prosperity
tgp_silk_road_downstream_peace_effect = {
	# Disabled for now
	#tgp_silk_road_downstream_peace_message_effect = yes
	scope:origin_sub_region_temp ?= {
		trigger_sub_region_catalyst = { catalyst = catalyst_silk_road_region_war }
	}
	every_in_list = {
		list = second_sub_regions
		trigger_sub_region_catalyst = { catalyst = catalyst_silk_road_adjacent_upstream_region_war }
	}
	every_in_list = {
		list = third_sub_regions
		trigger_sub_region_catalyst = { catalyst = catalyst_silk_road_distant_upstream_region_war }
	}
}

tgp_silk_road_downstream_peace_message_effect = {
	every_player = {
		tgp_silk_road_downstream_player_sub_region_effect = yes
		if = {
			limit = { exists = scope:player_sub_region_temp }
			send_interface_message = {
				type = msg_silk_road_prosperity_peace_good
				title = msg_silk_road_prosperity_upstream_peace
				desc = tgp_silk_road_move_sub_region_towards_exceptional_bounty_tt
				scope:player_sub_region_temp = {
					if = {
						limit = { sub_region_current_phase = phase_hardship }
						if = {
							limit = { this = scope:origin_sub_region_temp }
							custom_tooltip = tgp_silk_road_move_sub_region_towards_steady_trading_primary_tt
						}
						else_if = { 
							limit = { is_in_list = second_sub_regions }
							custom_tooltip = tgp_silk_road_move_sub_region_towards_steady_trading_secondary_tt
						}
						else = { custom_tooltip = tgp_silk_road_move_sub_region_towards_steady_trading_tertiary_tt }
					}
					else_if = {
						limit = {
							NOT = { sub_region_current_phase = phase_exceptional_bounty }
						}
						if = {
							limit = { this = scope:origin_sub_region_temp }
							custom_tooltip = tgp_silk_road_move_sub_region_towards_exceptional_bounty_primary_tt
						}
						else_if = {
							limit = { is_in_list = second_sub_regions }
							custom_tooltip = tgp_silk_road_move_sub_region_towards_exceptional_bounty_secondary_tt
						}
						else = { custom_tooltip = tgp_silk_road_move_sub_region_towards_exceptional_bounty_tertiary_tt }
					}
				}
			}
		}
	}
}

tgp_silk_road_innovation_setup_add_effect = {
	add_to_variable_list = { name = silk_road_unlocked_innovations target = culture_innovation:innovation_$INNOVATION$ }
	add_innovation = innovation_$INNOVATION$
}

tgp_silk_road_innovation_setup_effect = {
	if = {
		limit = { has_tgp_dlc_trigger = yes }
		# CHAM
		culture:cham = {
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = champa_rice }
		}
		# VIET
		culture:viet = {
			if = {
				limit = {
					game_start_date >= 1066.1.1
				}
				tgp_silk_road_innovation_setup_add_effect = { INNOVATION = champa_rice }
			}
		}
		# JAPAN
		culture:japanese = {
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = lacquered_armor }
		}
		# KOREA
		culture:baekje = {
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = lacquered_armor }
		}
		culture:goguryeo = {
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = lacquered_armor }
		}
		culture:silla = {
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = lacquered_armor }
		}
		culture:goryeo = {
			if = {
				limit = {
					game_start_date >= 1066.1.1
				}
				tgp_silk_road_innovation_setup_add_effect = { INNOVATION = lacquered_armor }
			}
		}
		# CHINA
		culture:han = {
			# Woodblock scrolls by 868
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = block_printing }
			# Coking by 9th century
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = coking }
			# Woodblock scrolls by 868
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = composite_crossbow }
			# Pre-Tang
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = cupellation }
			# Pre-Tang
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = dragon_kiln }
			# Pre-Tang
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = lacquered_armor }
			# Pre-Tang
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = pharmacopoeia }
			# Pre-Tang
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = sericulture }
			# Pre-Tang
			tgp_silk_road_innovation_setup_add_effect = { INNOVATION = waterworks }
			if = {
				limit = {
					game_start_date >= 1066.1.1
				}
				# Known by Song
				tgp_silk_road_innovation_setup_add_effect = { INNOVATION = bulkheads }
				# Introduced to the Song court by 977
				tgp_silk_road_innovation_setup_add_effect = { INNOVATION = champa_rice }
				# Lodestone compasses by 1088
				tgp_silk_road_innovation_setup_add_effect = { INNOVATION = compass }
				# 10-11th century
				tgp_silk_road_innovation_setup_add_effect = { INNOVATION = double_entry_bookkeeping }
				# First edition of the Wujing Zongyao and the first written formulation of weaponized gunpowder
				tgp_silk_road_innovation_setup_add_effect = { INNOVATION = fire_medicine }
				# 震天雷 by 1044
				tgp_silk_road_innovation_setup_add_effect = { INNOVATION = grenades }
			}
		}
	}
}

tgp_silk_road_movement_stream_effect = {
	$SUB_REGION$ ?= {
		save_temporary_scope_as = sub_region_temp
		var:innovation ?= { save_temporary_scope_as = old_innovation_temp }
	}
	$UPSTREAM_SUB_REGION$ = {
		save_temporary_scope_as = upstream_sub_region_temp
		var:innovation ?= { save_temporary_scope_as = new_innovation_temp }
	}
	scope:sub_region_temp = {
		every_player = {
			limit = {
				save_temporary_scope_as = player_temp
				scope:sub_region_temp = { any_situation_sub_region_participant = { this = scope:player_temp } }
			}
			send_interface_message = {
				type = msg_silk_road_innovation_movement
				title = msg_silk_road_innovation_movement_stream_title
				desc = msg_silk_road_innovation_movement_stream_desc
				custom_tooltip = msg_silk_road_innovation_movement_tt
			}
		}
		set_variable = {
			name = innovation
			value = scope:new_innovation_temp
		}
	}
}

tgp_silk_road_movement_china_effect = {
	situation_sub_region:region_silk_road_proper_china = { save_temporary_scope_as = sub_region_temp }

	# Find the culture of the province the market of Chang'an is located in
	title:c_jingzhao = {
		culture = {
			save_temporary_scope_as = region_silk_road_proper_china_market_culture
			random_culture_innovation = {
				limit = {
					has_innovation_parameter = silk_road_innovation_parameter
					is_known_by_culture = scope:region_silk_road_proper_china_market_culture
					NOR = {
						this = situation_sub_region:region_silk_road_proper_occident.var:innovation
						this = situation_sub_region:region_silk_road_proper_transcaspia.var:innovation
						this = situation_sub_region:region_silk_road_proper_india.var:innovation
						this = situation_sub_region:region_silk_road_proper_central_asia.var:innovation
						this = situation_sub_region:region_silk_road_proper_tibet.var:innovation
						this = situation_sub_region:region_silk_road_proper_china.var:innovation
					}
				}
				save_scope_as = new_innovation_temp
			}
		}
	}
	scope:sub_region_temp = {
		every_player = {
			limit = {
				save_temporary_scope_as = player_temp
				scope:sub_region_temp = { any_situation_sub_region_participant = { this = scope:player_temp } }
			}
			send_interface_message = {
				type = msg_silk_road_innovation_movement
				title = msg_silk_road_innovation_movement_china_title
				desc = msg_silk_road_innovation_movement_china_desc
				custom_tooltip = msg_silk_road_innovation_movement_tt
			}
		}
		set_variable = {
			name = innovation
			value = scope:new_innovation_temp
		}
	}
}

tgp_silk_road_decision_scope_effect = {
	save_scope_as = market_temp
	title_province = {
		save_scope_as = destination_province
		save_scope_as = background_market_scope
		save_scope_as = silk_road_market_town
	}
	random_county_situation_sub_region = {
		limit = {
			situation_sub_region_has_county = scope:market_temp
			OR = {
				sub_region_current_phase = phase_exceptional_bounty
				sub_region_current_phase = phase_steady_trading
				sub_region_current_phase = phase_hardship
			}
		}
		save_scope_as = sub_region_temp
		var:innovation ?= { save_scope_as = innovation_temp }
	}
}

tgp_silk_road_market_built_effect = {
	county = {
		save_temporary_scope_as = county_temp
		random_county_situation = {
			limit = {
				situation_type = silk_road_situation
				situation_has_catalyst = catalyst_silk_road_famous_market_built
			}
			trigger_situation_catalyst = {
				catalyst = catalyst_silk_road_famous_market_built
				county = scope:county_temp
				character = scope:character
			}
		}
	}
}

tgp_silk_road_canal_built_effect = {
	situation:silk_road_situation ?= {
		if = {
			limit = { situation_has_catalyst = catalyst_silk_road_china_grand_canal_expanded }
			situation_sub_region:region_silk_road_proper_china ?= {
				trigger_sub_region_catalyst = {
					catalyst = catalyst_silk_road_china_grand_canal_expanded
					character = scope:owner
				}
			}
		}
		if = {
			limit = { situation_has_catalyst = catalyst_silk_road_china_grand_canal_expanded_secondary }
			situation_sub_region:region_silk_road_proper_tibet ?= {
				trigger_sub_region_catalyst = {
					catalyst = catalyst_silk_road_china_grand_canal_expanded_secondary
					character = scope:owner
				}
			}
			situation_sub_region:region_silk_road_proper_central_asia ?= {
				trigger_sub_region_catalyst = {
					catalyst = catalyst_silk_road_china_grand_canal_expanded_secondary
					character = scope:owner
				}
			}
		}
		if = {
			limit = { situation_has_catalyst = catalyst_silk_road_china_grand_canal_expanded_tertiary }
			situation_sub_region:region_silk_road_proper_india ?= {
				trigger_sub_region_catalyst = {
					catalyst = catalyst_silk_road_china_grand_canal_expanded_tertiary
					character = scope:owner
				}
			}
			situation_sub_region:region_silk_road_proper_transcaspia ?= {
				trigger_sub_region_catalyst = {
					catalyst = catalyst_silk_road_china_grand_canal_expanded_tertiary
					character = scope:owner
				}
			}
		}
	}
}

tgp_silk_road_expand_steppe_effect = {
	situation:silk_road_situation = {
		if = {
			limit = { situation_has_catalyst = catalyst_silk_road_mpo_region_to_steppe }
			situation_sub_region:region_silk_road_proper_$SUB_REGION$ = {
				trigger_sub_region_catalyst = {
					catalyst = catalyst_silk_road_mpo_region_to_steppe
					character = scope:steppe_expander
				}
			}
		}
	}
}

tgp_silk_road_raid_effect = { # county scope
	if = {
		limit = {
			title_province = { geographical_region = dlc_tgp_silk_road_route_region } # the actual route
		}
		save_temporary_scope_as = county_temp
		random_county_situation = {
			limit = {
				situation_type = silk_road_situation
				situation_has_catalyst = catalyst_silk_road_raided
			}
			trigger_situation_catalyst = {
				catalyst = catalyst_silk_road_raided
				county = scope:county_temp
				character = scope:raider
			}
		}
	}
}

tgp_silk_road_mongol_devastation_effect = { # county scope
	if = {
		limit = {
			title_province = { geographical_region = dlc_tgp_silk_road_route_region } # the actual route
		}
		save_temporary_scope_as = county_temp
		random_county_situation = {
			limit = {
				situation_type = silk_road_situation
				situation_has_catalyst = catalyst_silk_road_mongol_devastation
			}
			trigger_situation_catalyst = {
				catalyst = catalyst_silk_road_mongol_devastation
				county = scope:county_temp
				character = scope:mongol_emperor
			}
		}
	}
}

tgp_silk_road_iranian_intermezzo_yearly_effect = {
	if = {
		limit = {
			struggle:persian_struggle ?= { is_struggle_phase = struggle_persia_phase_unrest }
			situation:silk_road_situation ?= { situation_has_catalyst = catalyst_silk_road_iranian_intermezzo_in_unrest }
		}
		situation:silk_road_situation.situation_sub_region:region_silk_road_proper_occident ?= {
			trigger_sub_region_catalyst = { catalyst = catalyst_silk_road_iranian_intermezzo_in_unrest }
		}
	}
}

tgp_silk_road_iranian_intermezzo_ending_effect = {
	save_scope_as = struggle_ender
	situation:silk_road_situation ?= {
		if = {
			limit = { situation_has_catalyst = catalyst_silk_road_iranian_intermezzo_ending_reached }
			situation_sub_region:region_silk_road_proper_occident ?= {
				trigger_sub_region_catalyst = {
					catalyst = catalyst_silk_road_iranian_intermezzo_ending_reached
					character = scope:struggle_ender
				}
			}
		}
	}
}

tgp_silk_road_china_consolidation_effect = {
	situation:silk_road_situation ?= {
		if = {
			limit = { situation_has_catalyst = catalyst_silk_road_china_consolidation }
			every_situation_sub_region = {
				trigger_sub_region_catalyst = {
					catalyst = catalyst_silk_road_china_consolidation
					character = scope:huangdi
				}
			}
		}
	}
}

tgp_silk_road_china_stability_effect = {
	if = {
		limit = {
			situation:dynastic_cycle = {
				OR = {
					situation_current_phase = situation_dynastic_cycle_phase_stability
					situation_current_phase = situation_dynastic_cycle_phase_stability_expansion
					situation_current_phase = situation_dynastic_cycle_phase_stability_advancement
				}
			}
		}
		situation:silk_road_situation ?= {
			if = {
				limit = { situation_has_catalyst = catalyst_silk_road_china_stability }
				every_situation_sub_region = {
					trigger_sub_region_catalyst = {
						catalyst = catalyst_silk_road_china_stability
						character = scope:huangdi
					}
				}
			}
		}
	}
}

tgp_silk_road_feudalize_holding_effect = {
	save_temporary_scope_as = county_temp
	random_county_situation = {
		limit = {
			situation_type = silk_road_situation
			situation_has_catalyst = catalyst_silk_road_mpo_region_resettled
		}
		trigger_situation_catalyst = {
			catalyst = catalyst_silk_road_mpo_region_resettled
			county = scope:county_temp
			character = scope:actor
		}
	}
}

tgp_silk_road_byzantium_destroyed_effect = {
	situation:silk_road_situation = {
		if = {
			limit = { situation_has_catalyst = catalyst_silk_road_byzantium_blew_up }
			situation_sub_region:region_silk_road_proper_occident = {
				trigger_sub_region_catalyst = {
					catalyst = catalyst_silk_road_byzantium_blew_up
					character = title:e_byzantium.previous_holder
				}
			}
		}
	}
}

tgp_silk_road_phase_message_effect = {
	every_player = {
		limit = {
			save_temporary_scope_as = player_temp
			scope:situation_sub_region ?= {
				any_situation_sub_region_participant_group = { participant_group_has_character = scope:player_temp }
			}
		}
		if = {
			limit = {
				scope:situation_sub_region = { sub_region_current_phase = phase_exceptional_bounty }
			}
			send_interface_message = {
				type = msg_silk_road_good
				title = msg_silk_road_phase_change_title
				custom_tooltip = msg_silk_road_phase_change_tt
			}
		}
		else_if = {
			limit = {
				scope:situation_sub_region = { sub_region_current_phase = phase_hardship}
			}
			send_interface_message = {
				type = msg_silk_road_bad
				title = msg_silk_road_phase_change_title
				custom_tooltip = msg_silk_road_phase_change_tt
			}
		}
		else = {
			send_interface_message = {
				type = msg_silk_road_neutral
				title = msg_silk_road_phase_change_title
				custom_tooltip = msg_silk_road_phase_change_tt
			}
		}
	}
}
