This commit is contained in:
Fishedotjpg 2026-02-25 20:46:16 +00:00
parent bbd44e2a61
commit b92cc3ab2d
19 changed files with 29483 additions and 166 deletions

View file

@ -466,7 +466,7 @@ camp_main_04 = {
supply_tent_01 = {
internal_slots = 1
construction_time = @camp_building_main_slot_construction_duration_t1
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
cost = { gold = supply_tent_01_domicile_building_gold_cost_value }
refund = {
@ -513,7 +513,7 @@ supply_tent_01 = {
}
supply_tent_02 = {
construction_time = @camp_building_main_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_01
internal_slots = 2
@ -563,7 +563,7 @@ supply_tent_02 = {
}
supply_tent_03 = {
construction_time = @camp_building_main_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_02
internal_slots = 3
@ -614,7 +614,7 @@ supply_tent_03 = {
}
supply_tent_04 = {
construction_time = @camp_building_main_slot_construction_duration_t4
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_03
internal_slots = 4
@ -666,7 +666,7 @@ supply_tent_04 = {
}
supply_tent_05 = {
construction_time = @camp_building_main_slot_construction_duration_t5
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_04
internal_slots = 5
@ -719,7 +719,7 @@ supply_tent_05 = {
}
supply_tent_06 = {
construction_time = @camp_building_main_slot_construction_duration_t6
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_05
internal_slots = 6
@ -775,7 +775,7 @@ supply_tent_06 = {
supply_tent_sutler = { # Sutler
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t1
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_01
cost = { gold = supply_tent_sutler_domicile_building_gold_cost_value }
@ -829,7 +829,7 @@ supply_tent_sutler = { # Sutler
supply_tent_mender = { # Mender
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t1
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_01
cost = { gold = supply_tent_mender_domicile_building_gold_cost_value }
@ -884,7 +884,7 @@ supply_tent_mender = { # Mender
supply_tent_smithy = { # Smithy
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_01
cost = { gold = supply_tent_smithy_domicile_building_gold_cost_value }
@ -952,7 +952,7 @@ supply_tent_smithy = { # Smithy
supply_tent_arsenal = { # Arsenal
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_01
cost = { gold = supply_tent_arsenal_domicile_building_gold_cost_value }
@ -1009,7 +1009,7 @@ supply_tent_arsenal = { # Arsenal
supply_tent_reserve_provisions = { # Reserve Provisions
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_01
cost = { gold = supply_tent_reserve_provisions_domicile_building_gold_cost_value }
@ -1077,7 +1077,7 @@ supply_tent_reserve_provisions = { # Reserve Provisions
supply_tent_reserve_water = { # Reserve Water
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_01
cost = { gold = supply_tent_reserve_water_domicile_building_gold_cost_value }
@ -1144,7 +1144,7 @@ supply_tent_reserve_water = { # Reserve Water
supply_tent_climbing_gear = { # Climbing Gear
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t1
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_01
cost = { gold = supply_tent_climbing_gear_domicile_building_gold_cost_value }
@ -1208,7 +1208,7 @@ supply_tent_climbing_gear = { # Climbing Gear
supply_tent_subdued_gear = { # Subdued Gear
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = supply_tent_01
cost = { gold = supply_tent_subdued_gear_domicile_building_gold_cost_value }
@ -1889,7 +1889,7 @@ barber_tent_morticians_tools = { # Mortician's Tools
baggage_train_01 = {
internal_slots = 1
construction_time = @camp_building_main_slot_construction_duration_t1
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
cost = { gold = baggage_train_01_domicile_building_gold_cost_value }
refund = {
@ -1939,7 +1939,7 @@ baggage_train_01 = {
}
baggage_train_02 = {
construction_time = @camp_building_main_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
internal_slots = 2
@ -1992,7 +1992,7 @@ baggage_train_02 = {
}
baggage_train_03 = {
construction_time = @camp_building_main_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_02
internal_slots = 3
@ -2046,7 +2046,7 @@ baggage_train_03 = {
}
baggage_train_04 = {
construction_time = @camp_building_main_slot_construction_duration_t4
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_03
internal_slots = 4
@ -2101,7 +2101,7 @@ baggage_train_04 = {
}
baggage_train_05 = {
construction_time = @camp_building_main_slot_construction_duration_t5
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_04
internal_slots = 5
@ -2157,7 +2157,7 @@ baggage_train_05 = {
}
baggage_train_06 = {
construction_time = @camp_building_main_slot_construction_duration_t6
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_05
internal_slots = 6
@ -2216,7 +2216,7 @@ baggage_train_06 = {
baggage_train_ample_steeds = { # Ample Steeds
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_ample_steeds_domicile_building_gold_cost_value }
@ -2283,7 +2283,7 @@ baggage_train_ample_steeds = { # Ample Steeds
baggage_train_porters = { # Porters
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t1
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_porters_domicile_building_gold_cost_value }
@ -2347,7 +2347,7 @@ baggage_train_porters = { # Porters
baggage_train_trackers = { # Trackers
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_trackers_domicile_building_gold_cost_value }
@ -2410,7 +2410,7 @@ baggage_train_trackers = { # Trackers
baggage_train_kennel = { # Kennel
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_kennel_domicile_building_gold_cost_value }
@ -2467,7 +2467,7 @@ baggage_train_kennel = { # Kennel
baggage_train_siege_engineers = { # Siege Engineers
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_siege_engineers_domicile_building_gold_cost_value }
@ -2530,7 +2530,7 @@ baggage_train_siege_engineers = { # Siege Engineers
baggage_train_shrine = { # Shrine
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_shrine_domicile_building_gold_cost_value }
@ -2598,7 +2598,7 @@ baggage_train_shrine = { # Shrine
baggage_train_scribes = { # Scribes
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_scribes_domicile_building_gold_cost_value }
@ -2661,7 +2661,7 @@ baggage_train_scribes = { # Scribes
baggage_train_bartering_grounds = { # Bartering Grounds
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t1
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_bartering_grounds_domicile_building_gold_cost_value }
@ -2718,7 +2718,7 @@ baggage_train_bartering_grounds = { # Bartering Grounds
baggage_train_proof_of_claims = { # Proof of Claims
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_proof_of_claims_domicile_building_gold_cost_value }
@ -2844,7 +2844,7 @@ baggage_train_ransom_cages = { # Ransom Cages
baggage_train_negotiators = { # Negotiators
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
previous_building = baggage_train_01
cost = { gold = baggage_train_negotiators_domicile_building_gold_cost_value }
@ -4423,7 +4423,7 @@ camp_fire_juicy_rumors = { # Juicy Rumors
proving_grounds_01 = {
internal_slots = 1
construction_time = @camp_building_main_slot_construction_duration_t1
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community }
cost = { gold = proving_grounds_01_domicile_building_gold_cost_value }
refund = {
@ -4469,7 +4469,7 @@ proving_grounds_01 = {
}
proving_grounds_02 = {
construction_time = @camp_building_main_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
internal_slots = 2
@ -4518,7 +4518,7 @@ proving_grounds_02 = {
}
proving_grounds_03 = {
construction_time = @camp_building_main_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_02
internal_slots = 3
@ -4567,7 +4567,7 @@ proving_grounds_03 = {
}
proving_grounds_04 = {
construction_time = @camp_building_main_slot_construction_duration_t4
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_03
internal_slots = 4
@ -4619,7 +4619,7 @@ proving_grounds_04 = {
}
proving_grounds_05 = {
construction_time = @camp_building_main_slot_construction_duration_t5
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_04
internal_slots = 5
@ -4670,7 +4670,7 @@ proving_grounds_05 = {
}
proving_grounds_06 = {
construction_time = @camp_building_main_slot_construction_duration_t6
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_05
internal_slots = 6
@ -4725,7 +4725,7 @@ proving_grounds_06 = {
proving_grounds_horse_run = { # Horse Run
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_horse_run_domicile_building_gold_cost_value }
@ -4790,7 +4790,7 @@ proving_grounds_horse_run = { # Horse Run
proving_grounds_camel_run = { # Camel Run
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_camel_run_domicile_building_gold_cost_value }
@ -4859,7 +4859,7 @@ proving_grounds_camel_run = { # Camel Run
proving_grounds_elephantry_reserve = { # Elephantry Reserve
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_elephantry_reserve_domicile_building_gold_cost_value }
@ -4922,7 +4922,7 @@ proving_grounds_elephantry_reserve = { # Elephantry Reserve
proving_grounds_nightly_barding_drills = { # Nightly Barding Drills
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_nightly_barding_drills_domicile_building_gold_cost_value }
@ -4987,7 +4987,7 @@ proving_grounds_nightly_barding_drills = { # Nightly Barding Drills
proving_grounds_life_in_the_saddle = { # Life in the Saddle
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_life_in_the_saddle_domicile_building_gold_cost_value }
@ -5065,7 +5065,7 @@ proving_grounds_life_in_the_saddle = { # Life in the Saddle
proving_grounds_the_stump = { # The Stump
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_the_stump_domicile_building_gold_cost_value }
@ -5130,7 +5130,7 @@ proving_grounds_the_stump = { # The Stump
proving_grounds_personal_bouts = { # Personal Bouts
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_personal_bouts_domicile_building_gold_cost_value }
@ -5196,7 +5196,7 @@ proving_grounds_personal_bouts = { # Personal Bouts
proving_grounds_training_circle = { # Training Circle
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_training_circle_domicile_building_gold_cost_value }
@ -5262,7 +5262,7 @@ proving_grounds_training_circle = { # Training Circle
proving_grounds_mock_battle_drills = { # Mock Battle Drills
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_mock_battle_drills_domicile_building_gold_cost_value }
@ -5327,7 +5327,7 @@ proving_grounds_mock_battle_drills = { # Mock Battle Drills
proving_grounds_lockwagon = { # Lockwagon
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t2
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_lockwagon_domicile_building_gold_cost_value }
@ -5392,7 +5392,7 @@ proving_grounds_lockwagon = { # Lockwagon
proving_grounds_martial_study = { # Martial Study
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_martial_study_domicile_building_gold_cost_value }
@ -5454,7 +5454,7 @@ proving_grounds_martial_study = { # Martial Study
proving_grounds_the_stick_game = { # The Stick Game
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t1
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_the_stick_game_domicile_building_gold_cost_value }
@ -5514,7 +5514,7 @@ proving_grounds_the_stick_game = { # The Stick Game
proving_grounds_bodyguard_drills = { # Bodyguard Drills
slot_type = internal
construction_time = @camp_building_internal_slot_construction_duration_t3
allowed_domicile_types = { camp }
allowed_domicile_types = { camp minority_community}
previous_building = proving_grounds_01
cost = { gold = proving_grounds_bodyguard_drills_domicile_building_gold_cost_value }

View file

@ -2,7 +2,7 @@
minority_community_main_01 = {
slot_type = main
internal_slots = 2
construction_time = 730
construction_time = 1
allowed_domicile_types = { minority_community }
cost = {
@ -11,7 +11,7 @@ minority_community_main_01 = {
character_modifier = {
domicile_monthly_gold_add = 0.25
domicile_monthly_influence_add = 1
health = 0.5
domicile_external_slots_capacity_add = 2
}
@ -95,8 +95,11 @@ minority_community_main_02 = {
character_modifier = {
domicile_monthly_gold_add = 0.25
domicile_monthly_influence_add = 0.5
domicile_external_slots_capacity_add = 1
men_at_arms_cap = 1
enemy_hostile_scheme_phase_duration_add = miniscule_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.02
provisions_capacity_add = 100
}
ai_value = {
@ -180,8 +183,11 @@ minority_community_main_03 = {
character_modifier = {
domicile_monthly_gold_add = 0.5
domicile_monthly_gold_mult = 0.02
domicile_monthly_influence_add = 0.5
domicile_external_slots_capacity_add = 1
maa_toughness_mult = 0.05
enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.02
provisions_capacity_add = 150
}
ai_value = {
@ -265,8 +271,12 @@ minority_community_main_04 = {
character_modifier = {
domicile_monthly_gold_add = 0.5
domicile_monthly_gold_mult = 0.03
domicile_monthly_influence_add = 0.5
domicile_external_slots_capacity_add = 1
maa_toughness_mult = 0.05
men_at_arms_cap = 1
enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.02
provisions_capacity_add = 250
}
ai_value = {
@ -350,8 +360,12 @@ minority_community_main_05 = {
character_modifier = {
domicile_monthly_gold_add = 0.75
domicile_monthly_gold_mult = 0.05
domicile_monthly_influence_add = 0.5
domicile_external_slots_capacity_add = 1
maa_toughness_mult = 0.1
men_at_arms_cap = 1
enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value
character_travel_safety_mult = 0.04
provisions_capacity_add = 300
}
ai_value = {

View file

@ -10,6 +10,7 @@ minority_community = {
map_pin_lobby = yes
travel = yes
provisions = yes
can_move_manually = yes
culture_and_faith = yes
@ -199,71 +200,97 @@ minority_community = {
position = { 19.7% 5.5% }
size = { 15% 30% }
empty_slot_asset = {
trigger = {
owner.culture = {
OR = {
has_graphical_chinese_culture_group_trigger = yes
has_graphical_japanese_culture_group_trigger = yes
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/yurt_empty_slot_01.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_01_mask.png"
}
### EMPTY SLOT GREEN TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = hills
terrain = plains
terrain = forest
terrain = farmlands
terrain = terraced_hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_mask.png"
}
### EMPTY SLOT ROUGH TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = taiga
terrain = steppe
terrain = drylands
terrain = mountains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_rough.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_rough_mask.png"
}
### EMPTY SLOT WETLANDS TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_jungle_empty_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_02_mask.png"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_mask.png"
}
### EMPTY SLOT JUNGLE TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
terrain = jungle
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands_mask.png"
}
### EMPTY SLOT SNOW TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands_mask.png"
}
### EMPTY SLOT DESERT TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_drylands_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = mountains
terrain = hills
terrain = terraced_hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_rough_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_mask.png"
}
empty_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty_05.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_05_mask.png"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands_mask.png"
}
@ -312,6 +339,7 @@ minority_community = {
position = { 49.0% 2.5% }
size = { 15% 30% }
### EMPTY SLOT ASIAN
empty_slot_asset = {
trigger = {
owner.culture = {
@ -322,61 +350,119 @@ minority_community = {
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/yurt_empty_slot_04.dds"
texture = "gfx/interface/window_domiciles/asian_empty_slot_04.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_04_mask.png"
}
### EMPTY SLOT SNOW MOUNTAIN TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
terrain = mountains
OR = {
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_snow_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_snow_02_mask.png"
}
### EMPTY SLOT SNOW TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_snow_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_snow_02_mask.png"
}
### EMPTY SLOT GREEN TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = hills
terrain = plains
terrain = forest
terrain = farmlands
terrain = terraced_hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_02_mask.png"
}
### EMPTY SLOT ROUGH TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = taiga
terrain = steppe
terrain = drylands
terrain = mountains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_rough_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_rough_02_mask.png"
}
### EMPTY SLOT WETLANDS TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_jungle_empty_05.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_05_mask.png"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_green_02_mask.png"
}
### EMPTY SLOT JUNGLE TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
terrain = jungle
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_jungle_03.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_jungle_03_mask.png"
}
### EMPTY SLOT DESERT TERRAIN
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_drylands_empty_03.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_03_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = mountains
terrain = hills
terrain = terraced_hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_rough_empty_03.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_03_mask.png"
}
empty_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty_03.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_03_mask.png"
texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands_03.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands_03_mask.png"
}
@ -987,79 +1073,152 @@ minority_community = {
}
}
# Backgrounds
domicile_asset = {
trigger = {
domicile_location.culture = {
has_graphical_east_asia_culture_group_trigger = yes
}
}
background = "gfx/interface/window_domiciles/estate_background_steppe_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_steppe_terrain_foreground.dds"
ambience = "event:/DLC/CE2/Ambience/2D/Domicile/ce2_amb_2d_domicile_yurt"
}
### MOUNTAIN SNOW BACKGROUND
domicile_asset = {
trigger = {
domicile_location = {
this = root.owner.top_liege.capital_province
terrain = mountains
OR = {
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
}
background = "gfx/interface/window_domiciles/estate_background_urban_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_urban_terrain_foreground.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_byzantine_urban"
background = "gfx/interface/window_domiciles/camp_terrain_snow_mountains_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_snow_mountains_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_rough_lands"
}
### SNOW BACKGROUND
domicile_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
}
background = "gfx/interface/window_domiciles/estate_background_jungle_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_jungle_terrain_foreground.dds"
background = "gfx/interface/window_domiciles/camp_terrain_snow_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_snow_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_rough_lands"
}
### JUNGLE BACKGROUND
domicile_asset = {
trigger = {
domicile_location = {
terrain = jungle
}
}
background = "gfx/interface/window_domiciles/camp_terrain_jungle_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_jungle_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_wetlands"
}
### DESERT BACKGROUND
domicile_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
background = "gfx/interface/window_domiciles/estate_background_dry_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_dry_terrain_foreground.dds"
background = "gfx/interface/window_domiciles/camp_terrain_dry_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_dry_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_dry_lands"
}
### ASIAN BACKGROUND
domicile_asset = {
trigger = {
owner.culture = {
OR = {
has_graphical_chinese_culture_group_trigger = yes
has_graphical_japanese_culture_group_trigger = yes
}
}
}
background = "gfx/interface/window_domiciles/camp_terrain_asian_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_asian_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_green_lands"
}
### GREEN BACKGROUND
domicile_asset = {
trigger = {
domicile_location = {
OR = {
terrain = hills
terrain = mountains
terrain = plains
terrain = forest
terrain = farmlands
terrain = terraced_hills
}
}
}
background = "gfx/interface/window_domiciles/estate_background_rough_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_rough_terrain_foreground.dds"
background = "gfx/interface/window_domiciles/camp_terrain_green_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_green_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_green_lands"
}
### ROUGH BACKGROUND
domicile_asset = {
trigger = {
domicile_location = {
OR = {
terrain = taiga
terrain = steppe
terrain = drylands
terrain = mountains
}
}
}
background = "gfx/interface/window_domiciles/camp_terrain_rough_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_rough_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_rough_lands"
}
### WETLANDS BACKGROUND
domicile_asset = {
background = "gfx/interface/window_domiciles/estate_background_green_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_green_terrain_foreground.dds"
trigger = {
domicile_location = {
OR = {
terrain = wetlands
terrain = floodplains
}
}
}
background = "gfx/interface/window_domiciles/camp_terrain_green_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_green_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_wetlands"
}
domicile_asset = {
trigger = {
domicile_location.culture = {
has_graphical_mena_culture_group_trigger = yes
}
}
background = "gfx/interface/window_domiciles/camp_terrain_dry_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_dry_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_dry_lands"
}
domicile_asset = {
trigger = {
domicile_location.culture = {
has_graphical_western_culture_group_trigger = yes
}
}
background = "gfx/interface/window_domiciles/camp_terrain_rough_bg.dds"
foreground = "gfx/interface/window_domiciles/camp_terrain_rough_fg.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_green_lands"
}
}

View file

@ -554,6 +554,7 @@ landless_minority_government = {
rulers_should_have_dynasty = yes
landless_playable = yes
use_title_tier_modifiers = no
conditional_maa_refill = yes
mercenary = yes
allow_out_of_realm_inheritance = yes
use_as_base_on_landed = yes

View file

@ -15,7 +15,7 @@ maa_regiments_valid_for_cheap_reinforcement_trigger = {
}
maa_regiments_cost_more_to_reinforce_per_soldier_trigger = {
regiment_owner = { government_has_flag = government_is_landless_adventurer }
regiment_owner = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
OR = {
is_unit_type = elephant_cavalry
is_unit_type = siege_weapon
@ -26,7 +26,7 @@ maa_regiments_valid_to_refill_trigger = {
maa_current_troops_count < maa_max_troops_count
trigger_if = {
limit = {
scope:actor = { government_has_flag = government_is_landless_adventurer }
scope:actor = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
is_unit_type = elephant_cavalry
}
scope:actor.domicile ?= { has_domicile_parameter = camp_reinforce_elephant_regiments_anywhere }
@ -405,7 +405,7 @@ valid_laamp_basic_trigger = {
$EMPLOYER$ = {
OR = {
employer = $LAAMP$
NOT = { government_has_flag = government_is_landless_adventurer }
NOT = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
}
}
# Don't offer to work with those who've wronged us.
@ -435,7 +435,7 @@ valid_laamp_basic_trigger = {
}
}
}
$LAAMP$ = { government_has_flag = government_is_landless_adventurer }
$LAAMP$ = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
$LAAMP$ = {
trigger_if = {
limit = { is_at_war = no }

View file

@ -0,0 +1,104 @@
<key> = {
# for grouping together contract types, e.g. mercenary, potentially determines map icon
group = test_group
# Icon used in the UI
icon = "path/to/image.dds"
# Description or 'back-story' of the task contract, defaults to "<key>_desc"
# root = task_contract_type
desc = ""
# Description for request telling 'what to do' in order to complete the contract, defaults to "<key>_request"
# root = task_contract_type
task_contract_request = ""
# Contract owner should travel to contract location to accept and stay there for the duration of the contract
travel = no
# Contract is of a criminal nature
is_criminal = no
# Range setting
# yes - uses diplomatic range to contract employer
# no - uses ADVENTURER_DISTANCE_RESTRICTION define as radius
use_diplomatic_range = no
# Validity Triggers
## Can contract appear? (if triggers are true)
# root - contract owner
# scope:employer - contract employer, can be empty
valid_to_create = {
<trigger>
}
# Can contract be accepted? (if triggers are true)
# root - contract owner
# scope:employer - contract employer, can be empty
valid_to_accept = {
<trigger>
}
# Should contract invalidate? (if triggers are false)
# root - existing contract
valid_to_continue = {
<trigger>
}
# Should not taken contract invalidate? (if triggers are false)
# root - existing contract
valid_to_keep = {
<trigger>
}
# On-Action Effects
## Effects called when contract is created (create_task_contract effect)
on_create = {
<effects>
}
## Effects called when contract is accepted (accept_task_contract effect)
on_accepted = {
<effects>
}
# Effects called when contract is completed successfully, along with rewards (complete_task_contract effect)
on_completed = {
<effects>
}
# Effects called when contract is invalidated (valid_to_continue is false, or invalidate_task_contract effect)
on_invalidated = {
<effects>
}
# Default = no, showing completed contract toast animation
should_show_toast_on_complete = no
# Contract Reward Effects
task_contract_reward = {
#reward name
<string> = {
# Default = no, showing completed contract reward effect desription
should_print_on_complete = no
effect = {
<effects>
}
# Should this possible reward be shown in the UI. It will still be displayed in the effect on completion
# if that's what owner gets
visible = yes
# Is this reward positive 'Upon Success' or negative 'Upon Failure'
# default is yes
positive = yes
}
}
# scripted value how likely this contract type is to be picked when populating for area
# root - contract owner
# scope:employer - contract employer, can be empty
weight = {
value = 0
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,969 @@
##################################################
# INFO
# Extra contracts for laamps.
##################################################
laamp_boost_legitimacy_contract = {
group = laamp_contracts_diplomacy_group
icon = "gfx/interface/icons/scheme_types/diplomacy.dds"
travel = yes
use_diplomatic_range = yes
valid_to_create = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
employer_has_treasury_to_offer_job_trigger = yes
valid_laamp_sensible_start_trigger = yes
scope:employer = {
legitimacy_level <= 2
top_liege = this
is_landed = yes
is_ai = yes
NOR = {
location = root.location
government_has_flag = government_is_theocracy
}
highest_held_title_tier > tier_county
location = {
squared_distance = {
target = root.location
value <= squared_distance_large
}
}
}
}
valid_to_accept = {
# Standard triggers.
valid_laamp_basic_accept_only_trigger = yes
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
}
valid_to_continue = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = root.task_contract_employer
LAAMP = root.task_contract_taker
}
}
valid_to_keep = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = root.task_contract_employer
LAAMP = root.task_contract_taker
}
}
weight = {
# Standard weights.
value = task_contract_weight_interesting_somewhat_rare_value
add = laamp_contracts_weight_up_diplomacy_value
add = laamp_contracts_weight_up_diplomacy_slight_value
add = task_contract_weight_employer_contact_list_value
scope:employer = { multiply = task_contract_weight_by_tier_value }
}
on_create = {
scope:contract = {
save_scope_as = task_contract
task_contract_employer = {
save_scope_as = task_contract_employer
capital_province = {
save_scope_as = task_contract_destination
}
}
set_variable = {
name = task_contract_employer
value = scope:task_contract_employer
}
set_variable = {
name = task_contract_destination
value = scope:task_contract_destination
}
# Make our gold rewards static.
grab_gold_fuzz_number_effect = yes
save_scope_as = task_contract
set_variable = {
name = gold_success_standard
value = task_contract_taker.task_contract_success_gold_gain_full_value
}
}
}
on_accepted = {
save_scope_as = task_contract
task_contract_taker = {
trigger_event = {
id = ep3_contract_event.0510
delayed = yes
}
}
}
task_contract_reward = {
success_standard = {
should_print_on_complete = yes
effect = {
save_scope_as = task_contract
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_value_as = { name = extra_reward value = flag:no }
task_contract_taker = {
send_interface_toast = {
title = laamp_transport_contract.success #Re-using
left_icon = scope:task_contract.task_contract_taker
right_icon = scope:task_contract.task_contract_employer
scope:task_contract = {
# Standard Rewards.
laamp_rewards_disburse_ordinary_currency_effect = {
GOLD = scope:task_contract.var:gold_success_standard
PRESTIGE = task_contract_success_prestige_gain_full_value
PIETY = 0
PROVISIONS = 0
OPINION = task_contract_opinion_standard_reward_value
OPINION_TYPE = succeeded_task_contract_opinion
CONTACT = yes
CONTACT_HOOK = no
EXTRA_REWARD = scope:extra_reward
}
task_contract_employer = {
add_legitimacy = minor_legitimacy_gain
}
}
}
}
}
}
failure_standard = {
positive = no
effect = {
save_scope_as = task_contract
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
save_scope_value_as = { name = extra_reward value = flag:no }
# Standard Penalties.
laamp_rewards_disburse_ordinary_currency_effect = {
GOLD = 0
PRESTIGE = task_contract_failure_prestige_loss_full_value
PIETY = 0
PROVISIONS = task_contract_failure_provisions_gain_minor_value
OPINION = task_contract_opinion_standard_failure_value
OPINION_TYPE = failed_task_contract_opinion
CONTACT = no
CONTACT_HOOK = no
EXTRA_REWARD = scope:extra_reward
}
task_contract_employer = {
add_legitimacy = miniscule_legitimacy_loss
}
}
}
failure_critical = {
positive = no
effect = {
save_scope_as = task_contract
# Standard Penalties.
laamp_rewards_disburse_ordinary_currency_effect = {
GOLD = 0
PRESTIGE = task_contract_failure_prestige_loss_double_value
PIETY = 0
PROVISIONS = task_contract_failure_provisions_gain_minor_value
OPINION = task_contract_opinion_critical_failure_value
OPINION_TYPE = failed_task_contract_opinion
CONTACT = no
CONTACT_HOOK = no
EXTRA_REWARD = scope:extra_reward
}
task_contract_employer = {
add_legitimacy = medium_legitimacy_loss
add_prestige = task_contract_failure_prestige_loss_double_value
add_stress = medium_stress_gain
}
}
}
}
}
laamp_rid_councillor_contract = {
group = laamp_contracts_martial_group
icon = "gfx/interface/icons/scheme_types/martial.dds"
travel = yes
use_diplomatic_range = yes
is_criminal = yes
valid_to_create = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
employer_has_treasury_to_offer_job_trigger = yes
valid_laamp_sensible_start_trigger = yes
scope:employer = {
top_liege = this
is_landed = yes
is_ai = yes
NOT = {
government_has_flag = government_is_theocracy
}
highest_held_title_tier > tier_county #Requires a council
location = { #Not too far away
squared_distance = {
target = root.location
value <= squared_distance_large
}
}
any_councillor = { #Has a councillor who they hate
count > 1
is_ai = yes
reverse_opinion = {
target = scope:employer
value <= high_negative_opinion
}
}
}
}
valid_to_accept = {
# Standard triggers.
valid_laamp_basic_accept_only_trigger = yes
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
}
valid_to_continue = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = root.task_contract_employer
LAAMP = root.task_contract_taker
}
}
valid_to_keep = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = root.task_contract_employer
LAAMP = root.task_contract_taker
}
}
weight = {
# Standard weights.
value = task_contract_weight_interesting_somewhat_rare_value
add = laamp_contracts_weight_up_martial_value
add = laamp_contracts_weight_up_martial_slight_value
add = task_contract_weight_employer_contact_list_value
scope:employer = { multiply = task_contract_weight_by_tier_value }
}
on_create = {
scope:contract = {
save_scope_as = task_contract
task_contract_employer = {
save_scope_as = task_contract_employer
capital_province = {
save_scope_as = task_contract_destination
}
}
set_variable = {
name = task_contract_employer
value = scope:task_contract_employer
}
set_variable = {
name = task_contract_destination
value = scope:task_contract_destination
}
# Make our gold rewards static.
grab_gold_fuzz_number_effect = yes
save_scope_as = task_contract
set_variable = {
name = gold_success_critical
value = task_contract_success_gold_gain_full_value
}
set_variable = {
name = gold_success_standard
value = task_contract_success_gold_gain_half_value
}
}
}
on_accepted = {
save_scope_as = task_contract
task_contract_taker = {
trigger_event = {
id = ep3_contract_event.0550
delayed = no
}
}
}
task_contract_reward = {
success_critical = {
should_print_on_complete = yes
effect = {
save_scope_value_as = { name = extra_reward value = flag:no }
save_scope_as = task_contract
laamp_rewards_disburse_ordinary_currency_effect = {
GOLD = scope:task_contract.var:gold_success_critical
PRESTIGE = task_contract_success_prestige_gain_full_value
PIETY = 0
PROVISIONS = task_contract_success_provisions_gain_major_value
OPINION = task_contract_opinion_excelled_reward_value
OPINION_TYPE = critically_succeeded_task_contract_opinion
CONTACT = yes
CONTACT_HOOK = yes
EXTRA_REWARD = scope:extra_reward
}
}
}
success_standard = {
should_print_on_complete = yes
effect = {
save_scope_value_as = { name = extra_reward value = flag:no }
save_scope_as = task_contract
laamp_rewards_disburse_ordinary_currency_effect = {
GOLD = scope:task_contract.var:gold_success_standard
PRESTIGE = task_contract_success_prestige_gain_half_value
PIETY = 0
PROVISIONS = task_contract_success_provisions_gain_minor_value
OPINION = task_contract_opinion_standard_reward_value
OPINION_TYPE = succeeded_task_contract_opinion
CONTACT = yes
CONTACT_HOOK = no
EXTRA_REWARD = scope:extra_reward
}
task_contract_taker = {
# Update gallowsbait score.
laamp_rewards_apply_criminal_xp_effect = {
TRACK = marauder
XP_MIN = gallowsbait_xp_medium_gain
XP_MAX = gallowsbait_xp_medium_gain
}
}
}
}
failure_standard = {
positive = no
effect = {
save_scope_value_as = { name = extra_reward value = flag:no }
save_scope_as = task_contract
task_contract_taker = {
add_prestige = task_contract_failure_prestige_loss_full_value
add_piety = minor_piety_loss
reverse_add_opinion = {
opinion = -35
modifier = failed_task_contract_opinion
target = scope:task_contract.task_contract_employer
}
# Update gallowsbait score.
laamp_rewards_apply_criminal_xp_effect = {
TRACK = marauder
XP_MIN = gallowsbait_xp_medium_gain
XP_MAX = gallowsbait_xp_medium_gain
}
}
}
}
failure_critical = {
positive = no
effect = {
save_scope_as = task_contract
task_contract_taker = {
add_prestige = task_contract_failure_prestige_loss_double_value
add_piety = medium_piety_loss
add_stress = minor_stress_gain
reverse_add_opinion = {
opinion = -65
modifier = failed_task_contract_opinion
target = scope:task_contract.task_contract_employer
}
# Update gallowsbait score.
laamp_rewards_apply_criminal_xp_effect = {
TRACK = marauder
XP_MIN = gallowsbait_xp_major_gain
XP_MAX = gallowsbait_xp_major_gain
}
}
}
}
}
}
laamp_gain_wanderer_contract = {
group = laamp_contracts_martial_group
icon = "gfx/interface/icons/scheme_types/martial.dds"
travel = yes
use_diplomatic_range = yes
valid_to_create = {
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
valid_laamp_sensible_start_trigger = yes
prestige_level >= 2
scope:employer = {
is_landed = no
is_ai = yes
in_diplomatic_range = root
prestige_level < root.prestige_level
location = { #Not too far away
squared_distance = {
target = root.location
value <= squared_distance_large
}
}
primary_title = {
is_mercenary_company = no
}
NOR = {
government_has_flag = government_is_theocracy
government_allows = administrative
}
}
}
valid_to_accept = {
valid_laamp_basic_accept_only_trigger = yes
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
is_available = yes
prestige_level >= 2
scope:employer = {
is_landed = no
is_ai = yes
in_diplomatic_range = root
prestige_level < root.prestige_level
location = { #Not too far away
squared_distance = {
target = root.location
value <= squared_distance_large
}
}
primary_title = {
is_mercenary_company = no
}
NOR = {
government_has_flag = government_is_theocracy
government_allows = administrative
}
}
}
weight = {
# Keep it rare and use it to fill in gaps between other contracts
value = task_contract_weight_interesting_very_rare_value
}
on_create = {
scope:contract = {
save_scope_as = task_contract
task_contract_employer = {
save_scope_as = task_contract_employer
capital_province = {
save_scope_as = task_contract_destination
}
}
set_variable = {
name = task_contract_employer
value = scope:task_contract_employer
}
set_variable = {
name = task_contract_destination
value = scope:task_contract_destination
}
# Make our gold rewards static.
grab_gold_fuzz_number_effect = yes
save_scope_as = task_contract
set_variable = {
name = gold_success_standard
value = task_contract_success_gold_gain_half_value
}
}
}
on_accepted = {
save_scope_as = task_contract
task_contract_employer = {
save_scope_as = task_contract_employer
capital_province = {
save_scope_as = task_contract_destination
}
}
task_contract_taker = {
trigger_event = {
id = ep3_contract_event.0570
delayed = no
}
}
}
task_contract_reward = {
success_standard = {
should_print_on_complete = yes
effect = {
save_scope_value_as = { name = extra_reward value = flag:no }
save_scope_as = task_contract
laamp_rewards_disburse_ordinary_currency_effect = {
GOLD = scope:task_contract.var:gold_success_standard
PRESTIGE = task_contract_success_prestige_gain_half_value
PIETY = 0
PROVISIONS = 0
OPINION = task_contract_opinion_standard_reward_value
OPINION_TYPE = succeeded_task_contract_opinion
CONTACT = no
CONTACT_HOOK = no
EXTRA_REWARD = scope:extra_reward
}
task_contract_taker = {
add_intrigue_lifestyle_xp = medium_lifestyle_xp
add_courtier = scope:task_contract.task_contract_employer
}
}
}
failure_standard = {
positive = no
effect = {
save_scope_as = task_contract
task_contract_taker = {
add_stress = medium_stress_gain
add_character_modifier = {
modifier = ep3_clumsy_rescuer_modifier
years = 5
}
reverse_add_opinion = {
opinion = -50
modifier = failed_task_contract_opinion
target = scope:task_contract.task_contract_employer
}
}
}
}
}
}
laamp_find_secret_contract = {
group = laamp_contracts_intrigue_group
icon = "gfx/interface/icons/scheme_types/intrigue.dds"
travel = yes
use_diplomatic_range = yes
valid_to_create = {
valid_laamp_basic_accept_only_trigger = yes
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
valid_laamp_sensible_start_trigger = yes
scope:employer = {
is_ai = yes
location = { #Not too far away
squared_distance = {
target = root.location
value <= squared_distance_large
}
}
NOT = {
government_has_flag = government_is_theocracy
}
OR = {
any_courtier_or_guest = {
any_secret = {
count > 0
NOT = { is_known_by = scope:employer }
}
}
any_vassal = {
any_secret = {
count > 0
NOT = { is_known_by = scope:employer }
}
}
}
}
}
valid_to_accept = {
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
scope:employer = {
is_ai = yes
location = { #Not too far away
squared_distance = {
target = root.location
value <= squared_distance_large
}
}
NOT = {
government_has_flag = government_is_theocracy
}
}
}
valid_to_continue = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = root.task_contract_employer
LAAMP = root.task_contract_taker
}
}
valid_to_keep = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = root.task_contract_employer
LAAMP = root.task_contract_taker
}
scope:employer = {
OR = {
any_courtier_or_guest = {
any_secret = {
count > 0
NOT = { is_known_by = scope:employer }
}
}
any_vassal = {
any_secret = {
count > 0
NOT = { is_known_by = scope:employer }
}
}
}
}
}
weight = {
value = task_contract_weight_default_value
add = laamp_contracts_weight_up_intrigue_value
add = task_contract_weight_employer_contact_list_value
scope:employer = { multiply = task_contract_weight_by_tier_value }
}
on_create = {
scope:contract = {
save_scope_as = task_contract
task_contract_employer = {
save_scope_as = task_contract_employer
if = {
limit = {
any_vassal = {
any_secret = {
count > 0
NOT = { is_known_by = scope:task_contract_employer }
}
}
}
random_vassal = {
limit = {
any_secret = {
count > 0
NOT = { is_known_by = scope:task_contract_employer }
}
}
save_scope_as = secret_haver
}
}
else = {
random_courtier_or_guest = {
save_scope_as = secret_haver
}
}
scope:secret_haver.location = {
save_scope_as = task_contract_destination
}
}
set_variable = {
name = task_contract_employer
value = scope:task_contract_employer
}
set_variable = {
name = task_contract_destination
value = scope:task_contract_destination
}
}
scope:contract = {
# Make our gold rewards static.
grab_gold_fuzz_number_effect = yes
save_scope_as = task_contract
set_variable = {
name = gold_success_standard
value = task_contract_success_gold_gain_half_value
}
}
}
on_accepted = {
save_scope_as = task_contract
task_contract_employer = {
save_scope_as = task_contract_employer
if = {
limit = {
any_vassal = {
any_secret = {
count > 0
NOT = { is_known_by = scope:task_contract_employer }
}
}
}
random_vassal = {
limit = {
any_secret = {
count > 0
NOT = { is_known_by = scope:task_contract_employer }
}
}
save_scope_as = secret_haver
}
}
else = {
random_courtier_or_guest = {
save_scope_as = secret_haver
}
}
scope:secret_haver.location = {
save_scope_as = task_contract_destination
}
}
task_contract_taker = {
trigger_event = {
id = ep3_contract_event.0580
delayed = no
}
}
}
task_contract_reward = {
success_standard = {
should_print_on_complete = yes
effect = {
save_scope_value_as = { name = extra_reward value = flag:no }
save_scope_as = task_contract
laamp_rewards_disburse_ordinary_currency_effect = {
GOLD = scope:task_contract.var:gold_success_standard
PRESTIGE = task_contract_success_prestige_gain_half_value
PIETY = 0
PROVISIONS = task_contract_success_provisions_gain_minor_value
OPINION = task_contract_opinion_standard_reward_value
OPINION_TYPE = succeeded_task_contract_opinion
CONTACT = no
CONTACT_HOOK = no
EXTRA_REWARD = scope:extra_reward
}
}
}
failure_standard = {
positive = no
effect = {
save_scope_as = task_contract
task_contract_taker = {
add_stress = minor_stress_gain
add_prestige = task_contract_failure_prestige_loss_full_value
reverse_add_opinion = {
opinion = -50
modifier = failed_task_contract_opinion
target = scope:task_contract.task_contract_employer
}
}
}
}
}
}
laamp_eliminate_heir_contract = {
group = laamp_contracts_intrigue_group
icon = "gfx/interface/icons/scheme_types/intrigue.dds"
travel = yes
use_diplomatic_range = yes
is_criminal = yes
valid_to_create = {
valid_laamp_basic_accept_only_trigger = yes
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
valid_laamp_sensible_start_trigger = yes
scope:employer = {
is_ai = yes
in_diplomatic_range = root
is_landed = yes
location = { #Not too far away
squared_distance = {
target = root.location
value <= squared_distance_large
}
}
NOR = {
government_has_flag = government_is_theocracy
government_allows = administrative
}
AND = { #They have a primary heir they dislike, and another one they like
primary_heir ?= {
reverse_opinion = {
target = scope:employer
value <= high_negative_opinion
}
age > 16 #No murderin' babies
}
any_heir = {
count > 1
}
}
}
}
valid_to_accept = {
valid_laamp_basic_trigger = {
EMPLOYER = scope:employer
LAAMP = root
}
}
valid_to_continue = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = root.task_contract_employer
LAAMP = root.task_contract_taker
}
}
valid_to_keep = {
# Standard triggers.
valid_laamp_basic_trigger = {
EMPLOYER = root.task_contract_employer
LAAMP = root.task_contract_taker
}
}
weight = { #Let's not have this happen too often
value = task_contract_weight_interesting_very_rare_value
add = task_contract_weight_employer_contact_list_value
}
on_create = {
scope:contract = {
save_scope_as = task_contract
task_contract_employer = {
save_scope_as = task_contract_employer
random_heir = {
limit = {
is_primary_heir_of = scope:task_contract_employer
reverse_opinion = {
target = scope:task_contract_employer
value <= high_negative_opinion
}
age > 16 #No murderin' babies
}
save_scope_as = heir
}
scope:heir.location = {
save_scope_as = task_contract_destination
}
}
set_variable = {
name = task_contract_employer
value = scope:task_contract_employer
}
set_variable = {
name = task_contract_destination
value = scope:task_contract_destination
}
# Make our gold rewards static.
grab_gold_fuzz_number_effect = yes
save_scope_as = task_contract
set_variable = {
name = gold_success_standard
value = task_contract_success_gold_gain_full_value
}
}
}
on_accepted = {
save_scope_as = task_contract
task_contract_employer = {
save_scope_as = task_contract_employer
random_heir = {
limit = {
is_primary_heir_of = scope:task_contract_employer
reverse_opinion = {
target = scope:task_contract_employer
value <= high_negative_opinion
}
age > 16 #No murderin' babies
}
save_scope_as = heir
}
random_heir = {
limit = {
NOT = {
is_primary_heir_of = scope:task_contract_employer
}
reverse_opinion = {
target = scope:task_contract_employer
value >= low_positive_opinion
}
}
save_scope_as = favoured_heir
}
scope:heir.location = {
save_scope_as = task_contract_destination
}
}
task_contract_taker = {
trigger_event = {
id = ep3_contract_event.0590
delayed = no
}
}
}
task_contract_reward = {
success_standard = {
should_print_on_complete = yes
effect = {
save_scope_value_as = { name = extra_reward value = flag:no }
save_scope_as = task_contract
laamp_rewards_disburse_ordinary_currency_effect = {
GOLD = scope:task_contract.var:gold_success_standard
PRESTIGE = task_contract_success_prestige_gain_full_value
PIETY = 0
PROVISIONS = task_contract_success_provisions_gain_major_value
OPINION = task_contract_opinion_excelled_reward_value
OPINION_TYPE = succeeded_task_contract_opinion
CONTACT = yes
CONTACT_HOOK = yes
EXTRA_REWARD = scope:extra_reward
}
}
}
failure_standard = {
positive = no
effect = {
save_scope_value_as = { name = extra_reward value = flag:no }
save_scope_as = task_contract
laamp_rewards_disburse_ordinary_currency_effect = {
GOLD = 0
PRESTIGE = task_contract_failure_prestige_loss_full_value
PIETY = 0
PROVISIONS = task_contract_failure_provisions_gain_minor_value
OPINION = task_contract_opinion_standard_failure_value
OPINION_TYPE = failed_task_contract_opinion
CONTACT = no
CONTACT_HOOK = no
EXTRA_REWARD = scope:extra_reward
}
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,468 @@
#############################
# NOMADIC MIGRATION CONTRACTS
#############################
nomadic_migration_contract_1 = { # Disagreeable Herders
group = nomadic_settling_group
icon = "gfx/interface/icons/government_types/government_type_herder.dds"
use_diplomatic_range = no
travel = no
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 1
ARRIVAL_ID = 0005
RESET_ID = 0003
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_1 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
fertility = { effect = { settlement_issue_fertility_reward_effect = yes } }
}
}
nomadic_migration_contract_2 = { # The Wild Herd
group = nomadic_settling_group
icon = "gfx/interface/icons/icon_herd.dds"
use_diplomatic_range = no
travel = no
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 2
ARRIVAL_ID = 0015
RESET_ID = 0013
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_2 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
gold = { effect = { settlement_issue_gold_reward_effect = yes } }
opinion = { effect = { settlement_issue_opinion_reward_effect = { MODIFIER = mpo_si_slaughtered_for_a_feast } } }
}
}
nomadic_migration_contract_3 = { # Contentious Grazelands
group = nomadic_settling_group
icon = "gfx/interface/icons/icon_county_fertility.dds"
use_diplomatic_range = no
travel = no
valid_to_create = {
any_knight = {
count >= 2
is_landed = no
}
any_held_county = {
county_control < 90
NOT = { has_county_modifier = ongoing_settlement_contract }
}
}
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 3
ARRIVAL_ID = 0025
RESET_ID = 0023
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_3 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
opinion = {
effect = {
settlement_issue_character_opinion_reward_effect = {
CHARACTER = root.task_contract_employer
}
}
}
}
}
nomadic_migration_contract_4 = { # A Lack of Tools
group = nomadic_settling_group
icon = "gfx/interface/icons/court_position_types/royal_architect_court_position.dds"
use_diplomatic_range = no
travel = no
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 4
ARRIVAL_ID = 0035
RESET_ID = 0033
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_4 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
}
}
nomadic_migration_contract_5 = { # Fragmentation of the Tribe
group = nomadic_settling_group
icon = "gfx/interface/icons/casus_bellis/ducal_conquest_cb.dds"
use_diplomatic_range = no
travel = no
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 5
ARRIVAL_ID = 0045
RESET_ID = 0043
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_5 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
}
}
nomadic_migration_contract_6 = { # Poisonous Lands
group = nomadic_settling_group
icon = "gfx/interface/icons/court_position_types/court_physician_court_position.dds"
use_diplomatic_range = no
travel = no
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 6
ARRIVAL_ID = 0055
RESET_ID = 0053
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_6 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
}
}
nomadic_migration_contract_7 = { # Troublesome Neighbors
group = nomadic_settling_group
icon = "gfx/interface/icons/casus_bellis/ducal_conquest_cb.dds"
use_diplomatic_range = no
travel = no
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
valid_to_keep = {
custom_tooltip = {
text = migration_contract_county_ownership_text
OR = {
task_contract_location.province_owner = task_contract_taker
task_contract_location.province_owner.liege = task_contract_taker
task_contract_location.province_owner.top_liege = task_contract_taker
}
}
custom_tooltip = {
text = migration_contract_county_alt_text
task_contract_location.county = {
county_control < 90
any_neighboring_county = {
NOT = { owner.top_liege ?= root.top_liege }
}
}
}
}
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 7
ARRIVAL_ID = 0065
RESET_ID = 0063
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_7 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
}
}
nomadic_migration_contract_8 = { # The Leftovers
group = nomadic_settling_group
icon = "gfx/interface/icons/icon_herd.dds"
use_diplomatic_range = no
travel = no
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 8
ARRIVAL_ID = 0075
RESET_ID = 0073
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_8 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
gold = { effect = { settlement_issue_gold_reward_effect = yes } }
fertility = { effect = { settlement_issue_fertility_reward_effect = yes } }
}
}
nomadic_migration_contract_9 = { # Drawing Lines
group = nomadic_settling_group
icon = "gfx/interface/icons/icon_county_fertility.dds"
use_diplomatic_range = no
travel = no
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
valid_to_keep = {
custom_tooltip = {
text = migration_contract_county_ownership_text
OR = {
task_contract_location.province_owner = task_contract_taker
task_contract_location.province_owner.liege = task_contract_taker
task_contract_location.province_owner.top_liege = task_contract_taker
}
}
custom_tooltip = {
text = migration_contract_county_alt_text
task_contract_location.county = {
county_control < 90
any_neighboring_county = {
holder = root.task_contract_taker
}
}
}
}
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 9
ARRIVAL_ID = 0085
RESET_ID = 0083
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_9 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
fertility = { effect = { settlement_issue_fertility_reward_effect = yes } }
}
}
nomadic_migration_contract_10 = { # The Old Tribe
group = nomadic_settling_group
icon = "gfx/interface/icons/icon_culture.dds"
use_diplomatic_range = no
travel = no
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
valid_to_keep = {
custom_tooltip = {
text = migration_contract_county_ownership_text
OR = {
task_contract_location.province_owner = task_contract_taker
task_contract_location.province_owner.liege = task_contract_taker
task_contract_location.province_owner.top_liege = task_contract_taker
}
}
custom_tooltip = {
text = migration_contract_county_alt_text
task_contract_location.county = {
county_control < 90
has_variable = migration_previous_culture
NOT = { var:migration_previous_culture = root.task_contract_taker.culture }
}
}
}
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
valid_to_accept = { is_available = yes }
on_create = { settlement_issue_on_create_effect = yes }
on_accepted = {
settlement_issue_on_accepted_default_effect = {
NUMBER = 10
ARRIVAL_ID = 0095
RESET_ID = 0093
}
}
on_completed = {
task_contract_taker = { remove_variable = nomadic_migration_contract_10 }
}
on_invalidated = {
settlement_issue_on_invalidated_default_effect = yes
}
task_contract_reward = {
control = { effect = { settlement_issue_control_reward_effect = yes } }
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
success = { effect = { settlement_issue_culture_reward_effect = yes } }
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,651 @@
# Unsanctioned deity: Village worships excessively
unsanctioned_deity = {
group = admin_governance_group
icon = "gfx/interface/icons/message_feed/heresy.dds"
valid_to_create = {
valid_governor_contract_trigger = yes
}
valid_to_keep = {
task_contract_taker = { valid_governor_contract_trigger = yes }
valid_governor_contract_basic_trigger = yes
}
valid_to_accept = {
valid_governor_contract_trigger = yes
custom_tooltip = {
text = has_active_governance_issue
num_taken_task_contracts < 1
}
is_available = yes
}
valid_to_continue = {
task_contract_taker = {
valid_governor_contract_trigger = yes
}
}
on_accepted = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
trigger_event = governor_contract_events_tova.0050
}
}
on_completed = {
}
on_invalidated = {
if = {
limit = { governor_contract_invalidated_message_trigger = yes }
governor_contract_invalidated_message_effect = yes
}
}
task_contract_reward = {
success = {
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
custom_tooltip = tgp_admin_contract_success_tt_rewards
}
}
success_failure = {
positive = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
custom_tooltip = tgp_admin_contract_failure_tt
}
}
sanction_deity = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 10 }
change_merit = {
value = minor_merit_gain
multiply = governance_task_contract_tier_value
}
}
task_contract_location.county = {
add_county_modifier = {
modifier = tgp_sanctioned_deity_modifier
years = 10
}
}
}
}
burn_shrine = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 6 }
change_merit = {
value = miniscule_merit_gain
multiply = governance_task_contract_tier_value
}
}
}
}
claim_offerings = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_gold = {
value = scope:task_contract.task_contract_location.monthly_income
multiply = 40
}
change_merit = {
value = miniscule_merit_loss
multiply = governance_task_contract_tier_value
}
if = {
limit = {
secret_siphoned_treasury_is_valid_trigger = {
OWNER = scope:task_contract.task_contract_taker
TARGET = top_liege
}
}
add_secret = {
type = secret_siphoned_treasury
target = top_liege
}
}
}
}
}
debunk_deity = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 4 }
change_merit = {
value = miniscule_merit_gain
multiply = governance_task_contract_tier_value
}
add_character_modifier = {
modifier = tgp_debunked_deity_modifier
years = 10
}
}
}
}
deity_monks = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
change_influence = {
value = miniscule_influence_gain
multiply = governance_task_contract_tier_value
}
add_piety = {
value = medium_piety_gain
multiply = governance_task_contract_tier_value
}
}
}
}
failure_standard = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
task_contract_taker ?= {
change_influence = minor_influence_loss
if = {
limit = {
has_trait = governor
has_trait_xp = {
trait = governor
value > 0
}
}
add_trait_xp = {
trait = governor
value = -5
}
}
}
}
}
}
}
#Escaped Justice
escaped_justice = {
group = admin_governance_group
icon = "gfx/interface/icons/message_feed/marshal_job.dds"
valid_to_create = {
valid_governor_contract_trigger = yes
}
valid_to_keep = {
task_contract_taker = { valid_governor_contract_trigger = yes }
valid_governor_contract_basic_trigger = yes
task_contract_target = {
is_travelling = no
is_imprisoned = no
is_commanding_army = no
}
}
valid_to_accept = {
valid_governor_contract_trigger = yes
custom_tooltip = {
text = has_active_governance_issue
num_taken_task_contracts < 1
}
is_available = yes
}
valid_to_continue = {
task_contract_taker = {
valid_governor_contract_trigger = yes
}
}
on_accepted = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
trigger_event = governor_contract_events_tova.0055
}
}
on_completed = {
}
on_invalidated = {
if = {
limit = { governor_contract_invalidated_message_trigger = yes }
governor_contract_invalidated_message_effect = yes
}
}
task_contract_reward = {
success = {
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
custom_tooltip = tgp_admin_contract_success_tt_rewards
}
}
success_failure = {
positive = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
custom_tooltip = tgp_admin_contract_failure_tt
}
}
escapee_persuade = { #Diplomacy
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 6 }
change_merit = {
value = minor_merit_gain
multiply = governance_task_contract_tier_value
}
}
}
}
escapee_slain = { #Martial duel
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_dread = {
value = medium_dread_gain
multiply = governance_task_contract_tier_value
}
}
task_contract_location.county = {
if = {
limit = { county_control < 100 }
change_county_control = 10
}
}
}
}
escapee_join_monastery = { #Increase Piety
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_piety = {
value = medium_piety_gain
multiply = governance_task_contract_tier_value
}
}
}
}
escapee_shunned = { #Influence Gain
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 4 }
change_influence = {
value = minor_influence_gain
multiply = governance_task_contract_tier_value
}
}
}
}
failure_standard = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
task_contract_taker ?= {
change_influence = minor_influence_loss
}
task_contract_location.county = {
change_county_control = -5
}
}
}
}
}
#Forced Conscription
forced_conscription = {
group = admin_governance_group
icon = "gfx/interface/icons/message_feed/marshal_job.dds"
travel = no
valid_to_create = {
valid_governor_contract_trigger = yes
}
valid_to_keep = {
task_contract_taker = { valid_governor_contract_trigger = yes }
valid_governor_contract_basic_trigger = yes
}
valid_to_accept = {
valid_governor_contract_trigger = yes
custom_tooltip = {
text = has_active_governance_issue
num_taken_task_contracts < 1
}
is_available = yes
}
valid_to_continue = {
task_contract_taker = {
valid_governor_contract_trigger = yes
}
task_contract_employer = {
is_alive = yes
}
}
on_accepted = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
save_scope_as = task_contract
task_contract_employer = {
save_scope_as = recruitment_employer
}
task_contract_taker ?= {
trigger_event = governor_contract_events_tova.0060
}
}
on_completed = {
}
on_invalidated = {
if = {
limit = { governor_contract_invalidated_message_trigger = yes }
governor_contract_invalidated_message_effect = yes
}
}
task_contract_reward = {
success = {
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
custom_tooltip = tgp_admin_contract_success_tt_rewards
}
}
success_failure = {
positive = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
custom_tooltip = tgp_admin_contract_failure_tt
}
}
conscripts_bribed = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_location = {
add_province_modifier = {
modifier = tgp_fattened_vanguard_modifier
years = 10
}
}
task_contract_taker ?= {
remove_short_term_gold = {
value = minor_gold_value
multiply = governance_task_contract_tier_value
}
}
}
}
conscripts_forced = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_location = {
add_province_modifier = {
modifier = tgp_fattened_vanguard_modifier
years = 10
}
}
task_contract_location.county = {
change_county_control = medium_county_control_loss
}
task_contract_taker ?= {
change_influence = {
value = minor_influence_gain
multiply = governance_task_contract_tier_value
}
}
}
}
conscripts_convinced = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_location = {
add_province_modifier = {
modifier = tgp_fattened_vanguard_modifier
years = 10
}
}
task_contract_taker ?= {
change_merit = {
value = minor_merit_gain
multiply = governance_task_contract_tier_value
}
}
}
}
conscripts_trade = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_location.county = {
add_county_modifier = {
modifier = tgp_diligent_workers_modifier
years = 10
}
}
task_contract_taker ?= {
change_merit = {
value = minor_merit_loss
multiply = governance_task_contract_tier_value
}
}
}
}
failure_standard = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
task_contract_taker ?= {
change_influence = minor_influence_loss
}
task_contract_location.county = {
change_county_control = -5
}
}
}
}
}
#Teach Monks Martial Arts
combat_train_monks = {
group = admin_governance_group
icon = "gfx/interface/icons/message_feed/marshal_job.dds"
valid_to_create = {
valid_governor_contract_trigger = yes
}
valid_to_keep = {
task_contract_taker = { valid_governor_contract_trigger = yes }
valid_governor_contract_basic_trigger = yes
}
valid_to_accept = {
valid_governor_contract_trigger = yes
custom_tooltip = {
text = has_active_governance_issue
num_taken_task_contracts < 1
}
is_available = yes
}
valid_to_continue = {
task_contract_taker = {
valid_governor_contract_trigger = yes
}
}
on_accepted = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
trigger_event = governor_contract_events_tova.0065
}
}
on_completed = {
}
on_invalidated = {
if = {
limit = {governor_contract_invalidated_message_trigger = yes }
governor_contract_invalidated_message_effect = yes
}
}
task_contract_reward = {
success = {
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
custom_tooltip = tgp_admin_contract_success_tt_rewards
}
}
success_failure = {
positive = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
custom_tooltip = tgp_admin_contract_failure_tt
}
}
hire_monks_as_maa = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 4 }
}
}
}
hire_monk_as_knight = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
change_influence = minor_influence_loss
}
}
}
train_monks = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
change_influence = {
value = miniscule_influence_gain
multiply = governance_task_contract_tier_value
}
increase_governance_effect = { VALUE = 4 }
}
scope:task_contract.task_contract_location = {
add_province_modifier = {
modifier = tgp_trained_monks_modifier
years = 10
}
}
scope:task_contract.task_contract_location.county = {
if = {
limit = { county_control < 100 }
change_county_control = 10
}
}
}
}
station_troops = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
}
scope:task_contract.task_contract_location = {
add_province_modifier = {
modifier = tgp_stationed_troops_modifier
years = 10
}
}
scope:task_contract.task_contract_location.county = {
if = {
limit = { county_control < 100 }
change_county_control = 10
}
}
}
}
let_marshal_handle = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
scope:task_contract.task_contract_location = {
add_province_modifier = {
modifier = tgp_adequately_trained_monks_modifier
years = 10
}
}
scope:task_contract.task_contract_location.county = {
if = {
limit = { county_control < 100 }
change_county_control = 10
}
}
}
}
failure_standard = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
task_contract_taker ?= {
change_influence = minor_influence_loss
}
task_contract_location.county = {
change_county_control = -5
}
}
}
}
}

