Common folder updating pt 1

This commit is contained in:
trashmasteruni 2025-12-05 11:23:45 +01:00
parent 275f2c17ec
commit 5d7109e23f
14 changed files with 2968 additions and 543 deletions

View file

@ -0,0 +1,257 @@

culture_era_tribal = {
year = 2100
}
culture_era_early_medieval = {
year = 2300
invalid_for_government = tribal_government
invalid_for_government = nomad_government
invalid_for_government = herder_government
invalid_for_government = wanua_government
culture_modifier = {
culture_tradition_max_add = 1
}
custom = more_expensive_court_positions
custom = increased_activity_cost
##################################################
# MAA Upgrades
# Cultural
## Longbowmen
maa_upgrade = {
men_at_arms = longbowmen
damage = 10
toughness = 2
}
## Gakgung Archers
maa_upgrade = {
men_at_arms = gakgung_archers
damage = 5
toughness = 2
}
# Accolade
## Accolade Archers
maa_upgrade = {
men_at_arms = accolade_maa_archers
damage = 6
}
## Accolade Skirmishers
maa_upgrade = {
men_at_arms = accolade_maa_skirmishers
damage = 6
}
## Accolade Pikes
maa_upgrade = {
men_at_arms = accolade_maa_pikes
damage = 6
}
## Accolade Outriders
maa_upgrade = {
men_at_arms = accolade_maa_outriders
pursuit = 6
}
## Accolade Cameliers
maa_upgrade = {
men_at_arms = accolade_maa_cameliers
pursuit = 6
}
}
culture_era_high_medieval = {
year = 2500
invalid_for_government = tribal_government
invalid_for_government = nomad_government
invalid_for_government = herder_government
invalid_for_government = wanua_government
culture_modifier = {
culture_tradition_max_add = 1
}
character_modifier = {
mercenary_hire_cost_mult = 0.15
}
custom = more_expensive_court_positions
custom = increased_activity_cost
##################################################
# MAA Upgrades
# Cultural
## Longbowmen
maa_upgrade = {
men_at_arms = longbowmen
damage = 10
toughness = 2
}
## Gakgung Archers
maa_upgrade = {
men_at_arms = gakgung_archers
damage = 6
toughness = 2
}
## Fire Lancers
maa_upgrade = {
men_at_arms = fire_lancers
damage = 5
screen = 3
}
# Accolade
## Accolade Archers
maa_upgrade = {
men_at_arms = accolade_maa_archers
damage = 4
toughness = 4
}
## Accolade Skirmishers
maa_upgrade = {
men_at_arms = accolade_maa_skirmishers
damage = 4
toughness = 4
pursuit = 4
screen = 4
}
## Accolade Pikes
maa_upgrade = {
men_at_arms = accolade_maa_pikes
damage = 4
toughness = 4
}
## Accolade Outriders
maa_upgrade = {
men_at_arms = accolade_maa_outriders
damage = 4
toughness = 4
pursuit = 4
screen = 4
}
## Accolade Vanguards
maa_upgrade = {
men_at_arms = accolade_maa_vanguards
damage = 10
toughness = 10
}
## Accolade Lancers
maa_upgrade = {
men_at_arms = accolade_maa_lancers
pursuit = 10
}
## Accolade Cameliers
maa_upgrade = {
men_at_arms = accolade_maa_cameliers
damage = 4
toughness = 4
pursuit = 4
screen = 4
}
}
culture_era_late_medieval = {
year = 2750
invalid_for_government = tribal_government
invalid_for_government = nomad_government
invalid_for_government = herder_government
invalid_for_government = wanua_government
culture_modifier = {
culture_tradition_max_add = 1
}
character_modifier = {
mercenary_hire_cost_mult = 0.15
}
custom = more_expensive_court_positions
custom = increased_activity_cost
##################################################
# MAA Upgrades
# Cultural
## Longbowmen
maa_upgrade = {
men_at_arms = longbowmen
damage = 10
toughness = 2
}
## Gakgung Archers
maa_upgrade = {
men_at_arms = gakgung_archers
damage = 8
toughness = 2
}
## Fire Lancers
maa_upgrade = {
men_at_arms = fire_lancers
damage = 8
screen = 5
}
# Accolade
## Accolade Archers
maa_upgrade = {
men_at_arms = accolade_maa_archers
damage = 10
toughness = 10
}
## Accolade Skirmishers
maa_upgrade = {
men_at_arms = accolade_maa_skirmishers
damage = 6
toughness = 6
pursuit = 4
screen = 4
}
## Accolade Pikes
maa_upgrade = {
men_at_arms = accolade_maa_pikes
damage = 10
toughness = 6
}
## Accolade Outriders
maa_upgrade = {
men_at_arms = accolade_maa_outriders
damage = 16
toughness = 16
pursuit = 20
screen = 6
}
## Accolade Vanguards
maa_upgrade = {
men_at_arms = accolade_maa_vanguards
damage = 10
toughness = 10
}
## Accolade Lancers
maa_upgrade = {
men_at_arms = accolade_maa_lancers
screen = 20
}
## Accolade Crossbowers
maa_upgrade = {
men_at_arms = accolade_maa_crossbowers
damage = 10
toughness = 10
}
## Accolade Cameliers
maa_upgrade = {
men_at_arms = accolade_maa_cameliers
damage = 16
toughness = 6
pursuit = 20
screen = 6
}
}

View file

@ -0,0 +1,14 @@
name_of_culture_era = { # Key to the name
year = number # Year when the era can start getting base spread. Must be 0 or greater. Error if it's not set.
character_modifier = {} # Modifiers of this culture era. This will be applied to the characters of that cuture with valid government.
culture_modifier = {} # Modifier of this culture era applied to the culture itself.
county_modifier = {} # Modifier of this culture era applied to counties of the culture.
province_modifier = {} # Modifier of this culture era applied to provinces in a county of the culture.
unlock_building = key # key of a building that can be unlocked. There can be more than one. This is only to show on the tooltip, it has to be maulually blocked on the object itself.
unlock_decision = key # key of a decicion that can be unlocked. There can be more than one. This is only to show on the tooltip, it has to be maulually blocked on the object itself.
unlock_casus_belli = key # key of a casus belli that can be unlocked. There can be more than one. This is only to show on the tooltip, it has to be maulually blocked on the object itself.
unlock_maa = key # key of a regiment that can be unlocked. There can be more than one. This is only to show on the tooltip, it has to be maulually blocked on the object itself.
unlock_law = key # key of a law that can be unlocked. There can be more than one. This is only to show on the tooltip, it has to be maulually blocked on the object itself.
invalid_for_government = key # key of a govebrnment that can't use the innovations in this era. There can be more than one.
custom = loc_key # A custom effect description that will be added to the list of effects
}

View file

