﻿battlefield_duel_configure_start_single_combat_effect = {
	# Private wrapper only. Do not replace AGOT's shared duel setup.

	$SC_INITIATOR$ = { save_scope_as = sc_initiator }
	$SC_ATTACKER$ = { save_scope_as = sc_attacker }
	$SC_DEFENDER$ = { save_scope_as = sc_defender }

	if = {
		limit = { exists = scope:sc_finished }
		clear_saved_scope = sc_finished
	}
	# Save the result events because the original scopes may be gone by the end.
	save_scope_value_as = {
		name = follow_up_event
		value = event_id:$OUTPUT_EVENT$
	}
	save_scope_value_as = {
		name = invalidation_event
		value = event_id:$INVALIDATION_EVENT$
	}

	if = {
		limit = {
			scope:sc_attacker != scope:sc_defender
		}
		bdp_battlefield_reputation_begin_duel_effect = yes

		hidden_effect = { remove_single_combat_info_effect = yes }

		scope:sc_attacker = {
			set_variable = {
				name = engaged_in_single_combat
				value = yes
			}
		}
		scope:sc_defender = {
			set_variable = {
				name = engaged_in_single_combat
				value = yes
			}
		}

		# These owned locks stop AGOT and AI-vs-AI from stealing either fighter.
		scope:sc_attacker = {
			if = {
				limit = { NOT = { has_character_flag = already_fighting } }
				add_character_flag = { flag = battlefield_duel_manual_sc_added_already_fighting days = 14 }
				add_character_flag = { flag = already_fighting days = 14 }
			}
		}
		scope:sc_defender = {
			if = {
				limit = { NOT = { has_character_flag = already_fighting } }
				add_character_flag = { flag = battlefield_duel_manual_sc_added_already_fighting days = 14 }
				add_character_flag = { flag = already_fighting days = 14 }
			}
		}

		single_combat_apply_default_shirtlessness_effect = {
			ATTACKER = scope:sc_attacker
			DEFENDER = scope:sc_defender
		}

		save_scope_value_as = {
			name = fatality
			value = flag:$FATALITY$
		}
		save_scope_value_as = {
			name = fixed
			value = flag:$FIXED$
		}
		save_scope_value_as = {
			name = locale
			value = flag:$LOCALE$
		}

		if = {
			limit = { scope:locale = flag:terrain_scope }
			scope:sc_defender.location = { save_scope_as = background_terrain_scope }
		}
		if = {
			limit = { scope:locale = flag:battlefield_duel_terrain }
			scope:sc_attacker.location = { save_scope_as = background_terrain_scope }
		}

		scope:sc_attacker = {
			set_variable = {
				name = sc_attacker_injury_bonus
				value = starting_injury_bonus
			}
		}
		scope:sc_defender = {
			# The defender holds the shared round state for both fighters.
			set_variable = {
				name = sc_defender_injury_bonus
				value = starting_injury_bonus
			}
			set_variable = {
				name = success_threshold
				value = starting_success_threshold
			}
		}

		scope:sc_attacker = {
			set_variable = {
				name = sc_attacker_injury_risk_score
				value = 0
			}
			set_variable = {
				name = sc_attacker_duel_success_score
				value = 0
			}

			set_local_variable = {
				name = current_duel_edge_buff
				value = 0
			}
			set_local_variable = {
				name = current_duel_edge_debuff
				value = 0
			}

			set_signature_weapon_effect = yes
		}
		scope:sc_defender = {
			set_variable = {
				name = sc_defender_injury_risk_score
				value = 0
			}
			set_variable = {
				name = sc_defender_duel_success_score
				value = 0
			}

			set_local_variable = {
				name = current_duel_edge_buff
				value = 0
			}
			set_local_variable = {
				name = current_duel_edge_debuff
				value = 0
			}

			set_variable = {
				name = current_round
				value = 1
			}

			set_signature_weapon_effect = yes
		}

		scope:sc_defender = { trigger_event = battlefield_duel_single_combat.0001 }
	}

	else = {
		scope:sc_initiator = {
			trigger_event = { saved_event_id = scope:invalidation_event }
		}

		error_log = debug_log.single_combat_setup.attacker_and_defender_same_person
		debug_log = debug_log.single_combat_setup.attacker_and_defender_same_person.notice
		debug_log_scopes = yes
	}
}
