﻿NPolitics = {
	MIN_IG_APPROVAL = -30				# Minimum IG approval
	MAX_IG_APPROVAL = 30				# Maximum IG approval
	MIN_IG_APPROVAL_FROM_LAWS = -10	#was -5	# IG cannot have approval lower than this as a total from laws 'on the book'
	MAX_IG_APPROVAL_FROM_LAWS = 5	#was 5	# IG cannot have approval higher than this as a total from laws 'on the book'
	IG_APPROVAL_FROM_LAW = 2 	#was 1	# IG approval/disapproval for laws that are for/against their ideologies
	IG_APPROVAL_FROM_LAW_STRONG_STANCE = 5 #was 2		# IG approval/disapproval for laws that are strongly for/against their ideologies
	IG_LAW_DESIRE_RADICAL_CHANGE_THRESHOLD = 2 #was 2 # A difference in positions this or higher is considered radical
	IG_LAW_DESIRE_EXTREME_CHANGE_THRESHOLD = 3 #was 3 # A difference in positions this or higher is considered extreme
	IG_APPROVAL_FROM_RADICAL_LAW_CHANGE = 10 #was 10 		# IG approval/disapproval for changing to another law, if the change is a major one
	IG_APPROVAL_FROM_EXTREME_LAW_CHANGE = 20 #was 20 		# IG approval/disapproval for changing to another law, if the change is extreme
	IG_IN_GOVERNMENT_APPROVAL = 2 #was 0		# Added if IG is in government
	IG_IN_OPPOSITION_APPROVAL = -1 #was 0		# Added if IG is in opposition (and not powerful)
	IG_POWERFUL_IN_OPPOSITION_APPROVAL = -2 #was -1 # Added if powerful IG in opposition
 
 	APPROVAL_THRESHOLD_ANGRY = -15	#was -10	# At this or below approval, IG is considered angry
	APPROVAL_THRESHOLD_UNHAPPY = -7 #was -5		# At this or below approval, IG is considered unhappy
	APPROVAL_THRESHOLD_HAPPY = 10 #was 5		# At this or above approval, IG is considered happy
	APPROVAL_THRESHOLD_LOYAL = 20 #was 10		# At this or above approval, IG is considered loyal

	CHANGED_LAW_APPROVAL_MONTHS = 72 #was 60 # How many months does the approval/disapproval for a law change linger after said law chain

	IG_APPROVAL_FROM_LOYALISTS = 15	#was 15	# If 100% of the political strength of the IG is loyalist, change approval by this amount
	IG_APPROVAL_FROM_RADICALS = -20	#was -15	# If 100% of the political strength of the IG is radical, change approval by this amount

	IG_SUPPRESSION_COST = 100						# The amount of AUT it costs to Suppress an IG
	IG_BOLSTER_COST = 100							# The amount of AUT it costs to Bolster an IG

	POWERFUL_IG_THRESHOLD = 0.18 #was 0.20		# Interest groups with more Clout than this are considered to be influential
	POWERFUL_IG_CUTOFF = 0.15 #was 0.18		# Powerful interest groups with less Clout than this will stop being influential
	POWERFUL_IG_TRAIT_BONUS = 0.5 #was 1		# The effects of all trait modifiers from influential IGs are increased by this, 1 = +100%
	MARGINAL_IG_THRESHOLD = 0.05		# Interest Groups with Clout above this value are considered relevant while those below are marginal (if not also In Government)
	MARGINAL_IG_CUTOFF = 0.02 #was 0.04			# Interest Groups who are already relevant will only become marginal again if they drop below this value.

	INITIAL_MOMENTUM_VARIANCE = 0.25 #was 0.5						# How much Momentum should vary at the start of the election period

	INCOHERENCE_FACTOR = 3 #was 5								# The amount to multiply the approval value with to get an incoherence score for legitimacy
	INCOHERENCE_FROM_SECONDARY_PARTY_MEMBERS = 0.25 #was 0.5		# The amount to multiply the approval value with if the interest group is in a party but is not the party whip
	LEGITIMACY_PENALTY_FOR_EACH_EXCESS_ENTITY = 25 #was 20		# How much Legitimacy is lost for each group in government above the allowance determined by country_legitimacy_govt_size_add

	REFORM_GOVERNMENT_RADICALIZATION_RATE = 0.1 #was 0.25 		# How many percent of a IG's supporters that will get radicalized when removed from government.

	MIN_POP_NUMBER_JOIN_OR_LEAVE_MOVEMENT = 10		# Min for maximum amount of pops/support that will change political movements in a single update (overrides below max fraction)
	MAX_POP_FRACTION_JOIN_OR_LEAVE_MOVEMENT = 0.1	# Maximum amount of a pop that can change political movements in a single update (for each movement)
	MOVEMENT_POP_SUPPORT_ATTRACTION_CAP = 0.01 # The fraction of individuals in a pop that will support a movement is capped at ( movement attraction * this ) so that movements with low attraction but no competition won't attract every single pop in the country
	
	# For a movement with a cultural/religious identity to spawn, the culture/religion must meet at least one of the two thresholds below:
	MOVEMENT_IDENTITY_MIN_INDIVIDUALS_ABSOLUTE_THRESHOLD = 200000 # Absolute number of individuals
	MOVEMENT_IDENTITY_MIN_INDIVIDUALS_RELATIVE_THRESHOLD = 0.2 # Number of individuals relative to country population
	
	MOVEMENT_DEFAULT_MIN_SUPPORT_TO_CREATE = 0.025	# Default support (as calculated value) required to create a political movement, can be overriden in database 
	MOVEMENT_DEFAULT_MIN_SUPPORT_TO_MAINTAIN = 0.01	# Default support (as actual value) required to maintain a political movement, can be overriden in database
	MOVEMENT_FAILED_MOVEMENT_DURATION_DAYS = 365 # For how long do we remember that a political movement failed to be created and do not try again for that exact same movement
	MOVEMENT_MIN_SUPPORT_GRACE_MONTHS = 12 # A political movement cannot disband due to low support for this many months after its creation
	MOVEMENT_AGITATOR_STICKYNESS = 2.0 # Agitators apply this multiplier to the score for a movement they are already backing when considering whether to switch movements

	# The three defines below should add up to 1.0
	MOVEMENT_SUPPORT_POPULAR_SUPPORT_FRACTION = 0.34 # This fraction a political movement's total support comes from its popular support
	MOVEMENT_SUPPORT_MILITARY_SUPPORT_FRACTION = 0.33 # This fraction a political movement's total support comes from its military support
	MOVEMENT_SUPPORT_WEALTH_SUPPORT_FRACTION = 0.33 # This fraction a political movement's total support comes from its wealth support
	
	MOVEMENT_WEEKLY_RADICALISM_CHANGE = 0.01 # How much does a movement's radicalism change towards its calculated target each week
	MOVEMENT_MONTHLY_RADICALS_THRESHOLD = 0.5 # At this level of radicalism, movement supporters start being radicalized each month at an amount scaled by the radicalism value
	MOVEMENT_MONTHLY_RADICALS_SCALING_MIN = 0.005 # The minimum % of supporters radicalized each month when above the radicalization threshold
	MOVEMENT_MONTHLY_RADICALS_SCALING_MAX = 0.025 # The maximum % of supporters radicalized each month when above the radicalization threshold 
	MOVEMENT_LOYALISTS_ON_APPROVED_ENACTMENT = 0.25 # The % of supporters who become more loyal when a law the movement approves of is enacted
	
	# Movements with less radicalism than this do not impact law enactment chances
	# Additionally, movement radicalism won't drop lower than than this when enactment of a law they care about is underway, so lowered radicalism from enactment doesn't end up counterproductive
	MOVEMENT_MIN_RADICALISM_FOR_LAW_ENACTMENT_IMPACT = 0.25 

	MOVEMENT_IMMEDIATE_RADICALISM_FROM_ENACTMENT = 0.5 # This multiplier of target radicalism impact from law enactment is applied immediately on start of enactment
	MOVEMENT_IMMEDIATE_RADICALISM_FROM_CANCELLATION = -0.5 # This multiplierof target radicalism impact from law enactment is applied immediately on cancellation of enactment
	MOVEMENT_RADICALISM_FROM_ACTIVE_LAW_STANCE = -0.05 # Multiplied by a movement's stance on each active law (positive stance = negative radicalism)
	MOVEMENT_RADICALISM_FROM_ENACTED_LAW_STANCE = -0.25 # Multiplied by a movement's comparative stance on currently or recently enacted law (positive stance = negative radicalism)
	MOVEMENT_RADICALISM_FROM_RADICAL_SUPPORTERS = 1.0 # Scales against fraction of radicals among movement supporters
	MOVEMENT_RADICALISM_FROM_LOYALIST_SUPPORTERS = -0.75 # Scales against fraction of loyalists among movement supporters
	MOVEMENT_RADICALISM_FROM_SUPPRESSION = 0.0 # Suppressed movements become this much more radical 
	MOVEMENT_RADICALISM_FROM_BOLSTERING = 0.0 # Bolstered movements become this much less radical 

	IG_MAX_INFLUENCING_MOVEMENTS = 3 # An interest group cannot have more than this number of influencing movements
	IG_SUPPORTING_MOVEMENT_MIN_SUPPORTING_CLOUT = 0.05 # A movement must be supported by at least this % of the clout in an IG to be shown as a supporting IG for the movement
	IG_INFLUENCING_MOVEMENT_MIN_SUPPORTING_CLOUT = 0.10 # A movement must be supported by at least this % of the clout in an IG to be a influencing movement for the IG
	IG_INFLUENCING_MOVEMENT_STICKYNESS = 1.25 # Multiply supporting clout of the currently influencing movement in an IG by this for the purposes of determining whether it stays influencing
}

