From 4eaf9f0c909ef1e36b3feaca7683911656bf3498 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 4 Oct 2020 01:03:26 +0000 Subject: [PATCH 01/37] Automatic changelog compile [ci skip] --- html/changelog.html | 74 +++++++++------------- html/changelogs/.all_changelog.yml | 22 +++++++ html/changelogs/AutoChangeLog-pr-13482.yml | 4 -- html/changelogs/AutoChangeLog-pr-13484.yml | 4 -- html/changelogs/AutoChangeLog-pr-13485.yml | 4 -- html/changelogs/AutoChangeLog-pr-13488.yml | 4 -- html/changelogs/AutoChangeLog-pr-13489.yml | 4 -- html/changelogs/AutoChangeLog-pr-13493.yml | 4 -- html/changelogs/AutoChangeLog-pr-13494.yml | 4 -- html/changelogs/AutoChangeLog-pr-13495.yml | 4 -- html/changelogs/AutoChangeLog-pr-13502.yml | 4 -- html/changelogs/AutoChangeLog-pr-13508.yml | 8 --- 12 files changed, 53 insertions(+), 87 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-13482.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-13484.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-13485.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-13488.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-13489.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-13493.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-13494.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-13495.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-13502.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-13508.yml diff --git a/html/changelog.html b/html/changelog.html index c15fc93e8d..0de57ebe79 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,37 @@ -->
+

04 October 2020

+

DeltaFire15 updated:

+ +

Detective-Google updated:

+ +

Putnam3145 updated:

+ +

monster860 updated:

+ +

timothyteakettle updated:

+ +

02 October 2020

ArcaneMusic, with minor tweaks by TheObserver-sys updated:

- -

02 August 2020

-

Auris456852 updated:

- -

Hatterhat updated:

- -

KeRSedChaplain updated:

- -

MrJWhit updated:

- -

Seris02 updated:

- -

dapnee updated:

- -

ike709 and bobbahbrown updated:

- -

kappa-sama updated:

- -

timothyteakettle updated:

-
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 08494cb87b..99ffc455c3 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -27502,3 +27502,25 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. as you move from the epicentre zeroisthebiggay: - rscadd: ratvar gf is complete +2020-10-04: + DeltaFire15: + - bugfix: Synths / IPCs are no longer wound immune. + - bugfix: Husked IPCs / Synths should now be rendered correctly. + - bugfix: Falling vendors now squish synths / IPCs' limbs again. + - bugfix: Synths and IPCs now do not have some fun roundstart oversights anymore. + - bugfix: Regenerate_limbs now works for carbons with the ROBOTIC_LIMBS trait. + - bugfix: Pacifists no longer counterattack on parries if that attack would be harmful. + - tweak: Heretic sacrifices now husk with the reason of burn, and deal some additional + damage. + - bugfix: Neovgre can no longer become invincible on clock tiles. + - bugfix: Plushlings no longer break when absorbing snowflake plushies. + Detective-Google: + - bugfix: the snow cabin doors actually bolt now + Putnam3145: + - bugfix: Ghosts are no longer incapable of going away. + monster860: + - tweak: The slimeperson swap-body UI stays open when you switch bodies + timothyteakettle: + - bugfix: limb id entry in mutant bodyparts now supports switching to/from species + with gendered body parts + - tweak: the minimum brightness of mutant parts is now a define diff --git a/html/changelogs/AutoChangeLog-pr-13482.yml b/html/changelogs/AutoChangeLog-pr-13482.yml deleted file mode 100644 index 4b2808f754..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13482.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - tweak: "Heretic sacrifices now husk with the reason of burn, and deal some additional damage." diff --git a/html/changelogs/AutoChangeLog-pr-13484.yml b/html/changelogs/AutoChangeLog-pr-13484.yml deleted file mode 100644 index 69271b260b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13484.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Plushlings no longer break when absorbing snowflake plushies." diff --git a/html/changelogs/AutoChangeLog-pr-13485.yml b/html/changelogs/AutoChangeLog-pr-13485.yml deleted file mode 100644 index 3dd03a4782..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13485.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Neovgre can no longer become invincible on clock tiles." diff --git a/html/changelogs/AutoChangeLog-pr-13488.yml b/html/changelogs/AutoChangeLog-pr-13488.yml deleted file mode 100644 index dae9dfd444..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13488.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Pacifists no longer counterattack on parries if that attack would be harmful." diff --git a/html/changelogs/AutoChangeLog-pr-13489.yml b/html/changelogs/AutoChangeLog-pr-13489.yml deleted file mode 100644 index 4780b3fadb..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13489.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - tweak: "the minimum brightness of mutant parts is now a define" diff --git a/html/changelogs/AutoChangeLog-pr-13493.yml b/html/changelogs/AutoChangeLog-pr-13493.yml deleted file mode 100644 index 12c10047b9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13493.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - bugfix: "limb id entry in mutant bodyparts now supports switching to/from species with gendered body parts" diff --git a/html/changelogs/AutoChangeLog-pr-13494.yml b/html/changelogs/AutoChangeLog-pr-13494.yml deleted file mode 100644 index c167bdd067..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13494.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "monster860" -delete-after: True -changes: - - tweak: "The slimeperson swap-body UI stays open when you switch bodies" diff --git a/html/changelogs/AutoChangeLog-pr-13495.yml b/html/changelogs/AutoChangeLog-pr-13495.yml deleted file mode 100644 index 33798eec3c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13495.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Detective-Google" -delete-after: True -changes: - - bugfix: "the snow cabin doors actually bolt now" diff --git a/html/changelogs/AutoChangeLog-pr-13502.yml b/html/changelogs/AutoChangeLog-pr-13502.yml deleted file mode 100644 index 5e10b5c773..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13502.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Ghosts are no longer incapable of going away." diff --git a/html/changelogs/AutoChangeLog-pr-13508.yml b/html/changelogs/AutoChangeLog-pr-13508.yml deleted file mode 100644 index 896b9d4ae7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-13508.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Synths / IPCs are no longer wound immune." - - bugfix: "Husked IPCs / Synths should now be rendered correctly." - - bugfix: "Falling vendors now squish synths / IPCs' limbs again." - - bugfix: "Synths and IPCs now do not have some fun roundstart oversights anymore." - - bugfix: "Regenerate_limbs now works for carbons with the ROBOTIC_LIMBS trait." From cc47d1225bbb19b21405f4feee5b2b3171e0148d Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 5 Oct 2020 01:02:08 +0000 Subject: [PATCH 02/37] Automatic changelog compile [ci skip] --- html/changelog.html | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 0de57ebe79..2871d88d7d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -1180,28 +1180,6 @@ - -

03 August 2020

-

KeRSedChaplain updated:

- -

Linzolle updated:

- -

dapnee updated:

- -

silicons updated:

- GoonStation 13 Development Team From b16680bc5ae437e303588610a3e2910ac0eb3318 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 6 Oct 2020 01:01:27 +0000 Subject: [PATCH 03/37] Automatic changelog compile [ci skip] --- html/changelog.html | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 2871d88d7d..1816874866 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -1166,20 +1166,6 @@
  • nukies can buy holoparasites
- -

04 August 2020

-

Seris02 updated:

