From 49fc0dea934b89fc0f736888ea46cca192ca087d Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 30 Jun 2023 01:41:48 +0000 Subject: [PATCH 01/17] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3724.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3747.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3751.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3752.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3753.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3756.yml | 4 ---- html/changelogs/archive/2023-06.yml | 12 ++++++++++++ 7 files changed, 12 insertions(+), 24 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3724.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3747.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3751.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3752.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3753.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3756.yml diff --git a/html/changelogs/AutoChangeLog-pr-3724.yml b/html/changelogs/AutoChangeLog-pr-3724.yml deleted file mode 100644 index 031042a976c9..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3724.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheGamerdk" -delete-after: True -changes: - - bugfix: "Lurkers no longer lose their pounce if they happen to end their pounce on a tile with a dead human" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3747.yml b/html/changelogs/AutoChangeLog-pr-3747.yml deleted file mode 100644 index c20e68184c69..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3747.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheGamerdk" -delete-after: True -changes: - - bugfix: "You can now re-enter your body when unnested, marine mains, rejoice!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3751.yml b/html/changelogs/AutoChangeLog-pr-3751.yml deleted file mode 100644 index 50c548407f5e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3751.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Morrow" -delete-after: True -changes: - - rscdel: "Removed wrong warden locker" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3752.yml b/html/changelogs/AutoChangeLog-pr-3752.yml deleted file mode 100644 index 2890d9c60a41..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3752.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fix runtimes with minimap subsystem not handling targets inside of objects during removal" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3753.yml b/html/changelogs/AutoChangeLog-pr-3753.yml deleted file mode 100644 index 7105155792bd..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3753.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - code_imp: "Ported VERB_REF and TYPE_VERB_REF from TG for 515 compatibility" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3756.yml b/html/changelogs/AutoChangeLog-pr-3756.yml deleted file mode 100644 index 77eb600b40f6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3756.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - code_imp: "Removed unnecessary calculations when updating a mob's transform." \ No newline at end of file diff --git a/html/changelogs/archive/2023-06.yml b/html/changelogs/archive/2023-06.yml index b1040b8044de..e2d9dfed44d7 100644 --- a/html/changelogs/archive/2023-06.yml +++ b/html/changelogs/archive/2023-06.yml @@ -430,3 +430,15 @@ - bugfix: door_control buttons now respect being indestructable when processing explosions. - maptweak: Fixed the M39s overflowing in brig armory due to use of landmarks. +2023-06-30: + Drathek: + - bugfix: Fix runtimes with minimap subsystem not handling targets inside of objects + during removal + - code_imp: Ported VERB_REF and TYPE_VERB_REF from TG for 515 compatibility + - code_imp: Removed unnecessary calculations when updating a mob's transform. + Morrow: + - rscdel: Removed wrong warden locker + TheGamerdk: + - bugfix: You can now re-enter your body when unnested, marine mains, rejoice! + - bugfix: Lurkers no longer lose their pounce if they happen to end their pounce + on a tile with a dead human From 9b123cc367fea2e2de3cfc63e208d60d1bfd60dd Mon Sep 17 00:00:00 2001 From: Drathek <76988376+Drulikar@users.noreply.github.com> Date: Thu, 29 Jun 2023 23:38:23 -0700 Subject: [PATCH 02/17] Fix Facehugger Ban Oversight (#3766) # About the pull request This PR fixes an oversight where the xeno ban check wasn't being done for facehuggers (except the facehugger join verb). # Explain why it's good for the game Fixes #3739 # Testing Photographs and Procedure
Screenshots & Videos ![image](https://github.com/cmss13-devs/cmss13/assets/76988376/861eed98-0810-40ed-8a4c-22529cdac345)
# Changelog :cl: Drathek fix: Fixed missing xeno ban check for playing as a facehugger /:cl: --- code/modules/mob/living/carbon/xenomorph/xeno_defines.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm index 5d3ee0b04ba7..7e1f31e66e67 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm @@ -286,7 +286,7 @@ var/bonus_larva_spawn_chance = 1 var/hijack_burrowed_surge = FALSE //at hijack, start spawning lots of burrowed /// how many burrowed is going to spawn during larva surge - var/hijack_burrowed_left = 0 + var/hijack_burrowed_left = 0 var/ignore_slots = FALSE var/dynamic_evolution = TRUE @@ -1006,7 +1006,10 @@ /datum/hive_status/proc/can_spawn_as_hugger(mob/dead/observer/user) if(!GLOB.hive_datum || ! GLOB.hive_datum[hivenumber]) - return + return FALSE + if(jobban_isbanned(user, JOB_XENOMORPH)) // User is jobbanned + to_chat(user, SPAN_WARNING("You are banned from playing aliens and cannot spawn as a xenomorph.")) + return FALSE if(world.time < hugger_timelock) to_chat(user, SPAN_WARNING("The hive cannot support facehuggers yet...")) return FALSE From 374014d9523d2ca615f2e114af184e668e7a4db7 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 30 Jun 2023 07:46:43 +0100 Subject: [PATCH 03/17] Automatic changelog for PR #3766 [ci skip] --- html/changelogs/AutoChangeLog-pr-3766.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3766.yml diff --git a/html/changelogs/AutoChangeLog-pr-3766.yml b/html/changelogs/AutoChangeLog-pr-3766.yml new file mode 100644 index 000000000000..6132f005140c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3766.yml @@ -0,0 +1,4 @@ +author: "Drathek" +delete-after: True +changes: + - bugfix: "Fixed missing xeno ban check for playing as a facehugger" \ No newline at end of file From 52eb64e8e0ec9cd3c94a84126f5d4a73f2e98ea3 Mon Sep 17 00:00:00 2001 From: Drathek <76988376+Drulikar@users.noreply.github.com> Date: Thu, 29 Jun 2023 23:39:03 -0700 Subject: [PATCH 04/17] Fixes wordiness about re-entering your body when you're unnested (#3761) # About the pull request This PR is a followup to #3597 that was requested but refused in #3747 to improve the situation where there is too much text in a tgui_alert when ghosting while nested. # Explain why it's good for the game Instead of: ![image](https://github.com/cmss13-devs/cmss13/assets/76988376/aee760ce-ed79-4cac-be06-b2d265bd69c6) It is now: ![image](https://github.com/cmss13-devs/cmss13/assets/76988376/26859630-c185-4c2a-94e2-d275e85a620e) # Testing Photographs and Procedure 1. Get nested 2. Remain in body for the first prompt 3. Ghost # Changelog :cl: Drathek spellcheck: Tweaked message when ghosting while nested /:cl: --- code/modules/mob/dead/observer/observer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index fcb95a6fd783..a22e46ad2911 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -398,7 +398,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/is_nested = (buckled && istype(buckled, /obj/structure/bed/nest)) ? TRUE : FALSE var/obj/structure/bed/nest/nest = FALSE if(is_nested) - text_prompt += "\nSince you're nested, you will be given a chance to reenter your body upon being freed." + text_prompt += "\nSince you're nested, you will get a chance to reenter your body if freed." nest = buckled var/response = tgui_alert(src, text_prompt, "Are you sure you want to ghost?", options) if(response == "Aghost") From a7701d66c7b005389a33694fefc940f946079797 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 30 Jun 2023 08:04:24 +0100 Subject: [PATCH 05/17] Automatic changelog for PR #3761 [ci skip] --- html/changelogs/AutoChangeLog-pr-3761.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3761.yml diff --git a/html/changelogs/AutoChangeLog-pr-3761.yml b/html/changelogs/AutoChangeLog-pr-3761.yml new file mode 100644 index 000000000000..75a499cd7e48 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3761.yml @@ -0,0 +1,4 @@ +author: "Drathek" +delete-after: True +changes: + - spellcheck: "Tweaked message when ghosting while nested" \ No newline at end of file From aa786c62e614bba140b6a7496d61b614d953f734 Mon Sep 17 00:00:00 2001 From: harryob Date: Fri, 30 Jun 2023 07:53:15 +0100 Subject: [PATCH 06/17] remove more references to GAs (#3759) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit removes some remaining floating references to GAs because i literally just control-fd for "gameplay architect" 🤦 no playerfacing changes etc --- .github/CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index c05d84e8122d..339d48c9fe39 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -74,10 +74,10 @@ These are the few directives we have for project maintainers. - Try to get secondary maintainer approval before merging if you are able to. - PRs with empty commits intended to generate a changelog. - Do not merge PRs that contain content from the [banned content list](./CONTRIBUTING.md#banned-content). -- Do not merge PRs that contain balance changes without GA approval. Exceptions include: - - Any PR that has been un-reviewed by a GA for 7 days. +- Do not merge PRs that contain balance changes without Maintainer Manager approval. Exceptions include: + - Any PR that has been un-reviewed by a Maintainer Manager for 7 days. - Do not remove the DNM label that another Maintainer has applied. Exceptions include: - - GAs removing a DNM label placed by a Maintainer for Balance/Design reasons + - Maintainer Managers removing a DNM label placed by a Maintainer for Balance/Design reasons These are not steadfast rules as maintainers are expected to use their best judgement when operating. From 21dc6cde59d9dc943f304d5edd7d84a496f7eaba Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Fri, 30 Jun 2023 09:30:40 +0200 Subject: [PATCH 07/17] ARES will now announce how many Foxtrot marines woke up (#3675) # About the pull request It's neat to be able to see how many Foxtrot marines woke up at a glance. This also means you know *when* they've woken up. # Explain why it's good for the game Means CIC can actually know when, and how many, foxtrot woke up, at a glance. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: ARES will announce how many Foxtrot marines that woke up. /:cl: --------- Co-authored-by: harryob --- code/datums/emergency_calls/cryo_marines.dm | 6 ++++-- code/datums/emergency_calls/cryo_marines_heavy.dm | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/datums/emergency_calls/cryo_marines.dm b/code/datums/emergency_calls/cryo_marines.dm index e5992a62ecdd..9bec8b3593dd 100644 --- a/code/datums/emergency_calls/cryo_marines.dm +++ b/code/datums/emergency_calls/cryo_marines.dm @@ -13,10 +13,12 @@ shuttle_id = "" var/leaders = 0 -/datum/emergency_call/cryo_squad/spawn_candidates(announce, override_spawn_loc) +/datum/emergency_call/cryo_squad/spawn_candidates(announce, override_spawn_loc, announce_dispatch_message) var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo] leaders = cryo_squad.num_leaders - return ..() + . = ..() + if(length(members)) + shipwide_ai_announcement("Successfully deployed [length(members)] Foxtrot marines.") /datum/emergency_call/cryo_squad/create_member(datum/mind/M, turf/override_spawn_loc) set waitfor = 0 diff --git a/code/datums/emergency_calls/cryo_marines_heavy.dm b/code/datums/emergency_calls/cryo_marines_heavy.dm index 6a3636568856..70ce52443573 100644 --- a/code/datums/emergency_calls/cryo_marines_heavy.dm +++ b/code/datums/emergency_calls/cryo_marines_heavy.dm @@ -16,10 +16,12 @@ var/leaders = 0 -/datum/emergency_call/cryo_squad_equipped/spawn_candidates(announce, override_spawn_loc) +/datum/emergency_call/cryo_squad_equipped/spawn_candidates(announce, override_spawn_loc, announce_dispatch_message) var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo] leaders = cryo_squad.num_leaders - return ..() + . = ..() + if(length(members)) + shipwide_ai_announcement("Successfully deployed [length(members)] Foxtrot marines.") /datum/emergency_call/cryo_squad_equipped/create_member(datum/mind/M, turf/override_spawn_loc) set waitfor = 0 From ec1d1d57849730172967a1b2baeb99a5247a661d Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 30 Jun 2023 08:43:00 +0100 Subject: [PATCH 08/17] Automatic changelog for PR #3675 [ci skip] --- html/changelogs/AutoChangeLog-pr-3675.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3675.yml diff --git a/html/changelogs/AutoChangeLog-pr-3675.yml b/html/changelogs/AutoChangeLog-pr-3675.yml new file mode 100644 index 000000000000..744b83d85b08 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3675.yml @@ -0,0 +1,4 @@ +author: "TheGamerdk" +delete-after: True +changes: + - rscadd: "ARES will announce how many Foxtrot marines that woke up." \ No newline at end of file From 0f36175cbcdab1be582ad40340291f9d8d650b85 Mon Sep 17 00:00:00 2001 From: ihatethisengine <115417687+ihatethisengine@users.noreply.github.com> Date: Fri, 30 Jun 2023 10:48:14 +0300 Subject: [PATCH 09/17] Dropship Sentry Camera (#3737) # About the pull request Adds cameras to dropship deployable sentries. Only work when deployed. # Explain why it's good for the game A bit more awareness for the most boring role in the game won't hurt. Also, it was a feature a few years ago, I still don't understand why it was removed, maybe just got dropped during refactoring or something. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: ihatethisengine add: Added cameras to dropship deployable sentries. /:cl: --- code/modules/cm_marines/dropship_equipment.dm | 13 ++++++++++++- code/modules/defenses/sentry.dm | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/code/modules/cm_marines/dropship_equipment.dm b/code/modules/cm_marines/dropship_equipment.dm index 42bbd7f746e7..89d33134bdb8 100644 --- a/code/modules/cm_marines/dropship_equipment.dm +++ b/code/modules/cm_marines/dropship_equipment.dm @@ -256,6 +256,13 @@ deployed_turret.start_processing() deployed_turret.set_range() + deployed_turret.linked_cam = new(deployed_turret.loc, "[capitalize_first_letters(ship_base.name)] [capitalize_first_letters(name)]") + if (linked_shuttle.id == DROPSHIP_ALAMO) + deployed_turret.linked_cam.network = list(CAMERA_NET_ALAMO) + else if (linked_shuttle.id == DROPSHIP_NORMANDY) + deployed_turret.linked_cam.network = list(CAMERA_NET_NORMANDY) + + /obj/structure/dropship_equipment/sentry_holder/proc/undeploy_sentry() if(!deployed_turret) return @@ -267,8 +274,12 @@ deployed_turret.stop_processing() deployed_turret.unset_range() icon_state = "sentry_system_installed" + QDEL_NULL(deployed_turret.linked_cam) - +/obj/structure/dropship_equipment/sentry_holder/Destroy() + if(deployed_turret) + QDEL_NULL(deployed_turret.linked_cam) + . = ..() /// Holder for the dropship mannable machinegun system diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 3d485f3abda7..946c347efaa0 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -539,11 +539,13 @@ choice_categories = list() selected_categories = list() var/obj/structure/dropship_equipment/sentry_holder/deployment_system + var/obj/structure/machinery/camera/cas/linked_cam /obj/structure/machinery/defenses/sentry/premade/dropship/Destroy() if(deployment_system) deployment_system.deployed_turret = null deployment_system = null + QDEL_NULL(linked_cam) . = ..() #define SENTRY_SNIPER_RANGE 10 From 6a457d9475b83fc2dd0796f1a47a9f7e5cebd4f4 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 30 Jun 2023 08:57:07 +0100 Subject: [PATCH 10/17] Automatic changelog for PR #3737 [ci skip] --- html/changelogs/AutoChangeLog-pr-3737.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3737.yml diff --git a/html/changelogs/AutoChangeLog-pr-3737.yml b/html/changelogs/AutoChangeLog-pr-3737.yml new file mode 100644 index 000000000000..770af461be67 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3737.yml @@ -0,0 +1,4 @@ +author: "ihatethisengine" +delete-after: True +changes: + - rscadd: "Added cameras to dropship deployable sentries." \ No newline at end of file From 4ad91f21deef23addf01b55a7a0851d55cffc7f2 Mon Sep 17 00:00:00 2001 From: harryob Date: Fri, 30 Jun 2023 17:59:50 +0100 Subject: [PATCH 11/17] you can't implant yourself with a motion detector anymore (#3767) this was covered by a rule clarification for ages but im trying to get rid of as many stupid niche rule clarifications as possible :cl: add: you can no longer implant yourself with a motion detector /:cl: --- code/__DEFINES/traits.dm | 3 +++ code/game/objects/items/devices/motion_detector.dm | 3 ++- code/modules/surgery/implant.dm | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index e5441090d60c..dd700ccde996 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -211,6 +211,9 @@ //ie. naming a regulation tape "example" will become regulation tape (example) #define TRAIT_ITEM_RENAME_SPECIAL "t_item_rename_special" +// This item can't be implanted into someone, regardless of the size of the item. +#define TRAIT_ITEM_NOT_IMPLANTABLE "t_item_not_implantable" + //-- structure traits -- // TABLE TRAITS /// If the table is being flipped, prevent any changes that will mess with adjacency handling diff --git a/code/game/objects/items/devices/motion_detector.dm b/code/game/objects/items/devices/motion_detector.dm index 01858ed486d0..ade74531bc91 100644 --- a/code/game/objects/items/devices/motion_detector.dm +++ b/code/game/objects/items/devices/motion_detector.dm @@ -22,6 +22,7 @@ item_state = "motion_detector" flags_atom = FPRINT| CONDUCT flags_equip_slot = SLOT_WAIST + inherent_traits = list(TRAIT_ITEM_NOT_IMPLANTABLE) var/list/blip_pool = list() var/detector_range = 14 var/detector_mode = MOTION_DETECTOR_LONG @@ -309,7 +310,7 @@ name = "hacked motion detector" desc = "A device that usually picks up non-USCM signals, but this one's been hacked to detect all non-freelancer movement instead. Fight fire with fire!" iff_signal = FACTION_MERCENARY - + /obj/item/device/motiondetector/hacked/pmc name = "corporate motion detector" desc = "A device that usually picks up non-USCM signals, but this one's been reprogrammed to detect all non-PMC movement instead. Very corporate." diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm index cebd4b44da7d..8f2e6156831a 100644 --- a/code/modules/surgery/implant.dm +++ b/code/modules/surgery/implant.dm @@ -106,6 +106,8 @@ if(.) if(is_surgery_tool(tool)) //Make sure you still have all your tools after a surgery. return FALSE + if(HAS_TRAIT(tool, TRAIT_ITEM_NOT_IMPLANTABLE)) + return FALSE if(tool.w_class > get_max_wclass(surgery)) to_chat(user, SPAN_WARNING("[tool] is too big to implant into [surgery.target]'s [surgery.affected_limb.cavity]!")) return FALSE From ed901413b0c5a9358bca2f6218f2b080e2eecd48 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 30 Jun 2023 18:07:57 +0100 Subject: [PATCH 12/17] Automatic changelog for PR #3767 [ci skip] --- html/changelogs/AutoChangeLog-pr-3767.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3767.yml diff --git a/html/changelogs/AutoChangeLog-pr-3767.yml b/html/changelogs/AutoChangeLog-pr-3767.yml new file mode 100644 index 000000000000..468759acbbad --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3767.yml @@ -0,0 +1,4 @@ +author: "harryob" +delete-after: True +changes: + - rscadd: "you can no longer implant yourself with a motion detector" \ No newline at end of file From 96b578e761329e7b11aa8acfd884a087ebef8a49 Mon Sep 17 00:00:00 2001 From: Ben <91219575+Ben10083@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:42:40 -0400 Subject: [PATCH 13/17] Prevents spamming open and close tarps (#3768) # About the pull request Fixes #3734 Deals with exploit that allows the user to spam open and close a tarp, making it hard for the Xeno to hit the marine, this makes it so when tarp is opened, 3 seconds must pass before it can be closed again. If 3 seconds isn't enough, delay can be lengthened. # Explain why it's good for the game I was tasked by the Xeno Agents to buff Xeno win rate by any means necessary, including fixing exploits. # Testing Photographs and Procedure
Screenshots & Videos https://github.com/cmss13-devs/cmss13/assets/91219575/999e0f72-a802-41d3-b1d8-5a4569d84e5a Before ![image](https://github.com/cmss13-devs/cmss13/assets/91219575/7eb71b25-4077-4042-bab6-760f0c429190) After
# Changelog :cl: fix: fixes exploit relating to cloaking tarps by adding a delay before tarp can be closed again. /:cl: --------- Co-authored-by: harryob --- .../objects/structures/crates_lockers/closets.dm | 2 +- code/modules/cm_marines/equipment/gear.dm | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 05355feeb154..e6c215d0208f 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -149,7 +149,7 @@ /obj/structure/closet/proc/toggle(mob/living/user) user.next_move = world.time + 5 - if(!(src.opened ? src.close() : src.open())) + if(!(src.opened ? src.close(user) : src.open())) to_chat(user, SPAN_NOTICE("It won't budge!")) return diff --git a/code/modules/cm_marines/equipment/gear.dm b/code/modules/cm_marines/equipment/gear.dm index 98e7dbcf49df..ff6c715b520b 100644 --- a/code/modules/cm_marines/equipment/gear.dm +++ b/code/modules/cm_marines/equipment/gear.dm @@ -58,6 +58,8 @@ var/is_animating = FALSE var/first_open = TRUE exit_stun = 0 + /// used to implement a delay before tarp can be entered again after opened (anti-exploit) + COOLDOWN_DECLARE(toggle_delay) /obj/structure/closet/bodybag/tarp/snow icon_state = "snowtarp_closed" @@ -91,9 +93,9 @@ exit_stun = 1 can_store_dead = TRUE -/obj/structure/closet/bodybag/tarp/reactive/scout/close() +/obj/structure/closet/bodybag/tarp/reactive/scout/close(mob/user) if(!skillcheck(usr, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && usr.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SCOUT) - to_chat(usr, SPAN_WARNING("You don't seem to know how to use [src]...")) + to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]...")) return . = ..() @@ -137,10 +139,14 @@ return /obj/structure/closet/bodybag/tarp/open() + COOLDOWN_START(src, toggle_delay, 3 SECONDS) //3 seconds must pass before tarp can be closed . = ..() handle_cloaking() -/obj/structure/closet/bodybag/tarp/close() +/obj/structure/closet/bodybag/tarp/close(mob/user) + if(!COOLDOWN_FINISHED(src, toggle_delay)) + to_chat(user, SPAN_WARNING("It is too soon to close [src]!")) + return FALSE . = ..() handle_cloaking() From f77fe82c83c538ac86ca1dbb43f370bee104417a Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 30 Jun 2023 21:53:17 +0100 Subject: [PATCH 14/17] Automatic changelog for PR #3768 [ci skip] --- html/changelogs/AutoChangeLog-pr-3768.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3768.yml diff --git a/html/changelogs/AutoChangeLog-pr-3768.yml b/html/changelogs/AutoChangeLog-pr-3768.yml new file mode 100644 index 000000000000..fc5830aa66ed --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3768.yml @@ -0,0 +1,4 @@ +author: "Ben10083" +delete-after: True +changes: + - bugfix: "fixes exploit relating to cloaking tarps by adding a delay before tarp can be closed again." \ No newline at end of file From 3795db8835e9795ccede3f58bf9bcf955be21e7f Mon Sep 17 00:00:00 2001 From: harryob Date: Fri, 30 Jun 2023 22:34:48 +0100 Subject: [PATCH 15/17] fixes the generate_documentation workflow --- .github/workflows/generate_documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index 6075e3029acd..59e6d1144c68 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -21,7 +21,7 @@ jobs: run: | ~/dmdoc touch dmdoc/.nojekyll - echo codedocs.tgstation13.org > dmdoc/CNAME + echo docs.cm-ss13.com > dmdoc/CNAME - name: Deploy uses: JamesIves/github-pages-deploy-action@3.7.1 with: From db2384b624fcaef906934fe9a0736fa46b57a37c Mon Sep 17 00:00:00 2001 From: Ben <91219575+Ben10083@users.noreply.github.com> Date: Fri, 30 Jun 2023 18:41:20 -0400 Subject: [PATCH 16/17] People with lisp now lisp on radio (#3760) # About the pull request The lisp trait did not affect a flag for speech, making it so lisping does not occur over radio, this should make it so what they say is transmitted properly. # Explain why it's good for the game Fixes an oversight and allows for lisp speech to be handled by the handle_speech_problems method. Also realism or something # Testing Photographs and Procedure
Screenshots & Videos ![image](https://github.com/cmss13-devs/cmss13/assets/91219575/7526b49e-ff74-4979-8024-71768501e43a) Poor marine trying to alert command
# Changelog :cl: fix: lisps now occur over radio as well refactor: Relevant variables relating to speech problems now use true and false instead of 1 and 0 /:cl: --- code/modules/character_traits/biology_traits.dm | 2 ++ .../mob/living/carbon/human/human_damage.dm | 4 ++-- .../mob/living/carbon/human/human_defines.dm | 2 +- .../carbon/human/life/handle_disabilities.dm | 4 ++-- .../human/life/handle_regular_status_updates.dm | 4 ++-- .../living/carbon/human/life/life_helpers.dm | 10 +++++----- code/modules/mob/living/carbon/human/say.dm | 17 +++++++++-------- 7 files changed, 23 insertions(+), 20 deletions(-) diff --git a/code/modules/character_traits/biology_traits.dm b/code/modules/character_traits/biology_traits.dm index e7625c391b75..87fb0b70ec36 100644 --- a/code/modules/character_traits/biology_traits.dm +++ b/code/modules/character_traits/biology_traits.dm @@ -59,11 +59,13 @@ return ADD_TRAIT(target, TRAIT_LISPING, TRAIT_SOURCE_QUIRK) + target.speech_problem_flag = TRUE ..() /datum/character_trait/biology/lisp/unapply_trait(mob/living/carbon/human/target) REMOVE_TRAIT(target, TRAIT_LISPING, TRAIT_SOURCE_QUIRK) + target.speech_problem_flag = FALSE ..() /datum/character_trait/biology/bad_leg diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 00659389decb..5c685cc3acac 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -287,7 +287,7 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t apply_damage(burn, BURN, picked, sharp, edge) UpdateDamageIcon() updatehealth() - speech_problem_flag = 1 + speech_problem_flag = TRUE //Heal MANY limbs, in random order @@ -308,7 +308,7 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t parts -= picked updatehealth() - speech_problem_flag = 1 + speech_problem_flag = TRUE if(update) UpdateDamageIcon() // damage MANY limbs, in random order diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 7f9801145a8e..989ee52fa63c 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -64,7 +64,7 @@ var/voice - var/speech_problem_flag = 0 + var/speech_problem_flag = FALSE var/special_voice = "" // For changing our voice. Used by a symptom. diff --git a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm index 46b1f3e15515..9ab234212108 100644 --- a/code/modules/mob/living/carbon/human/life/handle_disabilities.dm +++ b/code/modules/mob/living/carbon/human/life/handle_disabilities.dm @@ -17,7 +17,7 @@ return if(disabilities & TOURETTES) - speech_problem_flag = 1 + speech_problem_flag = TRUE if((prob(10) && knocked_out <= 1)) apply_effect(10, STUN) spawn() @@ -36,7 +36,7 @@ return if(disabilities & NERVOUS) - speech_problem_flag = 1 + speech_problem_flag = TRUE if(prob(10)) stuttering = max(10, stuttering) return diff --git a/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm b/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm index 4a6596104d4a..5c951a8112bf 100644 --- a/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm +++ b/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm @@ -59,7 +59,7 @@ if(regular_update && halloss > 0) apply_damage(-3, HALLOSS) else if(sleeping) - speech_problem_flag = 1 + speech_problem_flag = TRUE if(regular_update) handle_dreams() apply_damage(-3, HALLOSS) @@ -122,7 +122,7 @@ handle_statuses() if(paralyzed) - speech_problem_flag = 1 + speech_problem_flag = TRUE apply_effect(1, WEAKEN) silent = 1 blinded = TRUE diff --git a/code/modules/mob/living/carbon/human/life/life_helpers.dm b/code/modules/mob/living/carbon/human/life/life_helpers.dm index 0339bf6ec742..fedeaf9fd48c 100644 --- a/code/modules/mob/living/carbon/human/life/life_helpers.dm +++ b/code/modules/mob/living/carbon/human/life/life_helpers.dm @@ -216,18 +216,18 @@ /mob/living/carbon/human/handle_silent() if(..()) - speech_problem_flag = 1 + speech_problem_flag = TRUE return silent /mob/living/carbon/human/handle_slurring() if(..()) - speech_problem_flag = 1 + speech_problem_flag = TRUE return slurring /mob/living/carbon/human/handle_stunned() if(stunned) adjust_effect(-species.stun_reduction, STUN, EFFECT_FLAG_LIFE) - speech_problem_flag = 1 + speech_problem_flag = TRUE return stunned /mob/living/carbon/human/handle_dazed() @@ -237,7 +237,7 @@ var/final_reduction = skill_resistance + 1 adjust_effect(-final_reduction, DAZE, EFFECT_FLAG_LIFE) if(dazed) - speech_problem_flag = 1 + speech_problem_flag = TRUE return dazed /mob/living/carbon/human/handle_knocked_down() @@ -262,7 +262,7 @@ /mob/living/carbon/human/handle_stuttering() if(..()) - speech_problem_flag = 1 + speech_problem_flag = TRUE return stuttering #define HUMAN_TIMER_TO_EFFECT_CONVERSION (0.05) //(1/20) //once per 2 seconds, with effect equal to endurance, which is used later diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 46a44fc16611..4b86c827a069 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -262,20 +262,20 @@ for it but just ignore it. /mob/living/carbon/human/proc/handle_speech_problems(message) var/list/returns[3] var/verb = "says" - var/handled = 0 + var/handled = FALSE if(silent) message = "" - handled = 1 + handled = TRUE if(sdisabilities & DISABILITY_MUTE) message = "" - handled = 1 + handled = TRUE if(wear_mask) if(istype(wear_mask, /obj/item/clothing/mask/horsehead)) var/obj/item/clothing/mask/horsehead/hoers = wear_mask if(hoers.voicechange) message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") verb = pick("whinnies","neighs", "says") - handled = 1 + handled = TRUE var/braindam = getBrainLoss() if(slurring || stuttering || dazed || braindam >= 60) @@ -283,17 +283,17 @@ for it but just ignore it. if(slurring) message = slur(message) verb = pick("stammers","stutters") - handled = 1 + handled = TRUE if(stuttering) message = NewStutter(message) verb = pick("stammers", "stutters") - handled = 1 + handled = TRUE if(dazed) message = DazedText(message) verb = pick("mumbles", "babbles") - handled = 1 + handled = TRUE if(braindam >= 60) - handled = 1 + handled = TRUE if(prob(braindam/4)) message = stutter(message, stuttering) verb = pick("stammers", "stutters") @@ -301,6 +301,7 @@ for it but just ignore it. message = uppertext(message) verb = pick("yells like an idiot","says rather loudly") if(HAS_TRAIT(src, TRAIT_LISPING)) + handled = TRUE var/old_message = message message = lisp_replace(message) if(old_message != message) From 0a68bd3a78c4e9b409490e1e3df089f3b10f0dd3 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 30 Jun 2023 23:51:53 +0100 Subject: [PATCH 17/17] Automatic changelog for PR #3760 [ci skip] --- html/changelogs/AutoChangeLog-pr-3760.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3760.yml diff --git a/html/changelogs/AutoChangeLog-pr-3760.yml b/html/changelogs/AutoChangeLog-pr-3760.yml new file mode 100644 index 000000000000..dfb133be6ba8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3760.yml @@ -0,0 +1,5 @@ +author: "Ben10083" +delete-after: True +changes: + - bugfix: "lisps now occur over radio as well" + - refactor: "Relevant variables relating to speech problems now use true and false instead of 1 and 0" \ No newline at end of file