﻿### Re-Select Culture ###
DI_reload_selected_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player
        scope:player.var:DI_innovation_selected_char.Culture = { save_scope_as = selected_culture }

        set_variable = {
            name = DI_innovation_selected_culture
            value = scope:selected_culture
        }
    }
}

## Convert all culture to edit counties to culture to copy
DI_ce_convert_counties = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }

        var:DI_innovation_selected_char = {
            every_sub_realm_county = {
                limit = {
                    NOT = { this.culture = scope:copy_culture }
                }
                set_county_culture = scope:copy_culture
            }
        }
    }
}

### Convert all pinned characters counties to culture to copy
DI_ce_convert_all_pinned_counties = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }

        every_in_list = {
            variable = pinned_characters

            limit = {
                NOR = {
                    this = scope:player_character.var:DI_innovation_selected_char_copy
                    this.culture = scope:copy_culture
                }
            }

            var:DI_innovation_selected_char = {
                every_sub_realm_county = {
                    limit = {
                        NOT = { this.culture = scope:copy_culture }
                    }
                    set_county_culture = scope:copy_culture
                }
            }
        }
    }

}

### Convert all pinned characters to culture to copy
DI_ce_convert_all_pinned = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }

        every_in_list = {
            variable = pinned_characters

            limit = {
                NOR = {
                    this = scope:player_character.var:DI_innovation_selected_char_copy
                    this.culture = scope:copy_culture
                }
            }

            set_culture = scope:copy_culture
        }
    }
}

### Convert culture to edit character to culture to copy ###
DI_ce_convert_copy = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }

        var:DI_innovation_selected_char = {
            set_culture = scope:copy_culture
        }
    }
}

### Convert all pinned characters to player culture ###
DI_ce_convert_to_player = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        every_in_list = {
            variable = pinned_characters

            limit = {
                NOR = {
                    this = scope:player_character
                }
            }

            set_culture = scope:player_character.culture
        }
    }
}

### Convert all pinned characters counties to player culture ###
DI_ce_convert_to_player_counties = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        every_in_list = {
            variable = pinned_characters

            every_sub_realm_county = {
                limit = {
                    NOT = { this.culture = scope:player_character.culture }
                }
                set_county_culture = scope:player_character.culture
            }
        }
    }
}

### Convert all pinned characters counties to their own culture ###
DI_ce_convert_to_own_counties = {
    scope = character # Player Character

    effect = {
        every_in_list = {
            variable = pinned_characters
            save_scope_as = pinned_character
            culture = { save_scope_as = pinned_culture }

            every_sub_realm_county = {
                limit = {
                    NOT = { this.culture = scope:pinned_culture }
                }
                set_county_culture = scope:pinned_culture
            }
        }
    }
}

### New culture change sgui ###
DI_ce_culture_change = {
    scope = character # Player Character

    saved_scopes = {
        selected_culture # The selected culture from the culture.gui window
    }

    effect = {
        save_scope_as = player_character
        scope:selected_culture = { save_scope_as = selected_culture }

        var:DI_innovation_selected_char = {
            set_culture = scope:selected_culture
        }

        set_variable = {
            name = DI_innovation_selected_culture
            value = scope:selected_culture
        }
    }
}

### Convert every courtier ###
DI_convert_every_courtier_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }
        scope:player_character.var:DI_innovation_selected_char = { save_scope_as = selected_char }

        scope:selected_char = {
            every_courtier = {
                limit = {
                    NOT = { this.culture = scope:copy_culture }
                }
                set_culture = scope:copy_culture
            }
        }
    }
}

### Convert every vassal ###
DI_convert_every_vassal_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }
        scope:player_character.var:DI_innovation_selected_char = { save_scope_as = selected_char }

        scope:selected_char = {
            every_vassal = {
                limit = {
                    NOT = { this.culture = scope:copy_culture }
                }
                set_culture = scope:copy_culture
            }
        }
    }
}

