﻿populist_war = {
	icon = peasant_war
	group = civil_war
	ai_only_against_liege = yes
	target_titles = claim
	allow_hostages = no
	allowed_for_character =	{
		scope:attacker = {
			is_leading_faction_type = populist_faction
		}
	}

	allowed_against_character = {
		scope:attacker = {
			joined_faction = {
				faction_leader = scope:attacker
				any_faction_county_member = {
					holder = {
						OR = {
							is_vassal_or_below_of = scope:defender
							this = scope:defender
						}
					}
				}
			}
		}
	}

	target_de_jure_regions_above = yes
	target_top_liege_if_outside_realm = no

	valid_to_start = {
	}

	should_invalidate = {
		NOT = {
			scope:attacker = {
				has_variable = rebel_leader_peasants
				exists = joined_faction
				joined_faction = var:rebel_leader_peasants
			}
		}
	}

	on_declaration = {
		#on_declared_war = yes

		# Generate extra troops if the rebellion was financed
		generate_troops_from_revolt_county_modifiers_effect = yes

		# Struggle stuffs
		scope:defender = {
			if = {
				limit = {
					any_character_struggle = {
						phase_has_catalyst = catalyst_populist_uprise
						involvement = involved
					}
				}
				every_character_struggle = {
					involvement = involved
					activate_struggle_catalyst = {
						catalyst = catalyst_populist_uprise
						character = this
					}
				}
			}
		}
	}

	on_victory_desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:defender = { government_has_flag = government_is_administrative }
				}
				desc = populist_war_victory_desc_admin
			}
			desc = populist_war_victory_desc
		}
	}

	on_victory = {
		scope:attacker = { show_pow_release_message_effect = yes }
		scope:defender = {

			add_prestige_level = -1

			# Struggle Catalysts
			hidden_effect = {
				if = {
					limit = {
						is_important_or_vip_struggle_character = yes
						any_character_struggle = {
							involvement = involved
							activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
								CATALYST = catalyst_accepted_demand_from_faction_requesting_culture_faith_conversion
								CHAR = scope:attacker
							}
						}
					}
					every_character_struggle = {
						involvement = involved
						limit = {
							activate_struggle_catalyst_secondary_character_involvement_either_trigger = {
								CATALYST = catalyst_accepted_demand_from_faction_requesting_culture_faith_conversion
								CHAR = scope:attacker
							}
						}
						activate_struggle_catalyst = {
							catalyst = catalyst_accepted_demand_from_faction_requesting_culture_faith_conversion
							character = scope:defender
						}
					}
				}
			}
		}

		# LEGITIMACY FROM LOSING FACTION WAR
		faction_war_end_defeat_legitimacy_effect = yes

		random_in_list = {
			list = target_titles
			save_scope_as = target_title
		}

		scope:attacker = {
			remove_variable = rebel_leader_peasants
			joined_faction = {
				every_faction_member = {
					# Everyone involved gets a 5-year truce.
					add_truce_both_ways = {
						character = scope:defender
						days = 1825
						war = root.war
						result = victory
					}
				}
			}
		  remove_character_modifier = oppressed_modifier									 												   
		}

		successful_popular_revolt_outcome_effect = {
			FACTION_LEADER = scope:attacker
			TARGET_TITLE = scope:target_title
			SOURCE_GOVERNMENT = scope:defender
		}
	}

	on_white_peace_desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:defender = { government_has_flag = government_is_administrative }
				}
				desc = populist_war_white_peace_desc_admin
			}
			desc = populist_war_white_peace_desc
		}
	}

	on_white_peace = {
		scope:attacker = {
			show_pow_release_message_effect = yes
			stress_impact = {
 				ambitious = medium_stress_impact_gain
 				arrogant = medium_stress_impact_gain
 			}
		}
		on_white_peace_faction_revolt_war = yes
		hidden_effect = {
			scope:attacker = {
				# Destroy the populist faction
				if = {
					limit = {
						exists = joined_faction
					}
					joined_faction = {
						destroy_faction = yes
					}
				}

				# Destroy or clean-up flags on faction leader
				
				
					remove_variable = rebel_leader_peasants
					add_truce_both_ways = {
						character = scope:defender
						days = 1825
						war = root.war
						result = victory
					}
				
			}
		}
	}
	
	on_invalidated = {
	 on_white_peace_faction_revolt_war = yes
		hidden_effect = {
			scope:attacker = {
				# Destroy the populist faction
				if = {
					limit = {
						exists = joined_faction
					}
					joined_faction = {
						destroy_faction = yes
					}
				}

				# Destroy or clean-up flags on faction leader
				
				
					remove_variable = rebel_leader_peasants
					add_truce_both_ways = {
						character = scope:defender
						days = 1825
						war = root.war
						result = victory
					}
				
			}
		}
	}	


	on_defeat_desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:defender = { government_has_flag = government_is_administrative }
				}
				desc = populist_war_defeat_desc_admin
			}
			desc = populist_war_defeat_desc
		}
	}

	on_defeat = {
		scope:attacker = { show_pow_release_message_effect = yes }
		scope:attacker = {
			joined_faction = {
				every_faction_county_member = {
					custom = peasant_faction_every_county
					add_county_modifier = {
						modifier = county_increased_opinion_modifier
						years = 25
					}
				}
			}
			add_character_flag = peasant_revolt_do_not_kill
			remove_variable = rebel_leader_peasants
		}
		on_lost_faction_revolt_war = yes # Imprison all faction members, including the faction leader.
		scope:attacker = { # Imprison any war participant that isn't already in the faction.
			every_character_war = {
				limit = {
					is_defender = scope:defender
				}
				every_war_attacker = {
					limit = {
						is_imprisoned = no
					}
					hidden_effect = {
						hard_imprison_character_effect = {
							TARGET = this
							IMPRISONER = scope:defender
						}
					}
				}
			}
		}
		hidden_effect = {
			scope:attacker = {
				if = {
					limit = { exists = joined_faction }
					joined_faction = {
						destroy_faction = yes # Destroy the faction if it wasn't already destroyed automatically.
					}
				}
			}
		}
		scope:defender = {
			add_dread = medium_dread_gain
			add_achievement_flag_effect = { FLAG = achievement_know_your_place_flag }

			# LEGITIMACY FROM WINNING FACTION WAR
			faction_war_end_victory_legitimacy_effect = yes
		}
	}

	on_invalidated_desc = msg_invalidate_war_title

	on_primary_attacker_death = invalidate
	on_primary_defender_death = inherit

	transfer_behavior = transfer

	attacker_allies_inherit = no
	defender_allies_inherit = yes

	war_name = "POPULIST_WAR_NAME"

	interface_priority = 80

	use_de_jure_wargoal_only = yes

	attacker_wargoal_percentage = 0.8

	max_attacker_score_from_battles = 100
	max_defender_score_from_battles = 50
	
	max_defender_score_from_occupation = 150
	max_attacker_score_from_occupation = 150

	max_ai_diplo_distance_to_title = 500
}