View file

@ -0,0 +1,180 @@
missing_equipment = {
group = admin_governance_group
icon = "gfx/interface/icons/message_feed/marshal_job.dds"
valid_to_create = {
valid_governor_contract_trigger = yes
}
valid_to_keep = {
task_contract_taker = { valid_governor_contract_trigger = yes }
valid_governor_contract_basic_trigger = yes
}
valid_to_accept = {
valid_governor_contract_trigger = yes
custom_tooltip = {
text = has_active_governance_issue
num_taken_task_contracts < 1
}
is_available = yes
}
valid_to_continue = {
task_contract_taker = {
valid_governor_contract_trigger = yes
}
}
on_accepted = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
root.task_contract_location.barony = {
save_scope_as = task_contract_location
}
trigger_event = tgp_governor_contract_event.2000
}
}
on_completed = {
}
on_invalidated = {
if = {
limit = { governor_contract_invalidated_message_trigger = yes }
governor_contract_invalidated_message_effect = yes
}
}
task_contract_reward = {
success = {
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
custom_tooltip = tgp_admin_contract_success_tt_rewards
}
}
success_failure = {
positive = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
custom_tooltip = tgp_admin_contract_failure_tt
}
}
secure_future_deliveries = { # Good governance option
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 10 }
change_merit = {
value = medium_merit_value
multiply = governance_task_contract_tier_value
}
every_held_title = {
limit = { tier = tier_county }
custom = custom.every_held_county_capital
title_province = {
add_province_modifier = {
modifier = tgp_well_equipped_soldiers_modifier
years = 15
}
}
}
}
scope:task_contract.task_contract_location.county = {
if = {
limit = { county_control < 100 }
change_county_control = 5
}
}
}
}
demand_extra_shipment = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 6 }
every_held_title = {
limit = { tier = tier_county }
custom = custom.every_held_county_capital
title_province = {
add_province_modifier = {
modifier = tgp_well_equipped_soldiers_modifier
years = 10
}
}
}
}
}
}
demand_gold = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 2 }
add_gold = medium_gold_value
}
}
}
demand_best_equipment = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 4 }
capital_province ?= {
add_province_modifier = {
modifier = tgp_greatly_equipped_soldiers_modifier
years = 15
}
}
}
}
}
offered_replacements = { # Default outcome if you visit the workshop. Same as "buy_replacements" but without the cost.
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 4 }
}
}
}
buy_replacements = { # Safe opt-out if you don't want to travel
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
remove_short_term_gold = medium_gold_value
increase_governance_effect = { VALUE = 4 }
}
}
}
failure_standard = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
change_influence = {
value = minor_influence_loss
multiply = governance_task_contract_tier_value
}
}
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,685 @@
#TODO_CD_TGP_AJ; merit needs to be added for all relevant options (positive and negative) for use in China
tgp_food_shortage = { #Food Shortage
group = admin_governance_group
icon = "gfx/interface/icons/situation_types/natural_disaster_generic.dds"
valid_to_create = {
valid_governor_contract_trigger = yes
}
valid_to_keep = {
task_contract_taker = { valid_governor_contract_trigger = yes }
valid_governor_contract_basic_trigger = yes
}
valid_to_accept = {
valid_governor_contract_trigger = yes
custom_tooltip = {
text = has_active_governance_issue
num_taken_task_contracts < 1
}
is_available = yes
}
valid_to_continue = {
task_contract_taker = {
valid_governor_contract_trigger = yes
}
}
on_accepted = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
root.task_contract_location.barony = {
save_scope_as = task_contract_location
}
trigger_event = tgp_natural_disaster_contract_event.0001
}
}
on_completed = {
}
on_invalidated = {
if = {
limit = { governor_contract_invalidated_message_trigger = yes }
governor_contract_invalidated_message_effect = yes
}
}
task_contract_reward = {
success = {
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
custom_tooltip = tgp_admin_contract_natural_disaster_tt_rewards
}
}
failure = {
positive = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
custom_tooltip = tgp_admin_contract_natural_disaster_failure_tt
}
}
distribution_of_food = { # Good governance option
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 10 }
add_diplomacy_lifestyle_xp = medium_lifestyle_xp
add_character_modifier = {
modifier = tgp_distribution_of_food_character_modifier
years = 10
}
change_influence = minor_influence_loss
every_vassal = {
limit = {
is_adult = yes
}
add_stress = minor_stress_impact_gain
remove_short_term_gold = minor_gold_value
}
}
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_distribution_of_food_modifier
years = 10
}
}
}
}
pay_from_own_pocket = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_learning_lifestyle_xp = minor_lifestyle_xp
add_piety = minor_piety_gain
add_character_modifier = {
modifier = tgp_pay_from_own_pocket_character_modifier
years = 10
}
remove_short_term_gold = medium_gold_value
}
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_pay_from_own_pocket_modifier
years = 10
}
}
}
}
haggle_with_merchants = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
send_interface_toast = {
title = tgp_natural_disaster_contract_event.0002.c.tt.success
left_icon = scope:task_contract.task_contract_taker
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_haggle_with_merchants_modifier
years = 10
}
}
add_stewardship_lifestyle_xp = medium_lifestyle_xp
remove_short_term_gold = minor_gold_value
}
}
}
}
haggle_with_merchants_failure = {
visible = no
effect = {
task_contract_taker ?= {
send_interface_toast = {
title = tgp_natural_disaster_contract_event.0002.c.tt.failure
left_icon = scope:task_contract.task_contract_taker
add_prestige = minor_prestige_loss
}
}
}
}
demand_food_from_nobles = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
change_influence = minor_influence_loss
add_diplomacy_lifestyle_xp = minor_lifestyle_xp
}
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_demand_food_from_nobles_modifier
years = 10
}
}
}
}
failure_standard = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
change_influence = {
value = medium_influence_loss
multiply = governance_task_contract_tier_value
}
add_piety = {
value = minor_piety_loss
multiply = governance_task_contract_tier_value
}
}
}
}
}
}
tgp_ravaged_buildings = { #Destroyed by Nature
group = admin_governance_group
icon = "gfx/interface/icons/situation_types/natural_disaster_generic.dds"
valid_to_create = {
valid_governor_contract_trigger = yes
}
valid_to_keep = {
task_contract_taker = { valid_governor_contract_trigger = yes }
valid_governor_contract_basic_trigger = yes
}
valid_to_accept = {
valid_governor_contract_trigger = yes
custom_tooltip = {
text = has_active_governance_issue
num_taken_task_contracts < 1
}
is_available = yes
}
valid_to_continue = {
task_contract_taker = {
valid_governor_contract_trigger = yes
}
}
on_accepted = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
root.task_contract_location.barony = {
save_scope_as = task_contract_location
}
trigger_event = tgp_natural_disaster_contract_event.0005
}
}
on_completed = {
}
on_invalidated = {
if = {
limit = { governor_contract_invalidated_message_trigger = yes }
governor_contract_invalidated_message_effect = yes
}
}
task_contract_reward = {
success = {
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
custom_tooltip = tgp_admin_contract_natural_disaster_tt_rewards
}
}
failure = {
positive = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
custom_tooltip = tgp_admin_contract_natural_disaster_failure_tt
}
}
rebuild_settlement = { # Good governance option
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 10 }
add_stewardship_lifestyle_xp = medium_lifestyle_xp
add_character_modifier = {
modifier = tgp_rebuild_settlement_character_modifier
years = 10
}
}
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_rebuild_settlement_modifier
years = 10
}
}
}
}
temporary_shelters = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_diplomacy_lifestyle_xp = minor_lifestyle_xp
add_piety = minor_piety_gain
}
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_temporary_shelters_modifier
years = 10
}
}
}
}
remove_debris = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
send_interface_toast = {
title = tgp_natural_disaster_contract_event.0006.c.tt.success
left_icon = scope:task_contract.task_contract_taker
add_piety = minor_piety_gain
add_stewardship_lifestyle_xp = minor_lifestyle_xp
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_remove_debris_modifier
years = 10
}
}
}
}
}
}
remove_debris_failure = {
visible = no
effect = {
task_contract_taker ?= {
send_interface_toast = {
title = tgp_natural_disaster_contract_event.0006.c.tt.failure
left_icon = root
change_influence = minor_influence_loss
}
}
}
}
labor_exchange = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_character_modifier = {
modifier = tgp_labor_exchange_character_modifier
years = 10
}
}
}
}
failure_standard = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
change_influence = {
value = medium_influence_loss
multiply = governance_task_contract_tier_value
}
add_piety = {
value = minor_piety_loss
multiply = governance_task_contract_tier_value
}
}
}
}
}
}
tgp_medieval_medicine = { #Treating the Unfortunate
group = admin_governance_group
icon = "gfx/interface/icons/situation_types/natural_disaster_generic.dds"
valid_to_create = {
valid_governor_contract_trigger = yes
}
valid_to_keep = {
task_contract_taker = { valid_governor_contract_trigger = yes }
valid_governor_contract_basic_trigger = yes
}
valid_to_accept = {
valid_governor_contract_trigger = yes
custom_tooltip = {
text = has_active_governance_issue
num_taken_task_contracts < 1
}
is_available = yes
}
valid_to_continue = {
task_contract_taker = {
valid_governor_contract_trigger = yes
}
}
on_accepted = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
root.task_contract_location.barony = {
save_scope_as = task_contract_location
}
trigger_event = tgp_natural_disaster_contract_event.0010
}
}
on_completed = {
}
on_invalidated = {
if = {
limit = { governor_contract_invalidated_message_trigger = yes }
governor_contract_invalidated_message_effect = yes
}
}
task_contract_reward = {
success = {
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
custom_tooltip = tgp_admin_contract_natural_disaster_tt_rewards
}
}
failure = {
positive = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
custom_tooltip = tgp_admin_contract_natural_disaster_failure_tt
}
}
assisting_physician = { # Good governance option
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
increase_governance_effect = { VALUE = 10 }
if = {
limit = {
employs_court_position = court_physician_court_position
}
random = {
chance = 50
court_position:court_physician_court_position = {
add_learning_skill = 1
}
add_learning_lifestyle_xp = medium_lifestyle_xp
}
}
}
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_assisting_physician_modifier
years = 10
}
}
}
}
medical_assistance = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
send_interface_toast = {
title = tgp_natural_disaster_contract_event.0011.b.tt.success
left_icon = scope:task_contract.task_contract_taker
add_character_modifier = {
modifier = tgp_medical_assistance_character_modifier
years = 10
}
add_learning_lifestyle_xp = minor_lifestyle_xp
add_piety = minor_piety_gain
}
}
}
}
medical_assistance_failure = {
visible = no
effect = {
task_contract_taker ?= {
send_interface_toast = {
title = tgp_natural_disaster_contract_event.0011.b.tt.failure
left_icon = scope:task_contract.task_contract_taker
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_medical_assistance_modifier
years = 10
}
}
}
}
}
}
prayers_to_the_people = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_learning_lifestyle_xp = minor_lifestyle_xp
add_piety = minor_piety_gain
add_character_modifier = {
modifier = tgp_prayers_to_the_people_character_modifier
years = 10
}
}
}
}
better_pay_up = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_gold = medium_gold_value
add_piety = medium_piety_loss
}
}
}
failure_standard = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
change_influence = {
value = medium_influence_loss
multiply = governance_task_contract_tier_value
}
add_piety = {
value = minor_piety_loss
multiply = governance_task_contract_tier_value
}
}
}
}
}
}
tgp_disaster_displacement = { #Provisional Relocation
group = admin_governance_group
icon = "gfx/interface/icons/situation_types/natural_disaster_generic.dds"
valid_to_create = {
valid_governor_contract_trigger = yes
}
valid_to_keep = {
task_contract_taker = { valid_governor_contract_trigger = yes }
valid_governor_contract_basic_trigger = yes
}
valid_to_accept = {
valid_governor_contract_trigger = yes
custom_tooltip = {
text = has_active_governance_issue
num_taken_task_contracts < 1
}
is_available = yes
}
valid_to_continue = {
task_contract_taker = {
valid_governor_contract_trigger = yes
}
}
on_accepted = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
root.task_contract_location.barony = {
save_scope_as = task_contract_location
}
trigger_event = tgp_natural_disaster_contract_event.0015
}
}
on_completed = {
}
on_invalidated = {
if = {
limit = { governor_contract_invalidated_message_trigger = yes }
governor_contract_invalidated_message_effect = yes
}
}
task_contract_reward = {
success = {
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
custom_tooltip = tgp_admin_contract_natural_disaster_tt_rewards
}
}
failure = {
positive = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
custom_tooltip = tgp_admin_contract_natural_disaster_failure_tt
}
}
deployed_troops = { # Good governance option
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
send_interface_toast = {
title = tgp_natural_disaster_contract_event.0016.a.tt.success
left_icon = scope:task_contract.task_contract_taker
increase_governance_effect = { VALUE = 10 }
add_martial_lifestyle_xp = medium_lifestyle_xp
add_character_modifier = {
modifier = tgp_deployed_troops_character_modifier
years = 10
}
}
}
}
}
deployed_troops_failure = {
visible = no
effect = {
save_scope_as = task_contract
task_contract_taker ?= {
send_interface_toast = {
title = tgp_natural_disaster_contract_event.0016.a.tt.failure
left_icon = scope:task_contract.task_contract_taker
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_deployed_troops_modifier
years = 10
}
}
}
}
}
}
setting_an_example = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_dread = medium_dread_gain
add_character_modifier = {
modifier = tgp_setting_an_example_character_modifier
years = 10
}
}
}
}
confiscate_for_personal_inspection = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
add_gold = medium_gold_value
add_piety = medium_piety_loss
}
}
}
paying_off_the_looters = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
remove_short_term_gold = medium_gold_value
scope:task_contract.task_contract_location.county = {
add_county_modifier = {
modifier = tgp_paying_off_the_looters_modifier
years = 10
}
}
}
}
}
failure_standard = {
visible = no
effect = {
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
save_scope_as = task_contract
task_contract_taker ?= {
change_influence = {
value = medium_influence_loss
multiply = governance_task_contract_tier_value
}
add_piety = {
value = minor_piety_loss
multiply = governance_task_contract_tier_value
}
}
}
}
}
}