@ -0,0 +1,372 @@
#### Local Types ####
@administration_1 = "gfx/interface/icons/culture_innovations/innovation_administration_01.dds"
@administration_2 = "gfx/interface/icons/culture_innovations/innovation_administration_02.dds"
@administration_3 = "gfx/interface/icons/culture_innovations/innovation_administration_03.dds"
@civil_construction_1 = "gfx/interface/icons/culture_innovations/innovation_civil_construction_01.dds"
@civil_construction_2 = "gfx/interface/icons/culture_innovations/innovation_civil_construction_02.dds"
@leadership_1 = "gfx/interface/icons/culture_innovations/innovation_leadership_01.dds"
@leadership_2 = "gfx/interface/icons/culture_innovations/innovation_leadership_02.dds"
@raised_banner = "gfx/interface/icons/culture_innovations/innovation_raised_banner.dds"
@fortifications = "gfx/interface/icons/culture_innovations/innovation_fortifications.dds"
@siege_weapons = "gfx/interface/icons/culture_innovations/innovation_siege_weapons.dds"
@levy_building = "gfx/interface/icons/culture_innovations/innovation_levy_building.dds"
@maa_01 = "gfx/interface/icons/culture_innovations/innovation_maa_01.dds"
@maa_02 = "gfx/interface/icons/culture_innovations/innovation_maa_02.dds"
@weapons_and_armor_01 = "gfx/interface/icons/culture_innovations/innovation_weapons_and_armor_01.dds"
@weapons_and_armor_02 = "gfx/interface/icons/culture_innovations/innovation_weapons_and_armor_02.dds"
@knight = "gfx/interface/icons/culture_innovations/innovation_knight.dds"
@hird = "gfx/interface/icons/culture_innovations/innovation_hird.dds"
@longboats = "gfx/interface/icons/culture_innovations/innovation_longboats.dds"
@majesty_01 = "gfx/interface/icons/culture_innovations/innovation_majesty_01.dds"
@majesty_02 = "gfx/interface/icons/culture_innovations/innovation_majesty_02.dds"
@majesty_03 = "gfx/interface/icons/culture_innovations/innovation_majesty_03.dds"
@nobility_01 = "gfx/interface/icons/culture_innovations/innovation_nobility_01.dds"
@nobility_02 = "gfx/interface/icons/culture_innovations/innovation_nobility_02.dds"
@nobility_03 = "gfx/interface/icons/culture_innovations/innovation_nobility_03.dds"
@nobility_04 = "gfx/interface/icons/culture_innovations/innovation_nobility_04.dds"
@gunpowder = "gfx/interface/icons/culture_innovations/innovation_gunpowder.dds"
@innovation_farm = "gfx/interface/icons/culture_innovations/innovation_farm.dds"
@coins = "gfx/interface/icons/culture_innovations/innovation_welfare_01.dds"
@misc_inventions = "gfx/interface/icons/culture_innovations/innovation_misc_inventions.dds"
@coinage = "gfx/interface/icons/culture_innovations/innovation_coinage.dds"
@horseshoes = "gfx/interface/icons/culture_innovations/innovation_horseshoes.dds"
@cloud_ladder = "gfx/interface/icons/culture_innovations/innovation_auh_cloud_ladder.dds"
@camel = "gfx/interface/icons/culture_innovations/innovation_camel.dds"
@elephant = "gfx/interface/icons/culture_innovations/innovation_elephant.dds"
@special_maa_01 = "gfx/interface/icons/culture_innovations/innovation_special_maa_01.dds"
@special_maa_02 = "gfx/interface/icons/culture_innovations/innovation_special_maa_02.dds"
#culture_group_military
innovation_battlements = {
skill = stewardship
group = culture_group_military
culture_era = culture_era_early_medieval
icon = @fortifications
custom = unlock_early_medieval_fortification_buildings
custom = unlock_fortification_rights_contract
character_modifier = {
men_at_arms_maintenance = -0.05
}
flag = global_regular
flag = early_medieval_era_regular
}
innovation_mangonel = {
skill = learning
group = culture_group_military
culture_era = culture_era_early_medieval
icon = @siege_weapons
custom = unlock_siege_maa_second_level
custom = eligible_accolade_besieger_attribute
asset = {
trigger = {
OR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_japonic
has_cultural_pillar = heritage_korean
}
}
icon = @cloud_ladder
name = innovation_mangonel_chinese
}
flag = global_regular
flag = early_medieval_era_regular
}
innovation_burhs = { # Stone Forts in-game
skill = stewardship
group = culture_group_military
culture_era = culture_era_early_medieval
icon = @civil_construction_2
# Suki (柵)
asset = {
trigger = {
has_cultural_pillar = heritage_japonic
}
icon = @civil_construction_2
name = innovation_burhs_japan
}
# Wu Bi/Wū Bì (塢壁)
asset = {
trigger = {
has_cultural_pillar = heritage_chinese
}
icon = @civil_construction_2
name = innovation_burhs_chinese
}
# Burhs
asset = {
trigger = {
has_cultural_pillar = heritage_west_germanic
}
icon = @civil_construction_2
name = innovation_burhs_anglo_saxon
}
# Castra
asset = {
trigger = {
has_cultural_pillar = heritage_latin
}
icon = @civil_construction_2
name = innovation_burhs_latin
}
custom = unlock_early_medieval_military_buildings
character_modifier = {
levy_size = 0.05
}
flag = global_regular
flag = early_medieval_era_regular
}
innovation_house_soldiers = {
skill = martial
group = culture_group_military
culture_era = culture_era_early_medieval
icon = @maa_01
character_modifier = {
men_at_arms_cap = 1
men_at_arms_limit = 3
}
flag = global_regular
flag = early_medieval_era_regular
}
innovation_horseshoes = {
skill = martial
group = culture_group_military
culture_era = culture_era_early_medieval
icon = @horseshoes
character_modifier = {
movement_speed = 0.1
}
flag = global_regular
flag = early_medieval_era_regular
}
innovation_arched_saddle = {
skill = martial
group = culture_group_military
culture_era = culture_era_early_medieval
icon = @knight
custom = unlock_maa_armored_horsemen
custom = eligible_accolade_lancer_attribute
flag = global_regular
flag = early_medieval_era_regular
}
#culture_group_civic
innovation_hereditary_rule = {
skill = diplomacy
group = culture_group_civic
culture_era = culture_era_early_medieval
icon = @majesty_02
unlock_law = partition_succession_law
flag = global_regular
flag = early_medieval_era_regular
}
innovation_manorialism = {
skill = stewardship
group = culture_group_civic
culture_era = culture_era_early_medieval
icon = @fortifications
custom = unlock_early_medieval_economic_buildings
custom = more_parochial
character_modifier = {
build_speed = -0.1
}
flag = global_regular
flag = early_medieval_era_regular
}
innovation_development_02 = {
skill = stewardship
group = culture_group_civic
culture_era = culture_era_early_medieval
icon = @nobility_03
custom = reduce_develop_county_penalty_02
flag = global_regular
flag = early_medieval_era_regular
}
innovation_currency_02 = {
skill = stewardship
group = culture_group_civic
culture_era = culture_era_early_medieval
icon = @coinage
custom = unlock_coinage_rights_contract
character_modifier = {
development_growth_factor = 0.1
}
flag = global_regular
flag = early_medieval_era_regular
}
innovation_royal_prerogative = {
skill = diplomacy
group = culture_group_civic
culture_era = culture_era_early_medieval
icon = @majesty_01
unlock_law = crown_authority_2
unlock_law = crown_authority_3
custom = more_courtly
flag = global_regular
flag = early_medieval_era_regular
}
innovation_chronicle_writing = {
skill = learning
group = culture_group_civic
culture_era = culture_era_early_medieval
icon = @administration_3
custom = multiple_claim_wars
custom = cb_discount_prestige_10
custom = more_zealot
flag = global_regular
flag = early_medieval_era_regular
}
innovation_armilary_sphere = {
skill = learning
group = culture_group_civic
culture_era = culture_era_early_medieval
icon = @misc_inventions
character_modifier = {
naval_movement_speed_mult = 0.25
}
flag = global_regular
flag = early_medieval_era_regular
}
innovation_baliffs = { # Magistrates in-game
skill = stewardship
group = culture_group_civic
culture_era = culture_era_early_medieval
icon = @leadership_1
asset = {
trigger = {
OR = {
has_cultural_pillar = heritage_frankish
has_cultural_pillar = heritage_central_germanic
has_cultural_pillar = heritage_west_germanic
has_cultural_pillar = heritage_iberian
has_cultural_pillar = heritage_brythonic
has_cultural_pillar = heritage_goidelic
}
}
icon = @leadership_1
name = innovation_baliffs_bailiffs
}
asset = {
trigger = {
OR = {
has_cultural_pillar = heritage_latin
has_cultural_pillar = heritage_byzantine
}
}
icon = @leadership_1
name = innovation_baliffs_latin
}
county_modifier = {
building_slot_add = 1
}
character_modifier = {
tax_slot_add = 1
}
custom = more_glory_hounds
flag = global_regular
flag = early_medieval_era_regular
}
### culture_group_regional ###
innovation_reconquista = {
skill = martial
group = culture_group_military
culture_era = culture_era_early_medieval
region = world_europe_west_iberia
icon = @leadership_2
custom = cb_discount_piety_10
custom = more_zealot
character_modifier = {
monthly_piety_gain_mult = 0.1
}
flag = global_regional
flag = early_medieval_era_regional
}
innovation_stem_duchies = {
skill = diplomacy
group = culture_group_civic
culture_era = culture_era_early_medieval
region = custom_europe_western_germany
icon = @majesty_03
custom = same_culture_group_reduced_factionalism
character_modifier = {
courtly_opinion = 5
}
flag = global_regional
flag = early_medieval_era_regional
}
innovation_ghilman = {
skill = martial
group = culture_group_military
culture_era = culture_era_early_medieval
region = world_middle_east_arabia
icon = @maa_02
character_modifier = {
men_at_arms_maintenance = -0.15
}
flag = global_regional
flag = early_medieval_era_regional
}

