# Comprehensive Sandbox Control - state actions scripted effects
#
# State-scoped actions. Target state is in scope. Acting country is ROOT.

# csc_effect_state_transfer_owner
csc_effect_state_transfer_owner = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		transfer_state_to = ROOT
	}
}

# csc_effect_state_transfer_controller
csc_effect_state_transfer_controller = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		set_state_controller_to = ROOT
	}
}

# csc_effect_state_add_core
csc_effect_state_add_core = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		add_core_of = ROOT
	}
}

# csc_effect_state_remove_core
csc_effect_state_remove_core = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		remove_core_of = ROOT
	}
}

# csc_effect_state_add_claim
csc_effect_state_add_claim = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		add_claim_by = ROOT
	}
}

# csc_effect_state_remove_claim
csc_effect_state_remove_claim = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		remove_claim_by = ROOT
	}
}

# csc_effect_state_move_capital
csc_effect_state_move_capital = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		ROOT = {
			set_capital = {
				state = PREV
			}
		}
	}
}

# csc_effect_state_build_slots
csc_effect_state_build_slots = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		add_extra_state_shared_building_slots = 5
	}
}

# csc_effect_state_give_resource_rights
# Acting country (ROOT) gains rights to all of the selected state's resources
# without owning it. give_resource_rights is run by the GRANTER (the state's
# owner). The target state is passed explicitly via its saved event target
# (PREV is unreliable across the event->effect->owner scope chain), mirroring
# State Interactions' proven `FROM.owner = { give_resource_rights ... state = FROM }`.
csc_effect_state_give_resource_rights = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		event_target:csc_pending_target_state.owner = {
			give_resource_rights = {
				receiver = ROOT
				state = event_target:csc_pending_target_state
			}
		}
	}
}

# csc_effect_state_remove_resource_rights
# Acting country relinquishes its resource rights to the selected state. Run by
# the right-holder (ROOT); the state is passed explicitly via its event target.
csc_effect_state_remove_resource_rights = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		ROOT = {
			remove_resource_rights = event_target:csc_pending_target_state
		}
	}
}

# csc_effect_state_transfer_marked
# Bulk transfer: every state the acting country (ROOT) has marked in
# csc_marked_states_array is transferred to ROOT, then the marks are cleared.
# Runs in ROOT (country) scope from csc_confirmation.3. Array stores state ids
# (THIS.id), mirroring State Interactions' proven mark/transfer pattern.
csc_effect_state_transfer_marked = {
	if = {
		limit = { csc_disruptive_enabled = yes }
		every_state = {
			limit = { is_in_array = { array = ROOT.csc_marked_states_array value = THIS.id } }
			transfer_state_to = ROOT
		}
		clear_array = csc_marked_states_array
		set_variable = { csc_marked_count = 0 }
	}
}

# csc_effect_state_repair_buildings
csc_effect_state_repair_buildings = {
	if = {
		limit = { ROOT = { csc_disruptive_enabled = yes } }
		damage_building = { type = infrastructure damage = -100.0 }
		damage_building = { type = industrial_complex damage = -100.0 }
		damage_building = { type = arms_factory damage = -100.0 }
		damage_building = { type = dockyard damage = -100.0 }
		damage_building = { type = air_base damage = -100.0 }
		damage_building = { type = naval_base damage = -100.0 }
		damage_building = { type = bunker damage = -100.0 }
		damage_building = { type = coastal_bunker damage = -100.0 }
		damage_building = { type = radar_building damage = -100.0 }
		damage_building = { type = synthetic_refinery damage = -100.0 }
		damage_building = { type = anti_air_building damage = -100.0 }
		damage_building = { type = nuclear_reactor damage = -100.0 }
		damage_building = { type = rocket_site damage = -100.0 }
	}
}
