From 9d7da19e2df23d91da9498bbf3d477f58f4eb02d Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 14 Jul 2023 15:09:39 +0100 Subject: [PATCH 01/12] Automatic changelog for PR #3816 [ci skip] --- html/changelogs/AutoChangeLog-pr-3816.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3816.yml diff --git a/html/changelogs/AutoChangeLog-pr-3816.yml b/html/changelogs/AutoChangeLog-pr-3816.yml new file mode 100644 index 000000000000..94b1da5bec33 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3816.yml @@ -0,0 +1,4 @@ +author: "realforest2001" +delete-after: True +changes: + - bugfix: "You can no longer weld non metal containers closed." \ No newline at end of file From 56ebd39ffbb13e1d0e49c4220d74896a6c972cf5 Mon Sep 17 00:00:00 2001 From: BeagleGaming1 <56142455+BeagleGaming1@users.noreply.github.com> Date: Fri, 14 Jul 2023 14:30:51 -0400 Subject: [PATCH 02/12] Changes chem dispenser code (#3830) # About the pull request Shuffled a bunch of stuff around # Explain why it's good for the game Makes it easier to add or remove reagents that are restricted to hacking the dispenser # Changelog :cl: code: Messed with chem and drink dispenser code /:cl: --------- Co-authored-by: harryob --- .../chemistry_machinery/chem_dispenser.dm | 203 ++++++++++-------- maps/interiors/fancylocker.dmm | 2 +- maps/map_files/CORSAT/Corsat.dmm | 4 +- .../map_files/Ice_Colony_v2/Ice_Colony_v2.dmm | 2 +- .../Ice_Colony_v3/Shivas_Snowball.dmm | 2 +- maps/map_files/Kutjevo/Kutjevo.dmm | 2 +- maps/map_files/LV624/LV624.dmm | 2 +- maps/map_files/New_Varadero/New_Varadero.dmm | 2 +- .../Sorokyne_Strata/Sorokyne_Strata.dmm | 6 +- maps/map_files/USS_Almayer/USS_Almayer.dmm | 2 +- maps/map_files/generic/Admin_level.dmm | 2 +- maps/templates/Chinook.dmm | 2 +- maps/templates/clf_ert_station.dmm | 2 +- maps/templates/weyland_ert_station.dmm | 2 +- 14 files changed, 132 insertions(+), 103 deletions(-) diff --git a/code/modules/reagents/chemistry_machinery/chem_dispenser.dm b/code/modules/reagents/chemistry_machinery/chem_dispenser.dm index 09d46aa8c053..98896013c6ec 100644 --- a/code/modules/reagents/chemistry_machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry_machinery/chem_dispenser.dm @@ -1,3 +1,7 @@ +#define DISPENSER_UNHACKABLE -1 +#define DISPENSER_NOT_HACKED 0 +#define DISPENSER_HACKED 1 + /obj/structure/machinery/chem_dispenser name = "chemical dispenser" desc = "A complex machine for mixing elements into chemicals. A Wey-Yu product." @@ -6,6 +10,7 @@ icon = 'icons/obj/structures/machinery/science_machines.dmi' icon_state = "dispenser" use_power = USE_POWER_NONE + wrenchable = FALSE idle_power_usage = 40 layer = BELOW_OBJ_LAYER //So beakers reliably appear above it var/req_skill = SKILL_MEDICAL @@ -14,13 +19,37 @@ var/obj/structure/machinery/chem_storage/chem_storage var/network = "Ground" var/amount = 30 - var/accept_glass = 0 //At 0 ONLY accepts glass containers. Kinda misleading varname. + var/accept_beaker_only = TRUE var/obj/item/reagent_container/beaker = null var/ui_check = 0 var/static/list/possible_transfer_amounts = list(5,10,20,30,40) - var/list/dispensable_reagents = list("hydrogen","lithium","carbon","nitrogen","oxygen","fluorine", - "sodium","aluminum","silicon","phosphorus","sulfur","chlorine","potassium","iron", - "copper","mercury","radium","water","ethanol","sugar","sulphuric acid") + var/list/dispensable_reagents = list( + "hydrogen", + "lithium", + "carbon", + "nitrogen", + "oxygen", + "fluorine", + "sodium", + "aluminum", + "silicon", + "phosphorus", + "sulfur", + "chlorine", + "potassium", + "iron", + "copper", + "mercury", + "radium", + "water", + "ethanol", + "sugar", + "sulphuric acid", + ) + /// Has it been hacked + var/hacked_check = DISPENSER_UNHACKABLE + /// Additional reagents gotten when it is hacked + var/hacked_reagents = list() /obj/structure/machinery/chem_dispenser/medbay network = "Medbay" @@ -112,9 +141,9 @@ var/list/beakerContents = list() var/beakerCurrentVolume = 0 if(beaker && beaker.reagents && beaker.reagents.reagent_list.len) - for(var/datum/reagent/R in beaker.reagents.reagent_list) - beakerContents += list(list("name" = R.name, "volume" = R.volume)) // list in a list because Byond merges the first list... - beakerCurrentVolume += R.volume + for(var/datum/reagent/current_reagent in beaker.reagents.reagent_list) + beakerContents += list(list("name" = current_reagent.name, "volume" = current_reagent.volume)) // list in a list because Byond merges the first list... + beakerCurrentVolume += current_reagent.volume .["beakerContents"] = beakerContents if (beaker) @@ -150,11 +179,11 @@ return var/reagent_name = params["reagent"] if(beaker && dispensable_reagents.Find(reagent_name)) - var/obj/item/reagent_container/B = beaker - var/datum/reagents/R = B.reagents - var/space = R.maximum_volume - R.total_volume + var/obj/item/reagent_container/current_beaker = beaker + var/datum/reagents/current_reagent = current_beaker.reagents + var/space = current_reagent.maximum_volume - current_reagent.total_volume - R.add_reagent(reagent_name, min(amount, chem_storage.energy * 10, space)) + current_reagent.add_reagent(reagent_name, min(amount, chem_storage.energy * 10, space)) chem_storage.energy = max(chem_storage.energy - min(amount, chem_storage.energy * 10, space) / 10, 0) . = TRUE @@ -171,32 +200,64 @@ replace_beaker(usr) . = TRUE -/obj/structure/machinery/chem_dispenser/attackby(obj/item/reagent_container/B, mob/user) +/obj/structure/machinery/chem_dispenser/attackby(obj/item/reagent_container/attacking_object, mob/user) if(isrobot(user)) return - if(istype(B, /obj/item/reagent_container/glass) || istype(B, /obj/item/reagent_container/food)) - if(!accept_glass && istype(B,/obj/item/reagent_container/food)) + + if(istype(attacking_object, /obj/item/reagent_container/glass) || istype(attacking_object, /obj/item/reagent_container/food)) + if(accept_beaker_only && istype(attacking_object,/obj/item/reagent_container/food)) to_chat(user, SPAN_NOTICE("This machine only accepts beakers")) - if(user.drop_inv_item_to_loc(B, src)) + if(user.drop_inv_item_to_loc(attacking_object, src)) var/obj/item/old_beaker = beaker - beaker = B + beaker = attacking_object if(old_beaker) - to_chat(user, SPAN_NOTICE("You swap out \the [old_beaker] for \the [B].")) + to_chat(user, SPAN_NOTICE("You swap out [old_beaker] for [attacking_object].")) user.put_in_hands(old_beaker) else - to_chat(user, SPAN_NOTICE("You set \the [B] on the machine.")) + to_chat(user, SPAN_NOTICE("You set [attacking_object] on the machine.")) SStgui.update_uis(src) update_icon() return + if(HAS_TRAIT(attacking_object, TRAIT_TOOL_MULTITOOL)) + switch(hacked_check) + if(DISPENSER_UNHACKABLE) + to_chat(user, SPAN_NOTICE("[src] cannot be hacked.")) + if(DISPENSER_NOT_HACKED) + user.visible_message("[user] modifies [src] with [attacking_object], turning a light on.", "You enable a light in [src].") + dispensable_reagents += hacked_reagents + hacked_check = DISPENSER_HACKED + if(DISPENSER_HACKED) + user.visible_message("[user] modifies [src] with [attacking_object], turning a light off.", "You disable a light in [src].") + dispensable_reagents -= hacked_reagents + hacked_check = DISPENSER_NOT_HACKED + + if(HAS_TRAIT(attacking_object, TRAIT_TOOL_WRENCH)) + if(!wrenchable) + to_chat(user, "[src] cannot be unwrenched.") + + if(!do_after(user, 2 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + return + if(!src) + return + + playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) + anchored = !anchored + if(anchored) + user.visible_message("[user] tightens the bolts securing [src] to the surface.", "You tighten the bolts securing [src] to the surface.") + return + + user.visible_message("[user] unfastens the bolts securing [src] to the surface.", "You unfasten the bolts securing [src] to the surface.") + /obj/structure/machinery/chem_dispenser/attack_remote(mob/user as mob) return src.attack_hand(user) /obj/structure/machinery/chem_dispenser/attack_hand(mob/user as mob) if(stat & BROKEN) + to_chat(user, SPAN_WARNING("[src] is inoperative.")) return if(req_skill && !skillcheck(user, req_skill, req_skill_level)) - to_chat(user, SPAN_WARNING("You don't have the training to use this.")) + to_chat(user, SPAN_WARNING("You don't have the training to use [src].")) return tgui_interact(user) @@ -207,9 +268,10 @@ ui_title = "Soda Dispens-o-matic" req_skill = null req_skill_level = null - accept_glass = 1 + accept_beaker_only = FALSE wrenchable = TRUE network = "Misc" + hacked_check = DISPENSER_NOT_HACKED dispensable_reagents = list( "water", "ice", @@ -234,76 +296,43 @@ "lemonjuice", "banana", ) - var/hackedcheck = 0 - -/obj/structure/machinery/chem_dispenser/soda/attackby(obj/item/B as obj, mob/user as mob) - ..() - if(HAS_TRAIT(B, TRAIT_TOOL_MULTITOOL)) - if(hackedcheck == 0) - to_chat(user, "You change the mode from 'Soda Magic' to 'Milking Time'.") - dispensable_reagents += list("milk","soymilk") - hackedcheck = 1 - return - - else - to_chat(user, "You change the mode from 'Milking Time' to 'Soda Magic'.") - dispensable_reagents -= list("milk","soymilk") - hackedcheck = 0 - return - else if(HAS_TRAIT(B, TRAIT_TOOL_WRENCH)) - if(!wrenchable) return - - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(!src) return - playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) - switch (anchored) - if (FALSE) - anchored = TRUE - user.visible_message("[user] tightens the bolts securing \the [src] to the surface.", "You tighten the bolts securing \the [src] to the surface.") - if (TRUE) - user.visible_message("[user] unfastens the bolts securing \the [src] to the surface.", "You unfasten the bolts securing \the [src] to the surface.") - anchored = FALSE - return + hacked_reagents = list( + "milk", + "soymilk", + ) -/obj/structure/machinery/chem_dispenser/beer +/obj/structure/machinery/chem_dispenser/soda/beer icon_state = "booze_dispenser" name = "booze dispenser" ui_title = "Booze Portal 9001" - req_skill = null - req_skill_level = null - accept_glass = 1 - wrenchable = TRUE - network = "Misc" desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." - dispensable_reagents = list("water","ice","sodawater","sugar","tonic","beer","kahlua","whiskey","sake","wine","vodka","gin","rum","vermouth","cognac","ale","mead","thirteenloko","tequila") - var/hackedcheck = 0 - -/obj/structure/machinery/chem_dispenser/beer/attackby(obj/item/B as obj, mob/user as mob) - ..() - - if(HAS_TRAIT(B, TRAIT_TOOL_MULTITOOL)) - if(hackedcheck == 0) - to_chat(user, "You disable the 'Weyland-Yutani-are-cheap-bastards' lock, enabling hidden and very expensive boozes.") - dispensable_reagents += list("goldschlager","patron","absinthe") - hackedcheck = 1 - return + dispensable_reagents = list( + "water", + "ice", + "sodawater", + "sugar", + "tonic", + "beer", + "kahlua", + "whiskey", + "sake", + "wine", + "vodka", + "gin", + "rum", + "vermouth", + "cognac", + "ale", + "mead", + "thirteenloko", + "tequila", + ) + hacked_reagents = list( + "goldschlager", + "patron", + "absinthe", + ) - else - to_chat(user, "You re-enable the 'Weyland-Yutani-are-cheap-bastards' lock, disabling hidden and very expensive boozes.") - dispensable_reagents -= list("goldschlager","patron","absinthe") - hackedcheck = 0 - return - else if(HAS_TRAIT(B, TRAIT_TOOL_WRENCH)) - if(!wrenchable) return - - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(!src) return - playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) - switch (anchored) - if (FALSE) - anchored = TRUE - user.visible_message("[user] tightens the bolts securing \the [src] to the surface.", "You tighten the bolts securing \the [src] to the surface.") - if (TRUE) - user.visible_message("[user] unfastens the bolts securing \the [src] to the surface.", "You unfasten the bolts securing \the [src] to the surface.") - anchored = FALSE - return +#undef DISPENSER_UNHACKABLE +#undef DISPENSER_NOT_HACKED +#undef DISPENSER_HACKED diff --git a/maps/interiors/fancylocker.dmm b/maps/interiors/fancylocker.dmm index b26879d705f8..a6ecb6155e72 100644 --- a/maps/interiors/fancylocker.dmm +++ b/maps/interiors/fancylocker.dmm @@ -88,7 +88,7 @@ /area/vehicle/apc) "t" = ( /obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/chem_dispenser/beer, +/obj/structure/machinery/chem_dispenser/soda/beer, /turf/open/floor/wood, /area/vehicle/apc) "u" = ( diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm index bddc64a61ad2..3fefea9f08b0 100644 --- a/maps/map_files/CORSAT/Corsat.dmm +++ b/maps/map_files/CORSAT/Corsat.dmm @@ -22132,7 +22132,7 @@ /area/corsat/gamma/biodome/toxins) "biR" = ( /obj/structure/surface/table/woodentable, -/obj/structure/machinery/chem_dispenser/beer{ +/obj/structure/machinery/chem_dispenser/soda/beer{ dir = 8; pixel_x = 15 }, @@ -25197,7 +25197,7 @@ /area/corsat/sigma/south/offices) "bsN" = ( /obj/structure/surface/table/woodentable, -/obj/structure/machinery/chem_dispenser/beer{ +/obj/structure/machinery/chem_dispenser/soda/beer{ dir = 8 }, /turf/open/floor/corsat{ diff --git a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm index 7ce999271a29..76257b973b43 100644 --- a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm +++ b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm @@ -14261,7 +14261,7 @@ /area/ice_colony/surface/bar/bar) "aPy" = ( /obj/structure/surface/table/woodentable, -/obj/structure/machinery/chem_dispenser/beer, +/obj/structure/machinery/chem_dispenser/soda/beer, /obj/structure/machinery/alarm{ dir = 1; pixel_y = -24 diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm index a431aa368702..d221090da880 100644 --- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm +++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm @@ -6004,7 +6004,7 @@ /turf/open/floor/plating, /area/shiva/interior/colony/s_admin) "aRc" = ( -/obj/structure/machinery/chem_dispenser/beer{ +/obj/structure/machinery/chem_dispenser/soda/beer{ pixel_y = 8 }, /obj/structure/surface/table/reinforced/prison, diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm index 3d626437679a..e5a6a43cf617 100644 --- a/maps/map_files/Kutjevo/Kutjevo.dmm +++ b/maps/map_files/Kutjevo/Kutjevo.dmm @@ -381,7 +381,7 @@ /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/med/cells) "azb" = ( -/obj/structure/machinery/chem_dispenser/beer{ +/obj/structure/machinery/chem_dispenser/soda/beer{ icon_state = "dispenser" }, /turf/open/floor/kutjevo/tan/multi_tiles, diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm index de31b327c9a4..b84ed33ef0e4 100644 --- a/maps/map_files/LV624/LV624.dmm +++ b/maps/map_files/LV624/LV624.dmm @@ -12062,7 +12062,7 @@ /area/lv624/lazarus/comms) "aZi" = ( /obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/chem_dispenser/beer{ +/obj/structure/machinery/chem_dispenser/soda/beer{ pixel_y = 26 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, diff --git a/maps/map_files/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm index 7969b1a120a0..139b956c9622 100644 --- a/maps/map_files/New_Varadero/New_Varadero.dmm +++ b/maps/map_files/New_Varadero/New_Varadero.dmm @@ -6101,7 +6101,7 @@ /area/varadero/interior/hall_SE) "fvw" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/chem_dispenser/beer{ +/obj/structure/machinery/chem_dispenser/soda/beer{ pixel_y = 8 }, /turf/open/floor/shiva{ diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm index 2da1f3f4295d..17f2e577a120 100644 --- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm +++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm @@ -9733,7 +9733,7 @@ }, /area/strata/ag/interior/outpost/canteen) "aDr" = ( -/obj/structure/machinery/chem_dispenser/beer, +/obj/structure/machinery/chem_dispenser/soda/beer, /turf/open/floor/interior/plastic, /area/strata/ag/interior/outpost/canteen) "aDs" = ( @@ -10184,7 +10184,7 @@ }, /area/strata/ag/interior/dorms) "aEK" = ( -/obj/structure/machinery/chem_dispenser/beer, +/obj/structure/machinery/chem_dispenser/soda/beer, /obj/structure/surface/table/reinforced/prison, /turf/open/floor/strata{ icon_state = "orange_tile" @@ -12088,7 +12088,7 @@ }, /area/strata/ag/interior/outpost/admin) "aKQ" = ( -/obj/structure/machinery/chem_dispenser/beer, +/obj/structure/machinery/chem_dispenser/soda/beer, /obj/structure/surface/table/reinforced/prison, /turf/open/floor/strata{ dir = 4; diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index 271eb7997fc6..1eb738588f80 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -12663,7 +12663,7 @@ /area/almayer/hallways/starboard_hallway) "aSt" = ( /obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/chem_dispenser/beer, +/obj/structure/machinery/chem_dispenser/soda/beer, /turf/open/floor/prison{ icon_state = "kitchen" }, diff --git a/maps/map_files/generic/Admin_level.dmm b/maps/map_files/generic/Admin_level.dmm index 727ae18b926a..8dd8e17e6507 100644 --- a/maps/map_files/generic/Admin_level.dmm +++ b/maps/map_files/generic/Admin_level.dmm @@ -1040,7 +1040,7 @@ }, /area/adminlevel/ert_station) "zk" = ( -/obj/structure/machinery/chem_dispenser/beer{ +/obj/structure/machinery/chem_dispenser/soda/beer{ density = 0; pixel_y = 10 }, diff --git a/maps/templates/Chinook.dmm b/maps/templates/Chinook.dmm index 0d9e64628b24..f2acbe320aeb 100644 --- a/maps/templates/Chinook.dmm +++ b/maps/templates/Chinook.dmm @@ -1875,7 +1875,7 @@ /area/adminlevel/chinook/engineering) "gv" = ( /obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/chem_dispenser/beer, +/obj/structure/machinery/chem_dispenser/soda/beer, /turf/open/floor/almayer{ icon_state = "plate" }, diff --git a/maps/templates/clf_ert_station.dmm b/maps/templates/clf_ert_station.dmm index ec2a81bf6218..cf8bc8d46bf6 100644 --- a/maps/templates/clf_ert_station.dmm +++ b/maps/templates/clf_ert_station.dmm @@ -1828,7 +1828,7 @@ /turf/open/gm/river, /area/adminlevel/ert_station/clf_station) "RR" = ( -/obj/structure/machinery/chem_dispenser/beer{ +/obj/structure/machinery/chem_dispenser/soda/beer{ density = 0; pixel_y = 10 }, diff --git a/maps/templates/weyland_ert_station.dmm b/maps/templates/weyland_ert_station.dmm index 171bd8d9ac6e..854299a4efda 100644 --- a/maps/templates/weyland_ert_station.dmm +++ b/maps/templates/weyland_ert_station.dmm @@ -2509,7 +2509,7 @@ /area/adminlevel/ert_station/weyland_station) "EW" = ( /obj/structure/surface/table/reinforced, -/obj/structure/machinery/chem_dispenser/beer{ +/obj/structure/machinery/chem_dispenser/soda/beer{ density = 0; pixel_y = 23 }, From f9b27e09d5edb248657a2b47502f5ddd733b8667 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 14 Jul 2023 19:42:41 +0100 Subject: [PATCH 03/12] Automatic changelog for PR #3830 [ci skip] --- html/changelogs/AutoChangeLog-pr-3830.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3830.yml diff --git a/html/changelogs/AutoChangeLog-pr-3830.yml b/html/changelogs/AutoChangeLog-pr-3830.yml new file mode 100644 index 000000000000..89a5541d9ade --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3830.yml @@ -0,0 +1,4 @@ +author: "BeagleGaming1" +delete-after: True +changes: + - code_imp: "Messed with chem and drink dispenser code" \ No newline at end of file From 2006c90513dc356e6ad0f41f85590a51b04c21a8 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 15 Jul 2023 01:47:40 +0000 Subject: [PATCH 04/12] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3816.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3830.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3831.yml | 5 ---- html/changelogs/AutoChangeLog-pr-3841.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3849.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3851.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3854.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3857.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3864.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3866.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3870.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3871.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3874.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3878.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3881.yml | 4 ---- html/changelogs/archive/2023-07.yml | 28 +++++++++++++++++++++++ 16 files changed, 28 insertions(+), 61 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3816.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3830.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3831.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3841.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3849.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3851.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3854.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3857.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3864.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3866.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3870.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3871.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3874.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3878.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3881.yml diff --git a/html/changelogs/AutoChangeLog-pr-3816.yml b/html/changelogs/AutoChangeLog-pr-3816.yml deleted file mode 100644 index 94b1da5bec33..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3816.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - bugfix: "You can no longer weld non metal containers closed." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3830.yml b/html/changelogs/AutoChangeLog-pr-3830.yml deleted file mode 100644 index 89a5541d9ade..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3830.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BeagleGaming1" -delete-after: True -changes: - - code_imp: "Messed with chem and drink dispenser code" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3831.yml b/html/changelogs/AutoChangeLog-pr-3831.yml deleted file mode 100644 index 073d35899894..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3831.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Ben10083" -delete-after: True -changes: - - mapadd: "Combat Information Center Reception now has a telephone" - - maptweak: "Medical Lower telephone shifted to the left" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3841.yml b/html/changelogs/AutoChangeLog-pr-3841.yml deleted file mode 100644 index 90292a845422..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3841.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fix morpher ejected items and dumped objectives not restoring their mouse_opacity setting." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3849.yml b/html/changelogs/AutoChangeLog-pr-3849.yml deleted file mode 100644 index bf5c9c9813f6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3849.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - rscadd: "Added a PMC Synth Survivor preset, and stopped PMC Synth Survivor using the ERT set." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3851.yml b/html/changelogs/AutoChangeLog-pr-3851.yml deleted file mode 100644 index 2066366eb549..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3851.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Zonespace27" -delete-after: True -changes: - - admin: "Removed msay. All staff now have access to asay" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3854.yml b/html/changelogs/AutoChangeLog-pr-3854.yml deleted file mode 100644 index 651976126290..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3854.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - soundadd: "Added a drag sound for footstep component" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3857.yml b/html/changelogs/AutoChangeLog-pr-3857.yml deleted file mode 100644 index e9729283ea34..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3857.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Morrow" -delete-after: True -changes: - - balance: "Lurkers now lose their invisibility when they run into a person" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3864.yml b/html/changelogs/AutoChangeLog-pr-3864.yml deleted file mode 100644 index 01e5ed5e7c73..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3864.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ondrej008" -delete-after: True -changes: - - bugfix: "The HE OB now deals the correct amount of damage to xenos, before it dealt half damage caused by xenos being forced to rest before it hit." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3866.yml b/html/changelogs/AutoChangeLog-pr-3866.yml deleted file mode 100644 index 49809e7e7dc3..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3866.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - bugfix: "Carbon copies can no longer infinitely breed." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3870.yml b/html/changelogs/AutoChangeLog-pr-3870.yml deleted file mode 100644 index 34bba780f492..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3870.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - bugfix: "Fixes the icon on the alien blade on LV." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3871.yml b/html/changelogs/AutoChangeLog-pr-3871.yml deleted file mode 100644 index 76cdd0ebb9ca..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3871.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ben10083" -delete-after: True -changes: - - spellcheck: "Fixed typos relating to M74 airburst packets." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3874.yml b/html/changelogs/AutoChangeLog-pr-3874.yml deleted file mode 100644 index 83311c453f97..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3874.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Morrow" -delete-after: True -changes: - - admin: "VV Jump To Fix" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3878.yml b/html/changelogs/AutoChangeLog-pr-3878.yml deleted file mode 100644 index bef90fd797f5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3878.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - bugfix: "Fixes the toggle notification sound verb for Yautja bracers not working." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3881.yml b/html/changelogs/AutoChangeLog-pr-3881.yml deleted file mode 100644 index e7228482ba13..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3881.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Steelpoint" -delete-after: True -changes: - - ui: "Predator Ship is now called 'Yautja Ship\" for teleporting Predators" \ No newline at end of file diff --git a/html/changelogs/archive/2023-07.yml b/html/changelogs/archive/2023-07.yml index 923af7d86a7b..2a02cb58f88c 100644 --- a/html/changelogs/archive/2023-07.yml +++ b/html/changelogs/archive/2023-07.yml @@ -166,3 +166,31 @@ - bugfix: Fixed burrowers being able to get slashed from enemy Xenos on the surface. - bugfix: Fixed burrowers unburrow stun to now properly target and stun enemy Xenos. - soundadd: Added sounds for the Burrower when they are burrowing and unburrowing. +2023-07-15: + BeagleGaming1: + - code_imp: Messed with chem and drink dispenser code + Ben10083: + - spellcheck: Fixed typos relating to M74 airburst packets. + - mapadd: Combat Information Center Reception now has a telephone + - maptweak: Medical Lower telephone shifted to the left + Drathek: + - bugfix: Fix morpher ejected items and dumped objectives not restoring their mouse_opacity + setting. + Morrow: + - admin: VV Jump To Fix + - balance: Lurkers now lose their invisibility when they run into a person + Steelpoint: + - ui: Predator Ship is now called 'Yautja Ship" for teleporting Predators + Zonespace27: + - admin: Removed msay. All staff now have access to asay + ondrej008: + - bugfix: The HE OB now deals the correct amount of damage to xenos, before it dealt + half damage caused by xenos being forced to rest before it hit. + realforest2001: + - soundadd: Added a drag sound for footstep component + - bugfix: Fixes the icon on the alien blade on LV. + - bugfix: Carbon copies can no longer infinitely breed. + - rscadd: Added a PMC Synth Survivor preset, and stopped PMC Synth Survivor using + the ERT set. + - bugfix: You can no longer weld non metal containers closed. + - bugfix: Fixes the toggle notification sound verb for Yautja bracers not working. From 7f5a984c7b2f0fcedfd337e4e8904f260974ea81 Mon Sep 17 00:00:00 2001 From: Drathek <76988376+Drulikar@users.noreply.github.com> Date: Fri, 14 Jul 2023 21:28:35 -0700 Subject: [PATCH 05/12] Revive tableflip fixes (#3882) # About the pull request This PR revives #3740 and applies my suggested changes to that PR preventing T and cross shaped table flips. # Explain why it's good for the game Fixes a game ending exploit, and also gives a bit more sanity to table flipping. # Testing Photographs and Procedure
Screenshots & Videos Old testing: This cannot be flipped now: ![image](https://github.com/cmss13-devs/cmss13/assets/76988376/7d4c7535-167c-44fb-9473-f7c97bc95e8c) But this can from the checkmark locations: ![image](https://github.com/cmss13-devs/cmss13/assets/76988376/ef46cc98-b586-4a51-b389-5cc39a119324)
# Changelog :cl: Drathek, Fira fix: Fixed an issue with table flips that could make some tables incorrectly unflippable, and cause infinite loops. It is no longer possible to flip tables that t-shape or cross, or spans more than 5 tiles away from you. /:cl: --------- Co-authored-by: Fira --- code/game/objects/structures/tables_racks.dm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 730263ad7a3e..db3ce98339a3 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -326,11 +326,13 @@ /// Checks whether a table is a straight line along a given axis /obj/structure/surface/table/proc/straight_table_check(direction) var/obj/structure/surface/table/table = src - while(table) + var/obj/structure/surface/table/side_table + var/tables_count = 7 // Lazy extra safety against infinite loops. If table big, can't flip, i guess. + while(--tables_count) // Check whether there are connected tables perpendicular to the axis for(var/angle in list(-90, 90)) - table = locate() in get_step(loc, turn(direction, angle)) - if(table && !table.flipped) + side_table = locate() in get_step(table, turn(direction, angle)) + if(side_table && !side_table.flipped) return FALSE table = locate() in get_step(table, direction) if(!table || table.flipped) @@ -339,6 +341,8 @@ var/obj/structure/surface/table/reinforced/reinforced_table = table if(reinforced_table.status == RTABLE_NORMAL) return FALSE + if(!tables_count) + return FALSE return TRUE /obj/structure/surface/table/verb/do_flip() @@ -421,7 +425,7 @@ to_chat(usr, SPAN_WARNING("You have moved a table too recently.")) return FALSE - if(!skip_straight_check && (!straight_table_check(turn(direction, 90)) || !straight_table_check(turn(direction, -90)))) + if(!skip_straight_check && !(straight_table_check(turn(direction, 90)) && straight_table_check(turn(direction, -90)))) to_chat(usr, SPAN_WARNING("[src] is too wide to be flipped.")) return FALSE From a2e9e0535a9249ae21889f86bd66b15d9ecb5838 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sat, 15 Jul 2023 05:37:32 +0100 Subject: [PATCH 06/12] Automatic changelog for PR #3882 [ci skip] --- html/changelogs/AutoChangeLog-pr-3882.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3882.yml diff --git a/html/changelogs/AutoChangeLog-pr-3882.yml b/html/changelogs/AutoChangeLog-pr-3882.yml new file mode 100644 index 000000000000..9b512a62c3bc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3882.yml @@ -0,0 +1,4 @@ +author: "Drathek, Fira" +delete-after: True +changes: + - bugfix: "Fixed an issue with table flips that could make some tables incorrectly unflippable, and cause infinite loops. It is no longer possible to flip tables that t-shape or cross, or spans more than 5 tiles away from you." \ No newline at end of file From 209708566d39308626f9bdf012ec9f252be3d612 Mon Sep 17 00:00:00 2001 From: Drathek <76988376+Drulikar@users.noreply.github.com> Date: Fri, 14 Jul 2023 21:29:13 -0700 Subject: [PATCH 07/12] AFK Facehuggers Convert to Normal Huggers (#3886) # About the pull request This PR makes it so sentient huggers that have been AFK for 7 minutes, aren't aghosted, and have no client will convert to normal huggers (and subsequently die like normal unless they hug someone or get grabbed). I was considering removing facehuggers from the join as xeno list, but this way there's still a couple minutes they can be taken over before they convert. # Explain why it's good for the game This can help cleanup the afk xeno list and possibly make a funny situation if a marine happens to be nearby when one converts. # Testing Photographs and Procedure
Screenshots & Videos (Timer here was set to just 10 seconds for testing) ![facehugger](https://github.com/cmss13-devs/cmss13/assets/76988376/7b6f1ac9-3408-4c83-9e14-7ff73207a50d)
# Changelog :cl: Drathek add: Facehuggers now convert to their NPC version after 7 minutes of inactivity and no client. code: Cleanup join as xeno button code somewhat. /:cl: --------- Co-authored-by: harryob --- code/__DEFINES/xeno.dm | 2 ++ code/game/gamemodes/cm_initialize.dm | 31 +++++++++++-------- .../carbon/xenomorph/castes/Facehugger.dm | 5 +++ 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/code/__DEFINES/xeno.dm b/code/__DEFINES/xeno.dm index 4b45c660feab..ac783b6f426e 100644 --- a/code/__DEFINES/xeno.dm +++ b/code/__DEFINES/xeno.dm @@ -168,6 +168,8 @@ #define XENO_LEAVE_TIMER_LARVA 80 //80 seconds /// The time against away_timer when an AFK xeno (not larva) can be replaced #define XENO_LEAVE_TIMER 300 //300 seconds +/// The time against away_timer when an AFK facehugger converts to a npc +#define XENO_FACEHUGGER_LEAVE_TIMER 420 //420 seconds /// The time against away_timer when an AFK xeno gets listed in the available list so ghosts can get ready #define XENO_AVAILABLE_TIMER 60 //60 seconds diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm index 18b11dde030e..b95052de8824 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -333,23 +333,28 @@ Additional game mode variables. /datum/game_mode/proc/check_xeno_late_join(mob/xeno_candidate) if(jobban_isbanned(xeno_candidate, JOB_XENOMORPH)) // User is jobbanned to_chat(xeno_candidate, SPAN_WARNING("You are banned from playing aliens and cannot spawn as a xenomorph.")) - return - return 1 + return FALSE + return TRUE -/datum/game_mode/proc/attempt_to_join_as_xeno(mob/xeno_candidate, instant_join = 0) +/datum/game_mode/proc/attempt_to_join_as_xeno(mob/xeno_candidate, instant_join = FALSE) var/list/available_xenos = list() var/list/available_xenos_non_ssd = list() - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - var/area/A = get_area(X) - if(is_admin_level(X.z) && (!A || !(A.flags_area & AREA_ALLOW_XENO_JOIN)) || X.aghosted) - continue //xenos on admin z level and aghosted ones don't count - if(istype(X) && ((!islarva(X) && (XENO_LEAVE_TIMER - X.away_timer < XENO_AVAILABLE_TIMER)) || (islarva(X) && (XENO_LEAVE_TIMER_LARVA - X.away_timer < XENO_AVAILABLE_TIMER)))) - if(!X.client) - available_xenos += X - else - available_xenos_non_ssd += X - + for(var/mob/living/carbon/xenomorph/cur_xeno as anything in GLOB.living_xeno_list) + if(cur_xeno.aghosted) + continue //aghosted xenos don't count + var/area/area = get_area(cur_xeno) + if(is_admin_level(cur_xeno.z) && (!area || !(area.flags_area & AREA_ALLOW_XENO_JOIN))) + continue //xenos on admin z level don't count + if(!istype(cur_xeno)) + continue + var/required_time = islarva(cur_xeno) ? XENO_LEAVE_TIMER_LARVA - cur_xeno.away_timer : XENO_LEAVE_TIMER - cur_xeno.away_timer + if(required_time > XENO_AVAILABLE_TIMER) + continue + if(!cur_xeno.client) + available_xenos += cur_xeno + else + available_xenos_non_ssd += cur_xeno var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm index 1ad171ec5c93..08566a6e9af3 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm @@ -67,6 +67,11 @@ PF.flags_can_pass_all = PASS_ALL^PASS_OVER_THROW_ITEM /mob/living/carbon/xenomorph/facehugger/Life(delta_time) + if(!client && !aghosted && away_timer > XENO_FACEHUGGER_LEAVE_TIMER) + // Become a npc once again + new /obj/item/clothing/mask/facehugger(loc, hivenumber) + qdel(src) + return if(stat != DEAD && !lying && !(locate(/obj/effect/alien/weeds) in get_turf(src))) adjustBruteLoss(1) return ..() From 8459e1244393802868d7b6bbb90ee53e2b79b573 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sat, 15 Jul 2023 05:52:23 +0100 Subject: [PATCH 08/12] Automatic changelog for PR #3886 [ci skip] --- html/changelogs/AutoChangeLog-pr-3886.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3886.yml diff --git a/html/changelogs/AutoChangeLog-pr-3886.yml b/html/changelogs/AutoChangeLog-pr-3886.yml new file mode 100644 index 000000000000..415fce788e9a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3886.yml @@ -0,0 +1,5 @@ +author: "Drathek" +delete-after: True +changes: + - rscadd: "Facehuggers now convert to their NPC version after 7 minutes of inactivity and no client." + - code_imp: "Cleanup join as xeno button code somewhat." \ No newline at end of file From 9b3452c47f35a7cdd3f819340cf0ee49c171a4a3 Mon Sep 17 00:00:00 2001 From: Drathek <76988376+Drulikar@users.noreply.github.com> Date: Fri, 14 Jul 2023 21:38:08 -0700 Subject: [PATCH 09/12] Hard delete fixes for predator landmarks and van if their area changes (#3883) # About the pull request This PR applies the fixes previously suggested for #3671. That PR was originally replacing much of the colony in a nightmare insert and it exposed how predator landmarks do not handle their area being changed and an issue with the van being replaced. The description made for these landmarks is based on some area information and that is used to index them. This PR makes it so the description of the landmark is saved so it can still be found in the list even if the area changes. # Explain why it's good for the game Less hard deletes and more futureproofing. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: Drathek, Steelpoint fix: Fixed possible hardeletes for predator landmarks and vehicles. Predator teleporation descriptions now do not change if the area is altered at runtime so they can still be found correctly. /:cl: --- code/game/objects/effects/landmarks/landmarks.dm | 14 ++++++++------ code/modules/vehicles/interior/interior.dm | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/code/game/objects/effects/landmarks/landmarks.dm b/code/game/objects/effects/landmarks/landmarks.dm index 64a5025794e3..1cbe10c497f6 100644 --- a/code/game/objects/effects/landmarks/landmarks.dm +++ b/code/game/objects/effects/landmarks/landmarks.dm @@ -216,23 +216,25 @@ /obj/effect/landmark/yautja_teleport name = "yautja_teleport" + /// The index we registered as in mainship_yautja_desc or yautja_teleport_descs + var/desc_index /obj/effect/landmark/yautja_teleport/Initialize(mapload, ...) . = ..() - var/turf/T = get_turf(src) + var/turf/turf = get_turf(src) + desc_index = turf.loc.name + turf.loc_to_string() if(is_mainship_level(z)) GLOB.mainship_yautja_teleports += src - GLOB.mainship_yautja_desc[T.loc.name + T.loc_to_string()] = src + GLOB.mainship_yautja_desc[desc_index] = src else GLOB.yautja_teleports += src - GLOB.yautja_teleport_descs[T.loc.name + T.loc_to_string()] = src + GLOB.yautja_teleport_descs[desc_index] = src /obj/effect/landmark/yautja_teleport/Destroy() - var/turf/T = get_turf(src) GLOB.mainship_yautja_teleports -= src GLOB.yautja_teleports -= src - GLOB.mainship_yautja_desc -= T.loc.name + T.loc_to_string() - GLOB.yautja_teleport_descs -= T.loc.name + T.loc_to_string() + GLOB.mainship_yautja_desc -= desc_index + GLOB.yautja_teleport_descs -= desc_index return ..() diff --git a/code/modules/vehicles/interior/interior.dm b/code/modules/vehicles/interior/interior.dm index b56de4bfe16b..046b42495ac7 100644 --- a/code/modules/vehicles/interior/interior.dm +++ b/code/modules/vehicles/interior/interior.dm @@ -72,6 +72,7 @@ entrance_markers = null QDEL_NULL(reservation) + SSinterior.interiors -= src return ..() From cdac633a82130a07a24cb74981026e299a497ca5 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sat, 15 Jul 2023 06:10:32 +0100 Subject: [PATCH 10/12] Automatic changelog for PR #3883 [ci skip] --- html/changelogs/AutoChangeLog-pr-3883.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3883.yml diff --git a/html/changelogs/AutoChangeLog-pr-3883.yml b/html/changelogs/AutoChangeLog-pr-3883.yml new file mode 100644 index 000000000000..aee6de94ea48 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3883.yml @@ -0,0 +1,4 @@ +author: "Drathek, Steelpoint" +delete-after: True +changes: + - bugfix: "Fixed possible hardeletes for predator landmarks and vehicles. Predator teleporation descriptions now do not change if the area is altered at runtime so they can still be found correctly." \ No newline at end of file From 54acb6f9acb241be11f77e0a7456cc70652729e5 Mon Sep 17 00:00:00 2001 From: Cursor <102828457+theselfish@users.noreply.github.com> Date: Sat, 15 Jul 2023 06:20:29 +0100 Subject: [PATCH 11/12] Adding Coats to the Staff Officer vendor (#3840) # About the pull request Title. ![image](https://github.com/cmss13-devs/cmss13/assets/102828457/3f83c54f-3cf0-4227-a1f0-8a1b9b10baf4) I am willing to toss the Tanker Jacket, as much as I miss it. I also added the uniform to their required gear for the sake of consistency. # Explain why it's good for the game It gives the SO more options for clothing, as it's cold on the ship. I've also removed the free helmet they could get, for some odd reason. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: SOs may now get coats in their vendor. /:cl: --- .../vending/vendor_types/crew/staff_officer.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm index 5b0324edc2a2..103efeedde61 100644 --- a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm @@ -11,11 +11,21 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Uniform", 0, /obj/item/clothing/under/marine/officer/bridge, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/mcom, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), list("Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), + list("JACKET (CHOOSE 1)", 0, null, null, null), + list("Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), + + list("HAT (CHOOSE 1)", 0, null, null, null), + list("Beret, Green", 0, /obj/item/clothing/head/beret/cm, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), + list("Beret, Tan", 0, /obj/item/clothing/head/beret/cm/tan, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), + list("Patrol Cap", 0, /obj/item/clothing/head/cmcap, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), + + list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null), list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), list("M4A3 Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), From 885b70b82679eeadfb96a6031a3b9d8248ee5d4c Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sat, 15 Jul 2023 06:28:37 +0100 Subject: [PATCH 12/12] Automatic changelog for PR #3840 [ci skip] --- html/changelogs/AutoChangeLog-pr-3840.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3840.yml diff --git a/html/changelogs/AutoChangeLog-pr-3840.yml b/html/changelogs/AutoChangeLog-pr-3840.yml new file mode 100644 index 000000000000..0154501c70b0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3840.yml @@ -0,0 +1,4 @@ +author: "theselfish" +delete-after: True +changes: + - rscadd: "SOs may now get coats in their vendor." \ No newline at end of file