View file

@ -0,0 +1,69 @@
#### Local Types ####
@administration_1 = "gfx/interface/icons/culture_innovations/innovation_administration_01.dds"
@administration_2 = "gfx/interface/icons/culture_innovations/innovation_administration_02.dds"
@administration_3 = "gfx/interface/icons/culture_innovations/innovation_administration_03.dds"
@civil_construction_1 = "gfx/interface/icons/culture_innovations/innovation_civil_construction_01.dds"
@civil_construction_2 = "gfx/interface/icons/culture_innovations/innovation_civil_construction_02.dds"
@leadership_1 = "gfx/interface/icons/culture_innovations/innovation_leadership_01.dds"
@leadership_2 = "gfx/interface/icons/culture_innovations/innovation_leadership_02.dds"
@raised_banner = "gfx/interface/icons/culture_innovations/innovation_raised_banner.dds"
@fortifications = "gfx/interface/icons/culture_innovations/innovation_fortifications.dds"
@siege_weapons = "gfx/interface/icons/culture_innovations/innovation_siege_weapons.dds"
@levy_building = "gfx/interface/icons/culture_innovations/innovation_levy_building.dds"
@maa_01 = "gfx/interface/icons/culture_innovations/innovation_maa_01.dds"
@maa_02 = "gfx/interface/icons/culture_innovations/innovation_maa_02.dds"
@weapons_and_armor_01 = "gfx/interface/icons/culture_innovations/innovation_weapons_and_armor_01.dds"
@weapons_and_armor_02 = "gfx/interface/icons/culture_innovations/innovation_weapons_and_armor_02.dds"
@knight = "gfx/interface/icons/culture_innovations/innovation_knight.dds"
@hird = "gfx/interface/icons/culture_innovations/innovation_hird.dds"
@longboats = "gfx/interface/icons/culture_innovations/innovation_longboats.dds"
@majesty_01 = "gfx/interface/icons/culture_innovations/innovation_majesty_01.dds"
@majesty_02 = "gfx/interface/icons/culture_innovations/innovation_majesty_02.dds"
@majesty_03 = "gfx/interface/icons/culture_innovations/innovation_majesty_03.dds"
@nobility_01 = "gfx/interface/icons/culture_innovations/innovation_nobility_01.dds"
@nobility_02 = "gfx/interface/icons/culture_innovations/innovation_nobility_02.dds"
@nobility_03 = "gfx/interface/icons/culture_innovations/innovation_nobility_03.dds"
@nobility_04 = "gfx/interface/icons/culture_innovations/innovation_nobility_04.dds"
@misc_inventions = "gfx/interface/icons/culture_innovations/innovation_misc_inventions.dds"
@camel = "gfx/interface/icons/culture_innovations/innovation_camel.dds"
@elephant = "gfx/interface/icons/culture_innovations/innovation_elephant.dds"
@special_maa_01 = "gfx/interface/icons/culture_innovations/innovation_special_maa_01.dds"
@special_maa_02 = "gfx/interface/icons/culture_innovations/innovation_special_maa_02.dds"
# Innovations that can only be discovered by a court scholar
fp3_innovation_mural_sextant = {
skill = learning
group = culture_group_civic
culture_era = culture_era_early_medieval
icon = @misc_inventions
potential = {
has_fp3_dlc_trigger = yes
has_innovation = fp3_innovation_mural_sextant
}
character_modifier = {
monthly_learning_lifestyle_xp_gain_mult = 0.05
character_capital_county_monthly_development_growth_add = 0.2
character_capital_monthly_county_fertility_growth_add = 0.2
}
}
fp3_innovation_fritware = {
skill = learning
group = culture_group_civic
culture_era = culture_era_late_medieval
icon = @misc_inventions
potential = {
has_fp3_dlc_trigger = yes
has_innovation = fp3_innovation_fritware
}
character_modifier = {
domain_tax_mult = 0.05
}
custom = fp3_innovation_fritware_tooltip
}

View file