NCharacters = {
	AGITATOR_EXPECTED_SPAWN_INTERVAL_0_LITERACY = 15 # At 0% literacy, a new agitator is expected to spawn in a given country once every this many years. (supports decimal values)
	AGITATOR_EXPECTED_SPAWN_INTERVAL_100_LITERACY = 2 # At 100% literacy, a new agitator is expected to spawn in a given country once every this many years. (supports decimal values)
}

NAI = {
	REFORM_GOVERNMENT_MONTHS_BETWEEN_CHANGES = 12 #was 30 		# If the AI doesn't have elections, it won't consider changing government composition more often than this to avoid lots of radicals

	# Below data is used to determine how the AI invests into institution
	INSTITUTION_INVESTMENT_RANDOM_FACTOR = 1.0 #was 1.0 # The higher this is, the more random AI institution selection will be 
	INSTITUTION_CURRENT_INVESTMENT_DIVISOR = 0 #was 0.25 # Score for institution is divided by 1 + ( current levels after the first * this )
	INSTITUTION_SPENDING_INCREASE_SPENDING_RATIO = 1.5 #was 1.0 # If current + additional institution spending is equal or less than max spending * this, try to improve some institutions
	INSTITUTION_SPENDING_DECREASE_SPENDING_RATIO = 3.0 #was 2.0 # If current institution spending is at least max spending * this, try to degrade some institutions 

	#MIN_GOVERNMENT_LEGITIMACY = 50 #was 50				# If legitimacy is below this, consider adding IGs we don't really like to the government
	#DESIRED_GOVERNMENT_LEGITIMACY = 75	#was 75		# If legitimacy is below this, add more IGs we like to the government

	# Below data is used to calculate how much weight the AI places on enacting/revoking a law
	CHANGE_LAW_RANDOM_FACTOR = 1.0 #was 1.0 # The higher this is, the more random AI law enactment will be
	CHANGE_LAW_PRO_IG_IDEOLOGIES_FACTOR = 100 #was 100 # For enacting laws, per ideology match for IGs we approve of
	CHANGE_LAW_ANTI_IG_IDEOLOGIES_FACTOR = -25 # For enacting laws, per ideology match for IGs we disapprove of
}