# Slavery (BPM compatible as possible)

REPLACE:law_colonial_slavery = {
	group = lawgroup_slavery
	progressiveness = 50
	icon = "gfx/interface/icons/law_icons/colonial_slavery.dds"
	can_enact = {
		any_scope_state = {
			is_incorporated = no
		}
		#T&R
		custom_tooltip = {
			text = ztr_un_hr_illegalized_slavery_tt
			OR = {
				NOT = { ztr_is_un_member = yes }
				NOT = {
					global_var:ztr_un_hr_slavery = 1
				}
			}
		}
	}
	on_activate = {
		liberate_slaves_in_incorporated_states = yes
		if = {
			limit = {
				has_variable = slavery_recently_abolished
			}
			remove_variable = slavery_recently_abolished
		}
		hidden_effect = {
			if = {
				limit = {
					any_political_movement = {
						is_political_movement_type = movement_pro_slavery
						has_core_ideology = ideology:ideology_pro_slavery_movement
					}
				}
				random_political_movement = {
					limit = {
						is_political_movement_type = movement_pro_slavery
						has_core_ideology = ideology:ideology_pro_slavery_movement
					}
					set_core_ideology = ideology_pro_slavery_colonial_movement
				}
			}
		}
	}
	ai_enact_weight_modifier = {
		value = 0
		#Brazilian AI is more likely to pursue colonial slavery if there are no abolitionists in power.
		if = {
			limit = {
				c:BRZ ?= this
				has_law_or_variant = law_type:law_slave_trade
				NOR = {
					any_interest_group = {
						is_in_government = yes
						leader = {
							has_ideology = ideology:ideology_abolitionist
						}
					}
					ruler ?= {
						has_ideology = ideology:ideology_abolitionist
					}
					heir ?= {
						has_ideology = ideology:ideology_abolitionist
					}
				}
				scope:law.type = law_type:law_colonial_slavery
			}
			add = 250
		}
		# Brazilian AI is more likely to pursue colonial slavery if the Aberdeen Act is being enforced
		if = {
			limit = {
				c:BRZ ?= this
				has_law_or_variant = law_type:law_slave_trade
				has_modifier = aberdeen_act_enforced_brz
				scope:law.type = law_type:law_colonial_slavery
			}
			add = 250
		}
		#Petitions
		if = {
			limit = {
				ai_has_enact_weight_modifier_journal_entries = yes
			}
			add = 750
		}
	}
}

REPLACE:law_debt_slavery = {
	group = lawgroup_slavery
	progressiveness = -50
	icon = "gfx/interface/icons/law_icons/debt_slavery.dds"
	disallowing_laws = {
		law_multicultural
		law_affirmative_action
	}
	#T&R
	can_enact = {
		custom_tooltip = {
			text = ztr_un_hr_illegalized_slavery_tt
			OR = {
				NOT = { ztr_is_un_member = yes }
				NOT = {
					global_var:ztr_un_hr_slavery = 1
				}
			}
		}
		#BPM Compatibility
		trigger_if = {
			limit = {
				BPM_is_active_trigger = yes
			}
			trigger_if = {
				limit = {
					ROOT = c:USA
				}
				NOT = { has_modifier = bpm_gag_rule }
				NOT = { 
					has_modifier = bpm_constitutional_issues 
				}
			}
			trigger_else_if = {
				limit = {
					ROOT = c:BRZ
					root = { 
						has_dlc_feature = rp1_content
						is_player = yes
					}
				}
				NOT = { has_modifier = unrestricted_slave_trade_modifier }
			}
		}
	}
	on_activate = {
		#BPM Compatibility
		if = {
			limit = {
				BPM_is_active_trigger = yes
			}
			ig:ig_landowners ?= {
				remove_modifier = bpm_landowner_wary
			}
			ig:ig_reactionaries ?= {
				remove_modifier = bpm_landowner_wary
			}
		}
		else = {
			set_variable = {
				name = slavery_recently_enacted
				value = yes
				days = 1825
			}
			every_scope_state = {
				limit = {
					NOT = {
						any_scope_pop = {
							is_pop_type = slaves
						}
					}
				}
				set_variable = {
					name = former_free_state
					value = yes
					days = 1825
				}
			}
			ig:ig_landowners ?= {
				switch_from_colonial_slavery_to_pro_slavery = yes
			}
			hidden_effect = {
				if = {
					limit = {
						any_political_movement = {
							is_political_movement_type = movement_pro_slavery
							has_core_ideology = ideology:ideology_pro_slavery_colonial_movement
						}
					}
					random_political_movement = {
						limit = {
							is_political_movement_type = movement_pro_slavery
							has_core_ideology = ideology:ideology_pro_slavery_colonial_movement
						}
						set_core_ideology = ideology_pro_slavery_movement
					}
				}
			}
		}		
	}
	modifier = {
		interest_group_ig_landowners_pol_str_mult = 0.25
	}
	# AI should never enact debt slavery
	ai_will_do = {
		always = no
	}
	ai_enact_weight_modifier = {
		#Petitions
		value = 0
		if = {
			limit = {
				ai_has_enact_weight_modifier_journal_entries = yes
			}
			add = 750
		}
	}
}

