﻿# Pin all living characters
DI_pin_all_living = {
    scope = character

    effect = {
        every_living_character = {
            limit = { NOT = { has_character_flag = pinned_for_edit } }

            hidden_effect = {
                add_character_flag = pinned_for_edit
                root = {
                    add_to_variable_list = { name = pinned_characters target = prev }
                }
            }
        }
    }
}

DI_pin_pinned = {
    scope = character

    effect = {
        every_pinned_character = {
            limit = { NOT = { has_character_flag = pinned_for_edit } }

            hidden_effect = {
                add_character_flag = pinned_for_edit
                root = {
                    add_to_variable_list = { name = pinned_characters target = prev }
                }
            }
        }
    }
}

DI_add_prestige_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            add_prestige = scope:DI_story.var:DI_increment_value
        }
    }
}


DI_remove_prestige_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            add_prestige = {
                value = scope:DI_story.var:DI_increment_value
                multiply = -1
            }
        }
    }
}


DI_add_piety_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            add_piety = scope:DI_story.var:DI_increment_value
        }
    }
}


DI_remove_piety_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            add_piety = {
                value = scope:DI_story.var:DI_increment_value
                multiply = -1
            }
        }
    }
}

DI_add_gold_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            add_gold = scope:DI_story.var:DI_increment_value
        }
    }
}


DI_remove_gold_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            remove_short_term_gold = scope:DI_story.var:DI_increment_value
        }
    }
}


DI_add_dprestige_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            dynasty = {
                add_dynasty_prestige = scope:DI_story.var:DI_increment_value
            }
        }
    }
}


DI_remove_dprestige_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            dynasty = {
                add_dynasty_prestige = {
                    value = scope:DI_story.var:DI_increment_value
                    multiply = -1
                }
            }
        }
    }
}

DI_add_influence_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            change_influence = scope:DI_story.var:DI_increment_value
        }
    }
}

DI_remove_influence_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            change_influence = {
                value = scope:DI_story.var:DI_increment_value
                multiply = -1
            }
        }
    }
}

# add / remove provisions
DI_add_provisions_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            change_provisions = scope:DI_story.var:DI_increment_value
        }
    }
}

DI_remove_provisions_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            change_provisions = {
                value = scope:DI_story.var:DI_increment_value
                multiply = -1
            }
        }
    }
}

# add / remove herd 
DI_add_herd_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target.domicile = {
            change_herd = scope:DI_story.var:DI_increment_value
        }
    }
}

DI_remove_herd_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target.domicile = {
            change_herd = {
                value = scope:DI_story.var:DI_increment_value
                multiply = -1
            }
        }
    }
}

# add / remove barter goods
DI_add_barter_goods_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            add_barter_goods = scope:DI_story.var:DI_increment_value
        }
    }
}

DI_remove_barter_goods_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            remove_barter_goods = scope:DI_story.var:DI_increment_value
        }
    }
}

# add / remove treasury
DI_add_treasury_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            add_treasury = scope:DI_story.var:DI_increment_value
        }
    }
}

DI_remove_treasury_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        scope:target = {
            remove_treasury = scope:DI_story.var:DI_increment_value
        }
    }
}

DI_add_merit_level_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        scope:target = {
            change_merit_level = 1
        }
    }
}

DI_remove_merit_level_effect = {
    scope = character

    saved_scopes = {
        target # selected character
    }

    effect = {
        scope:target = {
            change_merit_level = -1
        }
    }
}

DI_clear_pinned_character = {
    scope = character

    saved_scopes = {
        root # player character
        target # selected character
    }

    effect = {
        scope:target = { remove_character_flag = pinned_for_edit }
        remove_list_variable = { name = pinned_characters target = scope:target }
    }
}

# Execute character
DI_execute_character = {
    scope = character

    effect = {
        death = natural
    }
}

DI_house_arrest_character = {
    scope = character

    saved_scopes = {
        root # selected character
        target # player character
    }

    is_valid = {
        scope:target != this
    }

    effect = {
        scope:target = {
            imprison = {
                target = root
                type = house_arrest
            }
        }
    }
}

DI_imprison_character = {
    scope = character

    saved_scopes = {
        target # player character
    }

    is_valid = {
        scope:target != this
    }

    effect = {
        scope:target = {
            imprison = {
                target = root
                type = dungeon
            }
        }
    }
}

# Catch all sgui for title manipulation #
DI_PC_title_sgui = {
    scope = character

    saved_scopes = {
        root # player character
        title # selected title
    }

    effect = {
        random_owned_story = {
            limit = {
                story_type = DI_misc_variables_story
            }
            save_scope_as = DI_story
        }

        # check for selected setting
        if = {
            limit = {
                scope:DI_story.var:DI_PC_title_selected_option = flag:take_title
            }

            get_title = scope:title
        }
        else_if = {
            limit = {
                scope:DI_story.var:DI_PC_title_selected_option = flag:claim_title
            }


        }
    }
}

### New culture change sgui ###
DI_PC_culture_change = {
    scope = character

    saved_scopes = {
        root # Player Character
        selected_culture # The selected culture from the culture.gui window
        target # The selected character
    }

    effect = {
        save_scope_as = player_character

        scope:target = {
            set_culture = scope:selected_culture
        }
    }
}

DI_PC_religion_change = {
    scope = character

    saved_scopes = {
        root # Player Character
        selected_faith # The selected faith from the religion.gui window
        target # The selected character
    }

    effect = {
        save_scope_as = player_character

        scope:target = {
            set_character_faith = scope:selected_faith
        }
    }
}

DI_add_diplomacy_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_diplomacy_skill = root.var:DI_diplomacy_value
        }
    }
}

DI_remove_diplomacy_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_diplomacy_skill = {
                value = root.var:DI_diplomacy_value
                multiply = -1
            }
        }
    }
}

DI_add_martial_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_martial_skill = root.var:DI_martial_value
        }
    }
}

DI_remove_martial_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_martial_skill = {
                value = root.var:DI_martial_value
                multiply = -1
            }
        }
    }
}

DI_add_stewardship_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_stewardship_skill = root.var:DI_stewardship_value
        }
    }
}

DI_remove_stewardship_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_stewardship_skill = {
                value = root.var:DI_stewardship_value
                multiply = -1
            }
        }
    }
}

DI_add_intrigue_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_intrigue_skill = root.var:DI_intrigue_value
        }
    }
}

DI_remove_intrigue_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_intrigue_skill = {
                value = root.var:DI_intrigue_value
                multiply = -1
            }
        }
    }
}

DI_add_learning_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_learning_skill = root.var:DI_learning_value
        }
    }
}

DI_remove_learning_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_learning_skill = {
                value = root.var:DI_learning_value
                multiply = -1
            }
        }
    }
}

DI_add_prowess_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_prowess_skill = root.var:DI_prowess_value
        }
    }
}

DI_remove_prowess_primary = {
    scope = character

    effect = {
        save_scope_as = player
        scope:player.var:DI_primary_character = { save_scope_as = primary_char }

        scope:primary_char = {
            add_prowess_skill = {
                value = root.var:DI_prowess_value
                multiply = -1
            }
        }
    }
}