@ -0,0 +1,420 @@
#### Local Types ####
@administration_1 = "gfx/interface/icons/culture_innovations/innovation_administration_01.dds"
@administration_2 = "gfx/interface/icons/culture_innovations/innovation_administration_02.dds"
@administration_3 = "gfx/interface/icons/culture_innovations/innovation_administration_03.dds"
@civil_construction_1 = "gfx/interface/icons/culture_innovations/innovation_civil_construction_01.dds"
@civil_construction_2 = "gfx/interface/icons/culture_innovations/innovation_civil_construction_02.dds"
@leadership_1 = "gfx/interface/icons/culture_innovations/innovation_leadership_01.dds"
@leadership_2 = "gfx/interface/icons/culture_innovations/innovation_leadership_02.dds"
@raised_banner = "gfx/interface/icons/culture_innovations/innovation_raised_banner.dds"
@fortifications = "gfx/interface/icons/culture_innovations/innovation_fortifications.dds"
@siege_weapons = "gfx/interface/icons/culture_innovations/innovation_siege_weapons.dds"
@levy_building = "gfx/interface/icons/culture_innovations/innovation_levy_building.dds"
@maa_01 = "gfx/interface/icons/culture_innovations/innovation_maa_01.dds"
@maa_02 = "gfx/interface/icons/culture_innovations/innovation_maa_02.dds"
@weapons_and_armor_01 = "gfx/interface/icons/culture_innovations/innovation_weapons_and_armor_01.dds"
@weapons_and_armor_02 = "gfx/interface/icons/culture_innovations/innovation_weapons_and_armor_02.dds"
@knight = "gfx/interface/icons/culture_innovations/innovation_knight.dds"
@hird = "gfx/interface/icons/culture_innovations/innovation_hird.dds"
@longboats = "gfx/interface/icons/culture_innovations/innovation_longboats.dds"
@majesty_01 = "gfx/interface/icons/culture_innovations/innovation_majesty_01.dds"
@majesty_02 = "gfx/interface/icons/culture_innovations/innovation_majesty_02.dds"
@majesty_03 = "gfx/interface/icons/culture_innovations/innovation_majesty_03.dds"
@nobility_01 = "gfx/interface/icons/culture_innovations/innovation_nobility_01.dds"
@nobility_02 = "gfx/interface/icons/culture_innovations/innovation_nobility_02.dds"
@nobility_03 = "gfx/interface/icons/culture_innovations/innovation_nobility_03.dds"
@nobility_04 = "gfx/interface/icons/culture_innovations/innovation_nobility_04.dds"
@gunpowder = "gfx/interface/icons/culture_innovations/innovation_gunpowder.dds"
@innovation_farm = "gfx/interface/icons/culture_innovations/innovation_farm.dds"
@coins = "gfx/interface/icons/culture_innovations/innovation_welfare_01.dds"
@misc_inventions = "gfx/interface/icons/culture_innovations/innovation_misc_inventions.dds"
@quilted_armor = "gfx/interface/icons/culture_innovations/innovation_quilted_armor.dds"
@currency = "gfx/interface/icons/culture_innovations/innovation_currency.dds"
@farm = "gfx/interface/icons/culture_innovations/innovation_farm.dds"
@plenary_assemblies = "gfx/interface/icons/culture_innovations/innovation_plenary_assemblies.dds"
@siege_crossbow = "gfx/interface/icons/culture_innovations/innovation_auh_ballista.dds"
@camel = "gfx/interface/icons/culture_innovations/innovation_camel.dds"
@elephant = "gfx/interface/icons/culture_innovations/innovation_elephant.dds"
@special_maa_01 = "gfx/interface/icons/culture_innovations/innovation_special_maa_01.dds"
@special_maa_02 = "gfx/interface/icons/culture_innovations/innovation_special_maa_02.dds"
#culture_group_military
innovation_motte = { # Earthworks in-game
skill = stewardship
group = culture_group_military
culture_era = culture_era_tribal
icon = @fortifications
asset = {
trigger = {
OR = {
has_cultural_pillar = heritage_frankish
has_cultural_pillar = heritage_central_germanic
has_cultural_pillar = heritage_west_germanic
has_cultural_pillar = heritage_north_germanic
has_cultural_pillar = heritage_iberian
has_cultural_pillar = heritage_brythonic
has_cultural_pillar = heritage_goidelic
has_cultural_pillar = heritage_latin
has_cultural_pillar = heritage_west_slavic
}
}
icon = @fortifications
name = innovation_motte_actual_motte
}
asset = {
trigger = {
has_cultural_pillar = heritage_chinese
}
icon = @fortifications
name = innovation_motte_chinese
}
custom = unlock_tribal_fortification_buildings
parameters = {
nomad_motte_innovation_bonus = yes
}
flag = global_regular
flag = tribal_era_regular
}
innovation_catapult = {
skill = learning
group = culture_group_military
culture_era = culture_era_tribal
icon = @siege_weapons
custom = unlock_siege_maa_first_level
asset = {
trigger = {
OR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_japonic
has_cultural_pillar = heritage_korean
}
}
icon = @siege_crossbow
name = innovation_catapult_chinese
}
flag = global_regular
flag = tribal_era_regular
}
innovation_barracks = {
skill = martial
group = culture_group_military
culture_era = culture_era_tribal
icon = @levy_building
custom = unlock_tribal_military_buildings
character_modifier = {
herd_capacity_mult = 0.05
levy_attack = 2
}
flag = global_regular
flag = tribal_era_regular
}
innovation_mustering_grounds = {
skill = martial
group = culture_group_military
culture_era = culture_era_tribal
icon = @leadership_2
character_modifier = {
men_at_arms_cap = 1
men_at_arms_limit = 2
}
flag = global_regular
flag = tribal_era_regular
}
innovation_bannus = {
skill = martial
group = culture_group_military
culture_era = culture_era_tribal
icon = @raised_banner
custom = unlock_march_contract
custom = unlock_castellan_contract
character_modifier = {
levy_reinforcement_rate = 0.15
active_accolades = 1
herd_conversion = 0.005
}
flag = global_regular
flag = tribal_era_regular
}
innovation_quilted_armor = {
skill = martial
group = culture_group_military
culture_era = culture_era_tribal
icon = @quilted_armor
custom = unlock_maa_armored_footmen
custom = eligible_accolade_vanguard_attribute
character_modifier = {
nomadic_horde_toughness_mult = 0.02
levy_toughness = 2
}
flag = global_regular
flag = tribal_era_regular
}
innovation_development_01 = {
skill = stewardship
group = culture_group_civic
culture_era = culture_era_tribal
icon = @civil_construction_1
custom = reduce_develop_county_penalty_01
character_modifier = {
county_fertility_growth_mult = 0.05
}
flag = global_regular
flag = tribal_era_regular
}
innovation_currency_01 = {
skill = stewardship
group = culture_group_civic
culture_era = culture_era_tribal
icon = @currency
character_modifier = {
development_growth_factor = 0.1
monthly_income_from_herd_mult = 0.05
}
flag = global_regular
flag = tribal_era_regular
}
#culture_group_civic
innovation_gavelkind = {
skill = diplomacy
group = culture_group_civic
culture_era = culture_era_tribal
icon = @administration_3
unlock_law = confederate_partition_succession_law
character_modifier = {
domain_limit = 1
}
flag = global_regular
flag = tribal_era_regular
}
innovation_crop_rotation = {
skill = stewardship
group = culture_group_civic
culture_era = culture_era_tribal
icon = @farm
custom = unlock_tribal_economic_buildings
character_modifier = {
county_fertility_growth_mult = 0.05
}
flag = global_regular
flag = tribal_era_regular
}
innovation_city_planning = {
skill = stewardship
group = culture_group_civic
culture_era = culture_era_tribal
icon = @civil_construction_2
unlock_building = city_01
unlock_building = temple_01
unlock_building = monastic_schools_01
unlock_building = megalith_01
unlock_building = market_villages_01
character_modifier = {
herd_capacity_mult = 0.05
}
flag = global_regular
flag = tribal_era_regular
}
innovation_casus_belli = {
skill = diplomacy
group = culture_group_civic
culture_era = culture_era_tribal
icon = @administration_1
unlock_casus_belli = individual_county_de_jure_cb
unlock_casus_belli = individual_duchy_de_jure_cb
flag = global_regular
flag = tribal_era_regular
}
innovation_plenary_assemblies = {
skill = diplomacy
group = culture_group_civic
culture_era = culture_era_tribal
icon = @plenary_assemblies
unlock_law = crown_authority_1
unlock_building = tribe_02
character_modifier = {
vassal_herd_contribution_mult = 0.02
}
flag = global_regular
flag = tribal_era_regular
}
innovation_ledger = {
skill = stewardship
group = culture_group_civic
culture_era = culture_era_tribal
icon = @administration_2
county_modifier = {
building_slot_add = 1
}
character_modifier = {
monthly_income_from_herd_mult = 0.05
}
flag = global_regular
flag = tribal_era_regular
}
### culture_group_regional ###
innovation_table_of_princes = {
skill = diplomacy
group = culture_group_civic
culture_era = culture_era_tribal
icon = @nobility_01
potential = {
OR = {
#West Slavic
this = culture:czech
this = culture:slovien
}
}
unlock_law = single_heir_dynasty_house
custom = unlock_single_heir_dynasty_house_changing
flag = global_regional
flag = tribal_era_regional
}
innovation_longboats = {
skill = martial
group = culture_group_military
culture_era = culture_era_tribal
region = world_europe_north
icon = @longboats
character_modifier = {
embarkation_cost_mult = -0.75
naval_movement_speed_mult = 0.25
}
custom = unlocks_naval_raiding
custom = unlocks_sailable_major_rivers
custom = unlocks_adventure_intent
flag = global_regional
flag = tribal_era_regional
}
innovation_elephantry = {
skill = stewardship
group = culture_group_military
culture_era = culture_era_tribal
region = world_innovation_elephants
icon = @elephant
unlock_building = elephant_pens_01
custom = eligible_accolade_elephantry_attribute
custom = domicile_building_parameter_camp_reinforce_elephant_regiments_anywhere
flag = global_regional
flag = tribal_era_regional
}
innovation_war_camels = {
skill = stewardship
group = culture_group_military
culture_era = culture_era_tribal
region = world_innovation_camels
icon = @camel
unlock_maa = camel_rider
unlock_building = camel_farms_01
custom = eligible_accolade_camelry_attribute
flag = global_regional
flag = tribal_era_regional
}
innovation_wootz_steel = {
skill = learning
group = culture_group_civic
culture_era = culture_era_tribal
region = world_india_deccan
icon = @weapons_and_armor_01
character_modifier = {
prowess = 1
}
custom = unlock_wind_furnaces
flag = global_regional
flag = tribal_era_regional
}
innovation_african_canoes = {
skill = martial
group = culture_group_military
culture_era = culture_era_tribal
region = world_africa_west
icon = @majesty_01
character_modifier = {
embarkation_cost_mult = -0.25
raid_speed = 0.1
}
custom = unlocks_naval_raiding
custom = unlocks_sailable_major_rivers
flag = global_regional
flag = tribal_era_regional
}