REPLACE:law_slave_trade = {
	group = lawgroup_slavery
	progressiveness = -50
	icon = "gfx/interface/icons/law_icons/slave_trade.dds"
	disallowing_laws = {
		law_cultural_exclusion
		law_multicultural
		law_affirmative_action
	}
	#T&R
	can_enact = {
		custom_tooltip = {
			text = ztr_un_hr_illegalized_slavery_tt
			OR = {
				NOT = { ztr_is_un_member = yes }
				NOT = {
					global_var:ztr_un_hr_slavery = 1
				}
			}
		}
		#BPM Compatibility
		trigger_if = {
			limit = {
				BPM_is_active_trigger = yes
			}
			NOT = { 
				has_modifier = bpm_gag_rule 
			}
			NOT = { 
				has_modifier = bpm_constitutional_issues 
			}
		}
	}
	on_activate = {
		if = {
			limit = {
				has_variable = slavery_recently_abolished
			}
			custom_tooltip = {
				text = enslave_discriminated_farm_workers_tt
				every_scope_state = {
					limit = {
						has_variable = former_slave_state
					}
					enslave_discriminated_farm_workers = yes
				}
			}
			remove_variable = slavery_recently_abolished
			every_scope_state = {
				remove_variable = former_slave_state
			}
		}
		#BPM Compatibility
		if = {
			limit = {
				BPM_is_active_trigger = yes
			}
			ig:ig_landowners ?= {
				remove_modifier = bpm_landowner_wary
			}
			ig:ig_reactionaries ?= {
				remove_modifier = bpm_landowner_wary
			}
		}
		else = {
			set_variable = {
				name = slavery_recently_enacted
				value = yes
				days = 1825
			}
			every_scope_state = {
				limit = {
					NOT = {
						any_scope_pop = {
							is_pop_type = slaves
						}
					}
				}
				set_variable = {
					name = former_free_state
					value = yes
					days = 1825
				}
			}
			
			ig:ig_landowners ?= {
				switch_from_colonial_slavery_to_pro_slavery = yes
			}
			hidden_effect = {
				if = {
					limit = {
						any_political_movement = {
							is_political_movement_type = movement_pro_slavery
							has_core_ideology = ideology:ideology_pro_slavery_colonial_movement
						}
					}
					random_political_movement = {
						limit = {
							is_political_movement_type = movement_pro_slavery
							has_core_ideology = ideology:ideology_pro_slavery_colonial_movement
						}
						set_core_ideology = ideology_pro_slavery_movement
					}
				}
			}
		}
	}
	modifier = {
		interest_group_ig_landowners_pol_str_mult = 0.5
		country_influence_mult = -0.25		#Balance for all the economic benefits coming with slavery PMs
	}
	ai_will_do = {
		exists = ruler
		ruler = {
			has_ideology = ideology:ideology_slaver
		}
	}
	ai_enact_weight_modifier = {
		#Petitions
		value = 0
		if = {
			limit = {
				ai_has_enact_weight_modifier_journal_entries = yes
			}
			add = 750
		}
	}
}

