diff --git a/common/character_interactions/offer_player_vassalage.txt b/common/character_interactions/offer_player_vassalage.txt index 515a53c1..c73d7052 100644 --- a/common/character_interactions/offer_player_vassalage.txt +++ b/common/character_interactions/offer_player_vassalage.txt @@ -21,13 +21,14 @@ is_alive = yes is_mercenary = no is_ruler = yes - is_ai = no + employer = { NOR = { tag = PIR tag = REB tag = BAR } + is_ai = no } NOT = { this = scope:actor.current_ruler diff --git a/common/modifier_icons/00_hmo_modifier_icons.txt b/common/modifier_icons/00_hmo_modifier_icons.txt new file mode 100644 index 00000000..2da36173 --- /dev/null +++ b/common/modifier_icons/00_hmo_modifier_icons.txt @@ -0,0 +1,90 @@ +### HMO Modifiers + +onekman_cost_modifier = { + positive = "gfx/interface/icons/modifiers/local_manpower.dds" +} +fivekman_cost_modifier = { + positive = "gfx/interface/icons/modifiers/local_manpower.dds" +} +tenkman_cost_modifier = { + positive = "gfx/interface/icons/modifiers/local_manpower.dds" +} +fiftykman_cost_modifier = { + positive = "gfx/interface/icons/modifiers/local_manpower.dds" +} +tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +slave_move_yes = { + positive = "gfx/interface/icons/modifiers/slaves_move_cost_modifier.dds" +} +slave_move_no = { + positive = "gfx/interface/icons/modifiers/slave_workpower.dds" +} + + + +### not having these causes errors +archers_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +camels_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +engineer_cohort_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +heavy_cavalry_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +heavy_infantry_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +horse_archers_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +light_cavalry_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +light_infantry_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +marines_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +supply_train_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +warelephant_tributary_terrain_combat_bonus = { + positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" +} +large_town_building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} +Market_Town_Building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} +Farming_Town_building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} +Mining_Town_Building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} +Horse_Ranch_building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} +Steppe_Horse_Ranch_building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} +Elephant_Ranch_building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} +camel_ranch_building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} +Vineyard_building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} +Industry_Town_building_cost = { + positive = "gfx/interface/icons/modifiers/build_cost.dds" +} \ No newline at end of file diff --git a/common/modifier_icons/MP_modifier_icons.txt b/common/modifier_icons/MP_modifier_icons.txt index 7c36a2ab..829ea0a8 100644 --- a/common/modifier_icons/MP_modifier_icons.txt +++ b/common/modifier_icons/MP_modifier_icons.txt @@ -81,84 +81,4 @@ marines_riverine_terrain_combat_bonus = { marines_impassable_terrain_combat_bonus = { positive = "gfx/interface/icons/modifiers/marines_hills_combat_bonus.dds" -} - - -onekman_cost_modifier = { - positive = "gfx/interface/icons/modifiers/local_manpower.dds" -} -fivekman_cost_modifier = { - positive = "gfx/interface/icons/modifiers/local_manpower.dds" -} -tenkman_cost_modifier = { - positive = "gfx/interface/icons/modifiers/local_manpower.dds" -} -fiftykman_cost_modifier = { - positive = "gfx/interface/icons/modifiers/local_manpower.dds" -} -tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -archers_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -camels_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -engineer_cohort_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -heavy_cavalry_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -heavy_infantry_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -horse_archers_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -light_cavalry_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -light_infantry_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -marines_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -supply_train_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -warelephant_tributary_terrain_combat_bonus = { - positive = "gfx/interface/icons/modifiers/riverine_terrain_combat_bonus.dds" -} -large_town_building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" -} -Market_Town_Building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" -} -Farming_Town_building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" -} -Mining_Town_Building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" -} -Horse_Ranch_building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" -} -Steppe_Horse_Ranch_building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" -} -Elephant_Ranch_building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" -} -camel_ranch_building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" -} -Vineyard_building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" -} -Industry_Town_building_cost = { - positive = "gfx/interface/icons/modifiers/build_cost.dds" } \ No newline at end of file diff --git a/common/modifiers/00_hardcoded_HMO.txt b/common/modifiers/00_hardcoded_HMO.txt index 4030f639..fdc92d01 100644 --- a/common/modifiers/00_hardcoded_HMO.txt +++ b/common/modifiers/00_hardcoded_HMO.txt @@ -21,9 +21,6 @@ number_of_prisoners_abroad = { corruption = { local_monthly_state_loyalty = -0.25 monthly_local_governor_wage = 0.5 - local_manpower_modifier = -1.5 - local_tax_modifier = -1.5 - #local_output_modifier = -1 } ########################################################################## diff --git a/common/modifiers/00_slave_move.txt b/common/modifiers/00_slave_move.txt new file mode 100644 index 00000000..8890a23c --- /dev/null +++ b/common/modifiers/00_slave_move.txt @@ -0,0 +1,6 @@ +slave_move_yes = { + +} +slave_move_no = { + +} \ No newline at end of file diff --git a/common/modifiers/TTC.txt b/common/modifiers/00_special_towns.txt similarity index 95% rename from common/modifiers/TTC.txt rename to common/modifiers/00_special_towns.txt index 1b425ae9..34904f08 100644 --- a/common/modifiers/TTC.txt +++ b/common/modifiers/00_special_towns.txt @@ -24,10 +24,4 @@ MarketPort = { local_citizen_output = 0.15 local_freemen_output = 0.03 local_base_trade_routes_modifier = 0.050 -} -slave_move_yes = { - -} -no_slave_move = { - } \ No newline at end of file diff --git a/common/modifiers/regency_modifiers_ck2_0.txt b/common/modifiers/regency_modifiers_ck2_0.txt index 28ad50d7..f3467905 100644 --- a/common/modifiers/regency_modifiers_ck2_0.txt +++ b/common/modifiers/regency_modifiers_ck2_0.txt @@ -6,7 +6,6 @@ commander_king = { monthly_character_popularity = 0.25 } - family_reorganisation = { monthly_character_popularity = 0.1 } diff --git a/common/on_action/00_on_invention.txt b/common/on_action/00_on_invention.txt index be509cd5..8ff20218 100644 --- a/common/on_action/00_on_invention.txt +++ b/common/on_action/00_on_invention.txt @@ -1,5 +1,6 @@ on_invention = { events = { invention.1 + invention.2 } } \ No newline at end of file diff --git a/common/scripted_guis/slave_movement.txt b/common/scripted_guis/slave_movement.txt index 861840f8..4a0f6c5d 100644 --- a/common/scripted_guis/slave_movement.txt +++ b/common/scripted_guis/slave_movement.txt @@ -1,8 +1,10 @@ -slave_movement = { +allow_slave_movement = { scope = province + ai_is_valid = { always = no } + is_valid = { NOT = { total_population >= population_cap @@ -16,6 +18,7 @@ value = yes } } + if = { limit = { has_province_modifier = slave_move_yes @@ -30,21 +33,25 @@ } } } -no_slave_movement = { + +forbid_slave_movement = { scope = province + ai_is_valid = { always = no } + effect = { if = { limit = { - has_province_modifier = no_slave_move + has_province_modifier = slave_move_no } - remove_province_modifier = no_slave_move + + remove_province_modifier = slave_move_no } else = { add_province_modifier = { - name = no_slave_move + name = slave_move_no duration = -1 } } diff --git a/common/unit_abilities/disband_levy.txt b/common/unit_abilities/disband_levy.txt index 872dde41..4f9af127 100644 --- a/common/unit_abilities/disband_levy.txt +++ b/common/unit_abilities/disband_levy.txt @@ -86,7 +86,7 @@ } } - debug_log = "levy [THIS.Var('country_levy_start_xp').GetValue]" + # debug_log = "levy [THIS.Var('country_levy_start_xp').GetValue]" scope:levy_unit.unit_owner = { add_military_experience = { diff --git a/events/distinctions.txt b/events/distinctions.txt index 7ae8c672..e9753593 100644 --- a/events/distinctions.txt +++ b/events/distinctions.txt @@ -19,6 +19,7 @@ distinction.7 = { # Primigenia ordered_legion_unit = { order_by = unit_size save_scope_as = primagena_legion_leader + save_scope_as = actor } add_distinction = distinction_legio_primagena ROOT = { diff --git a/events/inventions.txt b/events/inventions.txt index 173545e5..08e940dd 100644 --- a/events/inventions.txt +++ b/events/inventions.txt @@ -5,14 +5,11 @@ invention.1 = { hidden = yes trigger = { - OR = { - NOT = { - has_variable = inv_check - } - var:inv_check <= 4 + NOT = { + has_variable = inv_check } - OR = { + military_tech = 0 mil_tech_check = 0 ora_tech_check = 0 civ_tech_check = 0 @@ -24,39 +21,42 @@ invention.1 = { if = { limit = { OR = { - NOT = { has_variable = inv_check } + military_tech = 0 + OR = { + military_tech >= 5 + oratory_tech >= 5 + civic_tech >= 5 + religious_tech >= 5 + } } } + #debug_log = "add inventions" + add_innovation = 4 - } - if = { - limit = { - has_variable = inv_check - } - change_variable = { - name = inv_check - add = 1 - } - } - else = { set_variable = { name = inv_check value = 1 } } - - if = { - limit = { - var:inv_check = 4 - mil_tech_check >= 1 - ora_tech_check >= 1 - civ_tech_check >= 1 - rel_tech_check >= 1 - } + } +} - remove_variable = inv_check - } +invention.2 = { + type = country_event + hidden = yes + + trigger = { + has_variable = inv_check + mil_tech_check > 0 + ora_tech_check > 0 + civ_tech_check > 0 + rel_tech_check > 0 + } + + immediate = { + #debug_log = "remove inventions" + remove_variable = inv_check } } \ No newline at end of file diff --git a/events/ml_battle_master_distinctions.txt b/events/ml_battle_master_distinctions.txt index b2f129b3..2416576b 100644 --- a/events/ml_battle_master_distinctions.txt +++ b/events/ml_battle_master_distinctions.txt @@ -50,6 +50,9 @@ ml_battle_master.1 = { scope:actor.legion = { OR = { has_distinction = distinction_battle_master_01 + has_distinction = distinction_battle_master_02 + has_distinction = distinction_battle_master_03 + has_distinction = distinction_battle_master_04 } } } @@ -79,6 +82,8 @@ ml_battle_master.1 = { scope:actor.legion = { OR = { has_distinction = distinction_battle_master_02 + has_distinction = distinction_battle_master_03 + has_distinction = distinction_battle_master_04 } } } @@ -102,6 +107,7 @@ ml_battle_master.1 = { scope:actor.legion = { OR = { has_distinction = distinction_battle_master_03 + has_distinction = distinction_battle_master_04 } } } diff --git a/events/slave_move.txt b/events/slave_move.txt index 5d12b9b1..46cf9eea 100644 --- a/events/slave_move.txt +++ b/events/slave_move.txt @@ -8,53 +8,189 @@ slave_move.1 = { treasury > 5 exists = var:slave_moves any_owned_province = { - OR = { + AND = { has_province_modifier = slave_move_yes - NOT = {has_province_modifier = no_slave_move} total_population < population_cap } } } immediate = { - random_owned_province = { + # spread out event to avoid performance bottleneck + every_owned_province = { limit = { - OR = { - has_province_modifier = slave_move_yes - } + has_province_modifier = slave_move_yes } - ROOT = { - add_treasury = -5 + + trigger_event = { + id = slave_move.2 + days = 9 } - save_scope_as = slave_move_province } + } +} + +slave_move.2 = { + type = province_event + hidden = yes - random_owned_province = { + immediate = { + #check neighbors first for slaves + random_neighbor_province = { limit = { NOT = { - has_province_modifier = slave_move_yes - has_province_modifier = no_slave_move + has_province_modifier = slave_move_no } + owner = ROOT.owner total_population > 1 any_pops_in_province = { pop_type = slaves + pop_can_move = yes } } - random_pops_in_province = { + + if = { limit = { - pop_type = slaves - pop_can_move = yes + exists = this } - move_pop = scope:slave_move_province + + save_scope_as = slave_move_province } - scope:slave_move_province = { - if = { + } + + #if no slaves in neighbors, check whole province + if = { + limit = { + NOT = { + exists = scope:slave_move_province + } + } + + ROOT.state = { + random_state_province = { limit = { - total_population >= population_cap + NOR = { + has_province_modifier = slave_move_no + this = ROOT + } + owner = ROOT.owner + total_population > 1 + any_pops_in_province = { + pop_type = slaves + pop_can_move = yes + } + } + + if = { + limit = { + exists = this + } + + save_scope_as = slave_move_province } + } + } + } + + # if no available provinces with slaves turn move off to save performance + # allow 3 retries + if = { + limit = { + NOT = { + exists = scope:slave_move_province + } + } + + if = { + limit = { + has_variable = slave_move_fail_count + } + + change_variable = { + name = slave_move_fail_count + add = 1 + } + } + else = { + set_variable = { + name = slave_move_fail_count + value = 1 + } + } + + if = { + limit = { + var:slave_move_fail_count >= 3 + } + + debug_log = "failed count" + + ROOT = { remove_province_modifier = slave_move_yes } } } + + #move found slaves + if = { + limit = { + exists = scope:slave_move_province + } + + scope:slave_move_province = { + random_pops_in_province = { + limit = { + pop_type = slaves + pop_can_move = yes + } + + ROOT.owner = { + # check for vegetable surplus bonus + if = { + limit = { + capital_scope.state = { + trade_good_surplus = { + target = vegetables + value >= 2 + } + } + } + + add_treasury = { + value = -5 + multiply = 0.75 + } + } + else = { + add_treasury = { + value = -5 + } + } + } + + move_pop = ROOT + } + } + } + + # if at the pop cap, turn slave move off + ROOT = { + if = { + limit = { + total_population >= population_cap + } + + remove_province_modifier = slave_move_yes + } + } + + # clean up + if = { + limit = { + exists = scope:slave_move_province + } + + clear_saved_scope = slave_move_province + } } } \ No newline at end of file diff --git a/gui/view_pops_list.gui b/gui/view_pops_list.gui index a28d8128..66743190 100644 --- a/gui/view_pops_list.gui +++ b/gui/view_pops_list.gui @@ -845,7 +845,7 @@ base_sub_window = { widgetanchor = bottom|right parentanchor = bottom|right size = { 30 30 } - datacontext = "[GetScriptedGui('no_slave_movement')]" + datacontext = "[GetScriptedGui('forbid_slave_movement')]" blockoverride "Icon" { texture = "gfx/interface/base_parts/button_alpha_close.dds" } blockoverride "On_click" { onclick = "[ScriptedGui.Execute( GuiScope.SetRoot( ViewPopsWindow.GetProvince.MakeScope ).End )]" @@ -858,7 +858,7 @@ base_sub_window = { widgetanchor = bottom|right parentanchor = bottom|right size = { 30 30 } - datacontext = "[GetScriptedGui('slave_movement')]" + datacontext = "[GetScriptedGui('allow_slave_movement')]" blockoverride "Icon" { texture = "gfx/interface/base_parts/button_alpha_tick.dds" } blockoverride "On_click" { onclick = "[ScriptedGui.Execute( GuiScope.SetRoot( ViewPopsWindow.GetProvince.MakeScope ).End )]" diff --git a/localization/english/tooltips_m_l_english.yml b/localization/english/tooltips_m_l_english.yml index 9a4d0e4a..38b94f7f 100644 --- a/localization/english/tooltips_m_l_english.yml +++ b/localization/english/tooltips_m_l_english.yml @@ -7,7 +7,7 @@ ArmyMaintUp_TT:0 "@gold! Army Maintenance Cost: #r +1.00%#!" NavyMaintUp_TT:0 "@gold! Navy Maintenance Cost: #r +1.00%#!" slave_move_yes:0 "Slaves are moving here." - no_slave_move:0 "Slaves are forbidden from leaving this territory." + slave_move_no:0 "Slaves are forbidden from leaving this territory." manpowercd:0 "You may not send manpower more than #Y once#! a month." CREATE_CREW_BUTTON:0 "#Bold Create a crew for your ships.#!\nCreate a cohort for #y 6#! gold and #y 500#! manpower\n You currently have [SCOPE.ScriptValue('num_ofMarines')|0Y] out of \n\n#TF Crew assist in the maintenance of your ships, increasing the effectiveness in combat as well as allowing access to a number of new abilties. " diff --git a/localization/russian/tooltips_m_l_russian.yml b/localization/russian/tooltips_m_l_russian.yml index 0d00b376..f3fbf4bf 100644 --- a/localization/russian/tooltips_m_l_russian.yml +++ b/localization/russian/tooltips_m_l_russian.yml @@ -7,7 +7,7 @@ ArmyMaintUp_TT:0 "@золото! Расходы на содержание армии: #r +1,00%#!" NavyMaintUp_TT:0 "@золото! Расходы на техническое обслуживание военно-морского флота: #r +1,00%#!" slave_move_yes:0 "Рабы переезжают сюда." - no_slave_move:0 "Рабам запрещено покидать эту территорию." + slave_move_no:0 "Рабам запрещено покидать эту территорию." manpowercd:0 "Вы не можете отправлять рабочую силу более #Y раз#! в месяц." CREATE_CREW_BUTTON:0 "#Bold Создайте команду для своих кораблей.#!\nСоздайте когорту на #y 6#! золота и #y 500#! людских ресурсов\n В настоящее время у вас есть [SCOPE.ScriptValue('num_ofMarines')|0Y] из \n\n#TF Экипаж помогает в обслуживании ваших кораблей, повышая эффективность в бою, а также предоставляя доступ к ряду новых способностей. "