View file

@ -470,7 +470,7 @@ widget = {
vbox = {
widget_hud_main_tab = {
name = "tab_decisions" #tutorial uses this
visible = "[Not(GetPlayer.GetGovernment.IsType( 'landless_adventurer_government' ))]"
visible = "[Not(Or(GetPlayer.GetGovernment.IsType( 'landless_adventurer_government' ) GetPlayer.GetGovernment.IsType( 'landless_minority_government' )))]"
blockoverride "maintab_button"
{
@ -485,7 +485,7 @@ widget = {
widget_hud_main_tab = {
name = "tab_contracts"
visible = "[GetPlayer.GetGovernment.IsType( 'landless_adventurer_government' )]"
visible = "[Or(GetPlayer.GetGovernment.IsType( 'landless_adventurer_government' ) GetPlayer.GetGovernment.IsType( 'landless_minority_government' ))]"
blockoverride "maintab_button"
{
@ -6368,7 +6368,7 @@ types HUD
widget = {
name = "provisions"
visible = "[IsLandlessAdventurer( GetPlayer )]"
visible = "[Or(IsLandlessAdventurer( GetPlayer ) GetPlayer.GetGovernment.IsType( 'landless_minority_government' ) )]"
size = { 112 70 }
widget = {

View file

@ -2757,7 +2757,7 @@
game_concept_minority_government: "Minority Community Leader"
game_concept_minority_government_desc: "A $Minority Community Leader$ is an [unlanded|E] [character|E] who leads a [minority_community_i|E]$Minority Community$."
game_concept_minority_community: "Minority Community"
game_concept_minority_community_desc: "A Minority Community is a small culturally distinct portion of the population typically with a local community leader"
game_concept_minority_community_desc: "Minority Communities are ethnic, religious or linguistic groups who form a distinctive shared identity, often forming enclaves in urban or rural areas in the region they inhabit, which differ significantly from the surrounding majority population. These communities are not tied to land, able to move to elsewhere once a generation."
minority_community_main_01_domicile_building: "Minority Community"
minority_community_main_01_domicile_building_desc: "A Minority Community is a small culturally distinct portion of the population typically with a local community leader"
minority_community_main_02_domicile_building: "Minority Community"
@ -2776,7 +2776,7 @@
duke_landless_minority_community_female_minority_community: "Mistress"
spouse_landless_minority_community_male: "Master"
spouse_landless_minority_community_holder_female: "Mistress"
d_laamp_test_jewish:0 "$congregationist$ Community"
d_laamp_test_jewish:0 "$congregationist$ Community of $dynn_britannia_kohn$"
d_laamp_test_jewish_adj:0 "Jewish"
d_laamp_test_jewish_article:0 "The "
minority_community_domicile_title: "[CHARACTER.GetFirstNamePossessiveNoTooltip] $game_concept_minority_community$"
@ -2789,4 +2789,4 @@
MINORITY_COMMUNITY_BUILDINGS: "[manor_buildings|E]"
minority_community_move_desc: "#T Move $minority_community_type$#!\nMove your [game_concept_minority_community|E] to another [barony|E] within the [realm|E].\n@alert_icon! #alert_trial You will be unable to move it again for [EmptyScope.ScriptValue('estate_move_cooldown_value')|V0] days#!\n\n#S Cost:\n#![GetCostString( DOMICILE_TYPE.GetMoveCost( Character.Self ) )]\n\n#P Click to move your $minority_community_type$#!"
MINORITY_COMMUNITY_CONCEPT: "[game_concept_minority_community|E]"
domicile_minority_community: "the [CHARACTER.GetFaith.GetNameNoTooltip] $minority_community_type$"
domicile_minority_community: "the [CHARACTER.GetFaith.GetNameNoTooltip] $Community$ of [CHARACTER.GetHouse.GetNameNoTooltip]"