-
    -
  • lizard spines
  • -
-

timothyteakettle updated:

-
    -
  • due to further advancements in medical technology, you can now have holes poked into your body for fun and enjoyment
  • -
-

zeroisthebiggay updated:

-
    -
  • prefs for headpat wagging
  • -
GoonStation 13 Development Team From 39288d081563b44020ee22b4f2d1fd2c5c41fa37 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 8 Oct 2020 00:51:56 +0000 Subject: [PATCH 04/37] Automatic changelog compile [ci skip] --- html/changelog.html | 49 --------------------------------------------- 1 file changed, 49 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 1816874866..99759de24a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -1117,55 +1117,6 @@
  • holoparasites can now play music
  • lethal blood now causes damaging bleeding instead of outright gibbing
  • - -

    06 August 2020

    -

    Auris456852 updated:

    -
      -
    • Added B.O.O.P. Remote Control cartridges to the PTech.
    • -
    -

    Hatterhat updated:

    -
      -
    • Proto-kinetic glaives! Essentially a proto-kinetic crusher with a different blade, handguard, and goliath hide grip. Expensive, but elegant.
    • -
    • Door charges no longer knock people out.
    • -
    -

    Ludox235 updated:

    -
      -
    • You can now buy damaged AI upload modules in the traitor's uplink.
    • -
    -

    Seris02 updated:

    -
      -
    • fixed ghost chilis
    • -
    -

    Trilbyspaceclone updated:

    -
      -
    • 4 New blends of tea have been shipped to the station, and how to make them has been leaked!
    • -
    -

    b1tt3r1n0 updated:

    -
      -
    • Added the warp implant
    • -
    -

    dapnee updated:

    -
      -
    • added a hallway to telecoms for engineers to get there on meta
    • -
    -

    kappa-sama updated:

    -
      -
    • dildo circuit assemblies
    • -
    -

    lolman360 updated:

    -
      -
    • The Tendril-Mother on Lavaland has remembered how to make ashwalkers who know how to speak Draconic again.
    • -
    -

    timothyteakettle updated:

    -
      -
    • nanotrasen has decided to fire all disabled members of the security division and confiscate certain sentimental items from doctors
    • -
    • the custom tongue preference now passes through cloning so you spawn with your selected tongue
    • -
    • several changes to travelling traders so they look better and spawn slightly less often
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • nukies can buy holoparasites
    • -
    GoonStation 13 Development Team From 47860f45fa8a889fbb3ecb20f1c8b9defc9994ed Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 9 Oct 2020 01:02:42 +0000 Subject: [PATCH 05/37] Automatic changelog compile [ci skip] --- html/changelog.html | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 99759de24a..5a848a4bcc 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -1097,26 +1097,6 @@
  • cuts make you bleed 25% less now
  • more items in the loadout and loadout has subcategories now for easier searching
  • - -

    07 August 2020

    -

    dapnee updated:

    -
      -
    • fixed active tufs on some space ruins, murderdome VR, and a few on pubby, changed cargo autolathe to techfab, messed with pipe room leading to monastery.
    • -
    -

    lolman360 updated:

    -
      -
    • vendors are now unanchored when tipped. it just fell over it's not bolted to the ground anymore.
    • -
    • podpeople no fat when sunbathing.
    • -
    -

    silicons updated:

    -
      -
    • explosions only recurse one level into storage before dropping 1 level per storage layer.
    • -
    • volumetric storage is now minimum 16 pixels per item because 8 was ridiculous
    • -
    • shieldbash balanace --> balance
    • -
    • attempting to send too long of an emote will now reflect it back to you instead of cutting it off and discarding the overflow.
    • -
    • holoparasites can now play music
    • -
    • lethal blood now causes damaging bleeding instead of outright gibbing
    • -
    GoonStation 13 Development Team From e070ace8b10050bc902140b798eeac2123e54dc6 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 10 Oct 2020 01:03:36 +0000 Subject: [PATCH 06/37] Automatic changelog compile [ci skip] --- html/changelog.html | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 5a848a4bcc..ebebf0726e 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -1060,43 +1060,6 @@
  • immovable rods no longer drop down chasms
  • fun removal: squeaking objects now have an 1 second cooldown between squeaks, and will have a 33% chance of interrupting any other squeaking object when Cross()ing, meaning no more ear-fuck conveyor belts.
  • - -

    08 August 2020

    -

    DeltaFire15 updated:

    -
      -
    • Roundstart cultists now start with a replica fabricator - no brass though, make your own.
    • -
    • Kindle cast time: 10 > 15, mute after stun end: 2 > 5, slur after mute end: 3 > 5
    • -
    • The ratvarian spear no longer adds negative vitality under very specific circumstances.
    • -
    • The Ratvarian Spear can parry now! Short parries with low leeway, but low cooldown.
    • -
    • The brass claw, a implant-based weapon which gains combo on consecutive hits against the same target.
    • -
    • The sigil of rites, a sigil used to perform various rites with a cost of power and materials
    • -
    • The Rite of Advancement: Used to add a organ or cyberimplant to a clockie without need for surgery.
    • -
    • The Rite of Woundmending: Used to heal all wounds on another cultist, causing toxins damage in return.
    • -
    • The Rite of the Claw: Used to summon a brass claw implant. Maximum of 4 uses per round.
    • -
    -

    Hatterhat updated:

    -
      -
    • You can now buy a toolbox's worth of Mosin-Nagant ammo for a fairly discounted price.
    • -
    • Revolvers from the dedicated kit now have reskinning capabilities.
    • -
    • You can now actually buy the riflery primer, which lets you pump shotguns and work the Mosin's bolt faster.
    • -
    • Bulldog slug magazines now have a unique sprite.
    • -
    -

    Ludox235 updated:

    -
      -
    • Removed an abductee objective that told you to remove all oxygen.
    • -
    • Added a new abductee objective to replace the removed one.
    • -
    -

    Sishen1542 updated:

    -
      -
    • 🅱️oneless
    • -
    • squishy slime emotes
    • -
    -

    timothyteakettle updated:

    -
      -
    • heparin makes you bleed half as much now
    • -
    • cuts make you bleed 25% less now
    • -
    • more items in the loadout and loadout has subcategories now for easier searching
    • -
    GoonStation 13 Development Team From 2b3d0c3c1127fc6af999c0d7761f2dcc11f05a16 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 11 Oct 2020 01:06:08 +0000 Subject: [PATCH 07/37] Automatic changelog compile [ci skip] --- html/changelog.html | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index ebebf0726e..a5e9071781 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -1045,21 +1045,6 @@
    • speech verbs copy through dna copying now
    - -

    09 August 2020

    -

    Hatterhat updated:

    -
      -
    • Proto-kinetic glaives (not crushers) can parry now.
    • -
    -

    MrJWhit updated:

    -
      -
    • Adds a second shutter on the top of the hop line
    • -
    -

    silicons updated:

    -
      -
    • immovable rods no longer drop down chasms
    • -
    • fun removal: squeaking objects now have an 1 second cooldown between squeaks, and will have a 33% chance of interrupting any other squeaking object when Cross()ing, meaning no more ear-fuck conveyor belts.
    • -
    GoonStation 13 Development Team From 238665c5dd973d6c8387756902a486becda8eb19 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 12 Oct 2020 01:04:47 +0000 Subject: [PATCH 08/37] Automatic changelog compile [ci skip] --- html/changelog.html | 63 --------------------------------------------- 1 file changed, 63 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index a5e9071781..256316b6ba 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -982,69 +982,6 @@
    • volaju two
    - -

    10 August 2020

    -

    Hatterhat updated:

    -
      -
    • Parry counterattack text now shows up.
    • -
    • Sterilized gauze is now better at stopping bleeding, and applies slightly faster. Very slightly faster.
    • -
    • Ointment and sutures now hold more in a stack (12 and 15, respectively).
    • -
    • Sterilized gauze can now be made by just pouring 10u sterilizine onto standard medical gauze, instead of having to craft it. Why you had to craft it, I will honestly never know.
    • -
    • Proto-kinetic glaives are more expensive, stagger/cooldown on failed parries increased slightly, perfect parries required for counterattack.
    • -
    • New item: Temporal Katana. 2 points for wizards, timestops upon successful parry, bokken quickparry stats (100 force on melee counter!).
    • -
    • Also you can *smirk. This has no mechanical effect, other than being smug.
    • -
    -

    KeRSedChaplain updated:

    -
      -
    • Added a guide for romerol usage
    • -
    • made infectious zombies not enter softcrit and take no stamina damage
    • -
    -

    LetterN updated:

    -
      -
    • clocktheme color
    • -
    • Ports TGUI-4
    • -
    -

    Lynxless updated:

    -
      -
    • Ports TG #51879
    • -
    -

    Owai-Seek updated:

    -
      -
    • Meatballs now spawn raw from food processors.
    • -
    -

    Putnam3145 updated:

    -
      -
    • Ethereals
    • -
    • (Hexa)crocin
    • -
    • (Hexa)camphor
    • -
    • Tweaked wording for marking tickets IC issue.
    • -
    • Rerolling your traitor goals will ONLY give you "proper" objectives.
    • -
    -

    Seris02 updated:

    -
      -
    • borgs being able to select and use a module when it's too damaged
    • -
    -

    Sishen1542 updated:

    -
      -
    • gave chairs active block/parry in exchange for removal of block_chance
    • -
    • replaces box whiteship tbaton with truncheon
    • -
    -

    kappa-sama updated:

    -
      -
    • made the Dirty Magazines crate cost 4000 instead of 12000 credits
    • -
    • MODS I SPILLED MU JUICE HEJPPHRLP HELPJ JLEP HELP
    • -
    -

    silicons updated:

    -
      -
    • player made areas are no longer valid for malf hacking
    • -
    • default space levels is 4 again.
    • -
    • rats now swarm instead of stacking on one spot.
    • -
    • getting hit by an explosion will now barely hard knockdown, but will leave you somewhat winded.
    • -
    -

    timothyteakettle updated:

    -
      -
    • speech verbs copy through dna copying now
    • -
    GoonStation 13 Development Team From bd79e914f445ed7c4351bfb2aba8df358c489592 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 13 Oct 2020 01:05:07 +0000 Subject: [PATCH 09/37] Automatic changelog compile [ci skip] --- html/changelog.html | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 256316b6ba..b8421f086a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -968,20 +968,6 @@
  • hair and some sechuds
  • ce hardsuit radproofing
  • - -

    11 August 2020

    -

    Hatterhat updated:

    -
      -
    • PDA uplinks can now steal from pens. Properly. Just make sure to have a pen in your PDA, first.
    • -
    -

    kappa-sama updated:

    -
      -
    • tracer no longer gives you full stamheals per use
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • volaju two
    • -
    GoonStation 13 Development Team From 4544ac3e866cc5dbde7af6078d5f0c7d815bb59b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 14 Oct 2020 01:05:00 +0000 Subject: [PATCH 10/37] Automatic changelog compile [ci skip] --- html/changelog.html | 56 --------------------------------------------- 1 file changed, 56 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index b8421f086a..f129a5821e 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -912,62 +912,6 @@
    • Removes fermisleepers and reverts them to tg ones
    - -

    12 August 2020

    -

    DeltaFire15 updated:

    -
      -
    • hellgun single-pack classification: goodies -> armory
    • -
    -

    Detective-Google updated:

    -
      -
    • hallway table hallway table
    • -
    -

    Hatterhat updated:

    -
      -
    • The temporal katana is now slightly more worthy of the 2 spell point cost, with a smaller, antimagic respecting timestop, less force, and no random blockchance. Society has progressed past the need for blockchance.
    • -
    -

    LetterN updated:

    -
      -
    • Mafia Component
    • -
    • Fixed missing icons and handtele
    • -
    -

    Putnam3145 updated:

    -
      -
    • a whole lot of jank regarding funny part sprite display.
    • -
    -

    Toriate updated:

    -
      -
    • Opossums have migrated into the maintenance tunnels! Seek them out at your own peril!
    • -
    -

    ancientpower updated:

    -
      -
    • Doors added to the west side of box medbay to make things a bit more manageable.
    • -
    -

    kappa-sama updated:

    -
      -
    • smuggler satchel cost 2->1
    • -
    • radio jammer cost 5->2
    • -
    • smuggler satchel uplink description now implies that persistence is disabled
    • -
    -

    lolman360 updated:

    -
      -
    • renameable necklace (accessory, attaches to suit) and ring (glove slot.)
    • -
    • custom rename is now 2048 characters? i think it's characters.
    • -
    -

    silicons updated:

    -
      -
    • You can now use anything as an emoji by doing :/obj/item/path/to/item:. This works for any /atom or subtype.
    • -
    -

    timothyteakettle updated:

    -
      -
    • syndicate agents now have access to mechanical aim enhancers which allow them to aim bullets to bounce off walls
    • -
    • ricochets work properly now for the bullets that support them
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • hair and some sechuds
    • -
    • ce hardsuit radproofing
    • -
    GoonStation 13 Development Team From 0c9b30d7e1d3d11284a65e0891227f7379265800 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 15 Oct 2020 01:05:33 +0000 Subject: [PATCH 11/37] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index f129a5821e..622a73e49b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -906,12 +906,6 @@
    • abductors can buy things
    - -

    13 August 2020

    -

    LetterN updated:

    -
      -
    • Removes fermisleepers and reverts them to tg ones
    • -
    GoonStation 13 Development Team From 3a0d161b49acf714419b0ab9b64c552302469cd0 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 16 Oct 2020 01:07:00 +0000 Subject: [PATCH 12/37] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 622a73e49b..445edafd92 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -900,12 +900,6 @@
  • the 8 rotation limit from clockwork chairs has been removed. please don't abuse this.
  • ethereals can now wear underwear
  • - -

    14 August 2020

    -

    silicons updated:

    -
      -
    • abductors can buy things
    • -
    GoonStation 13 Development Team From dfbc4316ef8db75ff34d8fbf9c904214de34e9d4 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 17 Oct 2020 01:06:05 +0000 Subject: [PATCH 13/37] Automatic changelog compile [ci skip] --- html/changelog.html | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 445edafd92..9a1bf738d3 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -888,18 +888,6 @@
    • tips
    - -

    15 August 2020

    -

    LetterN updated:

    -
      -
    • missing anomaly core icons
    • -
    • wrong state. blame the tg vertion i copied
    • -
    -

    silicons updated:

    -
      -
    • the 8 rotation limit from clockwork chairs has been removed. please don't abuse this.
    • -
    • ethereals can now wear underwear
    • -
    GoonStation 13 Development Team From 46acc698518a9533deef7f0ae71c582ef3c80adf Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 18 Oct 2020 01:09:11 +0000 Subject: [PATCH 14/37] Automatic changelog compile [ci skip] --- html/changelog.html | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 9a1bf738d3..34f21b9f71 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -876,18 +876,6 @@
  • changed some code - added drakeplushies to backpack loadout Removed duplicate voresleeper belly sprites from engdrake & jantidrake. [CC BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)
  • Added CC BY-NC-SA 3.0 license details to icon/mob/cyborg moved drakeborg.dmi to icon/mob/cyborg
  • - -

    16 August 2020

    -

    kiwedespars updated:

    -
      -
    • nerfed hypereut chaplain weapon.
    • -
    • 50% rng blockchance -> 0%
    • -
    • parry made much worse because it's an actual weapon and a roundstart one at that.
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • tips
    • -
    GoonStation 13 Development Team From 7dc7e3a5486777055536079dc3dfc1a91ef36354 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 19 Oct 2020 01:08:14 +0000 Subject: [PATCH 15/37] Automatic changelog compile [ci skip] --- html/changelog.html | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 34f21b9f71..47c81dcf89 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -861,21 +861,6 @@
  • snowflake code for mutant bodypart selection has been rewritten to be ~14x shorter
  • meat type and horns can now be selected by any species
  • - -

    17 August 2020

    -

    DeltaFire15 updated:

    -
      -
    • Cogscarabs are no longer always Pogscarabs
    • -
    -

    Strazyplus updated:

    -
      -
    • Added drakeborgs
    • -
    • Added drakeplushies
    • -
    • added drakeborg sprites
    • -
    • added drakeplushie sprites
    • -
    • changed some code - added drakeplushies to backpack loadout Removed duplicate voresleeper belly sprites from engdrake & jantidrake. [CC BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)
    • -
    • Added CC BY-NC-SA 3.0 license details to icon/mob/cyborg moved drakeborg.dmi to icon/mob/cyborg
    • -
    GoonStation 13 Development Team From a167a4626efbce6fa32ed513c59b9155a3c118b6 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 20 Oct 2020 01:07:44 +0000 Subject: [PATCH 16/37] Automatic changelog compile [ci skip] --- html/changelog.html | 65 --------------------------------------------- 1 file changed, 65 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 47c81dcf89..2cd894e89b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -796,71 +796,6 @@
    • Ethereal hair is now their body color instead of accidentally white
    - -

    18 August 2020

    -

    DeltaFire15 updated:

    -
      -
    • kindle cast time: 15ds -> 25ds
    • -
    • Moved the Belligerent Scripture to where it should be in the code
    • -
    -

    Detective-Google updated:

    -
      -
    • glass floors
    • -
    • uncrowbarrable plasma floors tweak:disco inferno's plasma floors can no longer be crowbarred.
    • -
    • ghost cafe has funky fresh art
    • -
    • you can actually remove glass floors now
    • -
    • get_equipped_items is hopefully less gross
    • -
    • plasma cutters are no longer gay
    • -
    -

    Hatterhat updated:

    -
      -
    • Slaughter demons (and laughter demons, being a subtype) are MOB_SIZE_LARGE, with one of the more immediate effects being able to mark them with a crusher and backstab them.
    • -
    • The funny blyat men have stumbled upon another surplus of Mosin-Nagants and are starting to pack them into crates again.
    • -
    • Vehicle riders can now, by default, get shot in the face and/or chest.
    • -
    • Adminspawn only .357 DumDum rounds! Because sometimes the other guy just really needs to hurt.
    • -
    • Bluespace beakers now have a chemical window through the side that shows chemical overlays.
    • -
    • Plant DNA manipulators now let you chuck things over them. Or they WOULD, if LETPASSTHROW worked half a damn.
    • -
    -

    LetterN updated:

    -
      -
    • uplink implant states
    • -
    • tweaks how role assigning works
    • -
    -

    MrJWhit updated:

    -
      -
    • Gives ashwalkers nightvision
    • -
    • Makes tesla blast people, not the environment, to save the server.
    • -
    -

    TheObserver-sys updated:

    -
      -
    • moves Garlic sprites from growing.dmi to growing_vegetable.dmi
    • -
    • Removes the unused Electric Lime mutation, it just takes up space with no actual function nor sprites.
    • -
    • Gives Catnip growing sprites
    • -
    • Removes redundant images in growing.dmi
    • -
    -

    kiwedespars updated:

    -
      -
    • 10 force to a fucking rubber cock.
    • -
    -

    lolman360 updated:

    -
      -
    • shotgun stripper clip nerf. ammoboxes can now accept a load_delay that happens when they attack a magazine, internal or external.
    • -
    -

    ported from tg updated:

    -
      -
    • bronze airlocks and windows can now be built
    • -
    • i also tweaked bronze flooring to be cheaper.
    • -
    -

    silicons updated:

    -
      -
    • stamina draining projectiles without stamina for their primary damage type now has their stamina damage taken into account for shield blocking, rather than the block being done for free for that.
    • -
    -

    timothyteakettle updated:

    -
      -
    • snowflake code tidyup
    • -
    • snowflake code for mutant bodypart selection has been rewritten to be ~14x shorter
    • -
    • meat type and horns can now be selected by any species
    • -
    GoonStation 13 Development Team From f4c32a057ba2d7c76ac8e8a9dfaf70ce9a793921 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 22 Oct 2020 01:09:27 +0000 Subject: [PATCH 17/37] Automatic changelog compile [ci skip] --- html/changelog.html | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 2cd894e89b..e365a49ccc 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -777,25 +777,6 @@
  • two snouts can once again be chosen in customization
  • lizard snouts work again
  • - -

    20 August 2020

    -

    DeltaFire15 updated:

    -
      -
    • The cooking oil damage formula is no longer scuffed.
    • -
    • Changed the clockie help-link to lead to our own wiki.
    • -
    -

    Fikou updated:

    -
      -
    • admins can now do html in ahelps properly
    • -
    -

    Hatterhat updated:

    -
      -
    • Pirate threats are now announced as "business propositions", and their arrivals are now also announced properly.
    • -
    -

    tiramisuapimancer updated:

    -
      -
    • Ethereal hair is now their body color instead of accidentally white
    • -
    GoonStation 13 Development Team From d914178c561e85361f8f29a9c5f5b30866f19088 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 23 Oct 2020 01:10:03 +0000 Subject: [PATCH 18/37] Automatic changelog compile [ci skip] --- html/changelog.html | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index e365a49ccc..4e3198ed5e 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -756,27 +756,6 @@
  • plumbing
  • automatic hydro trays
  • - -

    21 August 2020

    -

    LetterN updated:

    -
      -
    • Updates and adds some of the tips
    • -
    -

    Putnam3145 updated:

    -
      -
    • added reftracking as a compile flag
    • -
    -

    SmArtKar updated:

    -
      -
    • RSD limitation is now 500 tiles
    • -
    • Fixed broken RSD sprites
    • -
    • Removed that shuttle limit
    • -
    -

    timothyteakettle updated:

    -
      -
    • two snouts can once again be chosen in customization
    • -
    • lizard snouts work again
    • -
    GoonStation 13 Development Team From 6c5a1f45aec64eaaa87f5989743ca072440b1d10 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 24 Oct 2020 01:09:43 +0000 Subject: [PATCH 19/37] Automatic changelog compile [ci skip] --- html/changelog.html | 7 ------- 1 file changed, 7 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 4e3198ed5e..90881982e0 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -749,13 +749,6 @@
  • suiciding with the temporal katana omae wa mou shinderius you into the shadow realm
  • twilight isnt earrape
  • - -

    22 August 2020

    -

    Time-Green (copypasta'd by lolman360) updated:

    -
      -
    • plumbing
    • -
    • automatic hydro trays
    • -
    GoonStation 13 Development Team From 1a554da80a0a047d14e6242dd3d1dfda7f6d485c Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 25 Oct 2020 01:12:44 +0000 Subject: [PATCH 20/37] Automatic changelog compile [ci skip] --- html/changelog.html | 53 --------------------------------------------- 1 file changed, 53 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 90881982e0..e1dd87f209 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -696,59 +696,6 @@
    • contraband black evening gloves in kinkvend
    - -

    23 August 2020

    -

    DeltaFire15 updated:

    -
      -
    • silicons and clockies can now access APCs properly
    • -
    -

    EmeraldSundisk updated:

    -
      -
    • Medbay now has a smartfridge for organ storage
    • -
    • Slight enhancements to the station's electrical wiring layout
    • -
    • Very small library renovation
    • -
    • Exterior airlocks have been given proper air systems for safety's sake
    • -
    -

    Ghommie updated:

    -
      -
    • Stops shielded hardsuits from slowly turning the wearer into a big glowing ball of stacked energy shield overlays.
    • -
    • the shielding overlay is merely visual as result. Aim your clicks.
    • -
    -

    Ludox235 updated:

    -
      -
    • no more 10 pop xenos (25pop now)
    • -
    -

    MrJWhit updated:

    -
      -
    • Increases the majority of airlocks by 1 tile.
    • -
    • Minor adjustments to the TEG engine.
    • -
    -

    Putnam3145 updated:

    -
      -
    • Simplemobs no longer count in dynamic.
    • -
    • "Story" storyteller no longer starts at a ludicrously low threat, always.
    • -
    • Blob threat now scales with coverage.
    • -
    • One person with their pref on no longer overpowers 40 people who might not even know there is one.
    • -
    • Negative-weight rulesets are no longer put into the list.
    • -
    -

    kiwedespars updated:

    -
      -
    • removed durathread from armwraps recipe.
    • -
    -

    lolman360 updated:

    -
      -
    • breath mask balaclava
    • -
    -

    timothyteakettle updated:

    -
      -
    • lizards are now a recommended species for mam snouts
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • new sprites for the temporal katana
    • -
    • suiciding with the temporal katana omae wa mou shinderius you into the shadow realm
    • -
    • twilight isnt earrape
    • -
    GoonStation 13 Development Team From 01b0f15e82f45fcf62d168b58e03802d0cd10a75 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 26 Oct 2020 01:12:05 +0000 Subject: [PATCH 21/37] Automatic changelog compile [ci skip] --- html/changelog.html | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index e1dd87f209..8ed84ca7aa 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -676,26 +676,6 @@
    • I.P.Cs now short their circuits when expressing emotion, causing sparks to appear around them.
    - -

    24 August 2020

    -

    MrJWhit updated:

    -
      -
    • Fixes areas on expanded airlocks
    • -
    -

    silicons updated:

    -
      -
    • wormhole jaunters work
    • -
    • wormhole jaunters no longer get interference from bags of holding
    • -
    • airlocks now only shock on pulse/wirecutters instead of on tgui panel open.
    • -
    -

    timothyteakettle updated:

    -
      -
    • three new items are in the loadout for all donators
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • contraband black evening gloves in kinkvend
    • -
    GoonStation 13 Development Team From a764391c55e7e2e17edf9b4abec13992e89a0737 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 27 Oct 2020 01:11:33 +0000 Subject: [PATCH 22/37] Automatic changelog compile [ci skip] --- html/changelog.html | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 8ed84ca7aa..a5e1291f04 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -654,28 +654,6 @@
  • hierophant vortex blasts now have 50% armor penetration vs mecha
  • ventcrawling now kicks off every attached/buckled mob, even for non humans.
  • - -

    25 August 2020

    -

    Hatterhat updated:

    -
      -
    • Insidious combat gloves have been replaced by insidious guerilla gloves. They're generally the same, except now you can tackle with them.
    • -
    -

    Literallynotpickles updated:

    -
      -
    • You can now equip handheld crew monitors on all medical-related winter coats.
    • -
    -

    Putnam3145 updated:

    -
      -
    • vore now ejects occupants on death
    • -
    -

    raspy-on-osu updated:

    -
      -
    • Thermoelectric Generator power output
    • -
    -

    timothyteakettle updated:

    -
      -
    • I.P.Cs now short their circuits when expressing emotion, causing sparks to appear around them.
    • -
    GoonStation 13 Development Team From 040763c35f8dba8df3b7a025af2ca358f2e18c91 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 28 Oct 2020 01:12:00 +0000 Subject: [PATCH 23/37] Automatic changelog compile [ci skip] --- html/changelog.html | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index a5e1291f04..1db462b9aa 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -643,17 +643,6 @@
    • changing your character's gender won't randomize its hairstyle and facial hairstyle now
    - -

    26 August 2020

    -

    ancientpower updated:

    -
      -
    • Ghosts can read newscasters by clicking on them.
    • -
    -

    silicons updated:

    -
      -
    • hierophant vortex blasts now have 50% armor penetration vs mecha
    • -
    • ventcrawling now kicks off every attached/buckled mob, even for non humans.
    • -
    GoonStation 13 Development Team From 8b3cfcae18c64f33a42bd000ac52c089507f93ce Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 29 Oct 2020 01:13:18 +0000 Subject: [PATCH 24/37] Automatic changelog compile [ci skip] --- html/changelog.html | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 1db462b9aa..9cc3c71317 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -631,18 +631,6 @@
  • bokken do two more stamina damage now
  • you can now choose a body sprite as an anthromorph or anthromorphic insect, and can choose from aquatic/avian and apid respectively (and obviously back to the defaults too)
  • - -

    27 August 2020

    -

    silicons updated:

    -
      -
    • eyebeam lighting can only have 128 maximum HSV saturation now.
    • -
    • no more shotgun stripper clips in boxes.
    • -
    • goliath tentacles now do 20 damage to mechs at 25% ap
    • -
    -

    timothyteakettle updated:

    -
      -
    • changing your character's gender won't randomize its hairstyle and facial hairstyle now
    • -
    GoonStation 13 Development Team From 5b5c847f5635145078bfd8d4945996276c848b6a Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Tue, 29 Dec 2020 00:15:33 +0000 Subject: [PATCH 25/37] Update TGS DMAPI --- code/__DEFINES/tgs.dm | 20 ++++++++++---------- code/modules/tgs/v5/api.dm | 9 +++++---- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index 2562bfe4d3..3225f14d8c 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "5.2.9" +#define TGS_DMAPI_VERSION "5.2.10" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -67,7 +67,7 @@ #define TGS_EVENT_REPO_CHECKOUT 1 /// When the repository performs a fetch operation. No parameters #define TGS_EVENT_REPO_FETCH 2 -/// When the repository merges a pull request. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user +/// When the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user #define TGS_EVENT_REPO_MERGE_PULL_REQUEST 3 /// Before the repository makes a sychronize operation. Parameters: Absolute repostiory path #define TGS_EVENT_REPO_PRE_SYNCHRONIZE 4 @@ -190,21 +190,21 @@ /// Represents a merge of a GitHub pull request. /datum/tgs_revision_information/test_merge - /// The pull request number. + /// The test merge number. var/number - /// The pull request title when it was merged. + /// The test merge source's title when it was merged. var/title - /// The pull request body when it was merged. + /// The test merge source's body when it was merged. var/body - /// The GitHub username of the pull request's author. + /// The Username of the test merge source's author. var/author - /// An http URL to the pull request. + /// An http URL to the test merge source. var/url - /// The SHA of the pull request when that was merged. + /// The SHA of the test merge when that was merged. var/pull_request_commit - /// ISO 8601 timestamp of when the pull request was merged. + /// ISO 8601 timestamp of when the test merge was created on TGS. var/time_merged - /// (Nullable) Comment left by the TGS user who initiated the merge.. + /// Optional comment left by the TGS user who initiated the merge. var/comment /// Represents a connected chat channel. diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 466a986237..7a2ff694e0 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -98,18 +98,19 @@ return json_encode(response) /datum/tgs_api/v5/OnTopic(T) - if(!initialized) - return FALSE //continue world/Topic - var/list/params = params2list(T) var/json = params[DMAPI5_TOPIC_DATA] if(!json) - return FALSE + return FALSE // continue to /world/Topic var/list/topic_parameters = json_decode(json) if(!topic_parameters) return TopicResponse("Invalid topic parameters json!"); + if(!initialized) + TGS_WARNING_LOG("Missed topic due to not being initialized: [T]") + return TRUE // too early to handle, but it's still our responsibility + var/their_sCK = topic_parameters[DMAPI5_PARAMETER_ACCESS_IDENTIFIER] if(their_sCK != access_identifier) return TopicResponse("Failed to decode [DMAPI5_PARAMETER_ACCESS_IDENTIFIER] from: [json]!"); From 37c3bbbd9c2a38b873de9c4b76d2ac7d25c07fb6 Mon Sep 17 00:00:00 2001 From: Fermi <33956696+Thalpy@users.noreply.github.com> Date: Mon, 4 Jan 2021 01:48:35 +0000 Subject: [PATCH 26/37] Fixing things and gui --- code/modules/reagents/chemistry/holder.dm | 6 +- .../chemistry/machinery/chem_dispenser.dm | 119 +++++++++++++++-- .../chemistry/machinery/chem_heater.dm | 2 +- .../chemistry/machinery/chem_master.dm | 10 +- .../reagents/chemistry/recipes/medicine.dm | 2 + .../chemistry/reagents/fermi_reagents.dm | 28 +++- .../packages/tgui/interfaces/ChemDispenser.js | 124 ++++++++++++++---- tgui/packages/tgui/interfaces/ChemMaster.js | 8 +- 8 files changed, 246 insertions(+), 53 deletions(-) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index c489edf88e..fd6204a8e3 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -973,10 +973,8 @@ for(var/A in cached_reagents) var/datum/reagent/R = A if (R.type == reagent) - if((total_volume - amount) <= 0)//Because this can result in 0, I don't want it to crash. - pH = REAGENT_NORMAL_PH //In practice this is really confusing and players feel like it randomly melts their beakers, but I'm not sure how else to handle it. We'll see how it goes and I can remove this if it confuses people. - else if (!ignore_pH) + if(!ignore_pH) //if (((pH > R.pH) && (pH <= 7)) || ((pH < R.pH) && (pH >= 7))) pH = (((pH - R.pH) / total_volume) * amount) + pH if(istype(my_atom, /obj/item/reagent_containers/)) @@ -987,6 +985,8 @@ amount = clamp(amount, 0, R.volume) R.volume -= amount update_total() + if(total_volume <= 0)//Because this can result in 0, I don't want it to crash. + pH = REAGENT_NORMAL_PH if(!safety)//So it does not handle reactions when it need not to handle_reactions() if(my_atom) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index db16a10d1d..0fe4898b76 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -24,6 +24,7 @@ circuit = /obj/item/circuitboard/machine/chem_dispenser var/obj/item/stock_parts/cell/cell var/powerefficiency = 0.0666666 + var/dispenceUnit = 5 var/amount = 30 var/recharge_amount = 10 var/recharge_counter = 0 @@ -32,6 +33,7 @@ var/nopower_state = "dispenser_nopower" var/has_panel_overlay = TRUE var/obj/item/reagent_containers/beaker = null + var/list/stored_beakers = list() var/list/dispensable_reagents = list( /datum/reagent/hydrogen, /datum/reagent/lithium, @@ -58,7 +60,9 @@ /datum/reagent/silver, /datum/reagent/iodine, /datum/reagent/bromine, - /datum/reagent/stable_plasma + /datum/reagent/stable_plasma, + /datum/reagent/fermi/acidic_buffer/weak, + /datum/reagent/fermi/basic_buffer/weak ) //These become available once upgraded. var/list/upgrade_reagents = list( @@ -102,6 +106,7 @@ if(upgrade_reagents3) upgrade_reagents3 = sortList(upgrade_reagents3, /proc/cmp_reagents_asc) dispensable_reagents = sortList(dispensable_reagents, /proc/cmp_reagents_asc) + create_reagents(200, NO_REACT) update_icon() /obj/machinery/chem_dispenser/Destroy() @@ -190,13 +195,16 @@ data["amount"] = amount data["energy"] = cell.charge ? cell.charge * powerefficiency : "0" //To prevent NaN in the UI. data["maxEnergy"] = cell.maxcharge * powerefficiency + data["storedVol"] = reagents.total_volume + data["maxVol"] = reagents.maximum_volume data["isBeakerLoaded"] = beaker ? 1 : 0 + data["stepAmount"] = dispenceUnit var/beakerContents[0] var/beakerCurrentVolume = 0 if(beaker && beaker.reagents && beaker.reagents.reagent_list.len) for(var/datum/reagent/R in beaker.reagents.reagent_list) - beakerContents.Add(list(list("name" = R.name, "volume" = R.volume))) // list in a list because Byond merges the first list... + beakerContents.Add(list(list("name" = R.name, "id" = R.type, "volume" = R.volume))) // list in a list because Byond merges the first list... beakerCurrentVolume += R.volume data["beakerContents"] = beakerContents @@ -204,10 +212,9 @@ data["beakerCurrentVolume"] = beakerCurrentVolume data["beakerMaxVolume"] = beaker.volume data["beakerTransferAmounts"] = beaker.possible_transfer_amounts - data["beakerCurrentpH"] = beaker.reagents.pH //pH accuracy for(var/obj/item/stock_parts/capacitor/C in component_parts) - data["partRating"]= 10**(C.rating-1) + data["beakerCurrentpH"] = round(beaker.reagents.pH, 10**-(C.rating+1)) else data["beakerCurrentVolume"] = null @@ -225,11 +232,17 @@ var/chemname = temp.name if(is_hallucinating && prob(5)) chemname = "[pick_list_replacements("hallucination.json", "chemicals")]" - chemicals.Add(list(list("title" = chemname, "id" = ckey(temp.name)))) + chemicals.Add(list(list("title" = chemname, "id" = ckey(temp.name), "pH" = temp.pH, "pHCol" = ConvertpHToCol(temp.pH)))) data["chemicals"] = chemicals data["recipes"] = saved_recipes data["recordingRecipe"] = recording_recipe + + var/storedContents[0] + if(reagents.total_volume) + for(var/datum/reagent/N in reagents.reagent_list) + storedContents.Add(list(list("name" = N.name, "id" = N.type, "volume" = N.volume))) + data["storedContents"] = storedContents return data /obj/machinery/chem_dispenser/ui_act(action, params) @@ -240,10 +253,9 @@ if(!is_operational() || QDELETED(beaker)) return var/target = text2num(params["target"]) - if(target in beaker.possible_transfer_amounts) - amount = target - work_animation() - . = TRUE + SetAmount(target) + work_animation() + . = TRUE if("dispense") if(!is_operational() || QDELETED(cell)) return @@ -268,10 +280,9 @@ if(!is_operational() || recording_recipe) return var/amount = text2num(params["amount"]) - if(beaker && (amount in beaker.possible_transfer_amounts)) - beaker.reagents.remove_all(amount) - work_animation() - . = TRUE + beaker.reagents.remove_all(amount) //This should be set correctly in "amount" + work_animation() + . = TRUE if("eject") replace_beaker(usr) . = TRUE @@ -338,6 +349,48 @@ recording_recipe = null . = TRUE + //Storing and unstoring reagents + if("store") + if(!is_operational() || QDELETED(cell)) + return + if(!beaker) + return + if(recording_recipe) + say("Cannot store while recording!") + return + if(beaker.reagents.fermiIsReacting) + say("Cannot store ongoing reactions!") + return + var/reagent = text2path(params["id"]) + var/datum/reagent/R = beaker.reagents.has_reagent(reagent) + if(reagents.total_volume+amount > reagents.maximum_volume) + say("Not enough storage space left!") + return + beaker.reagents.trans_id_to(src, R.type, amount) + work_animation() + . = TRUE + + if("unstore") + if(!is_operational() || QDELETED(cell)) + return + if(!beaker) + return + if(recording_recipe) + say("Cannot distribute while recording!") + return + var/reagent = text2path(params["id"]) + var/datum/reagent/R = reagents.has_reagent(reagent) + reagents.trans_id_to(beaker, R.type, amount) + work_animation() + . = TRUE + +/obj/machinery/chem_dispenser/proc/SetAmount(inputAmount) + if(inputAmount % 5 == 0) //Always allow 5u values + amount = inputAmount + return + inputAmount -= inputAmount % dispenceUnit + amount = inputAmount + /obj/machinery/chem_dispenser/attackby(obj/item/I, mob/user, params) if(default_unfasten_wrench(user, I)) return @@ -390,6 +443,8 @@ cell = P for(var/obj/item/stock_parts/matter_bin/M in component_parts) newpowereff += 0.0166666666*M.rating + if(reagents) + reagents.maximum_volume = 200*(M.rating+1) for(var/obj/item/stock_parts/capacitor/C in component_parts) recharge_amount *= C.rating for(var/obj/item/stock_parts/manipulator/M in component_parts) @@ -399,6 +454,15 @@ dispensable_reagents |= upgrade_reagents2 if(M.rating > 3) dispensable_reagents |= upgrade_reagents3 + switch(M.rating) + if(0) + dispenceUnit = 5 + if(1) + dispenceUnit = 3 + if(2) + dispenceUnit = 2 + if(3 to INFINITY) + dispenceUnit = 1 powerefficiency = round(newpowereff, 0.01) /obj/machinery/chem_dispenser/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) @@ -409,6 +473,8 @@ user.put_in_hands(B) if(new_beaker) beaker = new_beaker + if(amount > beaker.reagents.maximum_volume) + amount = beaker.reagents.maximum_volume else beaker = null update_icon() @@ -427,6 +493,32 @@ replace_beaker(user) return TRUE +/obj/machinery/chem_dispenser/proc/ConvertpHToCol(pH) + switch(pH) + if(-INFINITY to 1) + return "red" + if(1 to 2) + return "orange" + if(2 to 3) + return "average" + if(3 to 4) + return "yellow" //yellow looks really bad for some reason + if(4 to 5) + return "olive" + if(5 to 6) + return "good" + if(6 to 8) + return "green" + if(8 to 9.5) + return "teal" + if(9.5 to 11) + return "blue" + if(11 to 12.5) + return "violet" + if(12.5 to INFINITY) + return "purple" + + /obj/machinery/chem_dispenser/drinks/Initialize() . = ..() AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE) @@ -453,6 +545,7 @@ b_o.pixel_y = -7 b_o.pixel_x = rand(-9, 9) return b_o + /obj/machinery/chem_dispenser/drinks name = "soda dispenser" diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 8c3b9c7f99..cd8ee2d986 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -126,7 +126,7 @@ var beakerContents[0] if(beaker) for(var/datum/reagent/R in beaker.reagents.reagent_list) - beakerContents.Add(list(list("name" = R.name, "volume" = R.volume, "purity" = R.purity))) // list in a list because Byond merges the first list... + beakerContents.Add(list(list("name" = R.name, "volume" = round(R.volume, 0.01), "purity" = round(R.purity, 0.01)))) // list in a list because Byond merges the first list... data["beakerContents"] = beakerContents return data diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 32ac7cecba..cf49039fde 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -184,13 +184,13 @@ var/beakerContents[0] if(beaker) for(var/datum/reagent/R in beaker.reagents.reagent_list) - beakerContents.Add(list(list("name" = R.name, "id" = ckey(R.name), "volume" = R.volume))) // list in a list because Byond merges the first list... + beakerContents.Add(list(list("name" = R.name, "id" = R.type, "volume" = R.volume))) // list in a list because Byond merges the first list... data["beakerContents"] = beakerContents var/bufferContents[0] if(reagents.total_volume) for(var/datum/reagent/N in reagents.reagent_list) - bufferContents.Add(list(list("name" = N.name, "id" = ckey(N.name), "volume" = N.volume))) // ^ + bufferContents.Add(list(list("name" = N.name, "id" = N.type, "volume" = N.volume))) // ^ data["bufferContents"] = bufferContents //Calculated at init time as it never changes @@ -216,7 +216,7 @@ if(action == "transfer") if(!beaker) return FALSE - var/reagent = GLOB.name2reagent[params["id"]] + var/reagent = text2path(params["id"]) var/amount = text2num(params["amount"]) var/to_container = params["to"] // Custom amount @@ -386,7 +386,7 @@ if(action == "analyze") // var/datum/reagent/R = GLOB.name2reagent[params["id"]] - var/reagent = GLOB.name2reagent[params["id"]] + var/reagent = text2path(params["id"]) var/datum/reagent/R = GLOB.chemical_reagents_list[reagent] if(R) var/state = "Unknown" @@ -405,7 +405,7 @@ analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = R.purity, "inverseRatioF" = initial(R.inverse_chem_val), "purityE" = initial(Rcr.PurityMin), "minTemp" = initial(Rcr.OptimalTempMin), "maxTemp" = initial(Rcr.OptimalTempMax), "eTemp" = initial(Rcr.ExplodeTemp), "pHpeak" = pHpeakCache) else fermianalyze = FALSE - analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold)) + analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = R.purity) screen = "analyze" return TRUE diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index d4d66af240..1a92ba0ad9 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -117,6 +117,8 @@ if(St.purity < 1) St.volume *= St.purity St.purity = 1 + if(!N) + return var/amount = clamp(0.002, 0, N.volume) N.volume -= amount St.data["grown_volume"] = St.data["grown_volume"] + added_volume diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 1801986ebe..453fe50e9c 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -335,11 +335,13 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) holder.clear_reagents() /datum/reagent/fermi/acidic_buffer - name = "Acidic buffer" + name = "Potent acidic buffer" description = "This reagent will consume itself and move the pH of a beaker towards acidity when added to another." color = "#fbc314" pH = 0 + chemical_flags = REAGENT_FORCEONNEW can_synth = TRUE + var/strength = 2 //Consumes self on addition and shifts pH /datum/reagent/fermi/acidic_buffer/on_new(datapH) @@ -348,18 +350,36 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) data = datapH if(LAZYLEN(holder.reagent_list) == 1) return ..() - holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume)) + holder.pH = ((holder.pH * (holder.total_volume-volume))+(pH * (volume*strength)))/(holder.total_volume + volume) holder.my_atom.visible_message("The beaker fizzes as the pH changes!") playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) ..() +/datum/reagent/fermi/acidic_buffer/weak + name = "Acidic buffer" + description = "This reagent will consume itself and move the pH of a beaker towards acidity when added to another." + color = "#fbf344" + pH = 4 + can_synth = TRUE + strength = 0.4 + /datum/reagent/fermi/basic_buffer - name = "Basic buffer" + name = "Potent basic buffer" description = "This reagent will consume itself and move the pH of a beaker towards alkalinity when added to another." color = "#3853a4" pH = 14 + chemical_flags = REAGENT_FORCEONNEW can_synth = TRUE + var/strength = 2 + +/datum/reagent/fermi/basic_buffer/weak + name = "Basic buffer" + description = "This reagent will consume itself and move the pH of a beaker towards alkalinity when added to another." + color = "#5873c4" + pH = 10 + can_synth = TRUE + strength = 0.4 /datum/reagent/fermi/basic_buffer/on_new(datapH) if(holder.has_reagent(/datum/reagent/stabilizing_agent)) @@ -367,7 +387,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) data = datapH if(LAZYLEN(holder.reagent_list) == 1) return ..() - holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume)) + holder.pH = ((holder.pH * (holder.total_volume-volume))+(pH * (volume*strength)))/(holder.total_volume + volume) holder.my_atom.visible_message("The beaker froths as the pH changes!") playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) diff --git a/tgui/packages/tgui/interfaces/ChemDispenser.js b/tgui/packages/tgui/interfaces/ChemDispenser.js index 0724a9e85f..5390552dca 100644 --- a/tgui/packages/tgui/interfaces/ChemDispenser.js +++ b/tgui/packages/tgui/interfaces/ChemDispenser.js @@ -1,13 +1,18 @@ import { toFixed } from 'common/math'; import { toTitleCase } from 'common/string'; import { Fragment } from 'inferno'; -import { useBackend } from '../backend'; -import { AnimatedNumber, Box, Button, Icon, LabeledList, ProgressBar, Section } from '../components'; +import { useBackend, useLocalState } from '../backend'; +import { AnimatedNumber, Box, Button, Icon, LabeledList, ProgressBar, Section, Table, NumberInput } from '../components'; import { Window } from '../layouts'; export const ChemDispenser = (props, context) => { const { act, data } = useBackend(context); const recording = !!data.recordingRecipe; + const [hasCol, setHasCol] = useLocalState( + context, 'fs_title', false); + const { + storedContents = [], + } = data; // TODO: Change how this piece of shit is built on server side // It has to be a list, not a fucking OBJECT! const recipes = Object.keys(data.recipes) @@ -28,7 +33,7 @@ export const ChemDispenser = (props, context) => { return (
    {
    ( -
    +
    + + {toFixed(data.storedVol) + ' units'} + + + {storedContents.map(chemical => ( + + ))} + +
    { {(!data.isBeakerLoaded && !recording) && 'N/A' || beakerContents.length === 0 && 'Nothing'} - {beakerContents.map(chemical => ( - - - {' '} - units of {chemical.name} - - ))} + + {beakerContents.map(chemical => ( + + ))} + pH: @@ -196,3 +221,56 @@ export const ChemDispenser = (props, context) => { ); }; + + +const ChemicalBuffer = Table; + +const ChemicalBufferEntry = (props, context) => { + const { act } = useBackend(context); + const { chemical, transferTo } = props; + return ( + + + + {` units of ${chemical.name}`} + + +
    { chemical={chemical} transferTo="beaker" /> ))} - + pH: @@ -226,7 +226,7 @@ export const ChemDispenser = (props, context) => { const ChemicalBuffer = Table; const ChemicalBufferEntry = (props, context) => { - const { act } = useBackend(context); + const { act, data } = useBackend(context); const { chemical, transferTo } = props; return ( @@ -240,6 +240,7 @@ const ChemicalBufferEntry = (props, context) => {
    act('amount', { - target: amount, - })} />, -
    + title="Storage" + buttons={ + + Transfer amount: + + u + + } + > - {toFixed(data.storedVol) + ' units'} + {toFixed(data.storedVol) + ' units / ' + data.maxVol + ' units'} {storedContents.map(chemical => ( @@ -240,7 +278,7 @@ const ChemicalBufferEntry = (props, context) => {
    -
    - Transfer amount: - - u - - } - > - - {toFixed(data.storedVol) + ' units / ' + data.maxVol + ' units'} - - - {storedContents.map(chemical => ( - - ))} - -
    + {!!data.canStore && ( +
    + Transfer amount: + + u + + }> + + {toFixed(data.storedVol) + ' units / ' + data.maxVol + ' units'} + + + {storedContents.map(chemical => ( + + ))} + +
    + )}
    { {recording && 'Virtual beaker' || data.isBeakerLoaded - && ( - - - /{data.beakerMaxVolume} units - - ) + && ( + + + /{data.beakerMaxVolume} units + + ) || 'No beaker'} { value={chemical.volume} initial={0} /> {` units of ${chemical.name}`} - - -