# Scripted AI desire for peace actions.
# See documentation.info file for more detailed scripting information.

peace_ai_desires = {

    take_our_cores = {
        peace_action_type = { take_states }
        enable = {
            ROOT = { tag = ROOT.FROM } #We are negotiating for ourselves
            ROOT.FROM.FROM.FROM = { is_core_of = ROOT.FROM } #It is ours
        }
        ai_desire = 100
    }

    generic_influence_cutoff = { #Only do force gov and liberate outside influence range
        peace_action_type = { take_states puppet }
        enable = {
            ROOT = { tag = ROOT.FROM } #We are negotiating for ourselves
            OR = {
                has_government = democratic
                has_government = communism
            }
            ROOT.FROM.FROM.FROM = { NOT = { is_core_of = ROOT.FROM } } #It is not ours
            ROOT.FROM.FROM.FROM = {
                NOT = { is_claimed_by = ROOT.FROM }
                pc_is_state_outside_influence_for_winner = ROOT.FROM
                #is_coastal = no
                NOT = {
                    OR = {
                        AND = {
                            is_capital = yes
                            is_coastal = yes
                        }
                        state = 738 #California
                        state = 860 #Cote Nord
                        state = 458 #Tunis
                        state = 446 #Suez
                        state = 126 #London
                        state = 286 #Indochina
                        AND = {
                            ROOT.FROM = { capital_scope = { is_on_continent = europe } }
                            OR = {
                                state = 137 #Crimea
                                state = 797 #Istanbul
                                state = 118 #Gibraltar
                            }
                        }
                    }
                }
            } #It is not claimed by us
        }
        ai_desire = -1000
    }

    generic_influence_cutoff_force_government_fascism_unaligned = { #Don't do ANYTHING outside influence range
        peace_action_type = { take_states puppet force_government liberate }
        enable = {
            # ROOT = { tag = ROOT.FROM } #We are negotiating for ourselves
            NOT = {
                OR = {
                    has_government = democratic
                    has_government = communism
                }
            }
            # ROOT.FROM.FROM.FROM = { NOT = { is_core_of = ROOT } } #It is not ours
            ROOT.FROM.FROM.FROM = {
                NOT = { is_claimed_by = ROOT.FROM }
                ROOT.FROM = { pc_is_winner = yes }
                pc_is_state_outside_influence_for_winner = ROOT.FROM
                # is_coastal = no
                NOT = {
                    OR = {
                        AND = {
                            is_capital = yes
                            is_coastal = yes
                        }
                        state = 738 #California
                        state = 860 #Cote Nord
                        state = 458 #Tunis
                        state = 446 #Suez
                        state = 126 #London
                        state = 286 #Indochina
                        AND = {
                            ROOT.FROM = { capital_scope = { is_on_continent = europe } }
                            OR = {
                                state = 137 #Crimea
                                state = 797 #Istanbul
                                state = 118 #Gibraltar
                            }
                        }
                    }
                }
            } #It is not claimed by us
			#Special Japan China Handling; this has logic elsewhere which we reluctantly have to special case.
        }
        ai_desire = -1000
    }
	
    force_gov_puppets = {
        peace_action_type = force_government
        enable = {
            ROOT = {
                has_government = democratic
                ROOT.FROM.FROM = {
                    NOT = { has_government = democratic }
                    is_subject = yes
                }
            }
        }
        ai_desire = 100
    }

    doesnt_control_no_claim = {
        peace_action_type = { take_states }
        enable = {
            ROOT = { tag = ROOT.FROM } #We are negotiating for ourselves
            ROOT.FROM.FROM.FROM = {
                NOT = { is_core_of = ROOT.FROM }
                NOT = { is_claimed_by = ROOT.FROM }
                NOT = { is_controlled_by = ROOT.FROM }
            }
        }
        ai_desire = -20
    }

    ### The above trigger looks extremely harsh. In reality, this means the AI is more inclined to step through nearby land without bunny hopping and potentially leaving gaps.

    fascist_majors_on_a_mission = {
        peace_action_type = take_states
        enable = {
            ROOT = { 
                is_major = yes                #We are big
                has_government = fascism    #We are the baddies
                tag = ROOT.FROM                #We are acting for ourselves
            }
        }

        ai_desire = 50
    }

    fascist_puppet_desire = {
        peace_action_type = puppet
        enable = {
            ROOT = {
                is_major = yes                #We are big
                has_government = fascism    #We are the baddies
            }
        }

        ai_desire = -50
    }

    fascist_liberate_desire = {
        peace_action_type = liberate
        enable = {
            ROOT = {
                is_major = yes                #We are big
                has_government = fascism    #We are the baddies
                tag = ROOT.FROM                #We are acting for ourselves
            }
            ROOT.FROM.FROM = { NOT = { has_government = fascism } }
        }

        ai_desire = -75
    }

    # Breakaway countries in the Soviet Civil war don't want to liberate stuff
    breakaway_country = {
        peace_action_type = { liberate puppet force_government }
        enable = {
           ROOT = { has_country_flag = SOV_breakaway_country_flag }
        }
        ai_desire = -200  # just don't, please
    }


    # Force gov on communism preferably
    democracy_force_government_on_communism = {
        peace_action_type = force_government
        enable = {
            ROOT = { has_government = democratic }
            ROOT.FROM.FROM = { has_government = communism }
            ROOT.FROM.FROM.FROM = { NOT = { is_claimed_by = ROOT.FROM.FROM } }
        }
        ai_desire = 50
    }


    democracy_owner_does_not_have_core = {
        peace_action_type = { force_government puppet take_states }
        enable = {
            ROOT = { has_government = democratic }
            ROOT.FROM.FROM.FROM = { NOT = { is_core_of = ROOT.FROM } }
        }
        ai_desire = -50
    }


    other_owner_does_not_have_core = {
        peace_action_type = { force_government puppet take_states }
        enable = {
            ROOT = {
                NOT = { has_government = democratic }
                NOT = { has_government = fascism }
                NOT = {
                    tag = ROOT.FROM
                }
            }
            ROOT.FROM.FROM.FROM = {
                NOT = { is_core_of = ROOT.FROM }
            }
        }
        ai_desire = -20
    }


    dont_grab_exclaves = {
        peace_action_type = take_states
        enable = {
            ROOT.FROM.FROM.FROM = {
                NOT = {
                    OR = {
                        is_claimed_by = ROOT.FROM
                        any_neighbor_state = {
                            OR = {
                                is_owned_by = ROOT.FROM
                                pc_is_state_claimed_by = ROOT.FROM
                            }
                        }
                    }
                }
            }
        }
        ai_desire = -40
    }


    do_grab_stuff_near_us = {
        peace_action_type = take_states
        enable = {
            ROOT.FROM.FROM.FROM = {
                OR = {
                    any_neighbor_state = {
                        OR = {
                            is_owned_by = ROOT.FROM
                        }
                    }
                    is_claimed_by = ROOT.FROM
                }
            }
            ROOT = {
                tag = ROOT.FROM
            }
        }
        ai_desire = 10
    }


    leave_force_gov_at_will_to_allies = { #It is a bit hacky, but we need a preference here or we end up worse than where we started
        peace_action_type = force_government
        enable = {
            ROOT = { NOT = { has_government = democratic } }
            ROOT.FROM.FROM.FROM = {
                NOT = {
                    any_neighbor_state = {
                        OR = {
                            pc_is_state_claimed_by = ROOT.FROM
                            pc_is_state_claimed_by = ROOT
                        }
                    }
                }
            }
        }
        ai_desire = -80
    }


    generic_occupies_state = {
        peace_action_type = { take_states puppet liberate force_government }

        enable = {
            FROM.FROM.FROM = { NOT = { is_controlled_by = ROOT } }
        }
        ai_desire = -10
    }

    generic_occupies_player_state = {
        peace_action_type = { take_states puppet liberate force_government }

        enable = {
            FROM.FROM.FROM = { 
                NOT = { is_controlled_by = ROOT }
                controller = {
                    pc_is_loser = no
                    is_ai = no
                }
            }
        }
        ai_desire = -20
    }

    democrats_dont_liberate_the_wrong_ideology = {
        peace_action_type = liberate
        enable = {
            ROOT = { has_government = democratic }
            ROOT.FROM = {
                OR = {
                    has_government = fascism
                    has_government = communism
                }
            }
        }
        ai_desire = -200
    }


    dont_puppet_and_force_government = {
        peace_action_type = { puppet }

        enable = {
            if = {
                limit = { has_government = democratic }
                ROOT.FROM.FROM = { pc_is_forced_government_to = democratic }
            }
            else_if = {
                limit = { has_government = fascism }
                ROOT.FROM.FROM = { pc_is_forced_government_to = fascism }
            }
            else_if = {
                limit = { has_government = communism }
                ROOT.FROM.FROM = { pc_is_forced_government_to = communism }
            }
            else_if = {
                limit = { has_government = neutrality }
                ROOT.FROM.FROM = { pc_is_forced_government_to = neutrality }
            }
            else = {
                always = no
            }
        }
        ai_desire = -200
    }


    dont_force_government_and_puppet = {
        peace_action_type = { force_government }

        enable = {
            FROM.FROM = { pc_is_puppeted_by = ROOT }
        }
        ai_desire = -200
    }


    nonaligned_dont_liberate_the_wrong_ideology = {
        peace_action_type = liberate
        enable = {
            ROOT = { has_government = neutrality }
            ROOT.FROM = { NOT = { has_government = neutrality } }
        }
        ai_desire = -200
    }


    communism_dont_liberate_the_wrong_ideology = {
        peace_action_type = liberate
        enable = {
            ROOT = { has_government = communism }
            ROOT.FROM = { NOT = { has_government = communism } }
        }
        ai_desire = -200
    }


    fascism_dont_liberate_the_wrong_ideology = {
        peace_action_type = liberate
        enable = {
            ROOT = { has_government = fascism }
            ROOT.FROM = {
                NOT = {
                    OR = {
                        has_government = fascism
                        has_government = neutrality
                    }
                }
            }
        }
        ai_desire = -200
    }


    dont_force_government_or_puppet_on_non_core = {
        peace_action_type = { puppet force_government }
        enable = {
            ROOT.FROM.FROM.FROM = {
                NOT = { is_core_of = ROOT.FROM }
            }
        }

        ai_desire = -200
    }


    liberate_on_non_core = {
        peace_action_type = liberate
        enable = {
            ROOT = { has_government = democratic }
            ROOT.FROM.FROM.FROM = {
                NOT = { is_core_of = ROOT.FROM.FROM }
            }
        }

        ai_desire = 20
    }

    liberate_if_already_exists = {
        peace_action_type = liberate
        enable = {
            ROOT = { has_government = democratic }
            ROOT.FROM = {
                pc_is_liberated = yes
            }
            ROOT.FROM.FROM.FROM = {
                is_core_of = ROOT.FROM
            }
        }

        ai_desire = 100
    }


    minors_and_subjects_dont_liberate = {
        peace_action_type = { liberate take_states force_government puppet }
        enable = {
            ROOT = {
                NOT = { tag = ROOT.FROM }
            }
            ROOT = {
                OR = {
                    is_major = no
                    is_subject = yes
                }
            }
            ROOT.FROM.FROM.FROM = {
                NOT = {
                    OR = {
                        is_core_of = ROOT.FROM
                        is_claimed_by = ROOT.FROM
                    }
                }
            }
        }
        ai_desire = -90
    }


    non_aligned_should_stick_to_claims = {
        peace_action_type = take_states
        enable = {
            ROOT = { 
                has_government = neutrality
                is_major = no
            }
            ROOT.FROM.FROM.FROM = {
                NOT = { is_claimed_by = ROOT.FROM }
                NOT = { is_core_of = ROOT.FROM }
            }
        }
        ai_desire = -20
    }

    it_is_a_non_coastal_adjacency = {
        peace_action_type = take_states
        enable = {
            ROOT.FROM = { tag = ROOT }
            ROOT.FROM.FROM.FROM = {
                is_coastal = no
                any_neighbor_state = {
                    is_owned_by = ROOT
                }
            }
        }
        ai_desire = 10
    }

    wrong_ideology_faction_members_dont_force_gov = {
        peace_action_type = force_government
        enable = {
            ROOT = {
                NOT = { has_government = democratic }
                any_allied_country = {
                    is_faction_leader = yes
                    has_government = democratic
                }
            }
        }
        ai_desire = -200
    }

    avoid_forcing_gov_if_ally_has_core = {
        peace_action_type = force_government
        enable = {
            ROOT.FROM.FROM.FROM = {
                any_country_with_core = {
                    exists = yes
                    pc_is_on_same_side_as = ROOT
                }
            }
        }
        ai_desire = -200
    }

    do_force_government_if_forced_to_our_ideology = {
        peace_action_type = { force_government }

        enable = {
            if = {
                limit = { has_government = democratic }
                ROOT.FROM.FROM = { pc_is_forced_government_to = democratic }
            }
            else_if = {
                limit = { has_government = fascism }
                ROOT.FROM.FROM = { pc_is_forced_government_to = fascism }
            }
            else_if = {
                limit = { has_government = communism }
                ROOT.FROM.FROM = { pc_is_forced_government_to = communism }
            }
            else_if = {
                limit = { has_government = neutrality }
                ROOT.FROM.FROM = { pc_is_forced_government_to = neutrality }
            }
            else = {
                always = no
            }
        }
        ai_desire = 20
    }


    dont_resurrect_hitler = {
        peace_action_type = liberate
        enable = {
            ROOT.FROM = {
                original_tag = GER
                has_government = fascism
            }
        }
        ai_desire = -100
    }


    dont_take_states_for_wrong_ideology_allies = {
        peace_action_type = take_states
        enable = {
            ROOT = {
                NOT = {
                    tag = ROOT.FROM
                }
            }
            ROOT.FROM = {
                NOT = { has_same_ideology = yes }
            }
        }
        ai_desire = -20
    }

    prefer_take_states_for_puppets_with_cores = {
        peace_action_type = take_states
        enable = {
            ROOT.FROM = {
                is_subject_of = ROOT
                has_civil_war = yes
            }
            ROOT.FROM.FROM.FROM = {
                is_core_of = ROOT.FROM
            }
        }
        ai_desire = 100
    }


    dont_force_government_for_puppets_with_cores = {
        peace_action_type = { force_government puppet }
        enable = {
            ROOT.FROM.FROM.FROM = {
                any_country_with_core = {
                    is_subject_of = ROOT
                    has_civil_war = yes
                }
            }
        }
        ai_desire = -100
    }


    # push countries to actually retake territory that has risen up against them
    retake_territory_from_independence_wars = {
        peace_action_type = { take_states }
        enable = {
            FROM.FROM = {
                has_war_with_wargoal_against = {
                  target = ROOT
                  type = independence_wargoal
                }

            }
        }
        ai_desire = 75
    }


    dont_change_gov_after_independence_wars = {
        peace_action_type = { force_government liberate puppet }
        enable = {
            FROM.FROM = {
                has_war_with_wargoal_against = {
                  target = ROOT
                  type = independence_wargoal
                }

            }
        }
        ai_desire = -75
    }

    return_puppet_cores = { #This simply has to be the highest priority.
        peace_action_type = take_states
        enable = {
            ROOT.FROM = {
                OR = {
                    is_subject_of = ROOT
                    AND = {
                        pc_is_puppeted_by = ROOT
                        NOT = { original_tag = GER } #This messes with yalta too much.
                    }
                }
            }
            ROOT.FROM.FROM.FROM = {
                is_core_of = ROOT.FROM
                NOT = { is_core_of = ROOT }
            }
        }
        ai_desire = 70 #Acceptable values
    }

    civil_war_participants_dont_accept_each_other = {
        peace_action_type = { force_government puppet liberate }
        enable = {
            ROOT = {
                has_civil_war = yes
                original_tag = FROM # has same original tag as Recipient
            }
        }
        ai_desire = -200
    }

    #############
    # Puppets
    #############

    puppets_dont_interfere_take_states = { #Puppets will focus on helping others most likely, or biidding on their own claims/cores
        peace_action_type = take_states
        enable = {
            is_subject = yes
            NOT = {
                OR = {
                    ROOT.FROM.FROM.FROM = { is_claimed_by = ROOT.FROM }
                    ROOT.FROM.FROM.FROM = { is_core_of = ROOT.FROM }
                }
            }
        }
        ai_desire = -200
    }

    puppets_dont_interfere_others = { #Puppets will not try and puppet/liberate/force-gov
        peace_action_type = { force_government puppet liberate }
        enable = {
            is_subject = yes
            OVERLORD = {
                NOT = { tag = ROOT.FROM }
            }
        }
        ai_desire = -200
    }

    #############
    # Unaligned
    #############

    nonaligned_mostly_take_states = { #We are empire
        peace_action_type = { puppet liberate force_government }
        enable = {
            ROOT = { has_government = neutrality }
        }
        ai_desire = -120
    }

    #############
    # Misc
    #############

    puppet_if_another_puppet_has_core = {
        peace_action_type = puppet
        enable = {
            ROOT.FROM.FROM.FROM = {
                NOT = {
                    any_country_with_core = {
                        is_subject_of = ROOT #Not a pc subject
                    }
                }
                any_country_with_core = {
                    pc_is_puppeted_by = ROOT #Is a puppet created in PC
                }
            }
        }
        ai_desire = 30
    }

    dont_liberate_if_we_could_puppet_or_owner_is_our_ideology = {
        peace_action_type = liberate
        enable = {
            ROOT.FROM.FROM.FROM = {
                any_country_with_core = {
                    OR = {
                        pc_is_puppeted_by = ROOT
                        pc_is_forced_government_by = ROOT
                        AND = {
                            country_exists = THIS #Ie - has provinces already and isn't a new creation
                            has_same_ideology = yes
                        }
                        is_in_faction_with = ROOT
                    }
                }
            }
        }
        ai_desire = -30
    }

    dont_do_other_things_if_we_should_liberate = {
        peace_action_type = { take_states puppet force_government }
        enable = {
            ROOT.FROM.FROM.FROM = {
                any_country_with_core = {
                    pc_is_liberated = yes
                }
            }
        }
        ai_desire = -200 #This value has to be highly weighted to offset some other things
    }

    minors_dont_fragment_as_much = {
        peace_action_type = { puppet liberate }
        enable = {
            is_major = no
            ROOT.FROM.FROM = { pc_is_puppeted = yes }
            NOT = { ROOT.FROM.FROM = { pc_is_puppeted_by = ROOT } }
        }
        ai_desire = -100
    }

    minors_dont_puppet_or_liberate_at_all_because_you_cant_finish_the_job = {
        peace_action_type = { puppet liberate }
        enable = {
            is_major = no
            ROOT.FROM = { pc_is_liberated = no }
        }
        ai_desire = -100
    }

    majors_dont_fragment_as_much_less = {
        peace_action_type = { puppet liberate }
        enable = {
            is_major = yes
            ROOT.FROM.FROM = {
                pc_is_puppeted = yes
                NOT = { ROOT.FROM.FROM = { pc_is_puppeted_by = ROOT } }
                NOT = { original_tag = GER }
            }
        }
        ai_desire = -50
    }

    minors_follow_your_leader_when_forcing_gov = {
        peace_action_type = force_government
        enable = {
            is_major = no
            ROOT.FROM.FROM = { pc_is_forced_government = no }
        }
        ai_desire = -100
    }

    continuous_force_gov_desire = {
        peace_action_type = { force_government }
        enable = {
            FROM.FROM = { pc_is_forced_government_by = ROOT }
        }
        ai_desire = 30
    }


    continuous_puppet = {
        peace_action_type = { puppet }
        enable = {
            ROOT.FROM = { pc_is_puppeted_by = ROOT }
        }
        ai_desire = 100
    }

    leave_player_controlled_land_until_later_in_the_process = {
        peace_action_type = { take_states puppet force_government liberate }
        enable = {
            ROOT.FROM.FROM.FROM = {
                controller = {
                    is_ai = no
                }
            }
        }
        ai_desire = -10
    }

    minors_avoid_interfering_with_random_claims = {
        peace_action_type = { take_states }
        enable = {
            ROOT = { is_ai = yes }
            ROOT.FROM = {
                tag = ROOT
                is_major = no
            }
            ROOT.FROM.FROM.FROM = {
                NOT = {
                    OR = {
                        is_claimed_by = ROOT
                        is_core_of = ROOT
                    }
                }
            }
        }
        ai_desire = -80
    }

    dont_even_try_to_puppet_large_states = { ###Too messy
        peace_action_type = { puppet }

        enable = {
            ROOT.FROM.FROM = { check_variable = { num_owned_states > 30 } }
        }
        ai_desire = -200
    }

    dont_liberate_if_puppeted = { ###Too messy
        peace_action_type = { liberate }

        enable = {
            ROOT.FROM = { pc_is_puppeted = yes }
        }
        ai_desire = -200
    }

    dont_take_state_if_already_puppeted_by_us = { ###Too messy
        peace_action_type = { take_state }

        enable = {
            ROOT.FROM = { pc_is_puppeted_by = ROOT }
        }
        ai_desire = -200
    }

    puppet_their_puppets = {
        peace_action_type = { puppet }

        enable = {
            is_faction_leader = yes
            ROOT.FROM.FROM = { 
                is_subject = yes
                OR = {
                    pc_is_puppeted = no
                    pc_is_puppeted_by = ROOT
                }
                overlord = {
                    NOT = { tag = GER }
                }
            }
            ROOT.FROM.FROM.FROM = {
                NOT = { is_claimed_by = ROOT }
                NOT = { is_core_of = ROOT }
            }
        }
        ai_desire = 70
    }

    dont_force_their_puppets = {
        peace_action_type = { force_government }

        enable = {
            ROOT.FROM.FROM = { 
                is_subject = yes
            }
            ROOT.FROM.FROM.FROM = {
                NOT = { is_claimed_by = ROOT }
                NOT = { is_core_of = ROOT }
            }
        }
        ai_desire = -90
    }

}
