Commit Graph

7539 Commits

Author SHA1 Message Date
san7890 cb20ec99f9 [MDB Ignore] Unit Tests for Invalid Space Turfs (Area Bullshit Edition) (#70967)
## About The Pull Request

So, there's some bullshit with the map loader(?) sometimes where it'll
let space turfs spawn in spots where we REALLY don't want space turfs.
Or, it could also just be a mapper screwing up. Anyways, we might miss
these, so let's set up a broad Unit Test that checks and verifies that
these round-ruining snagglers do _not_ exist.

In order to help me to do this, I standardized and fixed the
nomenclature such that `/area/ruin/space` is default for any map file in
`_maps/RandomRuins/SpaceRuins`, as well as it's subtypes. I also touched
up how we handle shuttle areas in these scenarios. This got a lot of
Unit Test noise filtered out, and is crucial for its functioning. It
should also be how we did it from the start anyways. I added in an
UpdatePaths for any compatible change, but it was completely
non-workable for some of the area type updates.

I also fixed any organic bugs that didn't require an areas type update.
Cool.

Placing space turfs on IceBox:

![image](https://user-images.githubusercontent.com/34697715/199177940-21c64964-1808-41b0-9a92-bf5b82eee2fa.png)

Organically found issues:

![image](https://user-images.githubusercontent.com/34697715/199177972-b27a89de-0e1a-41e5-8fa4-3bee1763b9da.png)

I also added a `planetary` variable to `/datum/map_config` because I
didn't like the hack I was using to see if we had a planetary map, and
I'd rather it just be an explicit variable in the map's JSON.

## Why It's Good For The Game

The less times we get Space Turfs showing up on IceBoxStation, the
better. It also standardizes areas a bit more, which I like (we were
using some incorrect ones in the wrong spots, so those were touched up
in this PR as well). Like, if it's a space ruin, we don't need to use
the lengthy `/area/ruin/unpowered/no_grav` when `/area/ruin/space` does
the same thing.
## Changelog
Nothing in here should concern a player (unless I broke something)

Expect a few commits as I spam unit tests a few times and play
whack-a-mole with bugs.
2022-11-21 07:59:54 +00:00
Rhials fccca69135 Fixes absent spread_text instances (#71386)
## About The Pull Request

spread_text dictates the readout next to "type" on a health analyzer's
output. It was absent from some special diseases (and also the common
cold), leading to the field being blank on the analyzer results.
## Why It's Good For The Game

Closes #71379.
## Changelog
🆑
spellcheck: Adds spread text to some diseases that lacked it.
/🆑
2022-11-20 23:37:46 -08:00
disappointedButNotSuprised f45e58cf0e Coffee Shop DLC - done right this time edition (#70991)
## About The Pull Request

this is a re-attempt at PR #70725 that was practically ready but was
ruined in the course of my hardships with git. Mistakes were made.

In this re-edition I also addressed a few suggestions from the comments
of the original pr. There is a shaker added in the meta station cafe and
the pill bottle is moved out of sight to the fridge (I still left it
cause it contained antidepressants for the especially overworked NT
employees). Additionally, the naming of `/cup/glass/coffee` has been
handled differently this time to minimize the need of changing the code
in multiple places.

Please refer to the original PR for all details concerning the content,
below I add just a rough line-out for the sake of coherency.


![image](https://user-images.githubusercontent.com/57324037/199326210-216e5687-c205-4252-aae3-d55232c1c352.png)

The content of the pr extends to:
- a new coffee bean driven coffeemaker
- syrup bottles
- a coffee condiment display box
- almost complete make-over of the meta station cafe
- adding the new coffeemaker in a few break rooms on delta and tram (2
machines per station)

## Why It's Good For The Game

Please refer to #70725

## Changelog
🆑
add: After a massive success of the Modello 3 series, Piccionaia Home
Appliances rolls out a completely new coffeemaker model and renovates
the meta station cafe for free in a promotional campaign!
add: Syrup bottles, condiment displays, and more, to make the spess
coffee experience even better
/🆑

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2022-11-20 23:23:15 -08:00
John Willard 3b0794eca9 Surgery code improvements (#71182)
## About The Pull Request

* Changes a lot of things about surgeries to hopefully bring it up to
more modern code standards.
* Removes a ton of single-letter vars used in checking surgeries on
people.
* Makes use of continue/break in for() loops.
* Properly documents the vars on surgeries
* Turns 'ignore clothes', 'self operating', 'lying required', 'require
limb' and 'require real limb' from vars into surgery flags
* Removes a lot re-defines of target_mobtype being set to human, as
that's the base anyways.
* Also tries to organize the vars on each surgery a bit.
* Makes the surgery initiator hopefully a little bit more sane
* Removes the surgery's can_cancel and stomach pump's
accumulated_experience vars, as they were entirely unused.

## Why It's Good For The Game

I looked at surgery code and couldn't stand it, this is hopefully
helping bring it to something we can stand.
This however doesn't touch the individual surgery steps.

## Changelog

im exhausted i don't know if this has in-game effects
2022-11-20 23:22:46 -08:00
John Willard 3d4473d141 Makes ruin blacklist file actually set from JSON (#71387)
## About The Pull Request

Json was never checked for the blacklist file, meaning icebox didn't
have any blacklisted ruins.

Now:

![image](https://user-images.githubusercontent.com/53777086/202890015-6d5df1ef-c03e-4392-857a-3ff317ffc2d3.png)

## Why It's Good For The Game

I broke icebox's blacklist by fixing lavalands, hopefully now both will
work.

Fixes https://github.com/tgstation/tgstation/issues/71377

## Changelog

🆑
fix: Icebox's blacklisted ruins works again.
/🆑
2022-11-20 23:14:35 -08:00
Dani Glore be1edab621 Sign Language Refactor & Bugfixes (#71265)
## About The Pull Request
This PR contains an intermediate refactor and a bug-fix for sign
language, which was originally from the Tongue Tied quirk/tongue. With
helpful advice from @MrMelbert and @LemonInTheDark, I have successfully
decoupled sign language from the tongue and ported it into a highly
modular DCS component, and then added an Action for toggling it. Big
thanks to @Wallemations, the original creator of Tongue Tied, for
creating the new Action sprite and helping me to complete this project!

The new sign language component is added to all new Carbon mobs, and
incrementally overrides several critical functions, variables, and
argument lists relevant to a mob's speech; the component primarily
listens for the addition/removal of trait `TRAIT_SIGN_LANG` in order to
function.

Additionally, fixed a bug in the original implementation of sign
language that caused its say verbs such as "emphatically signs" to stop
working. The bug was caused by an unsafe early removal of exclamation
points from the input string, causing a conflict with the `say_mod` proc
which requires such punctuation points to be present.

Here's a granular list of changes:
- Added a ubiquitous signal to extend the behavior of
`/atom/movable/proc/say_quote`.
- Added a ubiquitous signal to extend the behavior of
`/atom/movable/proc/lang_treat`.
- Fixed a bug in the original implementation of sign language that
caused its `verb_yell` to stop working.
- Refactored sign language into a Carbon-only DCS component.
- Refactored the Tongue Tied tongue to use `TRAIT_SIGN_LANG` and
`TRAIT_MUTE`.
- Removed the Tongue Tied quirk, in favor of two separate quirks.
- Added the Signer quirk for sign language, good, costs 4 points.
- Added the Mute quirk, negative, gives 4 points.
- Added a rare sign language Action granter book to maint and space
loot, "Galactic Standard Sign Language".

## Why It's Good For The Game
This PR tactfully re-implements Tongue Tied, re-introducing it as two
new quirks: For sign language itself, I added the Signer quirk, which is
a good quirk which allows you to use sign language for 4 quirk points. I
also added the Mute quirk, which grants 4 quirk points in exchange for
your audible voice. There is also a marked improvement in the code
health as a result of my changes.

Here's a preview of the sign language Action. If you're also mute, it
becomes invisible to reduce clutter:

![image](https://cdn.discordapp.com/attachments/326831214667235328/1041669853741858816/GIF_11-13-2022.gif)

In regard to how useful sign language is, it can be used as:
1. A way to communicate across a vacuum without a radio.
2. An easy way to communicate with deaf people.
3. An easy way to communicate as a Mute person.

## Changelog

🆑 A.C.M.O.
del: Removed the Tongue Tied quirk. The tongue can still be found and
used in-game.
refactor: Refactored Tongue Tied's tongue to use the Sign Language and
Mute traits.
add: Added Sign Language innate action. Granted by book or quirk.
add: Added the Galactic Common Sign Language book as rare maint and
space loot.
add: Added the Signer quirk, which teaches you sign language in exchange
for 4 quirk points.
add: Added the Mute quirk, which grants you 4 quirk points in exchange
for your voice.
fix: Fixed sign language say_yell verb, which allows you to emphatically
sign.
/🆑

Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
2022-11-20 06:22:10 +00:00
oranges 74e43bc556 Improve the naming of the element argument hash index selector (#71319)
So confusing name
2022-11-19 17:04:28 -08:00
1bw0kopy b041995532 Fix being unable to block embeds (#71334)
## About The Pull Request

Fixes #62386
Fixes #71309

## Changelog

🆑
fix: Fix being unable to block embeds
/🆑
2022-11-19 14:38:53 -08:00
Riggle 5086f9aad9 Imaginary friend refactor (#71058)
## About The Pull Request

This makes imaginary friends less janky. It adds many QoL features like
runechat and typing indicators, fixes jankyness that results from a
runtime. You can now even emote and whisper as an imaginary friend which
adds countless RP possibilities that weren't available before.


![image](https://user-images.githubusercontent.com/27156122/199902939-c3d98955-7a1d-4752-86d2-710f38b077a2.png)

![image](https://user-images.githubusercontent.com/27156122/199902999-c88ffb5f-fed0-4cdf-a202-f221a5cb836e.png)

![image](https://user-images.githubusercontent.com/27156122/199903282-50146014-bf09-4e6b-98d2-aa8ebc94b5e3.png)

![image](https://user-images.githubusercontent.com/27156122/199903417-105cf372-a69b-4d49-bfa6-47390a0e64cf.png)

![image](https://user-images.githubusercontent.com/27156122/199936352-c614ee9e-8084-4c27-b817-779aeff427ce.png)

![image](https://user-images.githubusercontent.com/27156122/199936394-063e1431-59ff-4f5c-9b0f-47c342797cfe.png)

![image](https://user-images.githubusercontent.com/27156122/199936483-1941c349-91c1-4754-8827-7f9b9f5bb967.png)

## Why It's Good For The Game

It makes an old feature better.

## Changelog

🆑 Riggle
qol: Imaginary friends now have runechat, typing indicators and emotes!
qol: Imaginary friends can point and spin
fix: Fixed a bug with imaginary friends where ghosts would stay after
aghosting
refactor: Imaginary friend code massively improved
refactor: Imaginary friends now support multiple friends at the same
time!
admin: Imaginary friends no longer bypass filters
/🆑
2022-11-19 14:20:51 -08:00
Zephyr 47ba13033f JSON Savefiles | Player Saves use JSON (#70492)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
TODO:

- [x] DOCUMENT SHIT
- [x] UPDATE DOCUMENTATION

## About The Pull Request

Adds a new datum, which is intended to be a replacement for the stock
savefile type, json_savefile
As you can imagine, this is essentially just a wrapper around a json
file for reading/writing/manipulation that is intended to be a dropin
replacement for savefiles
It also have the ability to import stock savefiles and parse them into a
json tree

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game

Permission obtained from MSO and Mothblocks.

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
Not player facing, tested locally exhaustively to ensure it doesnt break
shit
🆑
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2022-11-17 21:45:18 -08:00
texan-down-under c5f06b5cd9 RADIO UPLINK QUICKFIX (#71326)
## About The Pull Request
I didn't know .d was already reserved for admin deadsay, so it now is
unlocked with .z
## Why It's Good For The Game
Makes it functional
## Changelog
🆑
fix: radio uplink now works, moved to .z because .d is reserved
/🆑

Co-authored-by: etherware-novice <candy@notarealaddr.com>
2022-11-18 16:42:28 +13:00
jimmyl a4b1fd4cd3 Adds two new whiteships, the "Personal Transit Shuttle" and the "Obelisk" (#71093) 2022-11-17 17:49:16 -07:00
1bw0kopy a037f78349 Fix emberfall sound looping forever (#71282)
## About The Pull Request

Fixes #71154

## Changelog
🆑
fix: Fix emberfall sound looping forever
/🆑
2022-11-17 12:53:55 -08:00
John Willard 562a99c467 Fixes Golems not spawning on Lavaland (#71017)
## About The Pull Request

Golems is apparently disabled on Icebox, but isn't disabled on Lavaland.
However, blacklisting ruins doesn't care for maps, and will blacklist
all, as if it were using all maps at once. This isn't a problem because
Lavaland and Icebox do not share common ruins, except for one: Golem
ship.

## Why It's Good For The Game

Config now works as it's supposed to, Golems should spawn on Lavaland
again (assuming it's enabled in config, I dont keep up to date with
that)

## Changelog

🆑
fix: Ruins blacklisted from icebox shouldn't also blacklist it from
lavaland, and vice versa.
/🆑
2022-11-17 12:14:46 -08:00
Paxilmaniac fdc05066a6 Adds falling hazard element, beware of falling tools, wear your hardhat, comically timed piano falling on the clown (#70970)
## About The Pull Request


https://user-images.githubusercontent.com/82386923/199180691-6605c8cc-e8aa-490e-ab65-909d45d12ca0.mp4

Do note that the damage in this video is extremely exaggerated compared
to what the normal value is.
## Why It's Good For The Game

All these signs about engineers needing to wear their hardhat, and for
what? For the assistant dropping toolboxes onto them from above, that's
what! Also allows people to do as god intended by allowing them to drop
pianos on people.
## Changelog
🆑
add: A variety of items, mainly tools, around the station might hurt if
they fall on your head, remember to wear your hardhat and to avoid
standing under large red X marks on the ground with a piano hanging
above them.
/🆑

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-11-17 18:51:27 +00:00
MrMelbert 79ffefa06d Allows Fully Heal to be passed a series of flags, fixes Adminordrazine being horrible (#71123)
## About The Pull Request

- Fully heal can be passed a series of flags detailing what all is
healed by the proc. This allows for things to provide
almost-but-not-quite fully heals.
- Uses this in Adminordrazine, so that it stops being a pain to update
every time fully heal is updated.

This includes some small balance changes which i'll go over, nothing
extremely noticable.

## Why It's Good For The Game

Allows for more precise control over full heals. 

## Changelog

🆑 Melbert
refactor: Fully heal can be passed a series of flags. As a result, some
things which previously did a full heal might heal slightly less, or
some things which did partial full heals might do slightly more.
fix: Adminordrazine will no longer completely break every facet of a
person
admin: Ahealing a changeling will refill all of their chems.
/🆑
2022-11-17 10:09:00 -08:00
texan-down-under 3f56f3fb46 Moves flick_overlay to atom instead of being global (#71045)
## About The Pull Request
Moves flick_overlay and flick_overlay_view to atom instead of being a
global proc
## Why It's Good For The Game
General performance and syntaxical improvements, makes it easier to
retrieve iconstates
## Changelog
🆑
fix: flick_overlay is an atom proc
/🆑

Co-authored-by: etherware-novice <candy@notarealaddr.com>
Co-authored-by: Candycaneannihalator <candycane@thisisnotarealaddr.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-17 08:54:24 -08:00
antropod be16ca37e3 Visually update containers when crafting (#71135)
## About The Pull Request

Makes reagent containers update their appearance when crafting.
Fixes #69935, minor but annoying bug, especially when you are playing as
chef.

## Changelog
🆑
fix: Containers visually update after crafting.
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-16 22:20:34 -08:00
texan-down-under ab9c9594a2 Fixes the fresh laundry moodlet (#71117)
## About The Pull Request
Fixes the fresh_laundry moodlet, by adding a new component to control
weables granting mood!
## Why It's Good For The Game
Adds a slight benefit for using the laundromat over just standing in a
shower, rp opprotunities, simplifies moodlets while wearing an item.
## Changelog
🆑
fix: fresh laundry mood is functional again
code: new component for controlling wearables granting mood
/🆑

Co-authored-by: etherware-novice <candy@notarealaddr.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Candycaneannihalator <candycane@thisisnotarealaddr.com>
2022-11-16 21:38:50 -08:00
moocowswag a8830d238c Adds chromosome effects to Cryokinesis, Shocktouch, Chameleon, and Webbing mutations. (#71118)
Cryokinesis instability up by 10 (from 20 to 30)
Cryokinesis base cooldown up by 1 second (from 15 to 16) now accepts
energetic chromosomes (8 seconds when applied)

Shock touch instability up by 5 (from 30 to 35) now accepts both
energetic and power chromosomes

Shock touch cooldown up by 2 (from 10 to 12) (cooldown of 6 when
energetic is applied)

If a power chromosome is applied Shock touch does a weak 7500 power
(I`ve seen it hit from 5-7 damage) tesla shock with range of 7 when used
on a viable target (extra damage does not apply to target, no you cant
use it on yourself, no you cant use it on someone that is shock immune,
yes you have to put yourself in harms way to apply the tesla shock.)

(The vars for the tesla shock can be edited by admins for events/abuse)

Chameleon now accepts power chromosomes to fully stealth about 3 seconds
faster.

Webbing now accepts energetic chromosomes
2022-11-16 22:25:28 -06:00
Striders13 ec133d0f7c Replaces pubby whiteship (#71030) 2022-11-16 18:25:00 -07:00
texan-down-under d9998c8167 Ports Beestation's radio uplink (#71210)
## About The Pull Request
A port of https://github.com/BeeStation/BeeStation-Hornet/pull/7363

The radio uplink is now reworked to require saying a codeword over the
secret .d channel. This means that you can do it hands free, but people
around you can hear you whispering the codeword
## Why It's Good For The Game
Current radio uplink is dumb, it has a lot of drawbacks (losing common
radio, fiddling with the tgui slider, having to reset the frequency
after) that its almost unusable. This new uplink has a more unique
trigger method with its own ups and downs
## Changelog
🆑
add: New radio uplink! Simply speak your codeword into the :d channel to
unlock it
code: new COMSIG_RADIO_NEW_MESSAGE signal
/🆑

Co-authored-by: Candycaneannihalator <candycane@thisisnotarealaddr.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-16 16:06:28 -08:00
MrMelbert 3c187487b1 Renews a bunch of old roundend new reports that got lost. Plus, some roundend report QoL for cult and revs. (#71284)
## About The Pull Request

A few roundend reports got lost from moving to dynamic and other prs.
This PRs re-allows them to occur. Namely: "Wizard Killed" (lost in
dynamic), "Blob nuked" (lost in dynamic), "Cult escaped" (lost in cult
rework), and "Nuke Ops Victory" (station destroyed via nuke) (lost from,
what I can see, an oversight / accidental swap of report values).

Additionally, small roundend report QOL for cult: Removes antag datums
from spirit realm ghosts after being dusted, so they do not show up on
the report. And in reverse, heads of staff who were dusted / destroyed
in revolution rounds are now also shown in roundend reports.

## Why It's Good For The Game

Some of these reports are dead, which is is a shame because I think
they're cool and fun.

## Changelog

🆑 Melbert
qol: Successfully fending off a blob now has a cross station news report
again. More pressing reports will take priority over it, though.
qol: Successfully killing a wizard (and all of their apprentices) now
has a cross station news report again.
qol: If more than half of a cultist team manages to escape on the
shuttle (rather than summoning Nar'sie), they will send a unique cross
station news report. This is still a loss, by the way. Summon Nar'sie!
qol: Nuclear Operatives successfully nuking the station now has its
unique cross station news report again, and no longer uses the generic
"The station was nuked" report.
qol: Nuking the station to stop a blob infection now has a unique cross
station news report again. Good luck convincing admins to allow this.
qol: Cult ghosts from "Spirit Realm" no longer persist on the cult's
team after being desummoned, meaning they will not show up on roundend
report.
qol: Heads of staff will now always show up on revolution roundend
report - even if their body was fully destroyed.
/🆑
2022-11-16 13:44:33 -08:00
lizardqueenlexi 19291dd6cb Fixed survival boxes for plasmaman clowns and mimes. (#71185)
## About The Pull Request

Survival boxes for clowns and mimes have been made into a subtype of
standard survival boxes. This fixes a bug where, due to a missing
wardrobe_removal callback, plasmaman clowns and mimes would almost
always spawn with a useless oxygen tank instead of their second plasma
tank.

suicide_act and attack_self have been copied directly from the "box of
hugs" in order to maintain the same behavior despite the repathing.

(I made a similar PR some time ago, but for some reason I let it close
without finishing it.)
## Why It's Good For The Game

A single tank of plasma does not generally last long enough to survive a
longer round, and it's no fun to suffocate because the company sent you
to work with a tank of deadly poison instead of nice, breathable plasma.

Also, this makes the clown and mime survival boxes more consistent with
other job-specific survival boxes, which are all subtypes of the main
survival box. This does away with some ugly, error-prone code
duplication (with the concession of requiring smaller-scale, hopefully
less ugly code duplication).
## Changelog
🆑
fix: Made clown and mime survival boxes contain the correct internals
tank for plasmamen.
/🆑
2022-11-16 09:05:50 +00:00
Fikou 43bf6e2665 mech bustin update 2022 (#70891)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
Adds a huge ass crowbar to robotics (the mech removal tool), it deals 5
damage unwielded, or 19 wielded. (should be fine, considering robotics
also has the easiest access to the materials needed for a chainsaw)
You can use it while wielded on mechs to break the occupants out. This
takes 5 seconds (or 3 in an unenclosed mech like a ripley)
When you die in a mech you no longer automatically get ejected.
refactors fire axe cabinets to support more items than the fireaxe
makes some vehicle code better
closes #70845 (you can still enter a mech without limbs, i think thats
fine because you can use it to protect yourself from death in a
dangerous situation or something until someone breaks you out with the
really large crowbar)
video: https://streamable.com/x4gom2

## Why It's Good For The Game

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
robotics having a giant ass crowbar to break people out of mechs seems
like a fun idea
you currently cant exit a mech if youre incapacitated inside it unless
you DIE

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑 Fikou, sprites by Halcyon
refactor: fire axe cabinets support items that aren't fire axes
balance: mechs no longer eject you when you die in them
add: Adds a giant crowbar to robotics, it can break open mechs to eject
their pilots.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2022-11-16 08:36:35 +00:00
san7890 1d256b5506 Refactors Rabbits to be a Basic Mob (#71205)
## About The Pull Request

Back in #64175, I reworked rabbits such that their base behavior was
just a cute fluffy snuggle monster, and not have the "easter" variant be
the default. Now that we're transitioning everything from simple_animal
to basic, I figured now was the time to shift that over too.

Pretty much everything should be the same as it was before, I even took
some time to add behavior to some elements to allow it to work (let me
know if I should handle it a different way) but rabbits as a
simple_animal and rabbits as a basic mob should now not be very
distinguishable (beyond the fact that they only speak via subtrees).

I also got rid of the single-letter icon_states in the DMI and
accomodated the code to fix because I finally got irritated enough to do
something about that.
## Why It's Good For The Game

Although I didn't really have any pressing urge to add more complex AI
behavior to rabbits than just pretty much re-implementing what they had
as a simple_animal, this is an excellent first-step to allowing much
more extensible behaviors to these fuzzy creatures.

Also, it takes three more mobs off "the frozen list". Whoopie!
## Changelog
🆑
fix: Dead Black Space Rabbits should now properly have a sprite.
/🆑

The UpdatePaths is useless for the maps we have on our repository
(holodecks use a spawner code-side), but I'm going to be nice to
downstreams who need it.
2022-11-15 23:40:39 -08:00
Sol N de662db397 Excercise Equipment is now craftable (#71190)
## About The Pull Request

Imagine if you will a humble chaplain who wants nothing more than for
all of the spiritual folk on the station to get as massive gains as they
can, after finding that they can not just make more exercise equipment
and that the station does not have any in public places, they go annoy
security enough to get into permabrig only to find out that they cant
even unwrench the equipment and move it to the church!!!

NOT ANYMORE!!!


![jS2aBMBa0B](https://user-images.githubusercontent.com/116288367/200889423-f1b6365c-24c4-4f45-8ca4-c96c9085cf27.png)
crafting recipies


![dreamseeker_O4BgBRsFa8](https://user-images.githubusercontent.com/116288367/200889002-8dd7c927-0745-46a9-a4bc-578c7279042a.gif)
demonstrating unwrenching and wrenching equipment


![dreamseeker_hCFQJZdzoS](https://user-images.githubusercontent.com/116288367/200889019-5f4c8399-d539-4d84-8a3f-7735c3ba1f68.gif)
crafting a punching bag and punching it

Now you can craft as much exercise equipment as you want! May everyone
on the station get as strong as possible and not just prisoners.

Also I changed the message that plays when you try to use exercise
equipment someone else is using into a balloon alert.

![dreamseeker_PwNesmcR1f](https://user-images.githubusercontent.com/116288367/200890964-4f9fa3ee-ce07-4e6e-815c-a3f4593d06b1.png)

## Why It's Good For The Game

Access to exercise equipment on some maps is limited to static positions
and is currently mostly only for prisoners as every map does not have
public exercise equipment. Expanding the access means that you can have
a Drill Sargent Head of Security or Captain who commands people use
these or allows a psychologist to prescribe healthy exercise habits to
their patients.

I think having the potential for exercise equipment on every map is more
fun and also if prisoners get their hands on tools they should be
allowed to mess with these to annoy security or aid in their escape.

## Changelog
🆑
add: the punching bag, bench press, and chest press are all able to be
crafted and unanchored.
add: crafting recipes for the above
qol: changed a chat message into a balloon alert
qol: adds screentips to equipment (thanks for suggesting i do this
mothblocks!)
/🆑
2022-11-15 22:02:26 -08:00
Tim 4f47f87165 Bedsheet Improvements (#70576)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

This is a remake of #68602 that does:

- Adds context screentips for bedsheets
- Lets you attack other mobs that are lying down to cover them in a
bedsheet
- Removes deprecated bedsheet code
- Fixes tucked in items (plushies, nuke disk, bedsheets) to use proper
direction and rotation for beds
- Fixes bedsheets covering mobs in the wrong direction
- Changes bedsheets to only cover mobs that are lying down
- Bedsheets can now be rotated with AltClick

## Why It's Good For The Game

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

Easier to use and looks nice.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
qol: Bedsheets now have context screentips and will cover up mobs if
they are attacked and lying down. Bedsheet can also be rotated with
AltClick.
fix: Fix rotation and offsets to work properly on mobs, nuke disk,
plushies, and bedsheets when placing something on a bed.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-15 21:55:28 -08:00
Zephyr 58b4b07ef0 [MDB Ignore] Corrects Automatic Shuttle Boundary Generation (#71220)
When you load a map template, it does many things before considering
itself finalized.
One of these steps is to iterate over all the loaded items and
initialize/process them.
Unfortunately because a shuttle setups the bounds after
initTemplateBounds is called, the mobile docking port ends up being
initialized before the bounds are actually setup correctly.
The solution to this is to explicitly ignore the mobile docking port,
and have it initialize immediately after calculating the bounds.
2022-11-16 01:36:05 +00:00
GoldenAlpharex 6403293df9 Changing z-level after being cleaned no longer makes the bubbles re-appear (#71201) 2022-11-15 23:11:19 +00:00
Fikou d402ce4ee2 New Station Trait: Cybernetic Revolution + Body Purist Quirk (#71229)
## About The Pull Request
Adds a new station trait, the Cybernetic Revolution
It causes every crewmember to spawn with a cybernetic implant/organ (it
depends on their job).
For example. the bartender has an upgraded cybernetic liver, security
officers have extendable flashes, prisoners have flash shielded eyes.
For AIs, they get the surveillance upgrade.
The trait also lowers research costs for the cybernetic designs, triples
the price of EMP kits and EMP flashlights, doubles price of EMP bombs,
and allows traitors to buy autosurgeons, so they can implant themselves
with whatever they ripped out of the crew.
If you do not wish to partake, you can also take the Body Purist quirk,
which prevents you from getting a cybernetic, but everytime you have a
mechanical limb/organ from some other source, you will take a severe
mood penalty.

## Why It's Good For The Game
This could be a cool modifier to rounds once in a while, slightly
modifying the gameplay of all the crew.
Also our implant system is very barely used, so why not?

![image](https://user-images.githubusercontent.com/23585223/201492290-2043bbe8-8270-4114-add2-a612eafa0ec7.png)


## Changelog
🆑
add: New Station Trait: Cybernetic Revolution
add: Body Purist Quirk
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-15 21:50:30 +00:00
Tim a056f50ab0 Fix pacifists being able to slice necks (#71149)
## About The Pull Request
Fixes #71146

Pacifists will no longer be able to slice peoples necks. (however they
can still butcher things)

## Why It's Good For The Game
Better consistency.

## Changelog
🆑
fix: Fix pacifists being able to slice necks
/🆑
2022-11-15 10:34:43 -08:00
John Willard ac8dc42060 Strays away from GLOB.machines when possible (#71100)
## About The Pull Request

This replaces needless GLOB.machines with more precise lists whenever
one existed, plus adding a new one for CTF machines.

## Why It's Good For The Game

GLOB.machines holds every single /obj/machinery in the game, so checking
the whole list for stuff is pretty big. This aims to cut that down by
using smaller lists whenever possible. I also gave CTF a new list
because it checked machines very often.

## Changelog

Nothing player facing.
2022-11-15 08:59:22 -08:00
AnturK 4d6a8bc537 515 Compatibility (#71161)
Makes the code compatible with 515.1594+

Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword

And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.

@tgstation/commit-access Since the .proc/stuff is pretty big change.

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-15 03:50:11 +00:00
tattle 5ad52146cd Ports fire blossoms (#71242)
Adds fire blossoms from White Sands/Shiptest, a glowing lavaland plant by Tiramisu and TetraZeta.
2022-11-14 22:33:25 -03:00
Iamgoofball 25d4afc869 Retires explosive lance crafting to a nice farm upstate where it has plenty of room to run around (#71256)
## About The Pull Request

You can no longer craft explosive lances.

## Why It's Good For The Game

Explosive lances are unhealthy for the game in it's current iteration.
Many years ago when the game was more loose and we weren't dealing with
players who treat the game like competitive TTT or Town of Salem,

They are a one shot kill weapon, which is the most powerful kind of
weapon in every gamemode. @JohnFulpWillard likened it to 1f1, a concept
from Town of Salem players where the town trades 1 person for 1 bad guy.

Modern ss13 design includes a significantly heavier load of antagonists
that aren't fixed roundstart compared to when the e-lance went in.

When we added the e-lance, if nuke ops spawned, that was it, there was
nuke ops, if you e-lanced the nuke ops and died you were dead until the
next round.

Nowadays you're rolling for lone operative, blob, wizard, disease,
revenant, and every other fun enjoyable antagonist role under the sun.

I can e-lance a nuke op/cultist/traitor/revolutionary/any bad guy in the
game as a non-antag assistant, die, and have a good chance to roll
another, way more fun antag in deadchat.

My change to make the e-lance a proper "we both die" tool didn't
actually help because I didn't quite realize that to the modern SS13
player because of how we designed Dynamic and antagonists in the modern
era, death is, frankly, not a punishment anymore.

It's time we admit the facts, items designed in 2015 SS13 in #12389
simply don't hold up in a healthy manner in 2022 SS13. Dying in SS13 in
2015 was a significantly different experience with different
consequences than it has now, and right now "kills you when you use it"
is not the same massive downside it was 7-8 years ago.

## Changelog
🆑
del: You can no longer craft explosive lances.
/🆑
2022-11-15 10:07:50 +13:00
tattle ad5debaaa1 Add investigate_deaths (#71112)
## About The Pull Request
Adds INVESTIGATE_DEATHS, an investigate category intended to better show
causes of death.


![image](https://user-images.githubusercontent.com/66640614/200142461-c17b5e51-1116-4eef-bbfb-49bc024c0953.png)


![image](https://user-images.githubusercontent.com/66640614/200147306-09bef76e-68c6-4f0a-bdf9-0211eb274e66.png)

Also makes suicide_act take a `mob/living` as an argument instead of a
`mob`, and some minor style improvements since apparently I hate
atomicity.

## Why It's Good For The Game
Inspired by a mysterious death and dusting. More logging and leads for
admins investigating deaths.

Also fixes #59028

## Changelog
🆑 Tattle
admin: added investigate deaths to shed some more light on unusual
demises, dustings, and gibbings
/🆑

Co-authored-by: tattle <article.disaster@gmail.com>
2022-11-07 16:22:37 -08:00
GuillaumePrata c945234491 [NO GBP] Add a 2 second cooldown for ore bag balloon alerts (#71133)
## About The Pull Request
And removes an extra `to_chat` message for when your ore bag is full and
can't put ore in using the `silent_for_user` system.
## Why It's Good For The Game
I have been moving the chat messages that miners get bombarded every
shift away from their chat bar and into balloon alerts with the goal of
making the chat be a cleaner place for miners, as it is their only way
to interact with the station while down at lavaland.

People have been complaining that it was too much, which is fair. I've
been work on a mini rework on how ore bags function and a cleaner
feedback with ore icons falling into the bag, but I'm just not happy
with how it works now so I will restart on it.

Until I get that sorted, I added a 2 second cooldown on the balloon
alerts for picking up ore as a middle ground, it provides good feedback
for new players while not being as distracting.
## Changelog
🆑 Guillaume Prata
qol: Ore bag balloon alerts have a 2 second cooldown now and a spammy
message (hopefully the last) it send to your chat about being full was
removed
/🆑
2022-11-07 11:33:00 -08:00
Fikou 78124de4c1 concussive gauntlets now launch you away from gibtonite and mine basalt (#71108)
when you mine gibtonite using concussive gauntlets, you now get launched
away from it, so you wont get hit by the explosion
also lets them mine basalt for glass
2022-11-07 14:07:51 -05:00
VexingRaven a91e732cc2 [NO GBP] More balloon alerts for guns + fixes a wrong alert (#71136)
## About The Pull Request

Turns out I missed a few to_chats in #70398. Also I accidentally
inverted one so it said close the cover instead of open it. Oops!
## Why It's Good For The Game

Same reason as the original PR, balloon alerts are handy for stuff you
care about right now and not in 5 minutes. Also they should probably not
tell you to do the opposite of what you actually need to do.
## Changelog
🆑 VexingRaven
fix: Fixed a few balloon alerts for guns and moved a few more chat
messages to balloon alerts
/🆑
2022-11-07 09:33:29 -08:00
moocowswag a958d0f4b8 Fire breath properly updates when lacking power chromosome. (#71085)
Basically, if you put a power chromosome in your fire breath and then
lose the mutation and got a new fire breath mutation (without a power
chromosome) you would still retain the benefits of the power chromosome
and could stack it with energetic.

This pr fixes that by reverting to initial values when lacking power
chromosome.
2022-11-06 19:40:20 -06:00
Profakos 8f5e17163f Fixes caravan ambush ruin's id (#71105)
During initialization, when the Caravan Ambush space ruin loaded, there
have been error message during initialization, such as
`create_network_simple: SPACE/CARAVANAMBUSH.DOORS.AIRLOCKS IS INVALID,
replacing with LIMBO`. This was caused by the `/` present in the space
ruin's ID, which the network validation regex did not accept. I removed
`space/` from the beginning, both to make it compliant with the regex,
and also because there is no other kind of caravan ambushes to
differentiate it from.
2022-11-06 06:37:52 -05:00
lizardqueenlexi 443879531d V8 Engine fixes (#71033)
The V8 engine now allows you to learn the recipe and will no longer runtime when it checks if you already know it.
2022-11-06 06:09:01 -05:00
Dani Glore d42115b2c4 Add: Deaf Personnel Pin (#71073)
This PR contains a single small addition: The deaf personnel pin/accessory for users of the Deaf quirk. I changed the quirk type to `item_quirk` in order to easily grant the pin to the user. Upon spawning, the quirk will put a deaf personnel pin in their backpack or hands, allowing them to pin it to their uniform as they please.
2022-11-06 05:42:17 -05:00
ShizCalev f54994c260 Fixes some monkey business with monkies trying to give items to mobs with no hands. (#71086)
held_items is only populated if the mob is able to hold things. In this case, lizards (and most simple / basic mobs) don't have hands, so it's just an empty list. Fixed that at the `/mob` level.

Also made the giving logic a little more robust to handle mobs mobs not actually wearing anything as well.
2022-11-06 05:37:33 -05:00
ShizCalev 9ebdbe1b3d randomizes the pixel offset of stuff when it comes out of a microwave (#71091)
Randomizes the pixel offset of stuff when it comes out of the microwave
2022-11-06 05:24:27 -05:00
Jacquerel 140c12b580 Giant Spider action fixes & Action feedback (#70848)
I went into this just planning on fixing some weird behaviour with
spider buttons and ended up touching a lot of files.

Specifically this is because some of the actions used by Giant Spiders
would print feedback messages in IsAvailable, which was bad because this
is called every time the button updates and so would (for example) print
a bunch of messages about eggs existing when you spawned as a
broodmother because the lay eggs button would be checking for that when
it was granted to you.
The feedback _is_ useful though so I've implemented a pattern used in
Spell where we just pass a flag describing whether we want to print it
or not, which is generally set to true in Trigger() or if the player
physically pressed the button.

A side effect of this is that any action with usability flags (such as
"not when handcuffed") will now tell you why it is failing if you click
it while it is unusable, which is nice.

The spider changes are largely to make sure that their buttons are
tinted at the correct time, they were previously tinted red as if
inactive at almost all times due to the icon not being updated when
relevant conditions changed.
This necessitated adding a new signal (two actually) sent when a
do_after begins and when it ends (for any reason, including premature
interruption).

I also fixed a quirk where the Wrap ability had a permanent 'active'
outline after using it once (the icon states were inverted).

I also fixed a bug where you could just lay infinite enriched eggs after
eating one guy, which is not how the game describes it as working.
I looked up the PR adding it
(https://github.com/tgstation/tgstation/pull/54451) and one egg per kill
seems to be how it is supposed to work.

And finally I changed a few nurse spider to_chats into balloon_messages,
on the principle that they're not information which needs to stick
around for more than a few seconds.
2022-11-05 22:09:17 -05:00
Sealed101 4ad330b585 Adds Sabrage (#70755)
This PR adds an interaction to champagne bottles that allows the user to
pull off the cork with an edged (for code purposes, sharp) item. The
sharper the item, the better your chance is to pull the stunt off.
Minimum force is 5, which lets you do it with a captain's pen, for
instance. It's slower than just removing the cork by hand, as to
simulate the player removing the foil before taking the swing. Heads of
staff get a +20% chance to succeed due to being officers in some
capacity. A skillchip that can be bought from the Library Play Room
vendor increases the chance by +35%. Failing the stunt will smash the
bottle in your hands, spilling the contents all over you. This will
produce a bottle with the neck broken off, instead of its bottom.

Pulling the stunt off provides a weak mood buff for the user, and a
weaker mood buff for any witnesses. However, if someone else pulls the
sabrage off after you, you will get your success buff removed. Think of
it like pulling any other stunt and challenging someone else to do it,
only for them to succeed as well. Makes you bitter, doesn't it? Failing
the stunt also produces a weak mood debuff to the user.
2022-11-05 17:54:39 -05:00
Mothblocks 60ee087b16 Remove ELEMENT_DETACH on everything that doesn't need it, rename to ELEMENT_DETACH_ON_HOST_DESTROY + a PSA (about 0.2s init time savings) (#70972)
ELEMENT_DETACH is **not** a requirement to having `Detach` called.
Detach is always called when the element itself is destroyed.

ELEMENT_DETACH is a flag that when set, makes sure Detach is called when
the atom destroys.

Sometimes you want this, for instance:

```dm
/datum/element/point_of_interest/Detach(datum/target)
	SSpoints_of_interest.on_poi_element_removed(target)
	return ..()
```

This Detach cleans up a reference that would have hung if target was
destroyed without this being called.

However, most uses of Detach are cleaning up signals. Signals are
automatically cleaned up when something is destroyed. You do not need
ELEMENT_DETACH in this case, and it slows down init. This also includes
somewhat more complex stuff, like removing overlays on the source
object. It's getting deleted anyway, you don't care!

I have removed all uses of ELEMENT_DETACH that seemed superfluous. I
have also renamed it to `ELEMENT_DETACH_ON_HOST_DESTROY` to make its
purpose more clear, as me and a lot of other maintainers misunderstood
what it did,

---

An update to this, ELEMENT_DETACH *is* needed for anything that can
register to a turf, as turfs do not clear their signals on destroy.
2022-11-05 15:00:59 +01:00
GuillaumePrata 2625fb80d0 Adds a silent_for_user var to mute storage messages only for the user. (#70941)
## About The Pull Request
We have a `silent` var that makes storing/removing items from a backpack
not send a message to anyone's chat.
This adds a midway point, silent messages only for the user to cut on
spam/unnecessary messages while other players still keep them to prevent
free stealth shenanigans.

For now the only storage item I have given this new variable is the ore
bag for miners, as even with #70487 miners still have to deal with a lot
of pointless messages getting in the way of radio chatter.
## Why It's Good For The Game
Less pointless spam.
You mined the ore, you stepped on it, you get a balloon alert explaining
what happened.
There is no reason to also send the default storing/removing message to
your chat.

it can also be easily ported to other backpack/boxes/bags, I personally
would want it on basically any storage but that would hurt on new
player's feedback, so it is a conversation for another PR.
## Changelog
🆑 Guillaume Prata
qol: Ore bags are "silent" for the wearer and won't send pointless chat
messages about what has been stored/removed from it. Other players will
still get a chat message, so miners can't get away with surprise plasma
ore bombs.

/🆑
2022-11-04 01:03:07 -07:00