From 192ba005cadc9e6b3c8927cb387afae33568db4e Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Wed, 13 Dec 2023 15:01:03 -0500 Subject: [PATCH 01/39] initial commit on forsaken story cycle --- .../scripted_effects/wc_lordaeron_effects.txt | 14 ++++++++ .../wc_story_cycle_forsaken_origin.txt | 23 ++++++++++++ events/wc_events/wc_lordaeron_events.txt | 35 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 common/story_cycles/wc_story_cycle_forsaken_origin.txt diff --git a/common/scripted_effects/wc_lordaeron_effects.txt b/common/scripted_effects/wc_lordaeron_effects.txt index 563d0c55ed..8dfe6b3d6b 100644 --- a/common/scripted_effects/wc_lordaeron_effects.txt +++ b/common/scripted_effects/wc_lordaeron_effects.txt @@ -19,3 +19,17 @@ lordaeron_check_undercity_being_built = { } } } + +try_to_set_forsaken_origin_story_owner = { + if = { + limit = { $OWNER$ = { is_of_forsaken_like_culture = yes } } + # $OWNER$ = { + # add_character_modifier = { modifier = great_invader_modifier } + # trigger_event = { id = WCHOI.7 days = 1 } #Spawns Horde troops + # } + make_story_owner = $OWNER$ + } + else = { + end_story = yes + } +} \ No newline at end of file diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt new file mode 100644 index 0000000000..2752a4e5cd --- /dev/null +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -0,0 +1,23 @@ +forsaken_origins_story_cycle = { + on_setup = { + + } + + on_end = { + + } + + on_owner_death = { + try_to_set_forsaken_origin_story_owner = { OWNER = story_owner.primary_heir } + } + + #check for ownership of Lordaeron every 7 days + effect_group = { + + } + + #fun random events + effect_group = { + + } +} \ No newline at end of file diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index bd2cdfa413..b1278e7797 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -149,6 +149,41 @@ lordaeron.1002 = { } +# Change in story ownership +lordaeron.1003 = { + + type = character_event + title = lordaeron.1003.title + desc = lordaeron.1003.desc + theme = grief + + right_portrait = { + character = root + animation = stress + } + + immediate = { + title:b_lordaeron.title_province = { + remove_province_modifier = wc_building_undercity + } + hidden_effect = { + trigger_event = { + on_action = undercity_reset_construction + months = 1 #{29 31} + } + } + } + + option = { + name = lordaeron.1002.opt.a + show_as_tooltip = { + custom_tooltip = lordaeron.1002.tooltip.a + } + } + +} + + ##################################### #1100 - 1199: Post-Reclamation events ##################################### From 332a6e5f91e8db95d8b3fca0a178dcfbd1a08dce Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Wed, 13 Dec 2023 15:20:34 -0500 Subject: [PATCH 02/39] finish out first event group --- .../scripted_effects/wc_lordaeron_effects.txt | 4 -- .../wc_story_cycle_forsaken_origin.txt | 39 +++++++++++++++++-- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/common/scripted_effects/wc_lordaeron_effects.txt b/common/scripted_effects/wc_lordaeron_effects.txt index 8dfe6b3d6b..806c74a187 100644 --- a/common/scripted_effects/wc_lordaeron_effects.txt +++ b/common/scripted_effects/wc_lordaeron_effects.txt @@ -23,10 +23,6 @@ lordaeron_check_undercity_being_built = { try_to_set_forsaken_origin_story_owner = { if = { limit = { $OWNER$ = { is_of_forsaken_like_culture = yes } } - # $OWNER$ = { - # add_character_modifier = { modifier = great_invader_modifier } - # trigger_event = { id = WCHOI.7 days = 1 } #Spawns Horde troops - # } make_story_owner = $OWNER$ } else = { diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 2752a4e5cd..b5163751ba 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -1,21 +1,52 @@ forsaken_origins_story_cycle = { on_setup = { - + #possibly make it so that only one person can ever get this story cycle } on_end = { - + #possibly make it so that no one can ever get this story cycle again } on_owner_death = { try_to_set_forsaken_origin_story_owner = { OWNER = story_owner.primary_heir } } - #check for ownership of Lordaeron every 7 days + #check for lost ownership of Lordaeron every 30 days following undercity rebuild effect_group = { - + days = 30 + + trigger = { + title:b_lordaeron = { + holder = { + self_or_liege_is_of_forsaken_like_culture = no + } + } + title:c_lordaeron = { + has_variable = develop_the_undercity + } + } + + triggered_effect = { + story_owner = { + trigger_event = { + id = lordaeron.1002 + days = 7 + } + } + } } + # NAND = { + # AND = { # make sure owner is Forsaken + # is_of_forsaken_like_culture = yes + # this = story_owner + # } + # AND = { # or that I did NOT gave out the title to someome... + # self_or_liege_is_of_forsaken_like_culture = yes + # any_liege_or_above = {this = story_owner } + # } + # } + #fun random events effect_group = { From c590383343fa58bf1af9f50116bd6b9aac9b5454 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Thu, 14 Dec 2023 12:08:55 -0500 Subject: [PATCH 03/39] forsaken religious minority event (no loc) --- common/modifiers/wc_event_modifiers.txt | 7 + common/on_action/wc_lordaeron_on_actions.txt | 15 + .../wc_story_cycle_forsaken_origin.txt | 41 ++- events/wc_events/wc_lordaeron_events.txt | 276 +++++++++++++++--- 4 files changed, 305 insertions(+), 34 deletions(-) diff --git a/common/modifiers/wc_event_modifiers.txt b/common/modifiers/wc_event_modifiers.txt index ab4b41b702..ae555e916b 100644 --- a/common/modifiers/wc_event_modifiers.txt +++ b/common/modifiers/wc_event_modifiers.txt @@ -203,6 +203,13 @@ wc_forsaken_embraced_selinite_modifier = { learning_per_piety_level = 1 } +wc_executed_religious_minority_modifier = { + icon = social_negative + minority_different_faith_opinion = -10 + theocracy_government_opinion_same_faith = 10 + dread_gain_mult = 0.1 +} + #Exodar modifiers wc_exodar_crystal_high = { icon = wc_exodar_crystal_high diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index 6e2ab0ac60..a78cfef7f9 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -8,3 +8,18 @@ lordaeron_lost_on_action = { } } + +undercity_complete_on_action = { + + effect = { + title:b_lordaeron = { + if = { + limit = { var:develop_the_undercity = flag:construction } + set_variable = { + name = develop_the_undercity + value = flag:construction + } + } + } + } +} diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index b5163751ba..09f13df81a 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -13,7 +13,7 @@ #check for lost ownership of Lordaeron every 30 days following undercity rebuild effect_group = { - days = 30 + days = 7 trigger = { title:b_lordaeron = { @@ -31,11 +31,50 @@ trigger_event = { id = lordaeron.1002 days = 7 + delayed = yes } } } } + # effect_group = { + # days = 7 + + # trigger = { + # title:b_lordaeron = { + # holder = { + # self_or_liege_is_of_forsaken_like_culture = no + # } + # var:develop_the_undercity = flag:finished + # } + # } + + # triggered_effect = { + # story_owner = { + # trigger_event = { + # id = lordaeron.1001 + # days = 7 + # delayed = yes + # } + # } + # title:b_lordaeron = { + # holder = { + # if = { + # limit = { + # NOT = { this = story_owner } + # self_or_liege_is_of_forsaken_like_culture = yes + # } + # trigger_event = { + # id = lordaeron.1004 + # days = 7 + # delayed = yes + # } + # } + # } + # } + # } + # } + # NAND = { # AND = { # make sure owner is Forsaken # is_of_forsaken_like_culture = yes diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index f014d7b10c..ba3aee2f7b 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -33,7 +33,7 @@ lordaeron.1001 = { } trigger = { - title:b_lordaeron = { + title:b_lordaeron = { holder = { OR = { AND = { # make sure i have the title... @@ -165,38 +165,38 @@ lordaeron.1002 = { } # Change in story ownership -lordaeron.1003 = { - - type = character_event - title = lordaeron.1003.title - desc = lordaeron.1003.desc - theme = grief - - right_portrait = { - character = root - animation = stress - } - - immediate = { - title:b_lordaeron.title_province = { - remove_province_modifier = wc_building_undercity - } - hidden_effect = { - trigger_event = { - on_action = undercity_reset_construction - months = 1 #{29 31} - } - } - } - - option = { - name = lordaeron.1002.opt.a - show_as_tooltip = { - custom_tooltip = lordaeron.1002.tooltip.a - } - } +# lordaeron.1003 = { + +# type = character_event +# title = lordaeron.1003.title +# desc = lordaeron.1003.desc +# theme = intrigue + +# right_portrait = { +# character = root +# animation = stress +# } + +# immediate = { +# title:b_lordaeron.title_province = { +# remove_province_modifier = wc_building_undercity +# } +# hidden_effect = { +# trigger_event = { +# on_action = undercity_reset_construction +# months = 1 #{29 31} +# } +# } +# } + +# option = { +# name = lordaeron.1002.opt.a +# show_as_tooltip = { +# custom_tooltip = lordaeron.1002.tooltip.a +# } +# } -} +# } ##################################### @@ -479,4 +479,214 @@ lordaeron.1103 = { } } } -} \ No newline at end of file +} + + +###################################### +#9000 - 9099: Random occurrence events +###################################### + +# religious minority caught stealing arcane works +lordaeron.9001 = { + + type = character_event + title = lordaeron.9001.title + theme = intrigue + + desc = { + first_valid = { + triggered_desc = { + trigger = { scope:new_character.faith = faith:echo_of_life } + desc = lordaeron.9001.desc.echoseeker + } + triggered_desc = { + trigger = { scope:new_character.faith = faith:alchemical_materialism } + desc = lordaeron.9001.desc.alchemist + } + desc = lordaeron.9001.desc.forgotten + } + } + + immediate = { + + create_character = { + age = { 18 40 } + diplomacy = { min_template_low_skill max_template_decent_skill } + martial = { min_template_low_skill max_template_low_skill } + stewardship = { min_template_low_skill max_template_average_skill } + intrigue = { min_template_decent_skill max_template_decent_skill } + learning = { min_template_decent_skill max_template_decent_skill } + faith = faith:holy_light + culture = root.culture + location = root.location + random_traits_list = { + count = 1 + education_intrigue_2 = {} + education_learning_2 = {} + } + random_traits = yes + gender_female_chance = 50 + save_scope_as = new_character + after_creation = { + trigger_race_giving_no_gene_effect = yes + become_undead_effect = yes + random_list = { + 50 = { + set_character_faith = faith:echo_of_life + } + 50 = { + modifier = { + factor = 0 + OR = { + root.faith = faith:alchemical_materialism + NOT = { + title:b_lordaeron = { + var:develop_the_undercity ?= flag:finished + } + } + } + } + set_character_faith = faith:alchemical_materialism + } + 50 = { + trigger = { + OR = { + root.faith = faith:echo_of_life + root.faith = faith:alchemical_materialism + } + title:b_lordaeron = { + var:develop_the_undercity ?= flag:finished + } + } + set_character_faith = faith:forgotten_shadow + } + } + } + } + hidden_effect = { + add_visiting_courtier = scope:new_character + add_opinion = { + target = scope:new_character + modifier = theft_opinion + } + } + } + + right_portrait = { + character = scope:new_character + animation = shame + } + + left_portrait = { + character = root + animation = disapproval + } + + #execute them + option = { + name = lordaeron.9000.opt.e + show_as_tooltip = { + execute_prisoner_effect = { + VICTIM = scope:new_character + EXECUTIONER = root + } + } + add_dread = 5 + add_character_modifier = { + modifier = wc_executed_religious_minority_modifier + years = 2 + } + } + + #imprison them + option = { + name = lordaeron.9000.opt.a + imprison_character_effect = { + TARGET = scope:new_character + IMPRISONER = root + } + } + + #fine them + option = { + name = lordaeron.9000.opt.b + trigger = { stewardship >= decent_skill_rating } + add_gold = 50 + add_hook = { + type = indebted_hook + target = scope:new_character + } + remove_courtier_or_guest = { + character = scope:new_character + new_location = title:b_dalaran.title_province + } + } + + #invite them to court and get hook + option = { + name = lordaeron.9000.opt.c + scope:new_character = { + progress_towards_friend_effect = { + REASON = friend_showed_mercy + CHARACTER = root + OPINION = 50 + } + } + add_hook = { + target = scope:new_character + type = loyalty_hook + } + } + + #give them passage to Dalaran and get hook + option = { + name = lordaeron.9000.opt.d + trigger = { learning >= decent_skill_rating } + add_hook = { + target = scope:new_character + type = loyalty_hook + } + show_as_tooltip = { + random_list = { + 25 = { + remove_courtier_or_guest = { + character = scope:new_character + new_location = title:b_dalaran.title_province + } + } + 25 = { + remove_courtier_or_guest = { + character = scope:new_character + new_location = title:b_caer_darrow.title_province + } + } + 25 = { + remove_courtier_or_guest = { + character = scope:new_character + new_location = title:b_karazhan.title_province + } + } + 25 = { + remove_courtier_or_guest = { + character = scope:new_character + new_location = title:b_gnomeregan.title_province + } + } + 25 = { + remove_courtier_or_guest = { + character = scope:new_character + new_location = title:b_falthrien.title_province + } + } + 25 = { + trigger = { in_diplomatic_range = title:b_narthalas_ruins.holder} + remove_courtier_or_guest = { + character = scope:new_character + new_location = title:b_narthalas_ruins.title_province + } + } + + } + } + } +} From 21578ed797d418296106fb9cf5397ec048c1436e Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sat, 16 Dec 2023 00:01:22 -0500 Subject: [PATCH 04/39] add loc for forsaken religious minority event --- events/wc_events/wc_lordaeron_events.txt | 27 ++++++++++++++++++- .../wc_lordaeron_events_l_english.yml | 17 +++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 340a6cfec0..71d9a83813 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -499,6 +499,10 @@ lordaeron.9001 = { trigger = { scope:new_character.faith = faith:alchemical_materialism } desc = lordaeron.9001.desc.alchemist } + triggered_desc = { + trigger = { scope:new_character.faith = faith:forsaken_cult } + desc = lordaeron.9001.desc.forsaken + } desc = lordaeron.9001.desc.forgotten } } @@ -527,7 +531,11 @@ lordaeron.9001 = { trigger_race_giving_no_gene_effect = yes become_undead_effect = yes random_list = { - 50 = { + 50 = { + modifier = { + factor = 0 + root.faith = faith:echo_of_life + } set_character_faith = faith:echo_of_life } 50 = { @@ -555,6 +563,21 @@ lordaeron.9001 = { } } set_character_faith = faith:forgotten_shadow + add_trait = devoted + } + 50 = { + trigger = { + OR = { + root.faith = faith:echo_of_life + root.faith = faith:alchemical_materialism + } + NOT = { + title:b_lordaeron = { + var:develop_the_undercity ?= flag:finished + } + } + } + set_character_faith = faith:forsaken_cult } } } @@ -605,6 +628,7 @@ lordaeron.9001 = { #fine them option = { + trigger = { NOT = { scope:new_character.faith = faith:forsaken_cult}} name = lordaeron.9000.opt.b trigger = { stewardship >= decent_skill_rating } add_gold = 50 @@ -621,6 +645,7 @@ lordaeron.9001 = { #invite them to court and get hook option = { name = lordaeron.9000.opt.c + trigger = { NOT = { scope:new_character.faith = faith:forsaken_cult}} scope:new_character = { progress_towards_friend_effect = { REASON = friend_showed_mercy diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index bbfdf50e8f..1b1b62d19e 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -24,4 +24,19 @@ lordaeron.1101.desc:0 "And so, the other shoe has dropped. During our construction of the Undercity, rumors abounded of hidden knowledge discovered deep within the sewer system. Our inquisitors, agents, and [court_chaplains] have uncovered cells of hidden crypto-religionists following the so-called $forgotten_shadow$. These teachings originated with Natalie Seline, a priest of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, our people who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Now, my councillors implore me to find a way to proceed regarding this new development..." lordaeron.1101.opt.a:0 "We will adapt this forbidden knowledge to our advantage!" lordaeron.1101.opt.b:0 "Let us have a separation of church and state. Embrace the shadow!" - lordaeron.1101.opt.c:0 "Our land can be a home for many faiths. Die and let live..." \ No newline at end of file + lordaeron.1101.opt.c:0 "Our land can be a home for many faiths. Die and let live..." + + +###################################### +#9000 - 9999: Random occurrence events +###################################### + +lordaeron.9001.desc.echoseeker:0 "Our archivists caught a suspicious individual leaving our library sanctum with classified magical grimoires and rare scrolls. Apparently the individual is one of a small sect of liberated undead who seek to regain the "$echo_of_life$" through Arcane magic. Known as "$echo_of_life_adherent_plural$"", these individuals are not known to proselytize actively but often engage in risky and dangerous magical practices. However, as this individual stands before me I can see no hint of malice; rather a pitiful and desperate individual begging for mercy and a second chance.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their pitiful beliefs." +lordaeron.9001.desc.alchemist:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of a small sect of liberated undead who reject all divinity known as "$alchemical_materialism_adherent_plural$". These individuals are not known to proselytize actively but often engage in risky and dangerous alchemical practices. As this individual stands before me I can not ignore a hint of malice behind the glimmering intellect of a crafty and talented alchemist.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their cynical beliefs." +lordaeron.9001.desc.forgotten:0 "Our archivists caught a suspicious individual leaving our library sanctum with copies of classified documents relating to the teachings of Natalie Seline. Apparently the individual is one of these followers of "Forgotten Shadow" who emerged following our excavation of the Undercity. While they are frequently charitable and often noble individuals, their continued proselytization has been known to upset the established order of our land. As this individual stands before me I can see no hint of malice, nor can I ignore the glimmering intellect of a learned priest.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their misguided beliefs." +lordaeron.9001.desc.forsaken:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of these "$forsaken_cult_adherent_plural" who still follow the old, autocratic ways. These individuals are known to proselytize actively and often engage in risky and dangerous alchemical practices. As this admittedly talented individual stands before me, I can not ignore the danger they represent to the fledgeling order of the land.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, while too dangerous to be allowed to remain in the realm, they may prove a potent spy." +lordaeron.9000.opt.e:0 "Execute this insolent fool." +lordaeron.9000.opt.a:0 "Throw the pitiful sod in jail." +lordaeron.9000.opt.b:0 "Fine and release the thief to curry favor with those gone astray." +lordaeron.9000.opt.c:0 "Your talent has granted you a second chance. Come work for me." +lordaeron.9000.opt.e:0 "You live by my will alone, now go and do my bidding..." From cfc88f74b2fa647e2aef3f9ec5149a412a75f2b4 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sat, 16 Dec 2023 16:17:06 -0500 Subject: [PATCH 05/39] add in lordaeron.9001 --- .../wc_story_cycle_forsaken_origin.txt | 40 +++++++++++++------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 09f13df81a..46560d2edf 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -23,6 +23,7 @@ } title:c_lordaeron = { has_variable = develop_the_undercity + NOT = { var:develop_the_undercity ?= flag:interruption } } } @@ -43,13 +44,15 @@ # trigger = { # title:b_lordaeron = { # holder = { - # self_or_liege_is_of_forsaken_like_culture = no + # self_or_liege_is_of_forsaken_like_culture = yes # } - # var:develop_the_undercity = flag:finished + # has_variable = develop_the_undercity + # var:develop_the_undercity ?= flag:finished # } # } # triggered_effect = { + # #alert the original builder that undercity was completed # story_owner = { # trigger_event = { # id = lordaeron.1001 @@ -57,18 +60,13 @@ # delayed = yes # } # } + # # alert the current owner that undercity was completed # title:b_lordaeron = { # holder = { - # if = { - # limit = { - # NOT = { this = story_owner } - # self_or_liege_is_of_forsaken_like_culture = yes - # } - # trigger_event = { - # id = lordaeron.1004 - # days = 7 - # delayed = yes - # } + # trigger_event = { + # id = lordaeron.1004 + # days = 7 + # delayed = yes # } # } # } @@ -88,6 +86,22 @@ #fun random events effect_group = { - + days = 60 + + triggered_effect = { + random_list = { + 10 = { + story_owner = { + trigger_event = { + id = lordaeron.9001 + days = {1 30} + } + } + } + 70 = { + # uneventful + } + } + } } } \ No newline at end of file From 5d5ae29b09274360ad2ee5d20baeeebbfb93c3be Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sat, 16 Dec 2023 17:57:28 -0500 Subject: [PATCH 06/39] move ownership check to story cycle --- common/decisions/wc_lordaeron_decisions.txt | 4 ++ common/on_action/title_on_actions.txt | 12 ---- common/on_action/wc_lordaeron_on_actions.txt | 9 --- .../scripted_effects/wc_lordaeron_effects.txt | 44 +++++++------- .../wc_story_cycle_forsaken_origin.txt | 59 +++++++++++-------- events/wc_events/wc_lordaeron_events.txt | 15 ++--- .../wc_lordaeron_events_l_english.yml | 3 +- 7 files changed, 67 insertions(+), 79 deletions(-) diff --git a/common/decisions/wc_lordaeron_decisions.txt b/common/decisions/wc_lordaeron_decisions.txt index 4b79923116..2984e21dc6 100644 --- a/common/decisions/wc_lordaeron_decisions.txt +++ b/common/decisions/wc_lordaeron_decisions.txt @@ -65,6 +65,10 @@ develop_the_undercity = { years = 2 delayed = yes } + if = { + limit = { NOT = {any_owned_story = { story_type = story_cycle_forsaken_origins } } } + } + create_story = story_cycle_forsaken_origins } show_as_tooltip = { diff --git a/common/on_action/title_on_actions.txt b/common/on_action/title_on_actions.txt index be1720991f..63b69f75b9 100644 --- a/common/on_action/title_on_actions.txt +++ b/common/on_action/title_on_actions.txt @@ -441,18 +441,6 @@ on_title_lost = { } } - #TODO: Replace with story cycle check! - if = { - limit = { - scope:title = { - this = title:c_lordaeron - } - } - trigger_event = { - on_action = lordaeron_lost_on_action - } - } - # Memories # Lost a significant title if = { diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index a78cfef7f9..f20072e160 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -1,14 +1,5 @@  -#TODO: remove this and turn forsaken events into a story cycle -lordaeron_lost_on_action = { - - effect = { - lordaeron_check_undercity_being_built = yes - } - -} - undercity_complete_on_action = { effect = { diff --git a/common/scripted_effects/wc_lordaeron_effects.txt b/common/scripted_effects/wc_lordaeron_effects.txt index 7fec292026..905ac4356e 100644 --- a/common/scripted_effects/wc_lordaeron_effects.txt +++ b/common/scripted_effects/wc_lordaeron_effects.txt @@ -1,27 +1,27 @@  #coming from title_on_actions we should have root = prev holder, scope:title = title is c_lordaeron changing hands, scope:new_holder = new holder -lordaeron_check_undercity_being_built = { - if = { - limit = { - self_or_liege_is_of_forsaken_like_culture = yes - scope:new_holder = { - self_or_liege_is_of_forsaken_like_culture = no - } - title:b_lordaeron = { - var:develop_the_undercity ?= flag:construction - } - } - global_var:sylvanas_character = { - if = { - limit = { is_alive = yes } - trigger_event = { - id = lordaeron.1002 - days = 7 - } - } - } - } -} +# lordaeron_check_undercity_being_built = { +# if = { +# limit = { +# self_or_liege_is_of_forsaken_like_culture = yes +# scope:new_holder = { +# self_or_liege_is_of_forsaken_like_culture = no +# } +# title:b_lordaeron = { +# var:develop_the_undercity ?= flag:construction +# } +# } +# global_var:sylvanas_character = { +# if = { +# limit = { is_alive = yes } +# trigger_event = { +# id = lordaeron.1002 +# days = 7 +# } +# } +# } +# } +# } try_to_set_forsaken_origin_story_owner = { if = { diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 46560d2edf..27bd4326b8 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -1,6 +1,7 @@ -forsaken_origins_story_cycle = { +story_cycle_forsaken_origins = { on_setup = { #possibly make it so that only one person can ever get this story cycle + debug_log = "SS - forsaken origin story cycle started" } on_end = { @@ -11,28 +12,33 @@ try_to_set_forsaken_origin_story_owner = { OWNER = story_owner.primary_heir } } - #check for lost ownership of Lordaeron every 30 days following undercity rebuild + #events that can happen during construction of undercity effect_group = { days = 7 - + trigger = { title:b_lordaeron = { - holder = { - self_or_liege_is_of_forsaken_like_culture = no - } - } - title:c_lordaeron = { has_variable = develop_the_undercity - NOT = { var:develop_the_undercity ?= flag:interruption } + var:develop_the_undercity ?= flag:construction } } + #check for ownership of lordaeron triggered_effect = { - story_owner = { - trigger_event = { - id = lordaeron.1002 - days = 7 - delayed = yes + trigger = { + title:b_lordaeron = { + holder = { + self_or_liege_is_of_forsaken_like_culture = no + } + } + } + effect = { + story_owner = { + trigger_event = { + id = lordaeron.1002 + days = 7 + delayed = yes + } } } } @@ -88,18 +94,23 @@ effect_group = { days = 60 - triggered_effect = { - random_list = { - 10 = { - story_owner = { - trigger_event = { - id = lordaeron.9001 - days = {1 30} + triggered_effect = { + trigger = { + exists = story_owner + } + effect = { + random_list = { + 10 = { + story_owner = { + trigger_event = { + id = lordaeron.9001 + days = {1 30} + } } } - } - 70 = { - # uneventful + 70 = { + # uneventful + } } } } diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 71d9a83813..e8b150024d 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -178,15 +178,6 @@ lordaeron.1002 = { # } # immediate = { -# title:b_lordaeron.title_province = { -# remove_province_modifier = wc_building_undercity -# } -# hidden_effect = { -# trigger_event = { -# on_action = undercity_reset_construction -# months = 1 #{29 31} -# } -# } # } # option = { @@ -628,9 +619,11 @@ lordaeron.9001 = { #fine them option = { - trigger = { NOT = { scope:new_character.faith = faith:forsaken_cult}} name = lordaeron.9000.opt.b - trigger = { stewardship >= decent_skill_rating } + trigger = { + NOT = { scope:new_character.faith = faith:forsaken_cult} + stewardship >= decent_skill_rating + } add_gold = 50 add_hook = { type = indebted_hook diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index 1b1b62d19e..fcf85302a4 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -31,6 +31,7 @@ #9000 - 9999: Random occurrence events ###################################### +lordaeron.9001.title:0 "Caught Stealing" lordaeron.9001.desc.echoseeker:0 "Our archivists caught a suspicious individual leaving our library sanctum with classified magical grimoires and rare scrolls. Apparently the individual is one of a small sect of liberated undead who seek to regain the "$echo_of_life$" through Arcane magic. Known as "$echo_of_life_adherent_plural$"", these individuals are not known to proselytize actively but often engage in risky and dangerous magical practices. However, as this individual stands before me I can see no hint of malice; rather a pitiful and desperate individual begging for mercy and a second chance.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their pitiful beliefs." lordaeron.9001.desc.alchemist:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of a small sect of liberated undead who reject all divinity known as "$alchemical_materialism_adherent_plural$". These individuals are not known to proselytize actively but often engage in risky and dangerous alchemical practices. As this individual stands before me I can not ignore a hint of malice behind the glimmering intellect of a crafty and talented alchemist.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their cynical beliefs." lordaeron.9001.desc.forgotten:0 "Our archivists caught a suspicious individual leaving our library sanctum with copies of classified documents relating to the teachings of Natalie Seline. Apparently the individual is one of these followers of "Forgotten Shadow" who emerged following our excavation of the Undercity. While they are frequently charitable and often noble individuals, their continued proselytization has been known to upset the established order of our land. As this individual stands before me I can see no hint of malice, nor can I ignore the glimmering intellect of a learned priest.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their misguided beliefs." @@ -39,4 +40,4 @@ lordaeron.9000.opt.e:0 "Execute this insolent fool." lordaeron.9000.opt.a:0 "Throw the pitiful sod in jail." lordaeron.9000.opt.b:0 "Fine and release the thief to curry favor with those gone astray." lordaeron.9000.opt.c:0 "Your talent has granted you a second chance. Come work for me." -lordaeron.9000.opt.e:0 "You live by my will alone, now go and do my bidding..." +lordaeron.9000.opt.d:0 "You live by my will alone, now go and do my bidding..." From 8e4e6bee9655b709237bb1566b3e3f7c95985cc7 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sat, 16 Dec 2023 18:04:14 -0500 Subject: [PATCH 07/39] add delayed to flavor event --- common/story_cycles/wc_story_cycle_forsaken_origin.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 27bd4326b8..ba49a7de93 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -105,6 +105,7 @@ trigger_event = { id = lordaeron.9001 days = {1 30} + delayed = yes } } } From 9b66909958ad4c859d20297d870e8482a0b94b61 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sun, 17 Dec 2023 17:12:58 -0500 Subject: [PATCH 08/39] rename events; handle succession, completion --- common/decisions/wc_lordaeron_decisions.txt | 15 ++- common/on_action/wc_lordaeron_on_actions.txt | 5 +- .../scripted_effects/wc_lordaeron_effects.txt | 36 ++--- .../wc_story_cycle_forsaken_origin.txt | 123 +++++++++++------- events/wc_events/wc_lordaeron_events.txt | 111 +++++++++------- .../wc_lordaeron_events_l_english.yml | 26 ++-- .../modifiers/wc_modifiers_l_english.yml | 3 + 7 files changed, 180 insertions(+), 139 deletions(-) diff --git a/common/decisions/wc_lordaeron_decisions.txt b/common/decisions/wc_lordaeron_decisions.txt index 2984e21dc6..2929c36ffe 100644 --- a/common/decisions/wc_lordaeron_decisions.txt +++ b/common/decisions/wc_lordaeron_decisions.txt @@ -35,7 +35,7 @@ develop_the_undercity = { set_variable = { name = develop_the_undercity value = flag:construction - years = 3 + days = 750 } } @@ -45,7 +45,7 @@ develop_the_undercity = { } set_realm_capital = title:c_lordaeron } - debug_log = "SS - will trigger lordaeron.1001" + debug_log = "SS - 2y will trigger undercity_complete_action" hidden_effect = { if = { @@ -60,11 +60,6 @@ develop_the_undercity = { else = { set_global_variable = { name = sylvanas_character value = root } } - trigger_event = { - id = lordaeron.1001 - years = 2 - delayed = yes - } if = { limit = { NOT = {any_owned_story = { story_type = story_cycle_forsaken_origins } } } } @@ -79,6 +74,12 @@ develop_the_undercity = { modifier = wc_building_undercity years = 2 } + hidden_effect = { + trigger_event = { + on_action = undercity_complete_on_action + years = 2 + } + } } } diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index f20072e160..fcb19ef000 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -1,16 +1,19 @@  +#Undercity construction happy path = construction (started by decision) -> ready (completed by on_action) -> finished (verified by forsaken.1001) undercity_complete_on_action = { effect = { title:b_lordaeron = { + debug_log = "SS - undercity_complete_on_action" if = { limit = { var:develop_the_undercity = flag:construction } set_variable = { name = develop_the_undercity - value = flag:construction + value = flag:ready } } + remove_county_modifier = wc_building_undercity } } } diff --git a/common/scripted_effects/wc_lordaeron_effects.txt b/common/scripted_effects/wc_lordaeron_effects.txt index 905ac4356e..d14f048790 100644 --- a/common/scripted_effects/wc_lordaeron_effects.txt +++ b/common/scripted_effects/wc_lordaeron_effects.txt @@ -1,34 +1,16 @@  -#coming from title_on_actions we should have root = prev holder, scope:title = title is c_lordaeron changing hands, scope:new_holder = new holder -# lordaeron_check_undercity_being_built = { -# if = { -# limit = { -# self_or_liege_is_of_forsaken_like_culture = yes -# scope:new_holder = { -# self_or_liege_is_of_forsaken_like_culture = no -# } -# title:b_lordaeron = { -# var:develop_the_undercity ?= flag:construction -# } -# } -# global_var:sylvanas_character = { -# if = { -# limit = { is_alive = yes } -# trigger_event = { -# id = lordaeron.1002 -# days = 7 -# } -# } -# } -# } -# } - try_to_set_forsaken_origin_story_owner = { if = { - limit = { $OWNER$ = { is_of_forsaken_like_culture = yes } } - make_story_owner = $OWNER$ + limit = { $NEW_OWNER$ = { is_of_forsaken_like_culture = yes } } + $NEW_OWNER$ = { + trigger_event = { + id = forsaken.1003 + days = 1 + } + } + make_story_owner = $NEW_OWNER$ } else = { end_story = yes } -} \ No newline at end of file +} diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index ba49a7de93..b7230669c4 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -9,75 +9,110 @@ } on_owner_death = { - try_to_set_forsaken_origin_story_owner = { OWNER = story_owner.primary_heir } + if = { + limit = { exists = story_owner } + try_to_set_forsaken_origin_story_owner = { NEW_OWNER = story_owner.primary_heir } + } + else = { + end_story = yes + } } #events that can happen during construction of undercity - effect_group = { + effect_group = { #Effect Group A days = 7 trigger = { title:b_lordaeron = { has_variable = develop_the_undercity - var:develop_the_undercity ?= flag:construction + OR = { + var:develop_the_undercity ?= flag:construction + var:develop_the_undercity ?= flag:ready + } } } #check for ownership of lordaeron triggered_effect = { trigger = { - title:b_lordaeron = { - holder = { - self_or_liege_is_of_forsaken_like_culture = no - } + title:b_lordaeron.holder = { + self_or_liege_is_of_forsaken_like_culture = no } } effect = { story_owner = { trigger_event = { - id = lordaeron.1002 + id = forsaken.1002 days = 7 delayed = yes } } } } + + # chance to delay construction if control is low + # triggered_effect = { + # trigger = { + # title:c_lordaeron = { + # county_control < 25 + # NOT = { is_target_of_council_task = task_increase_control } + # } + # } + # effect = { + # story_owner = { + # send_interface_toast = { + # title = build_the_undercity_setback.tt + # left_icon = scope:host + # custom_tooltip = build_the_undercity_setback.details.tt + # hidden_effect = { + + # } + # } + # } + # } + # } } - # effect_group = { - # days = 7 - # trigger = { - # title:b_lordaeron = { - # holder = { - # self_or_liege_is_of_forsaken_like_culture = yes - # } - # has_variable = develop_the_undercity - # var:develop_the_undercity ?= flag:finished - # } - # } + #undercity ready events + #TODO: different event/description for owner of the city if different from story owner + #TODO: different event/description for owner of the city if story owner is not their liege but they are forsaken-like + effect_group = { #Effect Group B + days = 30 + + trigger = { + title:b_lordaeron = { + has_variable = develop_the_undercity + var:develop_the_undercity ?= flag:ready + } + } + + triggered_effect = { + trigger = { + title:b_lordaeron.holder = { + self_or_liege_is_of_forsaken_like_culture = yes + } + } + effect = { + debug_log = "SS - story_cycle_forsaken_origins" + story_owner = { + trigger_event = { + id = forsaken.1001 + days = 7 + } + } + if = { limit = { NOT = {title:b_lordaeron.holder = story_owner} } + title:b_lordaeron.holder = { + trigger_event = { + id = forsaken.1004 + days = 7 + } + } + } + } + } + } - # triggered_effect = { - # #alert the original builder that undercity was completed - # story_owner = { - # trigger_event = { - # id = lordaeron.1001 - # days = 7 - # delayed = yes - # } - # } - # # alert the current owner that undercity was completed - # title:b_lordaeron = { - # holder = { - # trigger_event = { - # id = lordaeron.1004 - # days = 7 - # delayed = yes - # } - # } - # } - # } - # } # NAND = { # AND = { # make sure owner is Forsaken @@ -91,8 +126,8 @@ # } #fun random events - effect_group = { - days = 60 + effect_group = { #Effect Group X + days = 180 triggered_effect = { trigger = { @@ -103,13 +138,13 @@ 10 = { story_owner = { trigger_event = { - id = lordaeron.9001 + id = forsaken.9001 days = {1 30} delayed = yes } } } - 70 = { + 90 = { # uneventful } } diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index e8b150024d..575317d80c 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1,14 +1,14 @@ -namespace = lordaeron +namespace = forsaken ############################################## # 1001 - 1099: Reclamation of Lordaeron Events ############################################## -lordaeron.1001 = { +forsaken.1001 = { type = character_event - title = lordaeron.1001.title - desc = lordaeron.1001.desc + title = forsaken.1001.title + desc = forsaken.1001.desc theme = stewardship override_background = market @@ -46,7 +46,7 @@ lordaeron.1001 = { } } } - var:develop_the_undercity ?= flag:construction + var:develop_the_undercity ?= flag:ready } } @@ -55,19 +55,19 @@ lordaeron.1001 = { title:b_lordaeron.holder = { if = { limit = { NOT = { this = root } self_or_liege_is_of_forsaken_like_culture = yes } - trigger_event = { id = lordaeron.1001 days = 1 } + trigger_event = { id = forsaken.1001 days = 1 } } else = { - trigger_event = { id = lordaeron.1002 days = 1 } + trigger_event = { id = forsaken.1002 days = 1 } } } } option = { - name = lordaeron.1001.opt.a + name = forsaken.1001.opt.a show_as_tooltip = { - custom_tooltip = lordaeron.1001.tooltip.a + custom_tooltip = forsaken.1001.tooltip.a } hidden_effect = { @@ -75,7 +75,7 @@ lordaeron.1001 = { if = { limit = { is_alive = yes } trigger_event = { - id = lordaeron.1101 + id = forsaken.1100 years = 2 delayed = yes } @@ -127,11 +127,11 @@ lordaeron.1001 = { } # Failed construction of Undercity -lordaeron.1002 = { +forsaken.1002 = { type = character_event - title = lordaeron.1002.title - desc = lordaeron.1002.desc + title = forsaken.1002.title + desc = forsaken.1002.desc theme = dungeon override_background = market @@ -156,38 +156,57 @@ lordaeron.1002 = { } option = { - name = lordaeron.1002.opt.a + name = forsaken.1002.opt.a show_as_tooltip = { - custom_tooltip = lordaeron.1002.tooltip.a + custom_tooltip = forsaken.1002.tooltip.a } } } -# Change in story ownership -# lordaeron.1003 = { +#Change in story ownership +forsaken.1003 = { -# type = character_event -# title = lordaeron.1003.title -# desc = lordaeron.1003.desc -# theme = intrigue + type = character_event + title = forsaken.1003.title + desc = forsaken.1003.desc + theme = skull + + right_portrait = { + character = root + animation = grief + } + + immediate = { + + } + + option = { + name = forsaken.1003.opt.a + } + +} -# right_portrait = { -# character = root -# animation = stress -# } +#Change in story ownership +forsaken.1004 = { -# immediate = { -# } + type = character_event + title = forsaken.1004.title + theme = skull -# option = { -# name = lordaeron.1002.opt.a -# show_as_tooltip = { -# custom_tooltip = lordaeron.1002.tooltip.a -# } -# } + right_portrait = { + character = root + animation = rage + } + + immediate = { + } + + option = { + name = forsaken.1004.opt.a + } -# } +} ##################################### @@ -196,13 +215,11 @@ lordaeron.1002 = { #1100 - 1109: Selenite Revival -#lordaeron.1100 = { } Selenite Revival Redirect event in case Lordaeron changes hands - -lordaeron.1101 = { +forsaken.1100 = { type = character_event - title = lordaeron.1101.title - desc = lordaeron.1101.desc + title = forsaken.1100.title + desc = forsaken.1100.desc theme = faith override_background = wc_undercity_throne_room @@ -275,7 +292,7 @@ lordaeron.1101 = { option = { # retain sylvanas cult of personality - AI chance 75 - name = lordaeron.1101.opt.a + name = forsaken.1100.opt.a title:c_lordaeron = { set_county_faith = faith:forsaken_cult } @@ -285,7 +302,7 @@ lordaeron.1101 = { custom_tooltip = { text = damned_will_convert_to_forsaken_cult trigger_event = { - id = lordaeron.1102 + id = forsaken.1101 } } ai_chance = { @@ -301,7 +318,7 @@ lordaeron.1101 = { option = { # convert and delegate religious authority to cult of forgotten shadow - AI chance 20 - name = lordaeron.1101.opt.b + name = forsaken.1100.opt.b trigger = { NOT = { any_held_title = { is_head_of_faith = yes } } } @@ -312,7 +329,7 @@ lordaeron.1101 = { custom_tooltip = { text = cultists_will_convert_to_forgotten_shadow - trigger_event = lordaeron.1103 + trigger_event = forsaken.1102 } add_character_modifier = wc_forsaken_embraced_selinite_modifier @@ -328,7 +345,7 @@ lordaeron.1101 = { option = { # retain cult of personality but grant religious freedom to selinites - AI chance 5 - name = lordaeron.1101.opt.c + name = forsaken.1100.opt.c #vassal_contract_set_obligation_level = { type = religious_rights level = 1 } wanted to do this but necro govt blocks it random_list = { 55 = { @@ -366,7 +383,7 @@ lordaeron.1101 = { } } -lordaeron.1102 = { +forsaken.1101 = { hidden = yes type = character_event @@ -420,7 +437,7 @@ lordaeron.1102 = { } } -lordaeron.1103 = { +forsaken.1102 = { hidden = yes type = character_event @@ -474,7 +491,7 @@ lordaeron.1103 = { ###################################### # religious minority caught stealing arcane works -lordaeron.9001 = { +forsaken.9001 = { type = character_event title = lordaeron.9001.title diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index fcf85302a4..f0d336c048 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -3,15 +3,15 @@ # 1001 - 1099: Reclamation of Lordaeron Events ############################################## - lordaeron.1001.title:0 "The Undercity Rebuilt" - lordaeron.1001.desc:0 "The elevator lurches, and for a moment I am startled, but as the descent begins I quickly regain my composure. My engineers assure me these devices work to a high tolerance, but the effect is no less jarring as machines of this size are uncommon in the scourged wasteland that was once Lordaeron.\n\nAs the elevator descends, a dazzling sight begins to open up to me- a vast city beneath a city, bustling with soldiers, traders, magic users, and of course my growing cadre of government officials. The sewer's vaulted tunnels have been fortified with iron gates and stone reinforcements. Abominations and Forsaken warriors with their menacing crossbows stand guard. [GetGlobalVariable('sylvanas_character').Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] dream has been realized... From this underground fortress the Forsaken shall never be dislodged!\n\nAs the descent nears its end, I prepare a few words to the gathered throng of Forsaken and allies. Rumors gathered by my [spymaster] and [court_chaplains] tell of hidden knowledge unearthed in the ruins, which has so far escaped our oversight. Our top agents are tracking down this literature at this moment to gague its usefulness to the realm. For now, I must push these thoughts from my mind as I prepare to inagurate this great edifice of our burgeoning culture.\n\nThe elevator slows to a stop..." - lordaeron.1001.opt.a:0 "This is a momentous day for the Forsaken!" - lordaeron.1001.tooltip.a:0 "#X We will find out in time if there is any truth to the rumors of hidden knowledge rediscovered in the sewers...#!" + forsaken.1001.title:0 "The Undercity Rebuilt" + forsaken.1001.desc.owned:0 "The elevator lurches, and for a moment I am startled, but as the descent begins I quickly regain my composure. My engineers assure me these devices work to a high tolerance, but the effect is no less jarring as machines of this size are uncommon in the scourged wasteland that was once Lordaeron.\n\nAs the elevator descends, a dazzling sight begins to open up to me- a vast city beneath a city, bustling with soldiers, traders, magic users, and of course my growing cadre of government officials. The sewer's vaulted tunnels have been fortified with iron gates and stone reinforcements. Abominations and Forsaken warriors with their menacing crossbows stand guard. [GetGlobalVariable('sylvanas_character').Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] dream has been realized... From this underground fortress the Forsaken shall never be dislodged!\n\nAs the descent nears its end, I prepare a few words to the gathered throng of Forsaken and allies. Rumors gathered by my [spymaster] and [court_chaplains] tell of hidden knowledge unearthed in the ruins, which has so far escaped our oversight. Our top agents are tracking down this literature at this moment to gague its usefulness to the realm. For now, I must push these thoughts from my mind as I prepare to inagurate this great edifice of our burgeoning culture.\n\nThe elevator slows to a stop..." + forsaken.1001.opt.a:0 "This is a momentous day for the Forsaken!" + forsaken.1001.tooltip.a:0 "#X We will find out in time if there is any truth to the rumors of hidden knowledge rediscovered in the sewers...#!" - lordaeron.1002.title:0 "A Dream Deferred" - lordaeron.1002.desc:0 "Our efforts to secure the Undercity have come to an end, as we have lost our control over the capital city. Perhaps in a number of years we may be able to try again once we have reconquered this territory which is ours by right, but for now it seems the dream of a home beneath the ruins of Lordaeron is outside our reach." - lordaeron.1002.opt.a:0 "This loss will not go unavenged!" - lordaeron.1002.tooltip.a:0 "You or another of your culture will be able to build the Undercity again in 5 years." + forsaken.1002.title:0 "A Dream Deferred" + forsaken.1002.desc:0 "Our efforts to secure the Undercity have come to an end, as we have lost our control over the capital city. Perhaps in a number of years we may be able to try again once we have reconquered this territory which is ours by right, but for now it seems the dream of a home beneath the ruins of Lordaeron is outside our reach." + forsaken.1002.opt.a:0 "This loss will not go unavenged!" + forsaken.1002.tooltip.a:0 "You or another of your culture will be able to build the Undercity again in 5 years." ##################################### @@ -20,11 +20,11 @@ #1100 - 1109: Selenite Revival - lordaeron.1101.title:0 "$forgotten_shadow$: The Selinite Revival" - lordaeron.1101.desc:0 "And so, the other shoe has dropped. During our construction of the Undercity, rumors abounded of hidden knowledge discovered deep within the sewer system. Our inquisitors, agents, and [court_chaplains] have uncovered cells of hidden crypto-religionists following the so-called $forgotten_shadow$. These teachings originated with Natalie Seline, a priest of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, our people who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Now, my councillors implore me to find a way to proceed regarding this new development..." - lordaeron.1101.opt.a:0 "We will adapt this forbidden knowledge to our advantage!" - lordaeron.1101.opt.b:0 "Let us have a separation of church and state. Embrace the shadow!" - lordaeron.1101.opt.c:0 "Our land can be a home for many faiths. Die and let live..." + forsaken.1100.title:0 "$forgotten_shadow$: The Selinite Revival" + forsaken.1100.desc:0 "And so, the other shoe has dropped. During our construction of the Undercity, rumors abounded of hidden knowledge discovered deep within the sewer system. Our inquisitors, agents, and [court_chaplains] have uncovered cells of hidden crypto-religionists following the so-called $forgotten_shadow$. These teachings originated with Natalie Seline, a priest of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, our people who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Now, my councillors implore me to find a way to proceed regarding this new development..." + forsaken.1100.opt.a:0 "We will adapt this forbidden knowledge to our advantage!" + forsaken.1100.opt.b:0 "Let us have a separation of church and state. Embrace the shadow!" + forsaken.1100.opt.c:0 "Our land can be a home for many faiths. Die and let live..." ###################################### diff --git a/localization/english/modifiers/wc_modifiers_l_english.yml b/localization/english/modifiers/wc_modifiers_l_english.yml index 2a27d4baed..3c9c3ea0eb 100644 --- a/localization/english/modifiers/wc_modifiers_l_english.yml +++ b/localization/english/modifiers/wc_modifiers_l_english.yml @@ -234,6 +234,9 @@ wc_forsaken_subsumed_selinite_modifier:0 "Subsumption of the Forgotten" wc_forsaken_subsumed_selinite_modifier_desc:0 "Under the auspices of the [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName], this character oversaw the redefinition of $d_forgotten_shadow$ to suit [GetGlobalVariable('sylvanas_character').Char.GetHerHis] ends." + wc_executed_religious_minority_modifier:0 "Executed Minority Religionist" + wc_executed_religious_minority_modifier_desc:0 "This character is known for mercilessly persecuting religious minorities." + #Faith Related Values rf_shadow_opinion:0 "$shadow_group_adj$ Religion Opinion" forgotten_shadow_opinion:0 "$forgotten_shadow$ Faith Opinion" From 3e9cb9cd0877348ab361f62c90e8255cbcf7e556 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Mon, 18 Dec 2023 19:47:17 -0500 Subject: [PATCH 09/39] add new event and paths for uc completion --- common/on_action/wc_lordaeron_on_actions.txt | 2 +- .../scripted_effects/wc_lordaeron_effects.txt | 46 ++++++ .../wc_story_cycle_forsaken_origin.txt | 4 +- events/wc_events/wc_lordaeron_events.txt | 139 ++++++++++-------- .../wc_lordaeron_events_l_english.yml | 18 ++- 5 files changed, 143 insertions(+), 66 deletions(-) diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index fcb19ef000..a24f038724 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -13,7 +13,7 @@ undercity_complete_on_action = { value = flag:ready } } - remove_county_modifier = wc_building_undercity + title_province = { remove_province_modifier = wc_building_undercity } } } } diff --git a/common/scripted_effects/wc_lordaeron_effects.txt b/common/scripted_effects/wc_lordaeron_effects.txt index d14f048790..810670ef3c 100644 --- a/common/scripted_effects/wc_lordaeron_effects.txt +++ b/common/scripted_effects/wc_lordaeron_effects.txt @@ -14,3 +14,49 @@ try_to_set_forsaken_origin_story_owner = { end_story = yes } } + +create_dispersed_crypto_religionists = { + + $FAITH$ = { + save_scope_as = crypto_faith + } + + every_vassal_or_below = { + limit = { + faith.religion = scope:crypto_faith.religion + NOT = { government_has_flag = government_is_theocracy } + } + add_to_temporary_list = tmp_courts + } + while = { + count = 3 # in three different courts... + random_in_list = { + list = tmp_courts + every_courtier_or_guest = { + limit = { + NAND = { + has_council_position = councillor_court_chaplain + NOR = { + faith = scope:crypto_faith + piety_level >= 2 + exists = secret_faith + } + NOR = { has_trait = zealous has_trait = loyal has_trait = holy_warrior has_trait = stubborn } + } + } + add_to_temporary_list = tmp_potential_cryptos + } + remove_from_list = tmp_courts + } + } + + while = { + count = 4 # ...four different people will convert to forgotten shadow + random_in_list = { + list = tmp_potential_cryptos + make_character_crypto_religionist_effect = { CRYPTO_RELIGION = faith:forgotten_shadow } + remove_from_list = tmp_potential_cryptos + } + } + #total: 12 characters will adopt Forgotten Shadow secretly +} diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index b7230669c4..964a421af9 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -135,7 +135,7 @@ } effect = { random_list = { - 10 = { + 30 = { story_owner = { trigger_event = { id = forsaken.9001 @@ -144,7 +144,7 @@ } } } - 90 = { + 70 = { # uneventful } } diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 575317d80c..443e6247a8 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1,5 +1,17 @@ namespace = forsaken +############################################## +# 0001 - 0099: Pre-Divergence Events +############################################## + +# interactions between Arthas anc a character who will come to rule the Forsaken (Sylvanas or someone else) + +############################################## +# 0501 - 0599: Divergence Events +############################################## + +# events where that character breaks away from the scourge + ############################################## # 1001 - 1099: Reclamation of Lordaeron Events ############################################## @@ -8,11 +20,23 @@ forsaken.1001 = { type = character_event title = forsaken.1001.title - desc = forsaken.1001.desc theme = stewardship override_background = market + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } + } + desc = forsaken.1001.desc.independent + } + desc = forsaken.1001.desc.owned + } + } + immediate = { + #scope:story.story_owner = { save_scope_as = story_owner } title:b_lordaeron.title_province = { remove_building = ruined_palace_01 add_special_building = ruined_palace_02 @@ -34,17 +58,8 @@ forsaken.1001 = { trigger = { title:b_lordaeron = { - holder = { - OR = { - AND = { # make sure i have the title... - is_of_forsaken_like_culture = yes - this = root - } - AND = { # or that I gave out the title to someome... - self_or_liege_is_of_forsaken_like_culture = yes - any_liege_or_above = {this = root } - } - } + holder = { + self_or_liege_is_of_forsaken_like_culture = yes } var:develop_the_undercity ?= flag:ready } @@ -64,7 +79,17 @@ forsaken.1001 = { } option = { - name = forsaken.1001.opt.a + name = { + text = { + first_valid = { + triggered_desc = { + trigger = { NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } } + desc = forsaken.1001.opt.a.independent + } + desc = forsaken.1001.opt.a.owned + } + } + } show_as_tooltip = { custom_tooltip = forsaken.1001.tooltip.a @@ -82,44 +107,7 @@ forsaken.1001 = { } } - every_vassal_or_below = { - limit = { - faith.religion = { is_in_family = rf_shadow } - NOT = { government_has_flag = government_is_theocracy } - } - add_to_temporary_list = tmp_courts - } - while = { - count = 3 # in three different courts... - random_in_list = { - list = tmp_courts - every_courtier_or_guest = { - limit = { - NAND = { - has_council_position = councillor_court_chaplain - NOR = { - faith = faith:forgotten_shadow - piety_level >= 2 - exists = secret_faith - } - NOR = { has_trait = zealous has_trait = loyal has_trait = holy_warrior has_trait = stubborn } - } - } - add_to_temporary_list = tmp_potential_cryptos - } - remove_from_list = tmp_courts - } - } - - while = { - count = 4 # ...four different people will convert to forgotten shadow - random_in_list = { - list = tmp_potential_cryptos - make_character_crypto_religionist_effect = { CRYPTO_RELIGION = faith:forgotten_shadow } - remove_from_list = tmp_potential_cryptos - } - } - #total: 12 characters will adopt Forgotten Shadow secretly + create_dispersed_crypto_religionists = { FAITH = faith:forgotten_shadow } #TODO: Link the random vassals to the next event? could be cool to have secret faith characters randomly dispersed tho } } @@ -177,35 +165,64 @@ forsaken.1003 = { animation = grief } - immediate = { - - } - option = { name = forsaken.1003.opt.a } } -#Change in story ownership +#Owner of Lordaeron who is not story_owner upon completion forsaken.1004 = { type = character_event title = forsaken.1004.title - theme = skull + theme = stewardship - right_portrait = { + desc = { + first_valid = { + triggered_desc = { + trigger = { NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } } + desc = forsaken.1004.desc.independent + } + desc = forsaken.1004.desc.vassal + } + } + + left_portrait = { character = root - animation = rage + animation = celebrate_sword } - immediate = { + right_portrait = { + character = scope:story.story_owner + scripted_animation = { + triggered_animation = { + trigger = { NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } } + animation = disapproval + } + animation = steward + } } option = { + trigger = { NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } } name = forsaken.1004.opt.a + add_prestige = 100 + add_gold = 25 + show_as_tooltip = { + custom_tooltip = forsaken.1004.tooltip.a + } + hidden_effect = { + title:b_lordaeron.holder = { + create_dispersed_crypto_religionists = { FAITH = faith:forgotten_shadow } + } + } + } + + option = { + trigger = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } + name = forsaken.1004.opt.b } - } diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index f0d336c048..d3b0bb067c 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -4,8 +4,10 @@ ############################################## forsaken.1001.title:0 "The Undercity Rebuilt" - forsaken.1001.desc.owned:0 "The elevator lurches, and for a moment I am startled, but as the descent begins I quickly regain my composure. My engineers assure me these devices work to a high tolerance, but the effect is no less jarring as machines of this size are uncommon in the scourged wasteland that was once Lordaeron.\n\nAs the elevator descends, a dazzling sight begins to open up to me- a vast city beneath a city, bustling with soldiers, traders, magic users, and of course my growing cadre of government officials. The sewer's vaulted tunnels have been fortified with iron gates and stone reinforcements. Abominations and Forsaken warriors with their menacing crossbows stand guard. [GetGlobalVariable('sylvanas_character').Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] dream has been realized... From this underground fortress the Forsaken shall never be dislodged!\n\nAs the descent nears its end, I prepare a few words to the gathered throng of Forsaken and allies. Rumors gathered by my [spymaster] and [court_chaplains] tell of hidden knowledge unearthed in the ruins, which has so far escaped our oversight. Our top agents are tracking down this literature at this moment to gague its usefulness to the realm. For now, I must push these thoughts from my mind as I prepare to inagurate this great edifice of our burgeoning culture.\n\nThe elevator slows to a stop..." - forsaken.1001.opt.a:0 "This is a momentous day for the Forsaken!" + forsaken.1001.desc.owned:0 "The elevator lurches, and for a moment I am startled, but as the descent begins I quickly regain my composure. My engineers assure me these devices work to a high tolerance, but the effect is no less jarring as machines of this size are uncommon in the scourged wasteland that was once Lordaeron.\n\nAs the elevator descends, a dazzling sight begins to open up to me- a vast city beneath a city; bustling with soldiers, traders, magic users, and of course my growing cadre of government officials. The sewer's vaulted tunnels have been fortified with iron gates and stone reinforcements. Abominations and Forsaken warriors with their menacing crossbows stand guard. [GetGlobalVariable('sylvanas_character').Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] dream has been realized... From this underground fortress the Forsaken shall never be dislodged!\n\nAs the descent nears its end, I prepare a few words to the gathered throng of Forsaken and allies. Rumors gathered by my [spymaster] and [court_chaplains] tell of hidden knowledge unearthed in the ruins, which has so far escaped our oversight. Our top agents are tracking down this literature at this moment to gague its usefulness to the realm. For now, I must push these thoughts from my mind as I prepare to inagurate this great edifice of our burgeoning culture.\n\nThe elevator slows to a stop..." + forsaken.1001.desc.independent:0 "My spies report that the current holder of Lordaeron City has completed my project: The fortification of the Undercity. It will now make them much more difficult to dislodge should we attampt to retake the city again either by force or intrigue. What's worse, my agents report rumors of hidden knowledge unearthed in the ruins. As the standard bearer for our culture, it is probable that I will be faced with the consequences of this outcome." + forsaken.1001.opt.a.owned:0 "This is a momentous day for the Forsaken!" + forsaken.1001.opt.a.independent:0 "My life's work turned against me..." forsaken.1001.tooltip.a:0 "#X We will find out in time if there is any truth to the rumors of hidden knowledge rediscovered in the sewers...#!" forsaken.1002.title:0 "A Dream Deferred" @@ -13,6 +15,18 @@ forsaken.1002.opt.a:0 "This loss will not go unavenged!" forsaken.1002.tooltip.a:0 "You or another of your culture will be able to build the Undercity again in 5 years." + forsaken.1003.title:0 "A Legacy to Carry On" + forsaken.1003.desc:0 "Even as we mourn the recent loss of our leader, work continues on the Undercity project. It now falls to me to ensure the construction is a success and deal with any consequences. Work proceeds apace, but we must be vigilant to hold the territory of Lordaeron City until the work is completed and our kind can keep it permanently in the grasp of its rightful defenders." + forsaken.1003.opt.a:0 "Glory to the Forsaken!" + + forsaken.1004.title:0 "The Undercity Rebuilt" + forsaken.1004.desc.vassal:0 "Deep within the bowels of the Ruins of Lordaeron City, the gearshafts of a massive elevator begin to rumble as a crowd gathers alongside me. Beneath fortified portcullises and reinforced stone vaulting we stand in wait for our liege to inspect the work we have done here.\n\n"My [ROOT.Char.GetTitleAsName]," whispers my [spymaster] discreetly, "Our agents continue to pursue the rumors of forbidden mystical works discovered amongst the ruined tunnels earlier this year. It would not be wise to alert our... guest... to these goings on, lest we be held accountable for not securing them ourselves."\n\nI nod in approval, disguising my gesture as a greeting to one of the more notable individuals in attendance, and the [spymaster] slips away into the crowd. Every precaution has been made to ensure that this inauguration ceremony goes smoothly, every invitee thoroughly vetted. As the figure of our leader comes into view, I lead a cheer from the crowd..." + forsaken.1004.desc.independent:0 "The elevator lurches, and for a moment I am startled, but as the descent begins I quickly regain my composure. My engineers assure me these devices work to a high tolerance, but the effect is no less jarring as machines of this size are uncommon in the scourged wasteland that was once Lordaeron.\n\nAs the elevator descends, a dazzling sight begins to open up to me- a vast city beneath a city; bustling with soldiers, traders, magic users, and of course my growing cadre of government officials. The sewer's vaulted tunnels have been fortified with iron gates and stone reinforcements. Abominations and Forsaken warriors with their menacing crossbows stand guard. [GetGlobalVariable('sylvanas_character').Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] dream has been realized... From this underground fortress the Forsaken shall never be dislodged!\n\nAs the descent nears its end, I prepare a few words to the gathered throng of Forsaken and allies. Rumors gathered by my [spymaster] and [court_chaplains] tell of hidden knowledge unearthed in the ruins, which has so far escaped our oversight. Our top agents are tracking down this literature at this moment to gague its usefulness to the realm. For now, I must push these thoughts from my mind as I prepare to inagurate this great edifice of our burgeoning culture.\n\nThe elevator slows to a stop..." + forsaken.1004.opt.a:0 "This is a momentous day for the Forsaken!" + forsaken.1004.opt.b:0 "This is a momentous day for the Forsaken!" + forsaken.1004.tooltip.a:0 "#X We will find out in time if there is any truth to the rumors of hidden knowledge rediscovered in the sewers...#!" + + ##################################### #1100 - 1199: Post-Reclamation events From 487f68f7458c43c094989e54f18f99c1ecf4d005 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Tue, 19 Dec 2023 01:04:05 -0500 Subject: [PATCH 10/39] selenite revival holder rxn event naive implmntatn --- .../scripted_effects/wc_lordaeron_effects.txt | 25 ++ events/wc_events/wc_lordaeron_events.txt | 240 ++++++++++++++++-- 2 files changed, 240 insertions(+), 25 deletions(-) diff --git a/common/scripted_effects/wc_lordaeron_effects.txt b/common/scripted_effects/wc_lordaeron_effects.txt index 810670ef3c..f975985164 100644 --- a/common/scripted_effects/wc_lordaeron_effects.txt +++ b/common/scripted_effects/wc_lordaeron_effects.txt @@ -60,3 +60,28 @@ create_dispersed_crypto_religionists = { } #total: 12 characters will adopt Forgotten Shadow secretly } + +chance_convert_county_to_selinite = { + random_list = { + 55 = { + modifier = { add = 5 has_trait = zealous} + modifier = { add = 5 piety_level >= 3 } + modifier = { add = 5 piety_level >= 4 } + modifier = { add = 5 learning > decent_skill_rating } + modifier = { add = 5 dread > 20 } + modifier = { add = 5 dread > 40 } + modifier = { add = 5 dread > 60 } + modifier = { add = -15 dread > 80 } + modifier = { factor = 0.1 NOT = { faith = faith:forsaken_cult } } + # modifier for court chaplain piety level or intelligence? + title:c_lordaeron = { + set_county_faith = faith:forsaken_cult + } + } + 45 = { + title:c_lordaeron = { + set_county_faith = faith:forgotten_shadow + } + } + } +} \ No newline at end of file diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 443e6247a8..e61d084c80 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -245,10 +245,12 @@ forsaken.1100 = { limit = { faith.religion = { is_in_family = rf_shadow } highest_held_title_tier >= tier_county + is_ai = yes NOR = { faith = faith:forgotten_shadow government_has_flag = government_is_theocracy piety_level >= 2 + any_held_title = { this = title:b_lordaeron } } NOR = { has_trait = zealous has_trait = loyal has_trait = holy_warrior has_trait = stubborn } } @@ -310,8 +312,17 @@ forsaken.1100 = { option = { # retain sylvanas cult of personality - AI chance 75 name = forsaken.1100.opt.a + + if = { + limit = { NOT = { faith = faith:forsaken_cult } } + set_character_faith = faith:forsaken_cult + } + title:c_lordaeron = { - set_county_faith = faith:forsaken_cult + if = { + limit = { holder = root } + set_county_faith = faith:forsaken_cult + } } add_character_modifier = { modifier = wc_forsaken_subsumed_selinite_modifier @@ -322,6 +333,12 @@ forsaken.1100 = { id = forsaken.1101 } } + + set_variable = { + name = selinite_decision + value = flag:subsumed + } + ai_chance = { base = 75 ai_value_modifier = { @@ -339,7 +356,11 @@ forsaken.1100 = { trigger = { NOT = { any_held_title = { is_head_of_faith = yes } } } - set_character_faith = faith:forgotten_shadow + if = { + limit = { NOT = { faith = faith:forgotten_shadow } } + set_character_faith = faith:forgotten_shadow + } + title:c_lordaeron = { set_county_faith = faith:forgotten_shadow } @@ -349,7 +370,13 @@ forsaken.1100 = { trigger_event = forsaken.1102 } + set_variable = { + name = selinite_decision + value = flag:embraced + } + add_character_modifier = wc_forsaken_embraced_selinite_modifier + ai_chance = { base = 20 ai_value_modifier = { @@ -364,30 +391,16 @@ forsaken.1100 = { # retain cult of personality but grant religious freedom to selinites - AI chance 5 name = forsaken.1100.opt.c #vassal_contract_set_obligation_level = { type = religious_rights level = 1 } wanted to do this but necro govt blocks it - random_list = { - 55 = { - modifier = { add = 5 has_trait = zealous} - modifier = { add = 5 piety_level >= 3 } - modifier = { add = 5 piety_level >= 4 } - modifier = { add = 5 learning > decent_skill_rating } - modifier = { add = 5 dread > 20 } - modifier = { add = 5 dread > 40 } - modifier = { add = 5 dread > 60 } - modifier = { add = -15 dread > 80 } - # modifier for court chaplain piety level or intelligence? - title:c_lordaeron = { - set_county_faith = faith:forsaken_cult - } - } - 45 = { - title:c_lordaeron = { - set_county_faith = faith:forgotten_shadow - } - } - } - add_character_modifier = { - modifier = wc_forsaken_tolerated_selinite_modifier + + chance_convert_county_to_selinite = yes + + set_variable = { + name = selinite_decision + value = flag:tolerated } + + add_character_modifier = wc_forsaken_tolerated_selinite_modifier + ai_chance = { base = 5 ai_value_modifier = { @@ -502,6 +515,183 @@ forsaken.1102 = { } } +forsaken.1103 = { + type = character_event + title = forsaken.1103.title + theme = faith + override_background = wc_undercity_throne_room + + desc = { + first_valid = { + triggered_desc = { + trigger = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } + desc = forsaken.1103.desc.subsumed + } + triggered_desc = { + trigger = { scope:story.story_owner = { var:selinite_decision = flag:embraced } } + desc = forsaken.1103.desc.embraced + } + desc = forsaken.1103.desc.tolerated + } + } + + trigger = { + is_of_forsaken_like_culture = yes + NOT = { faith = faith:forgotten_shadow } + } + + option = { + name = forsaken.1103.opt.a + + if = { + limit = { NOT = { faith = faith:forsaken_cult } } + set_character_faith = faith:forsaken_cult + } + + title:c_lordaeron = { + set_county_faith = faith:forsaken_cult + } + + custom_tooltip = { + text = damned_will_convert_to_forsaken_cult + trigger_event = { + id = forsaken.1101 + } + } + + if = { + limit = { + scope:story.story_owner = { var:selinite_decision = flag:subsumed } + any_liege_or_above = { this = scope:story.story_owner } + } + progress_towards_friend_effect = { + CHARACTER = scope:story.story_owner + OPINION = 50 + REASON = forsaken.1103.obeyed + } + } + else_if = { + limit = { scope:story.story_owner = { var:selinite_decision = flag:embraced } } + if = { + limit = { any_liege_or_above = { this = scope:story.story_owner } } + progress_towards_rival_effect = { + CHARACTER = scope:story.story_owner + OPINION = 50 + REASON = forsaken.1103.disobeyed + } + add_piety = 100 + } else = { + add_character_modifier = wc_forsaken_subsumed_selinite_modifier + } + } + else_if = { + limit = { + scope:story.story_owner = { var:selinite_decision = flag:tolerated } + } + if = { + limit = { any_liege_or_above = { this = scope:story.story_owner } } + progress_towards_rival_effect = { + CHARACTER = scope:story.story_owner + OPINION = 20 + REASON = forsaken.1103.disobeyed + } + add_piety = 100 + } else = { + add_character_modifier = wc_forsaken_subsumed_selinite_modifier + } + } + } + + option = { + name = forsaken.1103.opt.b + + title:c_lordaeron = { + set_county_faith = faith:forgotten_shadow + } + + if = { + limit = { NOT = { faith = faith:forgotten_shadow } } + set_character_faith = faith:forgotten_shadow + } + + custom_tooltip = { + text = cultists_will_convert_to_forgotten_shadow + trigger_event = forsaken.1102 + } + if = { + limit = { + scope:story.story_owner = { var:selinite_decision = flag:embraced } + any_liege_or_above = { this = scope:story.story_owner } + } + progress_towards_friend_effect = { + CHARACTER = scope:story.story_owner + OPINION = 50 + REASON = forsaken.1103.obeyed + } + + } + else_if = { + limit = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } + if = { + limit = { any_liege_or_above = { this = scope:story.story_owner } } + progress_towards_rival_effect = { + CHARACTER = scope:story.story_owner + OPINION = 50 + REASON = forsaken.1103.disobeyed + } + add_piety = 100 + } else = { + add_character_modifier = wc_forsaken_embraced_selinite_modifier + } + } + else_if = { + limit = { + scope:story.story_owner = { var:selinite_decision = flag:tolerated } + NOT = { any_liege_or_above = { this = scope:story.story_owner } } + } + add_character_modifier = wc_forsaken_embraced_selinite_modifier + } + } + + option = { + name = forsaken.1103.opt.c + + if = { + limit = { + scope:story.story_owner = { var:selinite_decision = flag:tolerated } + any_liege_or_above = { this = scope:story.story_owner } + } + progress_towards_friend_effect = { + CHARACTER = scope:story.story_owner + OPINION = 50 + REASON = forsaken.1103.obeyed + } + } + else_if = { + limit = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } + if = { + limit = { any_liege_or_above = { this = scope:story.story_owner } } + progress_towards_rival_effect = { + CHARACTER = scope:story.story_owner + OPINION = 20 + REASON = forsaken.1103.disobeyed + } + add_character_modifier = wc_forsaken_tolerated_selinite_modifier + } + } + else_if = { + limit = { + scope:story.story_owner = { var:selinite_decision = flag:embraced } + NOT = { any_liege_or_above = { this = scope:story.story_owner } } + } + add_character_modifier = wc_forsaken_tolerated_selinite_modifier + } + + chance_convert_county_to_selinite = yes + } + +} + ###################################### #9000 - 9099: Random occurrence events From 8d76f6e91af498f74a6615a742a5b7c90497f366 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Tue, 19 Dec 2023 01:09:52 -0500 Subject: [PATCH 11/39] integrate forsaken.1103 --- events/wc_events/wc_lordaeron_events.txt | 32 ++++++++++++++++++------ 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index e61d084c80..f2d4a63d9f 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -323,15 +323,23 @@ forsaken.1100 = { limit = { holder = root } set_county_faith = faith:forsaken_cult } + else = { + holder = { + trigger_event = { + id = forsaken.1103 + days = 7 + } + } + } } + add_character_modifier = { modifier = wc_forsaken_subsumed_selinite_modifier } + custom_tooltip = { text = damned_will_convert_to_forsaken_cult - trigger_event = { - id = forsaken.1101 - } + trigger_event = forsaken.1101 } set_variable = { @@ -362,7 +370,19 @@ forsaken.1100 = { } title:c_lordaeron = { - set_county_faith = faith:forgotten_shadow + if = { + limit = { holder = root } + set_county_faith = faith:forgotten_shadow + } + else = { + holder = { + trigger_event = { + id = forsaken.1103 + days = 7 + } + } + } + } } custom_tooltip = { @@ -554,9 +574,7 @@ forsaken.1103 = { custom_tooltip = { text = damned_will_convert_to_forsaken_cult - trigger_event = { - id = forsaken.1101 - } + trigger_event = forsaken.1101 } if = { From 8cbcaf4500a03a95e527a9b8832c8cf2327f3ef2 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Tue, 19 Dec 2023 01:56:19 -0500 Subject: [PATCH 12/39] fix borked opinion modifiers --- events/wc_events/wc_lordaeron_events.txt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index f2d4a63d9f..ba811a90d5 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -383,7 +383,6 @@ forsaken.1100 = { } } } - } custom_tooltip = { text = cultists_will_convert_to_forgotten_shadow @@ -594,7 +593,7 @@ forsaken.1103 = { limit = { any_liege_or_above = { this = scope:story.story_owner } } progress_towards_rival_effect = { CHARACTER = scope:story.story_owner - OPINION = 50 + OPINION = -50 REASON = forsaken.1103.disobeyed } add_piety = 100 @@ -610,7 +609,7 @@ forsaken.1103 = { limit = { any_liege_or_above = { this = scope:story.story_owner } } progress_towards_rival_effect = { CHARACTER = scope:story.story_owner - OPINION = 20 + OPINION = -20 REASON = forsaken.1103.disobeyed } add_piety = 100 @@ -654,7 +653,7 @@ forsaken.1103 = { limit = { any_liege_or_above = { this = scope:story.story_owner } } progress_towards_rival_effect = { CHARACTER = scope:story.story_owner - OPINION = 50 + OPINION = -50 REASON = forsaken.1103.disobeyed } add_piety = 100 @@ -691,7 +690,7 @@ forsaken.1103 = { limit = { any_liege_or_above = { this = scope:story.story_owner } } progress_towards_rival_effect = { CHARACTER = scope:story.story_owner - OPINION = 20 + OPINION = -20 REASON = forsaken.1103.disobeyed } add_character_modifier = wc_forsaken_tolerated_selinite_modifier From 95e855aa0abbc290d419a54570fb6bc9f30710d7 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Tue, 19 Dec 2023 02:19:19 -0500 Subject: [PATCH 13/39] add loc for forsaken 1103 + tweaks --- events/wc_events/wc_lordaeron_events.txt | 2 +- .../wc_lordaeron_events_l_english.yml | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index ba811a90d5..5ae74d6c2e 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -221,7 +221,7 @@ forsaken.1004 = { option = { trigger = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } - name = forsaken.1004.opt.b + name = forsaken.1004.opt.a } } diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index d3b0bb067c..c8f210c3d8 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -12,7 +12,7 @@ forsaken.1002.title:0 "A Dream Deferred" forsaken.1002.desc:0 "Our efforts to secure the Undercity have come to an end, as we have lost our control over the capital city. Perhaps in a number of years we may be able to try again once we have reconquered this territory which is ours by right, but for now it seems the dream of a home beneath the ruins of Lordaeron is outside our reach." - forsaken.1002.opt.a:0 "This loss will not go unavenged!" + forsaken.1002.opt.a:0 "This disaster will not go unavenged!" forsaken.1002.tooltip.a:0 "You or another of your culture will be able to build the Undercity again in 5 years." forsaken.1003.title:0 "A Legacy to Carry On" @@ -20,10 +20,9 @@ forsaken.1003.opt.a:0 "Glory to the Forsaken!" forsaken.1004.title:0 "The Undercity Rebuilt" - forsaken.1004.desc.vassal:0 "Deep within the bowels of the Ruins of Lordaeron City, the gearshafts of a massive elevator begin to rumble as a crowd gathers alongside me. Beneath fortified portcullises and reinforced stone vaulting we stand in wait for our liege to inspect the work we have done here.\n\n"My [ROOT.Char.GetTitleAsName]," whispers my [spymaster] discreetly, "Our agents continue to pursue the rumors of forbidden mystical works discovered amongst the ruined tunnels earlier this year. It would not be wise to alert our... guest... to these goings on, lest we be held accountable for not securing them ourselves."\n\nI nod in approval, disguising my gesture as a greeting to one of the more notable individuals in attendance, and the [spymaster] slips away into the crowd. Every precaution has been made to ensure that this inauguration ceremony goes smoothly, every invitee thoroughly vetted. As the figure of our leader comes into view, I lead a cheer from the crowd..." + forsaken.1004.desc.vassal:0 "Deep within the bowels of the Ruins of Lordaeron City, the gearshafts of a massive elevator begin to rumble as a crowd gathers alongside me. Beneath fortified portcullises and reinforced stone vaulting we stand in wait for [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] to inspect the work we have done here.\n\n"My [ROOT.Char.GetTitleAsName]," whispers my [spymaster] discreetly, "Our agents continue to pursue the rumors of forbidden mystical works discovered amongst the ruined tunnels earlier this year. It would not be wise to alert our... guest... to these goings on, lest we be held accountable for not securing them ourselves."\n\nI nod in approval, disguising my gesture as a greeting to one of the more notable individuals in attendance, and the [spymaster] slips away into the crowd. Every precaution has been made to ensure that this inauguration ceremony goes smoothly, every invitee thoroughly vetted. As the figure of the [GetGlobalVariable('sylvanas_character').Char.GetTitle] comes into view, I lead a cheer from the crowd..." forsaken.1004.desc.independent:0 "The elevator lurches, and for a moment I am startled, but as the descent begins I quickly regain my composure. My engineers assure me these devices work to a high tolerance, but the effect is no less jarring as machines of this size are uncommon in the scourged wasteland that was once Lordaeron.\n\nAs the elevator descends, a dazzling sight begins to open up to me- a vast city beneath a city; bustling with soldiers, traders, magic users, and of course my growing cadre of government officials. The sewer's vaulted tunnels have been fortified with iron gates and stone reinforcements. Abominations and Forsaken warriors with their menacing crossbows stand guard. [GetGlobalVariable('sylvanas_character').Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] dream has been realized... From this underground fortress the Forsaken shall never be dislodged!\n\nAs the descent nears its end, I prepare a few words to the gathered throng of Forsaken and allies. Rumors gathered by my [spymaster] and [court_chaplains] tell of hidden knowledge unearthed in the ruins, which has so far escaped our oversight. Our top agents are tracking down this literature at this moment to gague its usefulness to the realm. For now, I must push these thoughts from my mind as I prepare to inagurate this great edifice of our burgeoning culture.\n\nThe elevator slows to a stop..." forsaken.1004.opt.a:0 "This is a momentous day for the Forsaken!" - forsaken.1004.opt.b:0 "This is a momentous day for the Forsaken!" forsaken.1004.tooltip.a:0 "#X We will find out in time if there is any truth to the rumors of hidden knowledge rediscovered in the sewers...#!" @@ -35,11 +34,23 @@ #1100 - 1109: Selenite Revival forsaken.1100.title:0 "$forgotten_shadow$: The Selinite Revival" - forsaken.1100.desc:0 "And so, the other shoe has dropped. During our construction of the Undercity, rumors abounded of hidden knowledge discovered deep within the sewer system. Our inquisitors, agents, and [court_chaplains] have uncovered cells of hidden crypto-religionists following the so-called $forgotten_shadow$. These teachings originated with Natalie Seline, a priest of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, our people who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Now, my councillors implore me to find a way to proceed regarding this new development..." + forsaken.1100.desc:0 "And so, the other shoe has dropped. Throughout the construction of the Undercity, rumors abounded of hidden knowledge discovered deep within the sewer system. Our inquisitors, agents, and [court_chaplains] have uncovered cells of hidden crypto-religionists following the so-called $forgotten_shadow$. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, our people who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Now, my councillors implore me to find a way to proceed regarding this new development..." forsaken.1100.opt.a:0 "We will adapt this forbidden knowledge to our advantage!" forsaken.1100.opt.b:0 "Let us have a separation of church and state. Embrace the shadow!" forsaken.1100.opt.c:0 "Our land can be a home for many faiths. Die and let live..." + forsaken.1103.title:0 "$forgotten_shadow$: The Selinite Revival" + #story cycle owner chose subsumption + forsaken.1103.desc.subsumed:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many of us who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. As the ruler of Lordaeron, a majority of these people fall within my domain. The feared and respected [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has issued claims that [GetGlobalVariable('sylvanas_character').Char.GetHerHim] $forsaken_cult$ is the true successor to the Selinite priesthood. It falls now to me to decide how best to use this situation to my advantage..." + #story cycle owner chose conversion + forsaken.1103.desc.embraced:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many of us who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. As the ruler of Lordaeron, a majority of these people fall within my domain. Even the great [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has embraced this new faith. It falls now to me to decide how best to use this situation to my advantage..." + #story cycle owner chose tolerance + forsaken.1103.desc.tolerated:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many of us who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. As the ruler of Lordaeron, a majority of these people fall within my domain. The revered [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] [GetGlobalVariable('sylvanas_character').Char.GetHerHim]self has issued a decree of tolerance of this sister faith. It falls now to me to decide how best to use this situation to my advantage..." + #options + forsaken.1103.opt.a:0 "We will adapt this forbidden knowledge to our advantage!" + forsaken.1103.opt.b:0 "Let us have a separation of church and state. Embrace the shadow!" + forsaken.1103.opt.c:0 "Our land can be a home for many faiths. Die and let live..." + ###################################### #9000 - 9999: Random occurrence events From 85843ec89c6e19df6935a588ad5d92b4f6a8cf7e Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Tue, 19 Dec 2023 12:30:19 -0500 Subject: [PATCH 14/39] new random flavor event --- .../wc_story_cycle_forsaken_origin.txt | 50 +++++--- events/wc_events/wc_lordaeron_events.txt | 107 +++++++++++++++++- .../wc_lordaeron_events_l_english.yml | 10 +- 3 files changed, 143 insertions(+), 24 deletions(-) diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 964a421af9..04eb0467b5 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -50,6 +50,7 @@ } } + # TODO: Figure out a way to get this to work! # chance to delay construction if control is low # triggered_effect = { # trigger = { @@ -113,18 +114,6 @@ } } - - # NAND = { - # AND = { # make sure owner is Forsaken - # is_of_forsaken_like_culture = yes - # this = story_owner - # } - # AND = { # or that I did NOT gave out the title to someome... - # self_or_liege_is_of_forsaken_like_culture = yes - # any_liege_or_above = {this = story_owner } - # } - # } - #fun random events effect_group = { #Effect Group X days = 180 @@ -135,7 +124,7 @@ } effect = { random_list = { - 30 = { + 15 = { story_owner = { trigger_event = { id = forsaken.9001 @@ -144,8 +133,41 @@ } } } + 15 = { + story_owner = { + trigger_event = { + id = forsaken.9002 + days = {1 30} + delayed = yes + } + } + } 70 = { - # uneventful + random_vassal_or_below = { + random_list = { + 15 = { + story_owner = { + trigger_event = { + id = forsaken.9001 + days = {1 30} + delayed = yes + } + } + } + 15 = { + story_owner = { + trigger_event = { + id = forsaken.9002 + days = {1 30} + delayed = yes + } + } + } + 30 = { + #uneventful + } + } + } } } } diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 5ae74d6c2e..87c2afa19c 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -718,24 +718,24 @@ forsaken.1103 = { forsaken.9001 = { type = character_event - title = lordaeron.9001.title + title = forsaken.9001.title theme = intrigue desc = { first_valid = { triggered_desc = { trigger = { scope:new_character.faith = faith:echo_of_life } - desc = lordaeron.9001.desc.echoseeker + desc = forsaken.9001.desc.echoseeker } triggered_desc = { trigger = { scope:new_character.faith = faith:alchemical_materialism } - desc = lordaeron.9001.desc.alchemist + desc = forsaken.9001.desc.alchemist } triggered_desc = { trigger = { scope:new_character.faith = faith:forsaken_cult } - desc = lordaeron.9001.desc.forsaken + desc = forsaken.9001.desc.forsaken } - desc = lordaeron.9001.desc.forgotten + desc = forsaken.9001.desc.forgotten } } @@ -945,3 +945,100 @@ forsaken.9001 = { } } } + +#Apothecary offers to enhance soldiers OR Echoseeker offers to train casters +forsaken.9002 = { + + type = character_event + title = forsaken.9002.title + theme = learning + + desc = { + first_valid = { + triggered_desc = { + trigger = { scope:new_character.faith = faith:echo_of_life } + desc = forsaken.9002.desc.echoseeker + } + desc = forsaken.9002.desc.alchemist + } + } + + + immediate = { + create_character = { + template = scholar_character + location = root.location + faith = root.faith + culture = root.culture + save_scope_as = new_character + } + random_list = { + 50 = { + set_character_faith = faith:echo_of_life + } + 50 = { + if = { + limit = { + NOT = { + title:b_lordaeron = { + var:develop_the_undercity ?= flag:finished + } + } + } + set_character_faith = faith:alchemical_materialism + } + else = { + set_character_faith = faith:forsaken_cult + } + } + } + } + + # yes, let them alter our troops + option = { + desc = forsaken.9002.opt.a + random = { + 50 = { + trigger = { scope:new_character.faith = faith:echo_of_life } + add_character_modifier = { + modifier = wc_alchemist_altered_troops + years = 2 + } + } + 50 = { + trigger = { scope:new_character.faith = faith:alchemical_materialism } + add_character_modifier = { + modifier = wc_alchemist_altered_troops + years = 2 + } + } + 50 = { + random_knight = { death = yes } + } + } + } + + # no, pursue a safer option + option = { + desc = forsaken.9002.opt.b + if = { + limit = { scope:new_character.faith = faith:alchemical_materialism } + add_character_modifier = { + modifier = wc_alchemist_equipped_troops + years = 2 + } + } + else = { + add_character_modifier = { + modifier = wc_arcanist_equipped_troops + years = 2 + } + } + remove_short_term_gold = minor_gold_value + } + + # reject their help + option = { + desc = forsaken.9002.opt.c + } +} \ No newline at end of file diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index c8f210c3d8..6af1f95d29 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -56,11 +56,11 @@ #9000 - 9999: Random occurrence events ###################################### -lordaeron.9001.title:0 "Caught Stealing" -lordaeron.9001.desc.echoseeker:0 "Our archivists caught a suspicious individual leaving our library sanctum with classified magical grimoires and rare scrolls. Apparently the individual is one of a small sect of liberated undead who seek to regain the "$echo_of_life$" through Arcane magic. Known as "$echo_of_life_adherent_plural$"", these individuals are not known to proselytize actively but often engage in risky and dangerous magical practices. However, as this individual stands before me I can see no hint of malice; rather a pitiful and desperate individual begging for mercy and a second chance.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their pitiful beliefs." -lordaeron.9001.desc.alchemist:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of a small sect of liberated undead who reject all divinity known as "$alchemical_materialism_adherent_plural$". These individuals are not known to proselytize actively but often engage in risky and dangerous alchemical practices. As this individual stands before me I can not ignore a hint of malice behind the glimmering intellect of a crafty and talented alchemist.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their cynical beliefs." -lordaeron.9001.desc.forgotten:0 "Our archivists caught a suspicious individual leaving our library sanctum with copies of classified documents relating to the teachings of Natalie Seline. Apparently the individual is one of these followers of "Forgotten Shadow" who emerged following our excavation of the Undercity. While they are frequently charitable and often noble individuals, their continued proselytization has been known to upset the established order of our land. As this individual stands before me I can see no hint of malice, nor can I ignore the glimmering intellect of a learned priest.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their misguided beliefs." -lordaeron.9001.desc.forsaken:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of these "$forsaken_cult_adherent_plural" who still follow the old, autocratic ways. These individuals are known to proselytize actively and often engage in risky and dangerous alchemical practices. As this admittedly talented individual stands before me, I can not ignore the danger they represent to the fledgeling order of the land.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, while too dangerous to be allowed to remain in the realm, they may prove a potent spy." +forsaken.9001.title:0 "Caught Stealing" +forsaken.9001.desc.echoseeker:0 "Our archivists caught a suspicious individual leaving our library sanctum with classified magical grimoires and rare scrolls. Apparently the individual is one of a small sect of liberated undead who seek to regain the "$echo_of_life$" through Arcane magic. Known as "$echo_of_life_adherent_plural$"", these individuals are not known to proselytize actively but often engage in risky and dangerous magical practices. However, as this individual stands before me I can see no hint of malice; rather a pitiful and desperate individual begging for mercy and a second chance.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their pitiful beliefs." +forsaken.9001.desc.alchemist:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of a small sect of liberated undead who reject all divinity known as "$alchemical_materialism_adherent_plural$". These individuals are not known to proselytize actively but often engage in risky and dangerous alchemical practices. As this individual stands before me I can not ignore a hint of malice behind the glimmering intellect of a crafty and talented alchemist.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their cynical beliefs." +forsaken.9001.desc.forgotten:0 "Our archivists caught a suspicious individual leaving our library sanctum with copies of classified documents relating to the teachings of Natalie Seline. Apparently the individual is one of these followers of "Forgotten Shadow" who emerged following our excavation of the Undercity. While they are frequently charitable and often noble individuals, their continued proselytization has been known to upset the established order of our land. As this individual stands before me I can see no hint of malice, nor can I ignore the glimmering intellect of a learned priest.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their misguided beliefs." +forsaken.9001.desc.forsaken:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of these "$forsaken_cult_adherent_plural" who still follow the old, autocratic ways. These individuals are known to proselytize actively and often engage in risky and dangerous alchemical practices. As this admittedly talented individual stands before me, I can not ignore the danger they represent to the fledgeling order of the land.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, while too dangerous to be allowed to remain in the realm, they may prove a potent spy." lordaeron.9000.opt.e:0 "Execute this insolent fool." lordaeron.9000.opt.a:0 "Throw the pitiful sod in jail." lordaeron.9000.opt.b:0 "Fine and release the thief to curry favor with those gone astray." From 44a996077290f9034319eab458508ccf5bda9ba9 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Tue, 19 Dec 2023 14:35:17 -0500 Subject: [PATCH 15/39] add event modifiers i forgot to save --- common/modifiers/wc_event_modifiers.txt | 30 ++++++++++ common/on_action/wc_lordaeron_on_actions.txt | 17 ++++++ .../scripted_effects/wc_lordaeron_effects.txt | 2 +- .../wc_story_cycle_forsaken_origin.txt | 60 ------------------- 4 files changed, 48 insertions(+), 61 deletions(-) diff --git a/common/modifiers/wc_event_modifiers.txt b/common/modifiers/wc_event_modifiers.txt index ae555e916b..2e76310c2a 100644 --- a/common/modifiers/wc_event_modifiers.txt +++ b/common/modifiers/wc_event_modifiers.txt @@ -210,6 +210,36 @@ wc_executed_religious_minority_modifier = { dread_gain_mult = 0.1 } +#forsaken.9002 dangerous option +wc_alchemist_altered_troops = { + knight_effectiveness_mult = 0.25 + massive_infantry_damage_add = 40 + monthly_prestige_gain_per_knight_add = -0.1 + men_at_arms_maintenance = 0.1 +} + +wc_arcanist_educated_casters = { + caster_damage_add = 30 + caster_siege_value_add = 5 + clergy_opinion = -5 + religious_vassal_opinion = -5 +} + +#forsaken.9002 safe option +wc_alchemist_equipped_troops = { + heavy_infantry_screen_add = 10 + skirmishers_screen_add = 10 + caster_siege_value_add = 5 + clergy_opinion = -5 + religious_vassal_opinion = -5 +} + +wc_arcanist_equipped_troops = { + knight_effectiveness_mult = 0.25 + religious_vassal_opinion = -5 + clergy_opinion = -5 +} + #Exodar modifiers wc_exodar_crystal_high = { icon = wc_exodar_crystal_high diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index a24f038724..37b04236ba 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -17,3 +17,20 @@ undercity_complete_on_action = { } } } + +random_yearly_playable_pulse = { + + random_events = { + chance_of_no_event = { + value = 50 + if = { + limit = { is_of_forsaken_like_culture = no } + add = 50 + } + } + + 10 = forsaken.9001 + 10 = foraken.9002 + } + +} diff --git a/common/scripted_effects/wc_lordaeron_effects.txt b/common/scripted_effects/wc_lordaeron_effects.txt index f975985164..11d90f89c8 100644 --- a/common/scripted_effects/wc_lordaeron_effects.txt +++ b/common/scripted_effects/wc_lordaeron_effects.txt @@ -84,4 +84,4 @@ chance_convert_county_to_selinite = { } } } -} \ No newline at end of file +} diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 04eb0467b5..5b1f78d758 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -113,64 +113,4 @@ } } } - - #fun random events - effect_group = { #Effect Group X - days = 180 - - triggered_effect = { - trigger = { - exists = story_owner - } - effect = { - random_list = { - 15 = { - story_owner = { - trigger_event = { - id = forsaken.9001 - days = {1 30} - delayed = yes - } - } - } - 15 = { - story_owner = { - trigger_event = { - id = forsaken.9002 - days = {1 30} - delayed = yes - } - } - } - 70 = { - random_vassal_or_below = { - random_list = { - 15 = { - story_owner = { - trigger_event = { - id = forsaken.9001 - days = {1 30} - delayed = yes - } - } - } - 15 = { - story_owner = { - trigger_event = { - id = forsaken.9002 - days = {1 30} - delayed = yes - } - } - } - 30 = { - #uneventful - } - } - } - } - } - } - } - } } \ No newline at end of file From ae593236ca12941fd8a7dca47de49bdd941d9793 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Tue, 19 Dec 2023 15:44:11 -0500 Subject: [PATCH 16/39] liege story takeover event --- common/decisions/wc_lordaeron_decisions.txt | 13 --- common/on_action/wc_lordaeron_on_actions.txt | 1 + .../wc_story_cycle_forsaken_origin.txt | 18 +++- events/wc_events/wc_lordaeron_events.txt | 82 +++++++++++++++++++ .../wc_lordaeron_events_l_english.yml | 13 +++ 5 files changed, 113 insertions(+), 14 deletions(-) diff --git a/common/decisions/wc_lordaeron_decisions.txt b/common/decisions/wc_lordaeron_decisions.txt index 2929c36ffe..37f0a3cef6 100644 --- a/common/decisions/wc_lordaeron_decisions.txt +++ b/common/decisions/wc_lordaeron_decisions.txt @@ -45,21 +45,8 @@ develop_the_undercity = { } set_realm_capital = title:c_lordaeron } - debug_log = "SS - 2y will trigger undercity_complete_action" hidden_effect = { - if = { - limit = { - exists = top_liege - top_liege = { - is_of_forsaken_like_culture = yes - } - } - set_global_variable = { name = sylvanas_character value = top_liege } - } - else = { - set_global_variable = { name = sylvanas_character value = root } - } if = { limit = { NOT = {any_owned_story = { story_type = story_cycle_forsaken_origins } } } } diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index 37b04236ba..e48a637c01 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -18,6 +18,7 @@ undercity_complete_on_action = { } } +# Forsaken random events random_yearly_playable_pulse = { random_events = { diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 5b1f78d758..1d1bb1f479 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -1,7 +1,23 @@ story_cycle_forsaken_origins = { on_setup = { #possibly make it so that only one person can ever get this story cycle - debug_log = "SS - forsaken origin story cycle started" + scope:story_owner = { + if = { + limit = { + exists = top_liege + top_liege = { + is_of_forsaken_like_culture = yes + } + } + set_global_variable = { name = sylvanas_character value = top_liege } + scope:top_liege = { + trigger_event = forsaken.1000 + } + } + else = { + set_global_variable = { name = sylvanas_character value = root } + } + } } on_end = { diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 87c2afa19c..3d6f4be33c 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -16,6 +16,88 @@ # 1001 - 1099: Reclamation of Lordaeron Events ############################################## +#vassal has taken the "develop the undercity" decision +forsaken.1000 = { + + type = character_event + title = forsaken.1000.title + desc = forsaken.1000.desc + theme = stewardship + override_background = market + + right_portrait = { + character = root + animation = steward + } + + left_portrait = { + character = scope:story.story_owner + animation = admiration + } + + immediate = { + scope:story.story_owner = { + save_scope_as = current_owner + } + } + + # take over the story + option = { + name = forsaken.1000.opt.a + scope:story = { + make_story_owner = root + } + scope:current_owner = { + send_interface_toast = { + title = forsaken.1000.manage_construction_title + left_icon = root + custom_tooltip = forsaken.1000.manage_construction_tt + add_gold = 250 + } + } + progress_towards_rivalry_effect = { + CHARACTER = current_owner + OPINION = -15 + REASON = forsaken.1000.manage_construction_tt + } + remove_short_term_gold = 250 + } + + # approve - let vassal deal with it + option = { + name = forsaken.1000.opt.b + scope:current_owner = { + send_interface_toast = { + title = forsaken.1000.approve_title + left_icon = root + custom_tooltip = forsaken.1000.approve_tt + progress_towards_friend_effect = { + CHARACTER = root + OPINION = 25 + REASON = forsaken.1000.approve_tt + } + } + } + } + + # disapprove - let vassal deal with it + option = { + name = forsaken.1000.opt.c + scope:current_owner = { + send_interface_toast = { + title = forsaken.1000.disapprove_title + left_icon = root + custom_tooltip = forsaken.1000.disapprove_tt + progress_towards_rivalry_effect = { + CHARACTER = root + OPINION = -25 + REASON = forsaken.1000.disapprove_tt + } + } + } + } +} + forsaken.1001 = { type = character_event diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index 6af1f95d29..953f4514f0 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -3,6 +3,19 @@ # 1001 - 1099: Reclamation of Lordaeron Events ############################################## + forsaken.1000.title:0 "Undercity Construction Begins" + forsaken.1000.desc:0 "My vassal has begun construction of a vast fortress in the sewers beneath the ruins of Lordaeron, known as the Undercity. My councilors assure me that this will secure the position of the Forsaken in the region forever. However, I must also contend with the fact that this impregnable position becomes theirs to control and not my own. Perhaps it would be a wise decision to reimburse them for the costs and gain some control over the construction of this monumental task." + forsaken.1000.opt.a:0 "It is time to assert our control." + forsaken.1000.manage_construction_title:0 "Liege Assumes Control" + forsaken.1000.manage_construction_tt:0 "[ROOT.Char.GetTitledFirstName] has reimbursed construction costs and assumed control over construction of the Undercity." + forsaken.1000.opt.b:0 "There is no need, they seem capable enough." + forsaken.1000.approve_title:0 "Top Liege Approves" + forsaken.1000.approve_tt:0 "Undercity construction has [ROOT.Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] approval." + forsaken.1000.opt.c:0 "How dare they start this project without my permission!" + forsaken.1000.approve_title:0 "Top Liege Does Not Approve" + forsaken.1000.disapprove_tt:0 "Undercity construction resulted in [ROOT.Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] rebuke." + + forsaken.1001.title:0 "The Undercity Rebuilt" forsaken.1001.desc.owned:0 "The elevator lurches, and for a moment I am startled, but as the descent begins I quickly regain my composure. My engineers assure me these devices work to a high tolerance, but the effect is no less jarring as machines of this size are uncommon in the scourged wasteland that was once Lordaeron.\n\nAs the elevator descends, a dazzling sight begins to open up to me- a vast city beneath a city; bustling with soldiers, traders, magic users, and of course my growing cadre of government officials. The sewer's vaulted tunnels have been fortified with iron gates and stone reinforcements. Abominations and Forsaken warriors with their menacing crossbows stand guard. [GetGlobalVariable('sylvanas_character').Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] dream has been realized... From this underground fortress the Forsaken shall never be dislodged!\n\nAs the descent nears its end, I prepare a few words to the gathered throng of Forsaken and allies. Rumors gathered by my [spymaster] and [court_chaplains] tell of hidden knowledge unearthed in the ruins, which has so far escaped our oversight. Our top agents are tracking down this literature at this moment to gague its usefulness to the realm. For now, I must push these thoughts from my mind as I prepare to inagurate this great edifice of our burgeoning culture.\n\nThe elevator slows to a stop..." forsaken.1001.desc.independent:0 "My spies report that the current holder of Lordaeron City has completed my project: The fortification of the Undercity. It will now make them much more difficult to dislodge should we attampt to retake the city again either by force or intrigue. What's worse, my agents report rumors of hidden knowledge unearthed in the ruins. As the standard bearer for our culture, it is probable that I will be faced with the consequences of this outcome." From 220ae54c68a7077c65be6f77c31a1ff972c64528 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Tue, 19 Dec 2023 18:34:05 -0500 Subject: [PATCH 17/39] fix some errors --- .../wc_story_cycle_forsaken_origin.txt | 9 ++-- events/wc_events/wc_lordaeron_events.txt | 43 +++++++++++-------- .../wc_lordaeron_events_l_english.yml | 25 +++++++---- 3 files changed, 46 insertions(+), 31 deletions(-) diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 1d1bb1f479..a37cc725ee 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -1,7 +1,7 @@ story_cycle_forsaken_origins = { on_setup = { #possibly make it so that only one person can ever get this story cycle - scope:story_owner = { + story_owner = { if = { limit = { exists = top_liege @@ -10,8 +10,11 @@ } } set_global_variable = { name = sylvanas_character value = top_liege } - scope:top_liege = { - trigger_event = forsaken.1000 + top_liege = { + trigger_event = { + id = forsaken.1000 + days = 7 + } } } else = { diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 3d6f4be33c..3f266b47f3 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -50,23 +50,23 @@ forsaken.1000 = { scope:current_owner = { send_interface_toast = { title = forsaken.1000.manage_construction_title - left_icon = root + left_icon = current_owner custom_tooltip = forsaken.1000.manage_construction_tt add_gold = 250 + progress_towards_rival_effect = { + CHARACTER = root + OPINION = -15 + REASON = forsaken.1000.manage_construction_tt + } } } - progress_towards_rivalry_effect = { - CHARACTER = current_owner - OPINION = -15 - REASON = forsaken.1000.manage_construction_tt - } remove_short_term_gold = 250 } # approve - let vassal deal with it option = { name = forsaken.1000.opt.b - scope:current_owner = { + scope:current_owner = { send_interface_toast = { title = forsaken.1000.approve_title left_icon = root @@ -88,7 +88,7 @@ forsaken.1000 = { title = forsaken.1000.disapprove_title left_icon = root custom_tooltip = forsaken.1000.disapprove_tt - progress_towards_rivalry_effect = { + progress_towards_rival_effect = { CHARACTER = root OPINION = -25 REASON = forsaken.1000.disapprove_tt @@ -917,7 +917,7 @@ forsaken.9001 = { #execute them option = { - name = lordaeron.9000.opt.e + name = forsaken.9001.opt.e show_as_tooltip = { execute_prisoner_effect = { VICTIM = scope:new_character @@ -933,7 +933,7 @@ forsaken.9001 = { #imprison them option = { - name = lordaeron.9000.opt.a + name = forsaken.9001.opt.a imprison_character_effect = { TARGET = scope:new_character IMPRISONER = root @@ -942,7 +942,7 @@ forsaken.9001 = { #fine them option = { - name = lordaeron.9000.opt.b + name = forsaken.9001.opt.b trigger = { NOT = { scope:new_character.faith = faith:forsaken_cult} stewardship >= decent_skill_rating @@ -960,7 +960,7 @@ forsaken.9001 = { #invite them to court and get hook option = { - name = lordaeron.9000.opt.c + name = forsaken.9001.opt.c trigger = { NOT = { scope:new_character.faith = faith:forsaken_cult}} scope:new_character = { progress_towards_friend_effect = { @@ -977,7 +977,7 @@ forsaken.9001 = { #give them passage to Dalaran and get hook option = { - name = lordaeron.9000.opt.d + name = forsaken.9001.opt.d trigger = { learning >= decent_skill_rating } add_hook = { target = scope:new_character @@ -1059,7 +1059,7 @@ forsaken.9002 = { set_character_faith = faith:echo_of_life } 50 = { - if = { + if = { limit = { NOT = { title:b_lordaeron = { @@ -1078,8 +1078,8 @@ forsaken.9002 = { # yes, let them alter our troops option = { - desc = forsaken.9002.opt.a - random = { + name = forsaken.9002.opt.a + random_list = { 50 = { trigger = { scope:new_character.faith = faith:echo_of_life } add_character_modifier = { @@ -1095,14 +1095,19 @@ forsaken.9002 = { } } 50 = { - random_knight = { death = yes } + random_knight = { + override_death_effect = { + killer = new_character + death_reason = death_poison + } + } } } } # no, pursue a safer option option = { - desc = forsaken.9002.opt.b + name = forsaken.9002.opt.b if = { limit = { scope:new_character.faith = faith:alchemical_materialism } add_character_modifier = { @@ -1121,6 +1126,6 @@ forsaken.9002 = { # reject their help option = { - desc = forsaken.9002.opt.c + name = forsaken.9002.opt.c } } \ No newline at end of file diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index 953f4514f0..da074a1c94 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -7,13 +7,13 @@ forsaken.1000.desc:0 "My vassal has begun construction of a vast fortress in the sewers beneath the ruins of Lordaeron, known as the Undercity. My councilors assure me that this will secure the position of the Forsaken in the region forever. However, I must also contend with the fact that this impregnable position becomes theirs to control and not my own. Perhaps it would be a wise decision to reimburse them for the costs and gain some control over the construction of this monumental task." forsaken.1000.opt.a:0 "It is time to assert our control." forsaken.1000.manage_construction_title:0 "Liege Assumes Control" - forsaken.1000.manage_construction_tt:0 "[ROOT.Char.GetTitledFirstName] has reimbursed construction costs and assumed control over construction of the Undercity." + forsaken.1000.manage_construction_tt:0 "Liege has reimbursed construction costs and assumed control over construction of the Undercity." forsaken.1000.opt.b:0 "There is no need, they seem capable enough." forsaken.1000.approve_title:0 "Top Liege Approves" - forsaken.1000.approve_tt:0 "Undercity construction has [ROOT.Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] approval." + forsaken.1000.approve_tt:0 "Undercity construction has Liege approval." forsaken.1000.opt.c:0 "How dare they start this project without my permission!" - forsaken.1000.approve_title:0 "Top Liege Does Not Approve" - forsaken.1000.disapprove_tt:0 "Undercity construction resulted in [ROOT.Char.Custom2('GetTitledFirstNamePossessiveOrMy', ROOT.Char)] rebuke." + forsaken.1000.disapprove_title:0 "Top Liege Does Not Approve" + forsaken.1000.disapprove_tt:0 "Undercity construction resulted in rebuke from Liege." forsaken.1001.title:0 "The Undercity Rebuilt" @@ -74,8 +74,15 @@ forsaken.9001.desc.echoseeker:0 "Our archivists caught a suspicious individual l forsaken.9001.desc.alchemist:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of a small sect of liberated undead who reject all divinity known as "$alchemical_materialism_adherent_plural$". These individuals are not known to proselytize actively but often engage in risky and dangerous alchemical practices. As this individual stands before me I can not ignore a hint of malice behind the glimmering intellect of a crafty and talented alchemist.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their cynical beliefs." forsaken.9001.desc.forgotten:0 "Our archivists caught a suspicious individual leaving our library sanctum with copies of classified documents relating to the teachings of Natalie Seline. Apparently the individual is one of these followers of "Forgotten Shadow" who emerged following our excavation of the Undercity. While they are frequently charitable and often noble individuals, their continued proselytization has been known to upset the established order of our land. As this individual stands before me I can see no hint of malice, nor can I ignore the glimmering intellect of a learned priest.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their misguided beliefs." forsaken.9001.desc.forsaken:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of these "$forsaken_cult_adherent_plural" who still follow the old, autocratic ways. These individuals are known to proselytize actively and often engage in risky and dangerous alchemical practices. As this admittedly talented individual stands before me, I can not ignore the danger they represent to the fledgeling order of the land.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, while too dangerous to be allowed to remain in the realm, they may prove a potent spy." -lordaeron.9000.opt.e:0 "Execute this insolent fool." -lordaeron.9000.opt.a:0 "Throw the pitiful sod in jail." -lordaeron.9000.opt.b:0 "Fine and release the thief to curry favor with those gone astray." -lordaeron.9000.opt.c:0 "Your talent has granted you a second chance. Come work for me." -lordaeron.9000.opt.d:0 "You live by my will alone, now go and do my bidding..." +forsaken.9001.opt.e:0 "Execute this insolent fool." +forsaken.9001.opt.a:0 "Throw the pitiful sod in jail." +forsaken.9001.opt.b:0 "Fine and release the thief to curry favor with those gone astray." +forsaken.9001.opt.c:0 "Your talent has granted you a second chance. Come work for me." +forsaken.9001.opt.d:0 "You live by my will alone, now go and do my bidding..." + +forsaken.9002.title:0 "An Offer We Could Refuse" +forsaken.9002.desc.echoseeker:0 "My councilors have alterted me to an offer from an Arcanist of some repute. This $echo_of_life_adherent$ claims to have the ability to teach our casters powerful experimental spells, in exchange for a small fee and temporary access to some of our restricted arcane texts. We could accept this offer, but it is well known that Arcane magic carries inherent risks and the $echo_of_life_adherent_plural$ are known for carelessness in their pursuits. Another solution would be to have this mage make more traditional enchantments and magical enhancements to our troops' armor. The choice is mine as to how to proceed." +forsaken.9001.desc.alchemist:0 "My councilors have alterted me to an offer from an Alchemist of some repute. This $alchemical_materialism_adherent$ claims to have the ability to enhance our knights with powerful experimental potions, in exchange for a small fee and temporary access to some of our restricted alchemical facilities. We could accept this offer, but it is well known that such alchemical applications carry inherent risks and the $alchemical_materialism_adherent_plural$ are known for their callous experimentats and disregard for their subjects' well being. Another solution would be to have this mage make more traditional enchantments and magical enhancements to our troops' armor. The choice is mine as to how to proceed." +forsaken.9002.opt.a:0 "We'll accept the risks. Commece the experiments!" +forsaken.9002.opt.b:0 "Let us go with a more conventional option." +forsaken.9002.opt.c:0 "Get this heretic out of my sight!" From fa57e785c2df2536aea9973fd623cb0384d629de Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Tue, 19 Dec 2023 19:36:55 -0500 Subject: [PATCH 18/39] make sure sylvanas char = story owner --- .../wc_story_cycle_forsaken_origin.txt | 8 +-- events/wc_events/wc_lordaeron_events.txt | 68 +++++++++++-------- 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index a37cc725ee..56d901e22c 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -5,11 +5,7 @@ if = { limit = { exists = top_liege - top_liege = { - is_of_forsaken_like_culture = yes - } } - set_global_variable = { name = sylvanas_character value = top_liege } top_liege = { trigger_event = { id = forsaken.1000 @@ -17,9 +13,7 @@ } } } - else = { - set_global_variable = { name = sylvanas_character value = root } - } + set_global_variable = { name = sylvanas_character value = root } } } diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 3f266b47f3..8b00e8e205 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -41,8 +41,15 @@ forsaken.1000 = { } } - # take over the story + # take over the story (player only) option = { + trigger = { + is_ai = no + piety_level >= 2 + prestige_level >= 2 + is_of_forsaken_like_culture = yes + } + name = forsaken.1000.opt.a scope:story = { make_story_owner = root @@ -58,6 +65,7 @@ forsaken.1000 = { OPINION = -15 REASON = forsaken.1000.manage_construction_tt } + set_global_variable = { name = sylvanas_character value = root } } } remove_short_term_gold = 250 @@ -323,6 +331,10 @@ forsaken.1100 = { override_background = wc_undercity_throne_room immediate = { + root = { + save_scope_as = selenite_decider + } + every_vassal_or_below = { limit = { faith.religion = { is_in_family = rf_shadow } @@ -625,11 +637,11 @@ forsaken.1103 = { desc = { first_valid = { triggered_desc = { - trigger = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } + trigger = { scope:selenite_decider = { var:selinite_decision = flag:subsumed } } desc = forsaken.1103.desc.subsumed } triggered_desc = { - trigger = { scope:story.story_owner = { var:selinite_decision = flag:embraced } } + trigger = { scope:selenite_decider = { var:selinite_decision = flag:embraced } } desc = forsaken.1103.desc.embraced } desc = forsaken.1103.desc.tolerated @@ -660,21 +672,21 @@ forsaken.1103 = { if = { limit = { - scope:story.story_owner = { var:selinite_decision = flag:subsumed } - any_liege_or_above = { this = scope:story.story_owner } + scope:selenite_decider = { var:selinite_decision = flag:subsumed } + any_liege_or_above = { this = scope:selenite_decider } } progress_towards_friend_effect = { - CHARACTER = scope:story.story_owner + CHARACTER = scope:selenite_decider OPINION = 50 REASON = forsaken.1103.obeyed } } else_if = { - limit = { scope:story.story_owner = { var:selinite_decision = flag:embraced } } + limit = { scope:selenite_decider = { var:selinite_decision = flag:embraced } } if = { - limit = { any_liege_or_above = { this = scope:story.story_owner } } + limit = { any_liege_or_above = { this = scope:selenite_decider } } progress_towards_rival_effect = { - CHARACTER = scope:story.story_owner + CHARACTER = scope:selenite_decider OPINION = -50 REASON = forsaken.1103.disobeyed } @@ -685,12 +697,12 @@ forsaken.1103 = { } else_if = { limit = { - scope:story.story_owner = { var:selinite_decision = flag:tolerated } + scope:selenite_decider = { var:selinite_decision = flag:tolerated } } if = { - limit = { any_liege_or_above = { this = scope:story.story_owner } } + limit = { any_liege_or_above = { this = scope:selenite_decider } } progress_towards_rival_effect = { - CHARACTER = scope:story.story_owner + CHARACTER = scope:selenite_decider OPINION = -20 REASON = forsaken.1103.disobeyed } @@ -719,22 +731,22 @@ forsaken.1103 = { } if = { limit = { - scope:story.story_owner = { var:selinite_decision = flag:embraced } - any_liege_or_above = { this = scope:story.story_owner } + scope:selenite_decider = { var:selinite_decision = flag:embraced } + any_liege_or_above = { this = scope:selenite_decider } } progress_towards_friend_effect = { - CHARACTER = scope:story.story_owner + CHARACTER = scope:selenite_decider OPINION = 50 REASON = forsaken.1103.obeyed } } else_if = { - limit = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } + limit = { scope:selenite_decider = { var:selinite_decision = flag:subsumed } } if = { - limit = { any_liege_or_above = { this = scope:story.story_owner } } + limit = { any_liege_or_above = { this = scope:selenite_decider } } progress_towards_rival_effect = { - CHARACTER = scope:story.story_owner + CHARACTER = scope:selenite_decider OPINION = -50 REASON = forsaken.1103.disobeyed } @@ -745,8 +757,8 @@ forsaken.1103 = { } else_if = { limit = { - scope:story.story_owner = { var:selinite_decision = flag:tolerated } - NOT = { any_liege_or_above = { this = scope:story.story_owner } } + scope:selenite_decider = { var:selinite_decision = flag:tolerated } + NOT = { any_liege_or_above = { this = scope:selenite_decider } } } add_character_modifier = wc_forsaken_embraced_selinite_modifier } @@ -757,21 +769,21 @@ forsaken.1103 = { if = { limit = { - scope:story.story_owner = { var:selinite_decision = flag:tolerated } - any_liege_or_above = { this = scope:story.story_owner } + scope:selenite_decider = { var:selinite_decision = flag:tolerated } + any_liege_or_above = { this = scope:selenite_decider } } progress_towards_friend_effect = { - CHARACTER = scope:story.story_owner + CHARACTER = scope:selenite_decider OPINION = 50 REASON = forsaken.1103.obeyed } } else_if = { - limit = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } + limit = { scope:selenite_decider = { var:selinite_decision = flag:subsumed } } if = { - limit = { any_liege_or_above = { this = scope:story.story_owner } } + limit = { any_liege_or_above = { this = scope:selenite_decider } } progress_towards_rival_effect = { - CHARACTER = scope:story.story_owner + CHARACTER = scope:selenite_decider OPINION = -20 REASON = forsaken.1103.disobeyed } @@ -780,8 +792,8 @@ forsaken.1103 = { } else_if = { limit = { - scope:story.story_owner = { var:selinite_decision = flag:embraced } - NOT = { any_liege_or_above = { this = scope:story.story_owner } } + scope:selenite_decider = { var:selinite_decision = flag:embraced } + NOT = { any_liege_or_above = { this = scope:selenite_decider } } } add_character_modifier = wc_forsaken_tolerated_selinite_modifier } From 3bf2fc43f826c43b4dc90152ac682b4813b5bbbb Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Wed, 20 Dec 2023 13:02:15 -0500 Subject: [PATCH 19/39] fix getting forsaken.1000 for yourself --- common/story_cycles/wc_story_cycle_forsaken_origin.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 56d901e22c..4fe154add2 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -5,6 +5,7 @@ if = { limit = { exists = top_liege + NOT = { top_liege = root } } top_liege = { trigger_event = { From 3b9764d3bce3a3a0242414931820131f1c2cbcb7 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Wed, 20 Dec 2023 15:25:29 -0500 Subject: [PATCH 20/39] add 2 more forsaken random events no loc --- common/on_action/wc_lordaeron_on_actions.txt | 6 +- events/wc_events/wc_lordaeron_events.txt | 166 ++++++++++++++++--- 2 files changed, 143 insertions(+), 29 deletions(-) diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index e48a637c01..1821df6970 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -23,15 +23,17 @@ random_yearly_playable_pulse = { random_events = { chance_of_no_event = { - value = 50 + value = 0 if = { limit = { is_of_forsaken_like_culture = no } - add = 50 + add = 100 } } 10 = forsaken.9001 10 = foraken.9002 + 10 = forsaken.9003 + 10 = forsaken.9004 } } diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 8b00e8e205..b1f569127d 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -637,11 +637,11 @@ forsaken.1103 = { desc = { first_valid = { triggered_desc = { - trigger = { scope:selenite_decider = { var:selinite_decision = flag:subsumed } } + trigger = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } desc = forsaken.1103.desc.subsumed } triggered_desc = { - trigger = { scope:selenite_decider = { var:selinite_decision = flag:embraced } } + trigger = { scope:story.story_owner = { var:selinite_decision = flag:embraced } } desc = forsaken.1103.desc.embraced } desc = forsaken.1103.desc.tolerated @@ -672,21 +672,21 @@ forsaken.1103 = { if = { limit = { - scope:selenite_decider = { var:selinite_decision = flag:subsumed } - any_liege_or_above = { this = scope:selenite_decider } + scope:story.story_owner = { var:selinite_decision = flag:subsumed } + any_liege_or_above = { this = scope:story.story_owner } } progress_towards_friend_effect = { - CHARACTER = scope:selenite_decider + CHARACTER = scope:story.story_owner OPINION = 50 REASON = forsaken.1103.obeyed } } else_if = { - limit = { scope:selenite_decider = { var:selinite_decision = flag:embraced } } + limit = { scope:story.story_owner = { var:selinite_decision = flag:embraced } } if = { - limit = { any_liege_or_above = { this = scope:selenite_decider } } + limit = { any_liege_or_above = { this = scope:story.story_owner } } progress_towards_rival_effect = { - CHARACTER = scope:selenite_decider + CHARACTER = scope:story.story_owner OPINION = -50 REASON = forsaken.1103.disobeyed } @@ -697,12 +697,12 @@ forsaken.1103 = { } else_if = { limit = { - scope:selenite_decider = { var:selinite_decision = flag:tolerated } + scope:story.story_owner = { var:selinite_decision = flag:tolerated } } if = { - limit = { any_liege_or_above = { this = scope:selenite_decider } } + limit = { any_liege_or_above = { this = scope:story.story_owner } } progress_towards_rival_effect = { - CHARACTER = scope:selenite_decider + CHARACTER = scope:story.story_owner OPINION = -20 REASON = forsaken.1103.disobeyed } @@ -731,22 +731,22 @@ forsaken.1103 = { } if = { limit = { - scope:selenite_decider = { var:selinite_decision = flag:embraced } - any_liege_or_above = { this = scope:selenite_decider } + scope:story.story_owner = { var:selinite_decision = flag:embraced } + any_liege_or_above = { this = scope:story.story_owner } } progress_towards_friend_effect = { - CHARACTER = scope:selenite_decider + CHARACTER = scope:story.story_owner OPINION = 50 REASON = forsaken.1103.obeyed } } else_if = { - limit = { scope:selenite_decider = { var:selinite_decision = flag:subsumed } } + limit = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } if = { - limit = { any_liege_or_above = { this = scope:selenite_decider } } + limit = { any_liege_or_above = { this = scope:story.story_owner } } progress_towards_rival_effect = { - CHARACTER = scope:selenite_decider + CHARACTER = scope:story.story_owner OPINION = -50 REASON = forsaken.1103.disobeyed } @@ -757,8 +757,8 @@ forsaken.1103 = { } else_if = { limit = { - scope:selenite_decider = { var:selinite_decision = flag:tolerated } - NOT = { any_liege_or_above = { this = scope:selenite_decider } } + scope:story.story_owner = { var:selinite_decision = flag:tolerated } + NOT = { any_liege_or_above = { this = scope:story.story_owner } } } add_character_modifier = wc_forsaken_embraced_selinite_modifier } @@ -769,21 +769,21 @@ forsaken.1103 = { if = { limit = { - scope:selenite_decider = { var:selinite_decision = flag:tolerated } - any_liege_or_above = { this = scope:selenite_decider } + scope:story.story_owner = { var:selinite_decision = flag:tolerated } + any_liege_or_above = { this = scope:story.story_owner } } progress_towards_friend_effect = { - CHARACTER = scope:selenite_decider + CHARACTER = scope:story.story_owner OPINION = 50 REASON = forsaken.1103.obeyed } } else_if = { - limit = { scope:selenite_decider = { var:selinite_decision = flag:subsumed } } + limit = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } if = { - limit = { any_liege_or_above = { this = scope:selenite_decider } } + limit = { any_liege_or_above = { this = scope:story.story_owner } } progress_towards_rival_effect = { - CHARACTER = scope:selenite_decider + CHARACTER = scope:story.story_owner OPINION = -20 REASON = forsaken.1103.disobeyed } @@ -792,8 +792,8 @@ forsaken.1103 = { } else_if = { limit = { - scope:selenite_decider = { var:selinite_decision = flag:embraced } - NOT = { any_liege_or_above = { this = scope:selenite_decider } } + scope:story.story_owner = { var:selinite_decision = flag:embraced } + NOT = { any_liege_or_above = { this = scope:story.story_owner } } } add_character_modifier = wc_forsaken_tolerated_selinite_modifier } @@ -1140,4 +1140,116 @@ forsaken.9002 = { option = { name = forsaken.9002.opt.c } +} + +# laboratory accident +forsaken.9003 = { + type = character_event + title = forsaken.9003.title + theme = battle + + desc = { + first_valid = { + triggered_desc = { + trigger = { + faith = faith:echo_of_life + } + desc = forsaken.9003.desc.arcanist + } + triggered_desc = { + trigger = { + OR = { faith = faith:forsaken_cult faith = faith:alchemical_materialism } + } + desc = forsaken.9003.desc.alchemist + } + desc = forsaken.9003.desc.other_alchemist + } + } + + # rebuild the laboratory + option = { + trigger = { + OR = { faith = faith:forsaken_cult faith = faith:alchemical_materialism faith = faith:echo_of_life } + } + name = forsaken.9003.opt.a + remove_short_term_gold = medium_gold_value + } + + # salvage materials + option = { + name = forsaken.9003.opt.b + add_gold = minor_gold_value + } + + # cast blame on religious minority + option = { + name = forsaken.9003.opt.c + add_prestige = minor_prestige_value + add_character_modifier = { + modifier = pilgrimage_disdainful_towards_faiths_modifier + years = 2 + } + } +} + +# neighbor raids +forsaken.9004 = { + type = character_event + title = forsaken.9004.title + desc = forsaken.9004.desc + theme = battle + + trigger = { + any_character_to_title_neighboring_county = { + NOT = { + is_allied_to = root # allies won't do this + AND = { + # faiths who don't hate undead won't do this... + OR = { + faith = { has_doctrine = doctrine_death_magic_accepted } + faith = { has_doctrine = doctrine_death_magic_approved } + } + # ...but demonic and eldritch governments will do this anyway + NOR = { has_government = demonic_government has_government = eldritch_government } + } + } + } + } + + immediate = { + random_character_to_title_neighboring_county = { + limit = { + NOT = { + is_allied_to = root + AND = { + OR = { + faith = { has_doctrine = doctrine_death_magic_accepted } + faith = { has_doctrine = doctrine_death_magic_approved } + } + NOR = { has_government = demonic_government has_government = eldritch_government } + } + } + } + save_scope_as = raider_source + } + save_scope_as = raider_target + } + + # + option = { + name = forsaken.9004.opt.a + remove_short_term_gold = medium_gold_value + } + + # + option = { + name = forsaken.9004.opt.b + add_gold = minor_gold_value + } + + # + option = { + name = forsaken.9004.opt.c + + } } \ No newline at end of file From d94421630f6f3fbdf714e4d22a7e8706cbf18d1d Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Thu, 21 Dec 2023 18:03:42 -0500 Subject: [PATCH 21/39] finish forsaken.9003 plus fixes --- .../council_tasks/00_court_chaplain_tasks.txt | 15 ++ common/council_tasks/00_steward_tasks.txt | 16 ++ common/modifiers/wc_event_modifiers.txt | 32 ++++ common/on_action/wc_lordaeron_on_actions.txt | 2 +- common/scripted_effects/wc_other_effects.txt | 38 +++++ events/wc_events/wc_lordaeron_events.txt | 152 +++++++++++++----- .../wc_lordaeron_events_l_english.yml | 24 ++- .../modifiers/wc_modifiers_l_english.yml | 16 +- 8 files changed, 244 insertions(+), 51 deletions(-) diff --git a/common/council_tasks/00_court_chaplain_tasks.txt b/common/council_tasks/00_court_chaplain_tasks.txt index 9ef635ecc5..067c109f07 100644 --- a/common/council_tasks/00_court_chaplain_tasks.txt +++ b/common/council_tasks/00_court_chaplain_tasks.txt @@ -449,6 +449,21 @@ task_conversion = { desc = theramore_faith_convertion_bonus_add } } + if = { + limit = { + scope:councillor_liege = { + exists = var:propaganda_campaign + OR = { + var:propaganda_campaign =? flag:religious + var:propaganda_campaign =? flag:cultural_and_religious + } + } + } + multiply = { + value = 1.3 + desc = propaganda_campaign_bonus_add + } + } } potential_county = { diff --git a/common/council_tasks/00_steward_tasks.txt b/common/council_tasks/00_steward_tasks.txt index c1655f6527..c547d3b5b6 100644 --- a/common/council_tasks/00_steward_tasks.txt +++ b/common/council_tasks/00_steward_tasks.txt @@ -795,6 +795,22 @@ task_promote_culture = { } } + if = { + limit = { + scope:councillor_liege = { + exists = var:propaganda_campaign + OR = { + var:propaganda_campaign =? flag:cultural + var:propaganda_campaign =? flag:cultural_and_religious + } + } + } + multiply = { + value = 1.3 + desc = propaganda_campaign_bonus_add + } + } + } potential_county = { diff --git a/common/modifiers/wc_event_modifiers.txt b/common/modifiers/wc_event_modifiers.txt index 2e76310c2a..6cf257a7a5 100644 --- a/common/modifiers/wc_event_modifiers.txt +++ b/common/modifiers/wc_event_modifiers.txt @@ -212,6 +212,7 @@ wc_executed_religious_minority_modifier = { #forsaken.9002 dangerous option wc_alchemist_altered_troops = { + icon = martial_positive knight_effectiveness_mult = 0.25 massive_infantry_damage_add = 40 monthly_prestige_gain_per_knight_add = -0.1 @@ -219,6 +220,7 @@ wc_alchemist_altered_troops = { } wc_arcanist_educated_casters = { + icon = martial_positive caster_damage_add = 30 caster_siege_value_add = 5 clergy_opinion = -5 @@ -227,6 +229,7 @@ wc_arcanist_educated_casters = { #forsaken.9002 safe option wc_alchemist_equipped_troops = { + icon = martial_positive heavy_infantry_screen_add = 10 skirmishers_screen_add = 10 caster_siege_value_add = 5 @@ -235,11 +238,23 @@ wc_alchemist_equipped_troops = { } wc_arcanist_equipped_troops = { + icon = martial_positive knight_effectiveness_mult = 0.25 religious_vassal_opinion = -5 clergy_opinion = -5 } +#temporary modifier until new building ironed out +wc_medium_development_growth_factor = { + icon = county_modifier_development_positive + development_growth_factor = medium_development_growth_gain +} + +wc_wreckage_salvaging = { + icon = stewardship_positive + tax_mult = 0.10 +} + #Exodar modifiers wc_exodar_crystal_high = { icon = wc_exodar_crystal_high @@ -262,3 +277,20 @@ wc_exodar_crystal_low = { levy_reinforcement_rate = -0.25 travel_danger = 10 } + +# Propaganda Campaign Modifiers +wc_propaganda_campaign_cultural = { + icon = prestige_positive + monthly_prestige = 0.1 +} + +wc_propaganda_campaign_religious = { + icon = piety_positive + monthly_piety = 0.1 +} + +wc_propaganda_campaign_cultural_and_religious = { + icon = diplomacy_positive + monthly_prestige = 0.1 + monthly_piety = 0.1 +} \ No newline at end of file diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index 1821df6970..19453451c8 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -31,7 +31,7 @@ random_yearly_playable_pulse = { } 10 = forsaken.9001 - 10 = foraken.9002 + 10 = forsaken.9002 10 = forsaken.9003 10 = forsaken.9004 } diff --git a/common/scripted_effects/wc_other_effects.txt b/common/scripted_effects/wc_other_effects.txt index 76a849b63e..763148876d 100644 --- a/common/scripted_effects/wc_other_effects.txt +++ b/common/scripted_effects/wc_other_effects.txt @@ -24,4 +24,42 @@ clear_tauren_neg_trait_effect = { remove_trait = wc_tauren_EM_NEG_bear remove_trait = wc_tauren_EM_NEG_kodo remove_trait = wc_tauren_EM_NEG_hawk +} + +# Propaganda Campaigns: +# Use from character scope +start_religious_propaganda_campaign = { + add_character_modifier = { + modifier = wc_propaganda_campaign_religious + years = 2 + } + set_variable = { + name = var:propaganda_campaign + value = flag:religious + years = 2 + } +} + +start_cultural_propaganda_campaign = { + add_character_modifier = { + modifier = wc_propaganda_campaign_cultural + years = 2 + } + set_variable = { + name = var:propaganda_campaign + value = flag:cultural + years = 2 + } +} + +start_cultural_and_religious_propaganda_campaign = { + add_character_modifier = { + modifier = wc_propaganda_campaign_cultural_and_religious + years = 2 + } + set_variable = { + name = var:propaganda_campaign + value = flag:cultural_and_religious + years = 2 + } } \ No newline at end of file diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index b1f569127d..ccd19c3bb6 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -57,7 +57,7 @@ forsaken.1000 = { scope:current_owner = { send_interface_toast = { title = forsaken.1000.manage_construction_title - left_icon = current_owner + left_icon = scope:current_owner custom_tooltip = forsaken.1000.manage_construction_tt add_gold = 250 progress_towards_rival_effect = { @@ -114,7 +114,7 @@ forsaken.1001 = { override_background = market desc = { - first_valid = { + first_valid = { # completely different perspective based on whether Lordaeron is still held by the story owner triggered_desc = { trigger = { NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } @@ -269,12 +269,12 @@ forsaken.1004 = { theme = stewardship desc = { - first_valid = { + first_valid = { # Same as forsaken.1001 if they are independent... triggered_desc = { trigger = { NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } } desc = forsaken.1004.desc.independent } - desc = forsaken.1004.desc.vassal + desc = forsaken.1004.desc.vassal # ...but completely different perspective if they are a vassal } } @@ -636,7 +636,7 @@ forsaken.1103 = { desc = { first_valid = { - triggered_desc = { + triggered_desc = { # each version has a different sentence describing story owner's actions. trigger = { scope:story.story_owner = { var:selinite_decision = flag:subsumed } } desc = forsaken.1103.desc.subsumed } @@ -819,17 +819,17 @@ forsaken.9001 = { first_valid = { triggered_desc = { trigger = { scope:new_character.faith = faith:echo_of_life } - desc = forsaken.9001.desc.echoseeker + desc = forsaken.9001.desc.echoseeker # they are seen as dangerous but not threatening } triggered_desc = { trigger = { scope:new_character.faith = faith:alchemical_materialism } - desc = forsaken.9001.desc.alchemist + desc = forsaken.9001.desc.alchemist # they are seen as a bit more dangerous but slightly less threatening } triggered_desc = { trigger = { scope:new_character.faith = faith:forsaken_cult } - desc = forsaken.9001.desc.forsaken + desc = forsaken.9001.desc.forsaken # they are seen as not dangerous but highly threatening } - desc = forsaken.9001.desc.forgotten + desc = forsaken.9001.desc.forgotten #they are seen as both dangerous and highly threatening } } @@ -1047,8 +1047,18 @@ forsaken.9002 = { title = forsaken.9002.title theme = learning + left_portrait = { + character = root + animation = personality_cynical + } + + right_portrait = { + character = scope:new_character + animation = flirtation + } + desc = { - first_valid = { + first_valid = { # just slightly different wording and titles triggered_desc = { trigger = { scope:new_character.faith = faith:echo_of_life } desc = forsaken.9002.desc.echoseeker @@ -1065,24 +1075,32 @@ forsaken.9002 = { faith = root.faith culture = root.culture save_scope_as = new_character - } - random_list = { - 50 = { - set_character_faith = faith:echo_of_life - } - 50 = { - if = { - limit = { - NOT = { - title:b_lordaeron = { - var:develop_the_undercity ?= flag:finished + + after_creation = { + # Warcraft + trigger_race_giving_no_gene_effect = yes + add_trait = being_undead + scope:new_character = { + random_list = { + 50 = { + set_character_faith = faith:echo_of_life + } + 50 = { + if = { + limit = { + NOT = { + title:b_lordaeron = { + var:develop_the_undercity ?= flag:finished + } + } + } + set_character_faith = faith:alchemical_materialism + } + else = { + set_character_faith = faith:forsaken_cult } } } - set_character_faith = faith:alchemical_materialism - } - else = { - set_character_faith = faith:forsaken_cult } } } @@ -1095,7 +1113,7 @@ forsaken.9002 = { 50 = { trigger = { scope:new_character.faith = faith:echo_of_life } add_character_modifier = { - modifier = wc_alchemist_altered_troops + modifier = wc_arcanist_educated_casters years = 2 } } @@ -1108,8 +1126,8 @@ forsaken.9002 = { } 50 = { random_knight = { - override_death_effect = { - killer = new_character + limit = { NOT = { exists = primary_title } } + death = { death_reason = death_poison } } @@ -1148,21 +1166,50 @@ forsaken.9003 = { title = forsaken.9003.title theme = battle + right_portrait = { + character = root + animation = worry + } + desc = { first_valid = { triggered_desc = { trigger = { faith = faith:echo_of_life } - desc = forsaken.9003.desc.arcanist + desc = forsaken.9003.desc.arcanist # sinister decription, it's our facility } triggered_desc = { trigger = { OR = { faith = faith:forsaken_cult faith = faith:alchemical_materialism } } - desc = forsaken.9003.desc.alchemist + desc = forsaken.9003.desc.alchemist # dispassionate decription, it's our facility + } + desc = forsaken.9003.desc.other_alchemist # empathetic decription, it's not our facility + } + } + + trigger = { + any_held_title = { + tier = tier_county + development_level > 2 + any_province = { + has_building_or_higher = temple_01 } - desc = forsaken.9003.desc.other_alchemist + } + } + + immediate = { + random_held_title = { + limit = { + tier = tier_county + development_level > 2 + any_province = { + has_building_or_higher = temple_01 + } + } + change_development_progress_with_overflow = -125 + save_scope_as = affected_county } } @@ -1173,21 +1220,38 @@ forsaken.9003 = { } name = forsaken.9003.opt.a remove_short_term_gold = medium_gold_value + scope:affected_county = { + # placeholder until we add a lab building + add_county_modifier = { + modifier = wc_medium_development_growth_factor + years = 2 + } + } } # salvage materials option = { name = forsaken.9003.opt.b add_gold = minor_gold_value + scope:affected_county = { + add_county_modifier = { + modifier = wc_wreckage_salvaging + years = 2 + } + } } - # cast blame on religious minority + # cast blame on religious minorities option = { + show_as_unavailable = { + scope:councillor_liege = { + exists = var:propaganda_campaign + } + } name = forsaken.9003.opt.c - add_prestige = minor_prestige_value - add_character_modifier = { - modifier = pilgrimage_disdainful_towards_faiths_modifier - years = 2 + custom_tooltip = { + text = propaganda_campaign_tooltip + start_religious_propaganda_campaign = yes } } } @@ -1202,15 +1266,15 @@ forsaken.9004 = { trigger = { any_character_to_title_neighboring_county = { NOT = { - is_allied_to = root # allies won't do this + holder = { is_allied_to = root } # allies won't do this AND = { # faiths who don't hate undead won't do this... OR = { - faith = { has_doctrine = doctrine_death_magic_accepted } - faith = { has_doctrine = doctrine_death_magic_approved } + county.faith = { has_doctrine = doctrine_death_magic_accepted } + county.faith = { has_doctrine = doctrine_death_magic_approved } } # ...but demonic and eldritch governments will do this anyway - NOR = { has_government = demonic_government has_government = eldritch_government } + holder = { NOR = { has_government = demonic_government has_government = eldritch_government } } } } } @@ -1220,13 +1284,13 @@ forsaken.9004 = { random_character_to_title_neighboring_county = { limit = { NOT = { - is_allied_to = root + holder = { is_allied_to = root } AND = { OR = { - faith = { has_doctrine = doctrine_death_magic_accepted } - faith = { has_doctrine = doctrine_death_magic_approved } + county.faith = { has_doctrine = doctrine_death_magic_accepted } + county.faith = { has_doctrine = doctrine_death_magic_approved } } - NOR = { has_government = demonic_government has_government = eldritch_government } + holder = { NOR = { has_government = demonic_government has_government = eldritch_government } } } } } diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index da074a1c94..0345590ca4 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -54,11 +54,11 @@ forsaken.1103.title:0 "$forgotten_shadow$: The Selinite Revival" #story cycle owner chose subsumption - forsaken.1103.desc.subsumed:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many of us who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. As the ruler of Lordaeron, a majority of these people fall within my domain. The feared and respected [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has issued claims that [GetGlobalVariable('sylvanas_character').Char.GetHerHim] $forsaken_cult$ is the true successor to the Selinite priesthood. It falls now to me to decide how best to use this situation to my advantage..." + forsaken.1103.desc.subsumed:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n The feared and respected [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has issued claims that [GetGlobalVariable('sylvanas_character').Char.GetHerHim] $forsaken_cult$ is the true successor to the Selinite priesthood. Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. As the ruler of Lordaeron, a majority of these people fall within my domain. It falls now to me to decide how best to use this situation to my advantage..." #story cycle owner chose conversion - forsaken.1103.desc.embraced:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many of us who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. As the ruler of Lordaeron, a majority of these people fall within my domain. Even the great [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has embraced this new faith. It falls now to me to decide how best to use this situation to my advantage..." + forsaken.1103.desc.embraced:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Even the great [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has embraced this new faith. As the ruler of Lordaeron, a majority of these people fall within my domain. It falls now to me to decide how best to use this situation to my advantage..." #story cycle owner chose tolerance - forsaken.1103.desc.tolerated:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many of us who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. As the ruler of Lordaeron, a majority of these people fall within my domain. The revered [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] [GetGlobalVariable('sylvanas_character').Char.GetHerHim]self has issued a decree of tolerance of this sister faith. It falls now to me to decide how best to use this situation to my advantage..." + forsaken.1103.desc.tolerated:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. The revered [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] [GetGlobalVariable('sylvanas_character').Char.GetHerHim]self has issued a decree of tolerance of this sister faith. As the ruler of Lordaeron, a majority of these people fall within my domain. It falls now to me to decide how best to use this situation to my advantage..." #options forsaken.1103.opt.a:0 "We will adapt this forbidden knowledge to our advantage!" forsaken.1103.opt.b:0 "Let us have a separation of church and state. Embrace the shadow!" @@ -82,7 +82,21 @@ forsaken.9001.opt.d:0 "You live by my will alone, now go and do my bidding..." forsaken.9002.title:0 "An Offer We Could Refuse" forsaken.9002.desc.echoseeker:0 "My councilors have alterted me to an offer from an Arcanist of some repute. This $echo_of_life_adherent$ claims to have the ability to teach our casters powerful experimental spells, in exchange for a small fee and temporary access to some of our restricted arcane texts. We could accept this offer, but it is well known that Arcane magic carries inherent risks and the $echo_of_life_adherent_plural$ are known for carelessness in their pursuits. Another solution would be to have this mage make more traditional enchantments and magical enhancements to our troops' armor. The choice is mine as to how to proceed." -forsaken.9001.desc.alchemist:0 "My councilors have alterted me to an offer from an Alchemist of some repute. This $alchemical_materialism_adherent$ claims to have the ability to enhance our knights with powerful experimental potions, in exchange for a small fee and temporary access to some of our restricted alchemical facilities. We could accept this offer, but it is well known that such alchemical applications carry inherent risks and the $alchemical_materialism_adherent_plural$ are known for their callous experimentats and disregard for their subjects' well being. Another solution would be to have this mage make more traditional enchantments and magical enhancements to our troops' armor. The choice is mine as to how to proceed." -forsaken.9002.opt.a:0 "We'll accept the risks. Commece the experiments!" +forsaken.9002.desc.alchemist:0 "My councilors have alterted me to an offer from an Alchemist of some repute. This follower of $alchemical_materialism$ claims to have the ability to enhance our knights with powerful experimental potions, in exchange for a small fee and temporary access to some of our restricted alchemical facilities.\n\n We could accept this offer, but it is well known that such alchemical applications carry inherent risks and the $alchemical_materialism_adherent_plural$ are known for their callous experimentation and disregard for their subjects' well being. Another solution would be to have this Alchemist make more traditional potions and magical enhancements to our troops' armor. The choice is mine as to how to proceed." +forsaken.9002.opt.a:0 "We'll accept the risks. Commence the experiments!" forsaken.9002.opt.b:0 "Let us go with a more conventional option." forsaken.9002.opt.c:0 "Get this heretic out of my sight!" + +forsaken.9003.title:0 "Laboratory Accident" +forsaken.9003.desc.arcanist:0 "Some unnerving news has come from our Mages Guild. It appears that one of our secret experimentation facilities has exploded, causing tears in time and space to open up across the countryside. Strange beings from outside our dimension left paths of destruction in their wake before vanishing into the aether, and arcane lightning storms set fires that burned entire towns to ashes.\n\nHowever this disaster has also provided us with valuable data that must be collected and applied in our search for the arcane echo of our divine spark. One possibility is to simply build the facility back bigger and better than ever before. Another option would be to salvage some of the research materials from this location to apply elsewhere. Finally, some of our councilors have suggested we take this opportunity to throw blame on the region's religious undesirables.\n\nAs the otherworldy storm clouds dissipate into the night, our agents disperse to enact our will." +forsaken.9003.desc.alchemist:0 "Some unnerving news has come from our Apothecary Corps. It appears that one of our secret experimentation facilities has exploded, leaking dangerous experimental chemicals all over the countryside. While our undead forms are mostly immune to the toxins released, unpredictable effects on the wildlife and structures have caused some unfortunate casualties.\n\nHowever this disaster has also presented us with... opportunities... as well. One possibility is to simply build the facility back bigger and better (and hopefully more safe). Another option would be to salvage some of the materials from this location to shift some of these funds back into our normal ledgers. Finally, some of our councilors have suggested we take this opportunity to throw blame on the region's religious undesirables.\n\nAs the noxious and corrosive fumes dissipate into the night, our agents disperse to enact my will." +forsaken.9003.desc.other_alchemist:0 "The high council was summoned in the dead of night to grave news. It appears that an alchemical weapons facility maintained by dissident $forsaken_cult_adherent_plural$ has exploded, either by accident or on purpose, dispersing dangerous chemicals all over the countryside. While thankfully our undead forms are mostly immune to the toxins released, unpredictable effects on the wildlife and structures have caused some unfortunate casualties.\n\nThis horriffic disaster must quickly be remedied to show the vengeance of the Shadow and the mercy of the Light.\n\nOne of our highest priorities is the well being of our citizens, and a quick dispersement of funds would be the best way to provide relief to the affected area. Another option would be to salvage some of the materials from this facility to provide funding and materiel for our current projects. Finally, some of our councilors have suggested we take this opportunity to throw blame on the heretical $forsaken_cult_adherent_plural$ responsible for this disaster and spread the word of $forgotten_shadow$.\n\nAs the noxious and corrosive fumes dissipate into the night, our agents disperse to enact our will." +forsaken.9003.opt.a:0 "Disperse funds for reconstruction immediately." +forsaken.9003.opt.b:0 "Brief our salvage teams for cleanup." +forsaken.9003.opt.c:0 "I want a propaganda campaign drawn up by sundown!" + +forsaken.9004.title:0 "An Offer We Could Refuse" +forsaken.9004.desc.echoseeker:0 "My councilors have alterted me to an offer from an Arcanist of some repute. This $echo_of_life_adherent$ claims to have the ability to teach our casters powerful experimental spells, in exchange for a small fee and temporary access to some of our restricted arcane texts. We could accept this offer, but it is well known that Arcane magic carries inherent risks and the $echo_of_life_adherent_plural$ are known for carelessness in their pursuits. Another solution would be to have this mage make more traditional enchantments and magical enhancements to our troops' armor. The choice is mine as to how to proceed."troops' armor. The choice is mine as to how to proceed." +forsaken.9004.opt.a:0 "We'll accept the risks. Commece the experiments!" +forsaken.9004.opt.b:0 "Let us go with a more conventional option." +forsaken.9004.opt.c:0 "Get this heretic out of my sight!" diff --git a/localization/english/modifiers/wc_modifiers_l_english.yml b/localization/english/modifiers/wc_modifiers_l_english.yml index 3c9c3ea0eb..1f9bbe14ef 100644 --- a/localization/english/modifiers/wc_modifiers_l_english.yml +++ b/localization/english/modifiers/wc_modifiers_l_english.yml @@ -130,6 +130,12 @@ goblin_business:0 "Business Entrepreneur" goblin_business_desc:0 "This person knows how to make money" + + propaganda_campaign_bonus_add:0 "A propaganda campaign is in force, increasing conversion speed." + propaganda_campaign_tooltip:0 "A propaganda campaign will begin, granting your councilor an increased conversion speed as well as giving you small amount of [prestige|E] and/or [piety|E]." + + #placeholder + wc_medium_development_growth_factor:0 "Medium Development Growth Bonus" #Goblin Depot wc_normal_depot:0 "Functioning Oil Depot" @@ -221,7 +227,7 @@ wc_saw_white_kodo:"Crimson Eyes" wc_saw_white_kodo_desc:1 "This poor centaur has seen a horrific white skinned kodo, a grim omen for their people. It is the sign of both death and malice." - #Lordaeron Modifiers + #Forsaken Modifiers wc_building_undercity:0 "Developing the Undercity" wc_building_undercity_desc:0 "The Forsaken are working hard to make an underground fortress in the sewers beneath the city, known as the Undercity." @@ -236,6 +242,14 @@ wc_executed_religious_minority_modifier:0 "Executed Minority Religionist" wc_executed_religious_minority_modifier_desc:0 "This character is known for mercilessly persecuting religious minorities." + + wc_arcanist_educated_casters:0 "Arcane Educated Casters" + wc_alchemist_altered_troops:0 "Alchemically Atered Troops" + wc_arcanist_equipped_troops:0 "Enchantment-Armored Troops" + wc_alchemist_equipped_troops:0 "Potion-Equipped Troops" + + wc_wreckage_salvaging:0 "Wreckage Salvaging Operations" + #Faith Related Values rf_shadow_opinion:0 "$shadow_group_adj$ Religion Opinion" From 79402db97ba09c4ed5ff294bf375c20d73bce67b Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Thu, 21 Dec 2023 18:49:04 -0500 Subject: [PATCH 22/39] improvements to forsaken 9002 and 1001 --- common/deathreasons/wc_event_deaths.txt | 4 + common/on_action/wc_lordaeron_on_actions.txt | 2 +- events/wc_events/wc_lordaeron_events.txt | 78 +++++++++++++++---- .../wc_lordaeron_events_l_english.yml | 12 ++- .../modifiers/wc_modifiers_l_english.yml | 2 +- .../english/wc_death_reasons_l_english.yml | 3 +- 6 files changed, 82 insertions(+), 19 deletions(-) diff --git a/common/deathreasons/wc_event_deaths.txt b/common/deathreasons/wc_event_deaths.txt index 253bcc3947..857b0b7d7c 100644 --- a/common/deathreasons/wc_event_deaths.txt +++ b/common/deathreasons/wc_event_deaths.txt @@ -6,4 +6,8 @@ death_wandering_isle = { } death_plague = { icon = "death_disease.dds" +} + +death_arcane_explosion = { + icon = "death_natural.dds" } \ No newline at end of file diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index 19453451c8..509323a56d 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -33,7 +33,7 @@ random_yearly_playable_pulse = { 10 = forsaken.9001 10 = forsaken.9002 10 = forsaken.9003 - 10 = forsaken.9004 + #10 = forsaken.9004 } } diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index ccd19c3bb6..57cff912e3 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -117,7 +117,10 @@ forsaken.1001 = { first_valid = { # completely different perspective based on whether Lordaeron is still held by the story owner triggered_desc = { trigger = { - NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } + NOR = { + title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } + title:b_lordaeron.holder = scope:story.story_owner + } } desc = forsaken.1001.desc.independent } @@ -154,8 +157,7 @@ forsaken.1001 = { var:develop_the_undercity ?= flag:ready } } - - #TODO: use a story cycle to handle complex fails such as sylvanas_character deaths + on_trigger_fail = { title:b_lordaeron.holder = { if = { @@ -173,7 +175,12 @@ forsaken.1001 = { text = { first_valid = { triggered_desc = { - trigger = { NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } } + trigger = { + NOR = { + title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } + title:b_lordaeron.holder = scope:story.story_owner + } + } desc = forsaken.1001.opt.a.independent } desc = forsaken.1001.opt.a.owned @@ -1112,23 +1119,66 @@ forsaken.9002 = { random_list = { 50 = { trigger = { scope:new_character.faith = faith:echo_of_life } - add_character_modifier = { - modifier = wc_arcanist_educated_casters - years = 2 + + send_interface_toast = { + title = forsaken.9002.education_successful + left_icon = root + custom_tooltip = forsaken.9002.education_successful_tt + add_character_modifier = { + modifier = wc_arcanist_educated_casters + years = 2 + } } } 50 = { trigger = { scope:new_character.faith = faith:alchemical_materialism } - add_character_modifier = { - modifier = wc_alchemist_altered_troops - years = 2 + + send_interface_toast = { + title = forsaken.9002.alterations_successful + left_icon = root + custom_tooltip = forsaken.9002.alterations_successful_tt + + add_character_modifier = { + modifier = wc_alchemist_altered_troops + years = 2 + } } } 50 = { - random_knight = { - limit = { NOT = { exists = primary_title } } - death = { - death_reason = death_poison + trigger = { scope:new_character.faith = faith:echo_of_life } + send_interface_toast = { + title = forsaken.9002.education_failed + left_icon = root + custom_tooltip = forsaken.9002.education_failed_tt + random_knight = { + limit = { NOT = { exists = primary_title } } + death = { + death_reason = death_arcane_explosion + } + } + scope:new_character = { + death = { + death_reason = death_arcane_explosion + } + } + } + } + 50 = { + trigger = { scope:new_character.faith = faith:alchemical_materialism } + send_interface_toast = { + title = forsaken.9002.alterations_failed + left_icon = root + custom_tooltip = forsaken.9002.alterations_failed_tt + random_knight = { + limit = { NOT = { exists = primary_title } } + death = { + death_reason = death_poison + } + } + scope:new_character = { + death = { + death_reason = death_poison + } } } } diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index 0345590ca4..315c254c53 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -81,9 +81,17 @@ forsaken.9001.opt.c:0 "Your talent has granted you a second chance. Come work fo forsaken.9001.opt.d:0 "You live by my will alone, now go and do my bidding..." forsaken.9002.title:0 "An Offer We Could Refuse" -forsaken.9002.desc.echoseeker:0 "My councilors have alterted me to an offer from an Arcanist of some repute. This $echo_of_life_adherent$ claims to have the ability to teach our casters powerful experimental spells, in exchange for a small fee and temporary access to some of our restricted arcane texts. We could accept this offer, but it is well known that Arcane magic carries inherent risks and the $echo_of_life_adherent_plural$ are known for carelessness in their pursuits. Another solution would be to have this mage make more traditional enchantments and magical enhancements to our troops' armor. The choice is mine as to how to proceed." -forsaken.9002.desc.alchemist:0 "My councilors have alterted me to an offer from an Alchemist of some repute. This follower of $alchemical_materialism$ claims to have the ability to enhance our knights with powerful experimental potions, in exchange for a small fee and temporary access to some of our restricted alchemical facilities.\n\n We could accept this offer, but it is well known that such alchemical applications carry inherent risks and the $alchemical_materialism_adherent_plural$ are known for their callous experimentation and disregard for their subjects' well being. Another solution would be to have this Alchemist make more traditional potions and magical enhancements to our troops' armor. The choice is mine as to how to proceed." +forsaken.9002.desc.echoseeker:0 "My councilors have alterted me to an offer from an arcanist of some repute. This $echo_of_life_adherent$ claims to have the ability to teach our casters powerful experimental spells, in exchange for a small fee and temporary access to some of our restricted arcane texts. We could accept this offer, but it is well known that Arcane magic carries inherent risks and the $echo_of_life_adherent_plural$ are known for carelessness in their pursuits. Another solution would be to have this mage make more traditional enchantments and magical enhancements to our troops' armor. The choice is mine as to how to proceed." +forsaken.9002.desc.alchemist:0 "My councilors have alterted me to an offer from an alchemist of some repute. This follower of $alchemical_materialism$ claims to have the ability to enhance our knights with powerful experimental potions, in exchange for a small fee and temporary access to some of our restricted alchemical facilities.\n\n We could accept this offer, but it is well known that such alchemical applications carry inherent risks and the $alchemical_materialism_adherent_plural$ are known for their callous experimentation and disregard for their subjects' well being. Another solution would be to have this alchemist make more traditional potions and magical enhancements to our troops' armor. The choice is mine as to how to proceed." forsaken.9002.opt.a:0 "We'll accept the risks. Commence the experiments!" +forsaken.9002.education_successful:0 "Arcane Education" +forsaken.9002.education_successful_tt:0 "Casters were educated in experimental spellcraft" +forsaken.9002.alteration_successful:0 "Alchemical Alteration" +forsaken.9002.alteration_successful_tt:0 "Knights and Giants were enhanced successfully" +forsaken.9002.education_failed:0 "Arcane Explosion" +forsaken.9002.education_failed_tt:0 "Arcane education ended in tragedy" +forsaken.9002.alteration_failed:0 "Alchemical Accident" +forsaken.9002.alteration_failed_tt:0 "Alchemical alteration ended tragically" forsaken.9002.opt.b:0 "Let us go with a more conventional option." forsaken.9002.opt.c:0 "Get this heretic out of my sight!" diff --git a/localization/english/modifiers/wc_modifiers_l_english.yml b/localization/english/modifiers/wc_modifiers_l_english.yml index 1f9bbe14ef..69e384cfe2 100644 --- a/localization/english/modifiers/wc_modifiers_l_english.yml +++ b/localization/english/modifiers/wc_modifiers_l_english.yml @@ -244,7 +244,7 @@ wc_executed_religious_minority_modifier_desc:0 "This character is known for mercilessly persecuting religious minorities." wc_arcanist_educated_casters:0 "Arcane Educated Casters" - wc_alchemist_altered_troops:0 "Alchemically Atered Troops" + wc_alchemist_altered_troops:0 "Alchemically Altered Troops" wc_arcanist_equipped_troops:0 "Enchantment-Armored Troops" wc_alchemist_equipped_troops:0 "Potion-Equipped Troops" diff --git a/localization/english/wc_death_reasons_l_english.yml b/localization/english/wc_death_reasons_l_english.yml index 27797e77ff..51aacb5ed1 100644 --- a/localization/english/wc_death_reasons_l_english.yml +++ b/localization/english/wc_death_reasons_l_english.yml @@ -6,4 +6,5 @@ death_wandering_isle_killer:0 "banished to the Wandering Isle by [TARGET_CHARACTER.GetUIName]" death_plague:0 "died of [Scourge|E] Plague" - \ No newline at end of file + + death_arcane_explosion:0 "died in a freak and uncontrolled Arcane Explosion" \ No newline at end of file From e680f1b962f9a9ee47256726f64fb84027b6fed0 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Fri, 22 Dec 2023 12:36:59 -0500 Subject: [PATCH 23/39] fixes to forsaken events and enhance propaganda --- .../council_tasks/00_court_chaplain_tasks.txt | 5 +- common/council_tasks/00_steward_tasks.txt | 5 +- common/on_action/wc_lordaeron_on_actions.txt | 6 +- common/scripted_effects/wc_other_effects.txt | 6 +- events/wc_events/wc_lordaeron_events.txt | 181 +++++++++++++++--- .../wc_lordaeron_events_l_english.yml | 21 +- .../modifiers/wc_modifiers_l_english.yml | 10 +- 7 files changed, 181 insertions(+), 53 deletions(-) diff --git a/common/council_tasks/00_court_chaplain_tasks.txt b/common/council_tasks/00_court_chaplain_tasks.txt index 067c109f07..669314bb63 100644 --- a/common/council_tasks/00_court_chaplain_tasks.txt +++ b/common/council_tasks/00_court_chaplain_tasks.txt @@ -452,10 +452,9 @@ task_conversion = { if = { limit = { scope:councillor_liege = { - exists = var:propaganda_campaign OR = { - var:propaganda_campaign =? flag:religious - var:propaganda_campaign =? flag:cultural_and_religious + var:propaganda_campaign ?= flag:religious + var:propaganda_campaign ?= flag:cultural_and_religious } } } diff --git a/common/council_tasks/00_steward_tasks.txt b/common/council_tasks/00_steward_tasks.txt index c547d3b5b6..0af003dd81 100644 --- a/common/council_tasks/00_steward_tasks.txt +++ b/common/council_tasks/00_steward_tasks.txt @@ -798,10 +798,9 @@ task_promote_culture = { if = { limit = { scope:councillor_liege = { - exists = var:propaganda_campaign OR = { - var:propaganda_campaign =? flag:cultural - var:propaganda_campaign =? flag:cultural_and_religious + var:propaganda_campaign ?= flag:cultural + var:propaganda_campaign ?= flag:cultural_and_religious } } } diff --git a/common/on_action/wc_lordaeron_on_actions.txt b/common/on_action/wc_lordaeron_on_actions.txt index 509323a56d..d199e614f2 100644 --- a/common/on_action/wc_lordaeron_on_actions.txt +++ b/common/on_action/wc_lordaeron_on_actions.txt @@ -23,17 +23,17 @@ random_yearly_playable_pulse = { random_events = { chance_of_no_event = { - value = 0 + value = 50 if = { limit = { is_of_forsaken_like_culture = no } - add = 100 + add = 50 } } 10 = forsaken.9001 10 = forsaken.9002 10 = forsaken.9003 - #10 = forsaken.9004 + 10 = forsaken.9004 } } diff --git a/common/scripted_effects/wc_other_effects.txt b/common/scripted_effects/wc_other_effects.txt index 763148876d..d7e1d5f0c2 100644 --- a/common/scripted_effects/wc_other_effects.txt +++ b/common/scripted_effects/wc_other_effects.txt @@ -34,7 +34,7 @@ start_religious_propaganda_campaign = { years = 2 } set_variable = { - name = var:propaganda_campaign + name = propaganda_campaign value = flag:religious years = 2 } @@ -46,7 +46,7 @@ start_cultural_propaganda_campaign = { years = 2 } set_variable = { - name = var:propaganda_campaign + name = propaganda_campaign value = flag:cultural years = 2 } @@ -58,7 +58,7 @@ start_cultural_and_religious_propaganda_campaign = { years = 2 } set_variable = { - name = var:propaganda_campaign + name = propaganda_campaign value = flag:cultural_and_religious years = 2 } diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 57cff912e3..733107037e 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1216,6 +1216,10 @@ forsaken.9003 = { title = forsaken.9003.title theme = battle + override_background = { + reference = burning_building + } + right_portrait = { character = root animation = worry @@ -1240,6 +1244,10 @@ forsaken.9003 = { } trigger = { + NOR = { + var:propaganda_campaign ?= flag:religious + var:propaganda_campaign ?= flag:cultural_and_religious + } any_held_title = { tier = tier_county development_level > 2 @@ -1292,11 +1300,15 @@ forsaken.9003 = { } # cast blame on religious minorities - option = { - show_as_unavailable = { - scope:councillor_liege = { - exists = var:propaganda_campaign + option = { + trigger = { + any_held_title = { + NOT = { faith = root.faith } } + NOR = { + var:propaganda_campaign ?= flag:religious + var:propaganda_campaign ?= flag:cultural_and_religious + } } name = forsaken.9003.opt.c custom_tooltip = { @@ -1313,57 +1325,164 @@ forsaken.9004 = { desc = forsaken.9004.desc theme = battle - trigger = { - any_character_to_title_neighboring_county = { - NOT = { - holder = { is_allied_to = root } # allies won't do this - AND = { - # faiths who don't hate undead won't do this... - OR = { - county.faith = { has_doctrine = doctrine_death_magic_accepted } - county.faith = { has_doctrine = doctrine_death_magic_approved } - } - # ...but demonic and eldritch governments will do this anyway - holder = { NOR = { has_government = demonic_government has_government = eldritch_government } } - } - } - } + right_portrait = { + character = root + animation = rage } - immediate = { - random_character_to_title_neighboring_county = { - limit = { + trigger = { + any_held_title = { + tier = tier_county + culture = culture:forsaken + any_neighboring_county = { NOT = { - holder = { is_allied_to = root } + holder = { is_allied_to = root } # allies won't do this + culture = culture:forsaken # forsaken won't do this AND = { + # faiths who don't hate undead won't do this... OR = { county.faith = { has_doctrine = doctrine_death_magic_accepted } county.faith = { has_doctrine = doctrine_death_magic_approved } } + # ...but demonic and eldritch governments will do this anyway holder = { NOR = { has_government = demonic_government has_government = eldritch_government } } } } + } + } + } + + immediate = { + random_held_title = { + limit = { + tier = tier_county + culture = culture:forsaken + } + county = { + change_county_control = medium_county_control_loss + } + save_scope_as = raider_target + + random_neighboring_county = { + limit = { + NOT = { + holder = { is_allied_to = root } + AND = { + OR = { + county.faith = { has_doctrine = doctrine_death_magic_accepted } + county.faith = { has_doctrine = doctrine_death_magic_approved } + } + holder = { NOR = { has_government = demonic_government has_government = eldritch_government } } + } + } + } + save_scope_as = raider_source } - save_scope_as = raider_source } - save_scope_as = raider_target } - # + # divert local levies to defense option = { name = forsaken.9004.opt.a - remove_short_term_gold = medium_gold_value + + scope:raider_target = { + add_county_modifier = { + modifier = stewardship_domain_roadside_guard_patrols_modifier + years = 2 + } + } } - # + # pay money for better walls option = { name = forsaken.9004.opt.b - add_gold = minor_gold_value + + remove_short_term_gold = medium_gold_value + + scope:raider_target = { + add_county_modifier = { + modifier = hold_court_8010_fortifications_modifier + years = 2 + } + } } - # + option = { + name = forsaken.9004.opt.d + + trigger = { + any_held_title = { + tier = tier_county + NOT = { culture = root.culture } + } + NOR = { + var:propaganda_campaign ?= flag:cultural + var:propaganda_campaign ?= flag:cultural_and_religious + } + } + if = { + limit = { var:propaganda_campaign ?= flag:religious } + custom_tooltip = { + text = propaganda_campaign_cultural_and_religious_tooltip + start_cultural_and_religious_propaganda_campaign = yes + } + } else = { + custom_tooltip = { + text = propaganda_campaign_cultural_tooltip + start_cultural_propaganda_campaign = yes + } + } + } + + # raid them back! option = { name = forsaken.9004.opt.c + + trigger = { + OR = { + has_trait = vengeful has_trait = wrathful has_trait = brave has_trait = impatient has_trait = irritable + martial > 13 + } + scope:raider_source = { development_level > 2 } + } + scope:raider_target = { + county = { + change_county_control = medium_county_control_loss + change_development_progress_with_overflow = 50 + } + } + + send_interface_message = { + type = event_martial_bad + title = forsaken.9004.t + left_icon = scope:root + show_as_tooltip = { + scope:raider_source = { + county = { + change_development_progress_with_overflow = -75 + change_county_control = medium_county_control_loss + culture = { + change_cultural_acceptance = { + target = root.culture + value = { + value = 20 + multiply = scope:raider_source.county.development_level + divide = 100 + } + desc = wc_brushfire_conflict + } + } + } + # todo: maybe add in an event for this because i'm too lazy to do it now and i'm getting sick of this lol + # holder = { + # trigger_event = { id = forsaken.9005 } + # } + } + } + desc = forsaken.9004.tt + } + + add_gold = minor_gold_value } -} \ No newline at end of file +} diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index 315c254c53..b4b7ac9812 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -86,12 +86,12 @@ forsaken.9002.desc.alchemist:0 "My councilors have alterted me to an offer from forsaken.9002.opt.a:0 "We'll accept the risks. Commence the experiments!" forsaken.9002.education_successful:0 "Arcane Education" forsaken.9002.education_successful_tt:0 "Casters were educated in experimental spellcraft" -forsaken.9002.alteration_successful:0 "Alchemical Alteration" -forsaken.9002.alteration_successful_tt:0 "Knights and Giants were enhanced successfully" +forsaken.9002.alterations_successful:0 "Alchemical Alteration" +forsaken.9002.alterations_successful_tt:0 "Knights and Giants were enhanced successfully" forsaken.9002.education_failed:0 "Arcane Explosion" forsaken.9002.education_failed_tt:0 "Arcane education ended in tragedy" -forsaken.9002.alteration_failed:0 "Alchemical Accident" -forsaken.9002.alteration_failed_tt:0 "Alchemical alteration ended tragically" +forsaken.9002.alterations_failed:0 "Alchemical Accident" +forsaken.9002.alterations_failed_tt:0 "Alchemical alteration ended tragically" forsaken.9002.opt.b:0 "Let us go with a more conventional option." forsaken.9002.opt.c:0 "Get this heretic out of my sight!" @@ -103,8 +103,11 @@ forsaken.9003.opt.a:0 "Disperse funds for reconstruction immediately." forsaken.9003.opt.b:0 "Brief our salvage teams for cleanup." forsaken.9003.opt.c:0 "I want a propaganda campaign drawn up by sundown!" -forsaken.9004.title:0 "An Offer We Could Refuse" -forsaken.9004.desc.echoseeker:0 "My councilors have alterted me to an offer from an Arcanist of some repute. This $echo_of_life_adherent$ claims to have the ability to teach our casters powerful experimental spells, in exchange for a small fee and temporary access to some of our restricted arcane texts. We could accept this offer, but it is well known that Arcane magic carries inherent risks and the $echo_of_life_adherent_plural$ are known for carelessness in their pursuits. Another solution would be to have this mage make more traditional enchantments and magical enhancements to our troops' armor. The choice is mine as to how to proceed."troops' armor. The choice is mine as to how to proceed." -forsaken.9004.opt.a:0 "We'll accept the risks. Commece the experiments!" -forsaken.9004.opt.b:0 "Let us go with a more conventional option." -forsaken.9004.opt.c:0 "Get this heretic out of my sight!" +forsaken.9004.title:0 "Brushfire Conflict" +forsaken.9004.desc:0 "I slow my horse to a stop as I survey the ruined town that has just come into view over the horizon. On the side of the road, a crow picks at the eye socket of a fallen Forsaken farmer. Where last night pillars of smoke poured into the air, now there is only silence, ashes, and ruins.\n\nYet again my people suffer the depredations of the living. They refuse to acknowledge us as sentient, as deserving of peace and property. They carry our belongings, our wealth, the fruit of our harvest home and their leaders do nothing. The corpse of the farmer below bears the marks of crude implements and not precise weapons; this was done by mere peasants with no sanction from their lord." +forsaken.9004.opt.a:0 "Rearrange our levies, we must keep these people safe." +forsaken.9004.opt.b:0 "Allocate additional funds to defense." +forsaken.9004.opt.d:0 "This gives us an opportunity to build solidarity." +forsaken.9004.opt.c:0 "We will have our revenge. Tonight we ride!" +forsaken.9004.t:0 "Brushfire Conflict" +forsaken.9004.tt:0 "This occurred because of your county faith's hatred of the Forsaken." diff --git a/localization/english/modifiers/wc_modifiers_l_english.yml b/localization/english/modifiers/wc_modifiers_l_english.yml index 69e384cfe2..a92afc8584 100644 --- a/localization/english/modifiers/wc_modifiers_l_english.yml +++ b/localization/english/modifiers/wc_modifiers_l_english.yml @@ -132,7 +132,15 @@ goblin_business_desc:0 "This person knows how to make money" propaganda_campaign_bonus_add:0 "A propaganda campaign is in force, increasing conversion speed." - propaganda_campaign_tooltip:0 "A propaganda campaign will begin, granting your councilor an increased conversion speed as well as giving you small amount of [prestige|E] and/or [piety|E]." + propaganda_campaign_religious_tooltip:0 "A propaganda campaign will begin, granting your [court_chaplain|E] an increased conversion speed as well as giving you small amount of [piety|E]." + propaganda_campaign_cultural_tooltip:0 "A propaganda campaign will begin, granting your [steward|E] an increased conversion speed as well as giving you small amount of [prestige|E]." + propaganda_campaign_cultural_and_religious_tooltip:0 "A propaganda campaign will begin, granting your [court_chaplain|E] and [steward|E] an increased conversion speed as well as giving you small amount of [prestige|E] and [piety|E]." + + wc_propaganda_campaign_cultural:0 "Cultural Propaganda Campaign" + wc_propaganda_campaign_religious:0 "Religious Propaganda Campaign" + wc_propaganda_campaign_cultural_and_religious:0 "Total Propaganda Campaign" + + wc_brushfire_conflict:0 "Brushfire Conflict" #placeholder wc_medium_development_growth_factor:0 "Medium Development Growth Bonus" From 0d8f87f2ebd75d8b8701093e7286ec52c90e3c26 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Fri, 22 Dec 2023 12:38:53 -0500 Subject: [PATCH 24/39] add improved propagand campaign to forsaken.9003 --- events/wc_events/wc_lordaeron_events.txt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 733107037e..0535159259 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1311,9 +1311,18 @@ forsaken.9003 = { } } name = forsaken.9003.opt.c - custom_tooltip = { - text = propaganda_campaign_tooltip - start_religious_propaganda_campaign = yes + + if = { + limit = { var:propaganda_campaign ?= flag:cultural } + custom_tooltip = { + text = propaganda_campaign_cultural_and_religious_tooltip + start_cultural_and_religious_propaganda_campaign = yes + } + } else = { + custom_tooltip = { + text = propaganda_campaign_religious_tooltip + start_religious_propaganda_campaign = yes + } } } } From f064c32207c42c612a3b8e155cff54f382de01d1 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Fri, 22 Dec 2023 12:55:07 -0500 Subject: [PATCH 25/39] fix forsaken.1000 AGAIN --- common/story_cycles/wc_story_cycle_forsaken_origin.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 4fe154add2..3763aeb5d5 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -4,8 +4,7 @@ story_owner = { if = { limit = { - exists = top_liege - NOT = { top_liege = root } + is_independent_ruler = no } top_liege = { trigger_event = { From cdb92b1e499b64d279439f44ca74a3f1117710d5 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Fri, 22 Dec 2023 15:02:56 -0500 Subject: [PATCH 26/39] fix incorrect sylvanas character set --- common/story_cycles/wc_story_cycle_forsaken_origin.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/story_cycles/wc_story_cycle_forsaken_origin.txt b/common/story_cycles/wc_story_cycle_forsaken_origin.txt index 3763aeb5d5..6b0fdf8188 100644 --- a/common/story_cycles/wc_story_cycle_forsaken_origin.txt +++ b/common/story_cycles/wc_story_cycle_forsaken_origin.txt @@ -13,7 +13,7 @@ } } } - set_global_variable = { name = sylvanas_character value = root } + set_global_variable = { name = sylvanas_character value = this } } } From ac5a5d5307dd214fe9218a4a1a802d711d8f1bac Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Fri, 22 Dec 2023 15:31:24 -0500 Subject: [PATCH 27/39] fix 9002 trigger condition, 9004 msg still broke --- common/decisions/wc_lordaeron_decisions.txt | 2 - events/wc_events/wc_lordaeron_events.txt | 74 ++++++++++++--------- 2 files changed, 43 insertions(+), 33 deletions(-) diff --git a/common/decisions/wc_lordaeron_decisions.txt b/common/decisions/wc_lordaeron_decisions.txt index 37f0a3cef6..abe23249f0 100644 --- a/common/decisions/wc_lordaeron_decisions.txt +++ b/common/decisions/wc_lordaeron_decisions.txt @@ -21,8 +21,6 @@ develop_the_undercity = { prestige_level >= 2 religion = { is_in_family = rf_shadow } - - is_of_forsaken_like_culture = yes } cost = { diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 0535159259..0beb264896 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1095,16 +1095,19 @@ forsaken.9002 = { 50 = { if = { limit = { - NOT = { - title:b_lordaeron = { - var:develop_the_undercity ?= flag:finished + OR = { + NOT = { + title:b_lordaeron = { + var:develop_the_undercity ?= flag:finished + } } + faith = faith:alchemical_materialism } } - set_character_faith = faith:alchemical_materialism + set_character_faith = faith:forsaken_cult } else = { - set_character_faith = faith:forsaken_cult + set_character_faith = faith:alchemical_materialism } } } @@ -1131,7 +1134,10 @@ forsaken.9002 = { } } 50 = { - trigger = { scope:new_character.faith = faith:alchemical_materialism } + trigger = { + scope:new_character.faith = faith:alchemical_materialism + scope:new_character.faith = faith:forsaken_cult + } send_interface_toast = { title = forsaken.9002.alterations_successful @@ -1164,7 +1170,10 @@ forsaken.9002 = { } } 50 = { - trigger = { scope:new_character.faith = faith:alchemical_materialism } + trigger = { + scope:new_character.faith = faith:alchemical_materialism + scope:new_character.faith = faith:forsaken_cult + } send_interface_toast = { title = forsaken.9002.alterations_failed left_icon = root @@ -1461,36 +1470,39 @@ forsaken.9004 = { change_development_progress_with_overflow = 50 } } - - send_interface_message = { - type = event_martial_bad - title = forsaken.9004.t - left_icon = scope:root - show_as_tooltip = { - scope:raider_source = { - county = { - change_development_progress_with_overflow = -75 - change_county_control = medium_county_control_loss - culture = { - change_cultural_acceptance = { - target = root.culture - value = { - value = 20 - multiply = scope:raider_source.county.development_level - divide = 100 + scope:raider_source ={ + holder = { + send_interface_message = { + type = event_martial_bad + title = forsaken.9004.t + left_icon = scope:root + show_as_tooltip = { + scope:raider_source.county = { + change_development_progress_with_overflow = -75 + change_county_control = medium_county_control_loss + culture = { + change_cultural_acceptance = { + target = root.culture + value = { + value = 20 + multiply = scope:raider_source.county.development_level + divide = 100 + } + desc = wc_brushfire_conflict } - desc = wc_brushfire_conflict } } + # todo: maybe add in an event for this because i'm too lazy to do it now and i'm getting sick of this lol + # holder = { + # trigger_event = { id = forsaken.9005 } + # } } - # todo: maybe add in an event for this because i'm too lazy to do it now and i'm getting sick of this lol - # holder = { - # trigger_event = { id = forsaken.9005 } - # } + desc = forsaken.9004.tt } - } - desc = forsaken.9004.tt + } + } + add_gold = minor_gold_value } From 426a77429dc7a3da79c27a3081c46e28a8870616 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Fri, 22 Dec 2023 16:00:01 -0500 Subject: [PATCH 28/39] fix 9002 random effect --- events/wc_events/wc_lordaeron_events.txt | 127 +++++++++--------- .../wc_lordaeron_events_l_english.yml | 1 + 2 files changed, 68 insertions(+), 60 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 0beb264896..07691c1658 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1070,6 +1070,10 @@ forsaken.9002 = { trigger = { scope:new_character.faith = faith:echo_of_life } desc = forsaken.9002.desc.echoseeker } + triggered_desc = { + trigger = { scope:new_character.faith = faith:forsaken_cult } + desc = forsaken.9002.desc.cultist + } desc = forsaken.9002.desc.alchemist } } @@ -1090,7 +1094,13 @@ forsaken.9002 = { scope:new_character = { random_list = { 50 = { - set_character_faith = faith:echo_of_life + if = { + limit = { faith = faith:echo_of_life } + set_character_faith = faith:forsaken_cult + } + else = { + set_character_faith = faith:echo_of_life + } } 50 = { if = { @@ -1119,77 +1129,74 @@ forsaken.9002 = { # yes, let them alter our troops option = { name = forsaken.9002.opt.a - random_list = { - 50 = { - trigger = { scope:new_character.faith = faith:echo_of_life } - - send_interface_toast = { - title = forsaken.9002.education_successful - left_icon = root - custom_tooltip = forsaken.9002.education_successful_tt - add_character_modifier = { - modifier = wc_arcanist_educated_casters - years = 2 - } - } - } - 50 = { - trigger = { - scope:new_character.faith = faith:alchemical_materialism - scope:new_character.faith = faith:forsaken_cult - } - - send_interface_toast = { - title = forsaken.9002.alterations_successful - left_icon = root - custom_tooltip = forsaken.9002.alterations_successful_tt - - add_character_modifier = { - modifier = wc_alchemist_altered_troops - years = 2 + if = { + limit = { scope:new_character.faith = faith:echo_of_life } + random_list = { + 50 = { + send_interface_toast = { + title = forsaken.9002.education_successful + left_icon = root + custom_tooltip = forsaken.9002.education_successful_tt + add_character_modifier = { + modifier = wc_arcanist_educated_casters + years = 2 + } } } - } - 50 = { - trigger = { scope:new_character.faith = faith:echo_of_life } - send_interface_toast = { - title = forsaken.9002.education_failed - left_icon = root - custom_tooltip = forsaken.9002.education_failed_tt - random_knight = { - limit = { NOT = { exists = primary_title } } - death = { - death_reason = death_arcane_explosion + 50 = { + send_interface_toast = { + title = forsaken.9002.education_failed + left_icon = root + custom_tooltip = forsaken.9002.education_failed_tt + random_knight = { + limit = { NOT = { exists = primary_title } } + death = { + death_reason = death_arcane_explosion + } } - } - scope:new_character = { - death = { - death_reason = death_arcane_explosion + scope:new_character = { + death = { + death_reason = death_arcane_explosion + } } } } } - 50 = { - trigger = { - scope:new_character.faith = faith:alchemical_materialism - scope:new_character.faith = faith:forsaken_cult - } - send_interface_toast = { - title = forsaken.9002.alterations_failed - left_icon = root - custom_tooltip = forsaken.9002.alterations_failed_tt - random_knight = { - limit = { NOT = { exists = primary_title } } - death = { - death_reason = death_poison + } + else = { + random_list = { + 50 = { + + send_interface_toast = { + title = forsaken.9002.alterations_successful + left_icon = root + custom_tooltip = forsaken.9002.alterations_successful_tt + + add_character_modifier = { + modifier = wc_alchemist_altered_troops + years = 2 } } - scope:new_character = { - death = { - death_reason = death_poison + } + 50 = { + send_interface_toast = { + title = forsaken.9002.alterations_failed + left_icon = root + custom_tooltip = forsaken.9002.alterations_failed_tt + random_knight = { + limit = { NOT = { exists = primary_title } } + death = { + death_reason = death_poison + } + } + scope:new_character = { + death = { + death_reason = death_poison + } } } } + } } } diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index b4b7ac9812..408e6f46f3 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -83,6 +83,7 @@ forsaken.9001.opt.d:0 "You live by my will alone, now go and do my bidding..." forsaken.9002.title:0 "An Offer We Could Refuse" forsaken.9002.desc.echoseeker:0 "My councilors have alterted me to an offer from an arcanist of some repute. This $echo_of_life_adherent$ claims to have the ability to teach our casters powerful experimental spells, in exchange for a small fee and temporary access to some of our restricted arcane texts. We could accept this offer, but it is well known that Arcane magic carries inherent risks and the $echo_of_life_adherent_plural$ are known for carelessness in their pursuits. Another solution would be to have this mage make more traditional enchantments and magical enhancements to our troops' armor. The choice is mine as to how to proceed." forsaken.9002.desc.alchemist:0 "My councilors have alterted me to an offer from an alchemist of some repute. This follower of $alchemical_materialism$ claims to have the ability to enhance our knights with powerful experimental potions, in exchange for a small fee and temporary access to some of our restricted alchemical facilities.\n\n We could accept this offer, but it is well known that such alchemical applications carry inherent risks and the $alchemical_materialism_adherent_plural$ are known for their callous experimentation and disregard for their subjects' well being. Another solution would be to have this alchemist make more traditional potions and magical enhancements to our troops' armor. The choice is mine as to how to proceed." +forsaken.9002.desc.cultist:0 "My councilors have alterted me to an offer from an alchemist of some repute. This follower of $forsaken_cult$ claims to have the ability to enhance our knights with powerful experimental potions, in exchange for a small fee and temporary access to some of our restricted alchemical facilities.\n\n We could accept this offer, but it is well known that such alchemical applications carry inherent risks and the $forsaken_cult_adherent_plural$ are known for their callous experimentation and slavish devotion to their religious leader. Another solution would be to have this alchemist make more traditional potions and magical enhancements to our troops' armor. The choice is mine as to how to proceed." forsaken.9002.opt.a:0 "We'll accept the risks. Commence the experiments!" forsaken.9002.education_successful:0 "Arcane Education" forsaken.9002.education_successful_tt:0 "Casters were educated in experimental spellcraft" From 19739dcfddee4d484d042aa7caae3be9080d1b89 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sat, 23 Dec 2023 23:03:02 -0500 Subject: [PATCH 29/39] Update events/wc_events/wc_lordaeron_events.txt Co-authored-by: dione --- events/wc_events/wc_lordaeron_events.txt | 146 ++++++++++++++++++----- 1 file changed, 114 insertions(+), 32 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 07691c1658..efcaf5427a 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1459,58 +1459,140 @@ forsaken.9004 = { } } - # raid them back! +# raid them back! option = { name = forsaken.9004.opt.c trigger = { OR = { has_trait = vengeful has_trait = wrathful has_trait = brave has_trait = impatient has_trait = irritable - martial > 13 } scope:raider_source = { development_level > 2 } } - - scope:raider_target = { - county = { - change_county_control = medium_county_control_loss - change_development_progress_with_overflow = 50 + + + # tooltip something about fighting them idk + duel = { + skill = martial + target = scope:raider_source.holder + + #You Win + 50 = { + #tooltip you win + compare_modifier = { + value = scope:duel_value + multiplier = 2.5 + } + modifier = { + scope:raider_source.holder = { has_trait = craven } + add = 15 + } + modifier = { + scope:raider_source.holder = { has_dread_level_towards = { target = prev level >= 1 } } + add = 15 + } + modifier = { + OR = { + has_trait = aggressive_attacker + has_trait = berserker + } + add = 20 + } + scope:raider_source = { + holder = { + send_interface_message = { + type = event_martial_bad + title = forsaken.9004.t + left_icon = root + show_as_tooltip = { + scope:raider_source.county = { + change_development_progress_with_overflow = -75 + change_county_control = medium_county_control_loss + } + stress_impact = { + base = medium_stress_impact_gain + } + # todo: maybe add in an event for this because i'm too lazy to do it now and i'm getting sick of this lol + # trigger_event = { id = forsaken.9005 } + } + } + desc = forsaken.9004.tt + } + hidden_effect = { + progress_towards_rival_effect = { + REASON = rival_humiliated + CHARACTER = scope:raider_target.holder + OPINION = -15 + } + } + } + + send_interface_message = { + type = event_martial_good + title = forsaken.9004.t + left_icon = root + scope:raider_target = { + county = { + change_county_control = minor_county_control_gain + change_development_progress_with_overflow = 10 + } + } + stress_impact = { + base = minor_stress_impact_loss + } + } + add_gold = minor_gold_value } - } - scope:raider_source ={ - holder = { + + #You Lose + 50 = { + #tooltip you snooze + modifier = { + has_trait = craven + add = -15 + } + modifier = { + has_trait = wounded + add = -15 + } + compare_modifier = { + value = scope:duel_value + multiplier = -2.5 + } send_interface_message = { type = event_martial_bad title = forsaken.9004.t left_icon = scope:root show_as_tooltip = { - scope:raider_source.county = { - change_development_progress_with_overflow = -75 - change_county_control = medium_county_control_loss - culture = { - change_cultural_acceptance = { - target = root.culture - value = { - value = 20 - multiply = scope:raider_source.county.development_level - divide = 100 - } - desc = wc_brushfire_conflict - } - } + remove_short_term_gold = minor_gold_value + add_dread = minor_dread_loss + stress_impact = { + base = minor_stress_impact_gain + brave = minor_stress_impact_gain } - # todo: maybe add in an event for this because i'm too lazy to do it now and i'm getting sick of this lol - # holder = { - # trigger_event = { id = forsaken.9005 } - # } } - desc = forsaken.9004.tt } - } + hidden_effect = { + progress_towards_rival_effect = { + REASON = rival_humiliated + CHARACTER = scope:raider_source.holder + OPINION = -15 + } + } + } } - - add_gold = minor_gold_value + culture = { + change_cultural_acceptance = { + target = scope:raider_source.holder.culture + value = { + value = -20 + multiply = scope:raider_source.county.development_level + divide = 100 + } + desc = wc_brushfire_conflict + } + } } } From 7f06d9ad01712ee6fcc01013168c2b652bdc9982 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sat, 23 Dec 2023 23:06:49 -0500 Subject: [PATCH 30/39] Update events/wc_events/wc_lordaeron_events.txt Co-authored-by: dione --- events/wc_events/wc_lordaeron_events.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index efcaf5427a..f889575b4c 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -922,6 +922,10 @@ forsaken.9001 = { modifier = theft_opinion } } + stress_impact = { + base = minor_stress_impact_gain + paranoid = medium_stress_impact_gain + } } right_portrait = { From 3b22a7acc91bbed05ded1e36204b6095c4b66db2 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sat, 23 Dec 2023 23:08:47 -0500 Subject: [PATCH 31/39] Update events/wc_events/wc_lordaeron_events.txt Co-authored-by: dione --- events/wc_events/wc_lordaeron_events.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index f889575b4c..6e11ebca4a 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1047,6 +1047,9 @@ forsaken.9001 = { } } + stress_impact = { + vengeful = minor_stress_impact_gain + } } } } From 9f22e4c61df404d7de5b7043ced0daa521c27e9d Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sat, 23 Dec 2023 23:12:01 -0500 Subject: [PATCH 32/39] add raiding cty holder image in forsaken.9004 --- events/wc_events/wc_lordaeron_events.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 07691c1658..e2681c2aa5 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1355,6 +1355,10 @@ forsaken.9004 = { animation = rage } + lower_center_portrait = { + character = scope:raider_source.holder + } + trigger = { any_held_title = { tier = tier_county From 7f578c9216c20011e9b40259b7423006d71d482d Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Sun, 24 Dec 2023 14:58:53 -0500 Subject: [PATCH 33/39] add stress and ai stuff to forsaken events --- events/wc_events/wc_lordaeron_events.txt | 469 ++++++++++++++++-- .../wc_lordaeron_events_l_english.yml | 3 + 2 files changed, 442 insertions(+), 30 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 436183906d..a689159422 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -39,6 +39,13 @@ forsaken.1000 = { scope:story.story_owner = { save_scope_as = current_owner } + stress_impact = { + arbitrary = medium_stress_impact_gain + stubborn = medium_stress_impact_gain + ambitious = medium_stress_impact_gain + paranoid = medium_stress_impact_gain + arrogant = medium_stress_impact_gain + } } # take over the story (player only) @@ -69,6 +76,16 @@ forsaken.1000 = { } } remove_short_term_gold = 250 + + stress_impact = { + content = medium_stress_impact_gain + humble = medium_stress_impact_gain + arbitrary = medium_stress_impact_loss + stubborn = minor_stress_impact_loss + ambitious = minor_stress_impact_loss + paranoid = medium_stress_impact_loss + arrogant = medium_stress_impact_loss + } } # approve - let vassal deal with it @@ -86,6 +103,15 @@ forsaken.1000 = { } } } + + ai_chance = { + base = 2 + ai_value_modifier = { + ai_honor = 0.5 + ai_compassion = 1 + ai_boldness = -1 + } + } } # disapprove - let vassal deal with it @@ -103,6 +129,23 @@ forsaken.1000 = { } } } + + ai_chance = { + base = 2 + ai_value_modifier = { + ai_honor = -0.5 + ai_compassion = -1 + ai_boldness = 1 + } + } + + stress_impact = { + arbitrary = minor_stress_impact_loss + stubborn = minor_stress_impact_loss + ambitious = minor_stress_impact_loss + paranoid = minor_stress_impact_loss + arrogant = medium_stress_impact_loss + } } } @@ -207,6 +250,13 @@ forsaken.1001 = { create_dispersed_crypto_religionists = { FAITH = faith:forgotten_shadow } #TODO: Link the random vassals to the next event? could be cool to have secret faith characters randomly dispersed tho } + + stress_impact = { + craven = minor_stress_impact_loss # safe in my hidey hole + paranoid = minor_stress_impact_loss # safe in my hidey hole + ambitious = minor_stress_impact_loss # built something great + arrogant = minor_stress_impact_loss # built something great + } } } @@ -237,7 +287,13 @@ forsaken.1002 = { } hidden_effect = { if = { limit = { var:develop_the_undercity = flag:interruption } } } } - + stress_impact = { + lazy = minor_stress_impact_loss + paranoid = minor_stress_impact_loss + content = minor_stress_impact_loss + ambitious = medium_stress_impact_gain + stubborn = medium_stress_impact_gain + } } option = { @@ -264,6 +320,12 @@ forsaken.1003 = { option = { name = forsaken.1003.opt.a + stress_impact = { + lazy = minor_stress_impact_gain + paranoid = minor_stress_impact_gain + content = minor_stress_impact_gain + ambitious = minor_stress_impact_loss + } } } @@ -301,6 +363,15 @@ forsaken.1004 = { } } + immediate = { + stress_impact = { + craven = minor_stress_impact_loss # safe in my hidey hole + paranoid = minor_stress_impact_loss # safe in my hidey hole + ambitious = minor_stress_impact_loss # built something great + arrogant = minor_stress_impact_loss # built something great + } + } + option = { trigger = { NOT = { title:b_lordaeron.holder = { any_liege_or_above = { this = scope:story.story_owner } } } } name = forsaken.1004.opt.a @@ -338,6 +409,14 @@ forsaken.1100 = { override_background = wc_undercity_throne_room immediate = { + + stress_impact = { + zealous = medium_stress_impact_gain + paranoid = medium_stress_impact_gain + stubborn = minor_stress_impact_gain + arbitrary = minor_stress_impact_gain + } + root = { save_scope_as = selenite_decider } @@ -448,6 +527,11 @@ forsaken.1100 = { value = flag:subsumed } + stress_impact = { + arbitrary = minor_stress_impact_loss + zealous = minor_stress_impact_loss + } + ai_chance = { base = 75 ai_value_modifier = { @@ -497,6 +581,15 @@ forsaken.1100 = { add_character_modifier = wc_forsaken_embraced_selinite_modifier + stress_impact = { + zealous = major_stress_impact_gain + stubborn = medium_stress_impact_gain + ambitious = medium_stress_impact_gain + lazy = minor_stress_impact_loss + content = minor_stress_impact_loss + fickle = minor_stress_impact_loss + } + ai_chance = { base = 20 ai_value_modifier = { @@ -504,6 +597,10 @@ forsaken.1100 = { ai_boldness = 1 ai_zeal = -1 } + modifier = { + has_trait = zealous + factor = 0 + } } } @@ -521,6 +618,15 @@ forsaken.1100 = { add_character_modifier = wc_forsaken_tolerated_selinite_modifier + stress_impact = { + compassionate = minor_stress_impact_loss + content = minor_stress_impact_loss + just = minor_stress_impact_loss + cynical = minor_stress_impact_gain + arbitrary = medium_stress_impact_gain + paranoid = medium_stress_impact_gain + } + ai_chance = { base = 5 ai_value_modifier = { @@ -529,6 +635,15 @@ forsaken.1100 = { ai_boldness = -1 ai_zeal = -1 } + modifier = { + has_trait = just + has_trait = compassionate + factor = 100 + } + modifier = { + has_trait = cynical + add = 70 + } } } } @@ -655,6 +770,15 @@ forsaken.1103 = { } } + immediate = { + stress_impact = { + zealous = medium_stress_impact_gain + paranoid = medium_stress_impact_gain + stubborn = minor_stress_impact_gain + arbitrary = minor_stress_impact_gain + } + } + trigger = { is_of_forsaken_like_culture = yes NOT = { faith = faith:forgotten_shadow } @@ -718,6 +842,21 @@ forsaken.1103 = { add_character_modifier = wc_forsaken_subsumed_selinite_modifier } } + + stress_impact = { + arbitrary = minor_stress_impact_loss + zealous = minor_stress_impact_loss + } + + ai_chance = { + base = 75 + ai_value_modifier = { + ai_honor = -0.5 + ai_compassion = -1 + ai_boldness = 1 + ai_rationality = 1 + } + } } option = { @@ -769,6 +908,28 @@ forsaken.1103 = { } add_character_modifier = wc_forsaken_embraced_selinite_modifier } + + stress_impact = { + zealous = major_stress_impact_gain + stubborn = medium_stress_impact_gain + ambitious = medium_stress_impact_gain + lazy = minor_stress_impact_loss + content = minor_stress_impact_loss + fickle = minor_stress_impact_loss + } + + ai_chance = { + base = 20 + ai_value_modifier = { + ai_honor = -0.5 + ai_boldness = 1 + ai_zeal = -1 + } + modifier = { + has_trait = zealous + factor = 0 + } + } } option = { @@ -806,6 +967,34 @@ forsaken.1103 = { } chance_convert_county_to_selinite = yes + + stress_impact = { + compassionate = minor_stress_impact_loss + content = minor_stress_impact_loss + just = minor_stress_impact_loss + cynical = minor_stress_impact_gain + arbitrary = medium_stress_impact_gain + paranoid = medium_stress_impact_gain + } + + ai_chance = { + base = 5 + ai_value_modifier = { + ai_honor = 0.5 + ai_compassion = 1 + ai_boldness = -1 + ai_zeal = -1 + } + modifier = { + has_trait = just + has_trait = compassionate + factor = 100 + } + modifier = { + has_trait = cynical + add = 70 + } + } } } @@ -841,6 +1030,11 @@ forsaken.9001 = { } immediate = { + + stress_impact = { + greedy = minor_stress_impact_gain + paranoid = medium_stress_impact_gain + } create_character = { age = { 18 40 } @@ -952,6 +1146,24 @@ forsaken.9001 = { modifier = wc_executed_religious_minority_modifier years = 2 } + + stress_impact = { + compassionate = major_stress_impact_gain + just = minor_stress_impact_gain + sadistic = minor_stress_impact_loss + paranoid = medium_stress_impact_loss + } + + ai_chance = { + base = 0 + ai_value_modifier = { + ai_vengefulness = 5 + } + modifier = { + has_trait = compassionate + add = -1000 + } + } } #imprison them @@ -961,6 +1173,12 @@ forsaken.9001 = { TARGET = scope:new_character IMPRISONER = root } + ai_chance = { + base = 2 + ai_value_modifier = { + ai_honor = 2 + } + } } #fine them @@ -979,6 +1197,16 @@ forsaken.9001 = { character = scope:new_character new_location = title:b_dalaran.title_province } + ai_chance = { + base = -2 + ai_value_modifier = { + ai_greed = 5 + ai_sociability = 1 + } + } + stress_impact = { + vengeful = minor_stress_impact_gain + } } #invite them to court and get hook @@ -996,6 +1224,20 @@ forsaken.9001 = { target = scope:new_character type = loyalty_hook } + ai_chance = { + base = 1 + ai_value_modifier = { + ai_sociability = 2 + ai_compassion = 4 + } + modifier = { + has_trait = vengeful + add = -1000 + } + } + stress_impact = { + vengeful = major_stress_impact_gain + } } #give them passage to Dalaran and get hook @@ -1045,11 +1287,14 @@ forsaken.9001 = { new_location = title:b_narthalas_ruins.title_province } } - } - stress_impact = { - vengeful = minor_stress_impact_gain - } + } + ai_chance = { + value = 2 + ai_value_modifier = { + ai_boldness = 3 + ai_rationality = 2 + } } } } @@ -1131,6 +1376,10 @@ forsaken.9002 = { } } } + random_knight = { + limit = { NOT = { exists = primary_title } } + save_scope_as = doomed_knight + } } # yes, let them alter our troops @@ -1148,6 +1397,12 @@ forsaken.9002 = { modifier = wc_arcanist_educated_casters years = 2 } + scope:new_character = { + add_opinion = { + modifier = intrigue_helped_me_out_opinion + target = root + } + } } } 50 = { @@ -1155,8 +1410,7 @@ forsaken.9002 = { title = forsaken.9002.education_failed left_icon = root custom_tooltip = forsaken.9002.education_failed_tt - random_knight = { - limit = { NOT = { exists = primary_title } } + scope:doomed_knight = { death = { death_reason = death_arcane_explosion } @@ -1183,6 +1437,12 @@ forsaken.9002 = { modifier = wc_alchemist_altered_troops years = 2 } + scope:new_character = { + add_opinion = { + modifier = intrigue_helped_me_out_opinion + target = root + } + } } } 50 = { @@ -1190,8 +1450,7 @@ forsaken.9002 = { title = forsaken.9002.alterations_failed left_icon = root custom_tooltip = forsaken.9002.alterations_failed_tt - random_knight = { - limit = { NOT = { exists = primary_title } } + scope:doomed_knight = { death = { death_reason = death_poison } @@ -1206,6 +1465,41 @@ forsaken.9002 = { } } + ai_chance = { + value = 0 + ai_value_modifier = { + ai_zeal = -1 + ai_compassion = -1 + ai_honor = -1 + ai_boldness = 1 + } + modifier = { # AI will use this excuse to execute a disliked knight + if = { + opinion = { + target = scope:doomed_knight + value < 70 + } + NOT = { has_trait = compassionate has_trait = just has_trait = forgiving } + } + add = 100 + } + modifier = { # but AI will NOT this to execute a family member unless they hate them + if = { + scope:doomed_knight = { + is_close_or_extended_family_of = root + } + NOT = { has_trait = sadistic } + } + add = -90 + } + } + stress_impact = { + compassionate = medium_stress_impact_gain + just = minor_stress_impact_gain + callous = minor_stress_impact_loss + arbitrary = minor_stress_impact_loss + sadistic = medium_stress_impact_loss + } } # no, pursue a safer option @@ -1225,11 +1519,42 @@ forsaken.9002 = { } } remove_short_term_gold = minor_gold_value + ai_chance = { + value = 3 + ai_value_modifier = { + ai_compassion = 1 + ai_boldness = -1 + ai_honor = 1 + } + modifier = { + OR = { + has_character_modifier = wc_arcanist_equipped_troops + has_character_modifier = wc_alchemist_equipped_troops + } + add = -1000 + } + modifier = { + short_term_gold < minor_gold_value_check + add = -1000 + } + } } # reject their help option = { name = forsaken.9002.opt.c + + ai_chance = { + value = 1 + ai_value_modifier = { + ai_zeal = 2 + ai_boldness = -1 + } + } + + hidden_effect = { + override_death_effect = { death_reason = death_vanished } + } } } @@ -1308,6 +1633,16 @@ forsaken.9003 = { years = 2 } } + ai_chance = { + value = 1 + ai_value_modifier = { + ai_rationality = 1 + } + modifier = { + short_term_gold < medium_gold_value_check + add = -1000 + } + } } # salvage materials @@ -1320,6 +1655,12 @@ forsaken.9003 = { years = 2 } } + ai_chance = { + value = 1 + ai_value_modifier = { + ai_greed = 1 + } + } } # cast blame on religious minorities @@ -1347,6 +1688,12 @@ forsaken.9003 = { start_religious_propaganda_campaign = yes } } + ai_chance = { + value = 1 + ai_value_modifier = { + ai_zeal = 2 + } + } } } @@ -1362,7 +1709,7 @@ forsaken.9004 = { animation = rage } - lower_center_portrait = { + lower_left_portrait = { character = scope:raider_source.holder } @@ -1427,6 +1774,14 @@ forsaken.9004 = { years = 2 } } + ai_chance = { + value = 0 + ai_value_modifier = { + ai_boldness = -1 + ai_compassion = 1 + ai_rationality = 1 + } + } } # pay money for better walls @@ -1441,6 +1796,18 @@ forsaken.9004 = { years = 2 } } + ai_chance = { + value = 1 + ai_value_modifier = { + ai_boldness = -1 + ai_compassion = 1 + ai_honor = 1 + } + modifier = { + short_term_gold < medium_gold_value_check + add = -1000 + } + } } option = { @@ -1449,7 +1816,9 @@ forsaken.9004 = { trigger = { any_held_title = { tier = tier_county - NOT = { culture = root.culture } + title_capital_county = { + NOT = { culture = root.culture } + } } NOR = { var:propaganda_campaign ?= flag:cultural @@ -1468,6 +1837,12 @@ forsaken.9004 = { start_cultural_propaganda_campaign = yes } } + ai_chance = { + value = 5 + ai_value_modifier = { + ai_zeal = 5 + } + } } # raid them back! @@ -1476,20 +1851,19 @@ forsaken.9004 = { trigger = { OR = { - has_trait = vengeful has_trait = wrathful has_trait = brave has_trait = impatient has_trait = irritable + has_trait = vengeful has_trait = wrathful has_trait = brave } scope:raider_source = { development_level > 2 } } - - - # tooltip something about fighting them idk + duel = { skill = martial target = scope:raider_source.holder - + #You Win 50 = { - #tooltip you win + desc = forsaken.9004.opt.c.duel.win + compare_modifier = { value = scope:duel_value multiplier = 2.5 @@ -1506,9 +1880,13 @@ forsaken.9004 = { OR = { has_trait = aggressive_attacker has_trait = berserker + has_trait = reaver + has_trait = organizer + has_trait = strategist } add = 20 } + scope:raider_source = { holder = { send_interface_message = { @@ -1523,21 +1901,20 @@ forsaken.9004 = { stress_impact = { base = medium_stress_impact_gain } - # todo: maybe add in an event for this because i'm too lazy to do it now and i'm getting sick of this lol - # trigger_event = { id = forsaken.9005 } + #desc = forsaken.9004.tt } } - desc = forsaken.9004.tt } - hidden_effect = { - progress_towards_rival_effect = { - REASON = rival_humiliated - CHARACTER = scope:raider_target.holder - OPINION = -15 - } + } + + hidden_effect = { + progress_towards_rival_effect = { + REASON = rival_humiliated + CHARACTER = scope:raider_target.holder + OPINION = -15 } } - + send_interface_message = { type = event_martial_good title = forsaken.9004.t @@ -1545,19 +1922,22 @@ forsaken.9004 = { scope:raider_target = { county = { change_county_control = minor_county_control_gain - change_development_progress_with_overflow = 10 + change_development_progress_with_overflow = 50 } } stress_impact = { base = minor_stress_impact_loss } } + add_gold = minor_gold_value - } + } #You Lose 50 = { - #tooltip you snooze + + desc = forsaken.9004.opt.c.duel.lose + modifier = { has_trait = craven add = -15 @@ -1566,6 +1946,14 @@ forsaken.9004 = { has_trait = wounded add = -15 } + modifier = { + has_trait = flexible_leader + has_trait = unyielding_defender + has_trait = organizer + has_trait = cautious_leader + has_trait = strategist + add = 10 + } compare_modifier = { value = scope:duel_value multiplier = -2.5 @@ -1605,5 +1993,26 @@ forsaken.9004 = { desc = wc_brushfire_conflict } } + + stress_impact = { + craven = medium_stress_impact_gain + brave = minor_stress_impact_loss + sadistic = minor_stress_impact_loss + } + + ai_chance = { + value = 5 + ai_value_modifier = { + ai_energy = 2 + ai_boldness = 2 + ai_vengefulness = 2 + ai_honor = 2 + } + modifier = { + martial < 9 + add = -99 + } + } + } } diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index 408e6f46f3..f069930e70 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -110,5 +110,8 @@ forsaken.9004.opt.a:0 "Rearrange our levies, we must keep these people safe." forsaken.9004.opt.b:0 "Allocate additional funds to defense." forsaken.9004.opt.d:0 "This gives us an opportunity to build solidarity." forsaken.9004.opt.c:0 "We will have our revenge. Tonight we ride!" +forsaken.9004.opt.c.duel:0 "You will begin a [martial|E] challenge against the holder of the rival county." +forsaken.9004.opt.c.duel.win:0 "The raid is succesful" +forsaken.9004.opt.c.duel.lose:0 "Your raid is defeated" forsaken.9004.t:0 "Brushfire Conflict" forsaken.9004.tt:0 "This occurred because of your county faith's hatred of the Forsaken." From fca4e031410474f4235dfdbe69032905efa1392d Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Mon, 25 Dec 2023 13:34:31 -0500 Subject: [PATCH 34/39] improve localization --- .../wc_lordaeron_events_l_english.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index f069930e70..ad0362d250 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -47,18 +47,18 @@ #1100 - 1109: Selenite Revival forsaken.1100.title:0 "$forgotten_shadow$: The Selinite Revival" - forsaken.1100.desc:0 "And so, the other shoe has dropped. Throughout the construction of the Undercity, rumors abounded of hidden knowledge discovered deep within the sewer system. Our inquisitors, agents, and [court_chaplains] have uncovered cells of hidden crypto-religionists following the so-called $forgotten_shadow$. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, our people who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Now, my councillors implore me to find a way to proceed regarding this new development..." + forsaken.1100.desc:0 "And so, the other shoe has dropped. Throughout the construction of the Undercity, rumors abounded of hidden knowledge discovered deep within the sewer system. Our inquisitors, agents, and [court_chaplains] have uncovered cells of hidden crypto-religionists following the so-called $forgotten_shadow$. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the $LIGHT_NAME$. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the [scourge|E] invasion and occupation of Lordaeron, our people who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Now, my councillors implore me to find a way to proceed regarding this new development..." forsaken.1100.opt.a:0 "We will adapt this forbidden knowledge to our advantage!" forsaken.1100.opt.b:0 "Let us have a separation of church and state. Embrace the shadow!" forsaken.1100.opt.c:0 "Our land can be a home for many faiths. Die and let live..." forsaken.1103.title:0 "$forgotten_shadow$: The Selinite Revival" #story cycle owner chose subsumption - forsaken.1103.desc.subsumed:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n The feared and respected [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has issued claims that [GetGlobalVariable('sylvanas_character').Char.GetHerHim] $forsaken_cult$ is the true successor to the Selinite priesthood. Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. As the ruler of Lordaeron, a majority of these people fall within my domain. It falls now to me to decide how best to use this situation to my advantage..." + forsaken.1103.desc.subsumed:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the $SHADOW_NAME$ as well as the $LIGHT_NAME$. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n The feared and respected [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has issued a decree that [GetGlobalVariable('sylvanas_character').Char.GetHerHim] $forsaken_cult$ is the true successor to the Selinite priesthood. Now, with her writings given new context in the wake of the [scourge|E] invasion and occupation of Lordaeron, many who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. As the ruler of Lordaeron, a majority of these people fall within my domain. It falls now to me to decide how best to use this situation to my advantage..." #story cycle owner chose conversion - forsaken.1103.desc.embraced:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Even the great [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has embraced this new faith. As the ruler of Lordaeron, a majority of these people fall within my domain. It falls now to me to decide how best to use this situation to my advantage..." + forsaken.1103.desc.embraced:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the $SHADOW_NAME$ as well as the $LIGHT_NAME$. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the [scourge|E] invasion and occupation of Lordaeron, many who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. Even the great [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] has embraced this new faith. As the ruler of Lordaeron, a majority of these people fall within my domain. It falls now to me to decide how best to use this situation to my advantage..." #story cycle owner chose tolerance - forsaken.1103.desc.tolerated:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the Shadow as well as the Light. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the Scorge invasion and occupation of Lordaeron, many who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. The revered [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] [GetGlobalVariable('sylvanas_character').Char.GetHerHim]self has issued a decree of tolerance of this sister faith. As the ruler of Lordaeron, a majority of these people fall within my domain. It falls now to me to decide how best to use this situation to my advantage..." + forsaken.1103.desc.tolerated:0 "With a sigh and a wave of my hand, I dismiss my small council. Information has been pouring in from across Forsaken lands about converts to a new religion called $forgotten_shadow$, based on authentic writings discovered hidden in the Undercity during its construction. These teachings originated with Natalie Seline, a priestess of Stormwind during the Orcish Invasion who heretically invoked her acolytes to embrace and understand the $SHADOW_NAME$ as well as the $LIGHT_NAME$. Thusly labeled Selinites, these priests were an effective if unorthodox tool in the ultimately futile fight against the Horde.\n\n Now, with her writings given new context in the wake of the [scourge|E] invasion and occupation of Lordaeron, many who have embraced this nascent religion have taken to calling themselves $forgotten_shadow_adherent_plural$. The revered [GetGlobalVariable('sylvanas_character').Char.GetTitledFirstName] [GetGlobalVariable('sylvanas_character').Char.GetHerHim]self has issued a decree of tolerance of this sister faith. As the ruler of Lordaeron, a majority of these people fall within my domain. It falls now to me to decide how best to use this situation to my advantage..." #options forsaken.1103.opt.a:0 "We will adapt this forbidden knowledge to our advantage!" forsaken.1103.opt.b:0 "Let us have a separation of church and state. Embrace the shadow!" @@ -71,8 +71,8 @@ forsaken.9001.title:0 "Caught Stealing" forsaken.9001.desc.echoseeker:0 "Our archivists caught a suspicious individual leaving our library sanctum with classified magical grimoires and rare scrolls. Apparently the individual is one of a small sect of liberated undead who seek to regain the "$echo_of_life$" through Arcane magic. Known as "$echo_of_life_adherent_plural$"", these individuals are not known to proselytize actively but often engage in risky and dangerous magical practices. However, as this individual stands before me I can see no hint of malice; rather a pitiful and desperate individual begging for mercy and a second chance.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their pitiful beliefs." -forsaken.9001.desc.alchemist:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of a small sect of liberated undead who reject all divinity known as "$alchemical_materialism_adherent_plural$". These individuals are not known to proselytize actively but often engage in risky and dangerous alchemical practices. As this individual stands before me I can not ignore a hint of malice behind the glimmering intellect of a crafty and talented alchemist.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their cynical beliefs." -forsaken.9001.desc.forgotten:0 "Our archivists caught a suspicious individual leaving our library sanctum with copies of classified documents relating to the teachings of Natalie Seline. Apparently the individual is one of these followers of "Forgotten Shadow" who emerged following our excavation of the Undercity. While they are frequently charitable and often noble individuals, their continued proselytization has been known to upset the established order of our land. As this individual stands before me I can see no hint of malice, nor can I ignore the glimmering intellect of a learned priest.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their misguided beliefs." +forsaken.9001.desc.alchemist:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of a small sect of liberated undead who reject all divinity known as "$alchemical_materialism_adherent_plural$". These individuals are not known to proselytize actively but often engage in risky and dangerous alchemical practices. As this individual stands before me I can not ignore a hint of malice behind the glimmering intellect of a crafty and talented alchemist.\n\nOn one hand, I can deal justice as I see fit to this convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their cynical beliefs." +forsaken.9001.desc.forgotten:0 "Our archivists caught a suspicious individual leaving our library sanctum with copies of classified documents relating to the teachings of Natalie Seline. Apparently the individual is one of these followers of $forgotten_shadow$ who emerged following our excavation of the Undercity. While they are frequently charitable and often noble individuals, their continued proselytization has been known to upset the established order of our land. As this individual stands before me I can see no hint of malice, nor can I ignore the glimmering intellect of a learned priest.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, they might make a useful courtier or a potent spy if I can tolerate their misguided beliefs." forsaken.9001.desc.forsaken:0 "Our apothecaries caught a suspicious individual leaving our experimentation chambers with classified alchemical reagents and recipes. Apparently the individual is one of these "$forsaken_cult_adherent_plural" who still follow the old, autocratic ways. These individuals are known to proselytize actively and often engage in risky and dangerous alchemical practices. As this admittedly talented individual stands before me, I can not ignore the danger they represent to the fledgeling order of the land.\n\nOn one hand, I can deal justice to this individual as I see fit since they are a convicted thief. On the other, while too dangerous to be allowed to remain in the realm, they may prove a potent spy." forsaken.9001.opt.e:0 "Execute this insolent fool." forsaken.9001.opt.a:0 "Throw the pitiful sod in jail." @@ -99,7 +99,7 @@ forsaken.9002.opt.c:0 "Get this heretic out of my sight!" forsaken.9003.title:0 "Laboratory Accident" forsaken.9003.desc.arcanist:0 "Some unnerving news has come from our Mages Guild. It appears that one of our secret experimentation facilities has exploded, causing tears in time and space to open up across the countryside. Strange beings from outside our dimension left paths of destruction in their wake before vanishing into the aether, and arcane lightning storms set fires that burned entire towns to ashes.\n\nHowever this disaster has also provided us with valuable data that must be collected and applied in our search for the arcane echo of our divine spark. One possibility is to simply build the facility back bigger and better than ever before. Another option would be to salvage some of the research materials from this location to apply elsewhere. Finally, some of our councilors have suggested we take this opportunity to throw blame on the region's religious undesirables.\n\nAs the otherworldy storm clouds dissipate into the night, our agents disperse to enact our will." forsaken.9003.desc.alchemist:0 "Some unnerving news has come from our Apothecary Corps. It appears that one of our secret experimentation facilities has exploded, leaking dangerous experimental chemicals all over the countryside. While our undead forms are mostly immune to the toxins released, unpredictable effects on the wildlife and structures have caused some unfortunate casualties.\n\nHowever this disaster has also presented us with... opportunities... as well. One possibility is to simply build the facility back bigger and better (and hopefully more safe). Another option would be to salvage some of the materials from this location to shift some of these funds back into our normal ledgers. Finally, some of our councilors have suggested we take this opportunity to throw blame on the region's religious undesirables.\n\nAs the noxious and corrosive fumes dissipate into the night, our agents disperse to enact my will." -forsaken.9003.desc.other_alchemist:0 "The high council was summoned in the dead of night to grave news. It appears that an alchemical weapons facility maintained by dissident $forsaken_cult_adherent_plural$ has exploded, either by accident or on purpose, dispersing dangerous chemicals all over the countryside. While thankfully our undead forms are mostly immune to the toxins released, unpredictable effects on the wildlife and structures have caused some unfortunate casualties.\n\nThis horriffic disaster must quickly be remedied to show the vengeance of the Shadow and the mercy of the Light.\n\nOne of our highest priorities is the well being of our citizens, and a quick dispersement of funds would be the best way to provide relief to the affected area. Another option would be to salvage some of the materials from this facility to provide funding and materiel for our current projects. Finally, some of our councilors have suggested we take this opportunity to throw blame on the heretical $forsaken_cult_adherent_plural$ responsible for this disaster and spread the word of $forgotten_shadow$.\n\nAs the noxious and corrosive fumes dissipate into the night, our agents disperse to enact our will." +forsaken.9003.desc.other_alchemist:0 "The high council was summoned in the dead of night to grave news. It appears that an alchemical weapons facility maintained by dissident $forsaken_cult_adherent_plural$ has exploded, either by accident or on purpose, dispersing dangerous chemicals all over the countryside. While thankfully our undead forms are mostly immune to the toxins released, unpredictable effects on the wildlife and structures have caused some unfortunate casualties.\n\nThis horriffic disaster must quickly be remedied to show the vengeance of the $WarGodName$ and the mercy of the $HealthGodName$.\n\nOne of our highest priorities is the well being of our citizens, and a quick dispersement of funds would be the best way to provide relief to the affected area. Another option would be to salvage some of the materials from this facility to provide funding and materiel for our current projects. Finally, some of our councilors have suggested we take this opportunity to throw blame on the heretical $forsaken_cult_adherent_plural$ responsible for this disaster and spread the word of $forgotten_shadow$.\n\nAs the noxious and corrosive fumes dissipate into the night, our agents disperse to enact our will." forsaken.9003.opt.a:0 "Disperse funds for reconstruction immediately." forsaken.9003.opt.b:0 "Brief our salvage teams for cleanup." forsaken.9003.opt.c:0 "I want a propaganda campaign drawn up by sundown!" From 93191fea8fe130235d58931098259684a2e77095 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Wed, 3 Jan 2024 21:39:51 -0500 Subject: [PATCH 35/39] add cooldowns for forsaken random events per Dione --- events/wc_events/wc_lordaeron_events.txt | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index a689159422..809ce3aba5 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1029,8 +1029,15 @@ forsaken.9001 = { } } + trigger = { NOT = { has_character_flag = forsaken_9001 }} + immediate = { + set_character_flag = { + flag = forsaken_9001 + days = 1825 + } + stress_impact = { greedy = minor_stress_impact_gain paranoid = medium_stress_impact_gain @@ -1316,6 +1323,10 @@ forsaken.9002 = { animation = flirtation } + trigger = { + NOT = { character_has_flag = forsaken_9002 } + } + desc = { first_valid = { # just slightly different wording and titles triggered_desc = { @@ -1332,6 +1343,12 @@ forsaken.9002 = { immediate = { + + set_character_flag = { + flag = forsaken_9002 + days = 1825 + } + create_character = { template = scholar_character location = root.location @@ -1595,6 +1612,7 @@ forsaken.9003 = { NOR = { var:propaganda_campaign ?= flag:religious var:propaganda_campaign ?= flag:cultural_and_religious + has_character_flag = forsaken_9003 } any_held_title = { tier = tier_county @@ -1617,6 +1635,10 @@ forsaken.9003 = { change_development_progress_with_overflow = -125 save_scope_as = affected_county } + add_character_flag = { + flag = forsaken_9003 + days = 1825 + } } # rebuild the laboratory @@ -1714,6 +1736,9 @@ forsaken.9004 = { } trigger = { + + NOT = { character_has_flag = forsaken_9004 } + any_held_title = { tier = tier_county culture = culture:forsaken @@ -1736,6 +1761,12 @@ forsaken.9004 = { } immediate = { + + set_character_flag = { + flag = forsaken_9004 + days = 1825 + } + random_held_title = { limit = { tier = tier_county From 1522ed10e5f9cbae54c48b4e1a529a23b842104c Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Wed, 3 Jan 2024 21:43:57 -0500 Subject: [PATCH 36/39] fix incorrect flag invocation --- events/wc_events/wc_lordaeron_events.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 809ce3aba5..8627824221 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1033,7 +1033,7 @@ forsaken.9001 = { immediate = { - set_character_flag = { + add_character_flag = { flag = forsaken_9001 days = 1825 } @@ -1344,7 +1344,7 @@ forsaken.9002 = { immediate = { - set_character_flag = { + add_character_flag = { flag = forsaken_9002 days = 1825 } @@ -1762,7 +1762,7 @@ forsaken.9004 = { immediate = { - set_character_flag = { + add_character_flag = { flag = forsaken_9004 days = 1825 } From cdacb9c3f6ca22008b470478d37030fac898cd01 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Wed, 3 Jan 2024 22:09:25 -0500 Subject: [PATCH 37/39] more fixes in wc_lordaeron_events.txt --- events/wc_events/wc_lordaeron_events.txt | 44 +++++++++---------- .../wc_lordaeron_events_l_english.yml | 3 +- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 8627824221..53c0b0c399 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1297,7 +1297,7 @@ forsaken.9001 = { } } ai_chance = { - value = 2 + base = 2 ai_value_modifier = { ai_boldness = 3 ai_rationality = 2 @@ -1324,7 +1324,7 @@ forsaken.9002 = { } trigger = { - NOT = { character_has_flag = forsaken_9002 } + NOT = { has_character_flag = forsaken_9002 } } desc = { @@ -1483,7 +1483,7 @@ forsaken.9002 = { } } ai_chance = { - value = 0 + base = 0 ai_value_modifier = { ai_zeal = -1 ai_compassion = -1 @@ -1491,22 +1491,18 @@ forsaken.9002 = { ai_boldness = 1 } modifier = { # AI will use this excuse to execute a disliked knight - if = { - opinion = { - target = scope:doomed_knight - value < 70 - } - NOT = { has_trait = compassionate has_trait = just has_trait = forgiving } + opinion = { + target = scope:doomed_knight + value < 70 } + NOT = { has_trait = compassionate has_trait = just has_trait = forgiving } add = 100 } modifier = { # but AI will NOT this to execute a family member unless they hate them - if = { - scope:doomed_knight = { - is_close_or_extended_family_of = root - } - NOT = { has_trait = sadistic } + scope:doomed_knight = { + is_close_or_extended_family_of = root } + NOT = { has_trait = sadistic } add = -90 } } @@ -1537,7 +1533,7 @@ forsaken.9002 = { } remove_short_term_gold = minor_gold_value ai_chance = { - value = 3 + base = 3 ai_value_modifier = { ai_compassion = 1 ai_boldness = -1 @@ -1562,7 +1558,7 @@ forsaken.9002 = { name = forsaken.9002.opt.c ai_chance = { - value = 1 + base = 1 ai_value_modifier = { ai_zeal = 2 ai_boldness = -1 @@ -1656,7 +1652,7 @@ forsaken.9003 = { } } ai_chance = { - value = 1 + base = 1 ai_value_modifier = { ai_rationality = 1 } @@ -1678,7 +1674,7 @@ forsaken.9003 = { } } ai_chance = { - value = 1 + base = 1 ai_value_modifier = { ai_greed = 1 } @@ -1711,7 +1707,7 @@ forsaken.9003 = { } } ai_chance = { - value = 1 + base = 1 ai_value_modifier = { ai_zeal = 2 } @@ -1737,7 +1733,7 @@ forsaken.9004 = { trigger = { - NOT = { character_has_flag = forsaken_9004 } + NOT = { has_character_flag = forsaken_9004 } any_held_title = { tier = tier_county @@ -1806,7 +1802,7 @@ forsaken.9004 = { } } ai_chance = { - value = 0 + base = 0 ai_value_modifier = { ai_boldness = -1 ai_compassion = 1 @@ -1828,7 +1824,7 @@ forsaken.9004 = { } } ai_chance = { - value = 1 + base = 1 ai_value_modifier = { ai_boldness = -1 ai_compassion = 1 @@ -1869,7 +1865,7 @@ forsaken.9004 = { } } ai_chance = { - value = 5 + base = 5 ai_value_modifier = { ai_zeal = 5 } @@ -2032,7 +2028,7 @@ forsaken.9004 = { } ai_chance = { - value = 5 + base = 5 ai_value_modifier = { ai_energy = 2 ai_boldness = 2 diff --git a/localization/english/event_localization/wc_lordaeron_events_l_english.yml b/localization/english/event_localization/wc_lordaeron_events_l_english.yml index ad0362d250..649dea9ae9 100644 --- a/localization/english/event_localization/wc_lordaeron_events_l_english.yml +++ b/localization/english/event_localization/wc_lordaeron_events_l_english.yml @@ -63,7 +63,8 @@ forsaken.1103.opt.a:0 "We will adapt this forbidden knowledge to our advantage!" forsaken.1103.opt.b:0 "Let us have a separation of church and state. Embrace the shadow!" forsaken.1103.opt.c:0 "Our land can be a home for many faiths. Die and let live..." - + forsaken.1103.obeyed:0 "Obeyed my Edict" + forsaken.1103.disobeyed:0 "Disobeyed my Edict" ###################################### #9000 - 9999: Random occurrence events From 26d1dd757790a7ac089aa103cd687f2afe5bdf9b Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Wed, 3 Jan 2024 22:51:43 -0500 Subject: [PATCH 38/39] final lordaeron events fixes --- events/wc_events/wc_lordaeron_events.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 53c0b0c399..8bbafc6516 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -1684,7 +1684,8 @@ forsaken.9003 = { # cast blame on religious minorities option = { trigger = { - any_held_title = { + any_held_county = { + NOT = { faith = root.faith } } NOR = { @@ -1937,7 +1938,7 @@ forsaken.9004 = { hidden_effect = { progress_towards_rival_effect = { REASON = rival_humiliated - CHARACTER = scope:raider_target.holder + CHARACTER = scope:raider_source.holder OPINION = -15 } } From 90d2f69f17938e37d852e10cf34995ab6dcab161 Mon Sep 17 00:00:00 2001 From: Edmund <447ght@gmail.com> Date: Thu, 4 Jan 2024 00:07:10 -0500 Subject: [PATCH 39/39] change any_held and random_held to county --- events/wc_events/wc_lordaeron_events.txt | 25 +++++++++--------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/events/wc_events/wc_lordaeron_events.txt b/events/wc_events/wc_lordaeron_events.txt index 8bbafc6516..41db87a5dc 100644 --- a/events/wc_events/wc_lordaeron_events.txt +++ b/events/wc_events/wc_lordaeron_events.txt @@ -439,8 +439,7 @@ forsaken.1100 = { random_in_list = { list = tmp_selinites set_character_faith = faith:forgotten_shadow - random_held_title = { - limit = { tier = tier_county } + random_held_county = { set_county_faith = faith:forgotten_shadow } save_scope_as = selinite_1 @@ -449,8 +448,7 @@ forsaken.1100 = { random_in_list = { list = tmp_selinites set_character_faith = faith:forgotten_shadow - random_held_title = { - limit = { tier = tier_county } + random_held_county = { set_county_faith = faith:forgotten_shadow } save_scope_as = selinite_2 @@ -459,7 +457,7 @@ forsaken.1100 = { random_in_list = { list = tmp_selinites set_character_faith = faith:forgotten_shadow - random_held_title = { + random_held_county = { limit = { tier = tier_county } set_county_faith = faith:forgotten_shadow } @@ -1610,8 +1608,7 @@ forsaken.9003 = { var:propaganda_campaign ?= flag:cultural_and_religious has_character_flag = forsaken_9003 } - any_held_title = { - tier = tier_county + any_held_county = { development_level > 2 any_province = { has_building_or_higher = temple_01 @@ -1620,9 +1617,8 @@ forsaken.9003 = { } immediate = { - random_held_title = { + random_held_county = { limit = { - tier = tier_county development_level > 2 any_province = { has_building_or_higher = temple_01 @@ -1736,8 +1732,7 @@ forsaken.9004 = { NOT = { has_character_flag = forsaken_9004 } - any_held_title = { - tier = tier_county + any_held_county = { culture = culture:forsaken any_neighboring_county = { NOT = { @@ -1764,9 +1759,8 @@ forsaken.9004 = { days = 1825 } - random_held_title = { + random_held_county = { limit = { - tier = tier_county culture = culture:forsaken } county = { @@ -1842,9 +1836,8 @@ forsaken.9004 = { name = forsaken.9004.opt.d trigger = { - any_held_title = { - tier = tier_county - title_capital_county = { + any_held_county = { + county = { NOT = { culture = root.culture } } }