From 170f3cd8759141ba4ec245975895531c66b37e0d Mon Sep 17 00:00:00 2001 From: QuickLode <63271983+QuickLode@users.noreply.github.com> Date: Wed, 22 Nov 2023 15:49:09 -0800 Subject: [PATCH 01/27] Synthetic internal powercell (#4559) # About the pull request This PR should tackle two things: 1. Synths shouldn't lose blood 2. Synths shouldn't feel woozy (RP) revives #3589 from ghostsheet # Explain why it's good for the game Synthetics should not be feeling woozy. They also shouldn't be going blind from bloodloss. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags. https://cdn.discordapp.com/attachments/490668342357786645/1157856898834497536/image.png?ex=651a21c4&is=6518d044&hm=813abcc8be5fd02367499e24651c97b7f840d8bcbc557364c534f1c0a61f25f5& https://cdn.discordapp.com/attachments/490668342357786645/1157856899132305529/image.png?ex=651a21c4&is=6518d044&hm=d9fb14dcaa5eb9fa8ad1280636a5f8f188a72e0e5045b892fc29192046acd139&
# Changelog :cl: add: Damage to Synthetic's internal causes debuffs, eventual powercell failure.(death) fix: Synthetic's should no longer lose blood. code: moves blood proc to human.dm from blood.dm with above changes. /:cl: --------- Co-authored-by: harryob --- code/modules/mob/living/blood.dm | 78 +----------------- .../mob/living/carbon/human/species/human.dm | 82 +++++++++++++++++++ 2 files changed, 84 insertions(+), 76 deletions(-) diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index ab3ce823c68e..dea179e6ad48 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -2,80 +2,6 @@ BLOOD SYSTEM */ -/mob/living/proc/handle_blood() - return - -// Takes care blood loss and regeneration -/mob/living/carbon/human/handle_blood() - if(NO_BLOOD in species.flags) - return - - if(stat != DEAD && bodytemperature >= 170) //Dead or cryosleep people do not pump the blood. - //Blood regeneration if there is some space - if(blood_volume < max_blood && nutrition >= 1) - blood_volume += 0.1 // regenerate blood VERY slowly - nutrition -= 0.25 - else if(blood_volume > max_blood) - blood_volume -= 0.1 // The reverse in case we've gotten too much blood in our body - if(blood_volume > limit_blood) - blood_volume = limit_blood // This should never happen, but lets make sure - - var/b_volume = blood_volume - - // Damaged heart virtually reduces the blood volume, as the blood isn't - // being pumped properly anymore. - if(species && species.has_organ["heart"]) - var/datum/internal_organ/heart/heart = internal_organs_by_name["heart"] - if(!heart) - b_volume = 0 - else if(chem_effect_flags & CHEM_EFFECT_ORGAN_STASIS) - b_volume *= 1 - else if(heart.damage >= heart.organ_status >= ORGAN_BRUISED) - b_volume *= Clamp(100 - (2 * heart.damage), 30, 100) / 100 - - //Effects of bloodloss - if(b_volume <= BLOOD_VOLUME_SAFE) - /// The blood volume turned into a %, with BLOOD_VOLUME_NORMAL being 100% - var/blood_percentage = b_volume / (BLOOD_VOLUME_NORMAL / 100) - /// How much oxyloss will there be from the next time blood processes - var/additional_oxyloss = (100 - blood_percentage) / 5 - /// The limit of the oxyloss gained, ignoring oxyloss from the switch statement - var/maximum_oxyloss = Clamp((100 - blood_percentage) / 2, oxyloss, 100) - if(oxyloss < maximum_oxyloss) - oxyloss += round(max(additional_oxyloss, 0)) - - switch(b_volume) - if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) - if(prob(1)) - var/word = pick("dizzy","woozy","faint") - to_chat(src, SPAN_DANGER("You feel [word].")) - if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY) - if(eye_blurry < 50) - AdjustEyeBlur(6) - oxyloss += 3 - if(prob(15)) - apply_effect(rand(1,3), PARALYZE) - var/word = pick("dizzy","woozy","faint") - to_chat(src, SPAN_DANGER("You feel very [word].")) - if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD) - if(eye_blurry < 50) - AdjustEyeBlur(6) - oxyloss += 8 - toxloss += 3 - if(prob(15)) - apply_effect(rand(1,3), PARALYZE) - var/word = pick("dizzy","woozy","faint") - to_chat(src, SPAN_DANGER("You feel extremely [word].")) - if(0 to BLOOD_VOLUME_SURVIVE) - death(create_cause_data("blood loss")) - -// Xeno blood regeneration -/mob/living/carbon/xenomorph/handle_blood() - if(stat != DEAD) //Only living xenos regenerate blood - //Blood regeneration if there is some space - if(blood_volume < max_blood) - blood_volume = min(blood_volume + 1, max_blood) - //Makes a blood drop, leaking amt units of blood from the mob /mob/living/carbon/proc/drip(amt) if(!blood_volume) @@ -91,7 +17,7 @@ /mob/living/carbon/human/drip(amt) if(in_stasis) // stasis now stops bloodloss return - if(NO_BLOOD in species.flags) + if((species.flags & NO_BLOOD) && !(species.flags & IS_SYNTHETIC)) return ..() @@ -272,7 +198,7 @@ return "xenoblood" /mob/living/carbon/human/get_blood_id() - if((NO_BLOOD in species.flags)) + if(species.flags & NO_BLOOD) return if(special_blood) return special_blood diff --git a/code/modules/mob/living/carbon/human/species/human.dm b/code/modules/mob/living/carbon/human/species/human.dm index 6a59e97af867..add78365a350 100644 --- a/code/modules/mob/living/carbon/human/species/human.dm +++ b/code/modules/mob/living/carbon/human/species/human.dm @@ -1,3 +1,85 @@ +// handles all blood related problems for humans and synthetics, moved from blood.dm +/mob/living/proc/handle_blood() + return + +// Takes care blood loss and regeneration +/mob/living/carbon/human/handle_blood() + if((species.flags & NO_BLOOD) && !(species.flags & IS_SYNTHETIC)) + return + + if(stat != DEAD && bodytemperature >= 170) //Dead or cryosleep people do not pump the blood. + //Blood regeneration if there is some space + if(blood_volume < max_blood && nutrition >= 1) + blood_volume += 0.1 // regenerate blood VERY slowly + nutrition -= 0.25 + else if(blood_volume > max_blood) + blood_volume -= 0.1 // The reverse in case we've gotten too much blood in our body + if(blood_volume > limit_blood) + blood_volume = limit_blood // This should never happen, but lets make sure + + var/b_volume = blood_volume + + // Damaged heart virtually reduces the blood volume, as the blood isn't + // being pumped properly anymore. + if(species && species.has_organ["heart"]) + var/datum/internal_organ/heart/heart = internal_organs_by_name["heart"] + if(!heart) + b_volume = 0 + else if(chem_effect_flags & CHEM_EFFECT_ORGAN_STASIS) + b_volume *= 1 + else if(heart.damage >= heart.organ_status >= ORGAN_BRUISED) + b_volume *= Clamp(100 - (2 * heart.damage), 30, 100) / 100 + + //Effects of bloodloss + if(b_volume <= BLOOD_VOLUME_SAFE) + /// The blood volume turned into a %, with BLOOD_VOLUME_NORMAL being 100% + var/blood_percentage = b_volume / (BLOOD_VOLUME_NORMAL / 100) + /// How much oxyloss will there be from the next time blood processes + var/additional_oxyloss = (100 - blood_percentage) / 5 + /// The limit of the oxyloss gained, ignoring oxyloss from the switch statement + var/maximum_oxyloss = Clamp((100 - blood_percentage) / 2, oxyloss, 100) + if(oxyloss < maximum_oxyloss) + oxyloss += round(max(additional_oxyloss, 0)) + + switch(b_volume) + if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) + if(species.flags & IS_SYNTHETIC) + if(prob(1)) + to_chat(src, SPAN_DANGER("Subdermal damage detected in critical region. Operational impact minimal. Diagnosis queued for maintenance cycle.")) + else + if(prob(1)) + var/word = pick("dizzy","woozy","faint") + to_chat(src, SPAN_DANGER("You feel [word].")) + if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY) + if(species.flags & IS_SYNTHETIC) + if(prob(3)) + apply_effect(rand(1, 2), WEAKEN) + to_chat(src, SPAN_DANGER("Internal power cell fault detected.\nSeek nearest recharging station.")) + else + if(eye_blurry < 50) + AdjustEyeBlur(6) + oxyloss += 3 + if(prob(15)) + apply_effect(rand(1,3), PARALYZE) + var/word = pick("dizzy","woozy","faint") + to_chat(src, SPAN_DANGER("You feel very [word].")) + if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD) + if(species.flags & IS_SYNTHETIC) + if(prob(5)) + apply_effect(rand(1, 2), PARALYZE) + to_chat(src, SPAN_DANGER("Critical power cell failure detected.\nSeek recharging station immediately.")) + else + if(eye_blurry < 50) + AdjustEyeBlur(6) + oxyloss += 8 + toxloss += 3 + if(prob(15)) + apply_effect(rand(1, 3), PARALYZE) + var/word = pick("dizzy", "woozy", "faint") + to_chat(src, SPAN_DANGER("You feel extremely [word].")) + if(0 to BLOOD_VOLUME_SURVIVE) + death(create_cause_data(species.flags & IS_SYNTHETIC ? "power failure" : "blood loss")) + /datum/species/human group = SPECIES_HUMAN name = "Human" From 446f6f1e81478d1e684f6dd1e827acfbd0a71a73 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Wed, 22 Nov 2023 23:57:18 +0000 Subject: [PATCH 02/27] Automatic changelog for PR #4559 [ci skip] --- html/changelogs/AutoChangeLog-pr-4559.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4559.yml diff --git a/html/changelogs/AutoChangeLog-pr-4559.yml b/html/changelogs/AutoChangeLog-pr-4559.yml new file mode 100644 index 000000000000..4bc42904d0fa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4559.yml @@ -0,0 +1,6 @@ +author: "QuickLode" +delete-after: True +changes: + - rscadd: "Damage to Synthetic's internal causes debuffs, eventual powercell failure.(death)" + - bugfix: "Synthetic's should no longer lose blood." + - code_imp: "moves blood proc to human.dm from blood.dm with above changes." \ No newline at end of file From 236a44319009607869c05698d3215a3a1ebe9d40 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 23 Nov 2023 01:11:08 +0000 Subject: [PATCH 03/27] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-4559.yml | 6 --- html/changelogs/AutoChangeLog-pr-4827.yml | 4 -- html/changelogs/AutoChangeLog-pr-4934.yml | 7 --- html/changelogs/AutoChangeLog-pr-4944.yml | 4 -- html/changelogs/AutoChangeLog-pr-4953.yml | 4 -- html/changelogs/AutoChangeLog-pr-4978.yml | 4 -- html/changelogs/AutoChangeLog-pr-4980.yml | 4 -- html/changelogs/AutoChangeLog-pr-4981.yml | 4 -- html/changelogs/AutoChangeLog-pr-4984.yml | 5 --- html/changelogs/AutoChangeLog-pr-4985.yml | 4 -- html/changelogs/AutoChangeLog-pr-4987.yml | 4 -- html/changelogs/AutoChangeLog-pr-4988.yml | 4 -- html/changelogs/AutoChangeLog-pr-4989.yml | 4 -- html/changelogs/AutoChangeLog-pr-4990.yml | 6 --- html/changelogs/AutoChangeLog-pr-4994.yml | 4 -- html/changelogs/archive/2023-11.yml | 52 +++++++++++++++++++++++ 16 files changed, 52 insertions(+), 68 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-4559.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4827.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4934.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4944.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4953.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4978.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4980.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4981.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4984.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4985.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4987.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4988.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4989.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4990.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4994.yml diff --git a/html/changelogs/AutoChangeLog-pr-4559.yml b/html/changelogs/AutoChangeLog-pr-4559.yml deleted file mode 100644 index 4bc42904d0fa..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4559.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "QuickLode" -delete-after: True -changes: - - rscadd: "Damage to Synthetic's internal causes debuffs, eventual powercell failure.(death)" - - bugfix: "Synthetic's should no longer lose blood." - - code_imp: "moves blood proc to human.dm from blood.dm with above changes." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4827.yml b/html/changelogs/AutoChangeLog-pr-4827.yml deleted file mode 100644 index b95ce40e4607..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4827.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LC4492" -delete-after: True -changes: - - maptweak: "Changes to the CO office: The bathroom now faces into the CO's bedroom, and not to his main office. Victory cabinet have been moved to the Officer's mess because of logical issues. Extra-detail to the office, including an exclusive stamp, table flags and others. The safe is now inside the CO's bedroom, and not in his office. The energy APC is now inside the CO's bedroom, and not in his office. Jones finally have a BED again, or something like that. Other minor changes to objects, such the addition of a cane, a box of glasses for serving guests, etc." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4934.yml b/html/changelogs/AutoChangeLog-pr-4934.yml deleted file mode 100644 index f3b1e179d8cb..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4934.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "fira" -delete-after: True -changes: - - balance: "Default Web Music Player volume is now 20% down from 50%. It was found too effective against new players." - - admin: "\"Play Internet Sound\" is now \"Play Admin Sound\" and optionally allow to hide the track name." - - admin: "\"Play Admin Sound\" can now be used with uploaded tracks, which use CDN delivery and the in-chat music player, granting players more control over them." - - admin: "Removed \"Play Midi Sound\"." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4944.yml b/html/changelogs/AutoChangeLog-pr-4944.yml deleted file mode 100644 index 0c8af20f86c8..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4944.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Steelpoint" -delete-after: True -changes: - - maptweak: "Secure Storage on LV-624 has been broken open, making it far less defendable but easier to access." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4953.yml b/html/changelogs/AutoChangeLog-pr-4953.yml deleted file mode 100644 index 4dd8c48e8206..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4953.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Tweaked larva queue spawning: Now spawns as many larva as possible each cycle rather than one." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4978.yml b/html/changelogs/AutoChangeLog-pr-4978.yml deleted file mode 100644 index fc04901a02a0..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4978.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Birdtalon" -delete-after: True -changes: - - rscdel: "Lesser drones die upon ghosting and are not offered to observers." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4980.yml b/html/changelogs/AutoChangeLog-pr-4980.yml deleted file mode 100644 index 67fc216fe995..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4980.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zzzmike" -delete-after: True -changes: - - qol: "Location name standardization. So, North is now Starboard. This is already how it is for everything except pumps." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4981.yml b/html/changelogs/AutoChangeLog-pr-4981.yml deleted file mode 100644 index 6edc5e60a381..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4981.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ihatethisengine" -delete-after: True -changes: - - balance: "Oppressor no longer can abduct big xenos." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4984.yml b/html/changelogs/AutoChangeLog-pr-4984.yml deleted file mode 100644 index a2ddcbb933ca..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4984.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Birdtalon" -delete-after: True -changes: - - rscadd: "Explosion handling logic to experimental sensor tower." - - bugfix: "Explosions no longer delete experimental sensor tower." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4985.yml b/html/changelogs/AutoChangeLog-pr-4985.yml deleted file mode 100644 index 9d8216e9eb7b..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4985.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Birdtalon" -delete-after: True -changes: - - bugfix: "Pylons now differentiated in the input list with a (1) if in the same area." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4987.yml b/html/changelogs/AutoChangeLog-pr-4987.yml deleted file mode 100644 index ef48b7dd6e62..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4987.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SortieEnMer" -delete-after: True -changes: - - qol: "Match Unlock Time in Nuke Timelock Message with Nuke Techtree Description" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4988.yml b/html/changelogs/AutoChangeLog-pr-4988.yml deleted file mode 100644 index ba67e425bd74..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4988.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fixed buried larva spawn grace period at start of round if there is a queue: Now join as xeno when there's a queue will only prevent buried larva spawns if there is no core." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4989.yml b/html/changelogs/AutoChangeLog-pr-4989.yml deleted file mode 100644 index 062eaf000f63..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4989.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zzzmike" -delete-after: True -changes: - - qol: "ARES hijack announcement specifies that pods will not crash at 100% fuel" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4990.yml b/html/changelogs/AutoChangeLog-pr-4990.yml deleted file mode 100644 index 8f54dcade5d8..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4990.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Resin doors will now close on dead mobs that are merged with weeds (currently only human)." - - bugfix: "Resin doors will now restart their closing timer each open making the delay to close consistent." - - code_imp: "Added a TRAIT_MERGED_WITH_WEEDS that is set whenever the mob is currently merged with weeds." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4994.yml b/html/changelogs/AutoChangeLog-pr-4994.yml deleted file mode 100644 index 2ace9428aaef..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4994.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "fira" -delete-after: True -changes: - - bugfix: "The Thunderdome floor is now explosion-proof." \ No newline at end of file diff --git a/html/changelogs/archive/2023-11.yml b/html/changelogs/archive/2023-11.yml index 66eaccb86d87..89f61d356258 100644 --- a/html/changelogs/archive/2023-11.yml +++ b/html/changelogs/archive/2023-11.yml @@ -279,3 +279,55 @@ game hislittlecuzingames: - rscadd: Launch Announcement Alarm for dropships to notify ground forces of departure. +2023-11-23: + Birdtalon: + - rscdel: Lesser drones die upon ghosting and are not offered to observers. + - rscadd: Explosion handling logic to experimental sensor tower. + - bugfix: Explosions no longer delete experimental sensor tower. + - bugfix: Pylons now differentiated in the input list with a (1) if in the same + area. + Drathek: + - bugfix: Resin doors will now close on dead mobs that are merged with weeds (currently + only human). + - bugfix: Resin doors will now restart their closing timer each open making the + delay to close consistent. + - code_imp: Added a TRAIT_MERGED_WITH_WEEDS that is set whenever the mob is currently + merged with weeds. + - bugfix: 'Fixed buried larva spawn grace period at start of round if there is a + queue: Now join as xeno when there''s a queue will only prevent buried larva + spawns if there is no core.' + - bugfix: 'Tweaked larva queue spawning: Now spawns as many larva as possible each + cycle rather than one.' + LC4492: + - maptweak: 'Changes to the CO office: The bathroom now faces into the CO''s bedroom, + and not to his main office. Victory cabinet have been moved to the Officer''s + mess because of logical issues. Extra-detail to the office, including an exclusive + stamp, table flags and others. The safe is now inside the CO''s bedroom, and + not in his office. The energy APC is now inside the CO''s bedroom, and not in + his office. Jones finally have a BED again, or something like that. Other minor + changes to objects, such the addition of a cane, a box of glasses for serving + guests, etc.' + QuickLode: + - rscadd: Damage to Synthetic's internal causes debuffs, eventual powercell failure.(death) + - bugfix: Synthetic's should no longer lose blood. + - code_imp: moves blood proc to human.dm from blood.dm with above changes. + SortieEnMer: + - qol: Match Unlock Time in Nuke Timelock Message with Nuke Techtree Description + Steelpoint: + - maptweak: Secure Storage on LV-624 has been broken open, making it far less defendable + but easier to access. + fira: + - bugfix: The Thunderdome floor is now explosion-proof. + - balance: Default Web Music Player volume is now 20% down from 50%. It was found + too effective against new players. + - admin: '"Play Internet Sound" is now "Play Admin Sound" and optionally allow to + hide the track name.' + - admin: '"Play Admin Sound" can now be used with uploaded tracks, which use CDN + delivery and the in-chat music player, granting players more control over them.' + - admin: Removed "Play Midi Sound". + ihatethisengine: + - balance: Oppressor no longer can abduct big xenos. + zzzmike: + - qol: ARES hijack announcement specifies that pods will not crash at 100% fuel + - qol: Location name standardization. So, North is now Starboard. This is already + how it is for everything except pumps. From ceaec32965be4fee449b32811819798a9b7467f9 Mon Sep 17 00:00:00 2001 From: SabreML <57483089+SabreML@users.noreply.github.com> Date: Fri, 24 Nov 2023 10:13:31 +0000 Subject: [PATCH 04/27] More readable colour for the 'Maintainer' section in staffwho (#5010) # About the pull request Changes the colour of the Maintainer section in the staffwho interface from '`blue`' (`#0000FF`) to '`dodgerblue`' (`#1E90FF`). # Explain why it's good for the game It varies slightly between my monitors, but on both of them it's very hard to make out what the text actually says because of the bad contrast between its colour and the background. # Testing Photographs and Procedure
Screenshots **Before:** ![before](https://github.com/cmss13-devs/cmss13/assets/57483089/56843789-b05d-4f35-8323-bf5fdb5c60ca) **After:** ![after](https://github.com/cmss13-devs/cmss13/assets/57483089/1b65994a-6856-4060-b1ee-c0955fb0e5b4)
*(See also: [Before](https://webaim.org/resources/contrastchecker/?fcolor=0000FF&bcolor=272727) vs [After](https://webaim.org/resources/contrastchecker/?fcolor=1E90FF&bcolor=272727) using WebAIM's contrast checker.)* # Changelog :cl: ui: Tweaked the colour of the 'Maintainer' category in staffwho. /:cl: --- code/game/verbs/who.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 8a249d297cbe..faa857f8518f 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -160,7 +160,7 @@ if(CONFIG_GET(flag/show_manager)) LAZYSET(mappings, "Management", R_PERMISSIONS) if(CONFIG_GET(flag/show_devs)) - LAZYSET(mappings, "Maintainers", R_PROFILER) + LAZYSET(mappings, "Maintainers", R_PROFILER) LAZYSET(mappings, "Admins", R_ADMIN) if(CONFIG_GET(flag/show_mods)) LAZYSET(mappings, "Moderators", R_MOD) From 3ddbc741b988c4d8b3d5ebbae75516c3c2ce8c14 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 24 Nov 2023 10:21:23 +0000 Subject: [PATCH 05/27] Automatic changelog for PR #5010 [ci skip] --- html/changelogs/AutoChangeLog-pr-5010.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5010.yml diff --git a/html/changelogs/AutoChangeLog-pr-5010.yml b/html/changelogs/AutoChangeLog-pr-5010.yml new file mode 100644 index 000000000000..7533b06d42a5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5010.yml @@ -0,0 +1,4 @@ +author: "SabreML" +delete-after: True +changes: + - ui: "Tweaked the colour of the 'Maintainer' category in staffwho." \ No newline at end of file From 2b3cf3f6d2c4e04692934b231367b31ffcf668cf Mon Sep 17 00:00:00 2001 From: Birdtalon Date: Fri, 24 Nov 2023 10:13:46 +0000 Subject: [PATCH 06/27] Fixes runtime with fire extinguisher cabinets on lifeboats (#5009) # About the pull request Fixes #3998 Fire extinguisher cabinets now new() a fire extinguisher properly in `Intialize()` # 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: Lifeboats fire extinguisher runtime. /:cl: --- code/game/objects/structures/extinguisher.dm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 7b54f0447fae..e4ee4a1b662b 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -5,13 +5,15 @@ icon_state = "extinguisher" anchored = TRUE density = FALSE - var/obj/item/tool/extinguisher/has_extinguisher = new/obj/item/tool/extinguisher + var/obj/item/tool/extinguisher/has_extinguisher var/opened = 0 var/base_icon /obj/structure/extinguisher_cabinet/Initialize() . = ..() base_icon = initial(icon_state) + has_extinguisher = new /obj/item/tool/extinguisher() + has_extinguisher.forceMove(src) /obj/structure/extinguisher_cabinet/lifeboat name = "extinguisher cabinet" @@ -21,15 +23,15 @@ /obj/structure/extinguisher_cabinet/alt icon_state = "extinguisher_alt" -/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user) +/obj/structure/extinguisher_cabinet/attackby(obj/item/item, mob/user) if(isrobot(user)) return - if(istype(O, /obj/item/tool/extinguisher)) + if(istype(item, /obj/item/tool/extinguisher)) if(!has_extinguisher && opened) user.drop_held_item() - contents += O - has_extinguisher = O - to_chat(user, SPAN_NOTICE("You place [O] in [src].")) + item.forceMove(src) + has_extinguisher = item + to_chat(user, SPAN_NOTICE("You place [item] in [src].")) else opened = !opened else @@ -45,7 +47,7 @@ user.put_in_hands(has_extinguisher) to_chat(user, SPAN_NOTICE("You take [has_extinguisher] from [src].")) has_extinguisher = null - opened = 1 + opened = TRUE else opened = !opened update_icon() From 5bf403306a31795d9c866a3caac9de7f55f08160 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 24 Nov 2023 10:35:23 +0000 Subject: [PATCH 07/27] Automatic changelog for PR #5009 [ci skip] --- html/changelogs/AutoChangeLog-pr-5009.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5009.yml diff --git a/html/changelogs/AutoChangeLog-pr-5009.yml b/html/changelogs/AutoChangeLog-pr-5009.yml new file mode 100644 index 000000000000..094bc7ccfee3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5009.yml @@ -0,0 +1,4 @@ +author: "Birdtalon" +delete-after: True +changes: + - bugfix: "Lifeboats fire extinguisher runtime." \ No newline at end of file From e5e18a550ac97a6638e102688b9cf530a9c5e87f Mon Sep 17 00:00:00 2001 From: ihatethisengine <115417687+ihatethisengine@users.noreply.github.com> Date: Fri, 24 Nov 2023 13:13:55 +0300 Subject: [PATCH 08/27] Lockdown actually closes doors on DS (#5015) # About the pull request Lockdown actually closes doors on DS. # Explain why it's good for the game It used to be the case before the gui rework. I think. Anyway DP should be able to control doors, hunting for the moment when all doors are closed to lock them is extremely not fun. # Testing Photographs and Procedure
:)
# Changelog :cl: ihatethisengine add: Locking down dropship's doors closes them before locking. /:cl: --- code/game/machinery/door_control.dm | 2 +- tgui/packages/tgui/interfaces/DropshipFlightControl.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 8b73588f1d0b..5d6c66309d48 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -64,7 +64,7 @@ if(is_mainship_level(z)) // on the almayer return - shuttle.control_doors("lock", "all", force=FALSE) + shuttle.control_doors("force-lock", "all", force=FALSE) /obj/structure/machinery/door_control/proc/handle_door() for(var/obj/structure/machinery/door/airlock/D in range(range)) diff --git a/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx b/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx index bbb7fea96d2c..4c1c463e65dd 100644 --- a/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx +++ b/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx @@ -45,7 +45,7 @@ const DropshipDoorControl = (_, context) => { disabled={disable_door_controls} onClick={() => act('door-control', { - interaction: 'lock', + interaction: 'force-lock', location: 'all', }) } @@ -81,7 +81,7 @@ const DropshipDoorControl = (_, context) => {