From 8d683ace6de94e60f9ec9509a7bf10159139045f Mon Sep 17 00:00:00 2001 From: Fishedotjpg Date: Sun, 15 Mar 2026 04:37:44 +0000 Subject: [PATCH] many fixes and also mural crowns --- .../NEOW_minority_community_buildings.txt | 66 +- common/governments/00_government_types.txt | 15 +- common/legitimacy/00_legitimacy.txt | 9 +- common/on_action/title_on_actions.txt | 158 ++ .../succession_election/04_saxon_elective.txt | 24 + .../mpo_the_great_steppe_events.txt | 425 +++ .../coat_of_arms/Mural_crown_kingdom_115.dds | 3 - .../coat_of_arms/Mural_crown_kingdom_28.dds | 3 - .../coat_of_arms/Mural_crown_kingdom_44.dds | 3 - .../coat_of_arms/Mural_crown_kingdom_62.dds | 3 - .../coat_of_arms/Mural_crown_kingdom_86.dds | 3 - .../coat_of_arms/rep_crown_strip_115.dds | 3 + .../coat_of_arms/rep_crown_strip_28.dds | 3 + .../coat_of_arms/rep_crown_strip_44.dds | 3 + .../coat_of_arms/rep_crown_strip_62.dds | 3 + .../coat_of_arms/rep_crown_strip_86.dds | 3 + gfx/map/terrain/plains_01_diffuse.dds | 3 + gfx/map/terrain/plains_01_noisy_diffuse.dds | 3 + gfx/map/terrain/plains_01_rough_diffuse.dds | 3 + gui/debug/window_component_library.gui | 2435 +++++++++++++++++ gui/shared/coat_of_arms.gui | 509 +++- 21 files changed, 3594 insertions(+), 86 deletions(-) create mode 100644 events/situation_events/mpo_the_great_steppe_events.txt delete mode 100644 gfx/interface/coat_of_arms/Mural_crown_kingdom_115.dds delete mode 100644 gfx/interface/coat_of_arms/Mural_crown_kingdom_28.dds delete mode 100644 gfx/interface/coat_of_arms/Mural_crown_kingdom_44.dds delete mode 100644 gfx/interface/coat_of_arms/Mural_crown_kingdom_62.dds delete mode 100644 gfx/interface/coat_of_arms/Mural_crown_kingdom_86.dds create mode 100644 gfx/interface/coat_of_arms/rep_crown_strip_115.dds create mode 100644 gfx/interface/coat_of_arms/rep_crown_strip_28.dds create mode 100644 gfx/interface/coat_of_arms/rep_crown_strip_44.dds create mode 100644 gfx/interface/coat_of_arms/rep_crown_strip_62.dds create mode 100644 gfx/interface/coat_of_arms/rep_crown_strip_86.dds create mode 100644 gfx/map/terrain/plains_01_diffuse.dds create mode 100644 gfx/map/terrain/plains_01_noisy_diffuse.dds create mode 100644 gfx/map/terrain/plains_01_rough_diffuse.dds create mode 100644 gui/debug/window_component_library.gui diff --git a/common/domiciles/buildings/NEOW_minority_community_buildings.txt b/common/domiciles/buildings/NEOW_minority_community_buildings.txt index e0d0b1b9..8fd4fff6 100644 --- a/common/domiciles/buildings/NEOW_minority_community_buildings.txt +++ b/common/domiciles/buildings/NEOW_minority_community_buildings.txt @@ -4175,9 +4175,6 @@ communal_gardens_leisure_04 = { allowed_domicile_types = { minority_community farmstead } previous_building = communal_gardens_03 - can_construct = { - estate_can_construct_communal_gardens_leisure_04_trigger = yes - } cost = { gold = { @@ -4305,10 +4302,6 @@ communal_gardens_leisure_05 = { allowed_domicile_types = { minority_community farmstead } previous_building = communal_gardens_leisure_04 - can_construct = { - estate_can_construct_communal_gardens_leisure_05_trigger = yes - } - cost = { gold = { value = estate_external_building_normal_cost_tier_5_value @@ -4435,9 +4428,6 @@ communal_gardens_leisure_06 = { allowed_domicile_types = { minority_community farmstead } previous_building = communal_gardens_leisure_05 - can_construct = { - estate_can_construct_communal_gardens_leisure_06_trigger = yes - } cost = { gold = { @@ -4567,9 +4557,6 @@ communal_gardens_fruit_04 = { allowed_domicile_types = { minority_community farmstead } previous_building = communal_gardens_03 - can_construct = { - estate_can_construct_communal_gardens_fruit_04_trigger = yes - } cost = { gold = { @@ -4697,9 +4684,6 @@ communal_gardens_fruit_05 = { allowed_domicile_types = { minority_community farmstead } previous_building = communal_gardens_fruit_04 - can_construct = { - estate_can_construct_communal_gardens_fruit_05_trigger = yes - } cost = { gold = { @@ -4827,9 +4811,6 @@ communal_gardens_fruit_06 = { allowed_domicile_types = { minority_community farmstead } previous_building = communal_gardens_fruit_05 - can_construct = { - estate_can_construct_communal_gardens_fruit_06_trigger = yes - } cost = { gold = { @@ -7127,7 +7108,10 @@ village_storage_warehouse_03 = { previous_building = village_storage_02 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_02 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_02 } + } } cost = { @@ -7213,7 +7197,10 @@ village_storage_warehouse_04 = { previous_building = village_storage_warehouse_03 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_03 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_03 } + } } cost = { @@ -7301,7 +7288,10 @@ village_storage_granary_03 = { previous_building = village_storage_02 can_construct = { - domicile ?= { has_domicile_building_or_higher = minority_community_main_02 } + OR = { + domicile ?= { has_domicile_building_or_higher = minority_community_main_03 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_03 } + } } cost = { @@ -7390,7 +7380,10 @@ village_storage_granary_04 = { previous_building = village_storage_granary_03 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_03 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_03 } + } } cost = { @@ -8342,7 +8335,10 @@ village_grazing_land_04 = { previous_building = village_grazing_land_03 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_03 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_03 } + } } cost = { @@ -8456,7 +8452,10 @@ grazing_land_05 = { previous_building = village_grazing_land_04 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_04 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_04 } + } } cost = { @@ -8570,7 +8569,10 @@ grazing_land_06 = { previous_building = grazing_land_05 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_05 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_05 } + } } cost = { @@ -8952,7 +8954,10 @@ village_grain_fields_03 = { previous_building = village_grain_fields_02 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_02 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_02 } + } } cost = { @@ -9085,7 +9090,10 @@ village_grain_fields_04 = { previous_building = village_grain_fields_03 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_03 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_03 } + } } cost = { @@ -9218,7 +9226,10 @@ village_grain_fields_05 = { previous_building = village_grain_fields_04 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_04 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_04 } + } } cost = { @@ -9351,7 +9362,10 @@ village_grain_fields_06 = { previous_building = village_grain_fields_05 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_05 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_05 } + } } cost = { @@ -9640,7 +9654,10 @@ village_rice_field_03 = { previous_building = village_rice_field_02 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_02 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_02 } + } } cost = { @@ -9722,7 +9739,10 @@ village_rice_field_04 = { previous_building = village_rice_field_03 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_03 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_03 } + } } cost = { @@ -9804,7 +9824,10 @@ village_rice_field_05 = { previous_building = village_rice_field_04 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_04 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_04 } + } } cost = { @@ -9886,7 +9909,10 @@ village_rice_field_06 = { previous_building = village_rice_field_05 can_construct = { + OR = { domicile ?= { has_domicile_building_or_higher = minority_community_main_05 } + domicile ?= { has_domicile_building_or_higher = farmstead_main_05 } + } } cost = { diff --git a/common/governments/00_government_types.txt b/common/governments/00_government_types.txt index b4a5d7e8..3d37e196 100644 --- a/common/governments/00_government_types.txt +++ b/common/governments/00_government_types.txt @@ -61,7 +61,7 @@ republic_government = { faith = { has_doctrine = tenet_egalite } - liege = { + any_liege_or_above = { has_government = peasantrepublic_government } } @@ -72,7 +72,7 @@ republic_government = { faith = { has_doctrine = tenet_egalite } - liege = { + any_liege_or_above = { has_government = urbanrepublic_government } } @@ -92,6 +92,8 @@ republic_government = { government_is_republic government_is_settled government_uses_domain_limit + gov_uses_non_crown_coa + government_locked_to_elective } color = hsv{ 0.00 1.00 0.98 } @@ -371,6 +373,7 @@ mercenary_government = { government_uses_crown_authority cannot_be_vassal_or_liege government_is_mercenary + gov_uses_non_crown_coa } mechanic_type = mercenary @@ -570,6 +573,7 @@ landless_adventurer_government = { cannot_be_vassal_or_liege government_is_landless_adventurer has_unique_government_perks + gov_uses_non_crown_coa } mechanic_type = landless_adventurer @@ -636,6 +640,7 @@ landless_minority_government = { landless_can_be_vassalised government_is_landless_minority government_devassalises + gov_uses_non_crown_coa } mechanic_type = landless_adventurer @@ -689,7 +694,7 @@ peasantrepublic_government = { faith = { has_doctrine = tenet_egalite } - liege = { + any_liege_or_above = { has_government = urbanrepublic_government } } @@ -728,6 +733,7 @@ peasantrepublic_government = { government_is_prepublic government_locked_to_elective government_allows_nomad_domicile_titles + gov_uses_non_crown_coa } mechanic_type = feudal @@ -768,7 +774,7 @@ urbanrepublic_government = { faith = { has_doctrine = tenet_egalite } - liege = { + any_liege_or_above = { has_government = urbanrepublic_government } } @@ -811,6 +817,7 @@ urbanrepublic_government = { government_is_urepublic government_locked_to_elective government_allows_nomad_domicile_titles + gov_uses_non_crown_coa } mechanic_type = feudal diff --git a/common/legitimacy/00_legitimacy.txt b/common/legitimacy/00_legitimacy.txt index 10582669..e1c70e61 100644 --- a/common/legitimacy/00_legitimacy.txt +++ b/common/legitimacy/00_legitimacy.txt @@ -530,8 +530,9 @@ hegemon_legitimacy = { mandate_legitimacy = { is_valid = { highest_held_title_tier = tier_hegemony - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } has_tgp_dlc_trigger = yes has_title = title:h_china @@ -669,8 +670,9 @@ mandate_legitimacy = { nomadic_legitimacy = { is_valid = { has_mpo_dlc_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } government_has_flag = government_is_nomadic } @@ -773,8 +775,9 @@ nomadic_legitimacy = { mandala_legitimacy = { is_valid = { has_tgp_dlc_trigger = yes - NOT = { + NOR = { government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic } government_has_flag = government_is_mandala } diff --git a/common/on_action/title_on_actions.txt b/common/on_action/title_on_actions.txt index a6a88054..7c80d530 100644 --- a/common/on_action/title_on_actions.txt +++ b/common/on_action/title_on_actions.txt @@ -197,6 +197,45 @@ on_title_gain = { # COUNTY-TIER TITLES # ###################### + if = { + limit = { + OR = { + OR = { + government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic + } + OR = { + primary_title = { + title_tier = barony + } + AND = { + + primary_title = { + is_nomad_title = yes + } + NOT = { + any_liege_or_above = { + exists = yes + primary_title = { + title_tier >= duchy + } + } + } + } + } + NOR = { + government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic + } + } + scope:title = { + is_nomad_title = yes + } + } + root = { + destroy_title = scope:title + } + } if = { limit = { government_has_flag = government_is_prepublic @@ -2865,6 +2904,45 @@ on_title_gain_inheritance = { diarchy.0113 } effect = { + if = { + limit = { + OR = { + OR = { + government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic + } + OR = { + primary_title = { + title_tier = barony + } + AND = { + + primary_title = { + is_nomad_title = yes + } + NOT = { + any_liege_or_above = { + exists = yes + primary_title = { + title_tier >= duchy + } + } + } + } + } + NOR = { + government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic + } + } + scope:title = { + is_nomad_title = yes + } + } + root = { + destroy_title = scope:title + } + } if = { limit = { government_has_flag = government_is_prepublic @@ -2983,6 +3061,45 @@ on_title_gain_usurpation = { events = { } effect = { + if = { + limit = { + OR = { + OR = { + government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic + } + OR = { + primary_title = { + title_tier = barony + } + AND = { + + primary_title = { + is_nomad_title = yes + } + NOT = { + any_liege_or_above = { + exists = yes + primary_title = { + title_tier >= duchy + } + } + } + } + } + NOR = { + government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic + } + } + scope:title = { + is_nomad_title = yes + } + } + root = { + destroy_title = scope:title + } + } if = { limit = { government_has_flag = government_is_prepublic @@ -3145,6 +3262,47 @@ on_title_lost = { } effect = { + if = { + limit = { + scope:new_holder = { + OR = { + OR = { + government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic + } + OR = { + primary_title = { + title_tier = barony + } + AND = { + + primary_title = { + is_nomad_title = yes + } + NOT = { + any_liege_or_above = { + exists = yes + primary_title = { + title_tier => duchy + } + } + } + } + } + NOR = { + government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic + } + } + } + scope:title = { + is_nomad_title = yes + } + } + scope:new_holder = { + destroy_title = scope:title + } + } if = { limit = { government = landless_minority_government diff --git a/common/succession_election/04_saxon_elective.txt b/common/succession_election/04_saxon_elective.txt index 4f0332a9..1938e6dc 100644 --- a/common/succession_election/04_saxon_elective.txt +++ b/common/succession_election/04_saxon_elective.txt @@ -125,6 +125,9 @@ saxon_elective = { #Farmer Elective faith = { has_doctrine = tenet_communal_possessions } + any_liege_or_above = { + government_has_flag = government_is_prepublic + } } } } @@ -139,6 +142,9 @@ saxon_elective = { #Farmer Elective faith = { has_doctrine = tenet_communal_possessions } + any_liege_or_above = { + government_has_flag = government_is_prepublic + } } } } @@ -154,6 +160,9 @@ saxon_elective = { #Farmer Elective faith = { has_doctrine = tenet_communal_possessions } + any_liege_or_above = { + government_has_flag = government_is_prepublic + } } } } @@ -171,6 +180,9 @@ saxon_elective = { #Farmer Elective faith = { has_doctrine = tenet_communal_possessions } + any_liege_or_above = { + government_has_flag = government_is_prepublic + } } } } @@ -304,6 +316,9 @@ urban_elective = { #Urban Elective faith = { has_doctrine = tenet_egalite } + any_liege_or_above = { + government_has_flag = government_is_urepublic + } } } } @@ -318,6 +333,9 @@ urban_elective = { #Urban Elective faith = { has_doctrine = tenet_egalite } + any_liege_or_above = { + government_has_flag = government_is_urepublic + } } } } @@ -333,6 +351,9 @@ urban_elective = { #Urban Elective faith = { has_doctrine = tenet_egalite } + any_liege_or_above = { + government_has_flag = government_is_urepublic + } } } } @@ -350,6 +371,9 @@ urban_elective = { #Urban Elective faith = { has_doctrine = tenet_egalite } + any_liege_or_above = { + government_has_flag = government_is_urepublic + } } } } diff --git a/events/situation_events/mpo_the_great_steppe_events.txt b/events/situation_events/mpo_the_great_steppe_events.txt new file mode 100644 index 00000000..c863a427 --- /dev/null +++ b/events/situation_events/mpo_the_great_steppe_events.txt @@ -0,0 +1,425 @@ +namespace = mpo_the_great_steppe + +################################### +# The Great Steppe Intro Event +# 0001 +################################### +mpo_the_great_steppe.0001 = { # Fullscreen Intro Event + type = character_event + window = fullscreen_event + title = mpo_the_great_steppe.0001.t + desc = mpo_the_great_steppe.0001.desc + theme = realm + trigger = { # we need to prevent this from firing for all players when a new player joins in MP + is_ai = no + NOT = { has_variable = mpo_the_great_steppe_events_0001_var } + } + hidden = yes + override_background = { reference = mpo_fullscreen_the_great_steppe } + override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" } + + cooldown = { years = 100 } + + widgets = { + widget = { + gui = "event_window_widget_situation_info_the_great_steppe" + container = "dynamic_content_widget" + controller = situation_info + setup_scope = { situation:the_great_steppe = { save_scope_as = situation } } + } + } + immediate = { + play_music_cue = mx_cue_conquest_of_the_golden_horde + set_variable = mpo_the_great_steppe_events_0001_var + save_scope_value_as = { + name = start + value = yes + } + } + option = { + name = mpo_the_great_steppe.0001.a + clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select" + } +} + +# Start Phase +mpo_the_great_steppe.0002 = { + type = character_event + title = mpo_the_great_steppe.0002.t + hidden = yes + desc = { + first_valid = { + triggered_desc = { + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_cold_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + desc = mpo_the_great_steppe.0002.desc.cold_zud + } + triggered_desc = { + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_severe_drought_season + situation_sub_region_has_county = root.capital_county + } + } + } + desc = mpo_the_great_steppe.0002.desc.drought + } + triggered_desc = { + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_white_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + desc = mpo_the_great_steppe.0002.desc.white_zud + } + triggered_desc = { + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_warm_nights_season + situation_sub_region_has_county = root.capital_county + } + } + } + desc = mpo_the_great_steppe.0002.desc.warm_nights + } + triggered_desc = { + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_abundant_grazing_season + situation_sub_region_has_county = root.capital_county + } + } + } + desc = mpo_the_great_steppe.0002.desc.abundant_grazing + } + triggered_desc = { + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_havsarsan_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + desc = mpo_the_great_steppe.0002.desc.havsarsan_zud + } + triggered_desc = { + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_sky_blessing_season + situation_sub_region_has_county = root.capital_county + } + } + } + desc = mpo_the_great_steppe.0002.desc.sky_blessing + } + } + first_valid = { + triggered_desc = { + trigger = { + OR = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_cold_zud_season + situation_sub_region_has_county = root.capital_county + } + } + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_white_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + } + desc = mpo_the_great_steppe.0002.desc.obedience + } + } + } + theme = nomads + override_background = { + trigger = { + has_zud_season_nomadic_capital_root_trigger = yes + } + reference = bp3_steppe_winter + } + override_background = { + trigger = { + has_zud_season_nomadic_capital_root_trigger = no + } + reference = wilderness + } + left_portrait = { + character = root + triggered_animation = { + trigger = { + has_bad_season_nomadic_capital_root_trigger = yes + } + animation = horse_exhausted + } + animation = horse_surveying + camera = camera_event_horse_left + } + lower_right_portrait = { + trigger = { exists = scope:person } + character = scope:person + } + + widgets = { + widget = { + is_shown = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_cold_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + gui = "event_window_widget_vfx_snow" + container = "foreground_shader_vfx_container" + } + + widget = { + is_shown = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_havsarsan_zud_season + situation_sub_region_has_county = root.location.county + } + } + } + gui = "event_window_widget_vfx_snowstorm" + container = "foreground_shader_vfx_container" + } + } + + override_effect_2d = { + reference = fog + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_havsarsan_zud_season + situation_sub_region_has_county = root.location.county + } + } + } + } + override_effect_2d = { + reference = rain + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_havsarsan_zud_season + situation_sub_region_has_county = root.location.county + } + } + } + } + override_effect_2d = { + reference = legend_glow + trigger = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_sky_blessing_season + situation_sub_region_has_county = root.location.county + } + } + } + } + + trigger = { + NOT = { has_variable = steppe_game_start_var } + } + + immediate = { + custom_tooltip = mpo_the_great_steppe.0002.tt + play_music_cue = mx_cue_conquest_of_the_golden_horde + if = { + limit = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_warm_nights_season + situation_sub_region_has_county = root.location.county + } + } + } + if = { + limit = { + any_spouse = { + } + } + random_spouse = { + save_scope_as = person + } + } + else_if = { + limit = { + any_courtier_or_guest = { + } + } + random_courtier_or_guest = { + save_scope_as = person + } + } + else = { + hidden_effect = { + create_character = { + template = pool_repopulate_local_flavor + dynasty = none + location = root.location + save_scope_as = person + } + } + } + } + } + + option = { + name = mpo_the_great_steppe.0002.a + if = { + limit = { has_perk = souvenirs_aplenty_perk } + add_internal_flag = special + custom_tooltip = mpo_the_great_steppe_0002_souvenirs_aplenty_tt + every_held_county = { + limit = { + uses_county_fertility = yes + is_landless_type_title = no + } + add_county_modifier = { + modifier = souvenirs_aplenty_perk_county_modifier + years = 10 + } + } + } + if = { + limit = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_havsarsan_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + every_held_county = { + limit = { is_landless_type_title = no } + change_county_control = -25 + } + domicile = { + change_herd = { + value = root.domicile.herd + multiply = -0.2 + } + } + } + if = { + limit = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_white_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + every_held_county = { + limit = { is_landless_type_title = no } + change_county_control = -25 + } + domicile = { + change_herd = { + value = root.domicile.herd + multiply = -0.1 + } + } + } + if = { + limit = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_cold_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + every_held_county = { + limit = { is_landless_type_title = no } + change_county_control = -10 + } + } + + ai_chance = { + base = 100 + } + } +} + +mpo_the_great_steppe.0003 = { + type = character_event + hidden = yes + + immediate = { + if = { + limit = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_white_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + every_held_county = { + limit = { + is_landless_type_title = no + uses_county_fertility = yes + } + change_county_fertility = -50 + } + } + if = { + limit = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_cold_zud_season + situation_sub_region_has_county = root.capital_county + } + } + } + every_held_county = { + limit = { + is_landless_type_title = no + uses_county_fertility = yes + } + change_county_fertility = -25 + } + } + if = { + limit = { + any_character_situation = { + any_situation_sub_region = { + sub_region_current_phase = situation_steppe_severe_drought_season + situation_sub_region_has_county = root.capital_county + } + } + } + every_held_county = { + limit = { + is_landless_type_title = no + uses_county_fertility = yes + } + change_county_fertility = -10 + } + } + } +} \ No newline at end of file diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_115.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_115.dds deleted file mode 100644 index 00e8f6f4..00000000 --- a/gfx/interface/coat_of_arms/Mural_crown_kingdom_115.dds +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fa0cbac3fb325057cf3e65f179c004f3ba387951a1c7d70eab914d66e9e9114a -size 5248 diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_28.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_28.dds deleted file mode 100644 index 2073b6f1..00000000 --- a/gfx/interface/coat_of_arms/Mural_crown_kingdom_28.dds +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe096468b7de636949c451602525eff1f1783619a1ba2e528e4a5642c7d01a29 -size 448 diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_44.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_44.dds deleted file mode 100644 index 75bc5f5c..00000000 --- a/gfx/interface/coat_of_arms/Mural_crown_kingdom_44.dds +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0355960883474b06d8edfd0402f3d1ca01edf60c77608b97e3230856e9dd3168 -size 1064 diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_62.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_62.dds deleted file mode 100644 index 68697cc1..00000000 --- a/gfx/interface/coat_of_arms/Mural_crown_kingdom_62.dds +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57d7912e5a3af99fa82a141326eb720ceb42e698466d279051bdb160300fccd7 -size 1408 diff --git a/gfx/interface/coat_of_arms/Mural_crown_kingdom_86.dds b/gfx/interface/coat_of_arms/Mural_crown_kingdom_86.dds deleted file mode 100644 index e748ed0e..00000000 --- a/gfx/interface/coat_of_arms/Mural_crown_kingdom_86.dds +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8ccdcd11602fb17693c74a5c704392ed9c3e8f95ac5f3254978d1f515caa59e7 -size 3008 diff --git a/gfx/interface/coat_of_arms/rep_crown_strip_115.dds b/gfx/interface/coat_of_arms/rep_crown_strip_115.dds new file mode 100644 index 00000000..1eeb6622 --- /dev/null +++ b/gfx/interface/coat_of_arms/rep_crown_strip_115.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c873b2a46e1982c53092e0751401da7172140c3f7817ebc1ce737fd178bfd4d +size 96240 diff --git a/gfx/interface/coat_of_arms/rep_crown_strip_28.dds b/gfx/interface/coat_of_arms/rep_crown_strip_28.dds new file mode 100644 index 00000000..cd635127 --- /dev/null +++ b/gfx/interface/coat_of_arms/rep_crown_strip_28.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc33570a93b54891a5edbbe482117f9f6fa77d663a516d16c6d9ca1efe177842 +size 7536 diff --git a/gfx/interface/coat_of_arms/rep_crown_strip_44.dds b/gfx/interface/coat_of_arms/rep_crown_strip_44.dds new file mode 100644 index 00000000..bc40ea57 --- /dev/null +++ b/gfx/interface/coat_of_arms/rep_crown_strip_44.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0144365b17ad8457fe29a35dfe3407fb01e6daff079376043ab5a706deb8339a +size 15856 diff --git a/gfx/interface/coat_of_arms/rep_crown_strip_62.dds b/gfx/interface/coat_of_arms/rep_crown_strip_62.dds new file mode 100644 index 00000000..60be11d3 --- /dev/null +++ b/gfx/interface/coat_of_arms/rep_crown_strip_62.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56eea9cce81c3bfa2ed8402124228c22a836c9d29369dde469aea42817b0646c +size 24560 diff --git a/gfx/interface/coat_of_arms/rep_crown_strip_86.dds b/gfx/interface/coat_of_arms/rep_crown_strip_86.dds new file mode 100644 index 00000000..51b362e9 --- /dev/null +++ b/gfx/interface/coat_of_arms/rep_crown_strip_86.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a746fa25400f75ca333dbb1f27fa745703e17013a3921d2fe4504d353d2c6b1a +size 54944 diff --git a/gfx/map/terrain/plains_01_diffuse.dds b/gfx/map/terrain/plains_01_diffuse.dds new file mode 100644 index 00000000..32c77477 --- /dev/null +++ b/gfx/map/terrain/plains_01_diffuse.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5166cf0d49f17f8a19e39a4c7b33fda2b4b2b7da53b7208d54397a79f99d7ec5 +size 1398256 diff --git a/gfx/map/terrain/plains_01_noisy_diffuse.dds b/gfx/map/terrain/plains_01_noisy_diffuse.dds new file mode 100644 index 00000000..9d1bf597 --- /dev/null +++ b/gfx/map/terrain/plains_01_noisy_diffuse.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8e8232c6e6e0a78ae6a61c35192cc064485de7cf05eb3dbdf517b4799d37526 +size 1398256 diff --git a/gfx/map/terrain/plains_01_rough_diffuse.dds b/gfx/map/terrain/plains_01_rough_diffuse.dds new file mode 100644 index 00000000..ffa1dbf5 --- /dev/null +++ b/gfx/map/terrain/plains_01_rough_diffuse.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80233e58aa4209d1afab216660c7aa1a61e7bf4777263d89c2cc928caf1bf895 +size 1398256 diff --git a/gui/debug/window_component_library.gui b/gui/debug/window_component_library.gui new file mode 100644 index 00000000..b2e86644 --- /dev/null +++ b/gui/debug/window_component_library.gui @@ -0,0 +1,2435 @@ +window = { + name = "component_library_window" + parentanchor = center + size = { 1400 950 } + layer = windows_layer + + using = Window_Background + using = Window_Decoration + + state = { + name = _show + using = Animation_FadeIn_Quick + + on_start = "[GetVariableSystem.Set( 'ui_library_tabs', 'action_buttons' )]" + } + + vbox = { + using = Window_Margins + + header_pattern = { + layoutpolicy_horizontal = expanding + + blockoverride "header_text" + { + raw_text = "UI Components" + } + + blockoverride "button_close" + { + onclick = "[ExecuteConsoleCommand('gui.clearwidgets')]" + } + + button_checkbox_label = { + parentanchor = vcenter + position = { 10 0 } + + onclick = "[GetVariableSystem.Toggle( 'ui_library_down_state')]" + blockoverride "checkbox" + { + + checked = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + blockoverride "text" + { + raw_text = "Down State" + } + } + + button_tertiary = { + parentanchor = vcenter + position = { 1050 0 } + size = { 200 40 } + layoutpolicy_horizontal = expanding + raw_text = "Spawn a Test Window" + raw_tooltip = "Window for GUI testing (test_gui.gui)" + + onclick = "[ExecuteConsoleCommand('gui.CreateWidget gui/debug/test_gui.gui test_window')]" + } + } + + hbox = { + layoutpolicy_horizontal = expanding + + button_tab = { + layoutpolicy_horizontal = expanding + raw_text = "Action Buttons" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'action_buttons' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'action_buttons' )]" + } + + button_tab = { + layoutpolicy_horizontal = expanding + raw_text = "Other Input" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'other_inputs' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'other_inputs' )]" + } + + button_tab = { + layoutpolicy_horizontal = expanding + raw_text = "View Controls" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'view_controls' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'view_controls' )]" + } + + button_tab = { + layoutpolicy_horizontal = expanding + raw_text = "Selectors" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'selectors' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'selectors' )]" + } + button_tab = { + layoutpolicy_horizontal = expanding + + raw_text = "Separators" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'separators' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'separators' )]" + } + + button_tab = { + layoutpolicy_horizontal = expanding + + raw_text = "Indicators" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'indicators' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'indicators' )]" + } + + button_tab = { + layoutpolicy_horizontal = expanding + + raw_text = "Text Formats" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'text_formats' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'text_formats' )]" + } + + button_tab = { + layoutpolicy_horizontal = expanding + raw_text = "Portraits" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'portraits' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'portraits' )]" + } + + button_tab = { + layoutpolicy_horizontal = expanding + raw_text = "Coat of Arms" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'coas' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'coas' )]" + } + + #button_tab = { + # layoutpolicy_horizontal = expanding + # + # raw_text = "Tooltips" + # + # onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'tooltips' )]" + # down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'tooltips' )]" + #} + + button_tab = { + layoutpolicy_horizontal = expanding + raw_text = "Animations" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'animations' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'animations' )]" + } + + button_tab = { + layoutpolicy_horizontal = expanding + raw_text = "Placeholders" + + onclick = "[GetVariableSystem.Set( 'ui_library_tabs', 'placeholders' )]" + down = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'placeholders' )]" + } + } + + scrollbox = { + name = "characters_scroll_area" + layoutpolicy_vertical = expanding + layoutpolicy_horizontal = expanding + + blockoverride "scrollbox_content" { + vbox = { + name = "action_buttons" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'action_buttons' )]" + + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "Action buttons represent an action you can DO, that change the game state or applies changes." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Primary Button" + } + + blockoverride "vce_area" + { + button_primary = { + raw_text = "Verb Noun" + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + + button_primary_big = { + raw_text = "Verb Noun" + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + } + + blockoverride "vce_desc" + { + raw_text = "The Primary Action of a View. There should only be at most one of these per view, though not all views need one. It represents the most important action you can take in the view. It should not have an icon, simply a text. The label should contain a verb, and ideally also a noun." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Secondary Button" + } + + blockoverride "vce_area" + { + button_round = { + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + + button_prison_ransom = { + parentanchor = center + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + } + + button_standard = { + + raw_text = "Verb Noun" + + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + + button_standard_big = { + raw_text = "Verb Noun" + + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + + } + + blockoverride "vce_desc" + { + raw_text = "Secondary Actions of a View. There can be many of these in a view. To save space, we sometimes use an icon-only version. The label should contain a verb, and ideally also a noun. Currently we use button_standard for this type, but possibly some of the button_standard should really be button_primary or button_tertiary" + } + + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Back Button" + } + + blockoverride "vce_area" + { + button_standard_back = { + raw_text = "Verb Noun" + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + } + + blockoverride "vce_desc" + { + raw_text = "This back button type should be used everytime there is a need for a back button, always including the icon to the left." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Tertiary Button" + } + + blockoverride "vce_area" + { + button_me = { + name = "button_me" + block "button_me" { + visible = yes + } + + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + + button_tertiary = { + raw_text = "Verb Noun" + + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + } + + blockoverride "vce_desc" + { + raw_text = "Rare and non-recommended Actions. Does not currently have an icon-only version. Could possibly have its own unique look instead of being the same as the frontend button" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Frontend Button" + } + + blockoverride "vce_area" + { + button_frontend = { + raw_text = "Verb Noun" + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + } + + blockoverride "vce_desc" + { + raw_text = "Action button for the Main Menu and Ingame Menu parts of the game. The same visual importance as a Secondary Button, but one that looks a bit more flavorful." + } + } + } + + vbox = { + name = "other_inputs" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'other_inputs' )]" + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "Other forms of input" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "editbox_standard" + } + + blockoverride "vce_area" + { + editbox_standard = {} + } + + blockoverride "vce_desc" + { + raw_text = "Regular editbox, allows entry of text on one or more lines" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "editbox_standard_with_label" + } + + blockoverride "vce_area" + { + editbox_standard_with_label = { + blockoverride "editbox_label" + { + raw_text = "Label:" + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Regular editbox, with a label. This is preferrable if there is space. The label is above to make sure there is maximum room for the text itself" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "editbox_search_field" + } + + blockoverride "vce_area" + { + editbox_search_field = { + } + } + + blockoverride "vce_desc" + { + raw_text = "Editbox for searching/filtering" + } + } + } + + vbox = { + name = "view_controls" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'view_controls' )]" + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "View Controls hide or show parts of a UI, but they have no direct effect on the game itself." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Tab" + } + + blockoverride "vce_area" + { + button_tab = { + raw_text = "Noun" + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + + } + + blockoverride "vce_desc" + { + raw_text = "A tab, gives a mutually exclusive choice of what subview to show. The text on them should simply be a Noun." + } + + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Vertical Tab" + } + + blockoverride "vce_area" + { + button_tab_vertical = { + raw_text = "Noun" + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + + } + + blockoverride "vce_desc" + { + raw_text = "Works the same as a tab, but the tabs are arranged vertically instead. Currently, the only way to toggle it 'selected' is to change the upframe property, instead of using the down property as you would expect." + } + + } + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Sidepanel Open" + } + + blockoverride "vce_area" + { + button_sidepanel_right = { + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + + blockoverride "button_text" + { + raw_text = "View Blablablas" + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Opens a sidepanel in a window. Has two versions, one opens a panel to the right, another to the left." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Expand/Collapse Heading" + } + + blockoverride "vce_area" + { + + + } + + blockoverride "vce_desc" + { + raw_text = "A heading you can click to expand/collapse what is under it." + } + + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Window Controls" + } + + blockoverride "vce_area" + { + buttons_window_control = { + blockoverride "button_go_to" { + visible = yes + } + + blockoverride "button_pin" + { + visible = yes + } + + blockoverride "button_me" { + visible = yes + } + + blockoverride "button_back" { + visible = yes + } + + blockoverride "button_minimize" { + visible = yes + } + } + + } + + blockoverride "vce_desc" + { + raw_text = "Controls in top right that acts on the UI itself, such as closing, minimizing, or pinning the UI for opening at a later time." + } + + } + } + + vbox = { + name = "selectors" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'selectors' )]" + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "Selectors allow the player to choose among a few options. Currently we make no distinction between if this selection affects the gamestate or just what is shown/hidden, or if it is applied immediately or requires some confirmation." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Checkbox" + } + + blockoverride "vce_area" + { + button_checkbox_label = {} + } + + blockoverride "vce_desc" + { + raw_text = "Used to choose between two states. Ideally a checkbox should always have a label, though we sometimes use button_checkbox if there is no room. Some Jomini interfaces do not use button_checkbox_label, mostly because it is too much work to change it." + } + + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Segmented Control" + } + + blockoverride "vce_area" + { + + + } + + blockoverride "vce_desc" + { + text = "" + } + + } + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Radiobutton" + } + + blockoverride "vce_area" + { + button_radio_label = {} + + } + + blockoverride "vce_desc" + { + raw_text = "Used to pick one of many options. We don't use this gui type currently because all our radiobuttons are in jomini" + } + + } + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "dropdown_menu_standard" + } + + blockoverride "vce_area" + { + dropdown_menu_standard = { + + + blockoverride "dropdown_properties" + { + datamodel = "[GetPlayer.GetCourt]" + } + + blockoverride "dropdown_size" + { + size = { 300 32 } + } + + blockoverride "dropdown_list_maxsize" + { + maximumsize = { 291 250 } + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Used to pick one from many options. Use this if space is limited. Note that you NEED a datamodel otherwise it will not even appear" + } + + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "widget_game_rule_option" + } + + blockoverride "vce_area" + { + text_single = { + raw_text = "this type spawns errors..." + } + # widget_game_rule_option = { + # } + } + + blockoverride "vce_desc" + { + raw_text = "Stepper only used in game rules, can be used in more places if needed" + } + } + } + + vbox = { + name = "portraits" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'portraits' )]" + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "Portraits are essentially Object Buttons for Characters, but we use a few different size so it nice to see them all in one place." + } + } + + hbox_text_entry = { + visible = "[Not(IsInGame)]" + blockoverride "hte_text" + { + raw_text = "You have to be in-game to see portraits and coat of arms" + } + } + + vbox_component_entry = { + visible = "[IsInGame]" + blockoverride "vce_name" + { + raw_text = "portrait_head_small" + } + + blockoverride "vce_area" + { + + portrait_head_small = { + datacontext = "[GetPlayer]" + } + } + + blockoverride "vce_desc" + { + raw_text = "Smallest size, for compact list entries" + } + } + + vbox_component_entry = { + visible = "[IsInGame]" + blockoverride "vce_name" + { + raw_text = "portrait_head" + } + + blockoverride "vce_area" + { + portrait_head = { + datacontext = "[GetPlayer.GetPlayerHeir]" + } + + } + + blockoverride "vce_desc" + { + text = "" + } + + } + vbox_component_entry = { + visible = "[IsInGame]" + blockoverride "vce_name" + { + raw_text = "portrait_shoulders" + } + + blockoverride "vce_area" + { + portrait_shoulders = { + datacontext = "[GetPlayer]" + } + + } + + blockoverride "vce_desc" + { + text = "" + } + + } + vbox_component_entry = { + visible = "[IsInGame]" + blockoverride "vce_name" + { + raw_text = "portrait_torso" + } + + blockoverride "vce_area" + { + portrait_torso = { + datacontext = "[GetPlayer.GetPlayerHeir]" + } + + } + + blockoverride "vce_desc" + { + text = "" + } + + } + vbox_component_entry = { + visible = "[IsInGame]" + blockoverride "vce_name" + { + raw_text = "portrait_body" + } + + blockoverride "vce_area" + { + portrait_body = { + datacontext = "[GetPlayer]" + } + + } + + blockoverride "vce_desc" + { + raw_text = "For full flavor where we have the room" + } + + } + + } + + vbox = { + name = "coas" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'coas' )]" + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "Coat of Arms are essentially Object Buttons for Titles, Realms, Houses and Dynasties, but we use a few different size so it nice to see them all in one place." + } + } + + hbox_text_entry = { + visible = "[Not(IsInGame)]" + blockoverride "hte_text" + { + raw_text = "You have to be in-game to see portraits and coat of arms" + } + } + + vbox_component_entry = { + visible = "[IsInGame]" + blockoverride "vce_name" + { + raw_text = "Realm Coat of Arms" + } + + blockoverride "vce_area" + { + hbox = { + vbox = { + coa_realm_tiny_crown = { + datacontext = "[GetPlayer]" + } + text_single = { + raw_text = "tiny" + } + } + + vbox = { + coa_realm_small_crown = { + datacontext = "[GetPlayer]" + } + text_single = { + raw_text = "small" + } + } + + vbox = { + coa_realm_medium_crown = { + datacontext = "[GetPlayer]" + } + text_single = { + raw_text = "medium" + } + } + + vbox = { + coa_realm_big_crown = { + datacontext = "[GetPlayer]" + } + text_single = { + raw_text = "big" + } + } + + vbox = { + coa_realm_huge_crown = { + datacontext = "[GetPlayer]" + } + text_single = { + raw_text = "huge" + } + } + } + + } + + blockoverride "vce_desc" + { + raw_text = "Represents a Realm. Has an suffix for '_crown' if a crown should be added so that the Rank of the Realm is clearer." + } + + } + + vbox_component_entry = { + visible = "[IsInGame]" + blockoverride "vce_name" + { + raw_text = "Title Coat of Arms" + } + + blockoverride "vce_area" + { + hbox = { + vbox = { + coa_title_tiny_crown = { + datacontext = "[GetPlayer.GetPrimaryTitle]" + } + text_single = { + raw_text = "tiny" + } + } + + vbox = { + coa_title_small_crown = { + datacontext = "[GetPlayer.GetPrimaryTitle]" + } + text_single = { + raw_text = "small" + } + } + + vbox = { + coa_title_medium_crown = { + datacontext = "[GetPlayer.GetPrimaryTitle]" + } + text_single = { + raw_text = "medium" + } + } + + vbox = { + coa_title_big_crown = { + datacontext = "[GetPlayer.GetPrimaryTitle]" + } + text_single = { + raw_text = "big" + } + } + } + + } + + blockoverride "vce_desc" + { + raw_text = "Represents a Title. Has an suffix for '_crown' if a crown should be added so that the Rank of the Title is clearer." + } + + } + + vbox_component_entry = { + visible = "[IsInGame]" + blockoverride "vce_name" + { + raw_text = "House Coat of Arms" + } + + blockoverride "vce_area" + { + hbox = { + vbox = { + coa_house_tiny = { + datacontext = "[GetPlayer.GetHouse]" + } + text_single = { + raw_text = "tiny" + } + } + + vbox = { + coa_house_small = { + datacontext = "[GetPlayer.GetHouse]" + } + text_single = { + raw_text = "small" + } + } + + vbox = { + coa_house_medium = { + datacontext = "[GetPlayer.GetHouse]" + } + text_single = { + raw_text = "medium" + } + } + + vbox = { + coa_house_big = { + datacontext = "[GetPlayer.GetHouse]" + } + text_single = { + raw_text = "big" + } + } + + vbox = { + coa_house_huge = { + datacontext = "[GetPlayer.GetHouse]" + } + text_single = { + raw_text = "huge" + } + } + } + + } + + blockoverride "vce_desc" + { + raw_text = "Represents a House." + } + + } + + vbox_component_entry = { + visible = "[IsInGame]" + blockoverride "vce_name" + { + raw_text = "Dynasty Coat of Arms" + } + + blockoverride "vce_area" + { + hbox = { + + vbox = { + coa_dynasty_tiny = { + datacontext = "[GetPlayer.GetHouse.GetDynasty]" + } + text_single = { + raw_text = "tiny" + } + } + + vbox = { + coa_dynasty_small = { + datacontext = "[GetPlayer.GetHouse.GetDynasty]" + } + text_single = { + raw_text = "small" + } + } + + vbox = { + coa_dynasty_medium = { + datacontext = "[GetPlayer.GetHouse.GetDynasty]" + } + text_single = { + raw_text = "medium" + } + } + + vbox = { + coa_dynasty_big = { + datacontext = "[GetPlayer.GetHouse.GetDynasty]" + } + text_single = { + raw_text = "big" + } + } + + vbox = { + coa_dynasty_huge = { + datacontext = "[GetPlayer.GetHouse.GetDynasty]" + } + text_single = { + raw_text = "huge" + } + } + } + + } + + blockoverride "vce_desc" + { + raw_text = "Represents a Dynasty." + } + + } + + + + + } + + vbox = { + name = "separators" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'separators' )]" + layoutpolicy_horizontal = expanding + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "text_label_center/left/right" + } + + blockoverride "vce_area" + { + text_label_left = { + layoutpolicy_horizontal = expanding + raw_text = "left" + } + text_label_center = { + layoutpolicy_horizontal = expanding + raw_text = "center" + } + text_label_right = { + layoutpolicy_horizontal = expanding + raw_text = "right" + } + } + + blockoverride "vce_desc" + { + raw_text = "Text Labels (left, right center)" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "divider and divider_light" + } + + blockoverride "vce_area" + { + divider_light = { + layoutpolicy_horizontal = expanding + } + divider = { + layoutpolicy_horizontal = expanding + } + } + + blockoverride "vce_desc" + { + raw_text = "Dividers, can be used both vertically and horizontally" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Background_Area" + } + + blockoverride "vce_area" + { + widget = { + size = { 150 150 } + + background = { + using = Background_Area + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Background" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Background_Area_Dark" + } + + blockoverride "vce_area" + { + widget = { + size = { 150 150 } + + background = { + using = Background_Area_Dark + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Background" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Background_Area_Light" + } + + blockoverride "vce_area" + { + widget = { + size = { 150 150 } + + background = { + using = Background_Area_Light + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Background" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Background_Frame" + } + + blockoverride "vce_area" + { + widget = { + size = { 150 150 } + + background = { + using = Background_Frame + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Background" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Background_Area_With_Header" + } + + blockoverride "vce_area" + { + widget = { + size = { 250 150 } + + background = { + using = Background_Area_With_Header + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Background" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Background_Area_With_Header_Dark" + } + + blockoverride "vce_area" + { + widget = { + size = { 250 150 } + + background = { + using = Background_Area_With_Header_Dark + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Background" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Background_Tab_Area" + } + + blockoverride "vce_area" + { + widget = { + size = { 250 150 } + + background = { + using = Background_Tab_Area + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Background for area under tabs." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Background_Letter" + } + + blockoverride "vce_area" + { + widget = { + size = { 250 150 } + + using = Background_Letter + } + } + + blockoverride "vce_desc" + { + raw_text = "Background" + } + } + } + + vbox = { + name = "indicators" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'indicators' )]" + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "Indicators are visual elements that show a certain value or percentage. They usually do not have a way for the player to perform an action." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Progressbar" + } + + blockoverride "vce_area" + { + progressbar_standard = { + layoutpolicy_horizontal = expanding + value = 40 + } + + progressbar_standard_transparent = { + layoutpolicy_horizontal = expanding + value = 40 + } + + progressbar_red = { + layoutpolicy_horizontal = expanding + value = 40 + } + + progressbar_green = { + layoutpolicy_horizontal = expanding + value = 40 + } + + progressbar_frozen = { + layoutpolicy_horizontal = expanding + value = 40 + } + + progressbar_frozen_transparent = { + layoutpolicy_horizontal = expanding + value = 40 + } + + } + + blockoverride "vce_desc" + { + raw_text = "Various standard progressbars" + } + + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Relative Bar" + } + + blockoverride "vce_area" + { + + + } + + blockoverride "vce_desc" + { + raw_text = "Like a Progressbar, but instead of indication progress towards some end, instead it shows the relative relation between two things, like the two sides in a Battle." + } + + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Indicator backgrounds" + } + + blockoverride "vce_area" + { + text_single = { + raw_text = "Status_Good" + + using = Status_Good + } + + text_single = { + raw_text = "Status_Mixed" + + using = Status_Mixed + } + + text_single = { + raw_text = "Status_Bad" + + using = Status_Bad + } + + text_single = { + raw_text = "Status_Highlight" + + using = Status_Highlight + } + } + + blockoverride "vce_desc" + { + raw_text = "Backgrounds that highlights whether a value is positive, negative, or if we just need to highlight something." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Indicator icons" + } + + blockoverride "vce_area" + { + + hbox = { + spacing = 20 + + hbox = { + icon = { + size = { 40 40 } + texture = "gfx/interface/icons/symbols/icon_alert.dds" + } + + warning_icon = { + size = { 40 40 } + } + } + + hbox = { + icon = { + size = { 40 40 } + texture = "gfx/interface/icons/symbols/icon_check.dds" + } + + icon = { + size = { 40 40 } + texture = "gfx/interface/icons/symbols/icon_cross.dds" + } + } + + hbox = { + icon = { + size = { 40 40 } + texture = "gfx/interface/icons/symbols/icon_arrow_green_down.dds" + mirror = vertical + } + + icon = { + size = { 40 40 } + texture = "gfx/interface/icons/symbols/icon_arrow_red_up.dds" + mirror = vertical + } + + icon = { + size = { 40 40 } + texture = "gfx/interface/icons/symbols/icon_arrow_up.dds" + mirror = vertical + } + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Symbols" + } + } + } + + vbox = { + name = "text_formats" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'text_formats' )]" + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "Text formats are defined in 'gui/textformatting.gui'. They are named based on their use rather than their look, so we can tweak them easily." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "High Contrast (##high)" + } + + blockoverride "vce_area" + { + + text_single = { + raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor" + default_format = "#high" + } + } + + blockoverride "vce_desc" + { + raw_text = "For text that needs to stand out" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Medium Contrast (##medium)" + } + + blockoverride "vce_area" + { + + text_single = { + raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor" + default_format = "#medium" + } + } + + blockoverride "vce_desc" + { + raw_text = "For most regular text" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Low Contrast (##low)" + } + + blockoverride "vce_area" + { + + text_single = { + raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor" + default_format = "#low" + } + } + + blockoverride "vce_desc" + { + raw_text = "For lowest contrast, mostly for short text and UI elements" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Weak (##weak)" + } + + blockoverride "vce_area" + { + + text_single = { + raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor" + default_format = "#weak" + } + } + + blockoverride "vce_desc" + { + raw_text = "Low contrast longer text that explains something that is not very important. For example, filling out an empty state, or instructing how a mechanic works." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Flavor (##flavor, ##F)" + } + + blockoverride "vce_area" + { + text_single = { + raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor" + default_format = "#flavor" + } + } + + blockoverride "vce_desc" + { + raw_text = "For Flavor texts for entities such as Faiths, Men-at-Arms types, etc." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Light background (##light_background)" + } + + blockoverride "vce_area" + { + using = Background_Letter + + text_single = { + raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor" + default_format = "#light_background" + } + } + + blockoverride "vce_desc" + { + raw_text = "For light backgrounds like letter events" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Help (##help)" + } + + blockoverride "vce_area" + { + + + text_single = { + raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor" + default_format = "#help" + } + } + + blockoverride "vce_desc" + { + raw_text = "For hints and tips in Alert/Suggestion/Current Situation Tooltips" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Instruction (##instruction, ##I)" + } + + blockoverride "vce_area" + { + + + text_single = { + raw_text = "Shift-click to add to selection" + default_format = "#I" + } + } + + blockoverride "vce_desc" + { + raw_text = "For instructions to the Player (not their Character), either referring to the input controls or asking them to make a choice." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Warning (##warning, ##X)" + } + + blockoverride "vce_area" + { + text_single = { + raw_text = "@warning_icon!You are a Child" + default_format = "#X" + } + } + + blockoverride "vce_desc" + { + raw_text = "For when things are wrong or buttons are disabled. Should always be paired with the Warning Text Icon" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Alert Trial (##alert_trial)" + } + + blockoverride "vce_area" + { + text_single = { + raw_text = "@alert_icon!Something might happen..." + default_format = "#alert_trial" + } + } + + blockoverride "vce_desc" + { + raw_text = "Trying this out, to show bad things that will happen in future? Or less severe stuff?" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Value (##value, ##V)" + } + + blockoverride "vce_area" + { + + + text_single = { + raw_text = "42" + default_format = "#V" + } + } + + blockoverride "vce_desc" + { + raw_text = "For important values that should stand out. Usually it means the value changes. Supports skimming a page for values." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Negative Value (##negative_value, ##N)" + } + + blockoverride "vce_area" + { + + + text_single = { + raw_text = "+42" + default_format = "#N" + } + } + + blockoverride "vce_desc" + { + raw_text = "For 'bad' values, for example if a Character gains Stress. Used by code to color the '+/-' number formatting" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Positive Value (##positive_value, ##P)" + } + + blockoverride "vce_area" + { + + + text_single = { + raw_text = "42" + default_format = "#P" + } + } + + blockoverride "vce_desc" + { + raw_text = "For 'good' values, for example if a Character gains Gold. Used by code to color the '+/-' number formatting" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Zero Value (##zero_value, ##Z)" + } + + blockoverride "vce_area" + { + text_single = { + raw_text = "0" + default_format = "#Z" + } + } + + blockoverride "vce_desc" + { + raw_text = "For values that are neither good nor bad. Used by code to color the '+/-' number formatting" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Clickable (##clickable)" + } + + blockoverride "vce_area" + { + + + text_single = { + raw_text = "Start Game" + default_format = "#clickable" + } + } + + blockoverride "vce_desc" + { + raw_text = "For interactible elements such as buttons" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Game Object Link (##game_link, ##L)" + } + + blockoverride "vce_area" + { + text_single = { + raw_text = "House Canossa" + default_format = "#L" + } + } + + blockoverride "vce_desc" + { + raw_text = "For Game Objects (Characters, Titles, Traits, etc). Hover over the text to get a (dynamic) tooltip of this specific instance" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Game Concept Link (##explanation_link, ##E)" + } + + blockoverride "vce_area" + { + + + text_single = { + raw_text = "Vassal" + default_format = "#E" + } + } + + blockoverride "vce_desc" + { + raw_text = "Used for Game Concepts, hover over this text to get a (static) explanation of something in the game." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Game Concept Link, Light background (##explanation_link_light_background, B)" + } + + blockoverride "vce_area" + { + using = Background_Letter + + text_single = { + raw_text = "Vassal" + default_format = "#B" + } + } + + blockoverride "vce_desc" + { + raw_text = "Game Concept Link for light backgrounds such as letter events" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Tooltip Heading (##tooltip_heading, ##T)" + } + + blockoverride "vce_area" + { + text_single = { + raw_text = "North Sea" + default_format = "#T" + } + } + + blockoverride "vce_desc" + { + raw_text = "Used in text tooltips for the heading that tells the player what they have put their mouse on" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Tooltip Subheading (##tooltip_subheading, ##S)" + } + + blockoverride "vce_area" + { + + + text_single = { + raw_text = "Effects" + default_format = "#S" + } + } + + blockoverride "vce_desc" + { + raw_text = "Some text tooltips are split into multiple segments, each headed by a subheading" + } + } + + + } + + vbox = { + name = "animations" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'animations' )]" + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "Animations used for window show and hide transitions." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Animation_FadeIn/Out_Standard" + } + + blockoverride "vce_area" + { + + debug_square = { + size = { 100 100 } + + state = { + name = a + next = b + trigger_on_create = yes + + using = Animation_FadeIn_Standard + delay = 1 + } + + state = { + name = b + next = a + + using = Animation_FadeOut_Standard + delay = 1 + } + } + } + + blockoverride "vce_desc" + { + raw_text = "0.25 second duration" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Animation_FadeIn/Out_Quick" + } + + blockoverride "vce_area" + { + + debug_square = { + size = { 100 100 } + + state = { + name = a + next = b + trigger_on_create = yes + + using = Animation_FadeIn_Quick + delay = 1 + } + + state = { + name = b + next = a + + using = Animation_FadeOut_Quick + delay = 1 + } + } + } + + blockoverride "vce_desc" + { + raw_text = "0.15 second duration" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Animation_Tab_Switch" + } + + blockoverride "vce_area" + { + + widget = { + size = { 100 100 } + + debug_square = { + visible = "[GetVariableSystem.Exists( 'ui_library_tab_switch_example' )]" + size = { 100 100 } + + using = Animation_Tab_Switch + } + + debug_square = { + visible = "[Not(GetVariableSystem.Exists( 'ui_library_tab_switch_example' ))]" + size = { 100 100 } + + using = Animation_Tab_Switch + + texture = "gfx/interface/colors/blue.dds" + } + } + + button_tertiary = { + onclick = "[GetVariableSystem.Toggle( 'ui_library_tab_switch_example' )]" + raw_text = "Test" + } + } + + blockoverride "vce_desc" + { + raw_text = "For switching between tabs or other view modes. Has 0 hide duration to prevent overlap." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Animation_Refresh" + } + + blockoverride "vce_area" + { + + widget = { + size = { 100 100 } + + debug_square = { + size = { 100 100 } + + using = Animation_Tab_Switch + + state = { + name = "ui_library_refresh_animation_test" + using = Animation_Refresh_FadeOut + } + + state = { + using = Animation_Refresh_FadeIn + } + } + } + + button_tertiary = { + onclick = "[PdxGuiTriggerAllAnimations('ui_library_refresh_animation_test')]" + raw_text = "Test" + } + } + + blockoverride "vce_desc" + { + raw_text = "For refreshing window content, ie. selecting between different faiths while the Faith Window is open." + } + } + } + + vbox = { + name = "placeholders" + visible = "[GetVariableSystem.HasValue( 'ui_library_tabs', 'placeholders' )]" + layoutpolicy_horizontal = expanding + + hbox_text_entry = { + blockoverride "hte_text" + { + raw_text = "This tab contains our debug and placeholder assets. You can use these whenever there is art missing or in early development to simply wireframe a UI." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "debug_square" + } + + blockoverride "vce_area" + { + debug_square = {} + } + + blockoverride "vce_desc" + { + raw_text = "Our classic vintage debug_square. This shouldn't have to be used as much anymore but it's there if you need it." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "icon_placeholder" + } + + blockoverride "vce_area" + { + icon_placeholder = { + size = { 30 30 } + } + } + + blockoverride "vce_desc" + { + raw_text = "A placeholder version of an icon which can be used when art isn't made yet. When hooking in icons which have not yet been made by art, simply copy the texture in the gfx/interface/_debug-folder and paste it in the correct game folder. Then change the name to the name specified in the related Jira." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "flat_icon_standard_placeholder" + } + + blockoverride "vce_area" + { + icon_flat_standard_placeholder = { + size = { 30 30 } + } + } + + blockoverride "vce_desc" + { + raw_text = "A placeholder version of an icon_flat_standard which can be used when art isn't made yet. This is just a black icon shape with a texture applied on top of it through script. When hooking in icons which have not yet been made by art, simply copy the texture in the gfx/interface/_debug-folder and paste it in the correct game folder. Then change the name to the name specified in the related Jira." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "button_icon_placeholder" + } + + blockoverride "vce_area" + { + button_icon_placeholder = { + size = { 30 30 } + } + } + + blockoverride "vce_desc" + { + raw_text = "A placeholder version of an icon_flat_standard which can be used when art isn't made yet. To find out when to use this button type go to the Action Buttons tab in this window for more information." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "button_round_placeholder" + } + + blockoverride "vce_area" + { + button_round_placeholder = { + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + + button_icon_placeholder = { + parentanchor = center + size = { 25 25 } + texture = "gfx/interface/_debug/icon_placeholder_01.dds" + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + } + } + + blockoverride "vce_desc" + { + raw_text = "A placeholder round button icon which can be used when icon isn't made by art yet. This is very similar to the button_icon type but with the addition of a round frame. To find out when to use this button type go to the Action Buttons tab in this window for more information." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "button_primary_placeholder & button_primary_big_placeholder" + } + + blockoverride "vce_area" + { + button_primary_placeholder = { + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + + button_primary_big_placeholder = { + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + } + + blockoverride "vce_desc" + { + raw_text = "Placeholder version of our primary button. To find out when to use this button type go to the Action Buttons tab in this window for more information." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "button_standard_placeholder & button_standard_big_placeholder" + } + + blockoverride "vce_area" + { + button_standard_placeholder = { + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + + button_standard_big_placeholder = { + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + } + + blockoverride "vce_desc" + { + raw_text = "Placeholder version of our standard button. To find out when to use this button type go to the Action Buttons tab in this window for more information." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "button_tertiary_placeholder" + } + + blockoverride "vce_area" + { + button_tertiary_placeholder = { + down = "[GetVariableSystem.Exists('ui_library_down_state')]" + } + } + + blockoverride "vce_desc" + { + raw_text = "Placeholder version of our tertiary button. To find out when to use this button type go to the Action Buttons tab in this window for more information." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Text_Placeholder & Debug Text Format (##D)" + } + + blockoverride "vce_area" + { + text_single = { + raw_text = "Flygande bäckasiner söka hwila på mjuka tuvor" + using = Text_Placeholder + } + } + + blockoverride "vce_desc" + { + raw_text = "Text template format that can be used on texts to make it pink and communicate it's not final. This can be applied to text inside our types: text_single, text_multi etc. To apply this template to text write: using = Text_Placeholder or use ( default_format = ##D )" + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Background_Frame_Placeholder" + } + + blockoverride "vce_area" + { + widget = { + size = { 100 100 } + + hbox = { + background = { + using = Background_Frame_Placeholder + } + } + } + + icon = { + size = { 200 100 } + + background = { + texture = "gfx/interface/illustrations/dlc/dlc_004.dds" + fittype = centercrop + using = Mask_Rough_Edges + } + + background = { + using = Background_Frame_Placeholder + } + } + } + + blockoverride "vce_desc" + { + raw_text = "A placeholder frame in our debug color. This can be put around a widget of most types to communicate it's a placeholder." + } + } + + vbox_component_entry = { + blockoverride "vce_name" + { + raw_text = "Texture_Placeholder" + } + + blockoverride "vce_area" + { + icon = { + size = { 200 100 } + + background = { + texture = "gfx/interface/illustrations/dlc/dlc_004.dds" + fittype = centercrop + using = Mask_Rough_Edges + using = Texture_Placeholder + } + } + } + + blockoverride "vce_desc" + { + raw_text = "Use the template to turn the whole texture pink if the frame isn't enough to communicate an illustration is just a placeholder." + } + } + } + } + } + } +} + +types ComponentLibrary +{ + type vbox_component_entry = vbox { + layoutpolicy_horizontal = expanding + margin_bottom = 10 + + text_single = { + name = "heading" + layoutpolicy_horizontal = expanding + margin = { 10 5 } + + using = Background_Area_Dark + + using = Font_Size_Medium + align = nobaseline + + block "vce_name" + { + raw_text = "vce_name" + } + } + + hbox = { + layoutpolicy_horizontal = expanding + + vbox = { + min_width = 500 + margin ={ 20 20 } + spacing = 10 + + block "vce_area" + { + + } + } + + hbox = { + layoutpolicy_horizontal = expanding + layoutpolicy_vertical = expanding + + margin = { 15 15 } + + background = { + using = Background_Area + } + + vbox = { + layoutpolicy_vertical = expanding + + text_multi = { + name = "desc" + + autoresize = yes + max_width = 700 + + block "vce_desc" + { + raw_text = "vce_desc" + } + } + + expand = {} + } + + expand = {} + } + } + } + + + type hbox_text_entry = hbox { + layoutpolicy_horizontal = expanding + + margin = { 15 15 } + margin_bottom = 25 + + text_multi = { + block "hte_text" + { + raw_text = "hte_text" + } + align = center + autoresize = yes + default_format = "#I" + max_width = 700 + } + } +} diff --git a/gui/shared/coat_of_arms.gui b/gui/shared/coat_of_arms.gui index b48d8904..4b143d13 100644 --- a/gui/shared/coat_of_arms.gui +++ b/gui/shared/coat_of_arms.gui @@ -33,7 +33,22 @@ types CoATypes ## Tiny Realm CoA type coa_realm_tiny_crown = coa_realm_tiny { blockoverride "crown" { - visible = "[And(And(Not(Character.GetPrimaryTitle.IsMercenaryCompany), Not(Character.GetPrimaryTitle.IsHolyOrder)), Not(Character.GetGovernment.IsType('landless_adventurer_government')))]" + visible = "[Not(Character.GetGovernment.HasGovernmentFlag( 'gov_uses_non_crown_coa'))]" + } + blockoverride "rep_crown" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_locked_to_elective')]" + } + blockoverride "holy_order" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_holy_order')]" + } + blockoverride "mercenary" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_mercenary')]" + } + blockoverride "adventurer" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_adventurer')]" + } + blockoverride "minority" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_minority')]" } } @@ -50,31 +65,37 @@ types CoATypes position = { 0 -24 } icon = { name = "adventurer_top_decor" - visible = "[GovernmentType.IsType('landless_adventurer_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_adventurer_topframe_28.dds" + block "adventurer" { + visible = no + } } icon = { name = "minority_top_decor" - visible = "[GovernmentType.IsType('landless_minority_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_minority_government_topframe_28.dds" + block "minority" { + visible = no + } } icon = { name = "mercenary" - visible = "[Character.GetPrimaryTitle.IsMercenaryCompany]" - visible_at_creation = no parentanchor = hcenter texture = "gfx/interface/coat_of_arms/mercenary_topframe_28.dds" + block "mercenary" { + visible = no + } } icon = { name = "holy_order" - visible = "[Character.GetPrimaryTitle.IsHolyOrder]" - visible_at_creation = no parentanchor = hcenter texture = "gfx/interface/coat_of_arms/holyorder_topframe_28.dds" + block "mercenary" { + visible = no + } } } @@ -93,6 +114,16 @@ types CoATypes visible = no } } + icon = { + name = "rep_crown" + texture = "gfx/interface/coat_of_arms/rep_crown_strip_28.dds" + frame = "[Character.GetPrimaryTitle.GetTierFrame]" + framesize = { 32 22 } + + block "rep_crown" { + visible = no + } + } widget = { visible = "[Character.HasLandedTitles]" @@ -144,7 +175,22 @@ types CoATypes ## Small Realm CoA type coa_realm_small_crown = coa_realm_small { blockoverride "crown" { - visible = "[And(And(Not(Character.GetPrimaryTitle.IsMercenaryCompany), Not(Character.GetPrimaryTitle.IsHolyOrder)), Not(Or(Character.GetGovernment.IsType('landless_adventurer_government')Character.GetGovernment.IsType('landless_minority_government'))))]" + visible = "[Not(Character.GetGovernment.HasGovernmentFlag( 'gov_uses_non_crown_coa'))]" + } + blockoverride "rep_crown" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_locked_to_elective')]" + } + blockoverride "holy_order" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_holy_order')]" + } + blockoverride "mercenary" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_mercenary')]" + } + blockoverride "adventurer" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_adventurer')]" + } + blockoverride "minority" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_minority')]" } } @@ -157,31 +203,37 @@ types CoATypes icon = { name = "adventurer_top_decor" - visible = "[Character.GetGovernment.IsType('landless_adventurer_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_adventurer_topframe_44.dds" + block "adventurer" { + visible = no + } } icon = { name = "minority_top_decor" - visible = "[Character.GetGovernment.IsType('landless_minority_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_minority_government_topframe_44.dds" + block "minority" { + visible = no + } } icon = { name = "mercenary" - visible = "[Character.GetPrimaryTitle.IsMercenaryCompany]" - visible_at_creation = no parentanchor = hcenter texture = "gfx/interface/coat_of_arms/mercenary_topframe_44.dds" + block "mercenary" { + visible = no + } } icon = { name = "holy_order" - visible = "[Character.GetPrimaryTitle.IsHolyOrder]" - visible_at_creation = no parentanchor = hcenter texture = "gfx/interface/coat_of_arms/holyorder_topframe_44.dds" + block "holy_order" { + visible = no + } } } @@ -206,6 +258,17 @@ types CoATypes visible = no } } + icon = { + name = "rep_crown" + parentanchor = hcenter + framesize = { 52 32 } + texture = "gfx/interface/coat_of_arms/rep_crown_strip_44.dds" + frame = "[Character.GetPrimaryTitle.GetTierFrame]" + + block "rep_crown" { + visible = no + } + } widget = { size = { 52 52 } @@ -257,7 +320,22 @@ types CoATypes ## Medium Realm CoA type coa_realm_medium_crown = coa_realm_medium { blockoverride "crown" { - visible = "[And(And(Not(Character.GetPrimaryTitle.IsMercenaryCompany), Not(Character.GetPrimaryTitle.IsHolyOrder)), Not(Or(Character.GetGovernment.IsType('landless_adventurer_government')Character.GetGovernment.IsType('landless_minority_government'))))]" + visible = "[Not(Character.GetGovernment.HasGovernmentFlag( 'gov_uses_non_crown_coa'))]" + } + blockoverride "rep_crown" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_locked_to_elective')]" + } + blockoverride "holy_order" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_holy_order')]" + } + blockoverride "mercenary" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_mercenary')]" + } + blockoverride "adventurer" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_adventurer')]" + } + blockoverride "minority" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_minority')]" } } @@ -286,34 +364,51 @@ types CoATypes visible = no } } + icon = { + name = "rep_crown" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/rep_crown_strip_62.dds" + frame = "[Character.GetPrimaryTitle.GetTierFrame]" + framesize = { 64 40 } + + block "rep_crown" { + visible = no + } + } icon = { name = "adventurer_top_decor" - visible = "[GovernmentType.IsType('landless_adventurer_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_adventurer_topframe_62.dds" + block "adventurer" { + visible = no + } } icon = { name = "minority_top_decor" - visible = "[GovernmentType.IsType('landless_minority_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_minority_government_topframe_62.dds" + block "minority" { + visible = no + } } icon = { name = "mercenary" - visible = "[Character.GetPrimaryTitle.IsMercenaryCompany]" - visible_at_creation = no parentanchor = hcenter texture = "gfx/interface/coat_of_arms/mercenary_topframe_62.dds" + block "mercenary" { + visible = no + } } icon = { name = "holy_order" - visible = "[Character.GetPrimaryTitle.IsHolyOrder]" - visible_at_creation = no parentanchor = hcenter texture = "gfx/interface/coat_of_arms/holyorder_topframe_62.dds" + block "holy_order" { + visible = no + } } widget = { @@ -369,10 +464,24 @@ types CoATypes ## Big Realm CoA type coa_realm_big_crown = coa_realm_big { blockoverride "crown" { - visible = "[And(And(Not(Character.GetPrimaryTitle.IsMercenaryCompany), Not(Character.GetPrimaryTitle.IsHolyOrder)), Not(Or(Character.GetGovernment.IsType('landless_adventurer_government')Character.GetGovernment.IsType('landless_minority_government'))))]" + visible = "[Not(Character.GetGovernment.HasGovernmentFlag( 'gov_uses_non_crown_coa'))]" + } + blockoverride "rep_crown" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_locked_to_elective')]" + } + blockoverride "holy_order" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_holy_order')]" + } + blockoverride "mercenary" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_mercenary')]" + } + blockoverride "adventurer" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_adventurer')]" + } + blockoverride "minority" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_minority')]" } } - type coa_realm_big = button_group { using = CoA_Realm_Defaults @@ -397,34 +506,51 @@ types CoATypes visible = no } } + icon = { + name = "rep_crown" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/rep_crown_strip_86.dds" + frame = "[Character.GetPrimaryTitle.GetTierFrame]" + framesize = { 96 60 } + + block "rep_crown" { + visible = no + } + } icon = { name = "adventurer_top_decor" - visible = "[GovernmentType.IsType('landless_adventurer_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_adventurer_topframe_86.dds" + block "adventurer" { + visible = no + } } icon = { name = "minority_top_decor" - visible = "[GovernmentType.IsType('landless_minority_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_minority_government_topframe_86.dds" + block "minority" { + visible = no + } } icon = { name = "mercenary" - visible = "[Character.GetPrimaryTitle.IsMercenaryCompany]" - visible_at_creation = no parentanchor = hcenter texture = "gfx/interface/coat_of_arms/mercenary_topframe_86.dds" + block "mercenary" { + visible = no + } } icon = { name = "holy_order" - visible = "[Character.GetPrimaryTitle.IsHolyOrder]" - visible_at_creation = no parentanchor = hcenter texture = "gfx/interface/coat_of_arms/holyorder_topframe_86.dds" + block "holy_order" { + visible = no + } } widget = { @@ -480,10 +606,24 @@ types CoATypes ## Huge Realm CoA type coa_realm_huge_crown = coa_realm_huge { blockoverride "crown" { - visible = "[And(And(Not(Character.GetPrimaryTitle.IsMercenaryCompany), Not(Character.GetPrimaryTitle.IsHolyOrder)), Not(Or(Character.GetGovernment.IsType('landless_adventurer_government')Character.GetGovernment.IsType('landless_minority_government'))))]" + visible = "[Not(Character.GetGovernment.HasGovernmentFlag( 'gov_uses_non_crown_coa'))]" + } + blockoverride "rep_crown" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_locked_to_elective')]" + } + blockoverride "holy_order" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_holy_order')]" + } + blockoverride "mercenary" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_mercenary')]" + } + blockoverride "adventurer" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_adventurer')]" + } + blockoverride "minority" { + visible = "[Character.GetGovernment.HasGovernmentFlag( 'government_is_landless_minority')]" } } - type coa_realm_huge = button_group { using = CoA_Realm_Defaults @@ -508,33 +648,51 @@ types CoATypes visible = no } } + icon = { + name = "rep_crown" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/rep_crown_strip_115.dds" + frame = "[Character.GetPrimaryTitle.GetTierFrame]" + framesize = { 128 80 } + + block "rep_crown" { + visible = no + } + } icon = { name = "adventurer_top_decor" - visible = "[GovernmentType.IsType('landless_adventurer_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_adventurer_topframe_115.dds" + block "adventurer" { + visible = no + } } icon = { name = "minority_top_decor" - visible = "[GovernmentType.IsType('landless_minority_government')]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/landless_minority_government_topframe_115.dds" + block "minority" { + visible = no + } } icon = { name = "mercenary" - visible = "[Character.GetPrimaryTitle.IsMercenaryCompany]" parentanchor = hcenter texture = "gfx/interface/coat_of_arms/mercenary_topframe_115.dds" + block "mercenary" { + visible = no + } } icon = { name = "holy_order" - visible = "[Character.GetPrimaryTitle.IsHolyOrder]" - visible_at_creation = no parentanchor = hcenter texture = "gfx/interface/coat_of_arms/holyorder_topframe_115.dds" + block "holy_order" { + visible = no + } } widget = { @@ -619,9 +777,25 @@ types CoATypes ## Tiny Title CoA type coa_title_tiny_crown = coa_title_tiny { - blockoverride "crown" {} + blockoverride "crown" { + visible = "[Not(Title.GetHolder.GetGovernment.HasGovernmentFlag( 'gov_uses_non_crown_coa'))]" + } + blockoverride "rep_crown" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_locked_to_elective')]" + } + blockoverride "holy_order" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_holy_order')]" + } + blockoverride "mercenary" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_mercenary')]" + } + blockoverride "adventurer" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_landless_adventurer')]" + } + blockoverride "minority" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_landless_minority')]" + } } - type coa_title_tiny = button_group { using = CoA_Title_Defaults @@ -632,6 +806,11 @@ types CoATypes position = { 0 -10 } } + block "government_datacontext" + { + datacontext = "[Character.GetGovernment]" + } + spacing = -4 ignoreinvisible = yes @@ -646,7 +825,52 @@ types CoATypes visible = no } } + icon = { + name = "rep_crown" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/rep_crown_strip_28.dds" + frame = "[Title.GetTierFrame]" + framesize = { 32 22 } + block "rep_crown" { + visible = no + } + } + + icon = { + name = "adventurer_top_decor" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/landless_adventurer_topframe_28.dds" + block "adventurer" { + visible = no + } + } + + icon = { + name = "minority_top_decor" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/landless_minority_government_topframe_28.dds" + block "minority" { + visible = no + } + } + icon = { + name = "mercenary" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/mercenary_topframe_28.dds" + block "mercenary" { + visible = no + } + } + + icon = { + name = "holy_order" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/holyorder_topframe_28.dds" + block "holy_order" { + visible = no + } + } widget = { parentanchor = hcenter size = { 36 36 } @@ -682,11 +906,25 @@ types CoATypes ## Small Title CoA type coa_title_small_crown = coa_title_small { - blockoverride "crown" {} + blockoverride "crown" { + visible = "[Not(Title.GetHolder.GetGovernment.HasGovernmentFlag( 'gov_uses_non_crown_coa'))]" + } + blockoverride "rep_crown" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_locked_to_elective')]" + } + blockoverride "holy_order" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_holy_order')]" + } + blockoverride "mercenary" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_mercenary')]" + } + blockoverride "adventurer" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_landless_adventurer')]" + } + blockoverride "minority" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_landless_minority')]" + } } - - # type coa_title_small = coa_title_tiny {} - type coa_title_small = button_group { using = CoA_Title_Defaults @@ -695,6 +933,11 @@ types CoATypes spacing = -3 ignoreinvisible = yes + block "government_datacontext" + { + datacontext = "[Character.GetGovernment]" + } + icon = { name = "crown" parentanchor = hcenter @@ -706,7 +949,51 @@ types CoATypes visible = no } } + icon = { + name = "rep_crown" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/rep_crown_strip_44.dds" + frame = "[Title.GetTierFrame]" + framesize = { 52 32 } + block "rep_crown" { + visible = no + } + } + icon = { + name = "adventurer_top_decor" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/landless_adventurer_topframe_44.dds" + block "adventurer" { + visible = no + } + } + + icon = { + name = "minority_top_decor" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/landless_minority_government_topframe_44.dds" + block "minority" { + visible = no + } + } + icon = { + name = "mercenary" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/mercenary_topframe_44.dds" + block "mercenary" { + visible = no + } + } + + icon = { + name = "holy_order" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/holyorder_topframe_44.dds" + block "holy_order" { + visible = no + } + } widget = { parentanchor = hcenter size = { 52 52 } @@ -740,7 +1027,24 @@ types CoATypes ## Medium Title CoA type coa_title_medium_crown = coa_title_medium { - blockoverride "crown" {} + blockoverride "crown" { + visible = "[Not(Title.GetHolder.GetGovernment.HasGovernmentFlag( 'gov_uses_non_crown_coa'))]" + } + blockoverride "rep_crown" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_locked_to_elective')]" + } + blockoverride "holy_order" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_holy_order')]" + } + blockoverride "mercenary" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_mercenary')]" + } + blockoverride "adventurer" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_landless_adventurer')]" + } + blockoverride "minority" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_landless_minority')]" + } } type coa_title_medium = button_group { @@ -751,6 +1055,11 @@ types CoATypes spacing = -3 ignoreinvisible = yes + block "government_datacontext" + { + datacontext = "[Character.GetGovernment]" + } + icon = { name = "crown" parentanchor = hcenter @@ -762,6 +1071,51 @@ types CoATypes visible = no } } + icon = { + name = "rep_crown" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/rep_crown_strip_62.dds" + frame = "[Title.GetTierFrame]" + framesize = { 64 40 } + + block "rep_crown" { + visible = no + } + } + icon = { + name = "adventurer_top_decor" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/landless_adventurer_topframe_62.dds" + block "adventurer" { + visible = no + } + } + + icon = { + name = "minority_top_decor" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/landless_minority_government_topframe_62.dds" + block "minority" { + visible = no + } + } + icon = { + name = "mercenary" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/mercenary_topframe_62.dds" + block "mercenary" { + visible = no + } + } + + icon = { + name = "holy_order" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/holyorder_topframe_62.dds" + block "holy_order" { + visible = no + } + } widget = { parentanchor = hcenter @@ -796,7 +1150,24 @@ types CoATypes ## Big Title CoA type coa_title_big_crown = coa_title_big { - blockoverride "crown" {} + blockoverride "crown" { + visible = "[Not(Title.GetHolder.GetGovernment.HasGovernmentFlag( 'gov_uses_non_crown_coa'))]" + } + blockoverride "rep_crown" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_locked_to_elective')]" + } + blockoverride "holy_order" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_holy_order')]" + } + blockoverride "mercenary" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_mercenary')]" + } + blockoverride "adventurer" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_landless_adventurer')]" + } + blockoverride "minority" { + visible = "[Title.GetHolder.GetGovernment.HasGovernmentFlag( 'government_is_landless_minority')]" + } } type coa_title_big = button_group { @@ -807,6 +1178,11 @@ types CoATypes spacing = -3 ignoreinvisible = yes + block "government_datacontext" + { + datacontext = "[Character.GetGovernment]" + } + icon = { name = "crown" parentanchor = hcenter @@ -818,6 +1194,51 @@ types CoATypes visible = no } } + icon = { + name = "rep_crown" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/rep_crown_strip_115.dds" + frame = "[Title.GetTierFrame]" + framesize = { 128 80 } + + block "rep_crown" { + visible = no + } + } + icon = { + name = "adventurer_top_decor" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/landless_adventurer_topframe_115.dds" + block "adventurer" { + visible = no + } + } + + icon = { + name = "minority_top_decor" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/landless_minority_government_topframe_115.dds" + block "minority" { + visible = no + } + } + icon = { + name = "mercenary" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/mercenary_topframe_115.dds" + block "mercenary" { + visible = no + } + } + + icon = { + name = "holy_order" + parentanchor = hcenter + texture = "gfx/interface/coat_of_arms/holyorder_topframe_115.dds" + block "holy_order" { + visible = no + } + } widget = { parentanchor = hcenter