View file

@ -0,0 +1,86 @@
#### Local Types ####
@administration_1 = "gfx/interface/icons/culture_innovations/innovation_administration_01.dds"
@administration_2 = "gfx/interface/icons/culture_innovations/innovation_administration_02.dds"
@administration_3 = "gfx/interface/icons/culture_innovations/innovation_administration_03.dds"
@civil_construction_1 = "gfx/interface/icons/culture_innovations/innovation_civil_construction_01.dds"
@civil_construction_2 = "gfx/interface/icons/culture_innovations/innovation_civil_construction_02.dds"
@leadership_1 = "gfx/interface/icons/culture_innovations/innovation_leadership_01.dds"
@leadership_2 = "gfx/interface/icons/culture_innovations/innovation_leadership_02.dds"
@raised_banner = "gfx/interface/icons/culture_innovations/innovation_raised_banner.dds"
@fortifications = "gfx/interface/icons/culture_innovations/innovation_fortifications.dds"
@siege_weapons = "gfx/interface/icons/culture_innovations/innovation_siege_weapons.dds"
@levy_building = "gfx/interface/icons/culture_innovations/innovation_levy_building.dds"
@maa_01 = "gfx/interface/icons/culture_innovations/innovation_maa_01.dds"
@maa_02 = "gfx/interface/icons/culture_innovations/innovation_maa_02.dds"
@weapons_and_armor_01 = "gfx/interface/icons/culture_innovations/innovation_weapons_and_armor_01.dds"
@weapons_and_armor_02 = "gfx/interface/icons/culture_innovations/innovation_weapons_and_armor_02.dds"
@knight = "gfx/interface/icons/culture_innovations/innovation_knight.dds"
@hird = "gfx/interface/icons/culture_innovations/innovation_hird.dds"
@longboats = "gfx/interface/icons/culture_innovations/innovation_longboats.dds"
@majesty_01 = "gfx/interface/icons/culture_innovations/innovation_majesty_01.dds"
@majesty_02 = "gfx/interface/icons/culture_innovations/innovation_majesty_02.dds"
@majesty_03 = "gfx/interface/icons/culture_innovations/innovation_majesty_03.dds"
@nobility_01 = "gfx/interface/icons/culture_innovations/innovation_nobility_01.dds"
@nobility_02 = "gfx/interface/icons/culture_innovations/innovation_nobility_02.dds"
@nobility_03 = "gfx/interface/icons/culture_innovations/innovation_nobility_03.dds"
@nobility_04 = "gfx/interface/icons/culture_innovations/innovation_nobility_04.dds"
@gunpowder = "gfx/interface/icons/culture_innovations/innovation_gunpowder.dds"
@innovation_farm = "gfx/interface/icons/culture_innovations/innovation_farm.dds"
@coins = "gfx/interface/icons/culture_innovations/innovation_welfare_01.dds"
@misc_inventions = "gfx/interface/icons/culture_innovations/innovation_misc_inventions.dds"
@camel = "gfx/interface/icons/culture_innovations/innovation_camel.dds"
@elephant = "gfx/interface/icons/culture_innovations/innovation_elephant.dds"
@special_maa_01 = "gfx/interface/icons/culture_innovations/innovation_special_maa_01.dds"
@special_maa_02 = "gfx/interface/icons/culture_innovations/innovation_special_maa_02.dds"
# Culture-Specific Innovations
innovation_varangian_adventurers = {
skill = martial
group = culture_group_military
culture_era = culture_era_tribal
icon = @hird
potential = {
has_fp1_dlc_trigger = yes
OR = {
has_innovation = innovation_varangian_adventurers
has_cultural_pillar = heritage_north_germanic
# Frankish
this = culture:norman
any_parent_culture_or_above = {
this = culture:norse #Norman
}
this = culture:estonian
any_parent_culture_or_above = {
this = culture:estonian #Estonian
}
}
NOT = { has_cultural_era_or_later = culture_era_early_medieval }
}
custom = unlock_varangian_adventurer_cb
flag = global_regional
flag = tribal_era_regional
}
# Regional Innovations
innovation_all_things = {
skill = diplomacy
group = culture_group_civic
culture_era = culture_era_tribal
region = world_europe_north
icon = @raised_banner
potential = { has_fp1_dlc_trigger = yes }
custom = unlocks_authority_cooldown_breaking
custom = more_belligerents
character_modifier = { tribal_government_vassal_opinion = 5 }
flag = global_regional
flag = tribal_era_regional
}

