From a4c6ab0b55d4ed4db65d47fbba5c57f9a42308f3 Mon Sep 17 00:00:00 2001 From: ItsVyzo <46250991+ItsVyzo@users.noreply.github.com> Date: Mon, 15 Jan 2024 15:27:57 -0800 Subject: [PATCH 01/15] m56d nerf - correct branch this time (#5301) # About the pull request Removes burst fire from the m56d # Explain why it's good for the game You can no longer kill Queen in 3 seconds, now it's around 6 seconds # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: balance: m56d loses burst fire /:cl: --- code/modules/cm_marines/smartgun_mount.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/cm_marines/smartgun_mount.dm b/code/modules/cm_marines/smartgun_mount.dm index e307ef8a611b..dbfdf03e0b76 100644 --- a/code/modules/cm_marines/smartgun_mount.dm +++ b/code/modules/cm_marines/smartgun_mount.dm @@ -476,7 +476,6 @@ /// What firemodes this gun has var/static/list/gun_firemodes = list( GUN_FIREMODE_SEMIAUTO, - GUN_FIREMODE_BURSTFIRE, GUN_FIREMODE_AUTOMATIC, ) /// A multiplier for how slow this gun should fire in automatic as opposed to burst. 1 is normal, 1.2 is 20% slower, 0.8 is 20% faster, etc. From 273d008750e4f31b56f742ac89e32e520c8802fb Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 15 Jan 2024 23:36:06 +0000 Subject: [PATCH 02/15] Automatic changelog for PR #5301 [ci skip] --- html/changelogs/AutoChangeLog-pr-5301.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5301.yml diff --git a/html/changelogs/AutoChangeLog-pr-5301.yml b/html/changelogs/AutoChangeLog-pr-5301.yml new file mode 100644 index 000000000000..ac7bcfc2370a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5301.yml @@ -0,0 +1,4 @@ +author: "ItsVyzo" +delete-after: True +changes: + - balance: "m56d loses burst fire" \ No newline at end of file From 1c2be3747ef61e47f3c981b787e740302a4eb3de Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 16 Jan 2024 01:12:45 +0000 Subject: [PATCH 03/15] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5301.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5440.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5443.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5445.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5449.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5451.yml | 4 ---- html/changelogs/archive/2024-01.yml | 14 ++++++++++++++ 7 files changed, 14 insertions(+), 24 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5301.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5440.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5443.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5445.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5449.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5451.yml diff --git a/html/changelogs/AutoChangeLog-pr-5301.yml b/html/changelogs/AutoChangeLog-pr-5301.yml deleted file mode 100644 index ac7bcfc2370a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5301.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ItsVyzo" -delete-after: True -changes: - - balance: "m56d loses burst fire" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5440.yml b/html/changelogs/AutoChangeLog-pr-5440.yml deleted file mode 100644 index f84625d30849..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5440.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fix all hands on deck message not sending to those in cryopods" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5443.yml b/html/changelogs/AutoChangeLog-pr-5443.yml deleted file mode 100644 index 6a66c893b2ae..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5443.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheGamerdk" -delete-after: True -changes: - - bugfix: "Overwatch now works on Whiskey Outpost again, not that you will use it." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5445.yml b/html/changelogs/AutoChangeLog-pr-5445.yml deleted file mode 100644 index 6ad42c94ae06..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5445.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Huffie56" -delete-after: True -changes: - - rscadd: "Add the ability to build multi tile assembly from metal sheets." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5449.yml b/html/changelogs/AutoChangeLog-pr-5449.yml deleted file mode 100644 index 86fbc5f1b0db..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5449.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Zonespace27" -delete-after: True -changes: - - balance: "3 smartgun drums now spawn in the SG's equipment crate. Smartgun drums cannot be purchased from the SG vendor." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5451.yml b/html/changelogs/AutoChangeLog-pr-5451.yml deleted file mode 100644 index ff607b2d8cb6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5451.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SabreML" -delete-after: True -changes: - - bugfix: "Fixed dead marines being able to man and fire the M56D." \ No newline at end of file diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml index b16cf15ac751..41cc7306feaa 100644 --- a/html/changelogs/archive/2024-01.yml +++ b/html/changelogs/archive/2024-01.yml @@ -165,3 +165,17 @@ - bugfix: removed a light fixture being doubled on trijent - maptweak: moved some trijent lights in marshals off windows - maptweak: Alamayer PermaBrig Chairs face the right way +2024-01-16: + Drathek: + - bugfix: Fix all hands on deck message not sending to those in cryopods + Huffie56: + - rscadd: Add the ability to build multi tile assembly from metal sheets. + ItsVyzo: + - balance: m56d loses burst fire + SabreML: + - bugfix: Fixed dead marines being able to man and fire the M56D. + TheGamerdk: + - bugfix: Overwatch now works on Whiskey Outpost again, not that you will use it. + Zonespace27: + - balance: 3 smartgun drums now spawn in the SG's equipment crate. Smartgun drums + cannot be purchased from the SG vendor. From 31b7c8d99dbba99dc6e819c67f8475830a81f7df Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Tue, 16 Jan 2024 06:50:50 +0000 Subject: [PATCH 04/15] Automatic TGS DMAPI Update (#5467) This pull request updates the TGS DMAPI to the latest version. Please note any breaking or unimplemented changes before merging. Co-authored-by: tgstation-server --- code/__DEFINES/tgs.dm | 5 +++- code/modules/tgs/v5/api.dm | 54 ++++++++++++++++++++++---------------- 2 files changed, 36 insertions(+), 23 deletions(-) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index c561a64ebf58..fdfec5e8ca08 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "7.0.1" +#define TGS_DMAPI_VERSION "7.0.2" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -426,6 +426,7 @@ /** * Send a message to connected chats. This function may sleep! + * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game. * * message - The [/datum/tgs_message_content] to send. * admin_only: If [TRUE], message will be sent to admin connected chats. Vice-versa applies. @@ -435,6 +436,7 @@ /** * Send a private message to a specific user. This function may sleep! + * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game. * * message - The [/datum/tgs_message_content] to send. * user: The [/datum/tgs_chat_user] to PM. @@ -444,6 +446,7 @@ /** * Send a message to connected chats that are flagged as game-related in TGS. This function may sleep! + * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game. * * message - The [/datum/tgs_message_content] to send. * channels - Optional list of [/datum/tgs_chat_channel]s to restrict the message to. diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 25d49b3e3bdb..a5c064a8eaf1 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -8,8 +8,12 @@ var/reboot_mode = TGS_REBOOT_MODE_NORMAL + /// List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call var/list/intercepted_message_queue + /// List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call + var/list/offline_message_queue + var/list/custom_commands var/list/test_merges @@ -194,17 +198,7 @@ var/datum/tgs_chat_channel/channel = I ids += channel.id - message2 = UpgradeDeprecatedChatMessage(message2) - - if (!length(channels)) - return - - var/list/data = message2._interop_serialize() - data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = ids - if(intercepted_message_queue) - intercepted_message_queue += list(data) - else - Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) + SendChatMessageRaw(message2, ids) /datum/tgs_api/v5/ChatTargetedBroadcast(datum/tgs_message_content/message2, admin_only) var/list/channels = list() @@ -213,26 +207,42 @@ if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only))) channels += channel.id + SendChatMessageRaw(message2, channels) + +/datum/tgs_api/v5/ChatPrivateMessage(datum/tgs_message_content/message2, datum/tgs_chat_user/user) + SendChatMessageRaw(message2, list(user.channel.id)) + +/datum/tgs_api/v5/proc/SendChatMessageRaw(datum/tgs_message_content/message2, list/channel_ids) message2 = UpgradeDeprecatedChatMessage(message2) - if (!length(channels)) + if (!length(channel_ids)) return var/list/data = message2._interop_serialize() - data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = channels + data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = channel_ids if(intercepted_message_queue) intercepted_message_queue += list(data) - else - Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) + return -/datum/tgs_api/v5/ChatPrivateMessage(datum/tgs_message_content/message2, datum/tgs_chat_user/user) - message2 = UpgradeDeprecatedChatMessage(message2) - var/list/data = message2._interop_serialize() - data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = list(user.channel.id) - if(intercepted_message_queue) - intercepted_message_queue += list(data) + if(offline_message_queue) + offline_message_queue += list(data) + return + + if(detached) + offline_message_queue = list(data) + + WaitForReattach(FALSE) + + data = offline_message_queue + offline_message_queue = null + + for(var/queued_message in data) + SendChatDataRaw(queued_message) else - Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) + SendChatDataRaw(data) + +/datum/tgs_api/v5/proc/SendChatDataRaw(list/data) + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data)) /datum/tgs_api/v5/ChatChannelInfo() RequireInitialBridgeResponse() From b94072e3a7a4c728af64c7f982fa493f4c60a42e Mon Sep 17 00:00:00 2001 From: SabreML <57483089+SabreML@users.noreply.github.com> Date: Tue, 16 Jan 2024 12:14:36 +0000 Subject: [PATCH 05/15] Fixes larvae sometimes spawning in space (#5455) # About the pull request Fixes larvae sometimes spawning in space on Fiorina. (And any other space-based maps) I think this is being caused by the `do_buried_larva_spawn()` proc looking for any `/turf/open` subtypes in range, but not performing any checks on them. # Explain why it's good for the game Occasionally at roundstart on Fiorina a larva will spawn outside of the station's walls in space, and need an admin to teleport them back inside. Although it *is* pretty funny when it happens, it's probably best to fix it. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: fix: Fixed larvae sometimes spawning in space on Fiorina. /:cl: --- code/modules/mob/living/carbon/xenomorph/hive_status.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status.dm b/code/modules/mob/living/carbon/xenomorph/hive_status.dm index ab812cba5c97..63aea4007482 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status.dm @@ -779,7 +779,12 @@ spawning_area = pick(totalXenos) // FUCK IT JUST GO ANYWHERE var/list/turf_list for(var/turf/open/open_turf in orange(3, spawning_area)) + if(istype(open_turf, /turf/open/space)) + continue LAZYADD(turf_list, open_turf) + // just on the off-chance + if(!LAZYLEN(turf_list)) + return FALSE var/turf/open/spawning_turf = pick(turf_list) var/mob/living/carbon/xenomorph/larva/new_xeno = spawn_hivenumber_larva(spawning_turf, hivenumber) From 5d0a1f0e366ff9bdcc5ba610d3a751443811a4dd Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Tue, 16 Jan 2024 12:25:29 +0000 Subject: [PATCH 06/15] Automatic changelog for PR #5455 [ci skip] --- html/changelogs/AutoChangeLog-pr-5455.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5455.yml diff --git a/html/changelogs/AutoChangeLog-pr-5455.yml b/html/changelogs/AutoChangeLog-pr-5455.yml new file mode 100644 index 000000000000..4e3b9db735b2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5455.yml @@ -0,0 +1,4 @@ +author: "SabreML" +delete-after: True +changes: + - bugfix: "Fixed larvae sometimes spawning in space on Fiorina." \ No newline at end of file From 42a21e197c3a2774443861503fac21bcb60d5800 Mon Sep 17 00:00:00 2001 From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com> Date: Wed, 17 Jan 2024 00:45:44 +0100 Subject: [PATCH 07/15] Makes it possible to complete the power intel objective on Kutjevo. (#5444) # About the pull request Adds a second SMES. (I hate mapping) # Explain why it's good for the game This is a pretty big amount of intel points you can't get (5 is a lot) # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: fix: The Kutjevo Refinery has been granted an additional SMES /:cl: --- maps/map_files/Kutjevo/Kutjevo.dmm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm index d178ca9faddf..f93c14bee1cf 100644 --- a/maps/map_files/Kutjevo/Kutjevo.dmm +++ b/maps/map_files/Kutjevo/Kutjevo.dmm @@ -8549,6 +8549,12 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_north) +"lBu" = ( +/obj/structure/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/kutjevo/multi_tiles, +/area/kutjevo/interior/power) "lBP" = ( /obj/structure/window/framed/kutjevo/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -25968,7 +25974,7 @@ uGd fkP vin pBV -hQj +lBu uBz cvm hQj @@ -26135,7 +26141,7 @@ eyU dyU pyp pyp -hQj +sNp pyp xjY xjY From 0d246e0d5347bda7b045465d0a6efe63a1edc3b4 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Tue, 16 Jan 2024 23:53:44 +0000 Subject: [PATCH 08/15] Automatic changelog for PR #5444 [ci skip] --- html/changelogs/AutoChangeLog-pr-5444.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5444.yml diff --git a/html/changelogs/AutoChangeLog-pr-5444.yml b/html/changelogs/AutoChangeLog-pr-5444.yml new file mode 100644 index 000000000000..67dcb0778d20 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5444.yml @@ -0,0 +1,4 @@ +author: "TheGamerdk" +delete-after: True +changes: + - bugfix: "The Kutjevo Refinery has been granted an additional SMES" \ No newline at end of file From 57241e88f493dc4a6fb199751b90cfb07ed99e26 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 17 Jan 2024 01:13:39 +0000 Subject: [PATCH 09/15] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5444.yml | 4 ---- html/changelogs/AutoChangeLog-pr-5455.yml | 4 ---- html/changelogs/archive/2024-01.yml | 5 +++++ 3 files changed, 5 insertions(+), 8 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5444.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-5455.yml diff --git a/html/changelogs/AutoChangeLog-pr-5444.yml b/html/changelogs/AutoChangeLog-pr-5444.yml deleted file mode 100644 index 67dcb0778d20..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5444.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheGamerdk" -delete-after: True -changes: - - bugfix: "The Kutjevo Refinery has been granted an additional SMES" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5455.yml b/html/changelogs/AutoChangeLog-pr-5455.yml deleted file mode 100644 index 4e3b9db735b2..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5455.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SabreML" -delete-after: True -changes: - - bugfix: "Fixed larvae sometimes spawning in space on Fiorina." \ No newline at end of file diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml index 41cc7306feaa..86f76e98e37f 100644 --- a/html/changelogs/archive/2024-01.yml +++ b/html/changelogs/archive/2024-01.yml @@ -179,3 +179,8 @@ Zonespace27: - balance: 3 smartgun drums now spawn in the SG's equipment crate. Smartgun drums cannot be purchased from the SG vendor. +2024-01-17: + SabreML: + - bugfix: Fixed larvae sometimes spawning in space on Fiorina. + TheGamerdk: + - bugfix: The Kutjevo Refinery has been granted an additional SMES From 07822bb0512343aceca4fc975287f6fefc77b586 Mon Sep 17 00:00:00 2001 From: SabreML <57483089+SabreML@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:12:28 +0000 Subject: [PATCH 10/15] Defender crest balloon alert (plus consistent centring) (#5473) # About the pull request Adds balloon alerts to the Defender's 'Toggle Crest Defense' ability. Also a tiny refactor to make balloon alerts always be centred above the source atom's sprite, the same way runechat/langchat does it. (I can split this part off into a separate PR if necessary.) # Explain why it's good for the game There *is* already a sprite change when toggling the crest, but it can sometimes be difficult to notice when you're not facing to the side. # Testing Photographs and Procedure
Screenshots & Videos ## Before: https://github.com/cmss13-devs/cmss13/assets/57483089/b1d80195-06b9-4c63-9cac-166214142396 https://github.com/cmss13-devs/cmss13/assets/57483089/7a868080-0608-4499-948f-9c5b91ff28f4 *(Obviously the defender text wasn't there before this PR, but just for demonstration purposes.)* ## After: https://github.com/cmss13-devs/cmss13/assets/57483089/8700f8e9-3b23-4c83-b2d7-eb2355d01156 https://github.com/cmss13-devs/cmss13/assets/57483089/f4bf8678-81e1-4abd-adce-02833cbb5a6a
# Changelog :cl: add: Added a 'balloon alert' when toggling Crest Defense as a Defender. code: Made balloon alerts centre themselves on xeno sprites. /:cl: --- code/datums/balloon_alerts/balloon_alerts.dm | 7 +------ code/datums/langchat/langchat.dm | 18 +++++++++--------- .../abilities/defender/defender_powers.dm | 5 ++++- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/code/datums/balloon_alerts/balloon_alerts.dm b/code/datums/balloon_alerts/balloon_alerts.dm index 8ef770fa9d7f..59f826fbe7d2 100644 --- a/code/datums/balloon_alerts/balloon_alerts.dm +++ b/code/datums/balloon_alerts/balloon_alerts.dm @@ -37,20 +37,15 @@ if (isnull(viewer_client)) return - var/bound_width = world.icon_size - if (ismovable(src)) - var/atom/movable/movable_source = src - bound_width = movable_source.bound_width - var/image/balloon_alert = image(loc = get_atom_on_turf(src), layer = ABOVE_MOB_LAYER) balloon_alert.plane = RUNECHAT_PLANE balloon_alert.alpha = 0 balloon_alert.color = text_color balloon_alert.appearance_flags = NO_CLIENT_COLOR|KEEP_APART|RESET_COLOR|RESET_TRANSFORM|RESET_ALPHA balloon_alert.maptext = MAPTEXT("[text]") - balloon_alert.maptext_x = (BALLOON_TEXT_WIDTH - bound_width) * -0.5 balloon_alert.maptext_height = WXH_TO_HEIGHT(viewer_client?.MeasureText(text, null, BALLOON_TEXT_WIDTH)) balloon_alert.maptext_width = BALLOON_TEXT_WIDTH + balloon_alert.maptext_x = get_maxptext_x_offset(balloon_alert) if(appearance_flags & PIXEL_SCALE) balloon_alert.appearance_flags |= PIXEL_SCALE //"[text]" diff --git a/code/datums/langchat/langchat.dm b/code/datums/langchat/langchat.dm index 83b9be0ac053..b82b03b51774 100644 --- a/code/datums/langchat/langchat.dm +++ b/code/datums/langchat/langchat.dm @@ -47,12 +47,12 @@ M.client.images -= langchat_image langchat_listeners = null -/atom/proc/langchat_set_x_offset() - langchat_image.maptext_x = world.icon_size / 2 - langchat_image.maptext_width / 2 -/atom/movable/langchat_set_x_offset() - langchat_image.maptext_x = bound_width / 2 - langchat_image.maptext_width / 2 -/mob/langchat_set_x_offset() - langchat_image.maptext_x = icon_size / 2 - langchat_image.maptext_width / 2 +/atom/proc/get_maxptext_x_offset(image/maptext_image) + return (world.icon_size / 2) - (maptext_image.maptext_width / 2) +/atom/movable/get_maxptext_x_offset(image/maptext_image) + return (bound_width / 2) - (maptext_image.maptext_width / 2) +/mob/get_maxptext_x_offset(image/maptext_image) + return (icon_size / 2) - (maptext_image.maptext_width / 2) ///Creates the image if one does not exist, resets settings that are modified by speech procs. /atom/proc/langchat_make_image(override_color = null) @@ -64,7 +64,7 @@ langchat_image.maptext_y = langchat_height langchat_image.maptext_height = 64 langchat_image.maptext_y -= LANGCHAT_MESSAGE_POP_Y_SINK - langchat_set_x_offset() + langchat_image.maptext_x = get_maxptext_x_offset(langchat_image) langchat_image.pixel_y = 0 langchat_image.alpha = 0 @@ -109,7 +109,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH - langchat_set_x_offset() + langchat_image.maptext_x = get_maxptext_x_offset(langchat_image) langchat_listeners = listeners for(var/mob/M in langchat_listeners) @@ -156,7 +156,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH * 2 - langchat_set_x_offset() + langchat_image.maptext_x = get_maxptext_x_offset(langchat_image) langchat_listeners = listeners for(var/mob/M in langchat_listeners) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm index ef084c9b5b59..bd01376c9f9d 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm @@ -17,6 +17,8 @@ if(xeno.crest_defense) to_chat(xeno, SPAN_XENOWARNING("We lower our crest.")) + xeno.balloon_alert(xeno, "crest lowered") + xeno.ability_speed_modifier += speed_debuff xeno.armor_deflection_buff += armor_buff xeno.mob_size = MOB_SIZE_BIG //knockback immune @@ -24,6 +26,8 @@ xeno.update_icons() else to_chat(xeno, SPAN_XENOWARNING("We raise our crest.")) + xeno.balloon_alert(xeno, "crest raised") + xeno.ability_speed_modifier -= speed_debuff xeno.armor_deflection_buff -= armor_buff xeno.mob_size = MOB_SIZE_XENO //no longer knockback immune @@ -313,4 +317,3 @@ /datum/action/xeno_action/onclick/soak/proc/remove_enrage() owner.remove_filter("steelcrest_enraged") - From a8227003ac97730fe476377c570457ae180dc134 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:20:24 +0000 Subject: [PATCH 11/15] Automatic changelog for PR #5473 [ci skip] --- html/changelogs/AutoChangeLog-pr-5473.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5473.yml diff --git a/html/changelogs/AutoChangeLog-pr-5473.yml b/html/changelogs/AutoChangeLog-pr-5473.yml new file mode 100644 index 000000000000..3c87f1c9bbfa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5473.yml @@ -0,0 +1,5 @@ +author: "SabreML" +delete-after: True +changes: + - rscadd: "Added a 'balloon alert' when toggling Crest Defense as a Defender." + - code_imp: "Made balloon alerts centre themselves on xeno sprites." \ No newline at end of file From 70851f83cc9c1e6c9c356380b66969dc7743c61a Mon Sep 17 00:00:00 2001 From: Drathek <76988376+Drulikar@users.noreply.github.com> Date: Wed, 17 Jan 2024 06:14:39 -0800 Subject: [PATCH 12/15] Fix Detach and on_detach parameter oversights (#5470) # About the pull request This PR fixes some confusion with Detatch logic for gun attachments. The base implementation didn't seem to originally have a user variable but all other implementations did. # Explain why it's good for the game Less pitfalls for coders. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: Drathek code: Cleaned up some oversights in attachment Detatch logic /:cl: --- code/modules/projectiles/gun_attachables.dm | 3 ++- code/modules/projectiles/gun_helpers.dm | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm index 0f3fde8f3c9b..e431dbab4dab 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -168,7 +168,8 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/proc/Detach(mob/user, obj/item/weapon/gun/detaching_gub) if(!istype(detaching_gub)) return //Guns only - detaching_gub.on_detach(user) + if(user) + detaching_gub.on_detach(user, src) if(flags_attach_features & ATTACH_ACTIVATION) activate_attachment(detaching_gub, null, TRUE) diff --git a/code/modules/projectiles/gun_helpers.dm b/code/modules/projectiles/gun_helpers.dm index 8e73124a8b92..486e25315eef 100644 --- a/code/modules/projectiles/gun_helpers.dm +++ b/code/modules/projectiles/gun_helpers.dm @@ -395,7 +395,7 @@ DEFINES in setup.dm, referenced here. playsound(user, 'sound/handling/attachment_add.ogg', 15, 1, 4) return TRUE -/obj/item/weapon/gun/proc/on_detach(obj/item/attachable/attachment) +/obj/item/weapon/gun/proc/on_detach(mob/user, obj/item/attachable/attachment) return /obj/item/weapon/gun/proc/update_attachables() //Updates everything. You generally don't need to use this. From d70b6a4ad28b50439fad46ca586c6a89903cd76f Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:33:36 +0000 Subject: [PATCH 13/15] Automatic changelog for PR #5470 [ci skip] --- html/changelogs/AutoChangeLog-pr-5470.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5470.yml diff --git a/html/changelogs/AutoChangeLog-pr-5470.yml b/html/changelogs/AutoChangeLog-pr-5470.yml new file mode 100644 index 000000000000..dbcad168f9a6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5470.yml @@ -0,0 +1,4 @@ +author: "Drathek" +delete-after: True +changes: + - code_imp: "Cleaned up some oversights in attachment Detatch logic" \ No newline at end of file From 07405df76a9cf989f9de514972a2169a9a726d2f Mon Sep 17 00:00:00 2001 From: Birdtalon Date: Wed, 17 Jan 2024 14:15:07 +0000 Subject: [PATCH 14/15] Fixes mobs unable to move after being flung while buckled. (#5464) # About the pull request Buckled mobs didn't have their `TRAIT_IMMOBILIZED` removed properly since we return early from `launch_towards()` if `buckled` https://github.com/cmss13-devs/cmss13/blob/939e283561d2446d5df4b60faba08097eaea1f79/code/modules/mob/living/living.dm#L401-L405 Therefore any callbacks in end_throw_callbacks are never invoked. In the case of xeno throws we rely on end_throw_callbacks to remove our immobilised trait Fixes #5420 # Explain why it's good for the game # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: fix: Fixed buckled mobs unable to move after being thrown by a xeno. /:cl: --- code/modules/mob/living/living.dm | 5 ++++- code/modules/movement/launching/launching.dm | 17 +++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 64c851310823..4a5709ebce6b 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -401,7 +401,10 @@ /mob/living/launch_towards(datum/launch_metadata/LM) if(src) SEND_SIGNAL(src, COMSIG_MOB_MOVE_OR_LOOK, TRUE, dir, dir) - if(!istype(LM) || !LM.target || !src || buckled) + if(!istype(LM) || !LM.target || !src) + return + if(buckled) + LM.invoke_end_throw_callbacks(src) return if(pulling) stop_pulling() //being thrown breaks pulls. diff --git a/code/modules/movement/launching/launching.dm b/code/modules/movement/launching/launching.dm index e3eccf8dd1c2..1c2952599987 100644 --- a/code/modules/movement/launching/launching.dm +++ b/code/modules/movement/launching/launching.dm @@ -54,6 +54,16 @@ matching_procs += collision_callbacks[path] return matching_procs +/// Invoke end_throw_callbacks on this metadata. +/// Takes argument of type /atom/movable +/datum/launch_metadata/proc/invoke_end_throw_callbacks(atom/movable/movable_atom) + if(length(end_throw_callbacks)) + for(var/datum/callback/callback as anything in end_throw_callbacks) + if(istype(callback, /datum/callback/dynamic)) + callback.Invoke(movable_atom) + else + callback.Invoke() + /atom/movable/var/datum/launch_metadata/launch_metadata = null //called when src is thrown into hit_atom @@ -210,12 +220,7 @@ rebounding = FALSE cur_speed = old_speed remove_temp_pass_flags(pass_flags) - if(length(LM.end_throw_callbacks)) - for(var/datum/callback/CB as anything in LM.end_throw_callbacks) - if(istype(CB, /datum/callback/dynamic)) - CB.Invoke(src) - else - CB.Invoke() + LM.invoke_end_throw_callbacks(src) QDEL_NULL(launch_metadata) /atom/movable/proc/throw_random_direction(range, speed = 0, atom/thrower, spin, launch_type = NORMAL_LAUNCH, pass_flags = NO_FLAGS) From cdf25c8796bd7c537caeb86b7a05f8b5a9b3732f Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:47:11 +0000 Subject: [PATCH 15/15] Automatic changelog for PR #5464 [ci skip] --- html/changelogs/AutoChangeLog-pr-5464.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5464.yml diff --git a/html/changelogs/AutoChangeLog-pr-5464.yml b/html/changelogs/AutoChangeLog-pr-5464.yml new file mode 100644 index 000000000000..ec1b149fae9d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5464.yml @@ -0,0 +1,4 @@ +author: "Birdtalon" +delete-after: True +changes: + - bugfix: "Fixed buckled mobs unable to move after being thrown by a xeno." \ No newline at end of file