namespace = racial # TO DO - flavour events for dryad pregnancy ################################################ # Racial trait assignment ################################################ # Racial trait assignment (normal and on_birth) character_event = { id = racial.1 hide_window = yes trigger = { NOT = { trait = human_race } NOT = { trait = dwarf_race } NOT = { trait = halfdwarf_race } NOT = { trait = elf_race } NOT = { trait = halfelf_race } NOT = { trait = dryad_race } NOT = { trait = halfling_race } NOT = { trait = halfhalfling_race } NOT = { trait = gnome_race } NOT = { trait = halfgnome_race } NOT = { trait = wilderness_race } } mean_time_to_happen = { days = 1 } option = { # Dryad name = OK trigger = { graphical_culture = dryadgfx } add_trait = dryad_race } option = { # Elf or halfelf name = OK trigger = { graphical_culture = elfgfx } add_trait = elf_race if = { limit = { OR = { father_even_if_dead = { NOT = { graphical_culture = elfgfx } } mother_even_if_dead = { NOT = { graphical_culture = elfgfx } } } } remove_trait = elf_race add_trait = halfelf_race } } option = { # Dwarf or halfdwarf name = OK trigger = { graphical_culture = dwarvengfx } add_trait = dwarf_race if = { limit = { OR = { father_even_if_dead = { NOT = { graphical_culture = dwarvengfx } } mother_even_if_dead = { NOT = { graphical_culture = dwarvengfx } } } } remove_trait = dwarf_race add_trait = halfdwarf_race } } option = { # Human or halfelf or halfdwarf name = OK trigger = { NOT = { graphical_culture = dwarvengfx graphical_culture = elfgfx graphical_culture = hobbitsgfx graphical_culture = druedaingfx graphical_culture = dryadgfx graphical_culture = wildernessgfx } } add_trait = human_race if = { limit = { OR = { father_even_if_dead = { graphical_culture = elfgfx } mother_even_if_dead = { graphical_culture = elfgfx } } } remove_trait = human_race add_trait = halfelf_race } if = { limit = { OR = { father_even_if_dead = { graphical_culture = dwarvengfx } mother_even_if_dead = { graphical_culture = dwarvengfx } } } remove_trait = human_race add_trait = halfdwarf_race } if = { limit = { OR = { father_even_if_dead = { graphical_culture = hobbitsgfx } mother_even_if_dead = { graphical_culture = hobbitsgfx } } } remove_trait = human_race add_trait = halfhalfling_race } if = { limit = { OR = { father_even_if_dead = { graphical_culture = druedaingfx } mother_even_if_dead = { graphical_culture = druedaingfx } } } remove_trait = human_race add_trait = halfgnome_race } } option = { # Wilderness name = OK trigger = { graphical_culture = wildernessgfx } add_trait = wilderness_race } } ################################################ # Dryad reproduction ################################################ # Pregnancy character_event = { id = racial.2 desc = EVTDESCracial.2 picture = GFX_evt_pregnancy min_age = 15 capable_only = yes only_women = yes trigger = { NOT = { culture = wilderness } trait = dryad_race NOT = { trait = pregnant } NOT = { has_character_modifier = old_age } } mean_time_to_happen = { months = 50 modifier = { factor = 1.5 num_of_children = 2 } modifier = { factor = 1.5 num_of_children = 3 } modifier = { factor = 1.5 num_of_children = 4 } modifier = { factor = 1.5 num_of_children = 5 } modifier = { factor = 2 trait = homosexual } modifier = { factor = 4 trait = celibate } modifier = { factor = 4 is_landed = no } } option = { name = OK add_trait = pregnant prestige = 10 hidden_tooltip = { character_event = { id = racial.3 days = 90 random = 5 } } } } # Birth character_event = { id = racial.3 desc = EVTDESCracial.3 picture = GFX_evt_birth hide_from = yes is_triggered_only = yes option = { name = OK create_character = { age = 0 female = yes dynasty = ROOT trait = dryad_race } new_character = { set_mother = ROOT character_event = { id = 313 } # Vanillabirth complication event } } } ################################################ # Divorce ################################################ # Check marriage (on_marriage) character_event = { id = racial.4 hide_window = yes is_triggered_only = yes trigger = { NOT = { culture = wilderness } FROM = { character = ROOT } } immediate = { # Race assignment just in case ROOT = { character_event = { id = racial.1} } new_character = { character_event = { id = racial.1} } } option = { # Divorce marriage name = OK trigger = { OR = { AND = { trait = elf_race new_character = { OR = { trait = human_race trait = dwarf_race trait = halfdwarf_race trait = halfling_race trait = halfhalfling_race trait = gnome_race trait = halfgnome_race } } } AND = { trait = halfelf_race new_character = { OR = { trait = dwarf_race trait = halfdwarf_race trait = halfling_race trait = halfhalfling_race trait = gnome_race trait = halfgnome_race } } } AND = { trait = dwarf_race new_character = { OR = { trait = human_race trait = elf_race trait = halfelf_race trait = halfling_race trait = halfhalfling_race trait = gnome_race trait = halfgnome_race } } } AND = { trait = halfdwarf_race new_character = { OR = { trait = elf_race trait = halfelf_race trait = halfling_race trait = halfhalfling_race trait = gnome_race trait = halfgnome_race } } } AND = { trait = halfling_race new_character = { OR = { trait = human_race trait = elf_race trait = halfelf_race trait = dwarf_race trait = halfdwarf_race trait = gnome_race trait = halfgnome_race } } } AND = { trait = halfhalfling_race new_character = { OR = { trait = elf trait = halfelf_race trait = dwarf_race trait = halfdwarf_race trait = gnome_race trait = halfgnome_race } } } AND = { trait = gnome_race new_character = { OR = { trait = elf trait = halfelf_race trait = dwarf_race trait = halfdwarf_race trait = halfling_race trait = halfhalfling_race } } } AND = { trait = halfgnome_race new_character = { OR = { trait = elf trait = halfelf_race trait = dwarf_race trait = halfdwarf_race trait = halfling_race trait = halfhalfling_race } } } AND = { trait = human_race new_character = { OR = { trait = elf_race trait = dwarf_race trait = halfling_race trait = gnome_race } } } } } character_event = { id = racial.5 } ai_chance = { factor = 1000 } } option = { # Marriage is okay name = OK character_event = { id = 500 } # Royal Marriage Aid Duty ai_chance = { factor = 1 } } } # Force divorce interracial marriages character_event = { id = racial.5 desc = EVTDESCracial.5 picture = GFX_evt_marriage is_triggered_only = yes option = { name = EVTOPTAracial.5 if = { limit = { spouse = { is_alive = yes } } spouse = { remove_spouse = ROOT banish = yes if = { limit = { NOT = { father = { always = yes } } NOT = { mother = { always = yes } } } death = { death_reason = death_by_nature } } } } } option = { name = EVTOPTBracial.5 character_event = { id = 500 } # Royal Marriage Aid Duty ai_chance = { factor = 0 } } } ################################################ # Nonhuman fertility ################################################ # Elf gets fertile trait character_event = { id = racial.10 desc = EVTDESCracial.10 picture = GFX_evt_lover trigger = { NOT = { trait = fertile_nonhuman } NOT = { trait = sorcerer } trait = elf_race age = 40 NOT = { age = 200 } } mean_time_to_happen = { months = 120 modifier = { factor = 0.7 health = 5 } modifier = { factor = 0.6 is_married = yes } modifier = { factor = 0.6 has_lover = yes } modifier = { factor = 0.6 trait = lustful } modifier = { factor = 0.9 trait = hedonist } modifier = { factor = 0.8 trait = strong } modifier = { factor = 1.5 trait = chaste } modifier = { factor = 2.0 trait = celibate } modifier = { factor = 1.4 trait = homosexual } modifier = { factor = 0 age = 100 } } option = { name = EVTOPTAracial.10 add_trait = fertile_nonhuman } } # Elf loses fertile trait character_event = { id = racial.11 desc = EVTDESCracial.11 picture = GFX_evt_lover trigger = { trait = fertile_nonhuman trait = elf_race age = 200 } mean_time_to_happen = { months = 600 modifier = { factor = 0.8 NOT = { health = 3 } } modifier = { factor = 0.8 NOT = { health = 4 } } modifier = { factor = 0.8 NOT = { health = 5 } } modifier = { factor = 1.2 health = 5 } modifier = { factor = 1.2 health = 6 } modifier = { factor = 1.2 health = 7 } modifier = { factor = 1.2 trait = lustful } modifier = { factor = 1.1 trait = hedonist } modifier = { factor = 1.5 trait = strong } modifier = { factor = 0.6 trait = chaste } modifier = { factor = 0.2 trait = celibate } modifier = { factor = 0.9 trait = homosexual } modifier = { factor = 0 age = 250 } } option = { name = EVTOPTAracial.11 remove_trait = fertile_nonhuman } } # Hidden - Elven fertility reduction per birth (on_birth) character_event = { id = racial.12 hide_window = yes is_triggered_only = yes option = { name = OK father = { if = { limit = { trait = elf_race } fertility = -0.10 } } mother = { if = { limit = { trait = elf_race } fertility = -0.20 } } } } ################################################ # Fertility reduction for non-elves when hitting 50 years ################################################ # Hidden - Fertility reduction character_event = { id = racial.20 hide_window = yes min_age = 50 only_women = yes trigger = { NOT = { trait = elf_race} OR = { trait = human_race trait = halfelf_race trait = dwarf_race trait = halfdwarf_race trait = dryad trait = halfling } age = 50 fertility = 0.1 } mean_time_to_happen = { days = 1 } option = { name = OK fertility = -1 } } ################################################ #Combat trait initialization ################################################ character_event = { id = racial.30 hide_window = yes trigger = { ai = no NOT = { has_global_flag = combat_traits_init } } mean_time_to_happen = { days = 1 } immediate = { any_independent_ruler = { if = { limit = { is_adult = yes NOT = { has_character_modifier = old_age } OR = { trait = witcher trait = duelist } NOT = { trait = incapable } NOT = { trait = poor_warrior } NOT = { trait = trained_warrior } NOT = { trait = skilled_warrior } NOT = { trait = master_warrior } } random_list = { 20 = { add_trait = trained_warrior } 50 = { add_trait = skilled_warrior } 30 = { add_trait = master_warrior } } } if = { limit = { is_adult = yes NOT = { has_character_modifier = old_age } OR = { trait = brilliant_strategist trait = skilled_tactician } NOT = { trait = witcher } NOT = { trait = duelist } NOT = { trait = incapable } NOT = { trait = poor_warrior } NOT = { trait = trained_warrior } NOT = { trait = skilled_warrior } NOT = { trait = master_warrior } } random_list = { 25 = { add_trait = poor_warrior } 40 = { add_trait = trained_warrior } 30 = { add_trait = skilled_warrior } 5 = { add_trait = master_warrior } } } if = { limit = { is_adult = yes NOT = { has_character_modifier = old_age } OR = { trait = misguided_warrior trait = skilled_tactician } NOT = { trait = witcher } NOT = { trait = tough_soldier } NOT = { trait = incapable } NOT = { trait = poor_warrior } NOT = { trait = trained_warrior } NOT = { trait = skilled_warrior } NOT = { trait = master_warrior } } random_list = { 15 = { } 25 = { add_trait = poor_warrior } 40 = { add_trait = trained_warrior } 20 = { add_trait = skilled_warrior } } } if = { limit = { is_adult = yes NOT = { has_character_modifier = old_age } is_female = no NOT = { trait = witcher } NOT = { trait = tough_soldier } NOT = { trait = incapable } NOT = { trait = poor_warrior } NOT = { trait = trained_warrior } NOT = { trait = skilled_warrior } NOT = { trait = master_warrior } } random_list = { 85 = { } 10 = { add_trait = poor_warrior } 5 = { add_trait = trained_warrior } } } any_realm_character = { if = { limit = { is_adult = yes NOT = { has_character_modifier = old_age } OR = { trait = witcher trait = duelist } NOT = { trait = incapable } NOT = { trait = poor_warrior } NOT = { trait = trained_warrior } NOT = { trait = skilled_warrior } NOT = { trait = master_warrior } } random_list = { 20 = { add_trait = trained_warrior } 50 = { add_trait = skilled_warrior } 30 = { add_trait = master_warrior } } } if = { limit = { is_adult = yes NOT = { has_character_modifier = old_age } OR = { trait = brilliant_strategist trait = skilled_tactician } NOT = { trait = witcher } NOT = { trait = duelist } NOT = { trait = incapable } NOT = { trait = poor_warrior } NOT = { trait = trained_warrior } NOT = { trait = skilled_warrior } NOT = { trait = master_warrior } } random_list = { 25 = { add_trait = poor_warrior } 40 = { add_trait = trained_warrior } 30 = { add_trait = skilled_warrior } 5 = { add_trait = master_warrior } } } if = { limit = { is_adult = yes NOT = { has_character_modifier = old_age } OR = { trait = misguided_warrior trait = skilled_tactician } NOT = { trait = witcher } NOT = { trait = tough_soldier } NOT = { trait = incapable } NOT = { trait = poor_warrior } NOT = { trait = trained_warrior } NOT = { trait = skilled_warrior } NOT = { trait = master_warrior } } random_list = { 15 = { } 25 = { add_trait = poor_warrior } 40 = { add_trait = trained_warrior } 20 = { add_trait = skilled_warrior } } } if = { limit = { is_adult = yes NOT = { has_character_modifier = old_age } is_female = no NOT = { trait = witcher } NOT = { trait = tough_soldier } NOT = { trait = incapable } NOT = { trait = poor_warrior } NOT = { trait = trained_warrior } NOT = { trait = skilled_warrior } NOT = { trait = master_warrior } } random_list = { 85 = { } 10 = { add_trait = poor_warrior } 5 = { add_trait = trained_warrior } } } } } } option = { set_global_flag = combat_traits_init } } character_event = { id = racial.30 hide_window = yes trigger = { NOT = { has_character_flag = sorcerer_reportraited } trait = sorcerer NOT = { trait = triss } age = 50 } mean_time_to_happen = { days = 1 } option = { name = OK trigger = { OR = { graphical_culture = westerngfx graphical_culture = frankishgfx graphical_culture = ugricgfx graphical_culture = germangfx } } set_graphical_culture = western_sorcerer set_character_flag = sorcerer_reportraited } option = { name = OK trigger = { NOT = { OR = { graphical_culture = westerngfx graphical_culture = frankishgfx } } } set_character_flag = sorcerer_reportraited } }