View file

@ -0,0 +1,28 @@
#### CE1 Types ####
@innovation_welfare_02 = "gfx/interface/icons/culture_innovations/innovation_welfare_02.dds"
# Culture-Specific Innovations
innovation_sanitation = {
skill = stewardship
group = culture_group_civic
culture_era = culture_era_high_medieval
icon = @innovation_welfare_02
potential = {
OR = {
has_cultural_pillar = heritage_byzantine
has_cultural_pillar = heritage_arabic
has_cultural_pillar = heritage_syriac
}
}
county_modifier = {
epidemic_resistance = 10
}
#custom = unlocks_innovation_sanitation
flag = global_regional
flag = high_medieval_era_regional
}

View file

@ -0,0 +1,143 @@
##############################################################
# Structure
#
# Culture Innovations are templates for technologies bound to an era and possibly to cultural/regional requirements.
# These files generate the CultureInnovationType database. You can also interact with Culture Innovation Types as scoped objects, usually within the scope of a Culture.
# Cultures gradually unlock Innovations based on era and the skills of its Culture Head.
##############################################################
# Key of the innovation
# This will also serve as fallback localization key: the generic innovation will use its key as loc key for the name, and append "_desc" to generate the loc key for its description.
name_of_culture_innovation = {
# key to the cultural era this innovation belongs, e.g. culture_era_early_medieval. Refer to 00_culture_eras.txt for a list of available eras.
culture_era = key
# Innovation group. Can be: culture_group_military, culture_group_civic or culture_group_regional.
group = group_name
# Path to the default icon to show. If not set will use the default icon defined in NGameIcons::DEFAULT_CULTURE_INNOVATION_TYPE_ICON_PATH
icon = path
# The Skill the Head of Culture will use to compute fascination bonuses. Can be one of:
# * learning
# * martial
# * stewardship
# * diplomacy
# * intrigue
# Set to learning by default.
skill = skill_name
# the weight that will be used to randomly pick the innovation when selecting Spread (for AI Culture Heads)
# root = the culture head evaluating this innovation
ai_weight_for_spread = {
value = 1
if = {
limit = {
has_trait = education_martial
}
add = 100
}
}
# root = culture
# scope:character = cultural head
ai_weight_for_fascination = {
value = blah
scope:character = {}
}
# Optional list of triggered assets. The innovation, when possible, will take the first asset that satisfies its trigger and use its members to style its name and icon.
# This style is calculated on startup or when a new culture is created and then never updated.
# When dealing with generic innovation types (that are not directly tied to a culture) this mechanism is not active.
# The order of definition of the assets matters: put higher priority assets first.
asset = {
# culture-scoped trigger for deciding whether a culture is supposed to use this asset.
# please base this trigger on static data related to the culture, like aesthetics or heritage.
# We don't guarantee that the game is in a fully completed state during evaluation.
trigger = {}
# the base loc key to use in this case. optional, but at least one between name and icon must be defined.
name = culture_specific_name
# the icon to use in this case. optional, but at least one between name and icon must be defined.
icon = path_to_culture_specific_icon
}
# Optional key of the region where this innovation can start getting base progress.
# If defined, the culture needs to be present in a minimum number of provinces in this region in order to be eligible.
# Empty means anywhere.
region = key
# Trigger to check if it can be unlocked by the culture. In contrast to can_progress it will be hidden otherwise. Scope: culture Default: always = yes
potential = {}
# To check if it can start being exposed. Scope: culture Default: always = yes
can_progress = {}
# Modifiers of this culture innovation. This will be applied to the characters of that cuture.
character_modifier = {}
# Modifier of this culture innovation applied to the culture itself.
culture_modifier = {}
# Modifier of this culture innovation applied to counties of the culture.
county_modifier = {}
# Modifier of this culture innovation applied to provinces in a county of the culture.
province_modifier = {}
# optionally add parameters to the innovation. They are defined in the same way as traits and traditions, and can be queried via script triggers.
parameters = {
# Only boolean parameters are currently supported
parameter_name = yes/no
}
# Optional flag, relevant for the has_all_innovations trigger. Can list any number of flags for each innovation.
flag = flag_name
# key of a building that can be unlocked. There can be more than one. This is only to show on the tooltip, it has to be manlually blocked on the object itself.
unlock_building = key
# key of a decicion that can be unlocked. There can be more than one. This is only to show on the tooltip, it has to be manlually blocked on the object itself.
unlock_decision = key
# key of a casus belli that can be unlocked. There can be more than one. This is only to show on the tooltip, it has to be manually blocked on the object itself.
unlock_casus_belli = key
# key of a regiment that can be unlocked. There can be more than one. Actually does unlock the MaA.
unlock_maa = key
# key of a law that can be unlocked. There can be more than one. This is only to show on the tooltip, it has to be manually blocked on the object itself.
unlock_law = key
# A custom effect description that will be added to the list of effects. You can specify more than one.
custom = loc_key
# Optional upgrades to existing MaA. You can specify more than one.
maa_upgrade = {
# The base MaA type to upgrade
type = cavalry
damage = 0.1
toughness = 0.1
pursue = 0.1
screen = 0.1
siege_value = 0.1
max_size = 1
}
}
### Innovation flags:
# flag = global_maa
# flag = global_regular
# flag = tribal_era_regular
# flag = early_medieval_era_regular
# flag = high_medieval_era_regular
# flag = late_medieval_era_regular
#
# flag = global_regional
# flag = tribal_era_regional
# flag = early_medieval_era_regional
# flag = high_medieval_era_regional
# flag = late_medieval_era_regional
#
# flag = silk_road_innovation

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,13 @@
This folder ties names from different cultures to one another.
When changing culture, if the character's current name is equivalent to a name in the resulting culture, the character will change name.
== Format ==
For men, the names "Henrik", "Heinrich", and "Henrich" will be considered the same for naming purposes.
henrik_male = { "Henrik" "Heinrich" "Henrich" }
Lack of a postfix will also be interpreted as male.
For women, the names "Matilda" and "Mathilda" will be considered the same for naming purposes.
matilda_female = { "Matilda" "Mathilda" }
The keys are arbitrary except "_male" or "_female" at the end.

