﻿# Custom CBs for FP2

fp2_border_raid = {
	group = invasion
	icon = struggle

	combine_into_one = yes
	should_show_war_goal_subview = yes
	allow_hostages = no
	mutually_exclusive_titles = { always = yes }
	interface_priority = 110
	
	attacker_score_from_occupation_scale = 150
	attacker_score_from_battles_scale = 150
	defender_score_from_battles_scale = 150

	allowed_for_character = {
		OR = {
			any_character_struggle = {
				involvement = involved
				has_struggle_phase_parameter = unlocks_border_raid_casus_belli
			}
			OR = {
				has_trait = rd_gpt_conqueror
				has_trait = rd_gpt_conquest_era
			}
		}
		NOT = {
			government_has_flag = government_is_landless_adventurer
		}
	}

	allowed_for_character_display_regardless = {
		tgp_japan_offensive_wars_ban_trigger = yes
	}

	allowed_against_character = {
	 #	any_character_struggle = {
	 #		involvement = involved
	 #		has_struggle_phase_parameter = unlocks_border_raid_casus_belli
	 #	}
		# Defender must be bordering your realm.
		OR = {
			character_is_land_realm_neighbor = scope:attacker
			AND = {
				exists = scope:attacker.liege
				character_is_land_realm_neighbor = scope:attacker.liege
			}
		}
	}

	target_titles = neighbor_land # border
	target_title_tier = county # county
	target_de_jure_regions_above = no
	ignore_effect = change_title_holder

	ai_score_mult = {
		value = fp2_border_raid_ai_targeting_value
		add = frankokratia_leader_protection_value #Set back to 0. Declaring war on the frankokratia leader can really ruin the whole thing
	}

	valid_to_start = {
		exists = scope:target
		NOT = {
			scope:target.title_province = { has_province_modifier = recently_looted_modifier }
		}
	}

	should_invalidate = {
		NOT = {
			any_in_list = {
				list = target_titles
				holder = { target_is_same_character_or_above = scope:defender }
			}
		}
	}

	on_invalidated_desc = msg_county_conquest_war_invalidated_message
	
	on_invalidated = {}

	cost = {
		piety = {
			value = 0
			if = {
				limit = {
					scope:defender.faith = scope:attacker.faith
				}
				add = {
					value = minor_piety_value
					desc = CB_SAME_FAITH_COST
				}
			}

			multiply = common_cb_piety_cost_multiplier
		}
		prestige = {
			value = minor_prestige_value
			if = {
				limit = {
					scope:defender.faith != scope:attacker.faith
				}
				add = {
					value = minor_prestige_value
					desc = CB_COST_DIFFERENT_FAITH
				}
			}
			multiply = common_cb_prestige_cost_multiplier
		}
	}

	on_declaration = {
		on_declared_war = yes
	}

	on_victory_desc = {
		triggered_desc = {
			trigger = {
				scope:attacker = { is_local_player = yes }
			}
			desc = border_raid_cb_desc_victory_attacker
		}
		triggered_desc = {
			trigger = {
				scope:defender = { is_local_player = yes }
			}
			desc = border_raid_cb_desc_victory_defender
		}
	}

	on_victory = {
		# Legitimacy
		add_legitimacy_attacker_victory_effect = yes
		
		#EP2 accolade glory gain for winning against higher ranked enemy
		scope:attacker = { accolade_attacker_war_end_glory_gain_low_effect = yes }
		
		every_in_list = {
			list = target_titles
			save_scope_as = raid_county
			# Set raided province modifier
			title_province = {
				add_province_modifier = {
					modifier = recently_looted_modifier
					years = 5
				}
			}
			show_as_tooltip = {
				every_in_list = {
					list = target_titles
					fp2_border_raid_damage_effect = yes
				}
			}
			# Find province for building destruction
			ordered_county_province = {
				order_by = num_buildings
				random = {
					chance = 25
					modifier = { factor = destroy_building_soldier_multiplier_value } # chance increases with more soldiers
					modifier = { add = destroy_building_development_multiplier_value } # chance increases with development
					custom_tooltip = destroy_random_building_tt
					destroy_random_building_variable_effect = yes
				}
			}
		}

		hidden_effect = {
			scope:attacker = {
				send_interface_message = {
					type = event_raid_good
					title = border_raid_message_title
					show_as_tooltip = {
						every_in_list = {
							list = target_titles
							fp2_border_raid_damage_effect = yes
						}
					}
				}
			}
			scope:defender = {
				send_interface_message = {
					type = event_raid_bad
					title = border_raid_message_title
					every_in_list = {
						list = target_titles
						fp2_border_raid_damage_effect = yes
					}
				}
			}
		}

		show_as_tooltip = {
			create_title_and_vassal_change = {
				type = conquest
				save_scope_as = change
				add_claim_on_loss = yes
			}
			every_in_list = {
				list = target_titles
				change_title_holder = {
					holder = scope:attacker
					change = scope:change
				}
			}
			resolve_title_and_vassal_change = scope:change
		}

		# Prestige Progress for the Attacker
		every_in_list = {
			list = target_titles
			scope:attacker = {
				add_prestige_experience = miniscule_prestige_value
			}
		}

		# Prestige for the attacker's war allies
		add_from_contribution_attackers = {
			prestige = minor_prestige_value
			opinion = {
				modifier = contributed_in_war
			}
		}

		# Prestige for the defender's war allies
		add_from_contribution_defenders = {
			prestige = minor_prestige_value
			opinion = {
				modifier = contributed_in_war
			}
		}

		# Break alliances now out of diplo range
		if = {
			limit = {
				scope:attacker = {
					any_ally = {
						NOT = { in_diplomatic_range = scope:attacker }
					}
				}
			}
			scope:attacker = {
				every_ally = {
					limit = {
						NOT = { in_diplomatic_range = scope:attacker }
					}
					break_alliance = scope:attacker
				}
			}
		}

		# Truce
		add_truce_attacker_victory_effect = yes

		# EP3: note gold gained from military assistance/join war contracts and their war contribution threshold
		laamp_as_mercenary_payout_tooltip_effect = yes

		#Mandalas gain or lose piety/devotion depending on Decree
		mandala_war_victory_effects = yes
	}

	on_white_peace_desc = {
		triggered_desc = {
			trigger = {
				scope:attacker = { is_local_player = yes }
			}
			desc = border_raid_cb_desc_white_peace_attacker
		}
		triggered_desc = {
			trigger = {
				scope:defender = { is_local_player = yes }
			}
			desc = border_raid_cb_desc_white_peace_defender
		}
	}

	on_white_peace = {
		# Prestige loss for the attacker
		scope:attacker = {
			add_prestige = {
				value = miniscule_prestige_value
				multiply = -1.0
			}
			stress_impact = {
				ambitious = medium_stress_impact_gain
				arrogant = medium_stress_impact_gain
			}
		}

		# Prestige for the attacker's war allies
		add_from_contribution_attackers = {
			prestige = minor_prestige_value
			opinion = {
				modifier = contributed_in_war
			}
		}

		# Prestige for the defender's war allies
		add_from_contribution_defenders = {
			prestige = minor_prestige_value
			opinion = {
				modifier = contributed_in_war
			}
		}

		scope:defender = {
			stress_impact = {
				arrogant = medium_stress_impact_gain
			}
		}

		add_truce_white_peace_effect = yes

		# EP3: note gold gained from military assistance/join war contracts and their war contribution threshold
		laamp_as_mercenary_payout_tooltip_effect = yes
	}

	on_defeat_desc = {
		triggered_desc = {
			trigger = {
				scope:attacker = { is_local_player = yes }
			}
			desc = border_raid_cb_desc_defeat_attacker
		}
		triggered_desc = {
			trigger = {
				scope:defender = { is_local_player = yes }
			}
			desc = border_raid_cb_desc_defeat_defender
		}
	}

	on_defeat = {
		# Legitimacy
		add_legitimacy_attacker_defeat_effect = yes
		
		scope:defender = { 
			mandala_peacemaker_perk_serenity_effect = yes
			#EP2 accolade glory gain for winning against higher ranked enemy
			accolade_defender_war_end_glory_gain_high_effect = yes
			# Prestige for Defender
			add_prestige_war_defender_effect = {
				PRESTIGE_VALUE = medium_prestige_value
			}
		}

		# Prestige loss for the attacker
		scope:attacker = {
			pay_short_term_gold_reparations_effect = {
				GOLD_VALUE = 1
			}
			add_prestige = {
				value = medium_prestige_value
				multiply = -1.0
			}
		}

		# Prestige for the attacker's war allies
		add_from_contribution_attackers = {
			prestige = minor_prestige_value
			opinion = {
				modifier = contributed_in_war
			}
		}

		# Prestige for the defender's war allies
		add_from_contribution_defenders = {
			prestige = minor_prestige_value
			opinion = {
				modifier = contributed_in_war
			}
		}

		add_truce_attacker_defeat_effect = yes

		scope:attacker = {
			save_temporary_scope_as = loser
		}

		on_lost_aggression_war_discontent_loss = yes

		# EP3: note gold gained from military assistance/join war contracts and their war contribution threshold
		laamp_as_mercenary_payout_tooltip_effect = yes

		#Mandalas gain or lose piety/devotion depending on Decree
		mandala_war_defeat_effects = yes
	}

	transfer_behavior = transfer

	on_primary_attacker_death = invalidate
	on_primary_defender_death = inherit

	attacker_allies_inherit = no
	defender_allies_inherit = no

	war_name = "FP2_BORDER_RAID_WAR_NAME"
	war_name_base = "FP2_BORDER_RAID_WAR_NAME_BASE"
	cb_name = "FP2_BORDER_RAID_CB_NAME"

	interface_priority = 79

	use_de_jure_wargoal_only = yes

	# The war will last 2 years at most
	defender_ticking_warscore_delay = { months = 3 }
	defender_ticking_warscore = 0.15

	attacker_wargoal_percentage = 1
	attacker_ticking_warscore = 1

	max_defender_score_from_occupation = 100
	max_attacker_score_from_occupation = 1

	ticking_war_score_targets_entire_realm = no
}