### Culture Realms ###
DI_convert_realm_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }
        scope:player_character.var:DI_innovation_selected_char = { save_scope_as = selected_char }

        scope:selected_char = {
            scope:selected_char.top_liege = {
                set_culture = scope:copy_culture

                every_courtier = {
                    limit = {
                        NOT = { this.culture = scope:copy_culture }
                    }
                    set_culture = scope:copy_culture
                }

                every_vassal_or_below = {
                    set_culture = scope:copy_culture

                    every_courtier = {
                        limit = {
                            NOT = { this.culture = scope:copy_culture }
                        }
                        set_culture = scope:copy_culture
                    }
                }
            }

            every_realm_county = {
                limit = {
                    NOT = { this.culture = scope:copy_culture }
                }
                set_county_culture = scope:copy_culture
            }
        }
    }
}

### DI_convert_all_pinned_realm_culture ###
DI_convert_all_pinned_realm_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }

        every_in_list = {
            variable = pinned_characters

            this.top_liege = {
                set_culture = scope:copy_culture

                every_courtier = {
                    limit = {
                        NOT = { this.culture = scope:copy_culture }
                    }
                    set_culture = scope:copy_culture
                }

                every_vassal_or_below = {
                    set_culture = scope:copy_culture

                    every_courtier = {
                        limit = {
                            NOT = { this.culture = scope:copy_culture }
                        }
                        set_culture = scope:copy_culture
                    }
                }
            }

            every_realm_county = {
                limit = {
                    NOT = { this.culture = scope:copy_culture }
                }
                set_county_culture = scope:copy_culture
            }
        }
    }
}

### DI_convert_all_pinned_to_player_culture ###
DI_convert_all_pinned_to_player_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        every_in_list = {
            variable = pinned_characters

            this.top_liege = {
                set_culture = scope:player_character.culture

                every_courtier = {
                    limit = {
                        NOT = { this.culture = scope:player_character.culture }
                    }
                    set_culture = scope:player_character.culture
                }

                every_vassal_or_below = {
                    set_culture = scope:player_character.culture

                    every_courtier = {
                        limit = {
                            NOT = { this.culture = scope:player_character.culture }
                        }
                        set_culture = scope:player_character.culture
                    }
                }
            }

            every_realm_county = {
                limit = {
                    NOT = { this.culture = scope:player_character.culture }
                }
                set_county_culture = scope:player_character.culture
            }
        }
    }
}

### DI_quick_convert_player_realm_culture ###
DI_quick_convert_player_realm_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        this.top_liege = {
            set_culture = scope:player_character.culture

            every_courtier = {
                limit = {
                    NOT = { this.culture = scope:player_character.culture }
                }
                set_culture = scope:player_character.culture
            }

            every_vassal_or_below = {
                set_culture = scope:player_character.culture

                every_courtier = {
                    limit = {
                        NOT = { this.culture = scope:player_character.culture }
                    }
                    set_culture = scope:player_character.culture
                }
            }
        }


        every_realm_county = {
            limit = {
                NOT = { this.culture = scope:player_character.culture }
            }
            set_county_culture = scope:player_character.culture
        }
    }
}

### DI_convert_sub_realm_culture ###
DI_convert_sub_realm_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }
        scope:player_character.var:DI_innovation_selected_char = { save_scope_as = selected_char }

        scope:selected_char = {
            set_culture = scope:copy_culture

            every_courtier = {
                limit = {
                    NOT = { this.culture = scope:copy_culture }
                }
                set_culture = scope:copy_culture
            }

            every_vassal_or_below = {
                set_culture = scope:copy_culture

                every_courtier = {
                    limit = {
                        NOT = { this.culture = scope:copy_culture }
                    }
                    set_culture = scope:copy_culture
                }
            }

            every_sub_realm_county = {
                limit = {
                    NOT = { this.culture = scope:copy_culture }
                }
                set_county_culture = scope:copy_culture
            }
        }
    }
}

