﻿#############################################
# DEMD Population System
# by Vertimnus
# This file was compiled by a machine from jomini metascript source code.
# It should never be manually edited.
#############################################

tradeSubRoutine = {
    every_in_global_list = {
        variable = trade_nodes
        set_variable = { name = produced_trade_value value = 1 }
        set_variable = { name = trade_power value = 1 }
        save_scope_as = node
        every_in_list = {
            variable = node_counties
            scope:node = {
                change_variable = { name = produced_trade_value add = prev.var:produced_trade_value }
                change_variable = { name = trade_power add = prev.var:trade_power }
            }
        }       
		set_variable = { name = collected_trade_value value = var:produced_trade_value }
		if = {
			limit = { has_variable = off_map_collected_trade_value }
			change_variable = { name = collected_trade_value add = var:off_map_collected_trade_value }
		}
    }
    every_in_global_list = {
        variable = trade_nodes
        set_variable = { name = total_outlet_trade_power value = 0 }
        every_in_list = {
            variable = outlet_nodes
            prev = { change_variable = { name = total_outlet_trade_power add = prev.var:trade_power } }
        }
        set_variable = {
            name = outlet_plus_local_trade_power
            value = {
                value = var:trade_power
				multiply = var:num_outlet_nodes
                add = var:total_outlet_trade_power
            }
        }
		set_variable = { name = temp value = var:collected_trade_value }
        every_in_list = {
            variable = outlet_nodes
            set_variable = {
                name = temp
                value = {
                    value = prev.var:temp
                    divide = prev.var:outlet_plus_local_trade_power
                    multiply = var:trade_power 
                }
            }  
            change_variable = { name = collected_trade_value add = var:temp }
            prev = { change_variable = { name = collected_trade_value subtract = prev.var:temp } }
        }
    }
    every_in_global_list = {
        variable = trade_nodes
        every_in_list = {
            variable = node_counties
            set_variable = {
                name = collected_trade_value
                value = {
                    value = var:trade_power
                    divide = prev.var:trade_power
                    multiply = prev.var:collected_trade_value
                }
            }
        }
    }
}

world_migration_start = {
    every_county = {
        set_variable = { name = migration_growth value = 0 }
        set_variable = {
            name = maxPairwise
            value = {
                value = var:population
                multiply = var:max_migration_percent
            }
        }
		set_variable = { name = migration_pull value = migration_pull_target }
    }
}

ruler_pulse = {
	set_variable = { name = temp value = ruler_knight_capacity }
	remove_all_character_modifier_instances = demd_char_knight_capacity_modifier_big
	remove_all_character_modifier_instances = demd_char_knight_capacity_modifier_medium
	remove_all_character_modifier_instances = demd_char_knight_capacity_modifier_small
	while = {
		limit = { var:temp > 25 }
		add_character_modifier = demd_char_knight_capacity_modifier_big
		change_variable = { name = temp subtract = 25 }
	}
	while = {
		limit = { var:temp > 5 }
		add_character_modifier = demd_char_knight_capacity_modifier_medium
		change_variable = { name = temp subtract = 5 }
	}
	while = {
		limit = { var:temp > 1 }
		add_character_modifier = demd_char_knight_capacity_modifier_small
		change_variable = { name = temp subtract = 1 }
	}
	set_variable = {
		name = ruler_manpower
		value = ruler_manpower
	}
	set_variable = {
		name = regiment_capacity
		value = total_regiment_capacity
	}
	set_variable = { name = temp value = var:regiment_capacity }
	remove_all_character_modifier_instances = demd_char_regiment_capacity_modifier_big
	remove_all_character_modifier_instances = demd_char_regiment_capacity_modifier_medium
	remove_all_character_modifier_instances = demd_char_regiment_capacity_modifier_small
	while = {
		limit = { var:temp > 25 }
		add_character_modifier = demd_char_regiment_capacity_modifier_big
		change_variable = { name = temp subtract = 25 }
	}
	while = {
		limit = { var:temp > 5 }
		add_character_modifier = demd_char_regiment_capacity_modifier_medium
		change_variable = { name = temp subtract = 5 }
	}
	while = {
		limit = { var:temp > 1 }
		add_character_modifier = demd_char_regiment_capacity_modifier_small
		change_variable = { name = temp subtract = 1 }
	}
	save_scope_as = usurper
	if = {
		limit = { 
			domain_limit_available > 0 
			is_ai = yes 
			has_realm_law_flag = title_revocation_allowed
		}
		every_held_title = {
			limit = { tier = tier_county }
			every_county_province = {
				limit = { 
					has_holding = yes
					province_owner = { has_same_government = scope:usurper }
					NOT = { province_owner = scope:usurper }					
					barony = { is_leased_out = no }
				}
				scope:usurper = { add_to_variable_list = { name = temp target = prev } }
			}
		}
		ordered_in_list = {
			variable = temp
			order_by = monthly_income
			position = 0		
			scope:usurper = { get_title = prev.barony }
		}
		clear_variable_list = temp
	}	
}

world_migration_end = {
    every_county = {
		set_variable = {
			name = migration_growth_percent
			value = {
				value = var:migration_growth
				divide = var:population
			}
		}
        change_variable = { 
			name = population 
			add = var:migration_growth 
		}
		clamp_variable = { name = population min = 0.1 max = 1000000 }
    }
}

fertilitySubRoutine = {
    every_in_global_list = {
        variable = trade_nodes
    	change_variable = { name = node_weather_fertility_mult add = node_weather_fertility_mult_delta }
        random_list = { 
            100 = {
            }
            40 = {
                change_variable = { name = node_weather_fertility_mult add = 0.01 }
            }
            40 = {
                change_variable = { name = node_weather_fertility_mult add = -0.01 }
            }
            10 = {
                change_variable = { name = node_weather_fertility_mult add = 0.02 }
            }
            10 = {
                change_variable = { name = node_weather_fertility_mult add = -0.02 }
            }
    		1 = {
                change_variable = { name = node_weather_fertility_mult add = 0.04 }
            }
    		1 = {
                change_variable = { name = node_weather_fertility_mult add = -0.04 }
            }
        }
	}	
}

