From 426bd3a82a76af5c77a68bb7a2c838e29911706c Mon Sep 17 00:00:00 2001 From: Benjamin Date: Mon, 11 Mar 2024 10:56:27 +0100 Subject: [PATCH 01/42] cleared patch notes and fixed create-release script --- .github/workflows/create_release.yml | 4 ---- patch_notes.txt | 14 -------------- 2 files changed, 18 deletions(-) diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml index 3e347a68d..afa7fac8b 100644 --- a/.github/workflows/create_release.yml +++ b/.github/workflows/create_release.yml @@ -32,10 +32,6 @@ jobs: run: | # Read the contents of patch_notes.txt patch_notes=$(cat patch_notes.txt) - # Escape newline characters to be compatible with GitHub Actions output - patch_notes="${patch_notes//'%'/'%25'}" - patch_notes="${patch_notes//$'\n'/'%0A'}" - patch_notes="${patch_notes//$'\r'/'%0D'}" echo "patch_notes=$patch_notes" >> $GITHUB_OUTPUT - name: Create Release diff --git a/patch_notes.txt b/patch_notes.txt index fea227745..8b1378917 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -1,15 +1 @@ -Update to 1.14: -- Removed unused naval traits -- Fixed the map being completely black -- Replaced new DLC loading screen - -Other: -- Fixed intel-ledger when the LaR isn't active -- Fixed Boromir-related fellowship events -- Fixed modifiers of long-term planner and luxury crafter advisors -- Fixed several typos and grammar mistakes -- Pushed back the departure date of Galadriel/Celeborn -- Replaced/Added several focus icons with new ones -- Added Cair Andros as a city -- Gondor's Minas Morgul related focuses now rename the city to Minas Ithil From b99422a0ef55b658eac25b063dcc24564c2350ed Mon Sep 17 00:00:00 2001 From: Benjamin Date: Mon, 11 Mar 2024 11:05:39 +0100 Subject: [PATCH 02/42] Fixed eagle-designer related GUI errors --- .../plane_archetype_generic_airframe.gui | 24 +++++++++++++++++++ .../planes/plane_bomber_eagle_airframe.gui | 24 +++++++++++++++++++ .../plane_bomber_fellbeast_airframe.gui | 24 +++++++++++++++++++ .../plane_bomber_fellbeast_airframe_1.gui | 24 +++++++++++++++++++ .../planes/plane_fighter_eagle_airframe.gui | 24 +++++++++++++++++++ .../plane_fighter_fellbeast_airframe.gui | 24 +++++++++++++++++++ .../plane_fighter_fellbeast_airframe_1.gui | 24 +++++++++++++++++++ .../planes/plane_scout_eagle_airframe.gui | 24 +++++++++++++++++++ .../planes/plane_scout_fellbeast_airframe.gui | 24 +++++++++++++++++++ 9 files changed, 216 insertions(+) diff --git a/interface/equipmentdesigner/planes/plane_archetype_generic_airframe.gui b/interface/equipmentdesigner/planes/plane_archetype_generic_airframe.gui index 67d4fb962..75cf91ea7 100644 --- a/interface/equipmentdesigner/planes/plane_archetype_generic_airframe.gui +++ b/interface/equipmentdesigner/planes/plane_archetype_generic_airframe.gui @@ -89,6 +89,30 @@ guiTypes = { } } } + + containerWindowType = { + name = "special_type_slot_1" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_2" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_3" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_4" + position = { x=0 y=0 } + size = { width=100% height=100% } + } } } } diff --git a/interface/equipmentdesigner/planes/plane_bomber_eagle_airframe.gui b/interface/equipmentdesigner/planes/plane_bomber_eagle_airframe.gui index 324b88916..b75b109dc 100644 --- a/interface/equipmentdesigner/planes/plane_bomber_eagle_airframe.gui +++ b/interface/equipmentdesigner/planes/plane_bomber_eagle_airframe.gui @@ -89,6 +89,30 @@ guiTypes = { } } } + + containerWindowType = { + name = "special_type_slot_1" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_2" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_3" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_4" + position = { x=0 y=0 } + size = { width=100% height=100% } + } } } } diff --git a/interface/equipmentdesigner/planes/plane_bomber_fellbeast_airframe.gui b/interface/equipmentdesigner/planes/plane_bomber_fellbeast_airframe.gui index af189fd15..e63f314c2 100644 --- a/interface/equipmentdesigner/planes/plane_bomber_fellbeast_airframe.gui +++ b/interface/equipmentdesigner/planes/plane_bomber_fellbeast_airframe.gui @@ -89,6 +89,30 @@ guiTypes = { } } } + + containerWindowType = { + name = "special_type_slot_1" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_2" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_3" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_4" + position = { x=0 y=0 } + size = { width=100% height=100% } + } } } } diff --git a/interface/equipmentdesigner/planes/plane_bomber_fellbeast_airframe_1.gui b/interface/equipmentdesigner/planes/plane_bomber_fellbeast_airframe_1.gui index 2778ea73d..5d14cbf94 100644 --- a/interface/equipmentdesigner/planes/plane_bomber_fellbeast_airframe_1.gui +++ b/interface/equipmentdesigner/planes/plane_bomber_fellbeast_airframe_1.gui @@ -89,6 +89,30 @@ guiTypes = { } } } + + containerWindowType = { + name = "special_type_slot_1" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_2" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_3" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_4" + position = { x=0 y=0 } + size = { width=100% height=100% } + } } } } diff --git a/interface/equipmentdesigner/planes/plane_fighter_eagle_airframe.gui b/interface/equipmentdesigner/planes/plane_fighter_eagle_airframe.gui index 103b4ef9d..ab19378d2 100644 --- a/interface/equipmentdesigner/planes/plane_fighter_eagle_airframe.gui +++ b/interface/equipmentdesigner/planes/plane_fighter_eagle_airframe.gui @@ -89,6 +89,30 @@ guiTypes = { } } } + + containerWindowType = { + name = "special_type_slot_1" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_2" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_3" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_4" + position = { x=0 y=0 } + size = { width=100% height=100% } + } } } } diff --git a/interface/equipmentdesigner/planes/plane_fighter_fellbeast_airframe.gui b/interface/equipmentdesigner/planes/plane_fighter_fellbeast_airframe.gui index 7fe55be1d..391f9a6d7 100644 --- a/interface/equipmentdesigner/planes/plane_fighter_fellbeast_airframe.gui +++ b/interface/equipmentdesigner/planes/plane_fighter_fellbeast_airframe.gui @@ -89,6 +89,30 @@ guiTypes = { } } } + + containerWindowType = { + name = "special_type_slot_1" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_2" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_3" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_4" + position = { x=0 y=0 } + size = { width=100% height=100% } + } } } } diff --git a/interface/equipmentdesigner/planes/plane_fighter_fellbeast_airframe_1.gui b/interface/equipmentdesigner/planes/plane_fighter_fellbeast_airframe_1.gui index b553b8666..8b23ed096 100644 --- a/interface/equipmentdesigner/planes/plane_fighter_fellbeast_airframe_1.gui +++ b/interface/equipmentdesigner/planes/plane_fighter_fellbeast_airframe_1.gui @@ -89,6 +89,30 @@ guiTypes = { } } } + + containerWindowType = { + name = "special_type_slot_1" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_2" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_3" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_4" + position = { x=0 y=0 } + size = { width=100% height=100% } + } } } } diff --git a/interface/equipmentdesigner/planes/plane_scout_eagle_airframe.gui b/interface/equipmentdesigner/planes/plane_scout_eagle_airframe.gui index f85f8c15f..a7091bc34 100644 --- a/interface/equipmentdesigner/planes/plane_scout_eagle_airframe.gui +++ b/interface/equipmentdesigner/planes/plane_scout_eagle_airframe.gui @@ -89,6 +89,30 @@ guiTypes = { } } } + + containerWindowType = { + name = "special_type_slot_1" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_2" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_3" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_4" + position = { x=0 y=0 } + size = { width=100% height=100% } + } } } } diff --git a/interface/equipmentdesigner/planes/plane_scout_fellbeast_airframe.gui b/interface/equipmentdesigner/planes/plane_scout_fellbeast_airframe.gui index f6d06bede..429ac24db 100644 --- a/interface/equipmentdesigner/planes/plane_scout_fellbeast_airframe.gui +++ b/interface/equipmentdesigner/planes/plane_scout_fellbeast_airframe.gui @@ -89,6 +89,30 @@ guiTypes = { } } } + + containerWindowType = { + name = "special_type_slot_1" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_2" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_3" + position = { x=0 y=0 } + size = { width=100% height=100% } + } + + containerWindowType = { + name = "special_type_slot_4" + position = { x=0 y=0 } + size = { width=100% height=100% } + } } } } From 213c36a339fbe62d70fcb97ff03360ec81bac6aa Mon Sep 17 00:00:00 2001 From: Benjamin Date: Mon, 11 Mar 2024 11:32:26 +0100 Subject: [PATCH 03/42] Update README.md --- README.md | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ec7a47a87..d377c16bd 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,32 @@ Github repository for the [*Lord of the Rings Mod*](https://steamcommunity.com/sharedfiles/filedetails/?id=1314446921) for *Hearts of Iron IV*. +![img](https://steamuserimages-a.akamaihd.net/ugc/2014835196556028806/C9F439399E0C57D2F15CBF9E0196E657EB6D2DEC/?imw=637&imh=358&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=true) + +## Links Steam Page: https://steamcommunity.com/sharedfiles/filedetails/?id=1314446921 Discord Server: https://discord.gg/XdQ3GbACPW -Want to make a contribution? Feel free to open a pull-request or get in touch! +## Download + +The easiest way to download the mod is through the [Steam Workshop page](https://steamcommunity.com/sharedfiles/filedetails/?id=1314446921). + +If you don't have the steam version of HoI4 or want to use an older version of the mod, you can download it from our [Github Releases Page](https://github.com/HoI4-LOTRMod-Team/HoI4-LotrMod/releases). If you want to develop/contribute or access WIP content, you can simply clone this repository. + +Note that downloading the mod from sources other than the Steam workwhop will require it to be manually installed. You can do so by placing it into `.../Documents/Paradox Interactive/Hearts of Iron IV/mod/lotr`, then copy-pase the `descriptor.mod` file from within into the folder outside, rename it to `lotr.mod` and add the line `path=".../Documents/Paradox Interactive/Hearts of Iron IV/mod/lotr"` to the bottom of it. (Change the three dots to your corresponding user directory and do *not* use back-slashes). + +## Contributing + +If you want to contribute to this project, feel free to get in touch through discord or open a pull request! + +Not that by opening a pull-request you grant us a perpetual permission to use the contents therein for this mod (unless explicitly agreed otherwise). Please stick with CC/public domain resources, give credit where necessary, or make sure you have an appropriate license for external assets. + +Note: The `dev` branch and the derivatives thereof are our working branches. The `master` branch reflects what is live on the workshop and is only commited to when a new patch is released. + +We recommend looking through our [Wiki pages](https://github.com/HoI4-LOTRMod-Team/HoI4-LotrMod/wiki) for information on the codebase and familiatizing yourself with our custom GFX scripts. + +We also recommend using our custom [GFX Search Tool](https://hoi4-lotrmod-team.github.io/HoI4-LotrMod) to find appropriate images/icons for your focuses, events etc. +### Disclaimer -**Important Note:** Several parts of this mod are licensed *exclusively* to this project. Do not re-use or re-upload any assets from this repository in or to any other projects without express permission from the authors. +Several parts of this mod are licensed *exclusively* to this project. Do not re-use or re-upload any assets from this repository in or to any other projects without express permission from the authors. From 03acd5b24e26d8c128e785f6754429664e328d96 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Mon, 11 Mar 2024 11:33:07 +0100 Subject: [PATCH 04/42] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d377c16bd..16a49cf1d 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ Github repository for the [*Lord of the Rings Mod*](https://steamcommunity.com/s ## Links Steam Page: https://steamcommunity.com/sharedfiles/filedetails/?id=1314446921 + Discord Server: https://discord.gg/XdQ3GbACPW ## Download From 4a525c9899a42251b01f9d450f8bc9fe6c10bb42 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Fri, 15 Mar 2024 23:35:48 +0100 Subject: [PATCH 05/42] nerfed siege equipment upgrades --- common/units/equipment/upgrades/lotr_land_upgrades.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/common/units/equipment/upgrades/lotr_land_upgrades.txt b/common/units/equipment/upgrades/lotr_land_upgrades.txt index e34ee7a27..7f9108763 100644 --- a/common/units/equipment/upgrades/lotr_land_upgrades.txt +++ b/common/units/equipment/upgrades/lotr_land_upgrades.txt @@ -28,7 +28,7 @@ upgrades = { } } - build_cost_ic = -0.1 + build_cost_ic = -0.03 reliability = -0.05 } @@ -55,9 +55,10 @@ upgrades = { } soft_attack = 0.03 - hard_attack = 0.1 + hard_attack = 0.06 maximum_speed = -0.02 reliability = -0.05 + build_cost_ic = 0.02 } lotr_cav_speed_upgrade = { From d2cfab015c5f6572c8e49449413c36f6d5ce367c Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 16 Mar 2024 10:48:54 +0100 Subject: [PATCH 06/42] Small changes --- common/national_focus/angmar.txt | 22 ++++++------ common/national_focus/gondor.txt | 3 ++ events/Angmar.txt | 34 ++++++++++++++++++- .../english/achievements_l_english.yml | 2 +- .../angmar/angmar_events_l_english.yml | 5 +++ patch_notes.txt | 9 ++++- 6 files changed, 62 insertions(+), 13 deletions(-) diff --git a/common/national_focus/angmar.txt b/common/national_focus/angmar.txt index b6344580e..34799f17d 100644 --- a/common/national_focus/angmar.txt +++ b/common/national_focus/angmar.txt @@ -429,7 +429,7 @@ focus = { focus = { id = ANG_dig_out_the_mountains icon = GFX_goal_generic_mining_industry - search_filters = { FOCUS_FILTER_POLITICAL FOCUS_FILTER_INDUSTRY } + search_filters = { FOCUS_FILTER_INDUSTRY } ai_will_do = { factor = 5 } relative_position_id = ANG_boost_the_industry x = 1 @@ -993,7 +993,15 @@ focus = { focus = { id = ANG_republic_of_angmar icon = GFX_goal_lth_burdens_of_leadership - ai_will_do = { factor = 3 } + ai_will_do = { + factor = 3 + modifier = { + add = 9 + ART = { + has_completed_focus = ART_support_the_monarchists + } + } + } available = { has_government = cooperative } relative_position_id = ANG_invite_cardolan x = -1 @@ -2517,13 +2525,7 @@ focus = { search_filters = { FOCUS_FILTER_POLITICAL FOCUS_FILTER_MANPOWER FOCUS_FILTER_STABILITY FOCUS_FILTER_INDUSTRY } ai_will_do = { factor = 25 } allow_branch = { - OR = { - MOR = { has_country_flag = MOR_orcs_have_taken_over_mordor } - MOR = { - has_completed_focus = marchonbaraddr - has_civil_war = no - } - } + has_country_flag = ANG_necromancer_path_unlocked } mutually_exclusive = { focus = ANG_our_own_empire focus = ANG_unite_with_sauron } relative_position_id = ANG_strengthen_the_new_goverment @@ -3024,7 +3026,7 @@ focus = { completion_reward = { add_named_threat = { threat = 25 name = "Sauron obtained the ring in Angmar" } create_country_leader = { - name = "Sauron" + name = "Dark Lord Saruon" picture = "gfx/leaders/MOR/Portrait_Mordor_Sauron.dds" expire = "1980.1.1" ideology = supremacist diff --git a/common/national_focus/gondor.txt b/common/national_focus/gondor.txt index b2b425742..6302ccc6b 100644 --- a/common/national_focus/gondor.txt +++ b/common/national_focus/gondor.txt @@ -2524,6 +2524,9 @@ continuous_focus_position = { x = 50 y = 1700 } y = 1 cost = 5 available_if_capitulated = yes + bypass = { + has_intelligence_agency = yes + } completion_reward = { if = { limit = { has_dlc = "La Resistance" } diff --git a/events/Angmar.txt b/events/Angmar.txt index be4e9f2f9..7debc7979 100644 --- a/events/Angmar.txt +++ b/events/Angmar.txt @@ -597,4 +597,36 @@ country_event = { base = 10 } } -} \ No newline at end of file +} + +# Necromancer arriving in Angmar +news_event = { + id = angmar.17 + title = angmar.17.t + desc = angmar.17.d + picture = GFX_news_event_ring_shire + + mean_time_to_happen = { days = 15 } + fire_only_once = yes + trigger = { + tag = ANG + NOT = { + OR = { + has_completed_focus = ANG_stay_true_to_the_people + has_completed_focus = ANG_steady_as_we_go + has_completed_focus = ANG_unite_with_sauron + has_completed_focus = ANG_our_own_empire + } + } + MOR = { + has_completed_focus = arealmoforcs + } + } + + option = { + name = angmar.17.a + set_country_flag = ANG_necromancer_path_unlocked + custom_effect_tooltip = ANG_tooltip_new_path_unlocked + mark_focus_tree_layout_dirty = yes + } +} diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index 6d61d2cfb..830aa5d57 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -8,5 +8,5 @@ wizards_should_know_better_NAME:0 "Wizards should know better" wizards_should_know_better_DESC:0 "Play as any cooperative country and conquer or puppet Isengard" - ANG_the_necromancer_NAME:0 "Necromancer" + ANG_the_necromancer_NAME:0 "Somehow He Has Returned" ANG_the_necromancer_DESC:0 "Bring back Sauron into power in Angmar after having fled Mordor" \ No newline at end of file diff --git a/localisation/english/angmar/angmar_events_l_english.yml b/localisation/english/angmar/angmar_events_l_english.yml index 7e2528ff9..2c453b6f6 100644 --- a/localisation/english/angmar/angmar_events_l_english.yml +++ b/localisation/english/angmar/angmar_events_l_english.yml @@ -54,3 +54,8 @@ angmar.15.a:0 "It is what it is" angmar.16.t:0 "[From.GetName] has accepted our request for their states" angmar.16.d:0 "" angmar.16.a:0 "" + +angmar.17.t:0 "A necromancer has arrived in our lands" +angmar.17.d:0 "News has arrived of a necromancer arriving in our lands. It's unknown where he came from or who he is exactly. Keeping himself surrounded in mystery. Could this have something to do with the civil war in Mordor?" +angmar.17.a:0 "Intresting..." +ANG_tooltip_new_path_unlocked:0 "§GNew focus tree path unlocked§!" \ No newline at end of file diff --git a/patch_notes.txt b/patch_notes.txt index 8b1378917..66fdf6628 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -1 +1,8 @@ - +Gondor: +- Eyes of the White Tower will now bypass if you have already created a intelligence agency +Angmar: +- Incorrect focus filter removed from Dig out the mountains +- Added new event related to hidden path +General: +- Higher change AI Angmar goes down the republic path if Arthedain is restoring Arnor +- Renamed achievemetn Necromancer to Somehow He Has Returned \ No newline at end of file From 01fd0015eb3ba6a81278f7b7d09d7960af3d5579 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sat, 16 Mar 2024 11:38:46 +0100 Subject: [PATCH 07/42] fixed moria not having boar mounts --- history/countries/MOA - Moria.txt | 2 ++ history/countries/MOC - OrcMoria.txt | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/history/countries/MOA - Moria.txt b/history/countries/MOA - Moria.txt index bd1a955e0..aaa5d6f37 100644 --- a/history/countries/MOA - Moria.txt +++ b/history/countries/MOA - Moria.txt @@ -28,6 +28,8 @@ set_technology = { tech_engineers = 1 trade_caravan = 1 gw_artillery = 1 + + boar_horses_module = 1 } ERE = { puppet = MOA } diff --git a/history/countries/MOC - OrcMoria.txt b/history/countries/MOC - OrcMoria.txt index 9cb76c67c..58a24ade4 100644 --- a/history/countries/MOC - OrcMoria.txt +++ b/history/countries/MOC - OrcMoria.txt @@ -21,8 +21,6 @@ set_technology = { tech_engineers = 1 trade_caravan = 1 gw_artillery = 1 - - boar_horses_module = 1 } set_politics = { From f470cac6f908d174a01d87bd8af9b9709a110049 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 16 Mar 2024 11:43:14 +0100 Subject: [PATCH 08/42] Improveded trade screen --- common/national_focus/mordor.txt | 22 +- interface/countrytradeview.gui | 745 +++++++++++++++++++++++++++++++ 2 files changed, 757 insertions(+), 10 deletions(-) create mode 100644 interface/countrytradeview.gui diff --git a/common/national_focus/mordor.txt b/common/national_focus/mordor.txt index ada54d749..93928158c 100644 --- a/common/national_focus/mordor.txt +++ b/common/national_focus/mordor.txt @@ -1364,10 +1364,11 @@ focus = { } } + focus = { - id = research_rural_industry + id = research_urban_industry icon = GFX_goal_generic_production2 - ai_will_do = { factor = 5 } + ai_will_do = { factor = 3 } prerequisite = { focus = thebeatingheart } relative_position_id = thebeatingheart x = 0 @@ -1385,7 +1386,7 @@ focus = { name = special_bonus bonus = 0.75 uses = 1 - technology = dispersed_industry2 + technology = concentrated_industry2 } } } @@ -1398,8 +1399,8 @@ focus = { available = { 12 = { is_controlled_by = ROOT } 6 = { is_controlled_by = ROOT } } x = 0 y = 1 - relative_position_id = research_rural_industry - prerequisite = { focus = research_rural_industry } + relative_position_id = research_urban_industry + prerequisite = { focus = research_urban_industry } cost = 10 available_if_capitulated = yes search_filters = { FOCUS_FILTER_INDUSTRY } @@ -1623,10 +1624,11 @@ focus = { } } + focus = { - id = research_urban_industry + id = research_rural_industry icon = GFX_goal_generic_production2 - ai_will_do = { factor = 3 } + ai_will_do = { factor = 5 } prerequisite = { focus = improve_industry } relative_position_id = improve_industry x = 0 @@ -1644,7 +1646,7 @@ focus = { name = special_bonus bonus = 0.75 uses = 1 - technology = concentrated_industry2 + technology = dispersed_industry2 } } } @@ -1657,8 +1659,8 @@ focus = { available = { 11 = { is_controlled_by = ROOT } 9 = { is_controlled_by = ROOT } 2 = { is_controlled_by = ROOT } 3 = { is_controlled_by = ROOT } 7 = { is_controlled_by = ROOT } } x = 0 y = 1 - relative_position_id = research_urban_industry - prerequisite = { focus = research_urban_industry } + relative_position_id = research_rural_industry + prerequisite = { focus = research_rural_industry } cost = 10 available_if_capitulated = yes search_filters = { FOCUS_FILTER_INDUSTRY } diff --git a/interface/countrytradeview.gui b/interface/countrytradeview.gui new file mode 100644 index 000000000..81b265cfb --- /dev/null +++ b/interface/countrytradeview.gui @@ -0,0 +1,745 @@ +guiTypes = { + + containerWindowType = { + name = "countrytradeview" + position = { x=-606 y=78} + show_position = { x=-6 y =78 } + show_animation_type = decelerated + hide_animation_type = accelerated + animation_time = 300 + size = { width=550 height=100%% } + + #hide_sound = menu_close_window + show_sound = menu_open_window + + background = { + name = "Background" + quadTextureSprite ="GFX_tiled_window_1b_border" + } + + iconType ={ + name ="production_header_bg" + spriteType = "GFX_header_bg" + position = { x= 5 y = 07 } + Orientation = "UPPER_LEFT" + } + + instantTextboxType = { + name = "trade_title" + position = { x = 45 y = 8 } + textureFile = "" + font = "hoi_36header" + borderSize = {x = 0 y = 0} + text = "TRADE_TRADE" + maxWidth = 440 + maxHeight = 20 + format = left + } + + iconType = { + name = "trade_header" + position = { x = 12 y = 43 } + quadTextureSprite = "GFX_trade_header" + } + + iconType = { + name = "civilian_factory_icon" + position = { x = 185 y = 47 } + spriteType = "GFX_non_available_factory_icon" + alwaystransparent = yes + } + + instantTextboxType = { + name = "civ_factories" + position = { x = 28 y = 50 } + font = "hoi_18mbs" + text = "TRADE_CIV_FACTORIES" + maxWidth = 150 + maxHeight = 18 + fixedsize = yes + format = right + alwaystransparent = yes + } + + instantTextboxType = { + name = "factories_total" + position = { x = 216 y = 50 } + font = "hoi_18mbs" + maxWidth = 45 + maxHeight = 18 + format = left + alwaystransparent = yes + } + + instantTextboxType = { + name = "factories_used" + position = { x = 268 y = 50 } + font = "hoi_18mbs" + maxWidth = 120 + maxHeight = 18 + format = center + alwaystransparent = yes + } + + instantTextboxType = { + name = "factories_available" + position = { x = 388 y = 50 } + font = "hoi_18mbs" + maxWidth = 120 + maxHeight = 18 + format = center + alwaystransparent = yes + } + + containerWindowType = { + name = "resources" + position = { x = 11 y = 75 } + size = { width = 518 height = 156 } + verticalScrollbar = "right_vertical_slider" + + iconType = { + name ="resources_bg" + spriteType = "GFX_trade_resource_bg" + position = {x=0 y=0} + } + + instantTextboxType = { + name = "produced_title" + position = { x=12 y=38 } + font = "hoi_16mbs" + text = "TRADEVIEW_RES_PRODUCED" + maxWidth = 78 + maxHeight = 18 + format = left + #alwaystransparent = yes + } + + instantTextboxType = { + name = "imported_title" + position = { x=12 y=58 } + font = "hoi_16mbs" + text = "TRADEVIEW_RES_IMPORTED" + maxWidth = 78 + maxHeight = 18 + format = left + #alwaystransparent = yes + } + + instantTextboxType = { + name = "exported_title" + position = { x=12 y=78 } + font = "hoi_16mbs" + text = "TRADEVIEW_RES_EXPORTED" + maxWidth = 78 + maxHeight = 18 + format = left + #alwaystransparent = yes + } + + instantTextboxType = { + name = "needed_title" + position = { x=12 y=98 } + font = "hoi_16mbs" + text = "TRADEVIEW_RES_PRODUCTION" + maxWidth = 78 + maxHeight = 18 + format = left + #alwaystransparent = yes + } + + gridBoxType = { + name = "resources_grid" + position = { x = 90 y = 0 } + size = { width = 422 height = 100%% } + slotsize = { width = 68 height = 156 } + max_slots = { x = 6 y = 1 } + format = "UPPER_LEFT" + } + } + + iconType ={ + name ="trade_divider" + spriteType = "GFX_divider" + position = { x= 13 y = 267 } + Orientation = "UPPER_LEFT" + } + + buttonType = { + name = "sort_country" + position = {x=17 y=440} + quadTextureSprite ="GFX_trade_filter_btn_country" + clicksound = click_scroll + } + + instantTextboxType = { + name = "name" + position = { x = 21 y = 445 } + font = "hoi_16mbs" + text = "TRADE_SORT_COUNTRY" + maxWidth = 160 + maxHeight = 18 + format = center + fixedsize = yes + alwaystransparent = yes + } + + buttonType = { + name = "sort_export" + position = {x=187 y=440} + quadTextureSprite ="GFX_trade_filter_btn_export" + clicksound = click_scroll + } + + instantTextboxType = { + name = "export_label" + position = { x = 190 y = 445 } + font = "hoi_16mbs" + text = "TRADE_SORT_EXPORT" + maxWidth = 90 + maxHeight = 18 + format = center + fixedsize = yes + alwaystransparent = yes + } + + buttonType = { + name = "sort_request" + position = {x=285 y=440} + quadTextureSprite ="GFX_trade_filter_btn_delivered" + clicksound = click_scroll + } + + instantTextboxType = { + name = "request_label" + position = { x = 285 y = 445 } + font = "hoi_16mbs" + text = "TRADE_SORT_REQUEST" + maxWidth = 100 + maxHeight = 18 + format = center + fixedsize = yes + alwaystransparent = yes + } + + buttonType = { + name = "sort_convoys" + position = {x=389 y=440} + quadTextureSprite ="GFX_trade_filter_btn_convoy" + clicksound = click_scroll + } + + instantTextboxType = { + name = "convoys_label" + position = { x=403 y=445 } + font = "hoi_16mbs" + text = "TRADE_SORT_CONVOYS" + maxWidth = 66 + maxHeight = 18 + format = center + fixedsize = yes + alwaystransparent = yes + } + + containerWindowType = { + name = "filters" + position = { x = 12 y = 228 } + size = { width = 450 height = 50 } + verticalScrollbar = "right_vertical_slider" + + gridBoxType = { + name = "resources_grid" + position = { x = 0 y = 0 } + size = { width = 400 height = 100%% } + slotsize = { width = 85 height = 50 } + max_slots_vertical = 1 + format = "UPPER_LEFT" + } + } + + containerWindowType = { + name = "country_filters" + position = { x = 0 y = 278 } + size = { width = 600 height = 25 } + verticalScrollbar = "right_vertical_slider" + scroll_wheel_factor = 45 + smooth_scrolling = yes + + gridBoxType = { + name = "country_filters_grid" + position = { x = 0 y = 12 } + size = { width = 100%% height = 100%% } + slotsize = { width = 100 height = 35 } + max_slots_horizontal = 4 + format = "UPPER_LEFT" + } + } + + containerWindowType = { + name = "trade" + position = { x = 15 y = 465 } + size = { width = 535 height = 100%% } + verticalScrollbar = "right_vertical_slider" + scroll_wheel_factor = 45 + smooth_scrolling = yes + margin = {top = 1 bottom = 13 } + + background = { + name = "Background" + quadTextureSprite ="GFX_tiled_window_transparent" + } + + gridBoxType = { + name = "trade_grid" + position = { x = 0 y = 0 } + size = { width = 100%% height = 100%% } + slotsize = { width = 511 height = 45 } + max_slots_horizontal = 1 + format = "UPPER_LEFT" + } + } + + buttonType = { + name = "close_button" + position = { x = -43 y = 9 } + quadTextureSprite ="GFX_closebutton" + buttonFont = "Main_14_black" + shortcut = "ESCAPE" + Orientation = "UPPER_RIGHT" + clicksound = click_close + pdx_tooltip = "CLOSE" + } + } + + containerWindowType = { + name = "tradeoffer_window" + position = { x= -263 y= -218} + size = { width=527 height=437 } + moveable = yes + click_to_front = yes + orientation= center + fade_time = 200 + fade_type = linear + + background = { + name = "Background" + quadTextureSprite ="GFX_trade_offer_popup_win" + } + + iconType = { + name = "player_flag" + quadTextureSprite ="GFX_shield_medium" + position = { x = -98 y = 13 } + Orientation = upper_right + } + + iconType = { + name = "large_flag_frame" + position = { x = -102 y = 11 } + spriteType = "GFX_large_flag_frame" + orientation = upper_right + } + + instantTextboxType = { + name = "country" + position = { x = 132 y = 32 } + font = "hoi_24header" + text = "country" + maxWidth = 260 + maxHeight = 18 + vertical_alignment = center + format = center + } + + iconType ={ + name ="resources_icon" + spriteType = "GFX_resources_strip" + position = { x = 31 y = 110 } + } + + instantTextboxType = { + name = "trade" + position = { x = 69 y = 90 } + font = "hoi_18mbs" + text = "" + maxWidth = 230 + maxHeight = 100 + format = left + } + + containerWindowType = { + name = "flags" + position = { x = 294 y = 80 } + size = { width = 220 height = 176 } + + background = { + name = "Background" + quadTextureSprite ="GFX_tiled_plain_bg" + alwaystransparent = yes + } + + instantTextboxType = { + name = "traded_nations_label" + position = { x = 15 y = 10 } + font = "hoi_18mbs" + text = "TRADED_NATIONS" + fixedsize = yes + maxWidth = 190 + maxHeight = 80 + format = left + } + + gridBoxType = { + name = "flags_grid" + position = { x = 10 y = 30 } + size = { width = 100% height = 100% } + slotsize = { width=45 height=31 } + max_slots_horizontal = 4 + format = "UPPER_LEFT" + } + } + + buttonType = { + name = "buy_needed_amount_button" + position = {x=350 y=260} + spriteType = "GFX_set_need_amount_button" + pdx_tooltip = "SET_NEEDED_AMOUNT" + } + + instantTextboxType = { + name = "trade_reset" + position = { x = 124 y = 348 } + font = "hoi_16mbs" + text = "TRADE_RESET" + maxWidth = 290 + maxHeight = 80 + format = center + } + + iconType ={ + name ="convoys_icon" + spriteType = "GFX_topbar_convoys" + position = {x=30 y=211} + } + + instantTextboxType = { + name = "convoys_description" + position = { x = 69 y = 200 } + font = "hoi_18mbs" + text = "" + maxWidth = 230 + maxHeight = 80 + format = left + } + + iconType = { + name = "civilian_factory_icon" + position = { x = 70 y = 274 } + spriteType = "GFX_non_available_factory_icon" + } + + instantTextboxType = { + name = "factories_description" + position = { x = 104 y = 265 } + font = "hoi_18mbs" + text = "" + maxWidth = 240 + maxHeight = 80 + format = left + fixedsize = yes + } + + extendedScrollbarType = { + name = "buy_slider" + position = { x = 116 y = 320 } + size = { width = 300 height = 18 } + tileSize = { width = 12 height = 12} + maxValue = 1 + minValue = 0 + stepSize = 1 + startValue = 0 + horizontal = yes + clickonly = yes + + background = { + name = "Background" + quadTextureSprite = "GFX_slider_bg" + position = { x= -52 y = -13 } + } + + slider = { + name = "Slider" + quadTextureSprite = "GFX_scroll_drager" + position = { x=0 y = -2 } + } + + track = { + name = "Track" + quadTextureSprite = "GFX_scroll_track_horisontal" + position = { x=0 y = 4 } + alwaystransparent = yes + } + + decreaseButton = { + name = "Decrease" + quadTextureSprite = "GFX_scroll_left" + position = { x=3 y = 1 } + clicksound = click_scroll + } + + increaseButton = { + name = "Increase" + quadTextureSprite = "GFX_scroll_right" + position = { x=-19 y = -17 } + clicksound = click_scroll + } + } + + instantTextboxType = { + name = "min_amount" + position = { x = 74 y = 320 } + font = "hoi_18mbs" + text = "0" + maxWidth = 35 + maxHeight = 18 + format = center + } + + instantTextboxType = { + name = "max_amount" + position = { x = 424 y = 320 } + font = "hoi_18mbs" + text = "max" + maxWidth = 35 + maxHeight = 18 + format = center + } + + iconType ={ + name ="warning_icon" + spriteType = "GFX_warning_icon" + position = { x = 277 y = 270 } + } + + iconType ={ + name ="convoys_icon_bg" + spriteType = "GFX_diplo_action_bottom" + position = {x=7 y=-70} + Orientation = "LOWER_LEFT" + } + + buttonType = { + name = "send_button" + position = { x = 350 y = -55 } + quadTextureSprite ="GFX_button_123x34" + buttonFont = "hoi_16mbs" + buttonText = "SEND" + Orientation = "LOWER_LEFT" + clicksound = click_send + pdx_tooltip = "SEND" + shortcut = "RETURN" + } + + buttonType = { + name = "cancel_button" + position = { x = 70 y = -55 } + quadTextureSprite ="GFX_button_123x34" + buttonFont = "hoi_16mbs" + buttonText = "CLOSE" + shortcut = "ESCAPE" + Orientation = "LOWER_LEFT" + clicksound = click_close + pdx_tooltip = "CANCEL" + } + } + + containerWindowType = { + name = "resources_info_entry" + position = { x = 0 y = 0 } + size = { width = 150 height = 100 } + clipping = no + + buttonType ={ + name ="resources_icon" + spriteType = "GFX_resources_strip" + position = { x= 14 y = 5 } + } + + instantTextboxType = { + name = "balance" + position = { x=13 y=8 } + font = "hoi_20bs" + maxWidth = 57 + maxHeight = 18 + format = right + } + + instantTextboxType = { + name = "produced" + position = { x=20 y=36 } + font = "hoi_16mbs" + maxWidth = 50 + maxHeight = 18 + format = right + } + + instantTextboxType = { + name = "imported" + position = { x=20 y=56 } + font = "hoi_16mbs" + maxWidth = 50 + maxHeight = 18 + format = right + } + + instantTextboxType = { + name = "exported" + font = "hoi_16mbs" + position = { x=20 y=76 } + maxWidth = 50 + maxHeight = 18 + format = right + } + + instantTextboxType = { + name = "needed" + position = { x=20 y=94 } + font = "hoi_16mbs" + maxWidth = 50 + maxHeight = 28 + format = right + } + + instantTextboxType = { + name = "neededType" + position = { x=10 y=94 } + font = "hoi_16mbs" + maxWidth = 50 + maxHeight = 28 + format = left + } + + buttonType = { + name = "cancel_imports" + position = { x= 46 y= 125 } + pdx_tooltip = "CANCEL_RESOURCE_IMPORT" + quadTextureSprite ="GFX_cancel_import_button" + clicksound = click_default + } + } + + containerWindowType = { + name = "resources_filter_entry" + position = { x = 0 y = 1 } + size = { width = 75 height = 50 } + clipping = no + + buttonType = { + name = "background" + position = {x=0 y=0} + quadTextureSprite ="GFX_TRADE_resource_btn" + clicksound = click_checkbox + } + + iconType = { + name ="icon" + spriteType = "GFX_resources_strip" + position = { x= 32 y = 12 } + alwaystransparent = yes + } + } + + containerWindowType = { + name = "filter_entry" + position = { x = 45 y = -04 } + size = { width = 168 height = 50 } + clipping = no + + background = { + name = "Background" + quadTextureSprite ="GFX_diplo_filter_entry" + clicksound = click_scroll + } + + instantTextboxType = { + name = "name" + position = { x = 6 y = 7 } + font = "hoi_16mbs" + text = "name" + maxWidth = 110 + maxHeight = 18 + fixedsize = yes + format = center + alwaystransparent = yes + } + } + + containerWindowType = { + name = "country_trade_entry" + position = { x = 0 y = 0 } + size = { width = 511 height = 45 } + clipping = no + + background = { + name = "Background" + quadTextureSprite ="GFX_country_trade_entry_bg" + clicksound = click_action + } + + buttonType = { + name = "country_flag" + quadTextureSprite ="GFX_flag_small2" + position = { x= 6 y = 8 } + #alwaystransparent = yes + } + + iconType ={ + name ="country_flag_frame" + spriteType = "GFX_small_flag_frame_thin" + position = { x= 3 y = 6 } + Orientation = "UPPER_LEFT" + alwaystransparent = yes + } + + instantTextboxType = { + name = "country" + position = { x = 52 y = 6 } + font = "hoi_16mbs" + text = "name" + vertical_alignment = center + maxWidth = 130 + maxHeight = 28 + fixedsize = yes + alwaystransparent = yes + } + + instantTextboxType = { + name = "exported" + position = { x = 272 y = 12 } + font = "hoi_18mbs" + text = "" + format = center + maxWidth = 100 + maxHeight = 18 + } + + instantTextboxType = { + name = "available_export" + position = { x = 169 y = 12 } + font = "hoi_18mbs" + text = "" + format = center + maxWidth = 110 + maxHeight = 18 + } + + instantTextboxType = { + name = "convoys" + position = { x = 390 y = 12 } + font = "hoi_18mbs" + text = "" + format = center + maxWidth = 100 + maxHeight = 18 + } + } +} From 9e5819000aa2b2957e74e7d08a74f3c14d5a2c5b Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 16 Mar 2024 11:57:03 +0100 Subject: [PATCH 09/42] Cavalry and Eagle/Nazgul designers now have the correct title shown --- localisation/english/replace/lotr_designer_l_english.yml | 4 ++++ patch_notes.txt | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 localisation/english/replace/lotr_designer_l_english.yml diff --git a/localisation/english/replace/lotr_designer_l_english.yml b/localisation/english/replace/lotr_designer_l_english.yml new file mode 100644 index 000000000..e27c6045c --- /dev/null +++ b/localisation/english/replace/lotr_designer_l_english.yml @@ -0,0 +1,4 @@ +l_english: +SHIP_DESIGNER_TITLE:0 "Ship Designer" +TANK_DESIGNER_TITLE:0 "Cavalry Designer" +PLANE_DESIGNER_TITLE:0 "Eagle/Nazgûl Designer" \ No newline at end of file diff --git a/patch_notes.txt b/patch_notes.txt index 66fdf6628..91ee08e20 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -5,4 +5,5 @@ Angmar: - Added new event related to hidden path General: - Higher change AI Angmar goes down the republic path if Arthedain is restoring Arnor -- Renamed achievemetn Necromancer to Somehow He Has Returned \ No newline at end of file +- Renamed achievemetn Necromancer to Somehow He Has Returned +- Cavalry and Eagle/Nazgul designers now have the correct title shown \ No newline at end of file From 2b133d74adfd1edeeb29aefa957f40fedd0ba8a8 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 16 Mar 2024 12:02:09 +0100 Subject: [PATCH 10/42] World tension increase when Sauron is unleashed 25 -> 50 --- common/national_focus/angmar.txt | 2 +- common/national_focus/mordor.txt | 2 +- patch_notes.txt | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/common/national_focus/angmar.txt b/common/national_focus/angmar.txt index 34799f17d..12758abcc 100644 --- a/common/national_focus/angmar.txt +++ b/common/national_focus/angmar.txt @@ -3024,7 +3024,7 @@ focus = { cost = 10 available_if_capitulated = yes completion_reward = { - add_named_threat = { threat = 25 name = "Sauron obtained the ring in Angmar" } + add_named_threat = { threat = 50 name = "Sauron obtained the ring in Angmar" } create_country_leader = { name = "Dark Lord Saruon" picture = "gfx/leaders/MOR/Portrait_Mordor_Sauron.dds" diff --git a/common/national_focus/mordor.txt b/common/national_focus/mordor.txt index 93928158c..1b52ee5f5 100644 --- a/common/national_focus/mordor.txt +++ b/common/national_focus/mordor.txt @@ -3068,7 +3068,7 @@ focus = { available_if_capitulated = yes completion_reward = { retire_character = MOR_sauron_eye - add_named_threat = { threat = 25 name = "Sauron obtained the ring" } + add_named_threat = { threat = 50 name = "Sauron obtained the ring" } create_country_leader = { name = "Sauron" picture = "gfx/leaders/MOR/Portrait_Mordor_Sauron.dds" diff --git a/patch_notes.txt b/patch_notes.txt index 91ee08e20..9fa5c8047 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -6,4 +6,5 @@ Angmar: General: - Higher change AI Angmar goes down the republic path if Arthedain is restoring Arnor - Renamed achievemetn Necromancer to Somehow He Has Returned -- Cavalry and Eagle/Nazgul designers now have the correct title shown \ No newline at end of file +- Cavalry and Eagle/Nazgul designers now have the correct title shown +- World tension increase when Sauron is unleashed 25 -> 50 \ No newline at end of file From dc080def1d6fdf72ee6c7230f437b6817804fde0 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 16 Mar 2024 13:46:55 +0100 Subject: [PATCH 11/42] Changes and stuff --- history/countries/ANG - Angmar.txt | 3 +-- history/countries/ART - Arthedain.txt | 6 +++++- history/states/45-Eagle's Head.txt | 4 +--- history/states/48-Cardo-Arthedain.txt | 3 +-- history/states/57-Ice Bay of Forochel.txt | 1 + history/units/{ANG_1936.txt => ANG_3018.txt} | 4 +++- history/units/{ART_1936.txt => ART_3018.txt} | 11 +++++++++++ patch_notes.txt | 6 +++++- 8 files changed, 28 insertions(+), 10 deletions(-) rename history/units/{ANG_1936.txt => ANG_3018.txt} (99%) rename history/units/{ART_1936.txt => ART_3018.txt} (89%) diff --git a/history/countries/ANG - Angmar.txt b/history/countries/ANG - Angmar.txt index f75836526..ddebe391f 100644 --- a/history/countries/ANG - Angmar.txt +++ b/history/countries/ANG - Angmar.txt @@ -1,6 +1,6 @@ capital = 152 -oob = "ANG_1936" +oob = "ANG_3018" recruit_character = ANG_dark_council recruit_character = ANG_red_council @@ -40,7 +40,6 @@ set_technology = { transport = 1 merchant_ship = 1 longship_0 = 1 - war_galley_0 = 1 } add_ideas = { diff --git a/history/countries/ART - Arthedain.txt b/history/countries/ART - Arthedain.txt index f3df18871..63011348b 100644 --- a/history/countries/ART - Arthedain.txt +++ b/history/countries/ART - Arthedain.txt @@ -1,6 +1,6 @@ capital = 148 -oob = "ART_1936" +oob = "ART_3018" #Country leaders recruit_character = ART_aranarth @@ -33,6 +33,10 @@ set_technology = { tech_support = 1 trade_caravan = 1 rangers_units = 1 + transport = 1 + merchant_ship = 1 + longship_0 = 1 + war_galley_0 = 1 } add_ideas = { diff --git a/history/states/45-Eagle's Head.txt b/history/states/45-Eagle's Head.txt index 8e67b9ec7..7f7fbf6e6 100644 --- a/history/states/45-Eagle's Head.txt +++ b/history/states/45-Eagle's Head.txt @@ -10,9 +10,7 @@ state={ owner = ART buildings = { infrastructure = 1 - - - + dockyard = 1 7806 = { naval_base = 1 } 2165 = { naval_base = 3 } } diff --git a/history/states/48-Cardo-Arthedain.txt b/history/states/48-Cardo-Arthedain.txt index 503d2d608..befc8bd0e 100644 --- a/history/states/48-Cardo-Arthedain.txt +++ b/history/states/48-Cardo-Arthedain.txt @@ -11,9 +11,8 @@ state={ owner = ART buildings = { infrastructure = 2 - arms_factory = 1 industrial_complex = 1 - + dockyard = 1 1831 = { naval_base = 3 } 3026 = { naval_base = 1 } } diff --git a/history/states/57-Ice Bay of Forochel.txt b/history/states/57-Ice Bay of Forochel.txt index 6c2043035..46cecb7e3 100644 --- a/history/states/57-Ice Bay of Forochel.txt +++ b/history/states/57-Ice Bay of Forochel.txt @@ -12,6 +12,7 @@ state={ infrastructure = 2 air_base = 1 industrial_complex = 1 + dockyard = 1 3300 = { naval_base = 2 } 4881 = { naval_base = 1 } diff --git a/history/units/ANG_1936.txt b/history/units/ANG_3018.txt similarity index 99% rename from history/units/ANG_1936.txt rename to history/units/ANG_3018.txt index 67e80a249..3ffa21907 100644 --- a/history/units/ANG_1936.txt +++ b/history/units/ANG_3018.txt @@ -65,7 +65,8 @@ units = { start_experience_factor = 0.0 start_equipment_factor = 1.0 } - + + ### Fleet ### navy = { name = "Forochel Fleet" base = 3300 @@ -75,6 +76,7 @@ units = { ship = { definition = longship equipment = { longship_hull_0 = { amount = 1 owner = ANG } } } } } + ### Starting Production ### diff --git a/history/units/ART_1936.txt b/history/units/ART_3018.txt similarity index 89% rename from history/units/ART_1936.txt rename to history/units/ART_3018.txt index b5331d7ce..af02584fc 100644 --- a/history/units/ART_1936.txt +++ b/history/units/ART_3018.txt @@ -117,9 +117,20 @@ units = { start_experience_factor = 0.0 start_equipment_factor = 0.6 } + + ### Fleet ### + navy = { + name = "Nothern Sea Fleet" + base = 5648 + location = 5648 + ship = { definition = longship equipment = { longship_hull_0 = { amount = 1 owner = ART } } } + ship = { definition = longship equipment = { longship_hull_0 = { amount = 1 owner = ART } } } + ship = { definition = galley equipment = { galley_hull_0 = { amount = 1 owner = ART } } } + } } + ### Starting Production ### instant_effect = { add_equipment_production = { diff --git a/patch_notes.txt b/patch_notes.txt index 9fa5c8047..266f4baa7 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -3,8 +3,12 @@ Gondor: Angmar: - Incorrect focus filter removed from Dig out the mountains - Added new event related to hidden path +- Now starts with one dockyard +Arthedain: +- Now starts with a small navy existing of three ships +- Now starts with two dockyards General: - Higher change AI Angmar goes down the republic path if Arthedain is restoring Arnor -- Renamed achievemetn Necromancer to Somehow He Has Returned +- Renamed achievement Necromancer to Somehow He Has Returned - Cavalry and Eagle/Nazgul designers now have the correct title shown - World tension increase when Sauron is unleashed 25 -> 50 \ No newline at end of file From 54692859c58dd21696580e3f4ecdb2bc92369fe9 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Mon, 18 Mar 2024 10:36:54 +0100 Subject: [PATCH 12/42] Made a various of small changes to the research focucese of Gondor --- common/national_focus/gondor.txt | 57 ++++++++++++------- .../gondor/gondor_focuses_l_english.yml | 4 +- 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/common/national_focus/gondor.txt b/common/national_focus/gondor.txt index 6302ccc6b..d87da8bbb 100644 --- a/common/national_focus/gondor.txt +++ b/common/national_focus/gondor.txt @@ -1572,7 +1572,15 @@ continuous_focus_position = { x = 50 y = 1700 } cost = 5 search_filters = { } available_if_capitulated = yes - completion_reward = { navy_experience = 25 } + completion_reward = { + navy_experience = 25 + add_tech_bonus = { + name = bc_bonus + bonus = 0.25 + uses = 2 + category = lotr_sailing + } + } } #Focus for Destroyer Effort @@ -1586,10 +1594,9 @@ continuous_focus_position = { x = 50 y = 1700 } prerequisite = { focus = GON_white_sails_of_gondor} mutually_exclusive = { focus = GON_strength_in_quality } cost = 10 - search_filters = { } available_if_capitulated = yes completion_reward = { - navy_experience = 50 + navy_experience = 25 add_tech_bonus = { name = bc_bonus bonus = 0.5 @@ -1696,7 +1703,7 @@ continuous_focus_position = { x = 50 y = 1700 } ai_will_do = { factor = 3 } relative_position_id = GON_coastal_protection x = 0 - y = 3 + y = 2 prerequisite = { focus = GON_coastal_protection } available = { any_controlled_state = { is_coastal = yes } @@ -1720,7 +1727,15 @@ continuous_focus_position = { x = 50 y = 1700 } cost = 5 search_filters = { FOCUS_FILTER_ARMY_XP } available_if_capitulated = yes - completion_reward = { army_experience = 25 } + completion_reward = { + army_experience = 25 + add_tech_bonus = { + name = infantry_weapons_bonus + bonus = 0.25 + uses = 2 + category = lotr_infantry + } + } } focus = { @@ -1734,6 +1749,7 @@ continuous_focus_position = { x = 50 y = 1700 } cost = 10 available_if_capitulated = yes completion_reward = { + army_experience = 5 add_tech_bonus = { name = infantry_weapons_bonus bonus = 0.5 @@ -1744,7 +1760,7 @@ continuous_focus_position = { x = 50 y = 1700 } } focus = { - id = GON_artillery_improvements + id = GON_archery_improvements icon = GFX_goal_lth_generic_archers ai_will_do = { factor = 3 } relative_position_id = GON_expand_infantry @@ -1754,10 +1770,11 @@ continuous_focus_position = { x = 50 y = 1700 } cost = 10 available_if_capitulated = yes completion_reward = { + army_experience = 5 add_tech_bonus = { name = ROH_artillery_modernisation bonus = 0.5 - uses = 1 + uses = 2 category = lotr_infantry_archery } } @@ -1767,10 +1784,10 @@ continuous_focus_position = { x = 50 y = 1700 } id = GON_ship_mounted_catapults icon = GFX_goal_generic_naval_emblem ai_will_do = { factor = 3 } - relative_position_id = GON_artillery_improvements + relative_position_id = GON_archery_improvements x = -1 y = 1 - prerequisite = { focus = GON_artillery_improvements } + prerequisite = { focus = GON_archery_improvements } prerequisite = { focus = GON_improved_naval_strategies } cost = 10 available_if_capitulated = yes @@ -1783,10 +1800,10 @@ continuous_focus_position = { x = 50 y = 1700 } id = GON_improved_eagles icon = GFX_goal_generic_air_eagles ai_will_do = { factor = 1 } - relative_position_id = GON_artillery_improvements + relative_position_id = GON_archery_improvements x = 1 y = 1 - prerequisite = { focus = GON_artillery_improvements focus = GON_chariots_improvements} + prerequisite = { focus = GON_archery_improvements focus = GON_chariots_improvements} cost = 10 available_if_capitulated = yes search_filters = { FOCUS_FILTER_RESEARCH } @@ -1818,17 +1835,18 @@ continuous_focus_position = { x = 50 y = 1700 } cost = 10 available_if_capitulated = yes completion_reward = { + army_experience = 5 add_tech_bonus = { name = calvery_bonus - bonus = 0.75 + bonus = 0.50 uses = 1 - category = lotr_cavalry_heavy + category = lotr_cavalry } add_tech_bonus = { name = calvery_bonus bonus = 0.75 uses = 1 - category = lotr_cavalry_light + category = lotr_cavalry_heavy } } } @@ -1844,12 +1862,13 @@ continuous_focus_position = { x = 50 y = 1700 } cost = 10 available_if_capitulated = yes completion_reward = { + army_experience = 5 add_tech_bonus = { - name = ROH_ride_of_the_rohirrim - bonus = 0.5 - uses = 2 - category = lotr_cavalry_carriages - } + name = ROH_ride_of_the_rohirrim + bonus = 0.5 + uses = 2 + category = lotr_cavalry_carriages + } } } diff --git a/localisation/english/gondor/gondor_focuses_l_english.yml b/localisation/english/gondor/gondor_focuses_l_english.yml index d14ab9bfd..79ec53ea7 100644 --- a/localisation/english/gondor/gondor_focuses_l_english.yml +++ b/localisation/english/gondor/gondor_focuses_l_english.yml @@ -169,8 +169,8 @@ GON_military_rearmament_desc:0 "" GON_expand_infantry:0 "Expand Footsoldiers" GON_expand_infantry_desc:0 "" -GON_artillery_improvements:0 "Archery Improvements" -GON_artillery_improvements_desc:0 "" +GON_archery_improvements:0 "Archery Improvements" +GON_archery_improvements_desc:0 "" GON_expand_cavalry:0 "Expand Cavalry" GON_expand_cavalry_desc:0 "" From 07087328eb8d5590fef04af86ff9fa95af205e5d Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Mon, 18 Mar 2024 11:39:23 +0100 Subject: [PATCH 13/42] Forgot to update this --- patch_notes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/patch_notes.txt b/patch_notes.txt index 266f4baa7..4cc025bca 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -1,5 +1,6 @@ Gondor: - Eyes of the White Tower will now bypass if you have already created a intelligence agency +- Made a various of small changes to the research focuceses of Gondor Angmar: - Incorrect focus filter removed from Dig out the mountains - Added new event related to hidden path From 1194439281cf2079a4d5f80cb38e104c0b3e7e7e Mon Sep 17 00:00:00 2001 From: Benjamin Date: Mon, 18 Mar 2024 13:06:39 +0100 Subject: [PATCH 14/42] added 2 achievement icons --- gfx/achievements/DAM_god_damnroth.dds | Bin 0 -> 4224 bytes gfx/achievements/MOR_not_my_dark_lord.dds | Bin 0 -> 4224 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 gfx/achievements/DAM_god_damnroth.dds create mode 100644 gfx/achievements/MOR_not_my_dark_lord.dds diff --git a/gfx/achievements/DAM_god_damnroth.dds b/gfx/achievements/DAM_god_damnroth.dds new file mode 100644 index 0000000000000000000000000000000000000000..c26bfd2130b3499219aa031c3c0d52518c488acb GIT binary patch literal 4224 zcmcJSe@t6d6vr>Gw3J`t%{Wt%MR*1%7h&@yW7j9vPNcA1Ry?%BPmqo}ET9l?%6IuL%{${>{ zK7^DW%A$Yr-cxsUU;ZEd!HiILVY>zV^RH&2tNxc5clvtxpMLUHfxV-zhaa2sz6M-M zx2vV4ijBYPco7x9pkF|0`Y8H)wbA-dYac)sA~F5{J##Vsu~DG=-IW3QR()tfwN`5- z@M$eV+eiL`c$ofXZLIzl9IgKgQJo&G|KBn;$^MRC1wCJg*LdRav;Ex~Sc}>V`U%(@ z1E=`PYCmIa%ucs7hB&ZK)A^yB))T;5W4s)%2l$ThGX2jAvHD9*(fZGsvxS+Y_t|+k zUo&m65RV)D=i76Q^mHWw&(u7JNx$0){Bcipe-YE{!)xj;XPg_;|+GbFgewt2YbF{1oFkv0L)b!}#-Jv9QbSW_m~W<_P^A52u2C z$Ih7=OISHCY5OTVyz2?me@d5@mcY)xkG!*!%4hlR48AFTdF0)9!QY|7*L9!&7Gm)g zm?Tl|IbbiK@h3_1EWZijm24?5=@qc27fwAy$c-`J1iXAnUaP4ASc7Xd?(W2F;2A?b zrtVz|OX8j;hYeT~U3kJh&GzH)a4|l5tdGrqWOQmR@jiYZj2{kO)7fgTSV8|d*(Js zN4RxmjOib`IAgF_ZX|C zR~PA1;GA@un#y7JTjl$5>n;;k-?Mw`vBgrg0>&5Eiv>EK^&e~C0M1TLJqGsg$6G|2 z-UdZ~?;`yJG5U9pmX&eMr`lltrQvDA$xr*Wz>R@-c5>Z>)#Ia6Gc``h&+>Ki;yOdJ zG_wQ7d&I76v$gUfuy^A(iAj>}0V89j^569?v=nyn8g?F3pZOfR|4_ z{k9rO>^$BaZ#7#doC9D#Ie6Akkk?5sklXnix+v?fu8Gpm$L7DSEIR+2_Fvbnr0QV) z;NSt#Gpy9>Cx@TGPSnrze*3{wIL}?n`07K$%ir2o*A4T%j}0uH@K1aWYz=&CpKLq+ zGq5pWz9%&6-vfMq!L{7Wb)T{N`T2t^Ji8*a1?=+r{T`0xcU9k%Ax&~Ofql#9lbG%= zi>G}sN3d4W_*wt!{ZsvNf6?X*u>F)7O(^lX@BzFFIaxn<;d*>*$j{cV$MLu>sz09L z*Q8vw?ka-#R+C0m53#ZLyO)Q3$#afI7Oz(oR|B-Lra>^*7m+ z`l!dn!ahlfFCqOgRZ)?0fBRG!s>xfgv-)tT2zM_f*q<(H_xruefY0zUMLEDF1dX;Ve~~S^rw2TF#-oyfS6{!(5z7nSa-MBj=xuzoY&QG4FqJezhLueM9Cj zO)$hG>pKv2-{^HX z`!B+TOzP5spPL-hA=v)upC??JP= A$^ZZW literal 0 HcmV?d00001 diff --git a/gfx/achievements/MOR_not_my_dark_lord.dds b/gfx/achievements/MOR_not_my_dark_lord.dds new file mode 100644 index 0000000000000000000000000000000000000000..3369fc478618ca4c58532a80e954909693ceaf03 GIT binary patch literal 4224 zcmb7{e@s-_6~_+<<&K8*rMt+avFjb3aoH-VX4fj+U43tmMoiiaFmD)#5#Adll^7Ec zY*C8Lpl%&4T`;oME?F6&<2Syy3A@R@OqzkE`#kq zeVNJRlXLHx_dVy_bMIZXDu@0Y01||mAhKWm3j#n4`_aGu&qLYZIQCuTv@iXi^O)b4 zpN}AOpEDP3i4Sw2YGcr6=XQh{U>|~Ab;Ao747!|&&LOmfAKl<*HqAseBmbJ z*wzl@gsW^m9Mh1G{DHk69GlSjv6qMwT9c~lIiTzPaqR0F(*wD>9zz2$)WNt$=?HtY ziOHykw+7bE@AzJ+9V73S?iYnzj9S>R}B$u@*7btgHoaIh`)1zfS*f{V)8->EYgmboel~LRK}wFdcJO))w<)SSr;x3uN&TYA^gCVA`Jbjgyp;;xbIMe{Pg4@_ zPcK3L>q{vl%Uixi&NxlM>G4~T=NAL~yDGFF`JYTrV(RE;$a}I?L75ol^<1=s3e^sm z743(m8sS_`O8}V$C>d^jm*-O%rOK?CCqG2HGy#jpLqRG)4#J#A-7*kW_@CEz0DYqj5lU~pL17Rjo@&*-Dp2jY=Y#1f;{AmHcF!7 zabc|lD?8h-qWyTb`Hg4V_(#YW(gsp~aw_3HuBZ7$h>Osq9R^~WpMA+IWySUjqE{hI@<-lFPb-+mwq6C-@RAIokwj+}bR>zi0r z^4;HUScCooVUgs@4Llx7SV?(QyU2@n@w!*}_P5UR_v;>q6kCbMgZ6<6fWJQ}D@6TW zivig3=j(q$^QM%u2gkF1PBJA)LXH`uVob{pA9B-U(fHt*`w?>bT8UIWnp$stoz1j8 ziR~{h>gSbCRS4O0ImfZ}86A&T+bM~JmiFQJ6O}BU+edgjn!=PA_72@cyAt*;S8_w# zpLktKITTuvi1zR}Y_O(Vx&EFK047I5{dZQg{-2YVhxO0)$N$pLhG(Kb)0o#54*SB$ zVz6m>L!@Hv6jQ-nF}xl52B?QLF!}5}GP(Y5 zX$ocO=l^FuN=fk2F5W-xe5Dxu{zTs2#GsNgQ2Em_^xrfF&gvmU5Au1|@4|Z*EJc1V zO(OnB_rE~C{M&Q1O3KPYo}bD3>Gsi2kq5lf`3y^>;o65?%l1dI>DczQg_RxCz3tU-zT7U!}Mr8cIz`h!~G_vj%a?=e( ztR4#f1$q4vYWzH0>qj2;h(d93W)L~v;}QCAv*qw2zUL*0jNW+0>nmLXIOHC?i*}}u z*wPbuJmRuUphaXJZ`~drEadw`{eB7&%a4jt|D{SG`F437>hIL3F*^UHzZZpF?Q#SD zUlH5i+xuj8FPO~#;BFvx*QQg*_tOBr+Stzfm$lRb-toRxw3FYc^-YK;RWgFjLiQGd08nb^kirm8T`^gNyf_x+kpx;r& z{k{2TO0Ik<7oh&2ht*T=l>S>U^}k)+B1vWs`s=Bnu*hD16|gumIcWA{lH?Gmx63LN@0s!%jZ8o|Enrz)<59xlYAck!8%rta?Kf>&*BduIr&xO z9xq$ZvWNE%{k*(x+IWeb_ng;Izn21J=d8v2lUtfs?|$hyAQEf$`C#>8eTyoC0+gY5pJs$pbZPtx3^L&$>%*nP** z%k{JS5X>>o;rjJ{IeYf(4{-cI9T11Z!N=?Ih|+IS1%SNl9QPLxtUJR>`Zl`{mfP)i zja^gVwL0@ocHT^Wem?~E)R~!H@XBll(vk6rN=kAoH*?nY)yN~Iw>;1rNE@k> literal 0 HcmV?d00001 From 6284fd2470336f5b63c7a48cd1b66dc7e6bca461 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Mon, 18 Mar 2024 13:07:51 +0100 Subject: [PATCH 15/42] Added a few achievements --- common/achievements/achievements.txt | 165 ++++++++++++++++++ .../overarchiever_achievements.txt | 39 ----- common/on_actions/00_on_actions.txt | 26 +++ .../00_scripted_triggers.txt | 6 + .../english/achievements_l_english.yml | 40 +++-- .../english/angmar/angmar_l_english.yml | 2 +- .../english/mordor/mordor_l_english.yml | 5 +- 7 files changed, 229 insertions(+), 54 deletions(-) create mode 100644 common/achievements/achievements.txt delete mode 100644 common/achievements/overarchiever_achievements.txt diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt new file mode 100644 index 000000000..c6fce8b4c --- /dev/null +++ b/common/achievements/achievements.txt @@ -0,0 +1,165 @@ + + +unique_id = lotr_achievements + +#General +wizards_should_know_better = { + possible = { + achievement_standard_possible_check = yes + NOT = { tag = ISE } + } + + happened = { + has_government = cooperative + OR = { + ISE = { + is_puppet_of = ROOT + } + controls_state = 31 + } + } +} + +one_ring_to_rule_them_all_test = { + possible = { + achievement_standard_possible_check = yes + } + + happened = { + ROOT = { + ring_has_the_ring = yes + } + } +} + +revenge_for_the_battle_of_the_five_armies_test = { + possible = { + achievement_standard_possible_check = yes + OR = { + tag = GUN + tag = DGU + } + } + + happened = { + ERE = { + all_core_state = { + OR = { + is_controlled_by = GUN + is_controlled_by = DGU + } + } + } + MIR = { + all_core_state = { + OR = { + is_controlled_by = GUN + is_controlled_by = DGU + } + } + } + DAL = { + all_core_state = { + OR = { + is_controlled_by = GUN + is_controlled_by = DGU + } + } + } + } +} + +#Angmar +ANG_the_necromancer = { + possible = { + achievement_standard_possible_check = yes + tag = ANG + } + + happened = { + tag = ANG + has_country_flag = ANG_sauron_returned + has_government = belligerent + } +} + +#Shire +SHI_taking_the_hobbits_to_isengard_test = { + possible = { + achievement_standard_possible_check = yes + tag = SHI + } + + happened = { + ISE = { + all_core_state = { + is_controlled_by = SHI + } + } + } +} + +#Gondor +#Is this even possible with the curron focus tree? +GON_one_does_simply_walk_into_mordor_test = { + possible = { + achievement_standard_possible_check = yes + tag = GON + } + + happened = { + + } +} + +#Mordor +MOR_not_my_dark_lord_test = { + possible = { + achievement_standard_possible_check = yes + tag = MOR + } + + happened = { + has_country_flag = MOR_orcs_have_taken_over_mordor + has_country_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag + has_country_flag = orcs_of_mordor_won_war_on_ANG_achievement_flag + ANG = { + has_country_flag = ANG_sauron_returned + } + } +} + +#Dol Amroth +DAM_god_damnroth_test = { + possible = { + achievement_standard_possible_check = yes + tag = DAM + } + + happened = { + hidden_trigger = { + num_of_factories > GON.num_of_factories + } + } +} + +#Entwood +ENT_triple_tree_triumvirate_test = { + possible = { + achievement_standard_possible_check = yes + tag = ENT + } + + happened = { + LTH = { + all_core_state = { + is_controlled_by = ENT + } + } + MIR = { + all_core_state = { + is_controlled_by = ENT + } + } + } +} diff --git a/common/achievements/overarchiever_achievements.txt b/common/achievements/overarchiever_achievements.txt deleted file mode 100644 index 04c62e0e4..000000000 --- a/common/achievements/overarchiever_achievements.txt +++ /dev/null @@ -1,39 +0,0 @@ - - -unique_id = lotr_achievements - -#General -wizards_should_know_better = { - possible = { - is_ironman = yes - difficulty > 1 - has_any_custom_difficulty_setting = no - NOT = { tag = ISE } - } - - happened = { - has_government = cooperative - OR = { - ISE = { - is_puppet_of = ROOT - } - controls_state = 31 - } - } -} - -#Angmar -ANG_the_necromancer = { - possible = { - is_ironman = yes - difficulty > 1 - has_any_custom_difficulty_setting = no - tag = ANG - } - - happened = { - tag = ANG - has_country_flag = ANG_sauron_returned - has_government = belligerent - } -} \ No newline at end of file diff --git a/common/on_actions/00_on_actions.txt b/common/on_actions/00_on_actions.txt index d98e35c85..4285eed57 100644 --- a/common/on_actions/00_on_actions.txt +++ b/common/on_actions/00_on_actions.txt @@ -176,8 +176,34 @@ on_actions = { #FROM is war target on_declare_war = { + #For the MOR_not_my_dark_lord_test achievement effect = { + if = { + limit = { + tag = MOR + FROM = { + original_tag = ANG + } + } + set_country_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag + } + } + } + #ROOT is winner #FROM is loser + on_peaceconference_ended = { + #For the MOR_not_my_dark_lord_test achievement + effect = { + if = { + limit = { + tag = MOR + has_country_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag + FROM = { + original_tag = ANG + } + } + set_country_flag = orcs_of_mordor_won_war_on_ANG_achievement_flag + } } } diff --git a/common/scripted_triggers/00_scripted_triggers.txt b/common/scripted_triggers/00_scripted_triggers.txt index 1291b63f4..9ec6d598b 100644 --- a/common/scripted_triggers/00_scripted_triggers.txt +++ b/common/scripted_triggers/00_scripted_triggers.txt @@ -613,3 +613,9 @@ ai_has_completed_naval_doctrine = { } } +achievement_standard_possible_check = { + #is_ironman = yes + difficulty > 1 + has_any_custom_difficulty_setting = no + game_rules_allow_achievements = yes +} \ No newline at end of file diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index 830aa5d57..c353da626 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -1,12 +1,32 @@ l_english: - completed_with_ribbon_DESC:0 "Design your own ribbon !" - available_but_not_completed_NAME:0 "Available but not completed" - available_but_not_completed_DESC:0 "Can't see me yet" - unavailable_NAME:0 "Unavailable" - unavailable_DESC:0 "Locked down" - lotr_achievements:0 "Lord of the Rings mod achievements" +#General +completed_with_ribbon_DESC:0 "Design your own ribbon !" +available_but_not_completed_NAME:0 "Available but not completed" +available_but_not_completed_DESC:0 "Can't see me yet" +unavailable_NAME:0 "Unavailable" +unavailable_DESC:0 "Locked down" +lotr_achievements:0 "Lord of the Rings mod achievements" - wizards_should_know_better_NAME:0 "Wizards should know better" - wizards_should_know_better_DESC:0 "Play as any cooperative country and conquer or puppet Isengard" - ANG_the_necromancer_NAME:0 "Somehow He Has Returned" - ANG_the_necromancer_DESC:0 "Bring back Sauron into power in Angmar after having fled Mordor" \ No newline at end of file +#Achievements +wizards_should_know_better_NAME:0 "Wizards should know better" +wizards_should_know_better_DESC:0 "Play as any cooperative country and conquer or puppet Isengard" +ANG_the_necromancer_NAME:0 "Somehow He Has Returned" +ANG_the_necromancer_DESC:0 "Bring back Sauron into power in Angmar after having fled Mordor" +one_ring_to_rule_them_all_test_NAME:0 "One ring to rule them all" +one_ring_to_rule_them_all_test_DESC:0 "Seize the ring as any country" +revenge_for_the_battle_of_the_five_armies_test_NAME:0 "Revenge for the Battle of the give armies" +revenge_for_the_battle_of_the_five_armies_test_DESC:0 "As either Gundabad or Dol Guldur control all the core states of Erebor, Mirkwood and Dale" +SHI_taking_the_hobbits_to_isengard_test_NAME:0 "Taking the hobbits to Isengard" +SHI_taking_the_hobbits_to_isengard_test_DESC:0 "As the Shire control all the core states of Isengard" +MOR_not_my_dark_lord_test_NAME:0 "Not my dark lord" +MOR_not_my_dark_lord_test_DESC:0 "Bring the orcs into power in Mordor and defeat a Sauron lead Angmar" +DAM_god_damnroth_test_NAME:0 "God Damnroth" +DAM_god_damnroth_test_DESC:0 "As Dol Amroth have twice as many factories as Gondor" +ENT_triple_tree_triumvirate_test_NAME:0 "Triple Tree Triumvirate" +ENT_triple_tree_triumvirate_test_DESC:0 "As Entwood control all core states of Lothlorien and Mirwood" +#Country flags +orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! declared war on §YAngmar§!" +orcs_of_mordor_won_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! have defeated §YAngmar§!" + +#Custom tooltip +achievement_tooltip_get_twice_as_many_factories_as_gondor:0 "As §YDol Amroth§! get twice as many factories as §YGondor§!" \ No newline at end of file diff --git a/localisation/english/angmar/angmar_l_english.yml b/localisation/english/angmar/angmar_l_english.yml index a6d597bbd..069ed3254 100644 --- a/localisation/english/angmar/angmar_l_english.yml +++ b/localisation/english/angmar/angmar_l_english.yml @@ -256,7 +256,7 @@ ANG_orc_farming:0 "Orc production" ANG_orc_farming_desc:0 "" ### Country flags -ANG_sauron_returned:0 "Sauron has returned in Angmar" +ANG_sauron_returned:0 "Sauron has returned in §YAngmar§!" ### Country names ANG_new_arnor:0 "New Arnor" diff --git a/localisation/english/mordor/mordor_l_english.yml b/localisation/english/mordor/mordor_l_english.yml index 0304d4e13..a592ba80b 100644 --- a/localisation/english/mordor/mordor_l_english.yml +++ b/localisation/english/mordor/mordor_l_english.yml @@ -1,11 +1,8 @@ l_english: ### Country flags - +MOR_orcs_have_taken_over_mordor:0 "Orcs have taken over in §YMordor§!" ### Tooltip MOR_tooltip_sending_adunaphel_to_dol_guldur:0 "This will send §YAdunaphel§! away and he will become the leader of Dol Guldur when fortress is setup" MOR_tooltip_adunaphel_returned:0 "§YAdunaphel§! will return to Mordor" MOR_tooltip_has_send_adunaphel_away:0 "Has §YAdunaphel§! send away to Dol Guldur" MOR_tooltip_has_not_send_adunaphel_away:0 "Has §YAdunaphel§! not send away to Dol Guldur" - -### Checking if has been send away -#check_variable = { var = has_send_adunaphel_away value = 1 compare = equals } \ No newline at end of file From 2ca2031c61333541fdcc4a2edfaabfb30acd735f Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Mon, 18 Mar 2024 23:20:01 +0100 Subject: [PATCH 16/42] Worked on the achievements --- common/achievements/achievements.txt | 49 ++++++++++++++----- common/on_actions/00_on_actions.txt | 2 +- .../english/achievements_l_english.yml | 6 +++ 3 files changed, 43 insertions(+), 14 deletions(-) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index c6fce8b4c..e5271129e 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -99,19 +99,6 @@ SHI_taking_the_hobbits_to_isengard_test = { } } -#Gondor -#Is this even possible with the curron focus tree? -GON_one_does_simply_walk_into_mordor_test = { - possible = { - achievement_standard_possible_check = yes - tag = GON - } - - happened = { - - } -} - #Mordor MOR_not_my_dark_lord_test = { possible = { @@ -163,3 +150,39 @@ ENT_triple_tree_triumvirate_test = { } } } + +#Moria +MOR_morgoths_most_loyal_general_test = { + possible = { + achievement_standard_possible_check = yes + original_tag = MOA + } + + happened = { + tag = MOC + has_completed_focus = submittothebalrog + is_in_faction_with = MOR + LTH = { + all_core_state = { + is_controlled_by = MOC + } + } + RIV = { + all_core_state = { + is_controlled_by = MOC + } + } + } +} + +#Isengard +ISE_my_brother_my_captian_my_king_test = { + possible = { + achievement_standard_possible_check = yes + tag = ISE + } + + happened = { + has_country_flag = lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag + } +} \ No newline at end of file diff --git a/common/on_actions/00_on_actions.txt b/common/on_actions/00_on_actions.txt index 4285eed57..ce82df7f6 100644 --- a/common/on_actions/00_on_actions.txt +++ b/common/on_actions/00_on_actions.txt @@ -192,7 +192,7 @@ on_actions = { #ROOT is winner #FROM is loser on_peaceconference_ended = { - #For the MOR_not_my_dark_lord_test achievement + #For the MOR_not_my_dark_lord achievement effect = { if = { limit = { diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index c353da626..2b85ae389 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -24,9 +24,15 @@ DAM_god_damnroth_test_NAME:0 "God Damnroth" DAM_god_damnroth_test_DESC:0 "As Dol Amroth have twice as many factories as Gondor" ENT_triple_tree_triumvirate_test_NAME:0 "Triple Tree Triumvirate" ENT_triple_tree_triumvirate_test_DESC:0 "As Entwood control all core states of Lothlorien and Mirwood" +MOR_morgoths_most_loyal_general_test_NAME:0 "Morgoth's most loyal general" +MOR_morgoths_most_loyal_general_test_DESC:0 "As Moria get Balrog as your leader, join Mordors side and control all the core states of Lothlorien and Rivendell" +ISE_my_brother_my_captian_my_king_test_NAME:0 "My Brother, my Captain, my King" +ISE_my_brother_my_captian_my_king_test_DESC:0 "As Isengard send Lurtz for a sweep against he Fellowship and kill Boromir" + #Country flags orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! declared war on §YAngmar§!" orcs_of_mordor_won_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! have defeated §YAngmar§!" +lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag:0 "§YLurtz§! killed §YBoromir§! while attacking the Fellowship" #Custom tooltip achievement_tooltip_get_twice_as_many_factories_as_gondor:0 "As §YDol Amroth§! get twice as many factories as §YGondor§!" \ No newline at end of file From 23f8d2def48c0dee4f45fdbb2b879c69eeab447b Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Tue, 19 Mar 2024 12:17:19 +0100 Subject: [PATCH 17/42] Working on lurtz kills boromir achievement --- .../scripted_effects/ring_scripted_effects_common.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/common/scripted_effects/ring_scripted_effects_common.txt b/common/scripted_effects/ring_scripted_effects_common.txt index 9565c004c..7795d1406 100644 --- a/common/scripted_effects/ring_scripted_effects_common.txt +++ b/common/scripted_effects/ring_scripted_effects_common.txt @@ -865,6 +865,16 @@ ring_combat_kill_character = { limit = { ring_gandalf_is_dead = yes } set_global_flag = fs_gandalf_left_fellowship } + + log = "[?var:SHI.temp_attacker.GetName] killed [?var:temp_defender.GetName]" + if = { + limit = { + is_character = FS_boromir + check_variable = {var:SHI.temp_attacker = ISE_lurtz} + } + log = "Got lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag achievement" + set_global_flag = lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag + } } } From 58f22b6fcbb65e9a05c9808aa6d09bb2d6464a6b Mon Sep 17 00:00:00 2001 From: Benjamin Date: Wed, 20 Mar 2024 14:41:11 +0100 Subject: [PATCH 18/42] added some more experimental icons --- gfx/achievements/ISE_never_late.dds | Bin 0 -> 4224 bytes gfx/achievements/LTH_elven_boogaloo.dds | Bin 0 -> 4224 bytes gfx/achievements/MOA_morgoth_loyalty.dds | Bin 0 -> 4224 bytes gfx/achievements/MOA_side_by_side.dds | Bin 0 -> 4224 bytes gfx/achievements/MOR_not_my_dark_lord2.dds | Bin 0 -> 4224 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 gfx/achievements/ISE_never_late.dds create mode 100644 gfx/achievements/LTH_elven_boogaloo.dds create mode 100644 gfx/achievements/MOA_morgoth_loyalty.dds create mode 100644 gfx/achievements/MOA_side_by_side.dds create mode 100644 gfx/achievements/MOR_not_my_dark_lord2.dds diff --git a/gfx/achievements/ISE_never_late.dds b/gfx/achievements/ISE_never_late.dds new file mode 100644 index 0000000000000000000000000000000000000000..255f6dfd1a1bbc6167bede1c75762d063f6e6f39 GIT binary patch literal 4224 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 DoO(2T literal 0 HcmV?d00001 diff --git a/gfx/achievements/LTH_elven_boogaloo.dds b/gfx/achievements/LTH_elven_boogaloo.dds new file mode 100644 index 0000000000000000000000000000000000000000..89ffc05a2455942476fcad1c75fe60ab8646bd8e GIT binary patch literal 4224 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 NU+$7}tX1-O{|2r$TG#*p literal 0 HcmV?d00001 diff --git a/gfx/achievements/MOA_morgoth_loyalty.dds b/gfx/achievements/MOA_morgoth_loyalty.dds new file mode 100644 index 0000000000000000000000000000000000000000..aceb97b8325d3ff6f45b21f941bb0353eab59ac3 GIT binary patch literal 4224 zcmb7|e@q+a8OM(^G(T8YYYLJ#b<$xVxM8lHKTsTL5r&Wr{+Z0i1*j1A8Iob5t+-n> z+e#eHWL2D$wkE2yMB0=yun;>AOC~E5onvg5M2KmBjCz@3lE8(jKtq#eI9N2kckczB z*G^Ye+Q}CB=y~7geZTMX<6cu=|1;(|MNwOn+bJXdD}N~^MHS#b^7sFF7(BQTf9qSD ztG{+0_WQq2<6t@dApC6DzL~#EVY~C`YY1`JTVWHD+1pIL;AWP6!Gnb|t0?xHSkSy| z7xXW)*zgrLejR7z^_bR2Pz5C{CC|qn&|f6;wx^di^eGQ+ zp?*F%-1tF_tf$Cm+$rmOtH%C9Uz4mCZOrFXobvMP!9V1h02mb<7t9;P0z78zvITZ?2?I3L6nRIkF*)QD`(}%`% zI8AbKZAAa*qdI5tdd$G_V_3)blDfTrmbr@8eZr6rh1c1Fy-To1?&LE@nulBSgQ|E*f=_ z@DITL%AeJ?WU`|jcrjZb6zjBF;KQ?B*V{7=qW@H2i0_a_$@$j%`#JXHBH>}@fu>62 zUL^Y4JSvyNV);VO_r~9;5USm3G@4Av{kkld;*`d%^!D9kfAk(+RlGwRf%Rp*(v`oG zc*ivY^Zr#Sn`dXJS1U<=$8bL09J{m^>~(z1kWFVvJuIZu_Qz9GL9h?SX?r`$<;Q8s zaxJ`nJ2}tWD)ousF8{E-MOvH#{hcrF<2M8C{veVGFP_&ikM z3Y~_qhF3)cG_lM5CZdfT1AELU==ZLrNj=y3W2TDm0PZUr{c*@gbC#p%8L;{~-4?2; zA^RUm(Kh<#eKXiAhwAKet_~Ks)~DvA2i30v?^>BVU9GJm=Y2byIG=I!^niZ}c>M9!l!Sn6bxk^}7CkE~uctW5*I zzhZT2s}MP#D=RUfwbgtK^q2B4^52?^e_WrhzsM?Tq|dbrr!}|AD zhspZo{&>Tf6nX;o1t+gxT+ihLe&6Z0>TZyJZ1sx9aPmX4{=)MDK0Pu;>Yu;tQT009 z?mYdPeEntn;>?h?rV7@p3mj-<(_vD7g^2@gS*>m>*vn_=rWQ#e{l*$UU`yTzlYE$* zQCwhC;!zm?$C-FTX1RsLr?U<3KjT^kdo3^Mqmhy@@W@Q8yR|jfU*{cu!_B^2y%+GY zhT_k2_mQHH<}H!xiZskWl8rg$EG{#|Kh}!l-<_-f2r6|pH?NZZcWS(APjW3o&imu* z3pQ;iNX}z2)#ZO;7@14-aRXrF7{-V1nSZ|f%s~7AjGwpgn&a&qL_e>Q>wkj0|L&p0 zIMz?@8@E=wu1n}fCCvX5ijTLT;CA5mo~dWD(NWTWy3?Ib`XbJ+&3^t)VxqTiPFe%D z`iz?UH^$BYdw5=R)b%TpU!qSmgu@ji{ttbM+JA@6l6Wf42n}2Arbxcf9IrnlUDSX- zIUlm@SRb&*#~Y@Pnn`^L^8L$gHlqT3|C>Rb& z_Q<~}>2hAfF@19x_c+!4wDKoU%kh1eDJdx`0sZ$-SK|4vbN8QJvxOcikRkEBl_=#k z0W;bEZ*f2Rw&%%l*zZU{Fg;(x>utur?BTp6nG9D07d@Kq{q!vd$(R0AfjygD!uRZr z_y6Q-tuGx3lKxpXP1~NhjuL-DWoAB|`p<@5mOc0ywbWnf9K?0Tsdkp^+p+dvG~{F z-!@r7bJx-*a*R-^J>QOy)t1i^x_JKO@wLvE?XgtySiZlQuO)9i?C&f7)ouCn5sDjL oW&yvSDe4y0z4?2VXG-ut5WYiwYm+$@HdEiH9OpLmsY)>a7uM~d7XSbN literal 0 HcmV?d00001 diff --git a/gfx/achievements/MOA_side_by_side.dds b/gfx/achievements/MOA_side_by_side.dds new file mode 100644 index 0000000000000000000000000000000000000000..8746b20ff711d56780d0f313a4377ef6c554dd0a GIT binary patch literal 4224 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 K#z#TX{Qm`!OCAXT literal 0 HcmV?d00001 From a1e4ee8adffcf7814817a751547f2b63a324a265 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Wed, 20 Mar 2024 17:04:53 +0100 Subject: [PATCH 19/42] icon improvements --- gfx/achievements/DAM_god_damnroth.dds | Bin 4224 -> 4224 bytes gfx/achievements/ISE_never_late.dds | Bin 4224 -> 4224 bytes gfx/achievements/LTH_elven_boogaloo.dds | Bin 4224 -> 4224 bytes gfx/achievements/MOA_morgoth_loyalty.dds | Bin 4224 -> 4224 bytes gfx/achievements/MOA_side_by_side.dds | Bin 4224 -> 4224 bytes gfx/achievements/MOR_not_my_dark_lord.dds | Bin 4224 -> 4224 bytes gfx/achievements/MOR_not_my_dark_lord2.dds | Bin 4224 -> 0 bytes gfx/achievements/bg_blank.dds | Bin 0 -> 4224 bytes 8 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 gfx/achievements/MOR_not_my_dark_lord2.dds create mode 100644 gfx/achievements/bg_blank.dds diff --git a/gfx/achievements/DAM_god_damnroth.dds b/gfx/achievements/DAM_god_damnroth.dds index c26bfd2130b3499219aa031c3c0d52518c488acb..9d26497e3ff4ba523be71e6a557087c89350228b 100644 GIT binary patch literal 4224 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 A$^ZZW diff --git a/gfx/achievements/ISE_never_late.dds b/gfx/achievements/ISE_never_late.dds index 255f6dfd1a1bbc6167bede1c75762d063f6e6f39..c266b96dc27e7e89671b18c0fae8911ac4abc416 100644 GIT binary patch literal 4224 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 DoO(2T diff --git a/gfx/achievements/LTH_elven_boogaloo.dds b/gfx/achievements/LTH_elven_boogaloo.dds index 89ffc05a2455942476fcad1c75fe60ab8646bd8e..36eb51692c9709f0558ef64f1bdf5640819a2f77 100644 GIT binary patch literal 4224 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 NU+$7}tX1-O{|2r$TG#*p diff --git a/gfx/achievements/MOA_morgoth_loyalty.dds b/gfx/achievements/MOA_morgoth_loyalty.dds index aceb97b8325d3ff6f45b21f941bb0353eab59ac3..09c272fadfba87f6a0d583b65f716b9f6ea62ff8 100644 GIT binary patch literal 4224 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 PiK_2!m&)@uo9zDufcF!j literal 4224 zcmb7|e@q+a8OM(^G(T8YYYLJ#b<$xVxM8lHKTsTL5r&Wr{+Z0i1*j1A8Iob5t+-n> z+e#eHWL2D$wkE2yMB0=yun;>AOC~E5onvg5M2KmBjCz@3lE8(jKtq#eI9N2kckczB z*G^Ye+Q}CB=y~7geZTMX<6cu=|1;(|MNwOn+bJXdD}N~^MHS#b^7sFF7(BQTf9qSD ztG{+0_WQq2<6t@dApC6DzL~#EVY~C`YY1`JTVWHD+1pIL;AWP6!Gnb|t0?xHSkSy| z7xXW)*zgrLejR7z^_bR2Pz5C{CC|qn&|f6;wx^di^eGQ+ zp?*F%-1tF_tf$Cm+$rmOtH%C9Uz4mCZOrFXobvMP!9V1h02mb<7t9;P0z78zvITZ?2?I3L6nRIkF*)QD`(}%`% zI8AbKZAAa*qdI5tdd$G_V_3)blDfTrmbr@8eZr6rh1c1Fy-To1?&LE@nulBSgQ|E*f=_ z@DITL%AeJ?WU`|jcrjZb6zjBF;KQ?B*V{7=qW@H2i0_a_$@$j%`#JXHBH>}@fu>62 zUL^Y4JSvyNV);VO_r~9;5USm3G@4Av{kkld;*`d%^!D9kfAk(+RlGwRf%Rp*(v`oG zc*ivY^Zr#Sn`dXJS1U<=$8bL09J{m^>~(z1kWFVvJuIZu_Qz9GL9h?SX?r`$<;Q8s zaxJ`nJ2}tWD)ousF8{E-MOvH#{hcrF<2M8C{veVGFP_&ikM z3Y~_qhF3)cG_lM5CZdfT1AELU==ZLrNj=y3W2TDm0PZUr{c*@gbC#p%8L;{~-4?2; zA^RUm(Kh<#eKXiAhwAKet_~Ks)~DvA2i30v?^>BVU9GJm=Y2byIG=I!^niZ}c>M9!l!Sn6bxk^}7CkE~uctW5*I zzhZT2s}MP#D=RUfwbgtK^q2B4^52?^e_WrhzsM?Tq|dbrr!}|AD zhspZo{&>Tf6nX;o1t+gxT+ihLe&6Z0>TZyJZ1sx9aPmX4{=)MDK0Pu;>Yu;tQT009 z?mYdPeEntn;>?h?rV7@p3mj-<(_vD7g^2@gS*>m>*vn_=rWQ#e{l*$UU`yTzlYE$* zQCwhC;!zm?$C-FTX1RsLr?U<3KjT^kdo3^Mqmhy@@W@Q8yR|jfU*{cu!_B^2y%+GY zhT_k2_mQHH<}H!xiZskWl8rg$EG{#|Kh}!l-<_-f2r6|pH?NZZcWS(APjW3o&imu* z3pQ;iNX}z2)#ZO;7@14-aRXrF7{-V1nSZ|f%s~7AjGwpgn&a&qL_e>Q>wkj0|L&p0 zIMz?@8@E=wu1n}fCCvX5ijTLT;CA5mo~dWD(NWTWy3?Ib`XbJ+&3^t)VxqTiPFe%D z`iz?UH^$BYdw5=R)b%TpU!qSmgu@ji{ttbM+JA@6l6Wf42n}2Arbxcf9IrnlUDSX- zIUlm@SRb&*#~Y@Pnn`^L^8L$gHlqT3|C>Rb& z_Q<~}>2hAfF@19x_c+!4wDKoU%kh1eDJdx`0sZ$-SK|4vbN8QJvxOcikRkEBl_=#k z0W;bEZ*f2Rw&%%l*zZU{Fg;(x>utur?BTp6nG9D07d@Kq{q!vd$(R0AfjygD!uRZr z_y6Q-tuGx3lKxpXP1~NhjuL-DWoAB|`p<@5mOc0ywbWnf9K?0Tsdkp^+p+dvG~{F z-!@r7bJx-*a*R-^J>QOy)t1i^x_JKO@wLvE?XgtySiZlQuO)9i?C&f7)ouCn5sDjL oW&yvSDe4y0z4?2VXG-ut5WYiwYm+$@HdEiH9OpLmsY)>a7uM~d7XSbN diff --git a/gfx/achievements/MOA_side_by_side.dds b/gfx/achievements/MOA_side_by_side.dds index 8746b20ff711d56780d0f313a4377ef6c554dd0a..e95ddfa02b6428b6fe761e85a612393e08a16fc1 100644 GIT binary patch literal 4224 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 literal 4224 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 literal 4224 zcmb7{e@s-_6~_+<<&K8*rMt+avFjb3aoH-VX4fj+U43tmMoiiaFmD)#5#Adll^7Ec zY*C8Lpl%&4T`;oME?F6&<2Syy3A@R@OqzkE`#kq zeVNJRlXLHx_dVy_bMIZXDu@0Y01||mAhKWm3j#n4`_aGu&qLYZIQCuTv@iXi^O)b4 zpN}AOpEDP3i4Sw2YGcr6=XQh{U>|~Ab;Ao747!|&&LOmfAKl<*HqAseBmbJ z*wzl@gsW^m9Mh1G{DHk69GlSjv6qMwT9c~lIiTzPaqR0F(*wD>9zz2$)WNt$=?HtY ziOHykw+7bE@AzJ+9V73S?iYnzj9S>R}B$u@*7btgHoaIh`)1zfS*f{V)8->EYgmboel~LRK}wFdcJO))w<)SSr;x3uN&TYA^gCVA`Jbjgyp;;xbIMe{Pg4@_ zPcK3L>q{vl%Uixi&NxlM>G4~T=NAL~yDGFF`JYTrV(RE;$a}I?L75ol^<1=s3e^sm z743(m8sS_`O8}V$C>d^jm*-O%rOK?CCqG2HGy#jpLqRG)4#J#A-7*kW_@CEz0DYqj5lU~pL17Rjo@&*-Dp2jY=Y#1f;{AmHcF!7 zabc|lD?8h-qWyTb`Hg4V_(#YW(gsp~aw_3HuBZ7$h>Osq9R^~WpMA+IWySUjqE{hI@<-lFPb-+mwq6C-@RAIokwj+}bR>zi0r z^4;HUScCooVUgs@4Llx7SV?(QyU2@n@w!*}_P5UR_v;>q6kCbMgZ6<6fWJQ}D@6TW zivig3=j(q$^QM%u2gkF1PBJA)LXH`uVob{pA9B-U(fHt*`w?>bT8UIWnp$stoz1j8 ziR~{h>gSbCRS4O0ImfZ}86A&T+bM~JmiFQJ6O}BU+edgjn!=PA_72@cyAt*;S8_w# zpLktKITTuvi1zR}Y_O(Vx&EFK047I5{dZQg{-2YVhxO0)$N$pLhG(Kb)0o#54*SB$ zVz6m>L!@Hv6jQ-nF}xl52B?QLF!}5}GP(Y5 zX$ocO=l^FuN=fk2F5W-xe5Dxu{zTs2#GsNgQ2Em_^xrfF&gvmU5Au1|@4|Z*EJc1V zO(OnB_rE~C{M&Q1O3KPYo}bD3>Gsi2kq5lf`3y^>;o65?%l1dI>DczQg_RxCz3tU-zT7U!}Mr8cIz`h!~G_vj%a?=e( ztR4#f1$q4vYWzH0>qj2;h(d93W)L~v;}QCAv*qw2zUL*0jNW+0>nmLXIOHC?i*}}u z*wPbuJmRuUphaXJZ`~drEadw`{eB7&%a4jt|D{SG`F437>hIL3F*^UHzZZpF?Q#SD zUlH5i+xuj8FPO~#;BFvx*QQg*_tOBr+Stzfm$lRb-toRxw3FYc^-YK;RWgFjLiQGd08nb^kirm8T`^gNyf_x+kpx;r& z{k{2TO0Ik<7oh&2ht*T=l>S>U^}k)+B1vWs`s=Bnu*hD16|gumIcWA{lH?Gmx63LN@0s!%jZ8o|Enrz)<59xlYAck!8%rta?Kf>&*BduIr&xO z9xq$ZvWNE%{k*(x+IWeb_ng;Izn21J=d8v2lUtfs?|$hyAQEf$`C#>8eTyoC0+gY5pJs$pbZPtx3^L&$>%*nP** z%k{JS5X>>o;rjJ{IeYf(4{-cI9T11Z!N=?Ih|+IS1%SNl9QPLxtUJR>`Zl`{mfP)i zja^gVwL0@ocHT^Wem?~E)R~!H@XBll(vk6rN=kAoH*?nY)yN~Iw>;1rNE@k> diff --git a/gfx/achievements/MOR_not_my_dark_lord2.dds b/gfx/achievements/MOR_not_my_dark_lord2.dds deleted file mode 100644 index e2ec67d94926eafdca4329a8686e9bc4063f744a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4224 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 K#z#TX{Qm`!OCAXT diff --git a/gfx/achievements/bg_blank.dds b/gfx/achievements/bg_blank.dds new file mode 100644 index 0000000000000000000000000000000000000000..0b345d72a74bb2a30c059b03d76d1d8efcfb386a GIT binary patch literal 4224 zcmb7{VQ5>|6~}L6frMNq{-}@dl?RsO%+7<2p?=6LA%piA477ULv^8>F1gf(SVF}dO zZ6(YEwMWY67=wJ+9wPIeuUxAiT3Vbfb{%k;SJE%dQW#rA1d;pP#i4UnBP;LioF|=o zpVNHU9uoGCbMCq4f6lr0*_q4_lvf#Jp}`0ngP-_igN&VkANc)$9tE6(@Xh?_`ENaS z9mIX|ale1!4C_0?Zq08+PgFT~-S57o!ROZekiqh$yTtqRMT0%A*NIR4;x9RNr+rAg zKfjV==UjMbJ@Dk$_!Y80K>ypf!GruEzR!PcK6achO(4S#UH>(YOJe<%ORbcD{gq3h zG;oRhuUr}eJ~!!R$^nx_%^#KlwniS}FJ3z<~P}3n=j6xn^`` zrg)L`_rJ85jhuXQnb!Bew3GX6|MS;~QBRq7L_B+XF>Bh6OLnMER#|dHKFD+RPlO)K z-!vNy^7r`Yv8WI7gZcBKexAO(oDWYQb6~@6|B-FCB=QTT?Cs)iq^USqtOOMal>hd^E6?!Qd>1SKcRFhWtx14{83+-V*|SN zXr;E39J=r4>#i&EYo(TxWqWR(^h5OM)XdZj>E|$?tJm)Tht^~MVXK`dE@ngN#x9i8 zSAWK@ZyaM~Y2D9ZF7J~V=*7FoZ%?eP`})&LSk>Ng}b+jhtl^` zu@54{f?=LcpIsGtW8lwuUHIdC*6O3;KEZyw?x9KRz4_g3i1Uo=bNR_U*|DETUq0l- zq4aXnJ#sq4PwM{&^v{}1#BZgv_+&!Xe>s_nKkjr6ss9DNI_TH`vhfGqTI~q^SpQ$X zfAX)iUn^D7!^*m^KLs7`7ts%xFFi86@muo8`t^?v^h+KxEY5HE*(?VZh=-t_*6yL0 zf1Fp&9Z?UjzltKxx5tc$`gHqm2}ZrlH%}E^iyxx za_j9s6Sq=@_#9lA#0AJF5{WS4ieAv`ofpJ@UVVJ$AM;_GavqV(t^+q#_x{SngR1{L zBL^&QNqe6fh{*MxKMa(#Hx*{vKJHWbXn#Q3HFeE``=a;$>*=4O^B*$``oY2F=gHs8 z-&`;HIblJ?d-K*20qWuBiVpd3yrH{#$34Bam~ZS4jI)TBiT6Q0o)iA4 zms@Z=dh0c0JWhf!{@D@YOk7hFiG+w(0Dd+c{)F`7{7=C{`orm<+UXpK^N;!(<+8X> zV0}E2uzmdxs$t$P(S8NYm%AIpxIg2=;=F5MH&37b6WKMeyS6R#X=+f7t;+gnP!Dcy z-4*^|=X@PrY2Es1D(WqZ`NQ?2BW6O{VV)HJB{9|$-bbUPUsJvFFZ72%{{cMYkNTlq z4Z)z_wr$b>ao|@R`S%?5BT?SjCx2w8eI!{0Js?2Zn@Xg%mKTh6`{>Be4zEUt3lMMe z(frSeQLn{q*U$d#wY_TGO%^+mYqrULDk`avID?|T$K1M%3> z!jj}Z)#_gm`Y^wZZ@(whm$*GmJRZLp9p<%v5#xRE@E(-k zr^j;S-@j;Y)ZhCJ*^!Uz*c-%n-?-lx74Hk&&$Pc_bpLz(pDK#^|0uZ?_0K=fSGn!H zPw|k?T$k@N9Q?9iVMPmsR`{`DKXzJA_}!hI;~ z5B+?-?KgBbNa7#$GvSkarx-TKJy$vzJD4fltgUjJhn^nYr4X2yLrIL3m5 ze_u{2%v!BKa Date: Wed, 20 Mar 2024 19:31:39 +0100 Subject: [PATCH 20/42] Added two achievements --- common/achievements/achievements.txt | 31 ++++++++++++++++++- common/on_actions/00_on_actions.txt | 15 ++++++++- .../english/achievements_l_english.yml | 3 +- 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index e5271129e..635d91c09 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -109,7 +109,7 @@ MOR_not_my_dark_lord_test = { happened = { has_country_flag = MOR_orcs_have_taken_over_mordor has_country_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag - has_country_flag = orcs_of_mordor_won_war_on_ANG_achievement_flag + has_country_flag = orcs_of_mordor_won_war_against_ANG_achievement_flag ANG = { has_country_flag = ANG_sauron_returned } @@ -175,6 +175,21 @@ MOR_morgoths_most_loyal_general_test = { } } +MOR_side_by_side_with_an_elf_test = { + possible = { + achievement_standard_possible_check = yes + tag = MOA + } + + happened = { + tag MOA + OR = { + is_in_faction_with = RIV + is_in_faction_with = LTH + } + } +} + #Isengard ISE_my_brother_my_captian_my_king_test = { possible = { @@ -185,4 +200,18 @@ ISE_my_brother_my_captian_my_king_test = { happened = { has_country_flag = lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag } +} + +ISE_a_wizard_is_never_late_test = { + possible = { + achievement_standard_possible_check = yes + tag = ISE + } + + happened = { + has_government = cooperative + GON = { exists = no } + ROH = { exists = no } + has_country_flag = ISE_won_war_against_MOR_achievement_flag + } } \ No newline at end of file diff --git a/common/on_actions/00_on_actions.txt b/common/on_actions/00_on_actions.txt index ce82df7f6..9f557b365 100644 --- a/common/on_actions/00_on_actions.txt +++ b/common/on_actions/00_on_actions.txt @@ -202,7 +202,20 @@ on_actions = { original_tag = ANG } } - set_country_flag = orcs_of_mordor_won_war_on_ANG_achievement_flag + set_country_flag = orcs_of_mordor_won_war_against_ANG_achievement_flag + } + } + #For the ISE_a_wizard_is_never_late_test + effect = { + if = { + limit = { + tag = ISE + has_government = cooperative + FROM = { + original_tag = MOR + } + } + set_country_flag = ISE_won_war_against_MOR_achievement_flag } } } diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index 2b85ae389..39f3e68d7 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -31,7 +31,8 @@ ISE_my_brother_my_captian_my_king_test_DESC:0 "As Isengard send Lurtz for a swee #Country flags orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! declared war on §YAngmar§!" -orcs_of_mordor_won_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! have defeated §YAngmar§!" +orcs_of_mordor_won_war_against_ANG_achievement_flag:0 "§YOrcs of Mordor§! has defeated §YAngmar§!" +ISE_won_war_against_MOR_achievement_flag:0 "§YIsengard§! has defeated §YMordor§!" lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag:0 "§YLurtz§! killed §YBoromir§! while attacking the Fellowship" #Custom tooltip From e9d2804f2a4bf966aa5025d3e61cc818d0c51ddd Mon Sep 17 00:00:00 2001 From: Benjamin Date: Thu, 21 Mar 2024 10:59:26 +0100 Subject: [PATCH 21/42] icon changes --- gfx/achievements/ANG_the_necromancer.dds | Bin 2176 -> 4224 bytes gfx/achievements/GUN_avenge_five_armies.dds | Bin 0 -> 4224 bytes gfx/achievements/LTH_elven_boogaloo.dds | Bin 4224 -> 0 bytes gfx/achievements/one_ring.dds | Bin 0 -> 4224 bytes .../wizards_should_know_better.dds | Bin 2176 -> 4224 bytes tools/subscripts/achievements.py | 34 ++++++++++++++++++ 6 files changed, 34 insertions(+) create mode 100644 gfx/achievements/GUN_avenge_five_armies.dds delete mode 100644 gfx/achievements/LTH_elven_boogaloo.dds create mode 100644 gfx/achievements/one_ring.dds create mode 100644 tools/subscripts/achievements.py diff --git a/gfx/achievements/ANG_the_necromancer.dds b/gfx/achievements/ANG_the_necromancer.dds index 347a8dfe6b872eb3ebc71f9a208bd1c0eddceaf1..9d83a3c0add35cf4d3a193af0c6119ec059affa5 100644 GIT binary patch literal 4224 zcmb7{e^66b7RN6nRelUV{$VDwGdueNqy(}WoLQ_)$NGY}1>0$XHHcYFUZUL%VP_lB zoyK5I2&nwnZk1hE?e2~tfFwbPwpGBbB|mT!aJsH7q826mP%#m8EQuK;@9lHrxzUb) z?7m4ReCB)Zx%b?2?zxY`!e0@)5kgB-6A;P%KKr6ngkspAXW#$lAy{KB`z@^4koU@Q ztlu9$%=YvUBtR}Z;?-}%xlWJc6CfD`_>SHdu(*nXX9N!ft-bT83D!9IS+uxesJoCtie z`j^#4@2nd5_803+W6Ya*!0R7mC>4tFWZ;C`b(?O9kP*0JC zl?K{}x$fIKvU`Fyg1vHn%J?v;`!I0KGYK0a7b8DMO9zKeer$P6FJ7a{() zWgI>mzZ&8nQmM;+o_XgCjPKNJ+tlEtoWSm|dskreZ>xa^15-B7J5T$7_s>ZVj&@t{ z`uxGEk%2^x4fOY(6g}`aeTw&UC^$L1s_#(==z<{HZbIqHfcFQdrcJ|YTyHTm#3`>< zhwBGTnH!!|t8hIyA0sMfO>ZZR-#bU1vL|-oeo_C$TK#VFBEuYxiXGc*HizE0_^UR4!vfyG7Tg#2MR{{lAuYF)JcE6WBY))R|3{(`ffTz0+3VEon} zP)U=M(gAzf{cmethT}~LI)_&01#thq&yZKl_JPx2e}1m@>_0!dRs>u)hj=8ZmI3qc zBP4iDfbA~?$&p@xNDTUYX6b{Q;-0&}HpbYmpS7|9NBV!v6{N0V6AJ7!qY6`Y_s78e zN~I84LvxV-c8Qx%t2G+PzgpIjA6yx{3ihs6PwufdGctfJE>u)<`SLYj;}6K#-B@=H zIOaappK^KvuQww=UE#JTVzx8&oi%^gDfql} z(#C$Twqi5r&LLzpdl&Wq6a9o*JL|{!CUr!S+tl3wx~l{c=X%8=$p6+-H;+=Y=j-|X zCtSZR|I7KEJHbBvs9Pxh*|DdC?H@?WSe8m08Cvc zs2WOx?_YF^&?bu#8$l=i=v3b5=qPXpP4(yH3GjY2G9BL)xZU`ECypYtdBX;r{~yO+ zNRt)u@tj2Px0W`$wGF-xfhWIr_Gv>;ehqANlImOZD*Qg8^dqhGV}Aqamd}ZjK=|th z=1`>nwU=6Wx@Z0GdHl1gZ7YIjR;~p5_-Zn{di|gNf%6Xt;VgiBg{kPE? zw{R8rxAQdVO3#VM`@`lpu0p5Nf;}o_&wpB49-Il-Lv_DZ&wc%7i?E-W{yPi|G|n@!sztk`|qxVll|2T_1`J0 z&u8Pm3FF&Lp3;Pi>7M}CUE()oXZv>nyT{3s^tF%=c#=j}6#f)3@GN^D2$IBjy%!jQ zr==(gbX18Dd;LY@r)x(Vn;W-)UK?ng?$xr}^}OG^{7&nh4{LD!)J~flMvtCVfquR% zW_y#-9tLi&&RFp%R3T$Ni^N}_uOu{Twtk-HpN*eCKfe>7$E}jgY>^|3^Ic%#t`LhI z*q>!2UFqmt)(!q8BSx(yB**)23KQ0xHLJTo7cj<|Tgn}$b<;Z%XJk5J~ebdCt9GNfn XC4c|*zllt`MBaRBnn1|uq!j-Fbw-Zo literal 2176 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 Q9@o__-5;j$E=#HQKPd}7mH+?% literal 0 HcmV?d00001 diff --git a/gfx/achievements/LTH_elven_boogaloo.dds b/gfx/achievements/LTH_elven_boogaloo.dds deleted file mode 100644 index 36eb51692c9709f0558ef64f1bdf5640819a2f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4224 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 BWhVdt diff --git a/tools/subscripts/achievements.py b/tools/subscripts/achievements.py new file mode 100644 index 000000000..61b1e9fc7 --- /dev/null +++ b/tools/subscripts/achievements.py @@ -0,0 +1,34 @@ +from wand.image import Image +import os + +def process_files(directory): + # Define the suffixes + grey_suffix = "_grey" + not_eligible_suffix = "_not_eligible" + + # Load the crossout image + with Image(filename='crossout.png') as crossout_img: + # Iterate through all .dds files in the given directory + for filename in os.listdir(directory): + if filename.endswith(".dds") and not filename.endswith(grey_suffix + ".dds") and not filename.endswith(not_eligible_suffix + ".dds"): + # Construct the file path + file_path = os.path.join(directory, filename) + # Process the image + with Image(filename=file_path) as img: + # Convert to black and white by setting saturation to 0 + img.modulate(saturation=0) + # Save the grey image + grey_filename = filename.rsplit('.', 1)[0] + grey_suffix + '.dds' + grey_file_path = os.path.join(directory, grey_filename) + img.save(filename=grey_file_path) + + # Add the crossout image on top + img.composite(crossout_img, left=0, top=0) + # Save the not eligible image + not_eligible_filename = filename.rsplit('.', 1)[0] + not_eligible_suffix + '.dds' + not_eligible_file_path = os.path.join(directory, not_eligible_filename) + img.save(filename=not_eligible_file_path) + +if __name__ == "__main__": + directory = r'C:\Users\kahl\Documents\Paradox Interactive\Hearts of Iron IV\mod\lotr\gfx\achievements' + process_files(directory) \ No newline at end of file From c97e6ec553b0c4988172ebdbe5c6a74e930bfbcf Mon Sep 17 00:00:00 2001 From: Benjamin Date: Thu, 21 Mar 2024 11:12:48 +0100 Subject: [PATCH 22/42] icons and script --- gfx/achievements/ANG_the_necromancer_grey.dds | Bin 2176 -> 5616 bytes .../ANG_the_necromancer_not_eligible.dds | Bin 2176 -> 5616 bytes gfx/achievements/DAM_god_damnroth_grey.dds | Bin 0 -> 5616 bytes .../DAM_god_damnroth_not_eligible.dds | Bin 0 -> 5616 bytes .../GUN_avenge_five_armies_grey.dds | Bin 0 -> 5616 bytes .../GUN_avenge_five_armies_not_eligible.dds | Bin 0 -> 5616 bytes gfx/achievements/ISE_never_late_grey.dds | Bin 0 -> 5616 bytes .../ISE_never_late_not_eligible.dds | Bin 0 -> 5616 bytes gfx/achievements/MOA_morgoth_loyalty_grey.dds | Bin 0 -> 5616 bytes .../MOA_morgoth_loyalty_not_eligible.dds | Bin 0 -> 5616 bytes gfx/achievements/MOA_side_by_side_grey.dds | Bin 0 -> 5616 bytes .../MOA_side_by_side_not_eligible.dds | Bin 0 -> 5616 bytes .../MOR_not_my_dark_lord_grey.dds | Bin 0 -> 5616 bytes .../MOR_not_my_dark_lord_not_eligible.dds | Bin 0 -> 5616 bytes gfx/achievements/bg_blank_grey.dds | Bin 0 -> 5616 bytes gfx/achievements/bg_blank_not_eligible.dds | Bin 0 -> 5616 bytes gfx/achievements/one_ring_grey.dds | Bin 0 -> 5616 bytes gfx/achievements/one_ring_not_eligible.dds | Bin 0 -> 5616 bytes .../wizards_should_know_better_grey.dds | Bin 2176 -> 5616 bytes ...izards_should_know_better_not_eligible.dds | Bin 2176 -> 5616 bytes tools/achievements.bat | 2 ++ tools/subscripts/achievements.py | 4 ++-- tools/subscripts/res/crossout.png | Bin 0 -> 5467 bytes 23 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 gfx/achievements/DAM_god_damnroth_grey.dds create mode 100644 gfx/achievements/DAM_god_damnroth_not_eligible.dds create mode 100644 gfx/achievements/GUN_avenge_five_armies_grey.dds create mode 100644 gfx/achievements/GUN_avenge_five_armies_not_eligible.dds create mode 100644 gfx/achievements/ISE_never_late_grey.dds create mode 100644 gfx/achievements/ISE_never_late_not_eligible.dds create mode 100644 gfx/achievements/MOA_morgoth_loyalty_grey.dds create mode 100644 gfx/achievements/MOA_morgoth_loyalty_not_eligible.dds create mode 100644 gfx/achievements/MOA_side_by_side_grey.dds create mode 100644 gfx/achievements/MOA_side_by_side_not_eligible.dds create mode 100644 gfx/achievements/MOR_not_my_dark_lord_grey.dds create mode 100644 gfx/achievements/MOR_not_my_dark_lord_not_eligible.dds create mode 100644 gfx/achievements/bg_blank_grey.dds create mode 100644 gfx/achievements/bg_blank_not_eligible.dds create mode 100644 gfx/achievements/one_ring_grey.dds create mode 100644 gfx/achievements/one_ring_not_eligible.dds create mode 100644 tools/achievements.bat create mode 100644 tools/subscripts/res/crossout.png diff --git a/gfx/achievements/ANG_the_necromancer_grey.dds b/gfx/achievements/ANG_the_necromancer_grey.dds index ce327d6af05af73d23e2dbe5f1166ed0d113fe4e..bb12e3e8bc879ee31b736a20c27270357e80e536 100644 GIT binary patch literal 5616 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 KlSz14mi-U1SJL$W literal 2176 zcmb7FVN6@s6}|zYK4VZUl_-|lX*kMDcm@ZaLKHlqDfYrNEFm=>4?9jUE*25+%4ULC zjNQbHxF{GyB=igwaVv|=ESNn!S$fV&=TH$9q(JQ-%pfJ1v4X(Hq;)jUwPyz2eQ~q> z*#7KFSD((+z2`gU+;hKs>C!JtKL!B2!z%q3j z>u>k{2U&kk$b-oevE6N!UqgOGjx$p{hfb%fG7sY5Ahz-W;-AB+@NJ1evV(IrXPAMo97 zC-;hfSsWAzg(=^P>Sj8vE^#7K$H^&0!j4G8;aKlDQ!l$ckoP4)uc!{xUxB%v>-gOF zXbsQYA^S3$zSclm#<}{5($P@1K-QqNXqweacJg>{|P^>S1Kph2Y5me zbH2|XFh--{Ru5&7t6QGE+*1wW7NO(CimE{H`KO=4KI)KhJ8vgPd&;DFOfm>Sg?1a= ziIoDL`Qg>}Sr1h&Lw)X9o*9u=%(-Ed7WoIFiNp6JJTr&OnR##1Lxpt)a(+EvEOakC znp~G4N~QjWmysYSiqib0fUz^fymKoaFq-yVuwF%4Qzqok66i!@c43j|Ekh6apJ<*t)w|5EL2Abl-Qzo}UoqlSj) zA3YB(iy!|@r|Gr=pjWrRx&nYQL1KR0A{TNwoc$2b4DLn^ef~~4h_>{4sHo(cp@o>n zxA@+T&;LA#e~36Tp=SWpVZq}&&jg4|PE9;4-&56L8jS(=O&x|ZM385WN}?_iyssiH zlN~r&8}U#J&PwjBc)d&${z@|dwWO)BvGD;Pfa5`e*biCcG%Dg;@w?k|K1ZZXX zOpz9mqD(g1ZS9cdx85-A!+Pd(xt#Ylp?{4=*9!R|edAk2n_NF7;BtyNHA`J&`n3+e zhZU8&^JncAd4V9N*XsxIC;ZLBjI|D%;!WQ7!KkP4m~eYrfQ*o3vkw&wYBh!wy2Qw0DGWbE|UkiXkXDH;{*yW7Z2 z^(X9gnA)HZv-NPF$1)Y#dfD&$7e6`i_*E-|iqQG>22yiz(b7c<5Q0!Z{{RGSw&NSV zxt@O%bGW^91DX8(h5q%OHcY2KJRI%W;uArpc+Fm+opN!HR6AYr3zcUsuM}_vhk_H19xg8ADHvG zqBGYb04S9@!(5L9vBCWN{5b@}i+z5WJ_BlYbt?Kak7d3o-Q zYN*@Cj{L4Hz0Ry$Ev{~fHJD~MnvZpCEt8D*MhJ|!s3GUX}Xt5z;HL)S)1 zoQzL|)<&N24X_VA)Q9l>pSO7#_+RxK6eZ5YNn)XkY{ODS zvXG$Lu#u5Zh5?95a`}5Gt;U@I@E;`z*SWVSKpLGkXbX@kv(sifR|*2gCYNhff?V-8 zsa&fAyvcPG6GD4WrExe`OJO}{T!pJ_UXx8t(C#AJRqXk=G3R%T%3+Cn{!8?JEx diff --git a/gfx/achievements/ANG_the_necromancer_not_eligible.dds b/gfx/achievements/ANG_the_necromancer_not_eligible.dds index 6e0baee3c334891c0a95c74952ee7e1d832d9950..8fe756f42b6f0c7060d7e5b60997911045e11252 100644 GIT binary patch literal 5616 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 DCvwR_ literal 2176 zcmb7EZA?>F7=GJZuT|iBxx)hOlDMTt( z;tH~iwU{Vugi!*wD{PocHXUl_#7!Dl+$zRoYGw*;b-JWMotdyxSTmiLWH&i^a^Cx% z_j%6yaq{!u6E_1uvLF@SK^R+r18@+;*8lm$$eD*$K3S}O<2k{btkIsC&kxk>EF?VH ziX_enD@F%|1R;?%`20*U2@pfH$D=(l1R$38aTG(2CuSEz`ad}4TJc-4a|?eS@GGP# zd#IJTT2*?lpBX3ukn5w7aByegSIt!BTUhcj9$icj1dqn(Mz1Wkjf$aoo$z;O$|##JJ)=$l(@8( zpWKMO68Dc!cyw-nAUNWXE-0M~IrSJt7UNH%5DK?Y(=EhHh4;KibN@(9nCr?4_+`JbF!CtbU2&%C>O}1AD{2iQz`i zki~3i@L@DjLRu5~^XRpQV>)JipjzC{PZ3S-*O#9M5KYRo#1eDz~PHw6Lr_(pi zVl>z(@+a?q>le@83cB6-)&Q%Nce9V1rmlx<03-F2@-X6m+(ed=rCqMQa;IX;#+&TP zD#~tGjK}g}ETa?Yz-Xu5it?dsU!51T%C^}l^OKpT{d#`w(S^=>nU>2g1OPVIp!!F| zAaD$on!RH#onAUI>J>O}?dFkDcEl1aqEZz@BLG|(bmKK$RCt(-d(wU~~24?-1U!omr zs%ja#Q|*fBC@xCG7q{o2yajU8j_sbVH9)AcVayfEE3;J+gX;UD@!3zmZBtj_eb4XQ z1}KmRgmbqgIAd^~9?E=RDv(o@&DP~AkV{!2AaI28LX1+G)61n4%w_A?07jP?U!Kob z>l^3KpgU`BT?X)wQ`)EVzYgHq0=XjX_o-`|e!*XND(>u2iNI` z&brP{A%0tVOFORRNu*hs!yC-}os~{Ev)d`a9Q{`SQO7f}D}^sDirt_QGN z%a#$awAcCL`Dv5iLOP;7ZJLE|hB=R$<~7C-zTOP5%M#gm74g?~xQxZdoZftj>AOtv z=;`{^cyCXlK0pI}&?3PJG$8FJ5D)>ku&V?08(}09=}@8nDYp|yGeiFsya5h+f^aQSIWj8wT zOv-Wy_4mvE7(Hb|_az0*Jax(voB4F&VKrYq?AtM)?qMgC(jD_xL^g`Dj=8FEsWjI; z&dzJVZZoEP_Nn`hmJ^*dtunHbSitB(4FESKuA|G9fp~;TfQNK*%kS@)tA-klu2)5S zl7vjQz8bRs%ONs8kBP_+_QB8v7DyP0eNnKl^S7X2IK0ETP; diff --git a/gfx/achievements/DAM_god_damnroth_grey.dds b/gfx/achievements/DAM_god_damnroth_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..c6e5e050d3bbd4416e1ef9efef9329166d0ff6aa GIT binary patch literal 5616 zcmcJTeN0=|6~OO|Q5=Go_YbZAm|8#S(d4-#;HoIIlr}bvwc!q}Wjr9R!4zbvfKW*( zE8r5lsYN?Pf|No#W$8kVaNI|MDVj-@m5h^?k6mk~nSm^5U>|H%h2v<7^yzPeg$PfWHi&Pn#f zc_=1G2i=Mul-9GSR*ULuBG;xqTkVwapIC@cJ$_((I#GA$c&g#4Q zr^@5lih!TWv#J)feVv`VK%P}a?31W{Vj;FKDSv_A_;n)x+Y7x+OG{Hd_#btKO)KZl z(eYZN9BaS4>llnb*f3%6i@NQ=1+^S|^~x<8pRmcn|9~vQyY})HRo-SS(3i}`{jz^V z?mE)q1o`f~u*qr{%7DYB2}9X4)}-+#3_@8+G01&-j=i3wZ?J)5``_B926vlI(Nv@A&T| z+2_*_jY*fGebmXZl4PgzIoM$4B`J0hOp64bcLuh<~|pLQ*1pD8W1g8w|uznAy# z{{Y(0tb|R+e)Y<$z)`1z7fOnYfE~PHe}l)21iqJLEsd9%YP1;}-vK-h7ez*F05i zQM~#gUH`)YRo?Kqej1O~=L}PvP|_+NnKnV*70+f{^Tga{R+4C5zLa=092A zc>kjNk(tlr$H&L%dN%VM`$NB*+Q+d<7NPNJ(9f|!jWKC`N1a|qy?svx$oDT!JLg?? zTHiGe3^x2#s%`~2<4LbFk^%1S7t_uKZL3gR3e2$!TCQE*F9?_Rh&0~Bp78^+|5;Ud zv&0Xqe#i5kmiSjZN8>+X@G{ByPufT9B_SA(@X0Td^()!()@C7DZas8}vXY(GY`pL80Xbm> z+Dq%Vcsw@b`N;7sXw_;pJr5X~kipG0E>t%5Hl+=G-qwBvj2IG_Y_-D2{3QYW; z9ol;u*o?VbC@wk?jn{wMIGq0#l{Gce%St0sGN1eO2>IU|ik&=7R>@AJWN|zY622=h zXuqj_8twnhaxayKO(s>gBvIzD{%oB{Ibn~?LCscu_l}=n1?^A9Lr4^)Lq_!l;}?(P z)q%#xE9{>}68HZlEA~I>zO_4#crVBMUaq!a`A9d-kF#C#8gZzz5#~FqidFe-t5#qY z9#4VClSYtY9Ho!9a{YcU`{Hu>{&b>?RW;TH z+d|%$c6EuPHbQ3A$mR#d91vi+OuTM#OGIt);q&s{w=@27 zDdGS9qYK(2zbv+a{*$;qNKMTQ!1yO|eOGdBC-tX!%BPR5_0ap<;f{QZ$fqnr`@UJQtzo0co$wmhVevyOgYAO%M|LV|KFt+U$Y=`pJ3ae{bU= z*h}_1?dqwIfHV1dO}n_3G=5N{R>uU8Gam9rM)3-8K`q&@<@YmWJVD5K0Q7Tgucjta zQSng(zkIvhSx4$ol?vUy_&3;pf*P^{W$xAVysq2A-gc2PsV`owEu*Yty^K!uUxxlf zpF)Axe7541Ry~aA-`twVqhN%cpRDN={nO9dBsU?(4W+o%e*|F%edYX{n<3%i~7v`TH5Tc)_TIeN$XLj ze5PHsyiVe?^8~5C(1DP!v_ks7p=9uR^?FlriF8Y`+pQ>lqyWF)XcUjOu1T3W W-Y?|aW{*Zz`y86or#or&!Dzy3kA{)OM+PuV)*XC?Sk_RO;j z@BY^pi-l(VS?jDU{60O3w*S}bUwoQ6q}@EE9ce@;=QXe>P(O3^>|axz8vau%5DMT2<|l!=7mo*Voq~`kil6;Z{RhYE z_LdZOk@(VW2wk3ij^Is+9_HF_#vL&Kn*%a^AvL@ea9KG*ue{b$Hlf1`YxrXN-E6g*nTC__(F%Q`KK0*$6U<9y)$7`|N zOu!G$_aL4Yu)VQEkAnUay)3G(cDn)N>OgfvN*Hk2=>>nX04wJwZLQrY;*a@lEU#Qo z{8_ZuZvy^(1uXjP=($0Ie>>*)Y`NWT@V`XH7%6M)?x&f!spfd_&@)R7kX9 z(xM=*E4OkNVl%{lMV4sC_$tEp6U8r_`sNOahrHA0RFo6-Fkas2r6+>ballH2K;Mn6 zG#U84;v}x;H{M#T|BecoZfXh!fPW%1EzBK1z5?`{6IRX>U-25?BaLT@BTDYWfb$wu zrpf&s@#i#-$HUo1edzg!DE(JKe=;luI#$PDB6z3D#H)j(zbOYLx@9~qzXzq7Q^6{d zKRN7mMj{G{j~ok(MqOgd@Uu|=Kiw?T!9Z{;@Tc4Q z3RbLmXchQ3G-u|{z1P_Zc*AZhcWT?%Ccx8zpMN(pPx$Ng9h?Z0^&$uHddWL52l{f* z=gi4nN%HM)m1^=e5Ak0)=yR$ek*ps%=v|*5d$j?^O96pO&u?D==9_OJ`8_sJ!v8zk zn+^I!A59C|@Y6p5JT#{=E!AJRA^+$1PqDvpI$gk@$MyH}lTUsK`j_UWh1Yhq?f{$! z`FYV%RSDS7m+&ZKbsGN?KGPC=4&+A~CHhM5t{%X39cJ!sa*o7Ps`WZg%+Gs3F4g#) z?;MMLKyWQbO#}j@AI-WrDw&)e1$ke=Bx5r59|pW(x1V2*HzdIBD^~76S0RbV(43WX zyPZMcU&2fD8lSJm;P2=EbmPVi7=LN*`Q7jK^br5WsGqNNR}%gwFXDKJNek$oyjX&< zM%H%+=KIf^tH}CM_IXPu)9Tgd^p2V5Fy%QJM zz5QrQ1MZ)qNcb(?Y~?T}`$coY&u3?4k$Ss*sl7no-=Y4koJ8C0_WStXxbXtvx9x0Q zxoO8K;{UM$YR$3Z{iME|6J_Nl+30UN|A~1m3H~V^n6J}Vzdom6>z*YQ8+J?dL~8gd%&$m-9p_gB z>@5{+DAVXySBhDtW&C&+$PZqWnStm^*}&}un*v6B=r$iCI;w*p7wke#MERQ3i)t5a z`CW!Tbeq?fH!w!*Z#yf|nTm(tH*tS(J47*^e|r9>1v7`spVYsfpJGvXq6X~mYLaMA zypYsGU6W9h&R4K=IblWF4*Eh7UcYJkQ6j`ry?J@dL4NzvxzJ>b(f_tak2L;Gt7`^1 z-ImQaO?Q)eA9ZoGC{{T^F4#EMl(xS}MM6&Ju)$xl;r-qnI1Tz{T<@k#3lHnx%y}tX z{v`ibilek|&kCH@LFy+2cxHuu(E$G*#B^ICRIlI-?B05}wF#8dSy=^GWjOjS-ar9!IV^)Zl#qe3 zKd!1Vz?d)1ue9VE`S()wH9jBI|Fkg0rmuf1XXe5vBLl`;IUgOIHug6&$I{K7`3T6( zoIpkMGf96ib1EaJem`W$CAt<52fTE%%H*c4FB2l&WUh0*w?WMJx20r#^cc)BObQ4DK;xBi}Z84 zO{Pa`){}fsu`=DCRuB4oO8@*Y%x}f`>r6`rV15058GGyyV7;EZ#Hz}DiG}muLslHW z8ee_A_OjWI%=G7d1qem{5KA6Bq*vuKq~{ZRC;m`8#eScDCK>^Gq<%3&6O)t(rPSGzg=J~aZky+EMw{gm{Vefv3T>lSqerg z3SXDV`OW_>O9duon*Kbtc>ZrM;HZIUzXbNLzjLP8(bD`Bj9=H#V|O&wko&N@*UTf6 zB?@vm+*jam2PXiRwEB6+BiXwMeqCm|BgTHVu0dtv15pdMpY&iC)-`1FElu?Su)po> znc~4gn!2JsGr2=Tu89TlZB){HlEGq3k!$(A^zLWPBLz{yBh54_s!J~2iaeaG#hiG;FQ z7=q_8wh>4=MnY7fgxTUF&o!=)fGib(hIOc=DQOdjHlqZAySRqbZG(ZDn74aj=h{-I zK4IYJbI!f@e4qOc9{jbU9wGENn}iPFzvP2h@(X{5Kbk}8pB3Pb=H*{(efNF86qqQ- zpM!-*a{eD5!yfp~*T4K={gU+UC263>$v);3MYKcOdX`O2cK+hUIlw7peR+x9QUl;A z!vvQ#GII}b$j0Q$q-YfIKuti6BuO8`8Z8o}TENq`79H~W1i)1mzXEMW>Hr_II9Vk5 zOn|E_X-Xt{!+;NM;ksRbGq-T`HsC4?-d~8Fx5~ogBS9}n2ko+Ml+>MRL8!Vi82s?o z`dJD8ESoB{?|=Bd7UZ*=Cb-V0J97aqn;h(;^%5&!Gp}Z{uMGYJaD{e)a|CVlJVajK zc6~lZcd|)|mmdJuXtBOXoB_<_mogtOqHUXa>Lg>Y@tSrF8L(QuB!p$+j zAzMJ*-{YY9S!Gc(M~e#!f$lbxGNmR{3E*CpUy+cUmT_Za=wF3Ykv>eahhCe8(E-`Lml`oG1x2{@s|4 z@E5>eWsxg0GQ6~&2p+#;cc1xlptD%sF7|iSY*Ndn>D{wyVzZC5O{^PC9DwO2$0e;w(Qf8F7X?+~*F!Oo^N&@=YXaS!p)=~Y~ zCNpmj2-IE`+GbVJ+EfPc2h@= z%saO9zvg>sYmrZ^}(wLFv=dG@0RnlJ15YQiXWm>9{jKmN|7nR@&HKZ!Sc z_XhRXvZ;XISgf%DoynIg?Xtb2fCFl|^7{N&2EdbfY9=Y;njY}94ckLM;{-g|F`4HR zqEsKjQ)Tf+qqP3CcZ6(7R~F*(W1z;Hl@({NX0>CSH{cquT z=?_MzeY2ZHU3q_y=1(uK$1<_}B*?eu9PDjhI12Gk{Ezi7f&Axj{>JNX<`HT;d%q9l z3vj*^78{QNc5xLevI!3WHvx11 znleO!)wKScsnKZHl9QK!9{;9M#0h@Uf8^!S-uYbJ%clM+y^)sDM1ONFUzd~qybO&$&uVfk< zPty88`j6yJp#CNG!gsBk<};Z$lan%NJvdWi=B?J)d`J3W+j}0`pP76Ycf&RtjO~Xb ztl=c}zZ~0lwO0QU&`CdQOP|pLCg*!`cg!E8KUfQ^CxCvY2K(o-;u_@taXgO+#^NII z|M6BAmpjr){Ts4P<{6*aPcfP2^vj6)`&Ji@Zz+b)4~aSTJJ*^BivVD?EQmZ~(5r{iMDqK_r zxSt>tq4kLP1KC5g9_;KG`(Ki^MR{dEEc)bu&@$zg$_$yj)UF^M5kW z$*$lB_|uefWu;M1*Ox2RjJ4ZN06L-hfU_G*5c&+GHfVb{X3pgVGcYiJ5OPSFmCL@OZ zigUuzBT_q(DUd9XhV?HoRaQ#%@&icD{<~L&Q2(3W@Ee!N_4f%x^u-4hzJvR>=n6u& zW4h$UTi{R$^HC9&Ez$GZ|hgPu3IB z7{z$HM0jaI`h@H^{sO7@Nc0Mm(`5Z!iY<)ymp&!**GJ?^LdX35;|U*(@2SGKYcyWj zD102;zW=9`nfdv;yBEM-qHd9UD^gzs_zL}oLJikl6AkELit-Y$tpDj>(EgAfZ_1U?*z<&n6 zUzwY`@(kWTY{Wt8; z)==0B^p8813|3i-2$c;iDZXDAj9`B< zKZd?oT!Q^m%EEVaTHtAu}->{UDuUvcC7 zzk%zY{U?{nJZHBDjo+-T-;<*Eq$xw1a=HHGf8f02J|)KG`?M`hDH%%_0uQ9G$E1xh z4bC5j+q1U1f#WygmB{;n&81WHzI+DTCz`l_2-Z8?`l`xyGJux9-j2VNGP&|-q0X=+ zkC!0vwp4udE#MbC`2PK3bOSJ%7xrKWgM21_KRA0wAN_oF%YJR-edLd@{^3VN-?M2| z7A4cYHzY(PO?#SVu!`8D#U2#!D-fK2fBiv=4!;kGNXH`5&z)&nXWEpZSvB05vukx@ z`+Ol=0WZy+v_9O##)+QIna275WY{aLY!dl%I|phexN2N~BhoAXJork}Qz^I}hNdd; edg%vb*ku~+WS+|-iV;ap9EhG8evEO8qWE9jU$I31 literal 0 HcmV?d00001 diff --git a/gfx/achievements/GUN_avenge_five_armies_not_eligible.dds b/gfx/achievements/GUN_avenge_five_armies_not_eligible.dds new file mode 100644 index 0000000000000000000000000000000000000000..f154bbc55f14232b73ca9339bcb523fd8ecf00e9 GIT binary patch literal 5616 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 GN%}8o8>%({ literal 0 HcmV?d00001 diff --git a/gfx/achievements/ISE_never_late_grey.dds b/gfx/achievements/ISE_never_late_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..eb88099d8df9e2a25d3da4f7c0840acbf6bef1d2 GIT binary patch literal 5616 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 literal 0 HcmV?d00001 diff --git a/gfx/achievements/MOA_morgoth_loyalty_grey.dds b/gfx/achievements/MOA_morgoth_loyalty_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..96e3c35173f7f699dfad0bd279858d2696089e48 GIT binary patch literal 5616 zcmaKwe@t7~6~}LkyV>A0{v(y%rf#z(ljf1Q!Be8eUE5$5XT=HK;^xJPn*^}SRIt!Y z9aIVlc3p;s%h<*o8dXe1Cj5GiiDuQbO-GEv3X5n%OA49V2vDGk^MH{yxKI;#yBBh< zNjB}uPW0iN`{R4h{c*1M?tMXZ3L*4;Wh%fip~ zKPqgL;_u!ghj#rhKbbP?zyAEIj~Cw&zk5gQas`wd0z8i%5m!r>OO}oD+~dH?>KqeV zp1S}%R~fV-OL;l)?*1B`SSGIpK6>#L2K>n(@VfZl|`oViV8RI(W`~592elFv7N0F1pa^>ItW3!GUUGd!6pe+0NJBvrqH3viApX4oK? zcP3euEhMVw_;_>7;I?es*zlJ4^-u7JH}^5c#VY)_KTy1EJF7zz;BNl zSr1C1{T;nJrShUK8o$O!A9Lx3Z5I63^t(!dS<@|jCoaIU?3lsR+&lryn%Z<#D?e3% z{ux^zQ&CY~0s47!j!B_VNWp*5>NBI}@iPxFx=ZIXXvO38JvT-)YL1IP1NNcHDV3Y!sQ=E^DHX?sYQY{ec$FhxOwj$(t~bc`K&y+-F%9=hPU2VBT{m7Ewz1Fq2-WRH!EQGJ8f7AE?)KhybOO-7dY-5dx1 zn4yrpd~=2S%h|Q{-=@R*aRL2Bc>kO~H$MgbWIrMP0@aIWBRln}G%eU;h8CvEJUR?a z#(z4x@)U5)(8qAsuhaOp>kDL|J$tr+ove4RCramw>BsE;cMR+U*nhU@?H>Z?I$D@G zXZ;s&jSlZ$U!Vb)^cUIl#1lz2vKCo$2k?NtkQMK(tbqPPHlWPH1=fF&sYZAH{QNxl z%d!XbX-_;#_Zy4tsTr5@z`ixRg&8}wNZ03pzK^Mz*3$JoV{2iKI4;rin(T*N=|8&x z^}igOu|1;I(s(b8@n&avc?H;KYz4B%yBFwr;WM`|-%eN1`t5qJvZFXL1O8;c$WtT| z-~qixjXD3>A$lj!rGy73;==Rz&aYo#t1FwvWmR!ieW^e!$Y&ufiZs_xBl-U0m@wfBMe6aDYb zpF9cek^R!q5$XXZ>u2K59eN*<_AlQQX#9!(99+PE&^o31V)9M8zDpb$bxBE4KG;j} zde-(_r0tXS?G)xtfSsHlAEcxNfD73cMlO-i{eQQqg>kt`>G^MDr&MXTXQ_UoH)Z3- z6sT`xHR>qe(E;b*ef{|l#DD%I-LHkLkwux;oKT;z;^W@sBx}^YxBz!Yr0VthW!X~o zHZghLDeOjeA`fRU_t#U*P#}9Nv3|X_Fr%{*&0v?}_*@jPBVe-MmzU$zzPYuJDJ?Cf z@zK zmZ0bN?*4#MKAY6H&=XK1KFN)d2YK`%e%SsnUw^2*Zk!J|PbAwX`nACzy>CeT`HSL< zFkZq6QQWm&KR*8Q7ngDVyF4y7l6*5T_9XZZ`&Br3<&OX#tV4w9ddsXf$S{8j_IlSU zj{<8Q1+r$uYk(E@RXbfzYn)mH_FU}Gql~jjCjD=H3|LvcIv#qz4f}oO5niP0BfK`= zeDLp%VE+t$Kkz~i?q9;E!~P$Q;QS-&`2z`Ye^`S*J6mULTW|sY&8-NXJ$r|*&aby@(a?NCVfQK@*JvIGJITNIozqZ%QorkW zwY6Z+tVW1sA7g>Luw5=cBL@!qOY3%|CC}%uzmHkpJ{kYMmtNWj{@oFTQd83<5PvQd zP(JtE0jhu4KVy^P0{%qrk#*-kiT@AQaVcg8%J+c(P$fd&LuWdHiJn8qU;xf_sE`XC z?gp-RO{wH4g~qQ0&qpot^nzW9^`AlVKLBUq_>Z7Q+CCW{?t#uPVJDK%_P7v2``3-P zF;ef^fEnUnhV>u71>(QCHE7k~0{z`>YVdQtr;Y(P`0HKs$V2s(*44Y-Z%)wsoy5Bq z7w{)s#3l9PY#MDjyoH{x_4q!Nr0`S^Sr1wH&ObqYG9Lr`;`II`^C>Yqu7jP#Lv!dH zZ7=M{`C5u(1K7Dx*zb`9%YYjr*P1dU+j`c=pXe87B`PFQHk5_1{`q6U#bt78ZbF;! zen2AE1swJdTATB@72wS3L8}Mnv%n>eA`{BX6OxSI%bZB$AP1nd?k>19)faw3S;tMBmGI zn~F?g&_eUqVgJ@_ch-J-{tQ}U2Fdd2(_#;j;Qo7gbB!)*uEHkFt-U{{@q0^>78-%} z$@}uMP+SGPxiz5lUUbv-#`NR$BXGyT&h$?*Xo;iuk+RyW{HGA7?QP9&(@DI+&QC|y z@_+I^FqtZ`$#^D``Ir&EKSq0&=>81*Cz;b+oZh!#|CB0^%cJ*& zEW1E9zBIS)JvOCE?F`j^HoDe7$=4=|i)sH`v)lC@(d2zb?qjDQBtT!6OQSA}kADNq z^!G7ZZIs^cOh0~a9y^f-_U-mb#{KH8kAQFCeD!sk>p1jZqm!y%u5!N$`UkLG_V>k8 z;7_=`%1!rAy{nM@X7~%*zt5~u|NQ+EJouB}6ONs*(D81!PpLln>Z>8Jr{nzW!=6wG z=HJLpGD0jrUlca19$U(4{Qlv1I=@<+FLD;-gZj#9oX>Fr)jL;-^E14^z&^CfA5vCU zYt&gBPxHm0N-2JSqmH%y<9Q7@UL4o#O^CU}8vF_SjjYXfnZ6$m)*0Eu7J-guJI>$E zEKkz>vfgE6-QtdP=)c4vRsZ$Ni@Slt{&ZHpaT6U67s9{4xVuuJ|Heqrdi(axiSJhM zk8j^?YPi-^?|L&$v?Row22D=5q`|MS3$ZE=c-ksezqo`DaESxQKg9FE+wD^IjeAMf zI@<8>ajB_b-`Tp|p0-UK5u>a7UsV>$bvT_Br@vWP94GnDcDv8~X#MnQ7(aQBP6vV< zaDyM`Q+&)4n-#x~ic3-QUi9#S``ab>{lLif7FSTcrFDHw*_mgeQ2!ui%i&X_Ghf5{ zm#PDkiK=gxas9+QB3WM?$If9Na#$aU-{tPGzfE_n z!*hQ=hP$Wn?=#|4KW<*rKiqw=u1&Wqx)8m!BF6K?Gt!-{y!kz!cP=457tojj8lo>X zIxc>@v^GBSUc0lh;7*99%bFZgzeX2dSXqqUuU}fHQ6Cq#ZAyp-{;@aLFP*FWjZUzL d&nCq5U*lUCk@KXDC-IPyTNquxBvA%2{|D=iiYEX7 literal 0 HcmV?d00001 diff --git a/gfx/achievements/MOA_morgoth_loyalty_not_eligible.dds b/gfx/achievements/MOA_morgoth_loyalty_not_eligible.dds new file mode 100644 index 0000000000000000000000000000000000000000..c2bf8ee76016b39f9441d82e6adfc8ccec539bec GIT binary patch literal 5616 zcmaJ_eN0=|6~8g=_OPKmX{qKvD$TA;%Y%?$DQGaYjUNjgxS>l}UTjzrV0)MDPiq8pg@J|BnwSKaryAueIe(X zY}1}>(9h@GkKZ}xo^$Toy7f2eLkOWC(+Z@=|D`XYr9b#L{LL?5f0c{B`M-Sr{%`;9 zj~WZ*_`B7#GxLAxQMCTQe*X2Rk$1%(-W9u?UV5EZ5YQvy{in-Gj6(8#$k{jU&ZGC!1I861NX;^fUgJg zrTKh-vo32jqS5gR;0pUtHkw~qiDA5d&c!{9IZoW_mbD>8Te=+~M|n7WNlBoeP--)bFNPw33+z;mj1N}>7J6RPExODFfQzo2QpLx|rvqLZ-`p-kZarYt z<$Qy~H1+}DyRBsmCt!Cxu=m~8Ivp2obI0(R?0MrN4>+SX#BNl?KLWVYe@gWVegJz; z&ZtF^Bm2oW$TcX{=Lfk^IGgP*D9C%7PwCSaTrR*1eL>aWL}nl016RtJ*AZF(eDQi2 zgV3@O@X71Bj2kJ5|B9~6sCm>y{C7OyrTf3K-U9uX>v{T>F9%}$MsnH1-Ux{o`P{br2OjVtMTtCWHA5Q(=fjW+v7;8K>X<`lxwO(lO#Tajb2)r93b-t8+iw!6eK?6 zZ+nk4JS&=EzUfAmI=|aN>|rzT^wR@-DnU-=@U%M`JHLXLrHpI%3W8ks=eY=pH}4Uv zNf0iO`1BrOsmZFnV=!Nbj-}I;vL^tC*fM5#D$4!g#A^I^=rDi$0Dqey#GX5SZwB=9 zF-Af+iN|~cmE-w^lJE<$ELBq&y#xA}8m)AEa?5B8^ZPml-z~t?ZrS7LtF2lM>&Uf4y#tsk2ic{`FSf=S%D#V%1b&%ce~*e~8UxI7M40;Gyg? zMqG|Yfqxm}rS$@wlEy z&x8CtlwGHrtE$oiK9ilx=*tft1ia8Ut=ePz_+!9AAy2z1W|slmJQk{Zpzlq<{6356 zLNrS3$(LA7t-al(KJfc6UxyB30UGAr#wphCGm|!q9Vw( z8o6dr@0bJrS`Gh@|0VwK-+T2{(3j3jXQ!X!Zz+Bz=jKQ~l;*!Q6(;^)=;P`9{CpdX z_jq`E??h%I!A+LDuh--wtI3krw&r~CCd+mthA9>398)g$$cPia9U~h+jQbzkH?ZXZQ4cR+iGGn+QPB^!IG!J`D%Ot##^>)DCHyP z$$7DCXR|K!4-or%^Vlrv+2|PPr{u8Ibak~0uvTNCWU^R((rR%0uZiC>MypX%)YY~8 zrTho{sT{dxc{z6eCBBZq!8w>;;w$4re5j-lcjz8IECA&r*twEo457Q#yrz5&QFcHbePLOy8@wO7SrT`_*c! zG?K;gjaD|GP3F9+&z}@AyU-Khmtm&8uJnT!H(=aOXx+pFP!V z)^ydbHT%<~xCNmG^k=ixlxt!k6Yy{`OZBDsNWYd)%2EPSkn>Vtw_u!l0`v>)YP8ta z`553j9YW%AWE3!)p;61$)E93Co09lg%pMhXmfo~Qd=2y$`ZSav^CiRizaGH-hyI0a zi{kS=TKw7Ee$)CSen5YHJ3@ayVIun(F2?+$Uwj5~HcPEW9)ZlCl7o=TJVx?U0k&7* zsVCR;lRW*nR{J=Nm-_GLPHTSzxWS1~*BeKPeKTqiVwlI6weoMzw!{Ojuxr$uaW9ES zO^RBD_e1jW>VEd;f_`rRp(JIp4E)dey>wpQHo||T`KDElAJFee-FW?5}j5;30k@=+YN0ECFUkQUt~qP{wAUI_&gwy>jK=~y6=U27xCh5CTC<;PtqG-Qo*MvpZy=#mCUOH}5lR?D2`Rk+3$^V9L-|N} z_5QyB-*??LVK3MV-=~Y*{M25+C$HNIIiHgFcXRuVVlJ|i^s9GUZ3fY2B>l=rGrn)? zpC|p>aPf;enNR$u*oS0z{XwCyPN%)*& zuH74ooj=uO96w=h56D%QgDSMdk$$1U8C3nXzx`W~m;EuQc1(t=KO0@`{~3c^_sMXD z3)c4(;v0w{l6sBrC#nk(2dV$TMm)bvN%rG)2UV`!bL2ea9-da2Gn05&FZcJns;x6t z?`N~EbpIK@@^9By*FS^%waN1G8dyIi=S+6zKrDYt_1F;(FT#9Xn9nF@CiTNxCD$ST zEIB_N2P_%yMPv8xgi`pUq&&5(h%$zSB{}s@ATD>!~_()Yk>`CzM*$CUf{AU^Yvx z!S55uei#FrGC!I*y1M?n`Q>`)zU_T|Q7jnI;!jUA?ij3>NWRRdWmAmCnn{??W?)q< zeXlD4H#l<{m$-@4y9&Ep^UgmmW`P{nU$yIohxErkc?Z`kE|3Q6SNdn!ufLv}{2_{8 zzWtEYbgi|)c}yu97sdQ0ZGKNhQ*%OTd8md1e4|*d`Rx)yfGg}lRk~jg0Bndcm&7qwEsL{?SY^= zajJU!=69>{&+9vMyT|5NzF)!P7vB{ndvY8{>bX$JX5s660LDxH8(7#|1>?J%mK4`( z^NFkeyVTp$Y{}RiazC)gNbikeUhPkN7FQ_Ao+G^prO7&%5KWzpit}c%MZUS6Rkt7G zv3{OcYw&7!)CWrx14i@rORM|C??X*<(Xq-!(Qru`zoY(C)_&u7Wd6Z;+^=SEV_T9I t#chAtTF@-tV4umFG8&&=6qC2(a7MF5XV`ORB!9>;!o9#KqI`lN{2N_fhb903 literal 0 HcmV?d00001 diff --git a/gfx/achievements/MOA_side_by_side_grey.dds b/gfx/achievements/MOA_side_by_side_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..f98d9e1ab5f9a864ce3a5ca798b5b74949560e55 GIT binary patch literal 5616 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 LH>^Yl&-4EQeIM6= literal 0 HcmV?d00001 diff --git a/gfx/achievements/MOR_not_my_dark_lord_grey.dds b/gfx/achievements/MOR_not_my_dark_lord_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..1af55831af0f13842a715928aba87d4c9986bfb7 GIT binary patch literal 5616 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 literal 0 HcmV?d00001 diff --git a/gfx/achievements/bg_blank_not_eligible.dds b/gfx/achievements/bg_blank_not_eligible.dds new file mode 100644 index 0000000000000000000000000000000000000000..a7cb1adb480edabad4e92590e37c5ee3605c94eb GIT binary patch literal 5616 zcma)AZA@F&89p_)+Qla0{+W9J?cT|ed|?z^EfQ>Mh`@CQ09QN$_k#H0M@DEyTf1AE^KkTFWNZwD@ zKh;-|&Fk;teysmgALQfpd5t}aB?+v_x;_A+y~W}?|5!U^z<*T-bkD>@bv4$nI?&^O zf1UDsqHnG#p%&vRq6j86@ihOzFs++_H6 z>^S`!miGo=3Vf6`)aym8@GEVsXu9eQVGmH5w`L-B~^uv~I42^K5OhvarN z>$*OQT8Q)+L3b`bfXNTZ^J83+!LuwST);cU_ zp4SGSeas;1^FvF*z45TtjFS35d||y2|8*_9J-?9en6VA!wgQ=~q%L7B^$_zpN_ zZo0an2K!TxBhq}{@ILq3t@@8h8s~x^%)iH7kk79iTEY4f#IGA(l25kza#Q&u+TUz* zmOr|dCh?es@u=K+hUlYwr1jCOc)z@&MiaXi4--6?!8c?3 zNd7b>aXUXspz9}cHkDLOqz82ez2lYP|_B(25{YQ?g!FnS=FPI=YX?vmi7bU3(93OpCS^(ioT5VZx^@o zm)sF)y-g0s-3*p*#-orU`E5(6-1O?? zFR@(h4*93bWzrvNFzo;RpC?{3$=O^qTEMtPlG(BPdeSe5pE_#x51l{fNInqXTzZQ5 zXBQbU<2q`58UI&S4jsbwP`~KuF>;U+yCu=ha=l#DBXeveWfeGOrjh%*6|Ie#ov6YpZ*e=*uqIk=Cz~_^U3t!S<+WUbw=j zK1jdW;eO`(k6m06SY59-^M~V~@JI7<1%4>sB>~>ANIjpphi^|@ZZz|iU7|zL^{4TA zxp6bU#D50yov5{9Ir7IgI!@}Ffmq4hx`pM87-HjvB*0j12y>OD`-j{h3KrA(qBhEo zQ!@*s|J4SS`)q%d)CaR!A2td1KiVJCC;TrrEeSCFgnx^)By`7mX*@e*?wQp^AMvMA z6hLD67{Lu_K7T~`qWq58EF{0EK6T(2#`=ty<@J=~*BGOIebcz{D8>xLuw4m%hWsxV>HPx9pX}%``J3lUQ%Vy1$B22}0v^^WhW%Bd`L#p&#DzkR%F%g3 z@5hM$(Hn+|f1cMz%QILXt-ofqB`}V_`u%X?;jGZ|>hM`~>Q@6slv(JV_y5I9!u|BEWc~f+8j)|=(+Rdi`!x=V@0Dly z?e^~7e+yf-?FZxOH9A~7-gbTX7>qv1WP*W<#jW@MH{p9%d3v4nJA5yDEYB24zr**h z40N5$U!)J<0~p5_y&scCfaHIV99{0jP4n5x~}&gC|=)s ze=m1B+{!1tq<>SdMV$2~N639AoBXlUXFC6T+;Bf&m9YIb_ka`L@5nreJU`%s&(#xH z9(iFzh~|p%zb$Ot|KWSk`PO_-AGV+Hu+929y^m@!wt43nI#07hb_w1$h(DS#*W@$3 z?^=#Wq`*VeUdyjW_+*-%_i9w-_b;v*(Ee%wx`6I)xni*!+jlgloKt1vF!uLyQ$$j( zmAf!jyHn0x3$*{V*pdUNqvxeHnxf}w8ukxD#c5J zr|Tq{_h=rj7mFKIE(%@fL3H=;X?9T%78YKuq4qWYFY}q;Y!UwP?ekMlq4SYt!RPP& z6VIP4ufX|3F|4P-nr&FMnz6=N)5(6SuW{*gauH*@IKo>ku>Vg1Rsr9Cgn{!Y(*~Kx*}(y4G(Se--*P-FoXW?$u6(*xf2wQ1x!<>NhpcZ+IlT+3^!)D_;ZJ_z zC-WuLp5>#gbs9?}`Rc!F_;mtf1>xZ{qmLLZt-^dC9qHEvrRipBp(TR1Bu%RcYAv9sX;cyOeCn02II)ZzXW5CL%Qr5qTAfAIMq DMlDzh literal 0 HcmV?d00001 diff --git a/gfx/achievements/one_ring_grey.dds b/gfx/achievements/one_ring_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..368f56986cf2f761db87d0b1d08f937af8903a5d GIT binary patch literal 5616 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 literal 0 HcmV?d00001 diff --git a/gfx/achievements/one_ring_not_eligible.dds b/gfx/achievements/one_ring_not_eligible.dds new file mode 100644 index 0000000000000000000000000000000000000000..4c6122e5b4170d00c9872b738d241ae0e91dedc1 GIT binary patch literal 5616 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 literal 0 HcmV?d00001 diff --git a/gfx/achievements/wizards_should_know_better_grey.dds b/gfx/achievements/wizards_should_know_better_grey.dds index f646543bc430cd23dc0f0a993f8f9c01f090c1d9..2dfbd79a8e647f453755579fdf79f5424f87aad1 100644 GIT binary patch literal 5616 zcma)=eN0=|6~JG?Q(yQ<-XELdXCNU6Gb9XQ7 zT$8q%hA`;obMHO(oO91P_q{D!cE}De4D%qD!Q|urkG8ndTA7Sig^gjVDA+U4oM#w!CGezK!vA*Yq8(V!y1Dda%d%6p?YNAY?+F4+Kk!SDX@KtUub)|jpf}A0a=lm08W@J2wR+1g#CG7WEYL^OrM0$N$#Td z)OZVoT78n9*Qn7ijf*%P|C?_l9;Vq)HLyh}XW78i5nu_gX6GZNA>blgIg92lQvd$& zOgY=U>NTow`(ZhM@aaF%{ZFV0gtTVw4A>u5d$_X7vdWbG?aI#1a4oFQH8d(u|M=BU zfG5o!Zr|~C5AdI{KTfaC@dL*k5`JfK>b!NRBs_Dnt_$Q@6&4{gGkX>Aq#5V0EA$L- zldeG6Sz<5%7vl4;*9SKPH|YrbsK1(YZPE>6XeY?Kj2`aX!_ze0xeab^8jTk0w`wiIp4!<1u->pk&A$6?^)28#r^aQYHJ6%!iNCKWOmx59 z_HkLT#!K^;>`xphrTH3G%a}Fp^E5xLS{YMYx0^D~9tQQitbp}9R5Ip})j{JKb9AWs z&;C9N@~nz-c4zU6^T4>;F^baz1HeVLaoNVPs@1@EPPw_^V@Hla{4Ii;+q!jY;qc|f z`o}d`1e4*!N*G^-=ih4c7XiQCQ_coDdT9M8^(W{%cNgS(uY_NgeMA6mIqu<-V^?ki z%Xt}7QgZnr;6|m4S@FDSH!zVaj;z`MO!B+em!S2LYbX$6eWRTqC-q^cv6kjTqteVh z^2q2HAXnJj+@`ljssD2EdA_vO{`v7gF2?_;-ObhPFDd>wxM+WF!?-LjZ{-P?PvpQlb^Ky`HKWx?B__CSS!y=nSsIHB)g1i9Ni)!d1`aw?WQ#fp<{jmU_XU&I|RNsWEoc+n0*T!IcEG<4@|> z&);u<8rCE6etgqQwEl(FZPL&8pJzZWXw~cmU+*aJq*=~qDpLKFYbex4+}&}IEAaW) zmXY%|uz>w%8g*0utkEz`qAo%G%i(&s!e3Sj^-qrb$>h}3O~`*%gZtNkyWhZiWc;<8 z*)$)A9p&u2(@E_mTy2g{!T3V0UwZNEy@SA3Y|pUu&Kxk=Uoe>YC@|^2Igt|T->eEZ zR~w5`e-zpLQoTOK!?^w>EF6%N`t_pUK|N-SO$F5ULdS%jyQmeY;t~0rkC17;?MT)ruvD$TEj6Lj1L&iT$wS| zZ;8M4eTrs~#~eJHd7;h(Jfz~;Fp4K3{t~{N)o9FRVE=?_T=vZp`{le}nm@?Uc!bqz zR2Phk@yU-gm-h^%(M)MzZ~0N zS!Ona{bBXE?C#xt#V}sZm&VjcAlvFDC+AG0+6`DJ@({D-i=m!5wzK4LNiVLiepuj#2i!X;KKWs*5+tz9C=@r$HUCiO^aoOa)O_=M@vv-#N{)K2259I!>v)ie@mg9{|d&P|a=#%q2+go4X z3ar5OAnEmH10S_Zct<2eat3I8dJ>9H#Oq`GchdVliPxdk1}Cg9>O35p zZKL;{cBPtiC+g_)E9tKuMa#-AMDWYEd&jCs ze_>hX-sR7s{`jRXTz^vR=3WeEpcI=q!@8wh&c-`s_sOsIw^AnhGShJWA7fY-^Xn%h zxc<3ZgU{cdnH@vPF;rwL)IQ#g46y&0<2j``zl_>T-dD8FUL6fjp|1zf+<;ZvsC0>w zb<=Yse|@M4=kpU6wr+#@#Q#2LDfJIwG&R*c`SoJ{HR;A>flHUBrson1@84LBoWK6k z*@@Kr8`9Fzu^wRZ{_l|2R}b^oX#CRQ-J#W!9=X;d&#J&3d2OO{dTwEV_76+epA{|Se*58hq>s*!`L9X>*dMnO2lZ$=ZH+6f^a)WX;alfpc)eA*58%QqXrEJ_ TJ0pq-l#U4p(#tSiqA30caCny2 literal 2176 zcmb7FZ%kX)6+fl!dW#`>Qi=MeD(ZV$TzJhNuv(Tn8l?8Z2U|i44lkiD;g2n%fJ5uz zSwnWg$Z=sd#?c~7`+;Q0)VQ^4J6dJv+7YH$N>sV6qf{PIT0w+sNTC!oltKyQ?Owm3 zMB2XWNl!=T+{?(eb#UHW^6a|`$=ZxcVKQ&@9naZ4190vYa;ul(gOy!HUuM01qSRNKy|4}bKLE9a-jeXzjLs_E`DHCZAuZUBEQT2P4i zZ+k@i3@zd#l{CE6MLChmKKsJ&E)HgBecjeut(pY=Ooi;y>tD+_Da!Ue*630t>_A2C_4DESyW}?R9pnjR~CKnWXs(5#7Qu;=Q4jwA4C@_R| z%RM9hq%J|d2nr*Maj;MhF*Dwo|-r>4eKOq`IInK zU`WtCcNgtrm~Y9*AMYn|+AzS|uxP9N@KRCWhNA1v z@ebm5x#4)nJtaWL{fg}t4j>-?AfVO&2vf!VDO-t3-_~Whp%|r4H_rT_MCGR{zH+(B zoC*53l}9*BM8f{6x9@2dwQyP4{5$~Wf8v~xzTT!ie)HzdYGa1Jrulx5a<*_^U2wVD zw0i16#ibW~5wF=MWNfV%$6VKGlCS_q(;Ic{^d8JycL^Tb86$t)ub*% zpVZaeUQjrw!hwbLY9oO3!s4x=_<~|!x7W)+3zwFqF}}!u9M{E_Rl+~07#zOyddgPC zCDiKH8jqiP&sSc4YtU={V4v{7Yi>rmtu34n1{%O^QEM33d$iK$HHWmW-UCmr*a{54 z_wU=)Zj`Xrvz?tSoP&yvef;;7Ekl3u=f6!(Po9x`y?p}=NZ9m?^Z(qzU!QD7S5{YX z{U_*$8zz0q=BK(=T!miz4$6yz@stfSz1D`=0lc%hxp_~?z`@d=K0~Sm{jb;D*)r!D z`TlSuKsiI&uwcC#HA~n!owehPTu;qR?3TXmNzlvNN_0Ll^##Fys`%*Ts5wDT57pL(v>AHNbmuaM`F{Fc?Mb)RK?yH${UL2Lnx1J| zOzIp|=~ViDyAi1z;r3-7=UK1|{cfDUPd8_e)_9c2mE4RL1sv2<_{+UN8NtW(hx7mH zbrHYJiSs3!Ot09Q(QLg5*Vib0+uE8%Dh7@miUnISerYV8ZZ{_AhO7GvS8V&(UqU5O zuNkRMkBq%XIfDv!a&wyC%vl>wk$g=|%XZgz01{0bxE}yKUVjYi^dAvl!m`M^IOlK2 z@1;KyE3Gy$XXT>*VL{k3Zxi48|Y8`41}6dkFuX{tLPIXJ|j=2!|uRxSu>X zJ1bC57D4R3kK|>e;WH>OG$TQR6TVF#d||QC zO8D2G=J^Dzr=EE-Z)9zl;6Lg=Wd7j#KQSK9@gFI3Vt%{;U*mIloIuRRkTC?LpN7-x zSn8?6K}#Nm_npM!lH7~OGG${?hq(*h#JbyV0k0XLk>7^Z^JJZz7yXULS%l&984%|W znZJgn*czF)JRf?Q%wJLN=#~i4$@~@Vd``!=`j31iAg(`qiAXYk#eJfk%-zS&0bqYV Mf}_@Ce>k%CZ^?mZ;Q#;t diff --git a/gfx/achievements/wizards_should_know_better_not_eligible.dds b/gfx/achievements/wizards_should_know_better_not_eligible.dds index d4dd32824ee585154f5d5130d66a94cd9b656e08..9d690230991c2bf09666714357056d6692f7f97f 100644 GIT binary patch literal 5616 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 literal 2176 zcmb7F4@?th6n}*t9w2(lBz79JD_Gb1ze620SyCz{N?Zb^pS=N&vmK7DnB45lZUcps ze}PENwqmlZOU$4`s;!2kW?LdM&2T7#Mt5w$pbWi0vq!DpT*+CO8gXa7X82e$NY1*h`!++@2Rur z8>8NWwNxf0CO9ZmC^YJ~Z~%t`qke?cbks{M0GfMGS{AnW=6`2lz>_$a*e8BR=lm*E zMhu^)jrNZEJ=pK=lIYAGIlpk=7=Lh*|FP(EQI3s>ksIm5uFY?uaNztOv@=f+(eCjvy0I_EEklud&<$pjoG_Cc-rp| zy_C3BLP)_*7s_Gsw9Ff0>WqFCT2vWB5|H zvxxR;`=`$bZ0v_3=cL3|HRh3%nn$uup0$$LiLqfamVc%eq;cDHx2pj1n1rY4g3%Li+8k#pz5Ov|LIG2Xz9IrG^1_-{KX zF<-GXJ@x&j%!kmb{xdQJZ8|mcc<^{8)8b+R_g>XRy+w2uy(EL=e@Z7ybNR>huNnpj z$pwi|_UXOH$sY}2~+_F}%82bvQ5%ka2K$zxO9 zYJTLPgqHaLp6Wlk%!B*?GctcltE}_pZ}L8qc2Whnu>2(^tPFvNi|tBv+Kl68VzY65 zDfwYt&W2Eo62HaMAvF(+Pg9#ig(MQclq*YQ{+cQminqfA(8PC^D71mu37}2;>G-Ul zBX!Nht=2ZZi=m_F!P_NYFx8LZnycm=h1U0_lax5cFT{h)-%A~GH_;!+X39IT{@{6L zd2)|kPW(T=$F5*CQgzeW`XU(ZZ59OFU0B0)?)pc?>CC|2O()|8rGlbHL^_f*Uq1f5}nMX))pkP4Mw8B++KeH z(O-o81w?;|CAv#2`?uZVOMHL+^ThsuCvh&Z|HQ8X-yax>{&F7TXLpHwXM6N7R#JZl diff --git a/tools/achievements.bat b/tools/achievements.bat new file mode 100644 index 000000000..478b27d73 --- /dev/null +++ b/tools/achievements.bat @@ -0,0 +1,2 @@ +python.exe .\subscripts\achievements.py +pause \ No newline at end of file diff --git a/tools/subscripts/achievements.py b/tools/subscripts/achievements.py index 61b1e9fc7..f5dd074c8 100644 --- a/tools/subscripts/achievements.py +++ b/tools/subscripts/achievements.py @@ -7,7 +7,7 @@ def process_files(directory): not_eligible_suffix = "_not_eligible" # Load the crossout image - with Image(filename='crossout.png') as crossout_img: + with Image(filename=r'subscripts\res\crossout.png') as crossout_img: # Iterate through all .dds files in the given directory for filename in os.listdir(directory): if filename.endswith(".dds") and not filename.endswith(grey_suffix + ".dds") and not filename.endswith(not_eligible_suffix + ".dds"): @@ -30,5 +30,5 @@ def process_files(directory): img.save(filename=not_eligible_file_path) if __name__ == "__main__": - directory = r'C:\Users\kahl\Documents\Paradox Interactive\Hearts of Iron IV\mod\lotr\gfx\achievements' + directory = r'..\gfx\achievements' process_files(directory) \ No newline at end of file diff --git a/tools/subscripts/res/crossout.png b/tools/subscripts/res/crossout.png new file mode 100644 index 0000000000000000000000000000000000000000..2311e8dbc0c4161c03ffba95d9bdf90d54cfb81f GIT binary patch literal 5467 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 R+GYR%002ovPDHLkV1iOv)S>_Y literal 0 HcmV?d00001 From 8a9f0f250b943bcc1b0c36b004318271b1a436f1 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Thu, 21 Mar 2024 13:24:13 +0100 Subject: [PATCH 23/42] icons --- .../{bg_blank.dds => 00_bg_blank.dds} | Bin .../{bg_blank_grey.dds => 00_bg_blank_grey.dds} | Bin ...ligible.dds => 00_bg_blank_not_eligible.dds} | Bin gfx/achievements/ENT_tree_triumvirate.dds | Bin 0 -> 4224 bytes gfx/achievements/ENT_tree_triumvirate_grey.dds | Bin 0 -> 5616 bytes .../ENT_tree_triumvirate_not_eligible.dds | Bin 0 -> 5616 bytes gfx/achievements/GON_for_frodo.dds | Bin 0 -> 4224 bytes gfx/achievements/GON_for_frodo_grey.dds | Bin 0 -> 5616 bytes gfx/achievements/GON_for_frodo_not_eligible.dds | Bin 0 -> 5616 bytes .../GON_simply_walk_into_mordor.dds | Bin 0 -> 4224 bytes .../GON_simply_walk_into_mordor_grey.dds | Bin 0 -> 5616 bytes ...GON_simply_walk_into_mordor_not_eligible.dds | Bin 0 -> 5616 bytes gfx/achievements/ISE_my_brother_my_king.dds | Bin 0 -> 4224 bytes .../ISE_my_brother_my_king_grey.dds | Bin 0 -> 5616 bytes .../ISE_my_brother_my_king_not_eligible.dds | Bin 0 -> 5616 bytes gfx/achievements/LTH_elven_boogaloo.dds | Bin 0 -> 4224 bytes gfx/achievements/LTH_elven_boogaloo_grey.dds | Bin 0 -> 5616 bytes .../LTH_elven_boogaloo_not_eligible.dds | Bin 0 -> 5616 bytes gfx/achievements/SHI_hobbits_to_isengard.dds | Bin 0 -> 4224 bytes .../SHI_hobbits_to_isengard_grey.dds | Bin 0 -> 5616 bytes .../SHI_hobbits_to_isengard_not_eligible.dds | Bin 0 -> 5616 bytes .../designs/ANG_the_necromancer.pdn | Bin 46120 -> 0 bytes gfx/achievements/designs/background.png | Bin 13470 -> 0 bytes 23 files changed, 0 insertions(+), 0 deletions(-) rename gfx/achievements/{bg_blank.dds => 00_bg_blank.dds} (100%) rename gfx/achievements/{bg_blank_grey.dds => 00_bg_blank_grey.dds} (100%) rename gfx/achievements/{bg_blank_not_eligible.dds => 00_bg_blank_not_eligible.dds} (100%) create mode 100644 gfx/achievements/ENT_tree_triumvirate.dds create mode 100644 gfx/achievements/ENT_tree_triumvirate_grey.dds create mode 100644 gfx/achievements/ENT_tree_triumvirate_not_eligible.dds create mode 100644 gfx/achievements/GON_for_frodo.dds create mode 100644 gfx/achievements/GON_for_frodo_grey.dds create mode 100644 gfx/achievements/GON_for_frodo_not_eligible.dds create mode 100644 gfx/achievements/GON_simply_walk_into_mordor.dds create mode 100644 gfx/achievements/GON_simply_walk_into_mordor_grey.dds create mode 100644 gfx/achievements/GON_simply_walk_into_mordor_not_eligible.dds create mode 100644 gfx/achievements/ISE_my_brother_my_king.dds create mode 100644 gfx/achievements/ISE_my_brother_my_king_grey.dds create mode 100644 gfx/achievements/ISE_my_brother_my_king_not_eligible.dds create mode 100644 gfx/achievements/LTH_elven_boogaloo.dds create mode 100644 gfx/achievements/LTH_elven_boogaloo_grey.dds create mode 100644 gfx/achievements/LTH_elven_boogaloo_not_eligible.dds create mode 100644 gfx/achievements/SHI_hobbits_to_isengard.dds create mode 100644 gfx/achievements/SHI_hobbits_to_isengard_grey.dds create mode 100644 gfx/achievements/SHI_hobbits_to_isengard_not_eligible.dds delete mode 100644 gfx/achievements/designs/ANG_the_necromancer.pdn delete mode 100644 gfx/achievements/designs/background.png diff --git a/gfx/achievements/bg_blank.dds b/gfx/achievements/00_bg_blank.dds similarity index 100% rename from gfx/achievements/bg_blank.dds rename to gfx/achievements/00_bg_blank.dds diff --git a/gfx/achievements/bg_blank_grey.dds b/gfx/achievements/00_bg_blank_grey.dds similarity index 100% rename from gfx/achievements/bg_blank_grey.dds rename to gfx/achievements/00_bg_blank_grey.dds diff --git a/gfx/achievements/bg_blank_not_eligible.dds b/gfx/achievements/00_bg_blank_not_eligible.dds similarity index 100% rename from gfx/achievements/bg_blank_not_eligible.dds rename to gfx/achievements/00_bg_blank_not_eligible.dds diff --git a/gfx/achievements/ENT_tree_triumvirate.dds b/gfx/achievements/ENT_tree_triumvirate.dds new file mode 100644 index 0000000000000000000000000000000000000000..8a48edb91a69e748e4cf4f6ce84f40f49ebe8933 GIT binary patch literal 4224 zcmb7{dr(vP700g-8cFWE(5F#W5w-wa30xqFE#obz?jG|JB1cDY=iVoWYGL)b6C5QS%LY^=EQ8U3UL-Yzfz|JK9MyjW9{tq za{ni?*!?RR9q@Zuo)o53DVfM3w?@pX(L2o-%g%H-m>ZjT7<-ST2FfRwzx@>aM-n}$ z!j(sph~)-}dxg>AVh!=k!K?!h%gc!ird1j6Kxd#xrMxc!w%yW-l=pwy3w&UD2W1Tn zJp=syG%jM2b2znU|dioI#URkhd6}N3?uK)@tlP z=UJ(+hcl|JTbXm1n=gA;DyDogGqu@Bf1)S7`>SW;FyBaGw0zRojr6rC0;#-f*HXY9 zO$qtT?Pa9zqXyis#@yx&_Vk92q=Cz=OTha6bn3+Xcs;PNbATv$q5BQ+$F=_4aYp(_ z;930ud4A^lFMvJn2S|1EVH_xR%TAsAFHUa(_a=XN>$WaJ9ly8^lR93Wpl-@3}nuB`4Zt34oFa5e9 z33zjZUh?75Ez`g;Uz8E~Y0PEdUl#Ne%*xIm0&lL?2#zZ2_5u%AKbFj?r{%!?rU*j3 zw0JZ2YgG+jc5qj(RsI2*?1RBgP{ z_sG$cqriK5ny{|L7B297^%QPiibv-+mgUaPDj2T@`}^&`#n)GNi-G++g@TJOQc-?w ze|laavL8bGE3plbiOK3#@VCp3lSLnQOf#Ro%>Ob;lTTO}O@salg(rPAF76iiAE?Ep z*1Ed4fv5Ussl15?YT)Bz2dMlQZ3A#ryB?d&SKS8QcFLcdxH|R$@DJ+J`5qx}qx|VI zr(uNDHbzTC+p?;Q5Pf zVAop*$UArTqIwow%HiMrU^Cj^pKJH?^N(db0{`zyJ^211rni9i^bC?~hOIha)c`JC za$v#0v0XM?tzK>fKJ?gzcZIZ|_?AAg`8c=BhQVHPFM!frsy<<+`h$oRm za*|2~@sA{nS^Z&Qpg)icM|Ux1H>^hI9cN#z?=`!vCOtC$BEW?j|G~!T!8~ z#y-qH-3R=qY71`O%0>C!)xzPMj3yM{L82II6|MXV{0E5=ETk|9^@D}6bfQ?ing#aJ z>wP|j3E5M?kJM0`R*GUyj>=nr%0kES)G zP~T~T`5bA3glTFX#sBB0+Nk=cv)_XKW^Flv#j*YLRlmJiYr(gLEVcmuVZg%ECHHv& z-@Vajjz~rEmzPNvZkLiL5sO!4(vN)`>}VKbu|9;Ksw(o#ELj~ zz@ML#-B<l%*E`fhQ+BEOWeSIjO@q$Xf zWW52^XUQoGrt4*Q^eUcRb?JiVjjs0()g^zv+URQn`{5oAU&&xN@aY@n#Cmt@3~+5% zGhTen^*;GYt$|dvxuN;nChU@Kw!uwJ8QA4mzR)#%r_KdZb81^(0+j!QI++q5K{s zQn8i1an%3P1>u-i(Im>xL$S@6+nIH=pBD}Of|WKB#s8Ze8cQCZP{4Y)$b$b>9K;2_ zaiokW{+kYsuZi`P7B}8Q`gb0TmNxpD%-~;sE=Hs{;>x!S+Fzi{U3S3lKZ-cU>er(F zZ=d0j9mzYlcXk3l_hZGvY&_3&Bun)^41!4W#eyx1;l! zRd`B!MU9!TzC&Rk^Ol{c|KOBR@E~v;osWr5C&Dw9X2G95FF}*BBN^C}a_5h%hA$pf?PrQnMppey{lA_fz1)MO9 z!@FmY`C_f@?EllxH~t}iD&!F1IQvBjoKA-0ZXzRMTpEsxj4Ox(sAG813WNCkhQILw zVgt)wM%VcA@9nF|ex5vrHyT~zH~g=(x_D##;@9j^?Ec(doA1s2zGOEvzwmoK?D~hp Swq6grzi-MH!`Q!b>i+`2-C+9w literal 0 HcmV?d00001 diff --git a/gfx/achievements/ENT_tree_triumvirate_grey.dds b/gfx/achievements/ENT_tree_triumvirate_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..aecc0a9cdcf4380c471a89cdcc2e7b9e61b7b30a GIT binary patch literal 5616 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 literal 0 HcmV?d00001 diff --git a/gfx/achievements/ENT_tree_triumvirate_not_eligible.dds b/gfx/achievements/ENT_tree_triumvirate_not_eligible.dds new file mode 100644 index 0000000000000000000000000000000000000000..de2d30e139ad510eded0420efefe828efe99def2 GIT binary patch literal 5616 zcmaKweNaznlm5E7fiNV2xccXz?pT1LW;}GUq<* z?kq!Kew=g9z31L@&pDS>tA49kOAy2(R6e0czr_zhi9gWa(5I@J{gn}Ys-AuB{@?!J z4+Rp+&}Wscru2X5k(B;BCLw!brbpB*WCo+Z%U`X_-cBKfWDJ<#xy$pWhdzK z<}qDM_R1)5%xq*9wWphbd7h)Pg7tIYDicTL=l4DX+z}YoSuGcffhR*_I?Kgh#(}qP z8`F(cRIHPDzfPzR-v;hL`|YqyYzB^*hjl$ixCY=xlab-OM}xqdcF1T!uv7!93|AFI z-jY7x81hH378Y*ZF5G$oeaFlRc~et^AN=Rd2fdKn?R{HMUz-7@+`OV>)^3A>DrW>4Yu^B=e=VS&FVc`v*E z<}CJis59Eo-E#!TXQGp(BEkA|U~f#fTVA4G76bpsS&nixIh!8v|88w9=ofg}v<}DR zCxDY^Jz-uI0Zw#YRV*p$!uK)J8TAunK8_FBJKV;Oa_Ro3I$6@OAUM{Z#0dwpVZWx1${NjXCqx*j{&doRhgPETyg-P4khFv-}n*W zp-!4yq8`NiEuKdY-+Ke(sYukHUvchr;A)?OSek8~0M@i}lz--<&A>@6>bzpB#qq>N zT(+Jb9-l84WRbs@@cvV+E@~uG5{K~}fic~mL!Onu!@4Nd-oAJboWGZeQU>%T`QN7P zIXHV4^u_$!Rk|0i=X9vbbm{h;M?pS`?&rC4EAf15d~VAAhqesJd9#~3HaF)7=7MgU zs(4u+@Ehx+&Jw|a*U#^8+Y%v*pqMn zfHkc~=4bKGaemUYD(U(18I8QvKAljI8 z%~t<_|9Z)P#^hy`dk$R%eK9}xrY7-vC(-$Dzj5tLkbkhv$PhJFd|n@Hi&Br4X1)V? zM}Q@pFBHdsV_RL7{|eUQ^LE=@mEHURUSHJaT21i6i=dxyx+<40ox%Hq;z^-C92Y>| z5s=aCE9$Yl+Gk_}HB$dE88R}TsmsHluW4=5+L~LMA^yel*BhR7!}*K;-#zfLHp@n_9@sKL-#3{o5k_K$2jVZKBgVyv6!neWvgA_FRSTJOZ`L4Op{^9 z;X=?K*3sm#!3>Tc*J`%x$np3wkaLx68Cjk?C$XF2gHEhJ&PFMIS>J+q9n)phf4c?x z)jrv+I zeDE<=p91s z=n&3-F|(IR54o>^y-m%ietlE11-P-9EnDa>tEW{Fp2z(HTSgG0(=9kYt4uVhUN?v1 z@y<>eojoAMOFz0V_2(~`!TvsNl&Tkc7X!bfr4<%yy|f=1T9LP)zHk~=Rk&b3ybP;) zG9JhN59?6<4rXsi_uoY}pbdcYAJbh`9F!fx`L7Y(hrY0Y=U2YKDu!yUINsSZT0z7n z*1`H%4NIbWgyWMjv7}{YO9{x&Y;%zrp#<}tos4P2E4e90Ic)5+y)s zelJr}QgIBpz;jj6GMg2Ehjj|ddhR&xFNSq)Dih~bl3YozYdWa_7RN81nZoBU-ls@z z9o|1NUemKXWlZx>wRB-UKH5K zDCwKCv&4_izXALo)^XIHJ$G^ZGbSY+FB!!5S-c;=DC_S7dolA%+M{njiT6i*FT{(x zn?Rnlw`rTFb92Ds>{Z1j)p@*L@%_R!PF(}}Fp58p@5k{qrc20AWL}@%)|6h6Z7+Oi#$DZ}({l zqUYd1X2&k^`MZ>m(JYA`%NAf1Z)9FEk9kU9Khh(ys2^P*SEBXhEwK0F_0Dr1wlC@v1aA>u&=;Q4Uo1zjL*m2i2(the}RWY@AqTHAYbljH1Wb~`2HmAXh-=h z?pJxU7xBPl;TVy3f+#p4=2z$U>8AAL{QH|X@7HY{Z@~At?IRhZZr_dPOLQxlsSDEk z^1i+C7z6WPcYB!??cd?}@V;YY9C7s~kbD1{Q20mF&0mhp_y43p#+>}@nh)l0H0{?p zd&li?NA)9p zix;8!GY+(beOe_wdh>P=<}dIJ>kgN8b%DOv&rHA9kOofLxw6_&ya$*I7HNrS?*ZVp zm!q2QTo~tz3A&MUNJMPUos%QhYLI@#fkxSA?!b5d0kx) z`(K6X&BvQJ?*)4?v#V_S=p@eP!!DYf&V?Nyr&^|Wwy1oUxS=2lhF}k z;r~Ba)zZF;QS2mZKu$X)JF;{X<^f(Gie)(R`#LZV|Q+ zWQ6$jQ$>u6934%EZ%<8M7UnJssm`R`GE%CB^`|;}?G|e-zK_QBqP(kQ{DyEVF3iM- zB8?`C)gHVzGk<>zJhJCoCfafTo7hMi{0XTa<@}^U-R=%vzcn9!Vn4PnD?`Qc8@K28uiEEQ zsN*>SxY5KZ8q$I#c|*8UA-pR?)ko2{A(GAtm7LPVDO3KK*>Y`j>Ajix_3gIt=1ebl z{?3eeK1;W%3|yIWNBP9WlsNt^8S0-kh4(H9!o56IB+vGg3f-qjPcEDliZlU$RxR)2hU?R zO_O%AWq8wu35p={q>t?T|G5|`SuVXR*VLB% z*KyLk|9OdyJcf`l#G+2MCa*gf6ve9d)zWKKXNo5pT~~nL_bs;(v(YH^bXHrp9Rem-zf=V^~pr;h;F_=-BUQ9bI->eniZ^br5;@F(H2SOn{J z_|zS5N8eTS_gvrx+j{wj&q4mH5jX8=sjma>=NVcM6EWaY-xno~i758d-EcXb5Q7B7 z&xQ{$Vx!|IuyXBH=F%I@Sf75gTonpQ{yx&b!Y)@i9IXz}-)vXfii!>%gz=|6E9~0% zEUtgYyUVEvMR2|v-x-fq7s2@XaE&h-9mINM{U)L=7tD7rywj9yZMY2lRAilDWUa#r z{4)bf*NU?o@B(KWQ(UOT`oH40dCGLT{vZuWpnsz&U)5x7vV#5<_DMc^@VPkTH`^E5lnMg-`?P1dJtPYiLcGQ|;M7O8 zxWCSasZOnS5cBs9k64o#2m1YP-~=0w=I;NG{w8`TxdG!@y@|47te@9YU_a0m#Qk6D z*EqFWE!O+TgQb4GKG%QgQ%}Xbn>O8o`|I?0*s=QiQ^38(59!i{ix-Q-5Bq?~?k1jO$U~8E>;)zw`*!e~Ulr(TC!gzsPr^D%sN7 z3iEvwn5f!ya^oAo$E(W8nK>8s`^_yDy0D-?330FYT2020LO)M#X{!>sJ6#aJd+6FP zv=JTdx2IxxED^kj^$L5hSIx{_xdQp^lK$tPKXeHE|B@Z2AJ-o=&#NHFz5wJ;@;gmR zy&mhSvj@$k+CSm>+Uy+Ri3M@=Kk6CbWr`H``){1f46UsVAHaNP14E3{>A-sQnJrY} znKJD6ueLmEEGo^Nr+?pbaEnr>!+M|ElXA2Q0`|+jo3PP$8;w$}pmHtRN0sK+;SCSt=9KXrm#$32KisLs(`p4?)>p}lA!-sTv zMFr}wGW8l4hOb?N`8Jy7RmjM~B{?ps5W130z}b93NberGFHBqqj(EOcro{)S zS7u3#~7XVSTEl`Vt+JvoQV%(*gSJ%pCT|I!zl@tbb7l@nIuRUb-}P zIj7%E@zMqQ$qKb9{Q1;l=cQal2ua+pI}C10n9ltktBrKiTq0Hg^FJNQ*Sr>-P640u zs|^Knp}oMhkv3Y0H)epFZ9{Z@%cKar&R`)Ebr}J8hmoat-Cp$fOIA8BF1zO-KEeKt zsjGK=3*2iY$jNcrO5o#0hU`DkkLT%H4NpnO!5HXQtK9$Q|GWyhYD&6b{Cb0hlD0F} z|LL9~I#C$GdM5_wRVOoI0`gb+#+ji%9Kra2v)9;gbPoG}p>4gvyT5TO+e{g!1HaV$xYw#F2M8ugtUK}UAH$t{xGW|L!~bs z0bZx!$qQ45t+s z`R9k_Dz3qe{daD7nRFh!$w2;@08hFaU8pbQaZ}f09P)f$rIbI2yg4S#7n2Dv-s)+i zBf<^bZw2-?`s&g~toI84I#zk%N*UyTGB`wYvqKHw|FpyR`iqZTr>y+(%U3rEx9NcJD{ZgnE?vQ;6EeyEU<-vA$T_wrREH`nH40lEU|5A2}Ac$uuF>x6E7rq1~{6W8=Z%wWCXFBw)dFhoWzkS~y z84`-n_vK?pD*vAzNge*5pB)?Nv;3p8e4S4re`_Z(Mf-AC(i@3p-De+CguPx4sZq{k-*&H z>ruNi4GSP2@b{=QY+MPPbhgkj*5w8c+ZFP>ozzia%Dbu|_{a`$*xqX(SR?zZ8UB71 zzgcCoYRUGtMB0cXFYsxOn*gr!h3)yj?F#}A`0ISP%<(wz=1_<4 zZs-sme<8X#6pyF=3G#*M;y~*Doq1q3G;eY*FSi3%1ZaJOF?t!8^3G|P+ga?d4j)0yxB1WykVJ@-h9)B{nKj@$%8?L0sC!Mk=)_va)A9dYe92S(KFA$_@vWjRmOJq z%-?Sp2SfON9loSfsfxrvzXIiZBr=WTFW65+T&|qFRlnTTa0|FNprhxT9c{o0xraK! z@36p(byQkXDA@;G=d)QWnOuH$h6el+I)vl#!e;}1i^t;ueagEcyRmpP4NU82r3@3B z0{dI_E3(G6#$m4hm`9V|_9RfM!wOLhFQz76= zx``-_;rJ(=>!v($0_VHn|E{ivvv9v_L$gw+(}Dfbsz>$vY$eY3d6SMVIuOJ8lXP+h z3BzEfyo|NW?Z)}CImB2GRpsJe90-~gK9S*mP>lSMSzKI%`D^qZYHREIb%=kD`icG3 z5P!k`3kNUU0R3J=jXs|a3<7h8Ry{#XTmoJLQS=U7L(*BlMN1Ac}4`I3AbzdE0X z>S{lRFkO z9L~wd)Nc2(1$f@HB0Ky1>Q}&5oTJh-{}|gVl55FKI)mdkg6uz5f0PCNaZMBX-nlqt zAwTmH&f_2tqWklbAg;G0%I}m|83TFPE|T}Po!AB*NB(4@(I_xk?V*mL3-Vv+x5#`8 z#9y%gqpdfNfc~0xOwDmI9A6sAOSwch$c29DUe4fn2Tdc?yYIY%>!mZaB4gPdynYV& zJrv8DmtnjD`GZZBoCI#6n@IL(J6g6VH_R`bpB($9vHt0(NX|BRaQ=0M zbTrGpB?En7|Kl>duzfbGhx!VYH^`Gtg`8!lF&CryVxxI(kk=ypkb4c+o3MYlU1i4g zRPOCjORg_ff_|q^uRE6-ApUb2E$KRSsvF`zhvI+aja>c<{dy3UBa9zM`t5fYT)=Bu zEh$-GvAs5{h2kV}>>t7Zk~}ev_fo{txq^|=eaA+aZNTA z!S)shW~H7!j~VpCb}h-d8}NJ^mL_s}f$ao2K}d*ze=KJ@OTqmK@&0!uYq`Vmw}uS7wJX(|Ro_W{+d; zHK6e%}wSy&HJ;=J#0Bro@T!u|I?ufSp=r>}To56ANF5|Rnxm7lK2&}u%@ zXuh4^J^zR8WzBi6AUsmhWhOsH`56Ip7f*ru7iIJ+;3mi z7}p8huWPL+AEy=_@vnE!-v!NM>c&LkPI_ne{C&k)hW7Wl{hlztQmHxw_d6XO@J};^ zczrz`Mdzt>7UyHqIYOmx4C4Gc5_nC`M#T8Mcq6K#jScPXU$5`(|2YFXe_g(J59aT; z&zqFN={U?+=R?mEiQ)TI1bPjg&)aZ+Njfc*=hClDpkHg9l@{jrVSg0|RyAT}6!+iG z(43~d-Ek7;U)3n&eeYjch56S_`>RV;(ykY#&`J8ex>x&1>kE#Ep(!>-30Rs=b`iAl@*x3RX?W@S1sZ7s#Pzn|GD=u z{b+xc>^_eBX+g7=G#XjFf9+9QD9KkWu1}#qDV67Nf0#FoN^dSU828Sjrb-r1tG5TH*ol`Ak(2=&zeZ@||0M;eiLxeuiaTIRBGQBu|~h?}ye+vr?Yl zDFyvHpN@{Fc9wzXO&03ti((bbU(k&DvGJ{AOKH@9c0RBP`_b(Q;?do2cKeUO`;8nA zEbO;bQI-Yn@S%Re?O+z-AtQLq4)aec^>+MW9E`KU}EK@UKiN(1-HY=#`ON z{Y;|$?(hkR6UI;aTWC5K+(~72>rXhJ)i*RW!1%J}J5r86`#k8cqxU}!ryKh>XcG4G zDSqqGlkw(OwEsS3WR3sX7W(%GHX+{QZ?o)!$GiUPx1)F@_F*n)9+k%W{=xG9CVtRJ ze9YA7N2M-{i_P#qzpALcs@NQQO)c(ScV+mR-;2;EjNYeZ?!07ul-<3*@cyW+FI35I z3I6+-A*=65o6NV5W%$~g-r5&_D8zd?YwphQ^s8uHAcTH5G0t%r{%J%6vG8dg734VX EznE>&MF0Q* literal 0 HcmV?d00001 diff --git a/gfx/achievements/GON_for_frodo_not_eligible.dds b/gfx/achievements/GON_for_frodo_not_eligible.dds new file mode 100644 index 0000000000000000000000000000000000000000..ddcbabae201366f6b18e80a8ca84b365bc7fbe08 GIT binary patch literal 5616 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 P1w;h#=n6p%3WD%&14P%+ literal 0 HcmV?d00001 diff --git a/gfx/achievements/GON_simply_walk_into_mordor.dds b/gfx/achievements/GON_simply_walk_into_mordor.dds new file mode 100644 index 0000000000000000000000000000000000000000..360f6f7bbf3f3f2954c17fd51da8fb5db569a920 GIT binary patch literal 4224 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 literal 0 HcmV?d00001 diff --git a/gfx/achievements/GON_simply_walk_into_mordor_grey.dds b/gfx/achievements/GON_simply_walk_into_mordor_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..68392c953c12c186c8ed10e6dc1adc905a551df1 GIT binary patch literal 5616 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 literal 0 HcmV?d00001 diff --git a/gfx/achievements/LTH_elven_boogaloo.dds b/gfx/achievements/LTH_elven_boogaloo.dds new file mode 100644 index 0000000000000000000000000000000000000000..573b100df4d2668938f1eb2c394b4ef6667c1635 GIT binary patch literal 4224 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 literal 0 HcmV?d00001 diff --git a/gfx/achievements/LTH_elven_boogaloo_grey.dds b/gfx/achievements/LTH_elven_boogaloo_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..f746872a0ca3fa217be9caddd8080b02b71d8294 GIT binary patch literal 5616 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 WEot}w%9wCG+$Q`6LXC|U&A$QHIU)i8 literal 0 HcmV?d00001 diff --git a/gfx/achievements/SHI_hobbits_to_isengard_grey.dds b/gfx/achievements/SHI_hobbits_to_isengard_grey.dds new file mode 100644 index 0000000000000000000000000000000000000000..84ae8bae38f5d444b9176c69cb7e3519d860bab4 GIT binary patch literal 5616 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 F{{k_}l3)M; literal 0 HcmV?d00001 diff --git a/gfx/achievements/designs/ANG_the_necromancer.pdn b/gfx/achievements/designs/ANG_the_necromancer.pdn deleted file mode 100644 index dbfcf46d7444fc93ee89a923958a7eb683423fa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46120 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 Ly2>?I>~8!o-Qao4 From cea2653d1c339dfc4b909b3cf8eb1e7088d55997 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Fri, 22 Mar 2024 11:09:20 +0100 Subject: [PATCH 24/42] Bug fix --- common/achievements/achievements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index 635d91c09..c45167467 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -182,7 +182,7 @@ MOR_side_by_side_with_an_elf_test = { } happened = { - tag MOA + tag = MOA OR = { is_in_faction_with = RIV is_in_faction_with = LTH From 4b7d7b92b9b8a9cfb029172f83a98988c68a268d Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Fri, 22 Mar 2024 16:55:31 +0100 Subject: [PATCH 25/42] Small changes --- common/achievements/achievements.txt | 7 ++++--- common/decisions/_debug_decisions.txt | 4 ++++ localisation/english/achievements_l_english.yml | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index c45167467..0efe7395a 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -108,11 +108,11 @@ MOR_not_my_dark_lord_test = { happened = { has_country_flag = MOR_orcs_have_taken_over_mordor - has_country_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag - has_country_flag = orcs_of_mordor_won_war_against_ANG_achievement_flag ANG = { has_country_flag = ANG_sauron_returned } + has_country_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag + has_country_flag = orcs_of_mordor_won_war_against_ANG_achievement_flag } } @@ -124,7 +124,8 @@ DAM_god_damnroth_test = { } happened = { - hidden_trigger = { + custom_trigger_tooltip = { + tooltip = achievement_test num_of_factories > GON.num_of_factories } } diff --git a/common/decisions/_debug_decisions.txt b/common/decisions/_debug_decisions.txt index 6441be802..20721e8c5 100644 --- a/common/decisions/_debug_decisions.txt +++ b/common/decisions/_debug_decisions.txt @@ -209,6 +209,10 @@ debug_decisions = { available = { is_ai = no is_debug = yes + custom_trigger_tooltip = { + tooltip = achievement_test + num_of_factories > GON.num_of_factories + } } visible = { always = yes } diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index 39f3e68d7..131de444d 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -36,4 +36,5 @@ ISE_won_war_against_MOR_achievement_flag:0 "§YIsengard§! has defeated §YMordo lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag:0 "§YLurtz§! killed §YBoromir§! while attacking the Fellowship" #Custom tooltip +achievement_test:0 "Has more than double the factories of Gondor" achievement_tooltip_get_twice_as_many_factories_as_gondor:0 "As §YDol Amroth§! get twice as many factories as §YGondor§!" \ No newline at end of file From 78d9f5a5e728e6d6276304e6c9936bc66bddac18 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 23 Mar 2024 13:38:04 +0100 Subject: [PATCH 26/42] Changed name --- common/achievements/achievements.txt | 3 ++- localisation/english/achievements_l_english.yml | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index 0efe7395a..fa863d372 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -176,7 +176,7 @@ MOR_morgoths_most_loyal_general_test = { } } -MOR_side_by_side_with_an_elf_test = { +MOA_side_by_side_with_an_elf_test = { possible = { achievement_standard_possible_check = yes tag = MOA @@ -184,6 +184,7 @@ MOR_side_by_side_with_an_elf_test = { happened = { tag = MOA + has_character = MOA_gimli OR = { is_in_faction_with = RIV is_in_faction_with = LTH diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index 131de444d..d9d516715 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -28,7 +28,10 @@ MOR_morgoths_most_loyal_general_test_NAME:0 "Morgoth's most loyal general" MOR_morgoths_most_loyal_general_test_DESC:0 "As Moria get Balrog as your leader, join Mordors side and control all the core states of Lothlorien and Rivendell" ISE_my_brother_my_captian_my_king_test_NAME:0 "My Brother, my Captain, my King" ISE_my_brother_my_captian_my_king_test_DESC:0 "As Isengard send Lurtz for a sweep against he Fellowship and kill Boromir" - +ISE_a_wizard_is_never_late_test_NAME:0 "A wizard is never late" +ISE_a_wizard_is_never_late_test_DESC:0 "As cooperative Isengard defeat Mordor after Gondor and Rohan have capitulated." +MOA_side_by_side_with_an_elf_test_NAME:0 "Side by side with an elf" +MOA_side_by_side_with_an_elf_test_DESC:0 "Have Gimli as a general and be in the faction with either Rivendell or Lothlorien" #Country flags orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! declared war on §YAngmar§!" orcs_of_mordor_won_war_against_ANG_achievement_flag:0 "§YOrcs of Mordor§! has defeated §YAngmar§!" From 762b0c15b8a9c2c41bc353ec7891c5e9b49a0f85 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 23 Mar 2024 13:42:52 +0100 Subject: [PATCH 27/42] Implemented the icons --- ...M_god_damnroth.dds => DAM_god_damnroth_test.dds} | Bin ...roth_grey.dds => DAM_god_damnroth_test_grey.dds} | Bin ...e.dds => DAM_god_damnroth_test_not_eligible.dds} | Bin ...ate.dds => ENT_triple_tree_triumvirate_test.dds} | Bin ...ds => ENT_triple_tree_triumvirate_test_grey.dds} | Bin ...T_triple_tree_triumvirate_test_not_eligible.dds} | Bin ...late.dds => ISE_a_wizard_is_never_late_test.dds} | Bin ...dds => ISE_a_wizard_is_never_late_test_grey.dds} | Bin ...SE_a_wizard_is_never_late_test_not_eligible.dds} | Bin ...s => ISE_my_brother_my_captian_my_king_test.dds} | Bin ...ISE_my_brother_my_captian_my_king_test_grey.dds} | Bin ...rother_my_captian_my_king_test_not_eligible.dds} | Bin ...de.dds => MOA_side_by_side_with_an_elf_test.dds} | Bin ...s => MOA_side_by_side_with_an_elf_test_grey.dds} | Bin ..._side_by_side_with_an_elf_test_not_eligible.dds} | Bin ...dds => MOR_morgoths_most_loyal_general_test.dds} | Bin ...> MOR_morgoths_most_loyal_general_test_grey.dds} | Bin ...rgoths_most_loyal_general_test_not_eligible.dds} | Bin ..._dark_lord.dds => MOR_not_my_dark_lord_test.dds} | Bin ..._grey.dds => MOR_not_my_dark_lord_test_grey.dds} | Bin ...s => MOR_not_my_dark_lord_test_not_eligible.dds} | Bin ... => SHI_taking_the_hobbits_to_isengard_test.dds} | Bin ...HI_taking_the_hobbits_to_isengard_test_grey.dds} | Bin ...g_the_hobbits_to_isengard_test_not_eligible.dds} | Bin ..._ring.dds => one_ring_to_rule_them_all_test.dds} | Bin ....dds => one_ring_to_rule_them_all_test_grey.dds} | Bin ...one_ring_to_rule_them_all_test_not_eligible.dds} | Bin ...enge_for_the_battle_of_the_five_armies_test.dds} | Bin ...for_the_battle_of_the_five_armies_test_grey.dds} | Bin ...battle_of_the_five_armies_test_not_eligible.dds} | Bin 30 files changed, 0 insertions(+), 0 deletions(-) rename gfx/achievements/{DAM_god_damnroth.dds => DAM_god_damnroth_test.dds} (100%) rename gfx/achievements/{DAM_god_damnroth_grey.dds => DAM_god_damnroth_test_grey.dds} (100%) rename gfx/achievements/{DAM_god_damnroth_not_eligible.dds => DAM_god_damnroth_test_not_eligible.dds} (100%) rename gfx/achievements/{ENT_tree_triumvirate.dds => ENT_triple_tree_triumvirate_test.dds} (100%) rename gfx/achievements/{ENT_tree_triumvirate_grey.dds => ENT_triple_tree_triumvirate_test_grey.dds} (100%) rename gfx/achievements/{ENT_tree_triumvirate_not_eligible.dds => ENT_triple_tree_triumvirate_test_not_eligible.dds} (100%) rename gfx/achievements/{ISE_never_late.dds => ISE_a_wizard_is_never_late_test.dds} (100%) rename gfx/achievements/{ISE_never_late_grey.dds => ISE_a_wizard_is_never_late_test_grey.dds} (100%) rename gfx/achievements/{ISE_never_late_not_eligible.dds => ISE_a_wizard_is_never_late_test_not_eligible.dds} (100%) rename gfx/achievements/{ISE_my_brother_my_king.dds => ISE_my_brother_my_captian_my_king_test.dds} (100%) rename gfx/achievements/{ISE_my_brother_my_king_grey.dds => ISE_my_brother_my_captian_my_king_test_grey.dds} (100%) rename gfx/achievements/{ISE_my_brother_my_king_not_eligible.dds => ISE_my_brother_my_captian_my_king_test_not_eligible.dds} (100%) rename gfx/achievements/{MOA_side_by_side.dds => MOA_side_by_side_with_an_elf_test.dds} (100%) rename gfx/achievements/{MOA_side_by_side_grey.dds => MOA_side_by_side_with_an_elf_test_grey.dds} (100%) rename gfx/achievements/{MOA_side_by_side_not_eligible.dds => MOA_side_by_side_with_an_elf_test_not_eligible.dds} (100%) rename gfx/achievements/{MOA_morgoth_loyalty.dds => MOR_morgoths_most_loyal_general_test.dds} (100%) rename gfx/achievements/{MOA_morgoth_loyalty_grey.dds => MOR_morgoths_most_loyal_general_test_grey.dds} (100%) rename gfx/achievements/{MOA_morgoth_loyalty_not_eligible.dds => MOR_morgoths_most_loyal_general_test_not_eligible.dds} (100%) rename gfx/achievements/{MOR_not_my_dark_lord.dds => MOR_not_my_dark_lord_test.dds} (100%) rename gfx/achievements/{MOR_not_my_dark_lord_grey.dds => MOR_not_my_dark_lord_test_grey.dds} (100%) rename gfx/achievements/{MOR_not_my_dark_lord_not_eligible.dds => MOR_not_my_dark_lord_test_not_eligible.dds} (100%) rename gfx/achievements/{SHI_hobbits_to_isengard.dds => SHI_taking_the_hobbits_to_isengard_test.dds} (100%) rename gfx/achievements/{SHI_hobbits_to_isengard_grey.dds => SHI_taking_the_hobbits_to_isengard_test_grey.dds} (100%) rename gfx/achievements/{SHI_hobbits_to_isengard_not_eligible.dds => SHI_taking_the_hobbits_to_isengard_test_not_eligible.dds} (100%) rename gfx/achievements/{one_ring.dds => one_ring_to_rule_them_all_test.dds} (100%) rename gfx/achievements/{one_ring_grey.dds => one_ring_to_rule_them_all_test_grey.dds} (100%) rename gfx/achievements/{one_ring_not_eligible.dds => one_ring_to_rule_them_all_test_not_eligible.dds} (100%) rename gfx/achievements/{GUN_avenge_five_armies.dds => revenge_for_the_battle_of_the_five_armies_test.dds} (100%) rename gfx/achievements/{GUN_avenge_five_armies_grey.dds => revenge_for_the_battle_of_the_five_armies_test_grey.dds} (100%) rename gfx/achievements/{GUN_avenge_five_armies_not_eligible.dds => revenge_for_the_battle_of_the_five_armies_test_not_eligible.dds} (100%) diff --git a/gfx/achievements/DAM_god_damnroth.dds b/gfx/achievements/DAM_god_damnroth_test.dds similarity index 100% rename from gfx/achievements/DAM_god_damnroth.dds rename to gfx/achievements/DAM_god_damnroth_test.dds diff --git a/gfx/achievements/DAM_god_damnroth_grey.dds b/gfx/achievements/DAM_god_damnroth_test_grey.dds similarity index 100% rename from gfx/achievements/DAM_god_damnroth_grey.dds rename to gfx/achievements/DAM_god_damnroth_test_grey.dds diff --git a/gfx/achievements/DAM_god_damnroth_not_eligible.dds b/gfx/achievements/DAM_god_damnroth_test_not_eligible.dds similarity index 100% rename from gfx/achievements/DAM_god_damnroth_not_eligible.dds rename to gfx/achievements/DAM_god_damnroth_test_not_eligible.dds diff --git a/gfx/achievements/ENT_tree_triumvirate.dds b/gfx/achievements/ENT_triple_tree_triumvirate_test.dds similarity index 100% rename from gfx/achievements/ENT_tree_triumvirate.dds rename to gfx/achievements/ENT_triple_tree_triumvirate_test.dds diff --git a/gfx/achievements/ENT_tree_triumvirate_grey.dds b/gfx/achievements/ENT_triple_tree_triumvirate_test_grey.dds similarity index 100% rename from gfx/achievements/ENT_tree_triumvirate_grey.dds rename to gfx/achievements/ENT_triple_tree_triumvirate_test_grey.dds diff --git a/gfx/achievements/ENT_tree_triumvirate_not_eligible.dds b/gfx/achievements/ENT_triple_tree_triumvirate_test_not_eligible.dds similarity index 100% rename from gfx/achievements/ENT_tree_triumvirate_not_eligible.dds rename to gfx/achievements/ENT_triple_tree_triumvirate_test_not_eligible.dds diff --git a/gfx/achievements/ISE_never_late.dds b/gfx/achievements/ISE_a_wizard_is_never_late_test.dds similarity index 100% rename from gfx/achievements/ISE_never_late.dds rename to gfx/achievements/ISE_a_wizard_is_never_late_test.dds diff --git a/gfx/achievements/ISE_never_late_grey.dds b/gfx/achievements/ISE_a_wizard_is_never_late_test_grey.dds similarity index 100% rename from gfx/achievements/ISE_never_late_grey.dds rename to gfx/achievements/ISE_a_wizard_is_never_late_test_grey.dds diff --git a/gfx/achievements/ISE_never_late_not_eligible.dds b/gfx/achievements/ISE_a_wizard_is_never_late_test_not_eligible.dds similarity index 100% rename from gfx/achievements/ISE_never_late_not_eligible.dds rename to gfx/achievements/ISE_a_wizard_is_never_late_test_not_eligible.dds diff --git a/gfx/achievements/ISE_my_brother_my_king.dds b/gfx/achievements/ISE_my_brother_my_captian_my_king_test.dds similarity index 100% rename from gfx/achievements/ISE_my_brother_my_king.dds rename to gfx/achievements/ISE_my_brother_my_captian_my_king_test.dds diff --git a/gfx/achievements/ISE_my_brother_my_king_grey.dds b/gfx/achievements/ISE_my_brother_my_captian_my_king_test_grey.dds similarity index 100% rename from gfx/achievements/ISE_my_brother_my_king_grey.dds rename to gfx/achievements/ISE_my_brother_my_captian_my_king_test_grey.dds diff --git a/gfx/achievements/ISE_my_brother_my_king_not_eligible.dds b/gfx/achievements/ISE_my_brother_my_captian_my_king_test_not_eligible.dds similarity index 100% rename from gfx/achievements/ISE_my_brother_my_king_not_eligible.dds rename to gfx/achievements/ISE_my_brother_my_captian_my_king_test_not_eligible.dds diff --git a/gfx/achievements/MOA_side_by_side.dds b/gfx/achievements/MOA_side_by_side_with_an_elf_test.dds similarity index 100% rename from gfx/achievements/MOA_side_by_side.dds rename to gfx/achievements/MOA_side_by_side_with_an_elf_test.dds diff --git a/gfx/achievements/MOA_side_by_side_grey.dds b/gfx/achievements/MOA_side_by_side_with_an_elf_test_grey.dds similarity index 100% rename from gfx/achievements/MOA_side_by_side_grey.dds rename to gfx/achievements/MOA_side_by_side_with_an_elf_test_grey.dds diff --git a/gfx/achievements/MOA_side_by_side_not_eligible.dds b/gfx/achievements/MOA_side_by_side_with_an_elf_test_not_eligible.dds similarity index 100% rename from gfx/achievements/MOA_side_by_side_not_eligible.dds rename to gfx/achievements/MOA_side_by_side_with_an_elf_test_not_eligible.dds diff --git a/gfx/achievements/MOA_morgoth_loyalty.dds b/gfx/achievements/MOR_morgoths_most_loyal_general_test.dds similarity index 100% rename from gfx/achievements/MOA_morgoth_loyalty.dds rename to gfx/achievements/MOR_morgoths_most_loyal_general_test.dds diff --git a/gfx/achievements/MOA_morgoth_loyalty_grey.dds b/gfx/achievements/MOR_morgoths_most_loyal_general_test_grey.dds similarity index 100% rename from gfx/achievements/MOA_morgoth_loyalty_grey.dds rename to gfx/achievements/MOR_morgoths_most_loyal_general_test_grey.dds diff --git a/gfx/achievements/MOA_morgoth_loyalty_not_eligible.dds b/gfx/achievements/MOR_morgoths_most_loyal_general_test_not_eligible.dds similarity index 100% rename from gfx/achievements/MOA_morgoth_loyalty_not_eligible.dds rename to gfx/achievements/MOR_morgoths_most_loyal_general_test_not_eligible.dds diff --git a/gfx/achievements/MOR_not_my_dark_lord.dds b/gfx/achievements/MOR_not_my_dark_lord_test.dds similarity index 100% rename from gfx/achievements/MOR_not_my_dark_lord.dds rename to gfx/achievements/MOR_not_my_dark_lord_test.dds diff --git a/gfx/achievements/MOR_not_my_dark_lord_grey.dds b/gfx/achievements/MOR_not_my_dark_lord_test_grey.dds similarity index 100% rename from gfx/achievements/MOR_not_my_dark_lord_grey.dds rename to gfx/achievements/MOR_not_my_dark_lord_test_grey.dds diff --git a/gfx/achievements/MOR_not_my_dark_lord_not_eligible.dds b/gfx/achievements/MOR_not_my_dark_lord_test_not_eligible.dds similarity index 100% rename from gfx/achievements/MOR_not_my_dark_lord_not_eligible.dds rename to gfx/achievements/MOR_not_my_dark_lord_test_not_eligible.dds diff --git a/gfx/achievements/SHI_hobbits_to_isengard.dds b/gfx/achievements/SHI_taking_the_hobbits_to_isengard_test.dds similarity index 100% rename from gfx/achievements/SHI_hobbits_to_isengard.dds rename to gfx/achievements/SHI_taking_the_hobbits_to_isengard_test.dds diff --git a/gfx/achievements/SHI_hobbits_to_isengard_grey.dds b/gfx/achievements/SHI_taking_the_hobbits_to_isengard_test_grey.dds similarity index 100% rename from gfx/achievements/SHI_hobbits_to_isengard_grey.dds rename to gfx/achievements/SHI_taking_the_hobbits_to_isengard_test_grey.dds diff --git a/gfx/achievements/SHI_hobbits_to_isengard_not_eligible.dds b/gfx/achievements/SHI_taking_the_hobbits_to_isengard_test_not_eligible.dds similarity index 100% rename from gfx/achievements/SHI_hobbits_to_isengard_not_eligible.dds rename to gfx/achievements/SHI_taking_the_hobbits_to_isengard_test_not_eligible.dds diff --git a/gfx/achievements/one_ring.dds b/gfx/achievements/one_ring_to_rule_them_all_test.dds similarity index 100% rename from gfx/achievements/one_ring.dds rename to gfx/achievements/one_ring_to_rule_them_all_test.dds diff --git a/gfx/achievements/one_ring_grey.dds b/gfx/achievements/one_ring_to_rule_them_all_test_grey.dds similarity index 100% rename from gfx/achievements/one_ring_grey.dds rename to gfx/achievements/one_ring_to_rule_them_all_test_grey.dds diff --git a/gfx/achievements/one_ring_not_eligible.dds b/gfx/achievements/one_ring_to_rule_them_all_test_not_eligible.dds similarity index 100% rename from gfx/achievements/one_ring_not_eligible.dds rename to gfx/achievements/one_ring_to_rule_them_all_test_not_eligible.dds diff --git a/gfx/achievements/GUN_avenge_five_armies.dds b/gfx/achievements/revenge_for_the_battle_of_the_five_armies_test.dds similarity index 100% rename from gfx/achievements/GUN_avenge_five_armies.dds rename to gfx/achievements/revenge_for_the_battle_of_the_five_armies_test.dds diff --git a/gfx/achievements/GUN_avenge_five_armies_grey.dds b/gfx/achievements/revenge_for_the_battle_of_the_five_armies_test_grey.dds similarity index 100% rename from gfx/achievements/GUN_avenge_five_armies_grey.dds rename to gfx/achievements/revenge_for_the_battle_of_the_five_armies_test_grey.dds diff --git a/gfx/achievements/GUN_avenge_five_armies_not_eligible.dds b/gfx/achievements/revenge_for_the_battle_of_the_five_armies_test_not_eligible.dds similarity index 100% rename from gfx/achievements/GUN_avenge_five_armies_not_eligible.dds rename to gfx/achievements/revenge_for_the_battle_of_the_five_armies_test_not_eligible.dds From 32822b24a2c5aa6be4f69688f530fa05aea551a8 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 23 Mar 2024 14:10:23 +0100 Subject: [PATCH 28/42] Added new achievement --- common/achievements/achievements.txt | 49 +++++++++++++----- ...one_does_simply_walk_into_mordor_test.dds} | Bin ...oes_simply_walk_into_mordor_test_grey.dds} | Bin ...ly_walk_into_mordor_test_not_eligible.dds} | Bin .../english/achievements_l_english.yml | 2 + 5 files changed, 37 insertions(+), 14 deletions(-) rename gfx/achievements/{GON_simply_walk_into_mordor.dds => GON_one_does_simply_walk_into_mordor_test.dds} (100%) rename gfx/achievements/{GON_simply_walk_into_mordor_grey.dds => GON_one_does_simply_walk_into_mordor_test_grey.dds} (100%) rename gfx/achievements/{GON_simply_walk_into_mordor_not_eligible.dds => GON_one_does_simply_walk_into_mordor_test_not_eligible.dds} (100%) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index fa863d372..f14703d2b 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -42,28 +42,23 @@ revenge_for_the_battle_of_the_five_armies_test = { } happened = { + OR = { + tag = GUN + tag = DGU + } ERE = { all_core_state = { - OR = { - is_controlled_by = GUN - is_controlled_by = DGU - } + is_controlled_by = ROOT } } MIR = { all_core_state = { - OR = { - is_controlled_by = GUN - is_controlled_by = DGU - } + is_controlled_by = ROOT } } DAL = { all_core_state = { - OR = { - is_controlled_by = GUN - is_controlled_by = DGU - } + is_controlled_by = ROOT } } } @@ -212,8 +207,34 @@ ISE_a_wizard_is_never_late_test = { happened = { has_government = cooperative - GON = { exists = no } - ROH = { exists = no } + GON = { + OR = { + exists = no + is_puppet_of = MOR + is_puppet_of = HAR + is_puppet_of = RHU + } + } + ROH = { + OR = { + exists = no + is_puppet_of = MOR + is_puppet_of = HAR + is_puppet_of = RHU + } + } has_country_flag = ISE_won_war_against_MOR_achievement_flag } +} + +#Gondor +GON_one_does_simply_walk_into_mordor_test = { + possible = { + achievement_standard_possible_check = yes + tag = GON + } + + happened = { + + } } \ No newline at end of file diff --git a/gfx/achievements/GON_simply_walk_into_mordor.dds b/gfx/achievements/GON_one_does_simply_walk_into_mordor_test.dds similarity index 100% rename from gfx/achievements/GON_simply_walk_into_mordor.dds rename to gfx/achievements/GON_one_does_simply_walk_into_mordor_test.dds diff --git a/gfx/achievements/GON_simply_walk_into_mordor_grey.dds b/gfx/achievements/GON_one_does_simply_walk_into_mordor_test_grey.dds similarity index 100% rename from gfx/achievements/GON_simply_walk_into_mordor_grey.dds rename to gfx/achievements/GON_one_does_simply_walk_into_mordor_test_grey.dds diff --git a/gfx/achievements/GON_simply_walk_into_mordor_not_eligible.dds b/gfx/achievements/GON_one_does_simply_walk_into_mordor_test_not_eligible.dds similarity index 100% rename from gfx/achievements/GON_simply_walk_into_mordor_not_eligible.dds rename to gfx/achievements/GON_one_does_simply_walk_into_mordor_test_not_eligible.dds diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index d9d516715..0ede236cf 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -32,6 +32,8 @@ ISE_a_wizard_is_never_late_test_NAME:0 "A wizard is never late" ISE_a_wizard_is_never_late_test_DESC:0 "As cooperative Isengard defeat Mordor after Gondor and Rohan have capitulated." MOA_side_by_side_with_an_elf_test_NAME:0 "Side by side with an elf" MOA_side_by_side_with_an_elf_test_DESC:0 "Have Gimli as a general and be in the faction with either Rivendell or Lothlorien" +GON_one_does_simply_walk_into_mordor_test_NAME:0 "One does simply walk into Mordor" +GON_one_does_simply_walk_into_mordor_test_DESC:0 "Defeat Mordor before 3021" #Country flags orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! declared war on §YAngmar§!" orcs_of_mordor_won_war_against_ANG_achievement_flag:0 "§YOrcs of Mordor§! has defeated §YAngmar§!" From b243b8e676955a60bf0046da6d3ba9408acb2732 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 23 Mar 2024 17:19:15 +0100 Subject: [PATCH 29/42] Worked on the achievements --- common/achievements/achievements.txt | 30 ++++++++++++++-- common/on_actions/00_on_actions.txt | 33 ++++++++++++++++-- ...N_for_frodo.dds => GON_for_frodo_test.dds} | Bin ...o_grey.dds => GON_for_frodo_test_grey.dds} | Bin ...ds => GON_for_frodo_test_not_eligible.dds} | Bin ...ne_does_simply_walk_into_mordor_testt.dds} | Bin ...es_simply_walk_into_mordor_testt_grey.dds} | Bin ...y_walk_into_mordor_testt_not_eligible.dds} | Bin ...ogaloo.dds => LTH_elven_boogaloo_test.dds} | Bin ...y.dds => LTH_elven_boogaloo_test_grey.dds} | Bin ... LTH_elven_boogaloo_test_not_eligible.dds} | Bin .../0_lotr_core/lotr_ring_l_english.yml | 6 ++-- .../english/achievements_l_english.yml | 11 ++++-- patch_notes.txt | 3 +- 14 files changed, 72 insertions(+), 11 deletions(-) rename gfx/achievements/{GON_for_frodo.dds => GON_for_frodo_test.dds} (100%) rename gfx/achievements/{GON_for_frodo_grey.dds => GON_for_frodo_test_grey.dds} (100%) rename gfx/achievements/{GON_for_frodo_not_eligible.dds => GON_for_frodo_test_not_eligible.dds} (100%) rename gfx/achievements/{GON_one_does_simply_walk_into_mordor_test.dds => GON_one_does_simply_walk_into_mordor_testt.dds} (100%) rename gfx/achievements/{GON_one_does_simply_walk_into_mordor_test_grey.dds => GON_one_does_simply_walk_into_mordor_testt_grey.dds} (100%) rename gfx/achievements/{GON_one_does_simply_walk_into_mordor_test_not_eligible.dds => GON_one_does_simply_walk_into_mordor_testt_not_eligible.dds} (100%) rename gfx/achievements/{LTH_elven_boogaloo.dds => LTH_elven_boogaloo_test.dds} (100%) rename gfx/achievements/{LTH_elven_boogaloo_grey.dds => LTH_elven_boogaloo_test_grey.dds} (100%) rename gfx/achievements/{LTH_elven_boogaloo_not_eligible.dds => LTH_elven_boogaloo_test_not_eligible.dds} (100%) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index f14703d2b..40b9dcae0 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -120,7 +120,7 @@ DAM_god_damnroth_test = { happened = { custom_trigger_tooltip = { - tooltip = achievement_test + tooltip = achievement_tooltip_get_twice_as_many_factories_as_gondor num_of_factories > GON.num_of_factories } } @@ -228,13 +228,39 @@ ISE_a_wizard_is_never_late_test = { } #Gondor -GON_one_does_simply_walk_into_mordor_test = { +GON_one_does_simply_walk_into_mordor_testt = { possible = { achievement_standard_possible_check = yes tag = GON } happened = { + always = no + date < 3021.1.1 + has_country_flag = GON_won_war_against_MOR_achievement_flag + } +} + +GON_for_frodo_test = { + possible = { + achievement_standard_possible_check = yes + tag = GON + } + + happened = { + has_country_flag = GON_taken_black_gate_from_MOR_achievement_flag + } +} + +#Lothlorien +LTH_elven_boogaloo_test = { + possible = { + achievement_standard_possible_check = yes + tag = LTH + } + happened = { + has_global_flag = fs_ring_destroyed + has_global_flag = fs_elven_fellowship } } \ No newline at end of file diff --git a/common/on_actions/00_on_actions.txt b/common/on_actions/00_on_actions.txt index 9f557b365..e2cfdfc02 100644 --- a/common/on_actions/00_on_actions.txt +++ b/common/on_actions/00_on_actions.txt @@ -190,7 +190,7 @@ on_actions = { } } - #ROOT is winner #FROM is loser + #ROOT is winner #FROM is loser on_peaceconference_ended = { #For the MOR_not_my_dark_lord achievement effect = { @@ -205,7 +205,7 @@ on_actions = { set_country_flag = orcs_of_mordor_won_war_against_ANG_achievement_flag } } - #For the ISE_a_wizard_is_never_late_test + #For the ISE_a_wizard_is_never_late achievement effect = { if = { limit = { @@ -218,6 +218,19 @@ on_actions = { set_country_flag = ISE_won_war_against_MOR_achievement_flag } } + #For the GON_one_does_simply_walk_into_mordor achievement + effect = { + if = { + limit = { + tag = GON + has_government = cooperative + FROM = { + original_tag = MOR + } + } + set_country_flag = GON_won_war_against_MOR_achievement_flag + } + } } # When a new faction is formed @@ -338,7 +351,21 @@ on_actions = { #ROOT is new controller #FROM is old controller #FROM.FROM is state ID on_state_control_changed = { effect = { - + if = { + limit = { + tag = GON + FROM = { + tag = MOR + } + var:global.fs_currentstate = { + is_core_of = MOR + } + FROM.FROM = { + state = 2 + } + } + } + set_country_flag = GON_taken_black_gate_from_MOR_achievement_flag } } } diff --git a/gfx/achievements/GON_for_frodo.dds b/gfx/achievements/GON_for_frodo_test.dds similarity index 100% rename from gfx/achievements/GON_for_frodo.dds rename to gfx/achievements/GON_for_frodo_test.dds diff --git a/gfx/achievements/GON_for_frodo_grey.dds b/gfx/achievements/GON_for_frodo_test_grey.dds similarity index 100% rename from gfx/achievements/GON_for_frodo_grey.dds rename to gfx/achievements/GON_for_frodo_test_grey.dds diff --git a/gfx/achievements/GON_for_frodo_not_eligible.dds b/gfx/achievements/GON_for_frodo_test_not_eligible.dds similarity index 100% rename from gfx/achievements/GON_for_frodo_not_eligible.dds rename to gfx/achievements/GON_for_frodo_test_not_eligible.dds diff --git a/gfx/achievements/GON_one_does_simply_walk_into_mordor_test.dds b/gfx/achievements/GON_one_does_simply_walk_into_mordor_testt.dds similarity index 100% rename from gfx/achievements/GON_one_does_simply_walk_into_mordor_test.dds rename to gfx/achievements/GON_one_does_simply_walk_into_mordor_testt.dds diff --git a/gfx/achievements/GON_one_does_simply_walk_into_mordor_test_grey.dds b/gfx/achievements/GON_one_does_simply_walk_into_mordor_testt_grey.dds similarity index 100% rename from gfx/achievements/GON_one_does_simply_walk_into_mordor_test_grey.dds rename to gfx/achievements/GON_one_does_simply_walk_into_mordor_testt_grey.dds diff --git a/gfx/achievements/GON_one_does_simply_walk_into_mordor_test_not_eligible.dds b/gfx/achievements/GON_one_does_simply_walk_into_mordor_testt_not_eligible.dds similarity index 100% rename from gfx/achievements/GON_one_does_simply_walk_into_mordor_test_not_eligible.dds rename to gfx/achievements/GON_one_does_simply_walk_into_mordor_testt_not_eligible.dds diff --git a/gfx/achievements/LTH_elven_boogaloo.dds b/gfx/achievements/LTH_elven_boogaloo_test.dds similarity index 100% rename from gfx/achievements/LTH_elven_boogaloo.dds rename to gfx/achievements/LTH_elven_boogaloo_test.dds diff --git a/gfx/achievements/LTH_elven_boogaloo_grey.dds b/gfx/achievements/LTH_elven_boogaloo_test_grey.dds similarity index 100% rename from gfx/achievements/LTH_elven_boogaloo_grey.dds rename to gfx/achievements/LTH_elven_boogaloo_test_grey.dds diff --git a/gfx/achievements/LTH_elven_boogaloo_not_eligible.dds b/gfx/achievements/LTH_elven_boogaloo_test_not_eligible.dds similarity index 100% rename from gfx/achievements/LTH_elven_boogaloo_not_eligible.dds rename to gfx/achievements/LTH_elven_boogaloo_test_not_eligible.dds diff --git a/localisation/english/0_lotr_core/lotr_ring_l_english.yml b/localisation/english/0_lotr_core/lotr_ring_l_english.yml index 9ea32aab1..7be696410 100644 --- a/localisation/english/0_lotr_core/lotr_ring_l_english.yml +++ b/localisation/english/0_lotr_core/lotr_ring_l_english.yml @@ -50,7 +50,7 @@ fs_ring_seized:0 "The Ring has been seized by a country" fs_early_interception_unlocked:0 "Early interception attempts have been unlocked" fs_arrived_in_rivendell:0 "The fellowship has reached Rivendell" - fs_ring_destroyed:0 "The Ring has been destroyed" + fs_ring_destroyed:0 "§YThe Ring§! has been §Rdestroyed§!" ring_hunting_party_assign_tt:0 "Assigned army leaders run the risk of being killed when fighting the fellowship.\nAssigning army leaders with higher stats increase our chances of success." ring_hunting_party_0_cr_tt:0 "Our hunting party will disengage combat the moment a single member is killed." @@ -333,4 +333,6 @@ GENERIC_ring_corruption_increase_10:0 "Increase corruption with §R10%§!" GENERIC_ring_corruption_decrease_10:0 "Decrease corruption with §G10%§!" GENERIC_ring_corruption_increase_20:0 "Increase corruption with §R20%§!" - GENERIC_ring_corruption_decrease_20:0 "Decrease corruption with §G20%§!" \ No newline at end of file + GENERIC_ring_corruption_decrease_20:0 "Decrease corruption with §G20%§!" + + fs_elven_fellowship:0 "The §YElven Fellowship§! has been §Gcreated§!" \ No newline at end of file diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index 0ede236cf..f6c1c57f0 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -32,14 +32,19 @@ ISE_a_wizard_is_never_late_test_NAME:0 "A wizard is never late" ISE_a_wizard_is_never_late_test_DESC:0 "As cooperative Isengard defeat Mordor after Gondor and Rohan have capitulated." MOA_side_by_side_with_an_elf_test_NAME:0 "Side by side with an elf" MOA_side_by_side_with_an_elf_test_DESC:0 "Have Gimli as a general and be in the faction with either Rivendell or Lothlorien" -GON_one_does_simply_walk_into_mordor_test_NAME:0 "One does simply walk into Mordor" -GON_one_does_simply_walk_into_mordor_test_DESC:0 "Defeat Mordor before 3021" +GON_one_does_simply_walk_into_mordor_testt_NAME:0 "One does simply walk into Mordor" +GON_one_does_simply_walk_into_mordor_testt_DESC:0 "Defeat Mordor before 3021" +GON_for_frodo_test_NAME:0 "For Frodo!" +GON_for_frodo_test_DESC:0 "As Gondor, take the Black gate whilst the fellowship closes in on Mount Doom" +LTH_elven_boogaloo_test_NAME:0 "Fellowship 2: Elven Boogaloo" +LTH_elven_boogaloo_test_DESC:0 "As Lothlorien have the Elven Fellowship destroy the ring" #Country flags orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! declared war on §YAngmar§!" orcs_of_mordor_won_war_against_ANG_achievement_flag:0 "§YOrcs of Mordor§! has defeated §YAngmar§!" +GON_won_war_against_MOR_achievement_flag:0 "§YGondor§! has defeated §YMordor§!" ISE_won_war_against_MOR_achievement_flag:0 "§YIsengard§! has defeated §YMordor§!" lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag:0 "§YLurtz§! killed §YBoromir§! while attacking the Fellowship" +GON_taken_black_gate_from_MOR_achievement_flag:0 "§YGondor§! has taken the §YBlack Gate§! while fellowship is in §YMordor§!" #Custom tooltip -achievement_test:0 "Has more than double the factories of Gondor" achievement_tooltip_get_twice_as_many_factories_as_gondor:0 "As §YDol Amroth§! get twice as many factories as §YGondor§!" \ No newline at end of file diff --git a/patch_notes.txt b/patch_notes.txt index 4cc025bca..49c8e1e8b 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -12,4 +12,5 @@ General: - Higher change AI Angmar goes down the republic path if Arthedain is restoring Arnor - Renamed achievement Necromancer to Somehow He Has Returned - Cavalry and Eagle/Nazgul designers now have the correct title shown -- World tension increase when Sauron is unleashed 25 -> 50 \ No newline at end of file +- World tension increase when Sauron is unleashed 25 -> 50 +- Added 13 new achievements \ No newline at end of file From cab1619b0259a5b7316ec518f42159cf2519efad Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sun, 24 Mar 2024 17:43:34 +0100 Subject: [PATCH 30/42] Small changes to achievement --- common/achievements/achievements.txt | 10 ++-------- localisation/english/achievements_l_english.yml | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index 40b9dcae0..f3156655a 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -35,17 +35,10 @@ one_ring_to_rule_them_all_test = { revenge_for_the_battle_of_the_five_armies_test = { possible = { achievement_standard_possible_check = yes - OR = { - tag = GUN - tag = DGU - } + tag = GUN } happened = { - OR = { - tag = GUN - tag = DGU - } ERE = { all_core_state = { is_controlled_by = ROOT @@ -61,6 +54,7 @@ revenge_for_the_battle_of_the_five_armies_test = { is_controlled_by = ROOT } } + DGU = { is_puppet_of = ROOT } } } diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index f6c1c57f0..79b22c30d 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -43,7 +43,7 @@ orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! decl orcs_of_mordor_won_war_against_ANG_achievement_flag:0 "§YOrcs of Mordor§! has defeated §YAngmar§!" GON_won_war_against_MOR_achievement_flag:0 "§YGondor§! has defeated §YMordor§!" ISE_won_war_against_MOR_achievement_flag:0 "§YIsengard§! has defeated §YMordor§!" -lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag:0 "§YLurtz§! killed §YBoromir§! while attacking the Fellowship" +lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag:0 "§YLurtz§! §Rkilled§! §YBoromir§! while attacking the Fellowship" GON_taken_black_gate_from_MOR_achievement_flag:0 "§YGondor§! has taken the §YBlack Gate§! while fellowship is in §YMordor§!" #Custom tooltip From 756b225fe1560a5dbf7e369e1ac994c34ce75a3e Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sun, 24 Mar 2024 18:51:47 +0100 Subject: [PATCH 31/42] Reworked and relocated the "War Preparations" focus path --- common/ideas/mordor.txt | 9 + common/national_focus/mordor.txt | 279 +++++++++--------- history/countries/MOR - Mordor.txt | 1 - history/states/12-Barad-Dur.txt | 6 +- history/states/2-Udun.txt | 5 +- .../mordor/mordor_focuses_l_english.yml | 30 +- .../english/mordor/mordor_ideas_l_english.yml | 6 +- patch_notes.txt | 3 + 8 files changed, 177 insertions(+), 162 deletions(-) diff --git a/common/ideas/mordor.txt b/common/ideas/mordor.txt index 303a04092..78d8b9473 100644 --- a/common/ideas/mordor.txt +++ b/common/ideas/mordor.txt @@ -599,5 +599,14 @@ ideas = { consumer_goods_factor = 0.1 } } + + MOR_new_established_supply_lines = { + picture = generic_resource_digging + modifier = { + production_speed_infrastructure_factor = 0.25 + production_speed_rail_way_factor = 0.25 + production_speed_supply_node_factor = 0.15 + } + } } } diff --git a/common/national_focus/mordor.txt b/common/national_focus/mordor.txt index 1b52ee5f5..632979aff 100644 --- a/common/national_focus/mordor.txt +++ b/common/national_focus/mordor.txt @@ -1050,7 +1050,7 @@ focus = { } } } - x = 58 + x = 48 y = 0 search_filters = { FOCUS_FILTER_ARMY_XP } cost = 5 @@ -1079,6 +1079,113 @@ focus = { } } +focus = { + id = MOR_war_preparations + icon = GFX_goal_generic_sword_arrow_and_shield + ai_will_do = { factor = 3 } + prerequisite = { focus = militaryeffort } + relative_position_id = militaryeffort + x = 7 + y = 1 + cost = 5 + available_if_capitulated = yes + search_filters = { FOCUS_FILTER_RESEARCH } + completion_reward = { + army_experience = 5 + add_tech_bonus = { + name = infantry_weapons_bonus + bonus = 0.5 + uses = 2 + category = infantry_weapons + } + } +} + +focus = { + id = MOR_raise_the_black_gate + icon = GFX_goal_mor_mordor_landscape + ai_will_do = { factor = 4 } + available = { 2 = { is_controlled_by = ROOT } } + x = 0 + y = 1 + relative_position_id = MOR_war_preparations + prerequisite = { focus = MOR_war_preparations} + cost = 5 + available_if_capitulated = yes + search_filters = { FOCUS_FILTER_INDUSTRY } + completion_reward = { + 2 = { + add_building_construction = { type = castle level = 2 instant_build = yes province = 4323 } + add_building_construction = { type = bunker level = 2 instant_build = yes province = 4323 } + } + } +} + +focus = { + id = MOR_the_eagles_are_coming + icon = GFX_goal_lth_nature_eagles + ai_will_do = { factor = 3 } + x = 2 + y = 1 + relative_position_id = MOR_raise_the_black_gate + mutually_exclusive = { } + prerequisite = { focus = MOR_raise_the_black_gate } + prerequisite = { focus = MOR_air_defense_research_department } + cost = 5 + available_if_capitulated = yes + search_filters = { FOCUS_FILTER_INDUSTRY } + completion_reward = { + 2 = { + add_building_construction = { type = anti_air_building level = 3 instant_build = yes } + } + 5 = { + add_building_construction = { type = anti_air_building level = 2 instant_build = yes } + } + 10 = { + add_building_construction = { type = anti_air_building level = 2 instant_build = yes } + } + } +} + +focus = { + id = MOR_establish_new_supply_lines + icon = GFX_goal_generic_trade + ai_will_do = { factor = 3 } + x = 0 + y = 1 + relative_position_id = MOR_raise_the_black_gate + mutually_exclusive = { } + prerequisite = { focus = MOR_raise_the_black_gate} + cost = 10 + available_if_capitulated = yes + search_filters = { FOCUS_FILTER_INDUSTRY } + completion_reward = { + add_timed_idea = { days = 365 idea = MOR_new_established_supply_lines } + } +} + +focus = { + id = MOR_build_up_the_narrow_of_durthang + icon = GFX_goal_generic_dark_fortress_dol_guldur + ai_will_do = { factor = 5 } + available = { 3 = { is_controlled_by = ROOT } } + x = -2 + y = 1 + relative_position_id = MOR_raise_the_black_gate + mutually_exclusive = { } + prerequisite = { focus = MOR_raise_the_black_gate} + cost = 5 + available_if_capitulated = yes + search_filters = { FOCUS_FILTER_INDUSTRY } + completion_reward = { + 3 = { + add_building_construction = { type = bunker level = 3 instant_build = yes province = 4828 } + add_building_construction = { type = castle level = 1 instant_build = yes province = 4828 } + } + } +} + + #Focus for Minimized Death Toll focus = { id = minimizeddeathtoll @@ -1328,7 +1435,7 @@ focus = { icon = GFX_focus_generic_industry_1 ai_will_do = { factor = 3 } available = { 12 = { is_controlled_by = ROOT } 6 = { is_controlled_by = ROOT } } - x = 42 + x = 36 y = 0 mutually_exclusive = { focus = decentralizedindustry } prerequisite = { } @@ -1418,7 +1525,7 @@ focus = { icon = GFX_focus_generic_industry_1 ai_will_do = { factor = 3 } available = { 11 = { is_controlled_by = ROOT } 9 = { is_controlled_by = ROOT } 2 = { is_controlled_by = ROOT } 3 = { is_controlled_by = ROOT } 7 = { is_controlled_by = ROOT } } - x = 48 + x = 42 y = 0 mutually_exclusive = { focus = centralizedindustry } prerequisite = { } @@ -1574,27 +1681,27 @@ focus = { y = 1 relative_position_id = railnetwork_to_the_east prerequisite = { focus = railnetwork_to_the_east } - cost = 10 + cost = 5 search_filters = { FOCUS_FILTER_INDUSTRY } completion_reward = { 122 = { add_building_construction = { type = infrastructure - level = 3 + level = 2 instant_build = yes } } 121 = { add_building_construction = { type = infrastructure - level = 3 + level = 2 instant_build = yes } } 120 = { add_building_construction = { type = infrastructure - level = 3 + level = 2 instant_build = yes } } @@ -1716,7 +1823,7 @@ focus = { id = wrathofthefellbeasts icon = GFX_goal_generic_build_airforce ai_will_do = { factor = 2 } - x = 51 + x = 60 y = 0 mutually_exclusive = { } prerequisite = { } @@ -1728,6 +1835,35 @@ focus = { } } + +focus = { + id = MOR_air_defense_research_department + icon = GFX_goal_lth_weapons_research + ai_will_do = { factor = 3 } + x = -3 + y = 1 + relative_position_id = wrathofthefellbeasts + mutually_exclusive = { } + prerequisite = { focus = wrathofthefellbeasts} + cost = 5 + available_if_capitulated = yes + search_filters = { FOCUS_FILTER_INDUSTRY } + completion_reward = { + add_tech_bonus = { + name = lotr_ballista + bonus = 0.5 + uses = 1 + category = lotr_machines_ballista + } + add_tech_bonus = { + name = lotr_wind_lance + bonus = 0.75 + uses = 1 + category = lotr_machines_windlance + } + } +} + #Focus for Ferocious Fellbeasts focus = { id = ferociousfellbeasts @@ -1737,7 +1873,7 @@ focus = { y = 1 relative_position_id = wrathofthefellbeasts prerequisite = { focus = wrathofthefellbeasts } - cost = 10 + cost = 5 available_if_capitulated = yes search_filters = { FOCUS_FILTER_RESEARCH } completion_reward = { @@ -1759,7 +1895,7 @@ focus = { y = 1 relative_position_id =wrathofthefellbeasts prerequisite = { focus = wrathofthefellbeasts } - cost = 10 + cost = 5 available_if_capitulated = yes search_filters = { FOCUS_FILTER_RESEARCH } completion_reward = { @@ -1909,26 +2045,6 @@ focus = { } } - #Focus for War Preparations -focus = { - id = warpreparations - icon = GFX_goal_demand_sudetenland - ai_will_do = { factor = 3 } - x = 38 - y = 0 - cost = 10 - available_if_capitulated = yes - search_filters = { FOCUS_FILTER_RESEARCH } - completion_reward = { - add_tech_bonus = { - name = infantry_weapons_bonus - bonus = 0.5 - uses = 1 - category = infantry_weapons - } - } - } - #Focus for Seek Allies in the West focus = { id = seekalliesinthewest @@ -2391,27 +2507,6 @@ focus = { } } - #Focus for Shoot down the Eagles! -focus = { - id = shootdowntheeagles - icon = GFX_goal_generic_construct_military - ai_will_do = { factor = 3 } - available = { 10 = { is_controlled_by = ROOT } 3 = { is_controlled_by = ROOT } 4 = { is_controlled_by = ROOT } } - x = 2 - y = 1 - relative_position_id = warpreparations - mutually_exclusive = { } - prerequisite = { focus = warpreparations} - cost = 10 - available_if_capitulated = yes - search_filters = { FOCUS_FILTER_INDUSTRY } - completion_reward = { - 10 = { add_building_construction = { type = anti_air_building level = 3 instant_build = yes } } - 3 = { add_building_construction = { type = anti_air_building level = 3 instant_build = yes } } - 4 = { add_building_construction = { type = anti_air_building level = 3 instant_build = yes } } - } -} - #Dol Guldur focus = { id = sent_troops_to_dol_guldur @@ -3103,88 +3198,6 @@ focus = { } } - - #Focus for Raise the Black Gate - focus = { - id = raisetheblackgate - icon = GFX_goal_generic_production - ai_will_do = { factor = 4 } - available = { 5 = { is_controlled_by = ROOT } } - x = 0 - y = 1 - relative_position_id = warpreparations - mutually_exclusive = { } - prerequisite = { focus = warpreparations} - cost = 10 - available_if_capitulated = yes - search_filters = { FOCUS_FILTER_INDUSTRY } - completion_reward = { - 2 = { - add_building_construction = { type = bunker level = 4 instant_build = yes province = 4323 } - add_building_construction = { type = infrastructure level = 1 instant_build = yes } - } - } - } - - #Focus for Build up the Narrow of Durthang -focus = { - id = buildupthenarrowofdurthang - icon = GFX_goal_generic_construct_military - ai_will_do = { factor = 5 } - available = { 3 = { is_controlled_by = ROOT } } - x = 2 - y = 1 - relative_position_id = raisetheblackgate - mutually_exclusive = { } - prerequisite = { focus = raisetheblackgate} - cost = 10 - available_if_capitulated = yes - search_filters = { FOCUS_FILTER_INDUSTRY } - completion_reward = { - 185 = { add_building_construction = { type = bunker level = 5 instant_build = yes province = 7371 } } - } -} - - #Focus for Raise the Gate of Morannon -focus = { - id = raisethegateofmorannon - icon = GFX_goal_generic_construct_military - ai_will_do = { factor = 3 } - available = { 2 = { is_controlled_by = ROOT } } - x = -2 - y = 1 - relative_position_id = raisetheblackgate - prerequisite = { focus = raisetheblackgate} - cost = 10 - available_if_capitulated = yes - search_filters = { FOCUS_FILTER_INDUSTRY } - completion_reward = { - 3 = { add_building_construction = { type = bunker level = 5 instant_build = yes province = 4828 } } - } -} - - #Focus for Establish new supply lines -focus = { - id = establishnewsupplylines - icon = GFX_goal_generic_trade - ai_will_do = { factor = 3 } - available = { 120 = { is_controlled_by = ROOT } 121 = { is_controlled_by = ROOT } 122 = { is_controlled_by = ROOT } } - x = 0 - y = 1 - relative_position_id = raisetheblackgate - mutually_exclusive = { } - prerequisite = { focus = raisetheblackgate} - cost = 10 - available_if_capitulated = yes - search_filters = { FOCUS_FILTER_INDUSTRY } - completion_reward = { - 2 = { add_building_construction = { type = infrastructure level = 1 instant_build = yes } } - 188 = { add_building_construction = { type = infrastructure level = 1 instant_build = yes } } - 186 = { add_building_construction = { type = infrastructure level = 1 instant_build = yes } } - 10 = { add_building_construction = { type = infrastructure level = 1 instant_build = yes } } - } -} - #Focus for Rally the Troops focus = { id = rallythetroops diff --git a/history/countries/MOR - Mordor.txt b/history/countries/MOR - Mordor.txt index 9e0f4a7b7..164d6f937 100644 --- a/history/countries/MOR - Mordor.txt +++ b/history/countries/MOR - Mordor.txt @@ -44,7 +44,6 @@ set_technology = { mass_assault = 1 fleet_in_being = 1 trade_caravan = 1 - warg_horses_module = 1 } diff --git a/history/states/12-Barad-Dur.txt b/history/states/12-Barad-Dur.txt index 9f3619246..745811cac 100644 --- a/history/states/12-Barad-Dur.txt +++ b/history/states/12-Barad-Dur.txt @@ -12,11 +12,7 @@ state={ infrastructure = 4 air_base = 2 arms_factory = 3 - industrial_complex = 5 - - anti_air_building = 5 - - + industrial_complex = 5 3972 = { bunker = 1 } } add_core_of = MOR diff --git a/history/states/2-Udun.txt b/history/states/2-Udun.txt index 0f69ff569..a143181fc 100644 --- a/history/states/2-Udun.txt +++ b/history/states/2-Udun.txt @@ -13,10 +13,7 @@ state={ air_base = 3 arms_factory = 2 industrial_complex = 1 - - anti_air_building = 5 - - 4323 = { bunker = 5 } + 4323 = { bunker = 3 } } add_core_of = MOR diff --git a/localisation/english/mordor/mordor_focuses_l_english.yml b/localisation/english/mordor/mordor_focuses_l_english.yml index bbc70795d..529a83bc7 100644 --- a/localisation/english/mordor/mordor_focuses_l_english.yml +++ b/localisation/english/mordor/mordor_focuses_l_english.yml @@ -3,8 +3,8 @@ arealmoforcs:0 "A Realm of Orcs" arealmoforcs_desc:0 "Our land's predominant population consists of Orcs." establishcontrolovertheeast:0 "Establish control over the East" establishcontroloverthesouth:0 "Establish control over the South" -warpreparations:0 "War Preparations" -warpreparations_desc:0 "Middle-Earth will not conquer itself! We must sharpen our claws and bare our teeth, and prepare for the time of glory when Sauron will be the master of Middle-Earth!" +MOR_war_preparations:0 "War Preparations" +MOR_war_preparations_desc:0 "Middle-Earth will not conquer itself! We must sharpen our claws and bare our teeth, and prepare for the time of glory when Sauron will be the master of Middle-Earth!" minimizeddeathtoll:0 "Minimize Death Toll" minimizeddeathtoll_desc:0 "It is important that we reduce the death toll as much as possible." specializedunits:0 "Specialized Units" @@ -94,8 +94,6 @@ seekalliesinthewest:0 "Seek Allies in the West" seekalliesinthewest_desc:0 "" seekalliesinthewest:0 "Seek Allies in the West" seekalliesinthewest_desc:0 "" -shootdowntheeagles:0 "Shoot down the Eagles!" -shootdowntheeagles_desc:0 "" seekhelpfromgondor:0 "Seek Help from Gondor" seekhelpfromgondor_desc:0 "" seekalliesintheeast:0 "Seek Allies in the East" @@ -104,16 +102,12 @@ huntforthering:0 "Hunt for the Ring" huntforthering_desc:0 "The One Ring must be restored!" gatherthenazgl:0 "Gather the Nazgûl" gatherthenazgl_desc:0 "The Nine must be called, for there are tasks that await them, tasks which must be fulfilled." -shootdowntheeagles:0 "Shoot down the Eagles!" -shootdowntheeagles_desc:0 "" seekalliesinthewest:0 "Seek Allies in the West" seekalliesinthewest_desc:0 "" seekalliesintheeast:0 "Seek Allies in the East" seekalliesintheeast_desc:0 "" reinforceourdefenses:0 "Reinforce our Defenses" reinforceourdefenses_desc:0 "" -shootdowntheeagles:0 "Shoot down the Eagles!" -shootdowntheeagles_desc:0 "" establishneworcbreedinggrounds:0 "Establish new orc breeding grounds" establishneworcbreedinggrounds_desc:0 "It matters little how much Orc blood is spilt, but there unfortunately only a finite amount and so we should work to increase the number of Orcs we have." exertinfluenceinrohan:0 "Exert influence in Rohan" @@ -126,8 +120,8 @@ enslavethesouth:0 "Enslave the South" enslavethesouth_desc:0 "" torturegollum:0 "Torture Gollum" torturegollum_desc:0 "The wretch Gollum must have valuable information, and we have many… creative ways of extracting that information." -raisetheblackgate:0 "Raise the Black Gate" -raisetheblackgate_desc:0 "" +MOR_raise_the_black_gate:0 "Raise the Black Gate" +MOR_raise_the_black_gate_desc:0 "" reachouttoisengard:0 "Reach out to Isengard" reachouttoisengard_desc:0 "" reachouttoangmar:0 "Reach out to Angmar" @@ -138,12 +132,8 @@ enslavetheeast:0 "Enslave the East" enslavetheeast_desc:0 "" enslavethesouth:0 "Enslave the South" enslavethesouth_desc:0 "" -buildupthenarrowofdurthang:0 "Build up the Narrow of Durthang" -buildupthenarrowofdurthang_desc:0 "" -raisetheblackgate:0 "Raise the Black Gate" -raisetheblackgate_desc:0 "" -raisethegateofmorannon:0 "Raise the Gate of Morannon" -raisethegateofmorannon_desc:0 "" +MOR_build_up_the_narrow_of_durthang:0 "Build up the Narrow of Durthang" +MOR_build_up_the_narrow_of_durthang_desc:0 "" establishcontroloverthedeadmarshes:0 "Establish control over the Dead Marshes" establishcontroloverthedeadmarshes_desc:0 "" establishcontroloverthedeadmarshes:0 "Establish control over the Dead Marshes" @@ -152,8 +142,8 @@ searchtheshireforthering:0 "Search the Shire for the Ring" searchtheshireforthering_desc:0 "" establishcontroloverthedeadmarshes:0 "Establish control over the Dead Marshes" establishcontroloverthedeadmarshes_desc:0 "" -establishnewsupplylines:0 "Establish new supply lines" -establishnewsupplylines_desc:0 "" +MOR_establish_new_supply_lines:0 "Establish new supply lines" +MOR_establish_new_supply_lines_desc:0 "" spreadtherevolution:0 "Spread the Revolution" spreadtherevolution_desc:0 "" intercepttheringatthedeadmarshes:0 "Intercept the Ring at the Dead Marshes" @@ -171,6 +161,10 @@ reinforcetheborderofrhn_desc:0 "" obtainthering:0 "Obtain the One Ring" obtainthering_tt:0 "§OThis focus will auto-complete if we have the ring in our possesion.§!" +MOR_air_defense_research_department:0 "Air Defense Research Department" +MOR_air_defense_research_department_desc:0 "" +MOR_the_eagles_are_coming:0 "The Eagles are Coming" +MOR_the_eagles_are_coming_desc:0 "" improve_industry:0 "Industry Effort" improve_industry_desc:0 "We have various industries which we must expand." research_rural_industry:0 "Rural Industry" diff --git a/localisation/english/mordor/mordor_ideas_l_english.yml b/localisation/english/mordor/mordor_ideas_l_english.yml index a8f73b262..02c508d50 100644 --- a/localisation/english/mordor/mordor_ideas_l_english.yml +++ b/localisation/english/mordor/mordor_ideas_l_english.yml @@ -36,4 +36,8 @@ MOR_regaining_power_0_desc:0 "Long have we been regaining our power and long we MOR_regaining_power_1:0 "Regaining power" MOR_regaining_power_1_desc:0 "Long have we been regaining our power and long we still have to go. Feeling stronger with every day that passes. Getting ready to take over Middle-Earth and finish what we started so long ago." MOR_regaining_power_2:0 "Regaining power" -MOR_regaining_power_2_desc:0 "Long have we been regaining our power and long we still have to go. Feeling stronger with every day that passes. Getting ready to take over Middle-Earth and finish what we started so long ago." \ No newline at end of file +MOR_regaining_power_2_desc:0 "Long have we been regaining our power and long we still have to go. Feeling stronger with every day that passes. Getting ready to take over Middle-Earth and finish what we started so long ago." + +#General +MOR_new_established_supply_lines:0 "New established supply lines" +MOR_new_established_supply_lines_desc:0 "" \ No newline at end of file diff --git a/patch_notes.txt b/patch_notes.txt index 49c8e1e8b..05aeffcde 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -1,3 +1,6 @@ +Mordor: +- Two air related focuses from 70 days -> 35 days +- Reworked and relocated the "War Preparations" focus path Gondor: - Eyes of the White Tower will now bypass if you have already created a intelligence agency - Made a various of small changes to the research focuceses of Gondor From 9674c1d11593c86518c4eaf537ff26f8d67613d9 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sun, 24 Mar 2024 18:52:17 +0100 Subject: [PATCH 32/42] Update patch_notes.txt --- patch_notes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/patch_notes.txt b/patch_notes.txt index 05aeffcde..b26e0ec7d 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -1,6 +1,7 @@ Mordor: - Two air related focuses from 70 days -> 35 days - Reworked and relocated the "War Preparations" focus path +- Mordor no longer starts with any anti air since they never started with the research anyways Gondor: - Eyes of the White Tower will now bypass if you have already created a intelligence agency - Made a various of small changes to the research focuceses of Gondor From bc6dcdedf8dc19801552cbb235459e15d2de2df2 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Mon, 25 Mar 2024 10:16:14 +0100 Subject: [PATCH 33/42] Name update --- common/ai_strategy_plans/MOR_strategy_plans.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/ai_strategy_plans/MOR_strategy_plans.txt b/common/ai_strategy_plans/MOR_strategy_plans.txt index 8edfb68e0..864b39586 100644 --- a/common/ai_strategy_plans/MOR_strategy_plans.txt +++ b/common/ai_strategy_plans/MOR_strategy_plans.txt @@ -38,7 +38,7 @@ MOR_historical_plan = { seekalliesintheeast globalrailnetwork railnetwork_to_the_east - warpreparations + MOR_war_preparations honor_morgoth unleashsauron infrastructure_to_the_east From 788aa13da050c28f3c5ae60aefbb7410d2be2f70 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Thu, 28 Mar 2024 10:00:21 +0100 Subject: [PATCH 34/42] extracted MIO localizations --- .../organizations/GON.txt | 10 +- .../organizations/ISE.txt | 8 +- .../organizations/LIN.txt | 8 +- .../organizations/LTH.txt | 10 +- .../organizations/MIR.txt | 8 +- .../organizations/RIV.txt | 8 +- .../organizations/ROH.txt | 8 +- .../organizations/SHI.txt | 8 +- .../generic_alchemists_guild.txt | 40 +-- .../generic_ballistics_guild.txt | 50 ++-- .../generic_blacksmith_guild.txt | 44 +-- .../organizations/generic_dwarves.txt | 8 +- .../organizations/generic_farmers_guild.txt | 40 +-- .../organizations/generic_hunters_guild.txt | 44 +-- .../organizations/generic_knights_guild.txt | 42 +-- .../organizations/generic_men.txt | 8 +- .../organizations/generic_men_eastern.txt | 8 +- .../organizations/generic_men_rangers.txt | 8 +- .../organizations/generic_miners_guild.txt | 40 +-- .../organizations/generic_orcs.txt | 8 +- .../organizations/generic_other.txt | 8 +- .../generic_shipbuilders_guild.txt | 50 ++-- .../generic_stablemasters_guild.txt | 40 +-- .../generic_woodcutters_guild.txt | 48 +-- .../0_lotr_core/lotr_mios_l_english.yml | 280 +++++++++++++++++- .../replace/lotr_technologies_l_english.yml | 4 +- patch_notes.txt | 3 +- tools/misc/pull_locs_from_txt.py | 34 +++ 28 files changed, 594 insertions(+), 281 deletions(-) create mode 100644 tools/misc/pull_locs_from_txt.py diff --git a/common/military_industrial_organization/organizations/GON.txt b/common/military_industrial_organization/organizations/GON.txt index 995ebf10e..8bc25d2a0 100644 --- a/common/military_industrial_organization/organizations/GON.txt +++ b/common/military_industrial_organization/organizations/GON.txt @@ -1,5 +1,5 @@ GON_blacksmith_guild = { - name = "White Tower Steelshop" + name = white_tower_steelshop icon = GFX_mio_generic_4 allowed = { @@ -10,7 +10,7 @@ GON_blacksmith_guild = { } GON_knights_guild = { - name = "Order of the White Rose" + name = order_of_the_white_rose icon = GFX_mio_generic_7 allowed = { @@ -25,7 +25,7 @@ GON_knights_guild = { } GON_alchemists_guild = { - name = "Citadel Lorekeepers" + name = citadel_lorekeepers icon = GFX_mio_generic_alchemists_1 allowed = { @@ -36,7 +36,7 @@ GON_alchemists_guild = { } GON_shipbuilders_guild = { - name = "Shipwrights of Númenor" + name = shipwrights_of_numenor icon = GFX_mio_generic_ships_2 allowed = { @@ -47,7 +47,7 @@ GON_shipbuilders_guild = { } GON_woodcutters_guild = { - name = "Ostagar Luberjacks" + name = ostagar_luberjacks icon = GFX_mio_generic_wood_1 allowed = { diff --git a/common/military_industrial_organization/organizations/ISE.txt b/common/military_industrial_organization/organizations/ISE.txt index 426d05d07..22d8d988c 100644 --- a/common/military_industrial_organization/organizations/ISE.txt +++ b/common/military_industrial_organization/organizations/ISE.txt @@ -1,5 +1,5 @@ ISE_alchemists_guild = { - name = "Orthanc Elixirs Guild" + name = orthanc_elixirs_guild icon = GFX_mio_generic_alchemists_3 allowed = { @@ -10,7 +10,7 @@ ISE_alchemists_guild = { } ISE_ballistics_guild = { - name = "Iron Ballistae Engineers" + name = iron_ballistae_engineers icon = GFX_mio_generic_alchemists_1 allowed = { @@ -21,7 +21,7 @@ ISE_ballistics_guild = { } ISE_blacksmith_guild = { - name = "White Hand Smithing Guild" + name = white_hand_smithing_guild icon = GFX_mio_generic_blacksmith_2 allowed = { @@ -32,7 +32,7 @@ ISE_blacksmith_guild = { } ISE_woodcutters_guild = { - name = "Isengard Timberwrights Guild" + name = isengard_timberwrights_guild icon = GFX_mio_generic_orc_4 allowed = { diff --git a/common/military_industrial_organization/organizations/LIN.txt b/common/military_industrial_organization/organizations/LIN.txt index bc32db004..ac2b4e77c 100644 --- a/common/military_industrial_organization/organizations/LIN.txt +++ b/common/military_industrial_organization/organizations/LIN.txt @@ -1,5 +1,5 @@ LIN_shipbuilders_guild = { - name = "Shipwrights of the Grey Havens" + name = shipwrights_of_the_grey_havens icon = GFX_mio_generic_ships_2 allowed = { @@ -13,7 +13,7 @@ LIN_shipbuilders_guild = { } LIN_ballistics_guild = { - name = "Sindar Bowcrafters" + name = sindar_bowcrafters icon = GFX_mio_generic_archers_3 allowed = { @@ -27,7 +27,7 @@ LIN_ballistics_guild = { } LIN_blacksmith_guild = { - name = "Lune Metalworkers" + name = lune_metalworkers icon = GFX_mio_generic_8 allowed = { @@ -41,7 +41,7 @@ LIN_blacksmith_guild = { } LIN_woodcutters_guild = { - name = "Ossiriand Woodworkers" + name = ossiriand_woodworkers icon = GFX_mio_generic_farming_3 allowed = { diff --git a/common/military_industrial_organization/organizations/LTH.txt b/common/military_industrial_organization/organizations/LTH.txt index 550558036..51295a360 100644 --- a/common/military_industrial_organization/organizations/LTH.txt +++ b/common/military_industrial_organization/organizations/LTH.txt @@ -1,5 +1,5 @@ LTH_hunters_guild = { - name = "Nandor Hunters" + name = nandor_hunters icon = GFX_mio_nandor allowed = { @@ -78,7 +78,7 @@ LTH_hunters_guild = { } LTH_ballistics_guild = { - name = "Sindar Bowcrafters" + name = sindar_bowcrafters icon = GFX_mio_sindar allowed = { @@ -179,7 +179,7 @@ LTH_ballistics_guild = { } LTH_blacksmith_guild = { - name = "Ñoldor Steelwielders" + name = noldor_steelwielders icon = GFX_mio_noldor allowed = { @@ -268,7 +268,7 @@ LTH_blacksmith_guild = { } LTH_woodcutters_guild = { - name = "Peredhil Woodgatherers" + name = peredhil_woodgatherers icon = GFX_mio_peredhil allowed = { @@ -355,7 +355,7 @@ LTH_woodcutters_guild = { } LTH_alchemists_guild = { - name = "Lorekeeper's Guild" + name = lorekeepers_guild icon = GFX_mio_generic_alchemists_2 allowed = { diff --git a/common/military_industrial_organization/organizations/MIR.txt b/common/military_industrial_organization/organizations/MIR.txt index d9c2a483a..faeeeb853 100644 --- a/common/military_industrial_organization/organizations/MIR.txt +++ b/common/military_industrial_organization/organizations/MIR.txt @@ -1,5 +1,5 @@ MIR_hunters_guild = { - name = "Mirkwood Pathstalkers" + name = mirkwood_pathstalkers icon = GFX_mio_generic_hunters_1 allowed = { @@ -10,7 +10,7 @@ MIR_hunters_guild = { } MIR_ballistics_guild = { - name = "Wood-elf Ballistics" + name = woodelf_ballistics icon = GFX_mio_generic_archers_1 allowed = { @@ -21,7 +21,7 @@ MIR_ballistics_guild = { } MIRblacksmith_guild = { - name = "King's Halls Flamekeepers" + name = kings_halls_flamekeepers icon = GFX_mio_generic_orc_4 allowed = { @@ -32,7 +32,7 @@ MIRblacksmith_guild = { } MIR_woodcutters_guild = { - name = "Eastbight Lumberjacks" + name = eastbight_lumberjacks icon = GFX_mio_generic_6 allowed = { diff --git a/common/military_industrial_organization/organizations/RIV.txt b/common/military_industrial_organization/organizations/RIV.txt index 482d6e40a..103bb286c 100644 --- a/common/military_industrial_organization/organizations/RIV.txt +++ b/common/military_industrial_organization/organizations/RIV.txt @@ -1,5 +1,5 @@ RIV_ballistics_guild = { - name = "Bruinen Bowcrafters" + name = bruinen_bowcrafters icon = GFX_mio_generic_9 allowed = { @@ -10,7 +10,7 @@ RIV_ballistics_guild = { } RIV_blacksmith_guild = { - name = "Throllshaws Forgekeepers" + name = throllshaws_forgekeepers icon = GFX_mio_generic_orc_4 allowed = { @@ -21,7 +21,7 @@ RIV_blacksmith_guild = { } RIV_hunters_guild = { - name = "Bruinen Roamers" + name = bruinen_roamers icon = GFX_mio_generic_hunters_2 allowed = { @@ -32,7 +32,7 @@ RIV_hunters_guild = { } RIV_alchemists_guild = { - name = "Scholar's Guild-Hall" + name = scholars_guildhall icon = GFX_mio_generic_alchemists_2 allowed = { diff --git a/common/military_industrial_organization/organizations/ROH.txt b/common/military_industrial_organization/organizations/ROH.txt index 87da24093..5df5a72c2 100644 --- a/common/military_industrial_organization/organizations/ROH.txt +++ b/common/military_industrial_organization/organizations/ROH.txt @@ -1,5 +1,5 @@ ROH_stablemasters_guild = { - name = "Eorling Ridewardens" + name = eorling_ridewardens icon = GFX_mio_generic_horse_1 allowed = { @@ -10,7 +10,7 @@ ROH_stablemasters_guild = { } ROH_farmers_guild = { - name = "Riddermark Farmsteaders" + name = riddermark_farmsteaders icon = GFX_mio_generic_farming_1 allowed = { @@ -21,7 +21,7 @@ ROH_farmers_guild = { } ROH_knights_guild = { - name = "Dawnward Cavaliers" + name = dawnward_cavaliers icon = GFX_mio_generic_8 allowed = { @@ -32,7 +32,7 @@ ROH_knights_guild = { } ROH_blacksmith_guild = { - name = "Helm's Forge Guild" + name = helms_forge_guild icon = GFX_mio_generic_blacksmith_2 allowed = { diff --git a/common/military_industrial_organization/organizations/SHI.txt b/common/military_industrial_organization/organizations/SHI.txt index 9d1380262..8bff5832f 100644 --- a/common/military_industrial_organization/organizations/SHI.txt +++ b/common/military_industrial_organization/organizations/SHI.txt @@ -1,5 +1,5 @@ shire_farmers_guild = { - name = "Eastfarthing Pastures" + name = eastfarthing_pastures icon = GFX_mio_generic_farming_1 allowed = { @@ -10,7 +10,7 @@ shire_farmers_guild = { } shire_stablemasters_guild = { - name = "Greenholm Pony-Keepers" + name = greenholm_ponykeepers icon = GFX_mio_generic_farming_2 allowed = { @@ -21,7 +21,7 @@ shire_stablemasters_guild = { } shire_woodcutters_guild = { - name = "Bridgefield Carpenters" + name = bridgefield_carpenters icon = GFX_mio_generic_wood_1 allowed = { @@ -32,7 +32,7 @@ shire_woodcutters_guild = { } shire_blacksmith_guild = { - name = "Tuckborough Smithing" + name = tuckborough_smithing icon = GFX_mio_generic_6 allowed = { diff --git a/common/military_industrial_organization/organizations/generic_alchemists_guild.txt b/common/military_industrial_organization/organizations/generic_alchemists_guild.txt index befab5732..a40f572b1 100644 --- a/common/military_industrial_organization/organizations/generic_alchemists_guild.txt +++ b/common/military_industrial_organization/organizations/generic_alchemists_guild.txt @@ -1,6 +1,6 @@ generic_alchemists_guild = { icon = GFX_mio_generic_alchemists_3 - name = "Alchemist's Guild" + name = alchemists_guild allowed = { always = no @@ -23,22 +23,22 @@ generic_alchemists_guild = { research_bonus = 0.05 tree_header_text = { - text = "Scripture" + text = scripture x = 1 } tree_header_text = { - text = "Alchemy" + text = alchemy x = 5 } tree_header_text = { - text = "Guild Structure" + text = guild_structure x = 7 } initial_trait = { - name = "Alchemy Specialization" + name = alchemy_specialization organization_modifier = { military_industrial_organization_research_bonus = 0.1 @@ -47,7 +47,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_scripture_archiving - name = "Scripture Archiving" + name = scripture_archiving icon = GFX_generic_mio_trait_bookstack position = { x=1 y=0 } @@ -61,7 +61,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_historical_preservation - name = "Historical Presevation" + name = historical_presevation icon = GFX_generic_mio_trait_book # improve funds or something? @@ -80,7 +80,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_scripture_copying - name = "Scripture Copying" + name = scripture_copying icon = GFX_generic_mio_trait_quill # improve research bonus @@ -99,7 +99,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_knowledge_collection - name = "Knowledge Collections" + name = knowledge_collections icon = GFX_generic_mio_trait_bookstack # improve research bonus @@ -118,7 +118,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_advanced_alchemy - name = "Advanced Alchemy" + name = advanced_alchemy icon = GFX_generic_mio_trait_alchemy # improve alchemy bonus, add soft attack to siege machines and eagles @@ -142,10 +142,10 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_arcane_studies - name = "Arcane Studies" + name = arcane_studies icon = GFX_generic_mio_trait_magic_stone - # better "missiles" + # better missiles position = { x=3 y=2 } @@ -164,7 +164,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_weapon_enchantments - name = "Weapon Enchantments" + name = weapon_enchantments icon = GFX_generic_mio_trait_sword_guard # improve infantry equip @@ -185,7 +185,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_advanced_explosives - name = "Advanced Explosives" + name = advanced_explosives icon = GFX_generic_mio_trait_explosion # siege machines and eagles @@ -205,7 +205,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_flammable_liquids - name = "Flammable Liquids" + name = flammable_liquids icon = GFX_generic_mio_trait_liquid # siege machines and eagles @@ -233,7 +233,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_destructive_potential - name = "Destructive Potential" + name = destructive_potential icon = GFX_generic_mio_trait_flamethrower all_parents = { generic_mio_trait_flammable_liquids } @@ -252,7 +252,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_advanced_sorcery - name = "Advanced Sorcery" + name = advanced_sorcery icon = GFX_generic_mio_trait_sorcery all_parents = { generic_mio_trait_destructive_potential } @@ -274,7 +274,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_guild_hierarchy - name = "Guild Hierarchy" + name = guild_hierarchy icon = GFX_generic_mio_trait_wizard_hat # dunno @@ -289,7 +289,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_fund_allocation - name = "Fund Allocation" + name = fund_allocation icon = GFX_generic_mio_trait_money # more funds @@ -307,7 +307,7 @@ generic_alchemists_guild = { trait = { token = generic_mio_trait_book_keeping - name = "Book Keeping" + name = book_keeping icon = GFX_generic_mio_trait_book # more funds diff --git a/common/military_industrial_organization/organizations/generic_ballistics_guild.txt b/common/military_industrial_organization/organizations/generic_ballistics_guild.txt index adcaeb54e..92317156d 100644 --- a/common/military_industrial_organization/organizations/generic_ballistics_guild.txt +++ b/common/military_industrial_organization/organizations/generic_ballistics_guild.txt @@ -1,6 +1,6 @@ generic_ballistics_guild = { icon = GFX_mio_generic_3 - name = "Ballistics Guild" + name = ballistics_guild allowed = { always = no @@ -19,22 +19,22 @@ generic_ballistics_guild = { } tree_header_text = { - text = "Weapons" + text = weapons x = 1 } tree_header_text = { - text = "Methodology" + text = methodology x = 6 } tree_header_text = { - text = "Standardization" + text = standardization x = 9 } initial_trait = { - name = "Ballistics Specialization" + name = ballistics_specialization organization_modifier = { military_industrial_organization_research_bonus = 0.05 @@ -47,7 +47,7 @@ generic_ballistics_guild = { trait = { token = shortbow_specialization - name = "Shortbow Specialization" + name = shortbow_specialization # archers speed and supply consumption and other stuff limit_to_equipment_type = { lotr_equipment_bow } @@ -62,7 +62,7 @@ generic_ballistics_guild = { trait = { token = reinforced_limbs - name = "Reinforced Limbs" + name = reinforced_limbs any_parent = { shortbow_specialization } # Add reliability and other stuff @@ -84,7 +84,7 @@ generic_ballistics_guild = { trait = { token = key_ring_trigger - name = "Key Ring Trigger" + name = key_ring_trigger any_parent = { reinforced_limbs } relative_position_id = shortbow_specialization @@ -104,7 +104,7 @@ generic_ballistics_guild = { trait = { token = agility_training - name = "Agility Training" + name = agility_training any_parent = { key_ring_trigger } relative_position_id = shortbow_specialization @@ -121,7 +121,7 @@ generic_ballistics_guild = { trait = { token = longbow_specialization - name = "Longbow Specialization" + name = longbow_specialization mutually_exclusive = { crossbow_specialization } @@ -138,7 +138,7 @@ generic_ballistics_guild = { trait = { token = silent_draw - name = "Silent Draw" + name = silent_draw any_parent = { longbow_specialization } relative_position_id = longbow_specialization @@ -157,7 +157,7 @@ generic_ballistics_guild = { trait = { token = master_fletching - name = "Master Fletching" + name = master_fletching any_parent = { silent_draw } relative_position_id = longbow_specialization @@ -176,7 +176,7 @@ generic_ballistics_guild = { trait = { token = crossbow_specialization - name = "Crossbow Specialization" + name = crossbow_specialization mutually_exclusive = { longbow_specialization } @@ -196,7 +196,7 @@ generic_ballistics_guild = { trait = { token = eagles_eye_construction - name = "Eagle's Eye Construction" + name = eagles_eye_construction any_parent = { crossbow_specialization } limit_to_equipment_type = { lotr_equipment_crossbow } @@ -216,7 +216,7 @@ generic_ballistics_guild = { trait = { token = plaited_string - name = "Plaited String" + name = plaited_string any_parent = { eagles_eye_construction master_fletching } relative_position_id = crossbow_specialization @@ -233,7 +233,7 @@ generic_ballistics_guild = { trait = { token = ballistic_methodology - name = "Ballistic Methodology" + name = ballistic_methodology # increase research bonus # Add a single-use research bonus to scriptorium @@ -247,7 +247,7 @@ generic_ballistics_guild = { trait = { token = trajectory_estimation - name = "Trajectory Estimation" + name = trajectory_estimation any_parent = { ballistic_methodology } relative_position_id = ballistic_methodology @@ -266,7 +266,7 @@ generic_ballistics_guild = { trait = { token = weight_adjustment - name = "Projectile Weight Adjustment" + name = projectile_weight_adjustment any_parent = { trajectory_estimation } relative_position_id = ballistic_methodology @@ -285,7 +285,7 @@ generic_ballistics_guild = { trait = { token = airborne_projectiles - name = "Airborne Projectiles" + name = airborne_projectiles any_parent = { weight_adjustment plaited_string } relative_position_id = ballistic_methodology @@ -302,7 +302,7 @@ generic_ballistics_guild = { trait = { token = field_ballistics - name = "Field Ballistics" + name = field_ballistics any_parent = { trajectory_estimation eagles_eye_construction } relative_position_id = ballistic_methodology @@ -320,7 +320,7 @@ generic_ballistics_guild = { trait = { token = explosive_arrows_ballista - name = "Explosive Arrows Ballista" + name = explosive_arrows_ballista all_parents = { field_ballistics } relative_position_id = field_ballistics @@ -341,7 +341,7 @@ generic_ballistics_guild = { trait = { token = piercing_arrows_ballista - name = "Armor Piercing Ballista" + name = armor_piercing_ballista all_parents = { field_ballistics } relative_position_id = field_ballistics @@ -362,7 +362,7 @@ generic_ballistics_guild = { trait = { token = production_standardization - name = "Production Standardization" + name = production_standardization # more production speed production_bonus = { @@ -376,7 +376,7 @@ generic_ballistics_guild = { trait = { token = standardize_draw_weight - name = "Standardize Draw-weight" + name = standardize_drawweight any_parent = { production_standardization } any_parent = { trajectory_estimation } @@ -394,7 +394,7 @@ generic_ballistics_guild = { trait = { token = standardize_projectiles - name = "Standardize Projectiles" + name = standardize_projectiles any_parent = { standardize_draw_weight } any_parent = { weight_adjustment } diff --git a/common/military_industrial_organization/organizations/generic_blacksmith_guild.txt b/common/military_industrial_organization/organizations/generic_blacksmith_guild.txt index 3b9247478..fa42a794e 100644 --- a/common/military_industrial_organization/organizations/generic_blacksmith_guild.txt +++ b/common/military_industrial_organization/organizations/generic_blacksmith_guild.txt @@ -1,6 +1,6 @@ generic_blacksmith_guild = { icon = GFX_mio_generic_blacksmith_1 - name = "Blacksmith's Guild" + name = blacksmiths_guild allowed = { always = no @@ -18,22 +18,22 @@ generic_blacksmith_guild = { research_bonus = 0.05 tree_header_text = { - text = "Technique" + text = technique x = 1 } tree_header_text = { - text = "Weapon Design" + text = weapon_design x = 5 } tree_header_text = { - text = "Armor Design" + text = armor_design x = 8 } initial_trait = { - name = "Blacksmithing Specialization" + name = blacksmithing_specialization organization_modifier = { military_industrial_organization_research_bonus = 0.05 @@ -50,7 +50,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_quench_tempering_mastery - name = "Quenching and Tempering Mastery" + name = quenching_and_tempering_mastery icon = GFX_generic_mio_trait_quench position = { x=1 y=0 } @@ -63,7 +63,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_molten_salt_temper - name = "Molten Salt Temper" + name = molten_salt_temper icon = GFX_generic_mio_trait_quench relative_position_id = generic_mio_trait_quench_tempering_mastery @@ -81,7 +81,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_folded_steel - name = "Folded Steel" + name = folded_steel icon = GFX_generic_mio_trait_folded_steel relative_position_id = generic_mio_trait_quench_tempering_mastery @@ -104,7 +104,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_filigree_work - name = "Filigree Work" + name = filigree_work icon = GFX_generic_mio_trait_engraving relative_position_id = generic_mio_trait_quench_tempering_mastery @@ -124,7 +124,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_etching_engraving - name = "Etching and Engraving" + name = etching_and_engraving icon = GFX_generic_mio_trait_engraving relative_position_id = generic_mio_trait_quench_tempering_mastery @@ -145,7 +145,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_weapon_design - name = "Weapon Design" + name = weapon_design icon = GFX_generic_mio_trait_sword position = { x=5 y=0 } @@ -158,7 +158,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_hilts_and_crossguards - name = "Hilts and Crossguards" + name = hilts_and_crossguards icon = GFX_generic_mio_trait_sword_guard relative_position_id = generic_mio_trait_weapon_design @@ -174,7 +174,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_curved_blades - name = "Curved Blades" + name = curved_blades icon = GFX_generic_mio_trait_sword_curved relative_position_id = generic_mio_trait_weapon_design @@ -197,7 +197,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_straight_blades - name = "Straight Blades" + name = straight_blades icon = GFX_generic_mio_trait_sword_2 relative_position_id = generic_mio_trait_weapon_design @@ -219,7 +219,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_multi_part_assembly - name = "Multi-Part Assembly" + name = multipart_assembly icon = GFX_generic_mio_trait_blueprint relative_position_id = generic_mio_trait_quench_tempering_mastery @@ -238,7 +238,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_replacable_handles - name = "Replacable Handles" + name = replacable_handles icon = GFX_generic_mio_trait_icon_defense relative_position_id = generic_mio_trait_multi_part_assembly @@ -254,7 +254,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_amor_design - name = "Armor Design" + name = armor_design icon = GFX_generic_mio_trait_armor position = { x=8 y=0 } @@ -267,7 +267,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_chainmail_manufacturing - name = "Chainmail Manufacturing" + name = chainmail_manufacturing icon = GFX_generic_mio_trait_chainmail relative_position_id = generic_mio_trait_amor_design @@ -283,7 +283,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_leather_padding - name = "Leather Padding" + name = leather_padding icon = GFX_generic_mio_trait_leather relative_position_id = generic_mio_trait_amor_design @@ -304,7 +304,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_trait_quilted_gambeson - name = "Quilted Gambeson" + name = quilted_gambeson icon = GFX_generic_mio_trait_gambeson relative_position_id = generic_mio_trait_amor_design @@ -326,7 +326,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_standardized_equipment - name = "Standardized Equipment" + name = standardized_equipment icon = GFX_generic_mio_trait_equipment relative_position_id = generic_mio_trait_amor_design @@ -346,7 +346,7 @@ generic_blacksmith_guild = { trait = { token = generic_mio_induction_heating - name = "Induction Heating" + name = induction_heating icon = GFX_generic_mio_trait_heating relative_position_id = generic_mio_trait_weapon_design diff --git a/common/military_industrial_organization/organizations/generic_dwarves.txt b/common/military_industrial_organization/organizations/generic_dwarves.txt index 16e8527ef..716a69308 100644 --- a/common/military_industrial_organization/organizations/generic_dwarves.txt +++ b/common/military_industrial_organization/organizations/generic_dwarves.txt @@ -1,5 +1,5 @@ generic_dwarves_blacksmith_guild = { - name = "Telchar Ironsmithing" + name = telchar_ironsmithing icon = GFX_mio_generic_blacksmith_1 allowed = { @@ -10,7 +10,7 @@ generic_dwarves_blacksmith_guild = { } generic_dwarves_miners_guild = { - name = "Mining Guild" + name = mining_guild icon = GFX_mio_generic_ships_1 allowed = { @@ -21,7 +21,7 @@ generic_dwarves_miners_guild = { } generic_dwarves_alchemists_guild = { - name = "Order of Maesters" + name = order_of_maesters icon = GFX_mio_generic_alchemists_3 allowed = { @@ -32,7 +32,7 @@ generic_dwarves_alchemists_guild = { } generic_dwarves_knights_guild = { - name = "House of Garhimli" + name = house_of_garhimli icon = GFX_mio_generic_knights_2 allowed = { diff --git a/common/military_industrial_organization/organizations/generic_farmers_guild.txt b/common/military_industrial_organization/organizations/generic_farmers_guild.txt index 3381b517e..56ce5d7a0 100644 --- a/common/military_industrial_organization/organizations/generic_farmers_guild.txt +++ b/common/military_industrial_organization/organizations/generic_farmers_guild.txt @@ -1,6 +1,6 @@ generic_farmers_guild = { icon = GFX_mio_generic_farming_1 - name = "Farmer's Guild" + name = farmers_guild allowed = { always = no @@ -21,22 +21,22 @@ generic_farmers_guild = { research_bonus = 0.05 tree_header_text = { - text = "Horsekeeping" + text = horsekeeping x = 0 } tree_header_text = { - text = "Livestock" + text = livestock x = 3 } tree_header_text = { - text = "Farming" + text = farming x = 7 } initial_trait = { - name = "Farming Specialization" + name = farming_specialization organization_modifier = { military_industrial_organization_size_up_requirement = -0.15 @@ -54,7 +54,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_equine_industry - name = "Equine Industry" + name = equine_industry icon = GFX_generic_mio_trait_horse position = { x=0 y=0 } @@ -73,7 +73,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_horse_breeds_and_disc - name = "Horsebreeds and Disciplines" + name = horsebreeds_and_disciplines icon = GFX_generic_mio_trait_saddle relative_position_id = generic_mio_trait_equine_industry @@ -97,7 +97,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_horsedrawn_wagons - name = "Horsedrawn Wagons" + name = horsedrawn_wagons icon = GFX_generic_mio_trait_wagon relative_position_id = generic_mio_trait_equine_industry @@ -121,7 +121,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_livestock_management - name = "Livestock Management" + name = livestock_management icon = GFX_generic_mio_trait_agricultre position = { x=3 y=0 } @@ -134,7 +134,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_leather_processing - name = "Leather Processing" + name = leather_processing icon = GFX_generic_mio_trait_leather relative_position_id = generic_mio_trait_livestock_management @@ -160,7 +160,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_enlarged_pastures - name = "Enlarged Pastures" + name = enlarged_pastures icon = GFX_generic_mio_trait_pasture relative_position_id = generic_mio_trait_livestock_management @@ -179,7 +179,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_expanded_produce - name = "Expanded Produce" + name = expanded_produce icon = GFX_generic_mio_trait_produce relative_position_id = generic_mio_trait_livestock_management @@ -197,7 +197,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_horse_drawn_plows - name = "Horse-drawn Plows" + name = horsedrawn_plows icon = GFX_generic_mio_trait_plow relative_position_id = generic_mio_trait_livestock_management @@ -219,7 +219,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_crop_storage - name = "Crop Storage and Preservation" + name = crop_storage_and_preservation icon = GFX_generic_mio_trait_wheat position = { x=6 y=0 } @@ -231,7 +231,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_crop_selection - name = "Crop Selection and Rotation" + name = crop_selection_and_rotation icon = GFX_generic_mio_trait_wheat2 relative_position_id = generic_mio_trait_crop_storage @@ -254,7 +254,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_irrigation_channels - name = "Advanced Irrigation Channels" + name = advanced_irrigation_channels icon = GFX_generic_mio_trait_water relative_position_id = generic_mio_trait_crop_storage @@ -272,7 +272,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_winter_stores - name = "Winter Stores" + name = winter_stores icon = GFX_generic_mio_trait_winter_hut position = { x=6 y=2 } @@ -293,7 +293,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_soil_fertility - name = "Improved Soil Fertility" + name = improved_soil_fertility icon = GFX_generic_mio_trait_fertility relative_position_id = generic_mio_trait_crop_storage @@ -322,7 +322,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_expand_arable_land - name = "Expand Arable Land" + name = expand_arable_land icon = GFX_generic_mio_trait_pasture relative_position_id = generic_mio_trait_crop_storage @@ -346,7 +346,7 @@ generic_farmers_guild = { trait = { token = generic_mio_trait_sustainable_agriculture - name = "Sustainable Agriculture" + name = sustainable_agriculture icon = GFX_generic_mio_trait_agricultre relative_position_id = generic_mio_trait_crop_storage diff --git a/common/military_industrial_organization/organizations/generic_hunters_guild.txt b/common/military_industrial_organization/organizations/generic_hunters_guild.txt index 448036fab..df4df34b9 100644 --- a/common/military_industrial_organization/organizations/generic_hunters_guild.txt +++ b/common/military_industrial_organization/organizations/generic_hunters_guild.txt @@ -1,6 +1,6 @@ generic_hunters_guild = { icon = GFX_mio_generic_hunters_1 - name = "Hunter's Guild" + name = hunters_guild allowed = { always = no @@ -21,27 +21,27 @@ generic_hunters_guild = { research_bonus = 0.05 tree_header_text = { - text = "Hunting" + text = hunting x = 0 } tree_header_text = { - text = "Horsemanship" + text = horsemanship x = 3 } tree_header_text = { - text = "Archery" + text = archery x = 6 } tree_header_text = { - text = "Fishing" + text = fishing x = 8 } initial_trait = { - name = "Hunting Specialization" + name = hunting_specialization equipment_bonus = { fuel_consumption = -0.05 @@ -50,7 +50,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_traps - name = "Pit-traps and Deadfalls" + name = pittraps_and_deadfalls icon = GFX_generic_mio_trait_trap position = { x=0 y=0 } @@ -65,7 +65,7 @@ generic_hunters_guild = { trait = { token = generic_mio_advanced_falconry - name = "Advanced Falconry" + name = advanced_falconry icon = GFX_generic_mio_trait_falcon relative_position_id = generic_mio_trait_traps @@ -84,7 +84,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_hunting_spears - name = "Hunting Spears" + name = hunting_spears icon = GFX_generic_mio_trait_spear position = { x=1 y=0 } @@ -101,7 +101,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_improved_horsemanship - name = "Improved Horsemanship" + name = improved_horsemanship icon = GFX_generic_mio_trait_horse position = { x=3 y=0 } @@ -116,7 +116,7 @@ generic_hunters_guild = { trait = { token = generic_mio_horseback_javelins - name = "Horseback Javelins" + name = horseback_javelins icon = GFX_generic_mio_trait_rider_javelin relative_position_id = generic_mio_trait_hunting_spears @@ -136,7 +136,7 @@ generic_hunters_guild = { trait = { token = generic_mio_mounted_trackers - name = "Mounted Trackers" + name = mounted_trackers icon = GFX_generic_mio_trait_rider_scout relative_position_id = generic_mio_trait_hunting_spears @@ -157,7 +157,7 @@ generic_hunters_guild = { trait = { token = generic_mio_mounted_archers - name = "Mounted Archers" + name = mounted_archers icon = GFX_generic_mio_trait_rider_archer relative_position_id = generic_mio_trait_hunting_spears @@ -179,7 +179,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_hunters_archery - name = "Hunter's Archery" + name = hunters_archery icon = GFX_generic_mio_trait_archer position = { x=6 y=0 } @@ -195,7 +195,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_hunters_shortbow - name = "Shortbow Focus" + name = shortbow_focus icon = GFX_generic_mio_trait_bow relative_position_id = generic_mio_trait_hunters_archery @@ -217,7 +217,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_hunters_crossbow - name = "Crossbow Focus" + name = crossbow_focus icon = GFX_generic_mio_trait_crossbow_2 relative_position_id = generic_mio_trait_hunters_archery @@ -240,7 +240,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_hunters_longbow - name = "Longbow Focus" + name = longbow_focus icon = GFX_generic_mio_trait_bow relative_position_id = generic_mio_trait_hunters_archery @@ -262,7 +262,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_poisoned_arrows - name = "Poisoned Arrowtips" + name = poisoned_arrowtips icon = GFX_generic_mio_trait_shroom relative_position_id = generic_mio_trait_hunters_archery @@ -286,7 +286,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_river_fishing - name = "Riverside Fishing" + name = riverside_fishing icon = GFX_generic_mio_trait_fisher position = { x=8 y=0 } @@ -326,7 +326,7 @@ generic_hunters_guild = { trait = { token = generic_mio_advanced_fishery - name = "Advanced Fisheries" + name = advanced_fisheries icon = GFX_generic_mio_trait_fish relative_position_id = generic_mio_trait_river_fishing @@ -370,7 +370,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_thrill_of_the_hunt - name = "Thrill of the Hunt" + name = thrill_of_the_hunt icon = GFX_generic_mio_trait_ranger #relative_position_id = generic_mio_trait_hunters_archery @@ -387,7 +387,7 @@ generic_hunters_guild = { trait = { token = generic_mio_trait_survival_instincts - name = "Survival Instincts" + name = survival_instincts icon = GFX_generic_mio_trait_knife #relative_position_id = generic_mio_trait_hunters_archery diff --git a/common/military_industrial_organization/organizations/generic_knights_guild.txt b/common/military_industrial_organization/organizations/generic_knights_guild.txt index ee517aec4..7975c01cd 100644 --- a/common/military_industrial_organization/organizations/generic_knights_guild.txt +++ b/common/military_industrial_organization/organizations/generic_knights_guild.txt @@ -1,6 +1,6 @@ generic_knights_guild = { icon = GFX_mio_generic_7 - name = "Knight's Guild" + name = knights_guild allowed = { always = no @@ -23,22 +23,22 @@ generic_knights_guild = { research_bonus = 0.05 tree_header_text = { - text = "Steelworks" + text = steelworks x = 2 } tree_header_text = { - text = "Horsemanship" + text = horsemanship x = 4 } tree_header_text = { - text = "Chivalry" + text = chivalry x = 9 } initial_trait = { - name = "Chivalry Specialization" + name = chivalry_specialization equipment_bonus = { armor_value = 0.05 @@ -52,7 +52,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_steel_sourcing - name = "Steel Sourcing" + name = steel_sourcing icon = GFX_generic_mio_trait_steel # less resources needed? @@ -67,7 +67,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_dilligent_smithing - name = "Dilligent Smithing" + name = dilligent_smithing icon = GFX_generic_mio_trait_quench relative_position_id = generic_mio_trait_steel_sourcing @@ -90,7 +90,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_munition_armor - name = "Munition Armor" + name = munition_armor icon = GFX_generic_mio_trait_munition_armor relative_position_id = generic_mio_trait_steel_sourcing @@ -117,7 +117,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_full_plate_armor - name = "Full-plate Armor" + name = fullplate_armor icon = GFX_generic_mio_trait_armor_2 relative_position_id = generic_mio_trait_steel_sourcing @@ -142,7 +142,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_folded_steel_kriegsmesser - name = "Folded Steel Kriegsmesser" + name = folded_steel_kriegsmesser icon = GFX_generic_mio_trait_kriegsmesser relative_position_id = generic_mio_trait_steel_sourcing @@ -164,7 +164,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_gilded_engravings - name = "Gilded Engravings" + name = gilded_engravings icon = GFX_generic_mio_trait_engraving relative_position_id = generic_mio_trait_steel_sourcing @@ -186,7 +186,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_folded_warhorse_armor - name = "Warhorse Armor" + name = warhorse_armor icon = GFX_generic_mio_trait_rider_javelin relative_position_id = generic_mio_trait_steel_sourcing @@ -207,7 +207,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_ironclad_armor - name = "Ironclad Armor" + name = ironclad_armor icon = GFX_generic_mio_trait_horsearmor relative_position_id = generic_mio_trait_steel_sourcing @@ -228,7 +228,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_destriers - name = "War-bred Destriers" + name = warbred_destriers icon = GFX_generic_mio_trait_rider_bond position = { x=4 y=0 } @@ -252,7 +252,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_specialized_lances - name = "Specialized Lances" + name = specialized_lances icon = GFX_generic_mio_trait_spear relative_position_id = generic_mio_trait_destriers @@ -273,7 +273,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_lance_rests - name = "Lance Rests" + name = lance_rests icon = GFX_generic_mio_trait_handle relative_position_id = generic_mio_trait_destriers @@ -294,7 +294,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_precepts_of_chivalry - name = "Precepts of Chivalry" + name = precepts_of_chivalry icon = GFX_generic_mio_trait_knight position = { x=9 y=0 } @@ -314,7 +314,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_tournament_culture - name = "Tournament Culture" + name = tournament_culture icon = GFX_generic_mio_trait_banner relative_position_id = generic_mio_trait_precepts_of_chivalry @@ -340,7 +340,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_winged_lancers - name = "Winged Lancers" + name = winged_lancers icon = GFX_generic_mio_trait_rider_javelin relative_position_id = generic_mio_trait_precepts_of_chivalry @@ -363,7 +363,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_shock_cavalry - name = "Shock Cavalry" + name = shock_cavalry icon = GFX_generic_mio_armored_cav relative_position_id = generic_mio_trait_precepts_of_chivalry @@ -391,7 +391,7 @@ generic_knights_guild = { trait = { token = generic_mio_trait_men_at_arms - name = "Men at Arms" + name = men_at_arms icon = GFX_generic_mio_man_at_arms relative_position_id = generic_mio_trait_precepts_of_chivalry diff --git a/common/military_industrial_organization/organizations/generic_men.txt b/common/military_industrial_organization/organizations/generic_men.txt index 923143e6d..212944596 100644 --- a/common/military_industrial_organization/organizations/generic_men.txt +++ b/common/military_industrial_organization/organizations/generic_men.txt @@ -1,5 +1,5 @@ generic_men_knights_guild = { - name = "Order of Knights" + name = order_of_knights icon = GFX_mio_generic_4 allowed = { @@ -15,7 +15,7 @@ generic_men_knights_guild = { } generic_men_blacksmith_guild = { - name = "Blacksmith's Guild" + name = blacksmiths_guild icon = GFX_mio_generic_blacksmith_2 allowed = { @@ -31,7 +31,7 @@ generic_men_blacksmith_guild = { } generic_men_shipbuilders_guild = { - name = "Shipbuilder's Guild" + name = shipbuilders_guild icon = GFX_mio_generic_ships_2 allowed = { @@ -47,7 +47,7 @@ generic_men_shipbuilders_guild = { } generic_men_ballistics_guild = { - name = "Ballistics Guild" + name = ballistics_guild icon = GFX_mio_generic_archers_1 allowed = { diff --git a/common/military_industrial_organization/organizations/generic_men_eastern.txt b/common/military_industrial_organization/organizations/generic_men_eastern.txt index 44ffe7b37..e8c82feff 100644 --- a/common/military_industrial_organization/organizations/generic_men_eastern.txt +++ b/common/military_industrial_organization/organizations/generic_men_eastern.txt @@ -1,5 +1,5 @@ generic_eastern_men_stablemasters_guild = { - name = "Stablemaster's Guild" + name = stablemasters_guild icon = GFX_mio_generic_horse_2 allowed = { @@ -10,7 +10,7 @@ generic_eastern_men_stablemasters_guild = { } generic_eastern_men_shipbuilders_guild = { - name = "Shipbuilder's Guild" + name = shipbuilders_guild icon = GFX_mio_generic_ships_2 allowed = { @@ -21,7 +21,7 @@ generic_eastern_men_shipbuilders_guild = { } generic_eastern_men_ballistics_guild = { - name = "Ballistic's Guild" + name = ballistics_guild icon = GFX_mio_generic_archers_1 allowed = { @@ -32,7 +32,7 @@ generic_eastern_men_ballistics_guild = { } generic_eastern_men_blacksmith_guild = { - name = "Blacksmith's Guild" + name = blacksmiths_guild icon = GFX_mio_generic_5 allowed = { diff --git a/common/military_industrial_organization/organizations/generic_men_rangers.txt b/common/military_industrial_organization/organizations/generic_men_rangers.txt index 62f08baa6..1ce7a8254 100644 --- a/common/military_industrial_organization/organizations/generic_men_rangers.txt +++ b/common/military_industrial_organization/organizations/generic_men_rangers.txt @@ -1,5 +1,5 @@ generic_rangers_men_hunters_guild = { - name = "Hunters's Guild" + name = hunterss_guild icon = GFX_mio_generic_hunters_1 allowed = { @@ -10,7 +10,7 @@ generic_rangers_men_hunters_guild = { } generic_rangers_men_blacksmith_guild = { - name = "Blacksmiths's Guild" + name = blacksmithss_guild icon = GFX_mio_generic_knights_2 allowed = { @@ -21,7 +21,7 @@ generic_rangers_men_blacksmith_guild = { } generic_rangers_men_woodcutters_guild = { - name = "Woodcutter's Guild" + name = woodcutters_guild icon = GFX_mio_generic_wood_1 allowed = { @@ -32,7 +32,7 @@ generic_rangers_men_woodcutters_guild = { } generic_rangers_men_ballistics_guild = { - name = "Ballistics Guild" + name = ballistics_guild icon = GFX_mio_generic_3 allowed = { diff --git a/common/military_industrial_organization/organizations/generic_miners_guild.txt b/common/military_industrial_organization/organizations/generic_miners_guild.txt index 0ab7ee4d6..94b3471d8 100644 --- a/common/military_industrial_organization/organizations/generic_miners_guild.txt +++ b/common/military_industrial_organization/organizations/generic_miners_guild.txt @@ -1,6 +1,6 @@ generic_miners_guild = { icon = GFX_mio_generic_5 - name = "Miner's Guild" + name = miners_guild allowed = { always = no @@ -22,22 +22,22 @@ generic_miners_guild = { research_bonus = 0.05 tree_header_text = { - text = "Technique" + text = technique x = 1 } tree_header_text = { - text = "Weapon Design" + text = weapon_design x = 5 } tree_header_text = { - text = "Armor Design" + text = armor_design x = 8 } initial_trait = { - name = "Mining Specialization" + name = mining_specialization organization_modifier = { military_industrial_organization_research_bonus = 0.05 @@ -50,7 +50,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_organized_prospecting - name = "Organized Prospecting" + name = organized_prospecting icon = GFX_generic_mio_trait_icon_entrenchment position = { x=1 y=0 } @@ -64,7 +64,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_surface_deposits - name = "Surface Deposits" + name = surface_deposits icon = GFX_generic_mio_trait_rock relative_position_id = generic_mio_trait_organized_prospecting @@ -91,7 +91,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_mineral_assaying - name = "Mineral Assaying" + name = mineral_assaying icon = GFX_generic_mio_trait_mineral_examine relative_position_id = generic_mio_trait_organized_prospecting @@ -109,7 +109,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_underground_deposits - name = "Underground Deposits" + name = underground_deposits icon = GFX_generic_mio_trait_rock2 relative_position_id = generic_mio_trait_organized_prospecting @@ -136,7 +136,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_timber_support_structures - name = "Timber Support Structures" + name = timber_support_structures icon = GFX_generic_mio_trait_springald relative_position_id = generic_mio_trait_organized_prospecting @@ -155,7 +155,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_shaft_mining - name = "Shaft Mining" + name = shaft_mining icon = GFX_generic_mio_trait_minecart relative_position_id = generic_mio_trait_organized_prospecting @@ -179,7 +179,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_mining_tool_advancements - name = "Mining Tool Advancements" + name = mining_tool_advancements icon = GFX_generic_mio_trait_pickaxe position = { x=4 y=0 } @@ -197,7 +197,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_mattocks_and_adzes - name = "Mattocks and Adzes" + name = mattocks_and_adzes icon = GFX_generic_mio_trait_pickaxe position = { x=0 y=1 } @@ -215,7 +215,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_cranked_winches - name = "Cranked Winches" + name = cranked_winches icon = GFX_generic_mio_trait_machine position = { x=-1 y=2 } @@ -236,7 +236,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_tamping_rods - name = "Tamping Rods" + name = tamping_rods icon = GFX_generic_mio_trait_icon_naval_range position = { x=1 y=3 } @@ -252,7 +252,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_gemstone_prospecting - name = "Gemstone Prospecting " + name = gemstone_prospecting_ icon = GFX_generic_mio_trait_raw_gemstone position = { x=1 y=4 } @@ -270,7 +270,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_metallurgic_processing - name = "Metallurgic Processing" + name = metallurgic_processing icon = GFX_generic_mio_trait_steel position = { x=8 y=0 } @@ -284,7 +284,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_martensite_pretempers - name = "Martensite Pre-tempers" + name = martensite_pretempers icon = GFX_generic_mio_trait_quench relative_position_id = generic_mio_trait_metallurgic_processing @@ -303,7 +303,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_advanced_alloys - name = "Advanced Alloys" + name = advanced_alloys icon = GFX_generic_mio_trait_heating relative_position_id = generic_mio_trait_metallurgic_processing @@ -323,7 +323,7 @@ generic_miners_guild = { trait = { token = generic_mio_trait_mining_drills - name = "Mining Drills" + name = mining_drills icon = GFX_generic_mio_trait_drill relative_position_id = generic_mio_trait_metallurgic_processing diff --git a/common/military_industrial_organization/organizations/generic_orcs.txt b/common/military_industrial_organization/organizations/generic_orcs.txt index d8808b8e7..11d3c6815 100644 --- a/common/military_industrial_organization/organizations/generic_orcs.txt +++ b/common/military_industrial_organization/organizations/generic_orcs.txt @@ -1,5 +1,5 @@ generic_orc_blacksmith_guild = { - name = "Goblin Blacksmith's Guild" + name = goblin_blacksmiths_guild icon = GFX_mio_generic_orc_1 allowed = { @@ -10,7 +10,7 @@ generic_orc_blacksmith_guild = { } generic_orc_hunters_guild = { - name = "Orc Wargriders" + name = orc_wargriders icon = GFX_mio_generic_orc_2 allowed = { @@ -21,7 +21,7 @@ generic_orc_hunters_guild = { } generic_orc_woodcutters_guild = { - name = "Hobgoblin Woodchoppers" + name = hobgoblin_woodchoppers icon = GFX_mio_generic_orc_4 allowed = { @@ -32,7 +32,7 @@ generic_orc_woodcutters_guild = { } generic_orc_shipbuilders_guild = { - name = "Orc Shipbuilders" + name = orc_shipbuilders icon = GFX_mio_generic_orc_3 allowed = { diff --git a/common/military_industrial_organization/organizations/generic_other.txt b/common/military_industrial_organization/organizations/generic_other.txt index 80fb860dd..3e49ad030 100644 --- a/common/military_industrial_organization/organizations/generic_other.txt +++ b/common/military_industrial_organization/organizations/generic_other.txt @@ -1,5 +1,5 @@ generic_other_knights_guild = { - name = "Order of Knights" + name = order_of_knights icon = GFX_mio_generic_knights_2 allowed = { @@ -14,7 +14,7 @@ generic_other_knights_guild = { } generic_other_blacksmith_guild = { - name = "Blacksmiths's Guild" + name = blacksmithss_guild icon = GFX_mio_generic_blacksmith_1 allowed = { @@ -29,7 +29,7 @@ generic_other_blacksmith_guild = { } generic_other_shipbuilders_guild = { - name = "Shipbuilders's Guild" + name = shipbuilderss_guild icon = GFX_mio_generic_ships_1 allowed = { @@ -44,7 +44,7 @@ generic_other_shipbuilders_guild = { } generic_other_ballistics_guild = { - name = "Ballistics Guild" + name = ballistics_guild icon = GFX_mio_generic_3 allowed = { diff --git a/common/military_industrial_organization/organizations/generic_shipbuilders_guild.txt b/common/military_industrial_organization/organizations/generic_shipbuilders_guild.txt index 9c9069628..2e6c4b83d 100644 --- a/common/military_industrial_organization/organizations/generic_shipbuilders_guild.txt +++ b/common/military_industrial_organization/organizations/generic_shipbuilders_guild.txt @@ -1,6 +1,6 @@ generic_shipbuilders_guild = { icon = GFX_mio_generic_ships_2 - name = "Shipbuilder's Guild" + name = shipbuilders_guild allowed = { always = no @@ -22,22 +22,22 @@ generic_shipbuilders_guild = { research_bonus = 0.05 tree_header_text = { - text = "Multi-Deck Ships" + text = multideck_ships x = 1 } tree_header_text = { - text = "Single-Mast Ships" + text = singlemast_ships x = 5 } tree_header_text = { - text = "Construction" + text = construction x = 9 } initial_trait = { - name = "Shipbuilding Specialization" + name = shipbuilding_specialization organization_modifier = { military_industrial_organization_research_bonus = 0.05 @@ -49,7 +49,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_multi_deck_ships - name = "Multi-Deck Ships" + name = multideck_ships icon = GFX_generic_mio_trait_multilevel_ship position = { x=1 y=0 } @@ -64,7 +64,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_masts_and_rigging - name = "Masts and Rigging" + name = masts_and_rigging icon = GFX_generic_mio_trait_multisail_ship all_parents = { generic_mio_trait_multi_deck_ships } @@ -84,7 +84,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_advanced_galleys - name = "Advanced Galleys" + name = advanced_galleys icon = GFX_generic_mio_trait_galley any_parent = { generic_mio_trait_multi_deck_ships generic_mio_trait_oar_powered_ships } @@ -103,7 +103,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_corvus - name = "Corvus" + name = corvus icon = GFX_generic_mio_trait_corvus relative_position_id = generic_mio_trait_multi_deck_ships @@ -122,7 +122,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_advanced_superstructure - name = "Advanced Superstructure" + name = advanced_superstructure icon = GFX_generic_mio_trait_springald relative_position_id = generic_mio_trait_multi_deck_ships @@ -144,7 +144,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_expanded_cargo_capacity - name = "Expanded Cargo Capacity" + name = expanded_cargo_capacity icon = GFX_generic_mio_trait_icon_weight all_parents = { generic_mio_trait_advanced_superstructure } @@ -160,7 +160,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_oar_powered_ships - name = "Oar-Powered Ships" + name = oarpowered_ships icon = GFX_generic_mio_trait_oars position = { x=3 y=0 } @@ -175,7 +175,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_advanced_longships - name = "Advanced Longships" + name = advanced_longships icon = GFX_generic_mio_trait_longship any_parent = { generic_mio_trait_oar_powered_ships generic_mio_trait_single_mast_ships } @@ -195,7 +195,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_low_freeboard - name = "Low Freeboard" + name = low_freeboard icon = GFX_generic_mio_trait_ship_hull all_parents = { generic_mio_trait_advanced_longships } @@ -213,7 +213,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_advanced_boarding_techniques - name = "Advanced Boarding Technqiues" + name = advanced_boarding_technqiues icon = GFX_generic_mio_trait_anchor any_parent = { generic_mio_trait_low_freeboard generic_mio_trait_corvus } @@ -232,7 +232,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_single_mast_ships - name = "Single-Mast Ships" + name = singlemast_ships icon = GFX_generic_mio_trait_mast limit_to_equipment_type = { lotr_equipment_longship lotr_equipment_galley } @@ -247,7 +247,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_dhow_construction - name = "Dhow Construction" + name = dhow_construction icon = GFX_generic_mio_trait_dhow relative_position_id = generic_mio_trait_single_mast_ships @@ -266,7 +266,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_lateen_sails - name = "Lateen Sails" + name = lateen_sails icon = GFX_generic_mio_trait_cloth_roll all_parents = { generic_mio_trait_dhow_construction } @@ -285,7 +285,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_lashings_and_dowels - name = "Lashings and Dowels" + name = lashings_and_dowels icon = GFX_generic_mio_trait_cloth_roll all_parents = { generic_mio_trait_lateen_sails } @@ -303,7 +303,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_monoxylon_dhows - name = "Monoxylon Dhows" + name = monoxylon_dhows icon = GFX_generic_mio_trait_dhow all_parents = { generic_mio_trait_lashings_and_dowels generic_mio_trait_streamlined_hull_design } @@ -322,7 +322,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_streamlined_hull_design - name = "Streamlined Hull Design" + name = streamlined_hull_design icon = GFX_generic_mio_trait_wood_joint relative_position_id = generic_mio_trait_single_mast_ships @@ -339,7 +339,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_drydock_construction - name = "Drydock Construction" + name = drydock_construction icon = GFX_generic_mio_trait_drydock position = { x=9 y=0 } @@ -352,7 +352,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_clinker_and_caravel_construction - name = "Caravel Construction" + name = caravel_construction icon = GFX_generic_mio_trait_blueprint all_parents = { generic_mio_trait_drydock_construction } @@ -369,7 +369,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_caulking_techniques - name = "Caulking Techniques" + name = caulking_techniques icon = GFX_generic_mio_trait_liquid all_parents = { generic_mio_trait_clinker_and_caravel_construction } @@ -390,7 +390,7 @@ generic_shipbuilders_guild = { trait = { token = generic_mio_trait_hull_sheathing - name = "Hull Sheathing" + name = hull_sheathing icon = GFX_generic_mio_trait_icon_armor_value all_parents = { generic_mio_trait_caulking_techniques } diff --git a/common/military_industrial_organization/organizations/generic_stablemasters_guild.txt b/common/military_industrial_organization/organizations/generic_stablemasters_guild.txt index 5f9eff93a..fe56d6a88 100644 --- a/common/military_industrial_organization/organizations/generic_stablemasters_guild.txt +++ b/common/military_industrial_organization/organizations/generic_stablemasters_guild.txt @@ -1,6 +1,6 @@ generic_stablemasters_guild = { icon = GFX_mio_generic_horse_1 - name = "Stablemaster's Guild" + name = stablemasters_guild allowed = { always = no @@ -19,22 +19,22 @@ generic_stablemasters_guild = { research_bonus = 0.05 tree_header_text = { - text = "Technique" + text = technique x = 1 } tree_header_text = { - text = "Weapon Design" + text = weapon_design x = 5 } tree_header_text = { - text = "Armor Design" + text = armor_design x = 8 } initial_trait = { - name = "Equestrian Specialization" + name = equestrian_specialization equipment_bonus = { armor_value = -0.05 @@ -48,7 +48,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_warhorse_conditioning - name = "Warhorse Conditioning" + name = warhorse_conditioning icon = GFX_generic_mio_trait_horse position = { x=1 y=0 } @@ -63,7 +63,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_warmblood_breeds - name = "Warmblood Breeds" + name = warmblood_breeds icon = GFX_generic_mio_trait_heart relative_position_id = generic_mio_trait_warhorse_conditioning @@ -82,7 +82,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_noise_desensitization - name = "Noise Desensitization" + name = noise_desensitization icon = GFX_generic_mio_trait_horse_quiet relative_position_id = generic_mio_trait_warhorse_conditioning @@ -101,7 +101,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_stable_destriers - name = "Destriers" + name = destriers icon = GFX_generic_mio_trait_rider_javelin relative_position_id = generic_mio_trait_warhorse_conditioning @@ -129,7 +129,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_stable_courser - name = "Coursers" + name = coursers icon = GFX_generic_mio_trait_rider_scout relative_position_id = generic_mio_trait_warhorse_conditioning @@ -154,7 +154,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_stable_rouncey - name = "Rounceys" + name = rounceys icon = GFX_generic_mio_trait_horse relative_position_id = generic_mio_trait_warhorse_conditioning @@ -181,7 +181,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_jockey_training - name = "Jockey Training" + name = jockey_training icon = GFX_generic_mio_trait_rider_archer position = { x=4 y=0 } @@ -195,7 +195,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_riders_bond - name = "Rider's Bond" + name = riders_bond icon = GFX_generic_mio_trait_rider_bond all_parents = { generic_mio_trait_jockey_training } @@ -211,7 +211,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_airborne_saddles - name = "Airborne Saddles" + name = airborne_saddles icon = GFX_generic_mio_trait_saddle relative_position_id = generic_mio_trait_jockey_training @@ -230,7 +230,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_specialized_riders - name = "Specialized Riders" + name = specialized_riders icon = GFX_generic_mio_trait_icon_air_agility all_parents = { generic_mio_trait_riders_bond } @@ -246,7 +246,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_advanced_eagle_domestication - name = "Advanced Eagle Domestication" + name = advanced_eagle_domestication icon = GFX_generic_mio_trait_eagle position = { x=8 y=0 } @@ -261,7 +261,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_role_specialization - name = "Role Specialization" + name = role_specialization icon = GFX_generic_mio_trait_icon_unique relative_position_id = generic_mio_trait_advanced_eagle_domestication @@ -279,7 +279,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_carrying_capacity - name = "Carrying Capacity" + name = carrying_capacity icon = GFX_generic_mio_trait_icon_weight relative_position_id = generic_mio_trait_advanced_eagle_domestication @@ -299,7 +299,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_ferocity - name = "Ferocity" + name = ferocity icon = GFX_generic_mio_trait_icon_max_strength relative_position_id = generic_mio_trait_advanced_eagle_domestication @@ -319,7 +319,7 @@ generic_stablemasters_guild = { trait = { token = generic_mio_trait_agility - name = "Agility" + name = agility icon = GFX_generic_mio_trait_feather relative_position_id = generic_mio_trait_advanced_eagle_domestication diff --git a/common/military_industrial_organization/organizations/generic_woodcutters_guild.txt b/common/military_industrial_organization/organizations/generic_woodcutters_guild.txt index 26d2aefa5..5d82a703a 100644 --- a/common/military_industrial_organization/organizations/generic_woodcutters_guild.txt +++ b/common/military_industrial_organization/organizations/generic_woodcutters_guild.txt @@ -1,6 +1,6 @@ generic_woodcutters_guild = { icon = GFX_mio_generic_wood_1 - name = "Woodcutter's Guild" + name = woodcutters_guild allowed = { always = no @@ -22,27 +22,27 @@ generic_woodcutters_guild = { research_bonus = 0.05 tree_header_text = { - text = "Trebuchets" + text = trebuchets x = 0 } tree_header_text = { - text = "Techniques" + text = techniques x = 3 } tree_header_text = { - text = "Timber Processing" + text = timber_processing x = 6 } tree_header_text = { - text = "Armor Design" + text = armor_design x = 8 } initial_trait = { - name = "Woodworking Specialization" + name = woodworking_specialization organization_modifier = { military_industrial_organization_research_bonus = 0.05 @@ -56,7 +56,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_advanced_woodworking - name = "Advanced Timber-works" + name = advanced_timberworks icon = GFX_generic_mio_trait_saw position = { x=3 y=0 } @@ -69,7 +69,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_hinged_mechanisms - name = "Hinged Mechanisms" + name = hinged_mechanisms icon = GFX_generic_mio_trait_hinge relative_position_id = generic_mio_advanced_woodworking @@ -86,7 +86,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_counterweight_mechanisms - name = "Counterweight Mechanisms" + name = counterweight_mechanisms icon = GFX_generic_mio_trait_counterweight relative_position_id = generic_mio_advanced_woodworking @@ -104,7 +104,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_siege_trebuchet_sites - name = "Siege Trebuchet Construction Sites" + name = siege_trebuchet_construction_sites icon = GFX_generic_mio_trait_counterweight relative_position_id = generic_mio_advanced_woodworking @@ -126,7 +126,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_portable_springalds - name = "Portable Springalds" + name = portable_springalds icon = GFX_generic_mio_trait_springald relative_position_id = generic_mio_advanced_woodworking @@ -145,7 +145,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_torsion_powered_engines - name = "Torsion-powered Engines" + name = torsionpowered_engines icon = GFX_generic_mio_trait_machine relative_position_id = generic_mio_advanced_woodworking @@ -161,7 +161,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_mortise_and_tenon_joints - name = "Mortise and Tenon Joints" + name = mortise_and_tenon_joints icon = GFX_generic_mio_trait_wood_joint relative_position_id = generic_mio_advanced_woodworking @@ -177,7 +177,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_oiling_sealing_charring - name = "Oiling, Sealing, Charring" + name = oiling_sealing_charring icon = GFX_generic_mio_trait_quench relative_position_id = generic_mio_advanced_woodworking @@ -193,7 +193,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_compound_joinery - name = "Compound Joinery" + name = compound_joinery icon = GFX_generic_mio_trait_carpentry relative_position_id = generic_mio_advanced_woodworking @@ -210,7 +210,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_large_scale_construction - name = "Large-scale Construction" + name = largescale_construction icon = GFX_generic_mio_trait_crane relative_position_id = generic_mio_advanced_woodworking @@ -227,7 +227,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_advanced_drydocks - name = "Advanced Drydocks" + name = advanced_drydocks icon = GFX_generic_mio_trait_drydock relative_position_id = generic_mio_advanced_woodworking @@ -245,7 +245,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_efficient_lumber_harvesting - name = "Efficient Lumber Harvesting" + name = efficient_lumber_harvesting icon = GFX_generic_mio_trait_wood position = { x=6 y=0 } @@ -266,7 +266,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_advanced_sawmills - name = "Advanced Sawmills" + name = advanced_sawmills icon = GFX_generic_mio_trait_mechanism all_parents = { generic_mio_efficient_lumber_harvesting } @@ -281,7 +281,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_streamlined_cutting - name = "Streamlined Cutting Process" + name = streamlined_cutting_process icon = GFX_generic_mio_trait_mechanism all_parents = { generic_mio_advanced_sawmills } @@ -296,7 +296,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_small_arms_timber_processing - name = "Small Arms Timber Processing" + name = small_arms_timber_processing icon = GFX_generic_mio_trait_wood position = { x=8 y=0 } @@ -310,7 +310,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_multitalent_carpenters - name = "Multi-talent Carpenters" + name = multitalent_carpenters icon = GFX_generic_mio_trait_saw relative_position_id = generic_mio_small_arms_timber_processing @@ -328,7 +328,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_dedicated_weapon_assemblers - name = "Dedicated Arms-assemblers" + name = dedicated_armsassemblers icon = GFX_generic_mio_trait_sword relative_position_id = generic_mio_small_arms_timber_processing @@ -348,7 +348,7 @@ generic_woodcutters_guild = { trait = { token = generic_mio_standardized_shafts - name = "Standardized Shafts and Handles" + name = standardized_shafts_and_handles icon = GFX_generic_mio_trait_handle relative_position_id = generic_mio_small_arms_timber_processing diff --git a/localisation/english/0_lotr_core/lotr_mios_l_english.yml b/localisation/english/0_lotr_core/lotr_mios_l_english.yml index 77f6991a8..443dae007 100644 --- a/localisation/english/0_lotr_core/lotr_mios_l_english.yml +++ b/localisation/english/0_lotr_core/lotr_mios_l_english.yml @@ -24,4 +24,282 @@ mio_policy_land_cutting_corners:0 "Cutting Corners" mio_policy_navy_raiding_fleet:0 "Raiding Fleet Focus" mio_policy_coastal_battle:0 "Coastal Fleet Focus" mio_policy_bare_minimum:0 "Bare Minimum Seaworthiness" -mio_policy_navy_great_seas_fleet:0 "Great Seas Fleet Focus" \ No newline at end of file +mio_policy_navy_great_seas_fleet:0 "Great Seas Fleet Focus" + +alchemists_guild:0 "Alchemist's Guild" +scripture:0 "Scripture" +alchemy:0 "Alchemy" +guild_structure:0 "Guild Structure" +alchemy_specialization:0 "Alchemy Specialization" +scripture_archiving:0 "Scripture Archiving" +historical_presevation:0 "Historical Presevation" +scripture_copying:0 "Scripture Copying" +knowledge_collections:0 "Knowledge Collections" +advanced_alchemy:0 "Advanced Alchemy" +arcane_studies:0 "Arcane Studies" +missiles:0 "missiles" +weapon_enchantments:0 "Weapon Enchantments" +advanced_explosives:0 "Advanced Explosives" +flammable_liquids:0 "Flammable Liquids" +destructive_potential:0 "Destructive Potential" +advanced_sorcery:0 "Advanced Sorcery" +guild_hierarchy:0 "Guild Hierarchy" +fund_allocation:0 "Fund Allocation" +book_keeping:0 "Book Keeping" +ballistics_guild:0 "Ballistics Guild" +weapons:0 "Weapons" +methodology:0 "Methodology" +standardization:0 "Standardization" +ballistics_specialization:0 "Ballistics Specialization" +shortbow_specialization:0 "Shortbow Specialization" +reinforced_limbs:0 "Reinforced Limbs" +key_ring_trigger:0 "Key Ring Trigger" +agility_training:0 "Agility Training" +longbow_specialization:0 "Longbow Specialization" +silent_draw:0 "Silent Draw" +master_fletching:0 "Master Fletching" +crossbow_specialization:0 "Crossbow Specialization" +eagles_eye_construction:0 "Eagle's Eye Construction" +plaited_string:0 "Plaited String" +ballistic_methodology:0 "Ballistic Methodology" +trajectory_estimation:0 "Trajectory Estimation" +projectile_weight_adjustment:0 "Projectile Weight Adjustment" +airborne_projectiles:0 "Airborne Projectiles" +field_ballistics:0 "Field Ballistics" +explosive_arrows_ballista:0 "Explosive Arrows Ballista" +armor_piercing_ballista:0 "Armor Piercing Ballista" +production_standardization:0 "Production Standardization" +standardize_drawweight:0 "Standardize Draw-weight" +standardize_projectiles:0 "Standardize Projectiles" +blacksmiths_guild:0 "Blacksmith's Guild" +technique:0 "Technique" +weapon_design:0 "Weapon Design" +armor_design:0 "Armor Design" +blacksmithing_specialization:0 "Blacksmithing Specialization" +quenching_and_tempering_mastery:0 "Quenching and Tempering Mastery" +molten_salt_temper:0 "Molten Salt Temper" +folded_steel:0 "Folded Steel" +filigree_work:0 "Filigree Work" +etching_and_engraving:0 "Etching and Engraving" +weapon_design:0 "Weapon Design" +hilts_and_crossguards:0 "Hilts and Crossguards" +curved_blades:0 "Curved Blades" +straight_blades:0 "Straight Blades" +multipart_assembly:0 "Multi-Part Assembly" +replacable_handles:0 "Replacable Handles" +armor_design:0 "Armor Design" +chainmail_manufacturing:0 "Chainmail Manufacturing" +leather_padding:0 "Leather Padding" +quilted_gambeson:0 "Quilted Gambeson" +standardized_equipment:0 "Standardized Equipment" +induction_heating:0 "Induction Heating" +telchar_ironsmithing:0 "Telchar Ironsmithing" +mining_guild:0 "Mining Guild" +order_of_maesters:0 "Order of Maesters" +house_of_garhimli:0 "House of Garhimli" +farmers_guild:0 "Farmer's Guild" +horsekeeping:0 "Horsekeeping" +livestock:0 "Livestock" +farming:0 "Farming" +farming_specialization:0 "Farming Specialization" +equine_industry:0 "Equine Industry" +horsebreeds_and_disciplines:0 "Horsebreeds and Disciplines" +horsedrawn_wagons:0 "Horsedrawn Wagons" +livestock_management:0 "Livestock Management" +leather_processing:0 "Leather Processing" +enlarged_pastures:0 "Enlarged Pastures" +expanded_produce:0 "Expanded Produce" +horsedrawn_plows:0 "Horse-drawn Plows" +crop_storage_and_preservation:0 "Crop Storage and Preservation" +crop_selection_and_rotation:0 "Crop Selection and Rotation" +advanced_irrigation_channels:0 "Advanced Irrigation Channels" +winter_stores:0 "Winter Stores" +improved_soil_fertility:0 "Improved Soil Fertility" +expand_arable_land:0 "Expand Arable Land" +sustainable_agriculture:0 "Sustainable Agriculture" +hunters_guild:0 "Hunter's Guild" +hunting:0 "Hunting" +horsemanship:0 "Horsemanship" +archery:0 "Archery" +fishing:0 "Fishing" +hunting_specialization:0 "Hunting Specialization" +pittraps_and_deadfalls:0 "Pit-traps and Deadfalls" +advanced_falconry:0 "Advanced Falconry" +hunting_spears:0 "Hunting Spears" +improved_horsemanship:0 "Improved Horsemanship" +horseback_javelins:0 "Horseback Javelins" +mounted_trackers:0 "Mounted Trackers" +mounted_archers:0 "Mounted Archers" +hunters_archery:0 "Hunter's Archery" +shortbow_focus:0 "Shortbow Focus" +crossbow_focus:0 "Crossbow Focus" +longbow_focus:0 "Longbow Focus" +poisoned_arrowtips:0 "Poisoned Arrowtips" +riverside_fishing:0 "Riverside Fishing" +advanced_fisheries:0 "Advanced Fisheries" +thrill_of_the_hunt:0 "Thrill of the Hunt" +survival_instincts:0 "Survival Instincts" +knights_guild:0 "Knight's Guild" +steelworks:0 "Steelworks" +horsemanship:0 "Horsemanship" +chivalry:0 "Chivalry" +chivalry_specialization:0 "Chivalry Specialization" +steel_sourcing:0 "Steel Sourcing" +dilligent_smithing:0 "Dilligent Smithing" +munition_armor:0 "Munition Armor" +fullplate_armor:0 "Full-plate Armor" +folded_steel_kriegsmesser:0 "Folded Steel Kriegsmesser" +gilded_engravings:0 "Gilded Engravings" +warhorse_armor:0 "Warhorse Armor" +ironclad_armor:0 "Ironclad Armor" +warbred_destriers:0 "War-bred Destriers" +specialized_lances:0 "Specialized Lances" +lance_rests:0 "Lance Rests" +precepts_of_chivalry:0 "Precepts of Chivalry" +tournament_culture:0 "Tournament Culture" +winged_lancers:0 "Winged Lancers" +shock_cavalry:0 "Shock Cavalry" +men_at_arms:0 "Men at Arms" +order_of_knights:0 "Order of Knights" +blacksmiths_guild:0 "Blacksmith's Guild" +shipbuilders_guild:0 "Shipbuilder's Guild" +ballistics_guild:0 "Ballistics Guild" +stablemasters_guild:0 "Stablemaster's Guild" +shipbuilders_guild:0 "Shipbuilder's Guild" +ballistics_guild:0 "Ballistic's Guild" +blacksmiths_guild:0 "Blacksmith's Guild" +hunterss_guild:0 "Hunters's Guild" +blacksmithss_guild:0 "Blacksmiths's Guild" +woodcutters_guild:0 "Woodcutter's Guild" +ballistics_guild:0 "Ballistics Guild" +miners_guild:0 "Miner's Guild" +technique:0 "Technique" +weapon_design:0 "Weapon Design" +armor_design:0 "Armor Design" +mining_specialization:0 "Mining Specialization" +organized_prospecting:0 "Organized Prospecting" +surface_deposits:0 "Surface Deposits" +mineral_assaying:0 "Mineral Assaying" +underground_deposits:0 "Underground Deposits" +timber_support_structures:0 "Timber Support Structures" +shaft_mining:0 "Shaft Mining" +mining_tool_advancements:0 "Mining Tool Advancements" +mattocks_and_adzes:0 "Mattocks and Adzes" +cranked_winches:0 "Cranked Winches" +tamping_rods:0 "Tamping Rods" +gemstone_prospecting_:0 "Gemstone Prospecting " +metallurgic_processing:0 "Metallurgic Processing" +martensite_pretempers:0 "Martensite Pre-tempers" +advanced_alloys:0 "Advanced Alloys" +mining_drills:0 "Mining Drills" +goblin_blacksmiths_guild:0 "Goblin Blacksmith's Guild" +orc_wargriders:0 "Orc Wargriders" +hobgoblin_woodchoppers:0 "Hobgoblin Woodchoppers" +orc_shipbuilders:0 "Orc Shipbuilders" +order_of_knights:0 "Order of Knights" +blacksmithss_guild:0 "Blacksmiths's Guild" +shipbuilderss_guild:0 "Shipbuilders's Guild" +ballistics_guild:0 "Ballistics Guild" +shipbuilders_guild:0 "Shipbuilder's Guild" +multideck_ships:0 "Multi-Deck Ships" +singlemast_ships:0 "Single-Mast Ships" +construction:0 "Construction" +shipbuilding_specialization:0 "Shipbuilding Specialization" +multideck_ships:0 "Multi-Deck Ships" +masts_and_rigging:0 "Masts and Rigging" +advanced_galleys:0 "Advanced Galleys" +corvus:0 "Corvus" +advanced_superstructure:0 "Advanced Superstructure" +expanded_cargo_capacity:0 "Expanded Cargo Capacity" +oarpowered_ships:0 "Oar-Powered Ships" +advanced_longships:0 "Advanced Longships" +low_freeboard:0 "Low Freeboard" +advanced_boarding_technqiues:0 "Advanced Boarding Technqiues" +singlemast_ships:0 "Single-Mast Ships" +dhow_construction:0 "Dhow Construction" +lateen_sails:0 "Lateen Sails" +lashings_and_dowels:0 "Lashings and Dowels" +monoxylon_dhows:0 "Monoxylon Dhows" +streamlined_hull_design:0 "Streamlined Hull Design" +drydock_construction:0 "Drydock Construction" +caravel_construction:0 "Caravel Construction" +caulking_techniques:0 "Caulking Techniques" +hull_sheathing:0 "Hull Sheathing" +stablemasters_guild:0 "Stablemaster's Guild" +technique:0 "Technique" +weapon_design:0 "Weapon Design" +armor_design:0 "Armor Design" +equestrian_specialization:0 "Equestrian Specialization" +warhorse_conditioning:0 "Warhorse Conditioning" +warmblood_breeds:0 "Warmblood Breeds" +noise_desensitization:0 "Noise Desensitization" +destriers:0 "Destriers" +coursers:0 "Coursers" +rounceys:0 "Rounceys" +jockey_training:0 "Jockey Training" +riders_bond:0 "Rider's Bond" +airborne_saddles:0 "Airborne Saddles" +specialized_riders:0 "Specialized Riders" +advanced_eagle_domestication:0 "Advanced Eagle Domestication" +role_specialization:0 "Role Specialization" +carrying_capacity:0 "Carrying Capacity" +ferocity:0 "Ferocity" +agility:0 "Agility" +woodcutters_guild:0 "Woodcutter's Guild" +trebuchets:0 "Trebuchets" +techniques:0 "Techniques" +timber_processing:0 "Timber Processing" +armor_design:0 "Armor Design" +woodworking_specialization:0 "Woodworking Specialization" +advanced_timberworks:0 "Advanced Timber-works" +hinged_mechanisms:0 "Hinged Mechanisms" +counterweight_mechanisms:0 "Counterweight Mechanisms" +siege_trebuchet_construction_sites:0 "Siege Trebuchet Construction Sites" +portable_springalds:0 "Portable Springalds" +torsionpowered_engines:0 "Torsion-powered Engines" +mortise_and_tenon_joints:0 "Mortise and Tenon Joints" +oiling_sealing_charring:0 "Oiling, Sealing, Charring" +compound_joinery:0 "Compound Joinery" +largescale_construction:0 "Large-scale Construction" +advanced_drydocks:0 "Advanced Drydocks" +efficient_lumber_harvesting:0 "Efficient Lumber Harvesting" +advanced_sawmills:0 "Advanced Sawmills" +streamlined_cutting_process:0 "Streamlined Cutting Process" +small_arms_timber_processing:0 "Small Arms Timber Processing" +multitalent_carpenters:0 "Multi-talent Carpenters" +dedicated_armsassemblers:0 "Dedicated Arms-assemblers" +standardized_shafts_and_handles:0 "Standardized Shafts and Handles" +white_tower_steelshop:0 "White Tower Steelshop" +order_of_the_white_rose:0 "Order of the White Rose" +citadel_lorekeepers:0 "Citadel Lorekeepers" +shipwrights_of_numenor:0 "Shipwrights of Númenor" +ostagar_luberjacks:0 "Ostagar Luberjacks" +orthanc_elixirs_guild:0 "Orthanc Elixirs Guild" +iron_ballistae_engineers:0 "Iron Ballistae Engineers" +white_hand_smithing_guild:0 "White Hand Smithing Guild" +isengard_timberwrights_guild:0 "Isengard Timberwrights Guild" +shipwrights_of_the_grey_havens:0 "Shipwrights of the Grey Havens" +sindar_bowcrafters:0 "Sindar Bowcrafters" +lune_metalworkers:0 "Lune Metalworkers" +ossiriand_woodworkers:0 "Ossiriand Woodworkers" +nandor_hunters:0 "Nandor Hunters" +sindar_bowcrafters:0 "Sindar Bowcrafters" +noldor_steelwielders:0 "Ñoldor Steelwielders" +peredhil_woodgatherers:0 "Peredhil Woodgatherers" +lorekeepers_guild:0 "Lorekeeper's Guild" +mirkwood_pathstalkers:0 "Mirkwood Pathstalkers" +woodelf_ballistics:0 "Wood-elf Ballistics" +kings_halls_flamekeepers:0 "King's Halls Flamekeepers" +eastbight_lumberjacks:0 "Eastbight Lumberjacks" +bruinen_bowcrafters:0 "Bruinen Bowcrafters" +throllshaws_forgekeepers:0 "Throllshaws Forgekeepers" +bruinen_roamers:0 "Bruinen Roamers" +scholars_guildhall:0 "Scholar's Guild-Hall" +eorling_ridewardens:0 "Eorling Ridewardens" +riddermark_farmsteaders:0 "Riddermark Farmsteaders" +dawnward_cavaliers:0 "Dawnward Cavaliers" +helms_forge_guild:0 "Helm's Forge Guild" +eastfarthing_pastures:0 "Eastfarthing Pastures" +greenholm_ponykeepers:0 "Greenholm Pony-Keepers" +bridgefield_carpenters:0 "Bridgefield Carpenters" +tuckborough_smithing:0 "Tuckborough Smithing" \ No newline at end of file diff --git a/localisation/english/replace/lotr_technologies_l_english.yml b/localisation/english/replace/lotr_technologies_l_english.yml index fe057948e..1ebc28828 100644 --- a/localisation/english/replace/lotr_technologies_l_english.yml +++ b/localisation/english/replace/lotr_technologies_l_english.yml @@ -1982,9 +1982,9 @@ lotr_equipment_convoy:0 "Trading Vessel" lotr_equipment_longship:0 "Longship" lotr_equipment_galley:0 "Galley" lotr_equipment_sailing_ship:0 "Caravel" -lotr_equipment_ship_of_the_line:0 "Ship of the Line" +lotr_equipment_ship_of_the_line:0 "Carrack" lotr_equipment_multideck_ships:0 "Multideck Ships" -lotr_equipment_sail_ships:0 "All Caravel" +lotr_equipment_sail_ships:0 "Caravels and Carracks" lotr_equipment_all_ships:0 "All Ships" lotr_equipment_all_siege_artillery:0 "Catapults and Trebuchets" diff --git a/patch_notes.txt b/patch_notes.txt index b26e0ec7d..49b5d14a1 100644 --- a/patch_notes.txt +++ b/patch_notes.txt @@ -17,4 +17,5 @@ General: - Renamed achievement Necromancer to Somehow He Has Returned - Cavalry and Eagle/Nazgul designers now have the correct title shown - World tension increase when Sauron is unleashed 25 -> 50 -- Added 13 new achievements \ No newline at end of file +- Added 13 new achievements +- Extracted MIO-related, hard-coded localizations \ No newline at end of file diff --git a/tools/misc/pull_locs_from_txt.py b/tools/misc/pull_locs_from_txt.py new file mode 100644 index 000000000..611dbeb82 --- /dev/null +++ b/tools/misc/pull_locs_from_txt.py @@ -0,0 +1,34 @@ +import os +import re + +def process_string(s): + # Convert to lowercase and replace spaces with underscores + processed = re.sub(r'\W+', '', s.lower().replace(' ', '_')) + return processed + +def find_and_process_strings(directory): + # Regex to find strings enclosed in quotation marks + pattern = r'"(.*?)"' + + for root, dirs, files in os.walk(directory): + for file in files: + if file.endswith(".txt"): + file_path = os.path.join(root, file) + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + + # Find all matches and process them + matches = re.findall(pattern, content) + for match in matches: + processed = process_string(match) + print(f'{processed}:0 "{match}"') + # Replace the original string in quotation marks with the processed variant + content = content.replace(f'"{match}"', processed) + + # Write the modified content back to the file + with open(file_path, 'w', encoding='utf-8') as f: + f.write(content) + +# Replace 'your_directory_path' with the path to the directory you want to process +directory_path = r'C:\Users\kahl\Documents\Paradox Interactive\Hearts of Iron IV\mod\lotr\common\military_industrial_organization' +find_and_process_strings(directory_path) \ No newline at end of file From 878b45927791f9749e249a57daf733d30a610bec Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Thu, 28 Mar 2024 11:41:06 +0100 Subject: [PATCH 35/42] Changes based on Helliaca feedback --- common/achievements/achievements.txt | 16 +++++++++++----- common/decisions/_debug_decisions.txt | 7 +++++-- common/on_actions/00_on_actions.txt | 4 ++-- localisation/english/achievements_l_english.yml | 4 ++-- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index f3156655a..606ba242d 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -113,9 +113,11 @@ DAM_god_damnroth_test = { } happened = { + set_temp_variable = { temp_gondor_factories = GON.num_of_factories } + multiply_temp_variable = { temp_gondor_factories = 2 } custom_trigger_tooltip = { tooltip = achievement_tooltip_get_twice_as_many_factories_as_gondor - num_of_factories > GON.num_of_factories + num_of_factories > temp_gondor_factories } } } @@ -173,7 +175,11 @@ MOA_side_by_side_with_an_elf_test = { happened = { tag = MOA - has_character = MOA_gimli + MOA = { + MOA_gimli = { + is_unit_leader = yes + } + } OR = { is_in_faction_with = RIV is_in_faction_with = LTH @@ -189,7 +195,7 @@ ISE_my_brother_my_captian_my_king_test = { } happened = { - has_country_flag = lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag + has_global_flag = lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag } } @@ -217,7 +223,7 @@ ISE_a_wizard_is_never_late_test = { is_puppet_of = RHU } } - has_country_flag = ISE_won_war_against_MOR_achievement_flag + has_country_flag = ISE_won_war_against_MOR_flag } } @@ -231,7 +237,7 @@ GON_one_does_simply_walk_into_mordor_testt = { happened = { always = no date < 3021.1.1 - has_country_flag = GON_won_war_against_MOR_achievement_flag + has_country_flag = GON_won_war_against_MOR_flag } } diff --git a/common/decisions/_debug_decisions.txt b/common/decisions/_debug_decisions.txt index 20721e8c5..844b4afad 100644 --- a/common/decisions/_debug_decisions.txt +++ b/common/decisions/_debug_decisions.txt @@ -131,7 +131,10 @@ debug_decisions = { } visible = { - always = yes + OR = { + tag = MOR + tag = GON + } } fire_only_once = no @@ -193,7 +196,7 @@ debug_decisions = { tag = ANG } - visible = { always = yes } + visible = { tag = ANG } fire_only_once = no cost = 0 diff --git a/common/on_actions/00_on_actions.txt b/common/on_actions/00_on_actions.txt index e2cfdfc02..c3b58646e 100644 --- a/common/on_actions/00_on_actions.txt +++ b/common/on_actions/00_on_actions.txt @@ -215,7 +215,7 @@ on_actions = { original_tag = MOR } } - set_country_flag = ISE_won_war_against_MOR_achievement_flag + set_global_flag = ISE_won_war_against_MOR_flag } } #For the GON_one_does_simply_walk_into_mordor achievement @@ -228,7 +228,7 @@ on_actions = { original_tag = MOR } } - set_country_flag = GON_won_war_against_MOR_achievement_flag + set_global_flag = GON_won_war_against_MOR_flag } } } diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index 79b22c30d..d2cf697bf 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -41,8 +41,8 @@ LTH_elven_boogaloo_test_DESC:0 "As Lothlorien have the Elven Fellowship destroy #Country flags orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! declared war on §YAngmar§!" orcs_of_mordor_won_war_against_ANG_achievement_flag:0 "§YOrcs of Mordor§! has defeated §YAngmar§!" -GON_won_war_against_MOR_achievement_flag:0 "§YGondor§! has defeated §YMordor§!" -ISE_won_war_against_MOR_achievement_flag:0 "§YIsengard§! has defeated §YMordor§!" +GON_won_war_against_MOR_flag:0 "§YGondor§! has defeated §YMordor§!" +ISE_won_war_against_MOR_flag:0 "§YIsengard§! has defeated §YMordor§!" lurtz_killed_boromir_while_attacking_the_fellowship_the_achievement_flag:0 "§YLurtz§! §Rkilled§! §YBoromir§! while attacking the Fellowship" GON_taken_black_gate_from_MOR_achievement_flag:0 "§YGondor§! has taken the §YBlack Gate§! while fellowship is in §YMordor§!" From 961785b4e0184b987ee7c8562de5a857d47dddf4 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Thu, 28 Mar 2024 11:43:42 +0100 Subject: [PATCH 36/42] Forgot those two --- common/achievements/achievements.txt | 4 ++-- common/on_actions/00_on_actions.txt | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index 606ba242d..3abaf26cc 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -100,8 +100,8 @@ MOR_not_my_dark_lord_test = { ANG = { has_country_flag = ANG_sauron_returned } - has_country_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag - has_country_flag = orcs_of_mordor_won_war_against_ANG_achievement_flag + has_global_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag + has_global_flag = orcs_of_mordor_won_war_against_ANG_achievement_flag } } diff --git a/common/on_actions/00_on_actions.txt b/common/on_actions/00_on_actions.txt index c3b58646e..33e2a0f5a 100644 --- a/common/on_actions/00_on_actions.txt +++ b/common/on_actions/00_on_actions.txt @@ -185,7 +185,7 @@ on_actions = { original_tag = ANG } } - set_country_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag + set_global_flag = orcs_of_mordor_declared_war_on_ANG_flag } } } @@ -197,12 +197,12 @@ on_actions = { if = { limit = { tag = MOR - has_country_flag = orcs_of_mordor_declared_war_on_ANG_achievement_flag + has_global_flag = orcs_of_mordor_declared_war_on_ANG_flag FROM = { original_tag = ANG } } - set_country_flag = orcs_of_mordor_won_war_against_ANG_achievement_flag + set_global_flag = orcs_of_mordor_won_war_against_ANG_flag } } #For the ISE_a_wizard_is_never_late achievement From e19c62239643fa961533ebf217816f4dc480281b Mon Sep 17 00:00:00 2001 From: Benjamin Date: Thu, 28 Mar 2024 13:06:27 +0100 Subject: [PATCH 37/42] description changes and typo fixes --- .../english/achievements_l_english.yml | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index d2cf697bf..b0054820d 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -8,36 +8,36 @@ unavailable_DESC:0 "Locked down" lotr_achievements:0 "Lord of the Rings mod achievements" #Achievements -wizards_should_know_better_NAME:0 "Wizards should know better" -wizards_should_know_better_DESC:0 "Play as any cooperative country and conquer or puppet Isengard" -ANG_the_necromancer_NAME:0 "Somehow He Has Returned" -ANG_the_necromancer_DESC:0 "Bring back Sauron into power in Angmar after having fled Mordor" -one_ring_to_rule_them_all_test_NAME:0 "One ring to rule them all" -one_ring_to_rule_them_all_test_DESC:0 "Seize the ring as any country" -revenge_for_the_battle_of_the_five_armies_test_NAME:0 "Revenge for the Battle of the give armies" -revenge_for_the_battle_of_the_five_armies_test_DESC:0 "As either Gundabad or Dol Guldur control all the core states of Erebor, Mirkwood and Dale" -SHI_taking_the_hobbits_to_isengard_test_NAME:0 "Taking the hobbits to Isengard" -SHI_taking_the_hobbits_to_isengard_test_DESC:0 "As the Shire control all the core states of Isengard" -MOR_not_my_dark_lord_test_NAME:0 "Not my dark lord" -MOR_not_my_dark_lord_test_DESC:0 "Bring the orcs into power in Mordor and defeat a Sauron lead Angmar" +wizards_should_know_better_NAME:0 "Wizards Should Know Better" +wizards_should_know_better_DESC:0 "As any cooperative country, conquer or puppet Isengard" +ANG_the_necromancer_NAME:0 "Somehow Sauron Returned" +ANG_the_necromancer_DESC:0 "As Angmar, bring an exiled Sauron back into power" +one_ring_to_rule_them_all_test_NAME:0 "One Ring to Rule Them All" +one_ring_to_rule_them_all_test_DESC:0 "As any country, seize the Ring for yourself" +revenge_for_the_battle_of_the_five_armies_test_NAME:0 "Avenge the Battle of the give armies" +revenge_for_the_battle_of_the_five_armies_test_DESC:0 "As Gundabad or Dol Guldur, control all core states of Erebor, Mirkwood and Dale" +SHI_taking_the_hobbits_to_isengard_test_NAME:0 "Taking the Hobbits to Isengard" +SHI_taking_the_hobbits_to_isengard_test_DESC:0 "As the Shire, control all of Isengard's core states" +MOR_not_my_dark_lord_test_NAME:0 "#NotMyDarkLord" +MOR_not_my_dark_lord_test_DESC:0 "As orc-controlled Mordor, defeat Sauron a second time by bringing down a Sauron-controlled Angmar" DAM_god_damnroth_test_NAME:0 "God Damnroth" -DAM_god_damnroth_test_DESC:0 "As Dol Amroth have twice as many factories as Gondor" +DAM_god_damnroth_test_DESC:0 "As Dol Amroth, have twice as many factories as Gondor" ENT_triple_tree_triumvirate_test_NAME:0 "Triple Tree Triumvirate" -ENT_triple_tree_triumvirate_test_DESC:0 "As Entwood control all core states of Lothlorien and Mirwood" -MOR_morgoths_most_loyal_general_test_NAME:0 "Morgoth's most loyal general" -MOR_morgoths_most_loyal_general_test_DESC:0 "As Moria get Balrog as your leader, join Mordors side and control all the core states of Lothlorien and Rivendell" +ENT_triple_tree_triumvirate_test_DESC:0 "As Entwood, control all core states of Lothlórien and Mirkwood" +MOR_morgoths_most_loyal_general_test_NAME:0 "Morgoth's Most Loyal Servant" +MOR_morgoths_most_loyal_general_test_DESC:0 "As Orc-controlled Moria, submit to the Balrog, join Mordor's faction and conquer all core states of Lothlórien and Rivendell" ISE_my_brother_my_captian_my_king_test_NAME:0 "My Brother, my Captain, my King" -ISE_my_brother_my_captian_my_king_test_DESC:0 "As Isengard send Lurtz for a sweep against he Fellowship and kill Boromir" -ISE_a_wizard_is_never_late_test_NAME:0 "A wizard is never late" -ISE_a_wizard_is_never_late_test_DESC:0 "As cooperative Isengard defeat Mordor after Gondor and Rohan have capitulated." -MOA_side_by_side_with_an_elf_test_NAME:0 "Side by side with an elf" -MOA_side_by_side_with_an_elf_test_DESC:0 "Have Gimli as a general and be in the faction with either Rivendell or Lothlorien" -GON_one_does_simply_walk_into_mordor_testt_NAME:0 "One does simply walk into Mordor" -GON_one_does_simply_walk_into_mordor_testt_DESC:0 "Defeat Mordor before 3021" +ISE_my_brother_my_captian_my_king_test_DESC:0 "As Isengard, send Lurtz against the Fellowship and have him kill Boromir" +ISE_a_wizard_is_never_late_test_NAME:0 "A Wizard is Never Late" +ISE_a_wizard_is_never_late_test_DESC:0 "As cooperative Isengard, defeat Mordor after Gondor and Rohan have capitulated." +MOA_side_by_side_with_an_elf_test_NAME:0 "Side by Side With an Elf" +MOA_side_by_side_with_an_elf_test_DESC:0 "As dwarf-controlled Moria, have Gimli as a general and join a faction with Rivendell or Lothlórien" +GON_one_does_simply_walk_into_mordor_testt_NAME:0 "One Does Simply Walk Into Mordor" +GON_one_does_simply_walk_into_mordor_testt_DESC:0 "As Gondor, defeat Mordor before the year 3021" GON_for_frodo_test_NAME:0 "For Frodo!" -GON_for_frodo_test_DESC:0 "As Gondor, take the Black gate whilst the fellowship closes in on Mount Doom" +GON_for_frodo_test_DESC:0 "As Gondor, take the Black Gate whilst the Fellowship closes in on Mount Doom" LTH_elven_boogaloo_test_NAME:0 "Fellowship 2: Elven Boogaloo" -LTH_elven_boogaloo_test_DESC:0 "As Lothlorien have the Elven Fellowship destroy the ring" +LTH_elven_boogaloo_test_DESC:0 "As Lothlórien, form the Elven Fellowship and destroy the Ring" #Country flags orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! declared war on §YAngmar§!" orcs_of_mordor_won_war_against_ANG_achievement_flag:0 "§YOrcs of Mordor§! has defeated §YAngmar§!" From cfd347f668d721fee5ef26d607bec9dcd753712a Mon Sep 17 00:00:00 2001 From: Benjamin Date: Fri, 29 Mar 2024 22:40:34 +0100 Subject: [PATCH 38/42] Added some ring-related triggers --- common/on_actions/00_on_actions.txt | 7 +- .../ring_scripted_triggers.txt | 72 +++++++++++++++++++ 2 files changed, 75 insertions(+), 4 deletions(-) diff --git a/common/on_actions/00_on_actions.txt b/common/on_actions/00_on_actions.txt index 33e2a0f5a..e1828b508 100644 --- a/common/on_actions/00_on_actions.txt +++ b/common/on_actions/00_on_actions.txt @@ -357,15 +357,14 @@ on_actions = { FROM = { tag = MOR } - var:global.fs_currentstate = { - is_core_of = MOR - } + fellowship_is_active = yes + MOR = { fellowship_in_core_territory = yes } FROM.FROM = { state = 2 } } + set_country_flag = GON_taken_black_gate_from_MOR_achievement_flag } - set_country_flag = GON_taken_black_gate_from_MOR_achievement_flag } } } diff --git a/common/scripted_triggers/ring_scripted_triggers.txt b/common/scripted_triggers/ring_scripted_triggers.txt index 6022ef187..05f865502 100644 --- a/common/scripted_triggers/ring_scripted_triggers.txt +++ b/common/scripted_triggers/ring_scripted_triggers.txt @@ -2,6 +2,78 @@ can_attempt_ring_interception = { controls_state = global.fs_currentstate } +# @docs(Ring): The ring has been destroyed +ring_has_been_destroyed = { + has_global_flag = fs_ring_destroyed +} + +# @docs(Ring): The ring has been seized by a country at some point +ring_has_been_seized = { + has_global_flag = fs_ring_seized +} + +# @docs(Ring): The fellowship has left the shire +fellowship_has_started = { + has_global_flag = fs_started +} + +# @docs(Ring): The fellowship has left the shire, *and* the ring has neither been destroyed nor seized +fellowship_is_active = { + ring_has_been_destroyed = no + ring_has_been_seized = no + fellowship_has_started = yes +} + + +# @docs(Ring): True if the fellowship is currently in a state controlled by THIS +fellowship_in_controlled_territory = { + custom_trigger_tooltip = { + tooltip = "The Fellowship is in a controlled state." + if = { + limit = { has_variable = global.fs_currentstate } + var:global.fs_currentstate = { + is_controlled_by = PREV + } + } + else = { + has_variable = global.fs_currentstate + } + } +} + +# @docs(Ring): True if the fellowship is currently in a core state of THIS (does not have to be controlled) +fellowship_in_core_territory = { + custom_trigger_tooltip = { + tooltip = "The Fellowship is in a core state." + if = { + limit = { has_variable = global.fs_currentstate } + var:global.fs_currentstate = { + is_core_of = PREV + } + } + else = { + has_variable = global.fs_currentstate + } + } +} + +# @docs(Ring): True if the fellowship is currently in a core state of THIS, controlled by THIS +fellowship_in_controlled_core_territory = { + custom_trigger_tooltip = { + tooltip = "The Fellowship is in a core and controlled state." + if = { + limit = { has_variable = global.fs_currentstate } + var:global.fs_currentstate = { + is_controlled_by = PREV + is_core_of = PREV + } + } + else = { + has_variable = global.fs_currentstate + } + } +} + ring_frodo_is_dead = { SHI = { From e27cb3fb1c9b570e724fbb2b5928ef9ea3f9472f Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 30 Mar 2024 10:34:37 +0100 Subject: [PATCH 39/42] Some small changes --- common/achievements/achievements.txt | 9 ++++++--- common/decisions/_debug_decisions.txt | 9 +++------ localisation/english/achievements_l_english.yml | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index 3abaf26cc..f434e8868 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -54,7 +54,11 @@ revenge_for_the_battle_of_the_five_armies_test = { is_controlled_by = ROOT } } - DGU = { is_puppet_of = ROOT } + OR = { + DGU = { is_puppet_of = ROOT } + DGU = { all_core_state = { is_controlled_by = ROOT } } + } + } } @@ -235,13 +239,12 @@ GON_one_does_simply_walk_into_mordor_testt = { } happened = { - always = no date < 3021.1.1 has_country_flag = GON_won_war_against_MOR_flag } } -GON_for_frodo_test = { +GON_for_frodo_testt = { possible = { achievement_standard_possible_check = yes tag = GON diff --git a/common/decisions/_debug_decisions.txt b/common/decisions/_debug_decisions.txt index 844b4afad..716dac241 100644 --- a/common/decisions/_debug_decisions.txt +++ b/common/decisions/_debug_decisions.txt @@ -212,10 +212,6 @@ debug_decisions = { available = { is_ai = no is_debug = yes - custom_trigger_tooltip = { - tooltip = achievement_test - num_of_factories > GON.num_of_factories - } } visible = { always = yes } @@ -223,8 +219,9 @@ debug_decisions = { cost = 0 complete_effect = { - ART = { - country_event = { id = arthedain.12 days = 12 } + create_wargoal = { + type = annex_everything + target = MOR } } } diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index b0054820d..56faf14d7 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -15,7 +15,7 @@ ANG_the_necromancer_DESC:0 "As Angmar, bring an exiled Sauron back into power" one_ring_to_rule_them_all_test_NAME:0 "One Ring to Rule Them All" one_ring_to_rule_them_all_test_DESC:0 "As any country, seize the Ring for yourself" revenge_for_the_battle_of_the_five_armies_test_NAME:0 "Avenge the Battle of the give armies" -revenge_for_the_battle_of_the_five_armies_test_DESC:0 "As Gundabad or Dol Guldur, control all core states of Erebor, Mirkwood and Dale" +revenge_for_the_battle_of_the_five_armies_test_DESC:0 "As Gundabad, control all core states of Erebor, Mirkwood and Dale" SHI_taking_the_hobbits_to_isengard_test_NAME:0 "Taking the Hobbits to Isengard" SHI_taking_the_hobbits_to_isengard_test_DESC:0 "As the Shire, control all of Isengard's core states" MOR_not_my_dark_lord_test_NAME:0 "#NotMyDarkLord" @@ -34,8 +34,8 @@ MOA_side_by_side_with_an_elf_test_NAME:0 "Side by Side With an Elf" MOA_side_by_side_with_an_elf_test_DESC:0 "As dwarf-controlled Moria, have Gimli as a general and join a faction with Rivendell or Lothlórien" GON_one_does_simply_walk_into_mordor_testt_NAME:0 "One Does Simply Walk Into Mordor" GON_one_does_simply_walk_into_mordor_testt_DESC:0 "As Gondor, defeat Mordor before the year 3021" -GON_for_frodo_test_NAME:0 "For Frodo!" -GON_for_frodo_test_DESC:0 "As Gondor, take the Black Gate whilst the Fellowship closes in on Mount Doom" +GON_for_frodo_testt_NAME:0 "For Frodo!" +GON_for_frodo_testt_DESC:0 "As Gondor, take the Black Gate whilst the Fellowship closes in on Mount Doom" LTH_elven_boogaloo_test_NAME:0 "Fellowship 2: Elven Boogaloo" LTH_elven_boogaloo_test_DESC:0 "As Lothlórien, form the Elven Fellowship and destroy the Ring" #Country flags From b804d7b1abe67e1a75dc216a4042120681fb2b16 Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 30 Mar 2024 10:43:09 +0100 Subject: [PATCH 40/42] Removed _test names --- common/achievements/achievements.txt | 26 ++++----- .../00_scripted_triggers.txt | 2 +- ...damnroth_test.dds => DAM_god_damnroth.dds} | Bin ...est_grey.dds => DAM_god_damnroth_grey.dds} | Bin ....dds => DAM_god_damnroth_not_eligible.dds} | Bin ...st.dds => ENT_triple_tree_triumvirate.dds} | Bin ...s => ENT_triple_tree_triumvirate_grey.dds} | Bin ..._triple_tree_triumvirate_not_eligible.dds} | Bin ...N_for_frodo_test.dds => GON_for_frodo.dds} | Bin ...o_test_grey.dds => GON_for_frodo_grey.dds} | Bin ...ble.dds => GON_for_frodo_not_eligible.dds} | Bin ... GON_one_does_simply_walk_into_mordor.dds} | Bin ...one_does_simply_walk_into_mordor_grey.dds} | Bin ..._simply_walk_into_mordor_not_eligible.dds} | Bin ...est.dds => ISE_a_wizard_is_never_late.dds} | Bin ...ds => ISE_a_wizard_is_never_late_grey.dds} | Bin ...E_a_wizard_is_never_late_not_eligible.dds} | Bin ... => ISE_my_brother_my_captian_my_king.dds} | Bin ...SE_my_brother_my_captian_my_king_grey.dds} | Bin ...other_my_captian_my_king_not_eligible.dds} | Bin ...ogaloo_test.dds => LTH_elven_boogaloo.dds} | Bin ...t_grey.dds => LTH_elven_boogaloo_grey.dds} | Bin ...ds => LTH_elven_boogaloo_not_eligible.dds} | Bin ...t.dds => MOA_side_by_side_with_an_elf.dds} | Bin ... => MOA_side_by_side_with_an_elf_grey.dds} | Bin ...side_by_side_with_an_elf_not_eligible.dds} | Bin ...ds => MOR_morgoths_most_loyal_general.dds} | Bin ... MOR_morgoths_most_loyal_general_grey.dds} | Bin ...goths_most_loyal_general_not_eligible.dds} | Bin ...lord_test.dds => MOR_not_my_dark_lord.dds} | Bin ...grey.dds => MOR_not_my_dark_lord_grey.dds} | Bin ... => MOR_not_my_dark_lord_not_eligible.dds} | Bin ...=> SHI_taking_the_hobbits_to_isengard.dds} | Bin ...I_taking_the_hobbits_to_isengard_grey.dds} | Bin ..._the_hobbits_to_isengard_not_eligible.dds} | Bin ...test.dds => one_ring_to_rule_them_all.dds} | Bin ...dds => one_ring_to_rule_them_all_grey.dds} | Bin ...ne_ring_to_rule_them_all_not_eligible.dds} | Bin ...nge_for_the_battle_of_the_five_armies.dds} | Bin ...or_the_battle_of_the_five_armies_grey.dds} | Bin ...attle_of_the_five_armies_not_eligible.dds} | Bin .../english/achievements_l_english.yml | 52 +++++++++--------- 42 files changed, 40 insertions(+), 40 deletions(-) rename gfx/achievements/{DAM_god_damnroth_test.dds => DAM_god_damnroth.dds} (100%) rename gfx/achievements/{DAM_god_damnroth_test_grey.dds => DAM_god_damnroth_grey.dds} (100%) rename gfx/achievements/{DAM_god_damnroth_test_not_eligible.dds => DAM_god_damnroth_not_eligible.dds} (100%) rename gfx/achievements/{ENT_triple_tree_triumvirate_test.dds => ENT_triple_tree_triumvirate.dds} (100%) rename gfx/achievements/{ENT_triple_tree_triumvirate_test_grey.dds => ENT_triple_tree_triumvirate_grey.dds} (100%) rename gfx/achievements/{ENT_triple_tree_triumvirate_test_not_eligible.dds => ENT_triple_tree_triumvirate_not_eligible.dds} (100%) rename gfx/achievements/{GON_for_frodo_test.dds => GON_for_frodo.dds} (100%) rename gfx/achievements/{GON_for_frodo_test_grey.dds => GON_for_frodo_grey.dds} (100%) rename gfx/achievements/{GON_for_frodo_test_not_eligible.dds => GON_for_frodo_not_eligible.dds} (100%) rename gfx/achievements/{GON_one_does_simply_walk_into_mordor_testt.dds => GON_one_does_simply_walk_into_mordor.dds} (100%) rename gfx/achievements/{GON_one_does_simply_walk_into_mordor_testt_grey.dds => GON_one_does_simply_walk_into_mordor_grey.dds} (100%) rename gfx/achievements/{GON_one_does_simply_walk_into_mordor_testt_not_eligible.dds => GON_one_does_simply_walk_into_mordor_not_eligible.dds} (100%) rename gfx/achievements/{ISE_a_wizard_is_never_late_test.dds => ISE_a_wizard_is_never_late.dds} (100%) rename gfx/achievements/{ISE_a_wizard_is_never_late_test_grey.dds => ISE_a_wizard_is_never_late_grey.dds} (100%) rename gfx/achievements/{ISE_a_wizard_is_never_late_test_not_eligible.dds => ISE_a_wizard_is_never_late_not_eligible.dds} (100%) rename gfx/achievements/{ISE_my_brother_my_captian_my_king_test.dds => ISE_my_brother_my_captian_my_king.dds} (100%) rename gfx/achievements/{ISE_my_brother_my_captian_my_king_test_grey.dds => ISE_my_brother_my_captian_my_king_grey.dds} (100%) rename gfx/achievements/{ISE_my_brother_my_captian_my_king_test_not_eligible.dds => ISE_my_brother_my_captian_my_king_not_eligible.dds} (100%) rename gfx/achievements/{LTH_elven_boogaloo_test.dds => LTH_elven_boogaloo.dds} (100%) rename gfx/achievements/{LTH_elven_boogaloo_test_grey.dds => LTH_elven_boogaloo_grey.dds} (100%) rename gfx/achievements/{LTH_elven_boogaloo_test_not_eligible.dds => LTH_elven_boogaloo_not_eligible.dds} (100%) rename gfx/achievements/{MOA_side_by_side_with_an_elf_test.dds => MOA_side_by_side_with_an_elf.dds} (100%) rename gfx/achievements/{MOA_side_by_side_with_an_elf_test_grey.dds => MOA_side_by_side_with_an_elf_grey.dds} (100%) rename gfx/achievements/{MOA_side_by_side_with_an_elf_test_not_eligible.dds => MOA_side_by_side_with_an_elf_not_eligible.dds} (100%) rename gfx/achievements/{MOR_morgoths_most_loyal_general_test.dds => MOR_morgoths_most_loyal_general.dds} (100%) rename gfx/achievements/{MOR_morgoths_most_loyal_general_test_grey.dds => MOR_morgoths_most_loyal_general_grey.dds} (100%) rename gfx/achievements/{MOR_morgoths_most_loyal_general_test_not_eligible.dds => MOR_morgoths_most_loyal_general_not_eligible.dds} (100%) rename gfx/achievements/{MOR_not_my_dark_lord_test.dds => MOR_not_my_dark_lord.dds} (100%) rename gfx/achievements/{MOR_not_my_dark_lord_test_grey.dds => MOR_not_my_dark_lord_grey.dds} (100%) rename gfx/achievements/{MOR_not_my_dark_lord_test_not_eligible.dds => MOR_not_my_dark_lord_not_eligible.dds} (100%) rename gfx/achievements/{SHI_taking_the_hobbits_to_isengard_test.dds => SHI_taking_the_hobbits_to_isengard.dds} (100%) rename gfx/achievements/{SHI_taking_the_hobbits_to_isengard_test_grey.dds => SHI_taking_the_hobbits_to_isengard_grey.dds} (100%) rename gfx/achievements/{SHI_taking_the_hobbits_to_isengard_test_not_eligible.dds => SHI_taking_the_hobbits_to_isengard_not_eligible.dds} (100%) rename gfx/achievements/{one_ring_to_rule_them_all_test.dds => one_ring_to_rule_them_all.dds} (100%) rename gfx/achievements/{one_ring_to_rule_them_all_test_grey.dds => one_ring_to_rule_them_all_grey.dds} (100%) rename gfx/achievements/{one_ring_to_rule_them_all_test_not_eligible.dds => one_ring_to_rule_them_all_not_eligible.dds} (100%) rename gfx/achievements/{revenge_for_the_battle_of_the_five_armies_test.dds => revenge_for_the_battle_of_the_five_armies.dds} (100%) rename gfx/achievements/{revenge_for_the_battle_of_the_five_armies_test_grey.dds => revenge_for_the_battle_of_the_five_armies_grey.dds} (100%) rename gfx/achievements/{revenge_for_the_battle_of_the_five_armies_test_not_eligible.dds => revenge_for_the_battle_of_the_five_armies_not_eligible.dds} (100%) diff --git a/common/achievements/achievements.txt b/common/achievements/achievements.txt index f434e8868..739ed0e22 100644 --- a/common/achievements/achievements.txt +++ b/common/achievements/achievements.txt @@ -20,7 +20,7 @@ wizards_should_know_better = { } } -one_ring_to_rule_them_all_test = { +one_ring_to_rule_them_all = { possible = { achievement_standard_possible_check = yes } @@ -32,7 +32,7 @@ one_ring_to_rule_them_all_test = { } } -revenge_for_the_battle_of_the_five_armies_test = { +revenge_for_the_battle_of_the_five_armies = { possible = { achievement_standard_possible_check = yes tag = GUN @@ -77,7 +77,7 @@ ANG_the_necromancer = { } #Shire -SHI_taking_the_hobbits_to_isengard_test = { +SHI_taking_the_hobbits_to_isengard = { possible = { achievement_standard_possible_check = yes tag = SHI @@ -93,7 +93,7 @@ SHI_taking_the_hobbits_to_isengard_test = { } #Mordor -MOR_not_my_dark_lord_test = { +MOR_not_my_dark_lord = { possible = { achievement_standard_possible_check = yes tag = MOR @@ -110,7 +110,7 @@ MOR_not_my_dark_lord_test = { } #Dol Amroth -DAM_god_damnroth_test = { +DAM_god_damnroth = { possible = { achievement_standard_possible_check = yes tag = DAM @@ -127,7 +127,7 @@ DAM_god_damnroth_test = { } #Entwood -ENT_triple_tree_triumvirate_test = { +ENT_triple_tree_triumvirate = { possible = { achievement_standard_possible_check = yes tag = ENT @@ -148,7 +148,7 @@ ENT_triple_tree_triumvirate_test = { } #Moria -MOR_morgoths_most_loyal_general_test = { +MOR_morgoths_most_loyal_general = { possible = { achievement_standard_possible_check = yes original_tag = MOA @@ -171,7 +171,7 @@ MOR_morgoths_most_loyal_general_test = { } } -MOA_side_by_side_with_an_elf_test = { +MOA_side_by_side_with_an_elf = { possible = { achievement_standard_possible_check = yes tag = MOA @@ -192,7 +192,7 @@ MOA_side_by_side_with_an_elf_test = { } #Isengard -ISE_my_brother_my_captian_my_king_test = { +ISE_my_brother_my_captian_my_king = { possible = { achievement_standard_possible_check = yes tag = ISE @@ -203,7 +203,7 @@ ISE_my_brother_my_captian_my_king_test = { } } -ISE_a_wizard_is_never_late_test = { +ISE_a_wizard_is_never_late = { possible = { achievement_standard_possible_check = yes tag = ISE @@ -232,7 +232,7 @@ ISE_a_wizard_is_never_late_test = { } #Gondor -GON_one_does_simply_walk_into_mordor_testt = { +GON_one_does_simply_walk_into_mordor = { possible = { achievement_standard_possible_check = yes tag = GON @@ -244,7 +244,7 @@ GON_one_does_simply_walk_into_mordor_testt = { } } -GON_for_frodo_testt = { +GON_for_frodo = { possible = { achievement_standard_possible_check = yes tag = GON @@ -256,7 +256,7 @@ GON_for_frodo_testt = { } #Lothlorien -LTH_elven_boogaloo_test = { +LTH_elven_boogaloo = { possible = { achievement_standard_possible_check = yes tag = LTH diff --git a/common/scripted_triggers/00_scripted_triggers.txt b/common/scripted_triggers/00_scripted_triggers.txt index 9ec6d598b..644244174 100644 --- a/common/scripted_triggers/00_scripted_triggers.txt +++ b/common/scripted_triggers/00_scripted_triggers.txt @@ -614,7 +614,7 @@ ai_has_completed_naval_doctrine = { } achievement_standard_possible_check = { - #is_ironman = yes + is_ironman = yes difficulty > 1 has_any_custom_difficulty_setting = no game_rules_allow_achievements = yes diff --git a/gfx/achievements/DAM_god_damnroth_test.dds b/gfx/achievements/DAM_god_damnroth.dds similarity index 100% rename from gfx/achievements/DAM_god_damnroth_test.dds rename to gfx/achievements/DAM_god_damnroth.dds diff --git a/gfx/achievements/DAM_god_damnroth_test_grey.dds b/gfx/achievements/DAM_god_damnroth_grey.dds similarity index 100% rename from gfx/achievements/DAM_god_damnroth_test_grey.dds rename to gfx/achievements/DAM_god_damnroth_grey.dds diff --git a/gfx/achievements/DAM_god_damnroth_test_not_eligible.dds b/gfx/achievements/DAM_god_damnroth_not_eligible.dds similarity index 100% rename from gfx/achievements/DAM_god_damnroth_test_not_eligible.dds rename to gfx/achievements/DAM_god_damnroth_not_eligible.dds diff --git a/gfx/achievements/ENT_triple_tree_triumvirate_test.dds b/gfx/achievements/ENT_triple_tree_triumvirate.dds similarity index 100% rename from gfx/achievements/ENT_triple_tree_triumvirate_test.dds rename to gfx/achievements/ENT_triple_tree_triumvirate.dds diff --git a/gfx/achievements/ENT_triple_tree_triumvirate_test_grey.dds b/gfx/achievements/ENT_triple_tree_triumvirate_grey.dds similarity index 100% rename from gfx/achievements/ENT_triple_tree_triumvirate_test_grey.dds rename to gfx/achievements/ENT_triple_tree_triumvirate_grey.dds diff --git a/gfx/achievements/ENT_triple_tree_triumvirate_test_not_eligible.dds b/gfx/achievements/ENT_triple_tree_triumvirate_not_eligible.dds similarity index 100% rename from gfx/achievements/ENT_triple_tree_triumvirate_test_not_eligible.dds rename to gfx/achievements/ENT_triple_tree_triumvirate_not_eligible.dds diff --git a/gfx/achievements/GON_for_frodo_test.dds b/gfx/achievements/GON_for_frodo.dds similarity index 100% rename from gfx/achievements/GON_for_frodo_test.dds rename to gfx/achievements/GON_for_frodo.dds diff --git a/gfx/achievements/GON_for_frodo_test_grey.dds b/gfx/achievements/GON_for_frodo_grey.dds similarity index 100% rename from gfx/achievements/GON_for_frodo_test_grey.dds rename to gfx/achievements/GON_for_frodo_grey.dds diff --git a/gfx/achievements/GON_for_frodo_test_not_eligible.dds b/gfx/achievements/GON_for_frodo_not_eligible.dds similarity index 100% rename from gfx/achievements/GON_for_frodo_test_not_eligible.dds rename to gfx/achievements/GON_for_frodo_not_eligible.dds diff --git a/gfx/achievements/GON_one_does_simply_walk_into_mordor_testt.dds b/gfx/achievements/GON_one_does_simply_walk_into_mordor.dds similarity index 100% rename from gfx/achievements/GON_one_does_simply_walk_into_mordor_testt.dds rename to gfx/achievements/GON_one_does_simply_walk_into_mordor.dds diff --git a/gfx/achievements/GON_one_does_simply_walk_into_mordor_testt_grey.dds b/gfx/achievements/GON_one_does_simply_walk_into_mordor_grey.dds similarity index 100% rename from gfx/achievements/GON_one_does_simply_walk_into_mordor_testt_grey.dds rename to gfx/achievements/GON_one_does_simply_walk_into_mordor_grey.dds diff --git a/gfx/achievements/GON_one_does_simply_walk_into_mordor_testt_not_eligible.dds b/gfx/achievements/GON_one_does_simply_walk_into_mordor_not_eligible.dds similarity index 100% rename from gfx/achievements/GON_one_does_simply_walk_into_mordor_testt_not_eligible.dds rename to gfx/achievements/GON_one_does_simply_walk_into_mordor_not_eligible.dds diff --git a/gfx/achievements/ISE_a_wizard_is_never_late_test.dds b/gfx/achievements/ISE_a_wizard_is_never_late.dds similarity index 100% rename from gfx/achievements/ISE_a_wizard_is_never_late_test.dds rename to gfx/achievements/ISE_a_wizard_is_never_late.dds diff --git a/gfx/achievements/ISE_a_wizard_is_never_late_test_grey.dds b/gfx/achievements/ISE_a_wizard_is_never_late_grey.dds similarity index 100% rename from gfx/achievements/ISE_a_wizard_is_never_late_test_grey.dds rename to gfx/achievements/ISE_a_wizard_is_never_late_grey.dds diff --git a/gfx/achievements/ISE_a_wizard_is_never_late_test_not_eligible.dds b/gfx/achievements/ISE_a_wizard_is_never_late_not_eligible.dds similarity index 100% rename from gfx/achievements/ISE_a_wizard_is_never_late_test_not_eligible.dds rename to gfx/achievements/ISE_a_wizard_is_never_late_not_eligible.dds diff --git a/gfx/achievements/ISE_my_brother_my_captian_my_king_test.dds b/gfx/achievements/ISE_my_brother_my_captian_my_king.dds similarity index 100% rename from gfx/achievements/ISE_my_brother_my_captian_my_king_test.dds rename to gfx/achievements/ISE_my_brother_my_captian_my_king.dds diff --git a/gfx/achievements/ISE_my_brother_my_captian_my_king_test_grey.dds b/gfx/achievements/ISE_my_brother_my_captian_my_king_grey.dds similarity index 100% rename from gfx/achievements/ISE_my_brother_my_captian_my_king_test_grey.dds rename to gfx/achievements/ISE_my_brother_my_captian_my_king_grey.dds diff --git a/gfx/achievements/ISE_my_brother_my_captian_my_king_test_not_eligible.dds b/gfx/achievements/ISE_my_brother_my_captian_my_king_not_eligible.dds similarity index 100% rename from gfx/achievements/ISE_my_brother_my_captian_my_king_test_not_eligible.dds rename to gfx/achievements/ISE_my_brother_my_captian_my_king_not_eligible.dds diff --git a/gfx/achievements/LTH_elven_boogaloo_test.dds b/gfx/achievements/LTH_elven_boogaloo.dds similarity index 100% rename from gfx/achievements/LTH_elven_boogaloo_test.dds rename to gfx/achievements/LTH_elven_boogaloo.dds diff --git a/gfx/achievements/LTH_elven_boogaloo_test_grey.dds b/gfx/achievements/LTH_elven_boogaloo_grey.dds similarity index 100% rename from gfx/achievements/LTH_elven_boogaloo_test_grey.dds rename to gfx/achievements/LTH_elven_boogaloo_grey.dds diff --git a/gfx/achievements/LTH_elven_boogaloo_test_not_eligible.dds b/gfx/achievements/LTH_elven_boogaloo_not_eligible.dds similarity index 100% rename from gfx/achievements/LTH_elven_boogaloo_test_not_eligible.dds rename to gfx/achievements/LTH_elven_boogaloo_not_eligible.dds diff --git a/gfx/achievements/MOA_side_by_side_with_an_elf_test.dds b/gfx/achievements/MOA_side_by_side_with_an_elf.dds similarity index 100% rename from gfx/achievements/MOA_side_by_side_with_an_elf_test.dds rename to gfx/achievements/MOA_side_by_side_with_an_elf.dds diff --git a/gfx/achievements/MOA_side_by_side_with_an_elf_test_grey.dds b/gfx/achievements/MOA_side_by_side_with_an_elf_grey.dds similarity index 100% rename from gfx/achievements/MOA_side_by_side_with_an_elf_test_grey.dds rename to gfx/achievements/MOA_side_by_side_with_an_elf_grey.dds diff --git a/gfx/achievements/MOA_side_by_side_with_an_elf_test_not_eligible.dds b/gfx/achievements/MOA_side_by_side_with_an_elf_not_eligible.dds similarity index 100% rename from gfx/achievements/MOA_side_by_side_with_an_elf_test_not_eligible.dds rename to gfx/achievements/MOA_side_by_side_with_an_elf_not_eligible.dds diff --git a/gfx/achievements/MOR_morgoths_most_loyal_general_test.dds b/gfx/achievements/MOR_morgoths_most_loyal_general.dds similarity index 100% rename from gfx/achievements/MOR_morgoths_most_loyal_general_test.dds rename to gfx/achievements/MOR_morgoths_most_loyal_general.dds diff --git a/gfx/achievements/MOR_morgoths_most_loyal_general_test_grey.dds b/gfx/achievements/MOR_morgoths_most_loyal_general_grey.dds similarity index 100% rename from gfx/achievements/MOR_morgoths_most_loyal_general_test_grey.dds rename to gfx/achievements/MOR_morgoths_most_loyal_general_grey.dds diff --git a/gfx/achievements/MOR_morgoths_most_loyal_general_test_not_eligible.dds b/gfx/achievements/MOR_morgoths_most_loyal_general_not_eligible.dds similarity index 100% rename from gfx/achievements/MOR_morgoths_most_loyal_general_test_not_eligible.dds rename to gfx/achievements/MOR_morgoths_most_loyal_general_not_eligible.dds diff --git a/gfx/achievements/MOR_not_my_dark_lord_test.dds b/gfx/achievements/MOR_not_my_dark_lord.dds similarity index 100% rename from gfx/achievements/MOR_not_my_dark_lord_test.dds rename to gfx/achievements/MOR_not_my_dark_lord.dds diff --git a/gfx/achievements/MOR_not_my_dark_lord_test_grey.dds b/gfx/achievements/MOR_not_my_dark_lord_grey.dds similarity index 100% rename from gfx/achievements/MOR_not_my_dark_lord_test_grey.dds rename to gfx/achievements/MOR_not_my_dark_lord_grey.dds diff --git a/gfx/achievements/MOR_not_my_dark_lord_test_not_eligible.dds b/gfx/achievements/MOR_not_my_dark_lord_not_eligible.dds similarity index 100% rename from gfx/achievements/MOR_not_my_dark_lord_test_not_eligible.dds rename to gfx/achievements/MOR_not_my_dark_lord_not_eligible.dds diff --git a/gfx/achievements/SHI_taking_the_hobbits_to_isengard_test.dds b/gfx/achievements/SHI_taking_the_hobbits_to_isengard.dds similarity index 100% rename from gfx/achievements/SHI_taking_the_hobbits_to_isengard_test.dds rename to gfx/achievements/SHI_taking_the_hobbits_to_isengard.dds diff --git a/gfx/achievements/SHI_taking_the_hobbits_to_isengard_test_grey.dds b/gfx/achievements/SHI_taking_the_hobbits_to_isengard_grey.dds similarity index 100% rename from gfx/achievements/SHI_taking_the_hobbits_to_isengard_test_grey.dds rename to gfx/achievements/SHI_taking_the_hobbits_to_isengard_grey.dds diff --git a/gfx/achievements/SHI_taking_the_hobbits_to_isengard_test_not_eligible.dds b/gfx/achievements/SHI_taking_the_hobbits_to_isengard_not_eligible.dds similarity index 100% rename from gfx/achievements/SHI_taking_the_hobbits_to_isengard_test_not_eligible.dds rename to gfx/achievements/SHI_taking_the_hobbits_to_isengard_not_eligible.dds diff --git a/gfx/achievements/one_ring_to_rule_them_all_test.dds b/gfx/achievements/one_ring_to_rule_them_all.dds similarity index 100% rename from gfx/achievements/one_ring_to_rule_them_all_test.dds rename to gfx/achievements/one_ring_to_rule_them_all.dds diff --git a/gfx/achievements/one_ring_to_rule_them_all_test_grey.dds b/gfx/achievements/one_ring_to_rule_them_all_grey.dds similarity index 100% rename from gfx/achievements/one_ring_to_rule_them_all_test_grey.dds rename to gfx/achievements/one_ring_to_rule_them_all_grey.dds diff --git a/gfx/achievements/one_ring_to_rule_them_all_test_not_eligible.dds b/gfx/achievements/one_ring_to_rule_them_all_not_eligible.dds similarity index 100% rename from gfx/achievements/one_ring_to_rule_them_all_test_not_eligible.dds rename to gfx/achievements/one_ring_to_rule_them_all_not_eligible.dds diff --git a/gfx/achievements/revenge_for_the_battle_of_the_five_armies_test.dds b/gfx/achievements/revenge_for_the_battle_of_the_five_armies.dds similarity index 100% rename from gfx/achievements/revenge_for_the_battle_of_the_five_armies_test.dds rename to gfx/achievements/revenge_for_the_battle_of_the_five_armies.dds diff --git a/gfx/achievements/revenge_for_the_battle_of_the_five_armies_test_grey.dds b/gfx/achievements/revenge_for_the_battle_of_the_five_armies_grey.dds similarity index 100% rename from gfx/achievements/revenge_for_the_battle_of_the_five_armies_test_grey.dds rename to gfx/achievements/revenge_for_the_battle_of_the_five_armies_grey.dds diff --git a/gfx/achievements/revenge_for_the_battle_of_the_five_armies_test_not_eligible.dds b/gfx/achievements/revenge_for_the_battle_of_the_five_armies_not_eligible.dds similarity index 100% rename from gfx/achievements/revenge_for_the_battle_of_the_five_armies_test_not_eligible.dds rename to gfx/achievements/revenge_for_the_battle_of_the_five_armies_not_eligible.dds diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index 56faf14d7..81ed78789 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -12,32 +12,32 @@ wizards_should_know_better_NAME:0 "Wizards Should Know Better" wizards_should_know_better_DESC:0 "As any cooperative country, conquer or puppet Isengard" ANG_the_necromancer_NAME:0 "Somehow Sauron Returned" ANG_the_necromancer_DESC:0 "As Angmar, bring an exiled Sauron back into power" -one_ring_to_rule_them_all_test_NAME:0 "One Ring to Rule Them All" -one_ring_to_rule_them_all_test_DESC:0 "As any country, seize the Ring for yourself" -revenge_for_the_battle_of_the_five_armies_test_NAME:0 "Avenge the Battle of the give armies" -revenge_for_the_battle_of_the_five_armies_test_DESC:0 "As Gundabad, control all core states of Erebor, Mirkwood and Dale" -SHI_taking_the_hobbits_to_isengard_test_NAME:0 "Taking the Hobbits to Isengard" -SHI_taking_the_hobbits_to_isengard_test_DESC:0 "As the Shire, control all of Isengard's core states" -MOR_not_my_dark_lord_test_NAME:0 "#NotMyDarkLord" -MOR_not_my_dark_lord_test_DESC:0 "As orc-controlled Mordor, defeat Sauron a second time by bringing down a Sauron-controlled Angmar" -DAM_god_damnroth_test_NAME:0 "God Damnroth" -DAM_god_damnroth_test_DESC:0 "As Dol Amroth, have twice as many factories as Gondor" -ENT_triple_tree_triumvirate_test_NAME:0 "Triple Tree Triumvirate" -ENT_triple_tree_triumvirate_test_DESC:0 "As Entwood, control all core states of Lothlórien and Mirkwood" -MOR_morgoths_most_loyal_general_test_NAME:0 "Morgoth's Most Loyal Servant" -MOR_morgoths_most_loyal_general_test_DESC:0 "As Orc-controlled Moria, submit to the Balrog, join Mordor's faction and conquer all core states of Lothlórien and Rivendell" -ISE_my_brother_my_captian_my_king_test_NAME:0 "My Brother, my Captain, my King" -ISE_my_brother_my_captian_my_king_test_DESC:0 "As Isengard, send Lurtz against the Fellowship and have him kill Boromir" -ISE_a_wizard_is_never_late_test_NAME:0 "A Wizard is Never Late" -ISE_a_wizard_is_never_late_test_DESC:0 "As cooperative Isengard, defeat Mordor after Gondor and Rohan have capitulated." -MOA_side_by_side_with_an_elf_test_NAME:0 "Side by Side With an Elf" -MOA_side_by_side_with_an_elf_test_DESC:0 "As dwarf-controlled Moria, have Gimli as a general and join a faction with Rivendell or Lothlórien" -GON_one_does_simply_walk_into_mordor_testt_NAME:0 "One Does Simply Walk Into Mordor" -GON_one_does_simply_walk_into_mordor_testt_DESC:0 "As Gondor, defeat Mordor before the year 3021" -GON_for_frodo_testt_NAME:0 "For Frodo!" -GON_for_frodo_testt_DESC:0 "As Gondor, take the Black Gate whilst the Fellowship closes in on Mount Doom" -LTH_elven_boogaloo_test_NAME:0 "Fellowship 2: Elven Boogaloo" -LTH_elven_boogaloo_test_DESC:0 "As Lothlórien, form the Elven Fellowship and destroy the Ring" +one_ring_to_rule_them_all_NAME:0 "One Ring to Rule Them All" +one_ring_to_rule_them_all_DESC:0 "As any country, seize the Ring for yourself" +revenge_for_the_battle_of_the_five_armies_NAME:0 "Avenge the Battle of the give armies" +revenge_for_the_battle_of_the_five_armies_DESC:0 "As Gundabad, control all core states of Erebor, Mirkwood and Dale" +SHI_taking_the_hobbits_to_isengard_NAME:0 "Taking the Hobbits to Isengard" +SHI_taking_the_hobbits_to_isengard_DESC:0 "As the Shire, control all of Isengard's core states" +MOR_not_my_dark_lord_NAME:0 "#NotMyDarkLord" +MOR_not_my_dark_lord_DESC:0 "As orc-controlled Mordor, defeat Sauron a second time by bringing down a Sauron-controlled Angmar" +DAM_god_damnroth_NAME:0 "God Damnroth" +DAM_god_damnroth_DESC:0 "As Dol Amroth, have twice as many factories as Gondor" +ENT_triple_tree_triumvirate_NAME:0 "Triple Tree Triumvirate" +ENT_triple_tree_triumvirate_DESC:0 "As Entwood, control all core states of Lothlórien and Mirkwood" +MOR_morgoths_most_loyal_general_NAME:0 "Morgoth's Most Loyal Servant" +MOR_morgoths_most_loyal_general_DESC:0 "As Orc-controlled Moria, submit to the Balrog, join Mordor's faction and conquer all core states of Lothlórien and Rivendell" +ISE_my_brother_my_captian_my_king_NAME:0 "My Brother, my Captain, my King" +ISE_my_brother_my_captian_my_king_DESC:0 "As Isengard, send Lurtz against the Fellowship and have him kill Boromir" +ISE_a_wizard_is_never_late_NAME:0 "A Wizard is Never Late" +ISE_a_wizard_is_never_late_DESC:0 "As cooperative Isengard, defeat Mordor after Gondor and Rohan have capitulated." +MOA_side_by_side_with_an_elf_NAME:0 "Side by Side With an Elf" +MOA_side_by_side_with_an_elf_DESC:0 "As dwarf-controlled Moria, have Gimli as a general and join a faction with Rivendell or Lothlórien" +GON_one_does_simply_walk_into_mordor_NAME:0 "One Does Simply Walk Into Mordor" +GON_one_does_simply_walk_into_mordor_DESC:0 "As Gondor, defeat Mordor before the year 3021" +GON_for_frodo_NAME:0 "For Frodo!" +GON_for_frodo_DESC:0 "As Gondor, take the Black Gate whilst the Fellowship closes in on Mount Doom" +LTH_elven_boogaloo_NAME:0 "Fellowship 2: Elven Boogaloo" +LTH_elven_boogaloo_DESC:0 "As Lothlórien, form the Elven Fellowship and destroy the Ring" #Country flags orcs_of_mordor_declared_war_on_ANG_achievement_flag:0 "§YOrcs of Mordor§! declared war on §YAngmar§!" orcs_of_mordor_won_war_against_ANG_achievement_flag:0 "§YOrcs of Mordor§! has defeated §YAngmar§!" From 142579f83994069af466ebb6fa901d631208369e Mon Sep 17 00:00:00 2001 From: Ruben Vermaat Date: Sat, 30 Mar 2024 10:46:47 +0100 Subject: [PATCH 41/42] Small correction --- localisation/english/achievements_l_english.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localisation/english/achievements_l_english.yml b/localisation/english/achievements_l_english.yml index 81ed78789..2ca40bdda 100644 --- a/localisation/english/achievements_l_english.yml +++ b/localisation/english/achievements_l_english.yml @@ -10,7 +10,7 @@ lotr_achievements:0 "Lord of the Rings mod achievements" #Achievements wizards_should_know_better_NAME:0 "Wizards Should Know Better" wizards_should_know_better_DESC:0 "As any cooperative country, conquer or puppet Isengard" -ANG_the_necromancer_NAME:0 "Somehow Sauron Returned" +ANG_the_necromancer_NAME:0 "Somehow He Has Returned" ANG_the_necromancer_DESC:0 "As Angmar, bring an exiled Sauron back into power" one_ring_to_rule_them_all_NAME:0 "One Ring to Rule Them All" one_ring_to_rule_them_all_DESC:0 "As any country, seize the Ring for yourself" From 90ca06e9d005666949e3b7277298d1db2979b52e Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sat, 30 Mar 2024 12:33:56 +0100 Subject: [PATCH 42/42] website update --- .../images/spirits/GFX_idea_gon_white_tree.png | Bin 605 -> 605 bytes tools/gfx_search/scriptedtriggers.html | 7 +++++++ 2 files changed, 7 insertions(+) diff --git a/tools/gfx_search/images/spirits/GFX_idea_gon_white_tree.png b/tools/gfx_search/images/spirits/GFX_idea_gon_white_tree.png index c3c21922bb850954eac11f36b4710e775bc72d30..7bb25b719301a1db6dfce844124c1c65e47bcc88 100644 GIT binary patch delta 53 zcmcc1a+hU735OiFqSmY{QO`Hl9AH#5HV82^v@$lfGBMINFt9Q(Sgznbj{yigUHx3v IIVCg!0M}&@ApigX delta 53 zcmcc1a+hU72?sZ)l7$*G_xg=B2N)F%4MPkpt&B~qOwF_n46FTriggers
is_western
checks if the country's capital is on the western side of the continent
(Generic)
is_eastern
checks if the country's capital is on the eastern side of the continent
(Generic)
is_center
checks if the country's capital is on the center-part of the continent
(Generic)
+
ring_has_been_destroyed
The ring has been destroyed
(Ring)
+
ring_has_been_seized
The ring has been seized by a country at some point
(Ring)
+
fellowship_has_started
The fellowship has left the shire
(Ring)
+
fellowship_is_active
The fellowship has left the shire, *and* the ring has neither been destroyed nor seized
(Ring)
+
fellowship_in_controlled_territory
True if the fellowship is currently in a state controlled by THIS
(Ring)
+
fellowship_in_core_territory
True if the fellowship is currently in a core state of THIS (does not have to be controlled)
(Ring)
+
fellowship_in_controlled_core_territory
True if the fellowship is currently in a core state of THIS, controlled by THIS
(Ring)
is_white_council_member
checks if the country is a member of the white council
(White Council)
white_council_exists
checks if the white council has been formed
(White Council)
at_least_three_white_council_members
checks if the white council has at least three members (including Gandalf)
(White Council)