REPLACE:law_legacy_slavery = {
	group = lawgroup_slavery
	progressiveness = 0
	icon = "gfx/interface/icons/law_icons/legacy_slavery.dds"
	# no need to add disallowing_laws here since it can only be enacted from Slave Trade
	unlocking_laws = {
		law_slave_trade
	}
	#T&R + #BPM Compatibility
	can_enact = {
		custom_tooltip = {
			text = ztr_un_hr_illegalized_slavery_tt
			OR = {
				NOT = { ztr_is_un_member = yes }
				NOT = {
					global_var:ztr_un_hr_slavery = 1
				}
			}
		}
		#BPM Compatibility
		trigger_if = {
			limit = {
				BPM_is_active_trigger = yes
			}
			trigger_if = {
				limit = {
					ROOT = c:USA
				}
				NOT = { has_modifier = bpm_gag_rule }
			}
			trigger_else_if = {
				limit = {
					ROOT = c:BRZ
					root = { 
						has_dlc_feature = rp1_content
						is_player = yes
					}
				}
				NOT = { has_modifier = unrestricted_slave_trade_modifier }
			}
		}
	}
	on_activate = {
		if = {
			limit = {
				has_variable = slavery_recently_abolished
			}
			custom_tooltip = {
				text = enslave_discriminated_farm_workers_tt
				every_scope_state = {
					limit = {
						has_variable = former_slave_state
					}
					enslave_discriminated_farm_workers = yes
				}
			}
			remove_variable = slavery_recently_abolished
			every_scope_state = {
				remove_variable = former_slave_state
			}
		}
		if = {
			limit = {
				BPM_is_active_trigger = yes
			}
			ig:ig_landowners ?= {
				if = {
					limit = { NOT = { has_modifier = bpm_landowner_wary } }
					add_modifier = { name = bpm_landowner_wary }
				}
			}
			ig:ig_reactionaries ?= {
				if = {
					limit = { 
						NOT = { has_modifier = bpm_landowner_wary } 
						has_ideology = ideology:ideology_eco_slave_economy
					}
					add_modifier = { name = bpm_landowner_wary }
				}
			}
		}
		else = {
			ig:ig_landowners ?= {
				switch_from_colonial_slavery_to_pro_slavery = yes
			}
			hidden_effect = {
				if = {
					limit = {
						any_political_movement = {
							is_political_movement_type = movement_pro_slavery
							has_core_ideology = ideology:ideology_pro_slavery_colonial_movement
						}
					}
					random_political_movement = {
						limit = {
							is_political_movement_type = movement_pro_slavery
							has_core_ideology = ideology:ideology_pro_slavery_colonial_movement
						}
						set_core_ideology = ideology_pro_slavery_movement
					}
				}
			}
		}
	}
	modifier = {
		interest_group_ig_landowners_pol_str_mult = 0.25
		country_influence_mult = -0.1
	}
	ai_enact_weight_modifier = {
		value = 0
		#Brazilian AI is more likely to pursue legacy slavery if there are no abolitionists in power.
		if = {
			limit = {
				c:BRZ ?= this
				has_law_or_variant = law_type:law_slave_trade
				NOR = {
					any_interest_group = {
						is_in_government = yes
						leader = {
							has_ideology = ideology:ideology_abolitionist
						}
					}
					ruler ?= {
						has_ideology = ideology:ideology_abolitionist
					}
					heir ?= {
						has_ideology = ideology:ideology_abolitionist
					}
				}
				scope:law.type = law_type:law_legacy_slavery
			}
			add = 500
		}
		# Brazilian AI is more likely to pursue legacy slavery if the Aberdeen Act is being enforced
		if = {
			limit = {
				c:BRZ ?= this
				has_law_or_variant = law_type:law_slave_trade
				has_modifier = aberdeen_act_enforced_brz
				scope:law.type = law_type:law_legacy_slavery
			}
			add = 500
		}
		#Petitions
		if = {
			limit = {
				ai_has_enact_weight_modifier_journal_entries = yes
			}
			add = 750
		}
	}
}