View file

@ -0,0 +1,73 @@
Handles virtually everything regarding naming in cultures.
Each culture uses "name_list = key" to pick a name list.
== Structure ==
name_list_key = {
### Will use founders name when creating new dynasties or cadet branches ( bool )
# Default: no
founder_named_dynasties = no
### Can house name be used as realm name on the map ( bool )
# Default: no
house_based_map_names = yes
### Can suggest names from within family ( bool )
# Default: yes
suggest_family_names = yes
### Can suggest names from an ancestor ( bool )
# Default: yes
suggest_ancestor_names = yes
mercenary_names = { # Names and CoAs that can be used by mercenaries of this culture
{ name = "mercenary_company_name1" coat_of_arms = "mercenary_company_coa1" }
{ name = "mercenary_company_name2" coat_of_arms = "mercenary_company_coa2" }
...
}
male_names = {
10 = { // The weight for this group of names, the higher, the more common the name is
commonNameA commonNameB_baseA commonNameC commonNameD_baseA // A list of names, nameX_baseY means that nameX is a variant of a base name baseY (e.g. John_John Jan_John Ian_John)
}
1 = {
rareNameA rareNameB
}
}
female_names = { // Names can also be defined as a single list with no weights
nameA_baseB nameB nameC_baseB
}
dynasty_names = { // Dynasty name list, similar to male_names/female_names, just without weights
{ dynnp_von dynn_Pommern } // but it supports defining prefixes in addition to base names. The {} are required then
{ dynn_Orsini } // prefixes are optional
dynn_Fournier // and so are the {} when not using a prefix
}
dynasty_of_location_prefix = "dynnp_von" // when generating a dynasty name based on a title, add this prefix
# Chance of male children being named after their paternal or maternal grandfather, or their father. Sum must not exceed 100.
pat_grf_name_chance = 50
mat_grf_name_chance = 5
father_name_chance = 10
# Chance of female children being named after their paternal or maternal grandmother, or their mother. Sum must not exceed 100.
pat_grm_name_chance = 10
mat_grm_name_chance = 50
mother_name_chance = 5
# Patronyms. Names after the primary parent. Can use both prefix and suffix together ("McDavidson"). _vowel is used for when the parent's name starts with a vowel.
patronym_prefix_male = "dynnpat_pre_mac"
patronym_prefix_male_vowel = "dynnpat_pre_vow_mag"
patronym_prefix_female = "dynnpat_pre_nic"
patronym_prefix_female_vowel = "dynnpat_pre_vow_nig"
patronym_suffix_male = "dynnpat_suf_son"
patronym_suffix_female = "dynnpat_suf_sdaughter"
# Patronyms will display in names if:
# - the Character's culture has "always_use_patronym = yes", or
# - the Character's government has "always_use_patronym = yes", or
# - the Character's Liege's government has "always_use_patronym = yes"
# Default is no.
always_use_patronym = yes
}

View file