### DI_convert_all_pinned_sub_realm_culture ###
DI_convert_all_pinned_sub_realm_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character
        scope:player_character.var:DI_innovation_selected_culture_copy = { save_scope_as = copy_culture }

        every_in_list = {
            variable = pinned_characters

            set_culture = scope:copy_culture

            every_courtier = {
                limit = {
                    NOT = { this.culture = scope:copy_culture }
                }
                set_culture = scope:copy_culture
            }

            every_vassal_or_below = {
                set_culture = scope:copy_culture

                every_courtier = {
                    limit = {
                        NOT = { this.culture = scope:copy_culture }
                    }
                    set_culture = scope:copy_culture
                }
            }

            every_sub_realm_county = {
                limit = {
                    NOT = { this.culture = scope:copy_culture }
                }
                set_county_culture = scope:copy_culture
            }
        }
    }
}

### DI_convert_all_pinned_to_player_sub_realm_culture ###
DI_convert_all_pinned_to_player_sub_realm_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        every_in_list = {
            variable = pinned_characters

            set_culture = scope:player_character.culture

            every_courtier = {
                limit = {
                    NOT = { this.culture = scope:player_character.culture }
                }
                set_culture = scope:player_character.culture
            }

            every_vassal_or_below = {
                set_culture = scope:player_character.culture

                every_courtier = {
                    limit = {
                        NOT = { this.culture = scope:player_character.culture }
                    }
                    set_culture = scope:player_character.culture
                }
            }

            every_sub_realm_county = {
                limit = {
                    NOT = { this.culture = scope:player_character.culture }
                }
                set_county_culture = scope:player_character.culture
            }
        }
    }
}

### DI_quick_convert_player_sub_realm_culture ###
DI_quick_convert_player_sub_realm_culture = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        every_courtier = {
            limit = {
                NOT = { this.culture = scope:player_character.culture }
            }
            set_culture = scope:player_character.culture
        }

        every_vassal_or_below = {
            set_culture = scope:player_character.culture

            every_courtier = {
                limit = {
                    NOT = { this.culture = scope:player_character.culture }
                }
                set_culture = scope:player_character.culture
            }
        }

        every_sub_realm_county = {
            limit = {
                NOT = { this.culture = scope:player_character.culture }
            }
            set_county_culture = scope:player_character.culture
        }
    }
}

### Cultural Editor Innovations ###
# Remove all innovations
DI_ce_remove_all_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_remove_innovations_tribal_effect = yes
            DI_remove_innovations_early_medieval_effect = yes
            DI_remove_innovations_high_medieval_effect = yes
            DI_remove_innovations_late_medieval_effect = yes
        }
    }
}

# Add Cultural Editor Innovations
DI_ce_add_all_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_add_innovations_tribal_effect = yes
            DI_add_innovations_early_medieval_effect = yes
            DI_add_innovations_high_medieval_effect = yes
            DI_add_innovations_late_medieval_effect = yes
        }
    }
}

# Tribal Innovations
DI_ce_add_tribal_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_add_innovations_tribal_effect = yes
        }
    }
}

DI_ce_remove_tribal_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_remove_innovations_tribal_effect = yes
        }
    }
}

# Early Medieval Innovations
DI_ce_add_early_medieval_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_add_innovations_early_medieval_effect = yes
        }
    }
}

DI_ce_remove_early_medieval_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_remove_innovations_early_medieval_effect = yes
        }
    }
}

# High Medieval Innovations
DI_ce_add_high_medieval_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_add_innovations_high_medieval_effect = yes
        }
    }
}

DI_ce_remove_high_medieval_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_remove_innovations_high_medieval_effect = yes
        }
    }
}

# Late Medieval Innovations
DI_ce_add_late_medieval_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_add_innovations_late_medieval_effect = yes
        }
    }
}

DI_ce_remove_late_medieval_innovations = {
    scope = character # Player Character

    effect = {
        save_scope_as = player_character

        var:DI_innovation_selected_culture = {
            DI_remove_innovations_late_medieval_effect = yes
        }
    }
}
