From 4f03c1f32b0bacc6199931afe18d0ed5a1778872 Mon Sep 17 00:00:00 2001 From: Frost-bit-jpg Date: Thu, 27 Mar 2025 16:13:31 +1100 Subject: [PATCH 1/4] fix: unable to use hotkey when you garrison --- scripts/scr_company_struct/scr_company_struct.gml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/scr_company_struct/scr_company_struct.gml b/scripts/scr_company_struct/scr_company_struct.gml index 739ac12d8a..31ab43a45e 100644 --- a/scripts/scr_company_struct/scr_company_struct.gml +++ b/scripts/scr_company_struct/scr_company_struct.gml @@ -272,8 +272,6 @@ function CompanyStruct(comp) constructor{ } garrison_button.keystroke = press_exclusive(ord("G")); - previous_squad_button.keystroke = press_exclusive(vk_left); - next_squad_button.keystroke = press_exclusive(vk_tab); if (array_contains(current_squad.class, "scout")) || (array_contains(current_squad.class, "bike")){ if (sabotage_button.draw()){ send_on_mission=true; @@ -331,6 +329,8 @@ function CompanyStruct(comp) constructor{ } } } + previous_squad_button.keystroke = press_exclusive(vk_left); + next_squad_button.keystroke = press_exclusive(vk_tab); //TODO compartmentalise drop down option logic var deploy_text = "Squad will deploy in the"; if (current_squad.formation_place!=""){ From 11ba1be2297d60830854168e98d317c6ea867f73 Mon Sep 17 00:00:00 2001 From: Frost-bit-jpg Date: Wed, 2 Apr 2025 23:47:19 +1100 Subject: [PATCH 2/4] Fix: demonworld exterminatus This fix handles exterminatus for demon worlds also makes all disposition increase universal across factions --- scripts/scr_destroy_planet/scr_destroy_planet.gml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/scripts/scr_destroy_planet/scr_destroy_planet.gml b/scripts/scr_destroy_planet/scr_destroy_planet.gml index a49965c680..b15906cf34 100644 --- a/scripts/scr_destroy_planet/scr_destroy_planet.gml +++ b/scripts/scr_destroy_planet/scr_destroy_planet.gml @@ -79,9 +79,10 @@ function scr_destroy_planet(destruction_method) { // Relation penalties here, if applicable if (you.p_type[baid]="Daemon"){ - obj_controller.disposition[4]+=5; - - obj_controller.disposition[5]+=5; + obj_controller.disposition[2]+=5; + obj_controller.disposition[3]+=5; + obj_controller.disposition[4]+=5; + obj_controller.disposition[5]+=5; var o=0; if (scr_has_adv("Reverent Guardians")) then o=500; if (o>100) then obj_controller.disposition[5]+=5; @@ -93,7 +94,7 @@ function scr_destroy_planet(destruction_method) { } //TODO a shitload of helper functions to make this sort of stuff easier - if ((you.p_owner[baid]=3) or (you.p_first[baid]=3)) and (obj_controller.faction_status[eFACTION.Mechanicus]!="War"){ + if ((you.p_owner[baid]=3) or (you.p_first[baid]=3)) and (obj_controller.faction_status[eFACTION.Mechanicus]!="War") and (you.p_type[baid]!="Daemon"){ obj_controller.loyalty-=50; obj_controller.loyalty_hidden-=50; obj_controller.disposition[eFACTION.Imperium]-=50; @@ -130,7 +131,7 @@ function scr_destroy_planet(destruction_method) { } } - if (enemy9=5) and (obj_controller.faction_status[eFACTION.Ecclesiarchy]!="War"){ + if (enemy9=5) and (obj_controller.faction_status[eFACTION.Ecclesiarchy]!="War") and (you.p_type[baid]!="Daemon"){ obj_controller.loyalty-=50; obj_controller.loyalty_hidden-=50; obj_controller.disposition[eFACTION.Imperium]-=50; @@ -157,8 +158,8 @@ function scr_destroy_planet(destruction_method) { - if (you.p_tyranids[baid]<5){ - if (you.p_first[baid]=2) and (you.p_type[baid]="Hive") and (planet_feature_bool(you.p_feature[baid], P_features.Daemonic_Incursion)==0) and (obj_controller.faction_status[eFACTION.Imperium]!="War"){ + if (you.p_tyranids[baid]<5) and (you.p_type[baid]!="Daemon"){ + if (you.p_first[baid]=2) and (you.p_type[baid]="Hive") and (obj_controller.faction_status[eFACTION.Imperium]!="War"){ obj_controller.loyalty-=50; obj_controller.loyalty_hidden-=50; obj_controller.disposition[eFACTION.Imperium]-=60; From d53ec927349a5624ef255518b20eb0c4a78694a1 Mon Sep 17 00:00:00 2001 From: Frost-bit-jpg Date: Wed, 2 Apr 2025 23:56:40 +1100 Subject: [PATCH 3/4] Update scripts/scr_destroy_planet/scr_destroy_planet.gml Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- scripts/scr_destroy_planet/scr_destroy_planet.gml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/scr_destroy_planet/scr_destroy_planet.gml b/scripts/scr_destroy_planet/scr_destroy_planet.gml index b15906cf34..c83740d4be 100644 --- a/scripts/scr_destroy_planet/scr_destroy_planet.gml +++ b/scripts/scr_destroy_planet/scr_destroy_planet.gml @@ -79,10 +79,13 @@ function scr_destroy_planet(destruction_method) { // Relation penalties here, if applicable if (you.p_type[baid]="Daemon"){ - obj_controller.disposition[2]+=5; - obj_controller.disposition[3]+=5; - obj_controller.disposition[4]+=5; - obj_controller.disposition[5]+=5; +if (you.p_type[baid]="Daemon"){ + // Increase disposition for all Imperial factions when destroying daemon worlds + obj_controller.disposition[2]+=5; + obj_controller.disposition[3]+=5; + obj_controller.disposition[4]+=5; + obj_controller.disposition[5]+=5; +} var o=0; if (scr_has_adv("Reverent Guardians")) then o=500; if (o>100) then obj_controller.disposition[5]+=5; From 646ed0e59191ef012d569405739957a3defaba12 Mon Sep 17 00:00:00 2001 From: Frost-bit-jpg Date: Thu, 3 Apr 2025 01:00:21 +1100 Subject: [PATCH 4/4] Update scr_destroy_planet.gml --- .../scr_destroy_planet/scr_destroy_planet.gml | 111 ++++++++---------- 1 file changed, 51 insertions(+), 60 deletions(-) diff --git a/scripts/scr_destroy_planet/scr_destroy_planet.gml b/scripts/scr_destroy_planet/scr_destroy_planet.gml index c83740d4be..89ec44fa40 100644 --- a/scripts/scr_destroy_planet/scr_destroy_planet.gml +++ b/scripts/scr_destroy_planet/scr_destroy_planet.gml @@ -77,27 +77,24 @@ function scr_destroy_planet(destruction_method) { } } - // Relation penalties here, if applicable - if (you.p_type[baid]="Daemon"){ -if (you.p_type[baid]="Daemon"){ + // Increase disposition for all Imperial factions when destroying daemon worlds - obj_controller.disposition[2]+=5; - obj_controller.disposition[3]+=5; - obj_controller.disposition[4]+=5; - obj_controller.disposition[5]+=5; -} + // Relation penalties here, if applicable + if (you.p_type[baid] == "Daemon") { + obj_controller.disposition[eFACTION.Imperium] += 5; + obj_controller.disposition[eFACTION.Mechanicus] += 5; + obj_controller.disposition[4]+=5; + obj_controller.disposition[5]+=5; var o=0; if (scr_has_adv("Reverent Guardians")) then o=500; if (o>100) then obj_controller.disposition[5]+=5; - + if (obj_controller.blood_debt=1){ obj_controller.penitent_current+=1500; obj_controller.penitent_turn=0; obj_controller.penitent_turnly=0;} - } - - //TODO a shitload of helper functions to make this sort of stuff easier - if ((you.p_owner[baid]=3) or (you.p_first[baid]=3)) and (obj_controller.faction_status[eFACTION.Mechanicus]!="War") and (you.p_type[baid]!="Daemon"){ + //TODO a shitload of helper functions to make this sort of stuff easier + } else if ((you.p_owner[baid] == eFACTION.Mechanicus || you.p_first[baid] == eFACTION.Mechanicus) && obj_controller.faction_status[eFACTION.Mechanicus] != "War") { obj_controller.loyalty-=50; obj_controller.loyalty_hidden-=50; obj_controller.disposition[eFACTION.Imperium]-=50; @@ -133,8 +130,7 @@ if (you.p_type[baid]="Daemon"){ obj_controller.audien_topic[obj_controller.audiences]="declare_war";} } - } - if (enemy9=5) and (obj_controller.faction_status[eFACTION.Ecclesiarchy]!="War") and (you.p_type[baid]!="Daemon"){ + } else if (enemy9 == eFACTION.Ecclesiarchy && obj_controller.faction_status[eFACTION.Ecclesiarchy] != "War") { obj_controller.loyalty-=50; obj_controller.loyalty_hidden-=50; obj_controller.disposition[eFACTION.Imperium]-=50; @@ -157,51 +153,46 @@ if (you.p_type[baid]="Daemon"){ obj_controller.audiences+=1; obj_controller.audien[obj_controller.audiences]=2; obj_controller.audien_topic[obj_controller.audiences]="declare_war"; - } - - - - if (you.p_tyranids[baid]<5) and (you.p_type[baid]!="Daemon"){ - if (you.p_first[baid]=2) and (you.p_type[baid]="Hive") and (obj_controller.faction_status[eFACTION.Imperium]!="War"){ - obj_controller.loyalty-=50; - obj_controller.loyalty_hidden-=50; - obj_controller.disposition[eFACTION.Imperium]-=60; - obj_controller.disposition[3]-=30; - obj_controller.disposition[4]-=40; - obj_controller.disposition[5]-=40; - - obj_controller.faction_status[eFACTION.Imperium]="War"; - obj_controller.faction_status[eFACTION.Mechanicus]="War"; - obj_controller.faction_status[eFACTION.Inquisition]="War"; - obj_controller.faction_status[eFACTION.Ecclesiarchy]="War"; - - obj_controller.audiences+=1; - obj_controller.audien[obj_controller.audiences]=2; - obj_controller.audien_topic[obj_controller.audiences]="declare_war"; - if (obj_controller.known[eFACTION.Inquisition]>1){ - obj_controller.audiences+=1; - obj_controller.audien[obj_controller.audiences]=4; - obj_controller.audien_topic[obj_controller.audiences]="declare_war";} - if (obj_controller.known[eFACTION.Ecclesiarchy]>1){ - obj_controller.audiences+=1; - obj_controller.audien[obj_controller.audiences]=5; - obj_controller.audien_topic[obj_controller.audiences]="declare_war";} - if (obj_controller.known[eFACTION.Mechanicus]>1){ - obj_controller.audiences+=1; - obj_controller.audien[obj_controller.audiences]=3; - obj_controller.audien_topic[obj_controller.audiences]="declare_war";} - - if (planet_feature_bool(you.p_feature[baid], P_features.Sororitas_Cathedral)==1) then obj_controller.disposition[5]-=30; - } - if (you.p_owner[baid]=2) and ((you.p_type[baid]="Temperate") or (you.p_type[baid]="Temperate")) and (planet_feature_bool(you.p_feature[baid], P_features.Daemonic_Incursion)==0){ - obj_controller.loyalty-=30; - obj_controller.loyalty_hidden-=30; - obj_controller.disposition[eFACTION.Imperium]-=30; - obj_controller.disposition[3]-=15; - obj_controller.disposition[4]-=30; - obj_controller.disposition[5]-=30; - } - } + } else if (obj_controller.faction_status[eFACTION.Imperium] != "War" && planet_feature_bool(you.p_feature[baid], P_features.Daemonic_Incursion) == 0 && you.p_tyranids[baid] < 5) { + if (you.p_first[baid] == eFACTION.Imperium && you.p_type[baid] == "Hive") { + obj_controller.loyalty -= 50; + obj_controller.loyalty_hidden -= 50; + obj_controller.disposition[eFACTION.Imperium]-=60; + obj_controller.disposition[eFACTION.Mechanicus] -= 30; + obj_controller.disposition[eFACTION.Inquisition] -= 40; + obj_controller.disposition[eFACTION.Ecclesiarchy] -= 40; + + obj_controller.faction_status[eFACTION.Imperium] = "War"; + obj_controller.faction_status[eFACTION.Mechanicus] = "War"; + obj_controller.faction_status[eFACTION.Inquisition] = "War"; + obj_controller.faction_status[eFACTION.Ecclesiarchy] = "War"; + + obj_controller.audiences += 1; + obj_controller.audien[obj_controller.audiences] = 2; + obj_controller.audien_topic[obj_controller.audiences] = "declare_war"; + if (obj_controller.known[eFACTION.Inquisition] > 1){ + obj_controller.audiences += 1; + obj_controller.audien[obj_controller.audiences] = 4; + obj_controller.audien_topic[obj_controller.audiences] = "declare_war";} + if (obj_controller.known[eFACTION.Ecclesiarchy] > 1){ + obj_controller.audiences += 1; + obj_controller.audien[obj_controller.audiences] = 5; + obj_controller.audien_topic[obj_controller.audiences] = "declare_war";} + if (obj_controller.known[eFACTION.Mechanicus] > 1){ + obj_controller.audiences += 1; + obj_controller.audien[obj_controller.audiences] = 3; + obj_controller.audien_topic[obj_controller.audiences] = "declare_war";} + + if (planet_feature_bool(you.p_feature[baid], P_features.Sororitas_Cathedral) == 1) { obj_controller.disposition[5] -= 30; } + } else if (you.p_owner[baid] == eFACTION.Imperium && (you.p_type[baid] == "Temperate" || you.p_type[baid] == "Desert")) { + obj_controller.loyalty -= 30; + obj_controller.loyalty_hidden -= 30; + obj_controller.disposition[eFACTION.Imperium] -= 30; + obj_controller.disposition[eFACTION.Mechanicus] -= 15; + obj_controller.disposition[eFACTION.Inquisition] -= 30; + obj_controller.disposition[eFACTION.Ecclesiarchy] -= 30; + } + } // Planet changes here //TODO make a plane_reset function