@ -1,543 +0,0 @@
HoldingNoHoldingTerrainRoaming = {
type = province
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = no_holding_roaming
trigger = {
has_holding = no
NOR = {
terrain = farmlands
terrain = taiga
terrain = steppe
}
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = holding_roaming
fallback = yes
}
}
HoldingNoHoldingTerrainRoamingTooltip = {
type = province
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = no_holding_roaming_tooltip
trigger = {
has_holding = no
NOR = {
terrain = farmlands
terrain = taiga
terrain = steppe
}
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = holding_roaming_tooltip
fallback = yes
}
}
RoamingIntroTerrainSnippet = {
type = province
random_valid = yes
### Forest, Jungle, or Taiga ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_forest
trigger = {
roaming_activity_intro_base_three_trigger = {
TERRAIN = forest
TERRAIN_2 = taiga
TERRAIN_3 = jungle
}
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_forest_2
trigger = {
roaming_activity_intro_base_three_trigger = {
TERRAIN = forest
TERRAIN_2 = taiga
TERRAIN_3 = jungle
}
}
}
### Forest or Taiga Winter ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_forest_winter
trigger = {
roaming_activity_intro_winter_two_trigger = {
TERRAIN = forest
TERRAIN_2 = taiga
}
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_forest_winter_2
trigger = {
roaming_activity_intro_winter_two_trigger = {
TERRAIN = forest
TERRAIN_2 = taiga
}
}
}
### Forest or Jungle Monsoon ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_forest_monsoon
trigger = {
roaming_activity_intro_monsoon_two_trigger = {
TERRAIN = forest
TERRAIN_2 = jungle
}
}
}
### Mountain ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_mountain
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = mountains }
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_mountain_2
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = mountains }
}
}
### Mountain Winter ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_mountain_winter
trigger = {
roaming_activity_intro_winter_trigger = { TERRAIN = mountains }
}
}
### Mountain Monsoon ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_mountain_monsoon
trigger = {
roaming_activity_intro_monsoon_trigger = { TERRAIN = mountains }
}
}
### Hills ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_hills
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = hills }
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_hills_2
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = hills }
}
}
### Hills Winter ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_hills_winter
trigger = {
roaming_activity_intro_winter_trigger = { TERRAIN = hills }
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_hills_winter_2
trigger = {
roaming_activity_intro_winter_trigger = { TERRAIN = hills }
}
}
### Hills Monsoon ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_hills_monsoon
trigger = {
roaming_activity_intro_monsoon_trigger = { TERRAIN = hills }
}
}
### Plains or Steppe ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_plains
trigger = {
roaming_activity_intro_base_two_trigger = {
TERRAIN = plains
TERRAIN_2 = steppe
}
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_plains_2
trigger = {
roaming_activity_intro_base_two_trigger = {
TERRAIN = plains
TERRAIN_2 = steppe
}
}
}
### Plains or Steppe Winter ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_plains_winter
trigger = {
roaming_activity_intro_winter_two_trigger = {
TERRAIN = plains
TERRAIN_2 = steppe
}
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_plains_winter_2
trigger = {
roaming_activity_intro_winter_two_trigger = {
TERRAIN = plains
TERRAIN_2 = steppe
}
}
}
### Plains Monsoon ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_plains_monsoon
trigger = {
roaming_activity_intro_monsoon_trigger = { TERRAIN = plains }
}
}
### Farmlands or Floodplains ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_farmlands
trigger = {
roaming_activity_intro_base_two_trigger = {
TERRAIN = farmlands
TERRAIN_2 = floodplains
}
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_farmlands_2
trigger = {
roaming_activity_intro_base_two_trigger = {
TERRAIN = farmlands
TERRAIN_2 = floodplains
}
}
}
### Farmlands Winter ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_farmlands_winter
trigger = {
roaming_activity_intro_winter_trigger = { TERRAIN = farmlands }
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_farmlands_winter_2
trigger = {
roaming_activity_intro_winter_trigger = { TERRAIN = farmlands }
}
}
### Farmlands or Floodplains Monsoon ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_farmlands_monsoon
trigger = {
roaming_activity_intro_monsoon_two_trigger = {
TERRAIN = farmlands
TERRAIN_2 = floodplains
}
}
}
### Desert or Drylands ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_desert
trigger = {
roaming_activity_intro_base_two_trigger = {
TERRAIN = desert
TERRAIN_2 = drylands
}
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_desert_2
trigger = {
roaming_activity_intro_base_two_trigger = {
TERRAIN = desert
TERRAIN_2 = drylands
}
}
}
### Desert or Drylands Monsoon ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_desert_monsoon
trigger = {
roaming_activity_intro_monsoon_two_trigger = {
TERRAIN = desert
TERRAIN_2 = drylands
}
}
}
### Desert Mountains ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_desert_mountains
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = desert_mountains }
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_desert_mountains_2
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = desert_mountains }
}
}
### Desert Mountains Monsoon ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_desert_mountains_monsoon
trigger = {
roaming_activity_intro_monsoon_trigger = { TERRAIN = desert_mountains }
}
}
### Oasis ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_oasis
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = oasis }
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_oasis_2
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = oasis }
}
}
### Oasis Monsoon ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_oasis_monsoon
trigger = {
roaming_activity_intro_monsoon_trigger = { TERRAIN = oasis }
}
}
### Wetlands ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_wetlands
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = wetlands }
}
}
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_wetlands_2
trigger = {
roaming_activity_intro_base_trigger = { TERRAIN = wetlands }
}
}
### Wetlands Monsoon ###
text = {
setup_scope = { save_scope_as = ThisLocation }
localization_key = roaming_intro_terrain_snippet_wetlands_monsoon
trigger = {
roaming_activity_intro_monsoon_trigger = { TERRAIN = wetlands }
}
}
}
RoamingIntroSecondHalf = {
type = province
### Generic
text = {
localization_key = roaming_intro_second_half_generic
fallback = yes
trigger = {
roaming_activity_winter_trigger = no
roaming_activity_monsoon_trigger = no
}
}
### Winter
text = {
localization_key = roaming_intro_second_half_winter
trigger = {
roaming_activity_winter_trigger = yes
}
}
### Monsoon
text = {
localization_key = roaming_intro_second_half_monsoon
trigger = {
roaming_activity_monsoon_trigger = yes
}
}
}
RoamingOutroStressLoss = {
type = character
random_valid = yes
# Weak
text = {
localization_key = roaming_outro_snippet_stress_loss_weak
trigger = {
has_character_flag = roaming_weak_stress_loss
}
}
text = {
localization_key = roaming_outro_snippet_stress_loss_weak_2
trigger = {
has_character_flag = roaming_weak_stress_loss
}
}
text = {
localization_key = roaming_outro_snippet_stress_loss_weak_3
trigger = {
has_character_flag = roaming_weak_stress_loss
}
}
# Medium
text = {
localization_key = roaming_outro_snippet_stress_loss_medium
trigger = {
has_character_flag = roaming_medium_stress_loss
}
}
text = {
localization_key = roaming_outro_snippet_stress_loss_medium_2
trigger = {
has_character_flag = roaming_medium_stress_loss
}
}
text = {
localization_key = roaming_outro_snippet_stress_loss_medium_3
trigger = {
has_character_flag = roaming_medium_stress_loss
}
}
# Strong
text = {
localization_key = roaming_outro_snippet_stress_loss_strong
trigger = {
has_character_flag = roaming_strong_stress_loss
}
}
text = {
localization_key = roaming_outro_snippet_stress_loss_strong_2
trigger = {
has_character_flag = roaming_strong_stress_loss
}
}
text = {
localization_key = roaming_outro_snippet_stress_loss_strong_3
trigger = {
has_character_flag = roaming_strong_stress_loss
}
}
# Very Strong
text = {
localization_key = roaming_outro_snippet_stress_loss_very_strong
trigger = {
has_character_flag = roaming_very_strong_stress_loss
}
}
text = {
localization_key = roaming_outro_snippet_stress_loss_very_strong_2
trigger = {
has_character_flag = roaming_very_strong_stress_loss
}
}
text = {
localization_key = roaming_outro_snippet_stress_loss_very_strong_3
trigger = {
has_character_flag = roaming_very_strong_stress_loss
}
}
}
RoamingOutroReturningHome = {
type = character
random_valid = yes
text = { localization_key = roaming_outro_snippet_returning_home }
text = { localization_key = roaming_outro_snippet_returning_home_2 }
text = { localization_key = roaming_outro_snippet_returning_home_3 }
text = { localization_key = roaming_outro_snippet_returning_home_4 }
}
RoamingLegendaryBeastProvinceWeather = {
type = province
text = {
localization_key = LegendaryBeastProvinceWeatherSnow
trigger = {
has_winter_trigger = yes
}
}
text = {
localization_key = LegendaryBeastProvinceWeatherRain
trigger = {
tropical_seasons_region_trigger = yes
middle_of_year_season_trigger = yes
}
}
text = {
localization_key = LegendaryBeastProvinceWeatherFog
}
}
RoamingGraveVariants = {
type = province
text = {
trigger = {
religion = religion:christianity_religion
}
localization_key = roaming_grave_variant_cross
}
text = {
trigger = {
geographical_region = world_europe_north
}
localization_key = roaming_grave_variant_burial_mound
}
text = {
localization_key = roaming_grave_variant_stone
}
}

View file

@ -0,0 +1,55 @@
The following scope types can be defined as the "type" in a "type = X" argument.
It should match whatever scope you use the custom loc command in.
artifact
character
landed_title
province
activity
secret
scheme
combat
combat_side
title_and_vassal_change
faith
dynasty
all # Accepts any scope type, but you can then only really check triggers that can be used on anything, else you'll get run time issues instead of read time ones
== format ==
key = {
type = scope
text = {
# Run before the trigger is evaluated, can save scopes which you then check
# for in the trigger directly. These scopes can be referenced in the loc key.
# Only interface effects are valid so the game state can not be modified
setup_scope = {
<interface effects>
}
# What triggers should be true for this to be a valid text entry
# Interface triggers are valid such as checking if a window is open
# The first trigger that matches returns the relevant localization_key text
trigger = {
<interface triggers>
}
# The localization key, has the scopes from setup_scope accessible
localization_key = string
# Optional; will cause this one to be picked if no entry is valid
fallback = yes
}
...
random_valid = yes # Optional, will randomize instead of picking first valid
}
You can also add variants:
key = {
parent = some_custom_loc_key
suffix = "_suffix"
}
The logic of the parent will be run, then the suffix is added to the custom loc key.