Commit Graph

36709 Commits

Author SHA1 Message Date
nmajask
64d5de009c Revives "Adds sound effects to surgeries" (#65578)
* Adds surgical sounds

Rough implementation as I don't have too much time tonight.

* Fixed falure_sound

Fixed a typo

* Removed the lists

Removed the lists and added sounds to revival surgery, stuff will probably break

* Fixes the playsounds still using pick

* Added sounds to more surgeries

Added sounds to four more surgeries
2022-03-25 20:07:00 -04:00
SmArtKar
a1356fdd42 BCI component expansion (#65616)
This PR adds 2 new BCI components: VOX component which allows to play vox announcements(for the user only!) and Thought Listener component which allows user to input a string upon activation.

I've also added a rotation port for the object overlay component so you can make pinpointers using it.

This PR requires #65604
2022-03-25 18:04:27 +00:00
SmArtKar
62c5569d6f Adds view sensor (#65624)
Adds view sensor component to circuits which allows to get all visible(no ghost detectors, sorry) movable atoms in a 5 tile range. It only works when your circuit's shell is placed on the ground or is held in hands.
2022-03-25 18:03:02 +00:00
Tastyfish
5a1fa40c6b Fixes assistants going to medium priority when other job is selected (#65645) 2022-03-25 21:16:50 +08:00
Ghilker
ff24507f4c fix gas consumption (#65529)
Fix an overlooked crystallizer issue where gases wouldn't get consumed because of a fixed rate of removal instead of an percentage based one.
Instead of removing a max of 500 moles from the final gas consumption (allowing some recipes to not consume gases at all) the quality removes a percentage of the recipe requirement maxing at 85% decrease (on poor quality you will still consume double the amount)

fix an exploit with the machine
2022-03-24 17:55:37 -07:00
John Willard
8c085b22a1 simplifies and fixes bot modes (#65628) 2022-03-24 15:41:11 +01:00
Ghom
d5a27d3149 Fixing a couple issues I've introduced with canvases. (#65626)
* Fixing a couple issues with canvases that I've introduced.
2022-03-24 15:34:54 +01:00
vincentiusvin
55336d1e53 Atmos Control Console Refactor (and syndiebase atmos tidyup) (#65372)
Main Takeaways For Mappers:

Use monitored pathed atmos devices very carefully. Also dont put atmos_sensors willy nilly. They are used to hook to atmos control monitors.

We want to keep at most one device broadcasting for each of the atmos sensor, inlets, and outlets. Run the mapping verb Check Atmos Chamber Devices to be sure, though this might not catch everything.

Some of the warning are pretty harmless. For example if you have reconnected the "station atmos monitor" and you get no listener for distro/waste loop warning, it's safe to ignore.

I don't know what the maptainer policy is on making new subtypes for offstation content, but if you do please branch off the general ones instead of the specific gas ones. If you aren't making a new subtype, varedit the general ones too.

About The Pull Request:

Need Would prefer this to be merged before #65271 (In game atmos guide).
Not strictly necessary, just makes me sleep better knowing the handbook wont die alongside the rest of the UI.

Fixes #36668 (Atmos Monitoring Consoles don't update it's sensors to the new tank after reconnect())
Fixes #32122 (Mix console fucked after reconnecting it)

Also made the distro meter thing broadcast more info instead of just the pressure, because I'm sure nobody would care and it would make my life easier.

A small high-level overview in case this breaks again in the future:

A signal datum (not DCS) is sent by the atmospheric devices (injectors and vents) and will be received by the atmos computers. The data is then stored at the monitor object and then passed to the UI. This initial signal is sent by `broadcast_signal()`, called by `atmos_init()`.

New sensors/vents (if you can actually get them in game, still only adminspawn/wrenchables afaik) will also initiate the conversation if atmos_init() is called, so it works fine. This means you need to unwrench and re-wrench the devices if you adminspawn them though, ugh.

In case of a newly built computer, it needs to be the one that prompt the data to the devices, so we send a request signal. This is a bit inefficient since it doesnt work off of callbacks and assocs like DCS, but won't really matter since we're doing this rarely.

We only talk with the injectors and vents when necessary here, while sensors and meters keep beeping with every process_atmos() tick so they rarely break.


Why It's Good For The Game:

Messy code gone (debatable).


Refactored the atmos control console devices. The ones that hook to the big turf chambers.
Distro meter now broadcast the whole gasmix info instead of just pressure to the monitors.
Lavaland syndie's atmos chamber vents are now actually configurable. Moved a few things around to accomodate this.
Lavalannd syndie chambers hooked to distro and moved distro pipe to layer2
atmos monitors can detect reactions now.
Some minor code changes to how anomaly refinery and implosion compressor show the gas info. No changes expected, report if bug.
recoded checks for atmos chamber abnormalities in debug verbs.
2022-03-24 02:12:14 -07:00
Fikou
aaef520600 xray lasers now have 100 armor penetration (#65629) 2022-03-23 21:39:06 -04:00
Ghilker
ba8654a172 Electrolyzer reactions update (#65423)
refactor the Electrolyzer to use datumized reactions for its checks instead of just hard coded one in process.
added another reaction as proof of concept, the Hypernoblium to Antinoblium conversion

refactored the electrolyzer to use datumized reactions instead of hardcode them in process
added the hypernoblium to antinoblium conversion, when hypernoblium is exposed to the electrolyzer it will be converted to antinoblium
2022-03-23 15:27:18 -07:00
Tim
77ba501459 Refactor mood events font colors, spans, and newlines (#65597)
* Add newline to mood_events loop

* Update beauty_events.dm

* Remove repetitive \n from drink events mood

* Remove repetitive \n from drug events mood

* Remove repetitive \n from generic negative mood

* Remove repetitive \n from generic positive mood

* Remove repetitive \n from needs events mood

* Move /datum/mood_event/area to file

* Add grey and boldnicegreen span font colors

* Refactor spans for moods to be automatic

* Fix mood whitespace

* Add area_events.dm to tgstation.dme
2022-03-22 19:39:24 -04:00
dragomagol
a364ce1e68 [READY] Podperson hair (sprites by Shiets!) (#65205)
Adds 10+ plant based hairstyles for podpeople to use in the form of an external organ.
2022-03-22 16:48:18 -05:00
capsaicinz
75f7c7a69c changes projectile's armor resistance flag to "armor_flag" (#65487)
* IHATEVARIABLES

* removes the face
2022-03-22 17:14:53 -04:00
Mothblocks
0d4f2c1e47 Log filters better (#65539) 2022-03-22 17:08:29 -04:00
Seth Scherer
20bba0af41 Fixes being able to use revival surgery on blacklisted defib victims (#65544)
Just added a check to revival surgeries' can_start
2022-03-22 17:07:38 -04:00
GoblinBackwards
88c05be924 Adds optional automatic ceiling generation for map templates and gives bluespace shelters ceilings (#65582)
* Gives bluespace shelters roofs

* Adds automatic ceiling generation for templates

* baseturf_bottom makes this a lot simpler
2022-03-22 16:37:46 -04:00
Pickle-Coding
f7bfa794c5 Fixes tritium fire radiation. (#65587)
* Fixes tritium fire radiation stuff.

The reaction cleanup reverted the radiation chance from tritium fire changes, and did the energy release threshold incorrectly, making tritium fires release no radiation unless you had an astronomically high amount of tritium.

This fixes that by making sure air.volume gets divided by CELL_VOLUME before getting cubed. Adds tritium radiation release threshold define, which uses the correct amount of energy required.

Adds minimum radiation range define, and brings it back for radiation range from tritium fires (which accidentally got reverted), and changes the radiation range divisor to its proper value.

Adds back scaling chance for irradiation, and adds define for energy release required for a 50% chance for everything in range to get irradiated.

* H

The new defines had 2 /es instead of 3. Adds the third one.

* Water vapour condensation fix.

The define for water vapour condensation was set to (T0C + 10); however, the previous functionality for condensation checked if it was below (T20C + 10) instead of (T0C + 10). The new define is lower than what the check used to be, low enough that room temperature water vapour did not condense.

This changes WATER_VAPOUR_CONDENSATION_POINT define to be (T20C + 10) instead of (T0C + 10), so you don't need to cool it in order to make the tiles slippy.
2022-03-22 15:53:48 -04:00
Kyle Spier-Swenson
e352d6026e Blob mobs use astar/jps for automated movement pathing, no longer get blocked by blob tiles (#65598)
* Blob mobs use astar/jps for automated movement pathing, no longer get blocked by blob mobs

I could easily make all hostile mobs do this, but there are *concerns*. behavior isn't the same, performance would be bad, requires more careful testing.

Where as overriding this just for blobs fixes a mob that is functionally broken right now as they think they can't cross blob tiles because they use byond's walk_to and that checks density

* Minor improvements
2022-03-22 15:18:59 -04:00
TemporalOroboros
eaec5002f6 Fixes blood-spread-only diseases always spreading upon direct exposure to blood. (#65602) 2022-03-22 15:15:21 -04:00
SmArtKar
6888652bb2 BCI overlay fix (#65604) 2022-03-22 15:07:54 -04:00
Ghilker
e5ed4b3dea Cryocell works with all gases now ; Cryox requires being KOd (#65513)
* refactored cryo

* fixes

* always forget maps

* requested changes, cryoxadone only heal if sleeping
2022-03-22 09:58:45 -04:00
Ghom
df5b87a9b6 Painting improvement: Added a palette component for spraycans and palette items. (#65577)
* Painting improvement: Added a palette component for spraycans and palettes.
2022-03-22 10:49:19 +01:00
Keets
3c9412b06a Surgery step consistency (#65528) 2022-03-21 22:56:43 -04:00
MrMelbert
bc9dd7f6ae Flesh heretics summon objective now counts all summoned, alive or dead (#65567)
* summoning will now progess the objective, instead of it trying to calculate on the fly all current summons

* documentation
2022-03-21 22:45:48 -04:00
dragomagol
a5d6503049 Mapping Access Helpers (#65580)
* Create mapping helpers for airlock access

* Finish implementing accesses

* you saw nothing
2022-03-21 22:24:39 -04:00
Iamgoofball
e2754e2c0d Fixes the description for the mouse being incredibly rude, judgemental, and insulting towards mice, who are objectively adorable. (#65606)
Fixes the description for the mouse being incredibly rude, judgmental, and insulting towards mice, who are objectively adorable.
Why It's Good For The Game

I mean, just look at these little guys, aren't they just adorable? How can we be so mean to such friendly animals? We're nice to cats, we should be nice to mice too.
2022-03-22 13:39:49 +13:00
GoblinBackwards
0728b6c3e5 Slime cookie stacking fixes (#65575)
* Slime cookie stacking fixes

* This is better
2022-03-21 17:56:10 +08:00
Tortoise
4010862df8 Fixes medical scrub being named "under" (#65550) 2022-03-21 01:14:45 -05:00
Seth Scherer
bfc31aba45 Fixes a runtime in build mode's KABOOM (#65543)
* Fixes a runtime in build modes KABOOM
These values will runtime because eventually they get passed into
explode code which square roots them (WHICH IS IMPOSISBLE!!!)

Zero works, and DOESN'T RUNTIME!

* actually lets do this right

* improves a bit
2022-03-20 12:02:23 -07:00
Fikou
e440ccb20e modsuit armor (#65559)
headcoder wanted me to do it so lets go
every modsuit now has some amount of armor, this armor is pretty minor (ranging from 5 to 20) and department-dependant (engineers have more laser armor due to having to deal with emitters and whatnot, security suits have more bullet armor etc)
the wound armor values got nerfed for some of the suits
cc @tralezab as person with space armor opinions
2022-03-20 10:27:46 +00:00
Tastyfish
b1915a4c42 Adds format (associative) list wiremod component (#65404)
Adds a wiremod component called "Format List" and one called "Format Associative List" that you get at round-start.

It accepts a format string and a list of parameters.

For "Format List":
The format string contains normal text, and codes of the form %n (eg. %1, %2, %3) that correlate to indexes in the param list.
For "Format Associative List":
The format string contains normal text, and codes of the form %key (eg. %name, %health) that correlate to keys in the associative param list.
The param list can contain any types, which will be automatically converted to strings.
Conversion of entities to strings still follows the range rule of To String. Important to keep in mind if you're formatting an NTNet transmission.
For the associative version, the keys must be strings comprised of letters, numbers, or underscore.
Simplest example that says "Bob McToolbox pressed the button.":
2022-03-20 10:10:51 +00:00
MrMelbert
af03de1da8 Gibbed / dusted / otherwise deleted heretic sacrifice targets will clear themselves from heretic target lists (#65566)
Swaps the weakref list of targets heretics use to a list of hard references, due to handling them on deletion
Uses a proc for removing sacrifice targets
Sacrifice targets which are deleted for some reason in game will automatically remove themselves from the heretic's sacrifice list, allowing them to reroll easier
Apparently, having one of your targets gibbed as a heretic is pretty unfortunate.
As I was holding weakrefs to targets, they persisted despite deletion (which I did not expect to be a problem)

So, now, when a body is completely gone (and you can no longer sacrifice them), the slot is freed for you.
2022-03-20 09:36:47 +00:00
Vladin Heir
d1a8bad833 Allows all accessories to toggle between under/above suit, Take 2 (#65421) 2022-03-19 12:45:10 -07:00
jjpark-kb
a89fda3446 better resonator (spreading) (#65297)
adds some documentation to resonators

adds spreading to resonators, where the field has a chance (that lowers each spread) to spawn more fields.
the spreading idea did come from yogstation, but I changed how it decides to spread
2022-03-19 16:07:15 +00:00
Ghom
afad417787 Improved the Art Gallery App and the AI Portrait Picker. Added a search function to them. (#65481)
* Improved the Art Gallery App. Added a search function to it.
2022-03-19 11:33:31 +01:00
cacogen
1ccd016f3e Allows you to offer an item to only one person with Shift+Ctrl+Click (#65441)
You can click someone directly with shift+ctrl+click to offer an item only to them. This is in contrast with pressing G, which offers the item to every adjacent carbon mob.

Also fixes a runtime where the Give screen alert on a potential recipient was trying to remove itself on proximity loss after the Offering status effect had already done it.

Removes duplicate range check on Give screen alert that was causing the runtime as Offering status effect takes care of it.

Also adds a check after clicking the screen alert to take something to make sure we're not dead or incapacitated, so dead people can no longer take things.

Also adds a screentip for this functionality.

Also adds some more checks to give() to make sure we can do it before sending the message to players that we're offering something.
2022-03-19 08:15:51 +00:00
cacogen
3857d835cd Low/no power screen alert tooltips tell you where the recharging stations actually are (#65467) 2022-03-19 00:32:18 -07:00
Fikou
b98f16d659 modsuit storage empties when being removed from the suit (#65416) 2022-03-18 01:18:13 -07:00
carshalash
ccaf02a153 Introduces 3 new permanant banner rolls for fish! (#65248)
* Feeeeeeeeeeeeeeeeesh

* OOPS

* It's tiziran? I've been saying tirizan, why didn't someone tell me i've been making an idiot out of myself.

* Update packs.dm
2022-03-17 20:19:59 -07:00
Timberpoes
47a5f3908c Moves thief policy from hardcoded to get_policy. (#65522)
About The Pull Request

Moves Thief antag policy from hardcode to get_policy.

Example with policy in policy.json
image

Example with no policy in policy.json
image
Why It's Good For The Game

https://github.com/tgstation/tgstation/blob/master/.github/guides/POLICYCONFIG.md

This antag type doesn't support the POLICY config mechanism.
Changelog

No player-facing changes.
2022-03-18 15:52:13 +13:00
RandomGamer123
55bc332ccd Fix departmental order consoles not being able to order gas canisters (#65093)
Gas canister supply pack IDs aren't typepaths but rather "[type]([name])", which meant that the typepath just became null.
2022-03-17 14:01:16 -05:00
capsaicinz
507bce9bb1 Soulscythes are now immune to mining planet storms (#65486) 2022-03-17 13:54:16 -05:00
MacBlaze1
720e833d58 Allows more than two assemblies to be connected together (#65240)
This PR changes how assemblies and assembly holders work, and allows you to connect more than just a signaler and an igniter together. You could have a signaler, a repeating timer, and an igniter together to constantly produce sparks. Making the assembly holder is the same as before, but now you can add assemblies to it. This also allows signalers to be triggered via right clicking them while holding them in your active hand.
2022-03-17 13:52:26 -05:00
MrMelbert
f7e10caa68 Refactors Lich Phylactery to be a component, makes it actually work (#65366)
* Refactors phylactery to be a component
- Overall improves lich code
- Changed the SOUL_IMBUE signal to return a bitflag
- Minor style  improvements (indentation and such)

* Tweak initialize + fixes a bug with being gibbed

* adds a clarification comment

* And fixes a compile error oops

* reorganizing

* clear the revive timer, just in case

* oops this should drop stuff

* missing no soul trait

* type in a variable name

* god damn devil removal
- this check was removed when devil was and i think it's kinda important to prevent stacking lichdom

* rework this a bit

* plurals

* also, wrong source

* updates the description

* Some review + undoes some changes
- Corrects some comments
- Uses defines
- Rewords the lichdom entry and spell desc
- Sets default time per res to 0 secs to avoid changing behaviors
2022-03-17 18:18:33 +08:00
nevimer
8e0ccc0812 Fixes non tgui inputs. (#65378)
Co-authored-by: nevimer <foxmail@protonmail.com>
2022-03-17 18:18:12 +08:00
Fikou
5904c7737a shy component now has variables for being shy around keyless and clientless bodies (#65418)
* shy component now has variables for being shy around keyless and clientless bodies

* h
2022-03-17 18:17:51 +08:00
Thunder12345
e9a9cc8fbc fixes pride pin reskinning (#65462) 2022-03-15 19:56:37 -07:00
LemonInTheDark
0e904f7032 [MDB IGNORE] Moves non floor turfs off /floor. You can put lattices on lavaland edition (#65504)
About The Pull Request

Alternative to #65354

Ok so like, there was a lot of not floor types on /floor. They didn't actually want any of their parent type's functionality, except maybe reacting to breaking (which was easy to move down) and some other minor stuff.
Part of what we don't want them to have is "plateable" logic.
I should not be able to put floor tiles on the snow and be fine. It's dumb.

Instead, I've moved all non floor types down to a new type, called /misc.

It holds very little logic. Mostly allowing pipes and wires and preventing blob stuff.
It also supports lattice based construction, which is one of the major changes here. I think it makes more sense, and it fixes an assumption in shuttle code that assumed you couldn't place "a new tile" by just hitting some snow with a floor tile.
Oh and lattices don't smooth with asteroid tiles anymore, this looks nicer I think.

Moving on to commits, and minor changes

Changes clf3 to try and burn any turfs it's exposed to, instead of just floors
Moves break_tile down to the turf definition, alongside burn_tile
If you're in basic buildmode and click on anything that's not handled in a targeted way, you just build plating
FUNCTION CHANGE: you can't use cult pylons to convert misc tiles over anymore
Generalizes building floors on top of something into two helper procs on /turf/open, reducing copypasta
Adds a new turf flag, IS_SOLID, that describes if a turf is tangible or not.
Uses this alongside a carpet and open check to replace plating and floor checks in carpet code. This does mean that non iron tiles can be carpeted, but I think that's fine

Moves the /floor update_icon -> update_visuals call to /open
This change is horrificly old, dating back to 8e112f6 but that commit describes nothing about why it was done. Choosing to believe it was a newfriend mistake. Uncomfortable nuking it though, because of just how old it is. Moving down instead

Create a buildable "misc" type off open, moves /dirt onto it
Basically, we want a type we can use to make something support
construction, since that can be a messy bit of logic. Also enough
structure to set things up sanely.

I'm planning on moving most misc turfs onto it, if only because
constructing on a dirt tile with rods should be possible, and the same
applies to most things

Murders captain planet, disentangles /turf/open/floor/grass/snow/basalt

Adds a diggable component that applies the behavior of "digging"
something out from a turf.

Uses it to free the above pain typepath into something a bit more
sensible

The typepaths that aren't actually used by floor tiles are moved onto
/misc

The others are given names that better describe them, and kept in
fancy_floor

Oh and snowshoes don't work on basalt anymore, sorry

Snowed over platings now actually have broken/burned icon states, fixing black holes to nowhere

Misc turfs no longer smooth as floors, so lattices will ignore them

Placing a lattice will no longer scrape the tile it's on

Ok this is a really old one.
I believe this logic is a holdover from kor's baseturf pr
(97990c9)
It used to be that turfs didn't have a concept of "beneath" and instead
just decided what should be under them by induction. This logic of "if
it's being latticed scapeaway to space" made sense then, but has since
been somewhat distorted

We do want to scape away on lattice spawn sometimes, mostly when we're
being destroyed, but not always. We especially don't want to scape away
if someone is just placing a rod, that's dumb.

Adds a path updating script for this change

I've done my best to find all the errors this repathing will pull out, but I may have missed some. I'm sorry.
Why It's Good For The Game

Very old code made better, more consistent turfs for lavaland and icebox, better visuals, minor fix to snowed plating, demon banishment in lattice placement, fixes the icebox mining shuttle not being repairable
Changelog

cl
add: Rather then being tileable with just floor tiles, lavaland turfs, asteroid and snow (among other things) now support lattice -> floor tile construction
fix: Because of the above, you can now properly fix the icebox mining shuttle
refactor: Non floor turfs are no longer typed as floor. This may break things, please yell at me if it does
/cl
2022-03-16 15:55:56 +13:00
capsaicinz
e37729a660 fixes SFX_SHATTER being used in place of explosions (#65460) 2022-03-15 17:26:24 -07:00
Thunder12345
4d6ec82abf removes lean from the game (#65464)
Thunder12345
Contributor
Thunder12345 commented yesterday
About The Pull Request

Removes lean, its sprite, and all appearances of it in code.
Why It's Good For The Game

Lean is an annoying, overused flavour of the month meme, totally devoid of character or originality. The only reason for it to exist here is because somebody saw it once, giggled for a few milliseconds, and made a maintainer giggle for a similar length of time.

It serves no useful gameplay purpose, and which I have never personally seen even being used, yet its mere existence empowers and legitimises people to reach sometimes borderline OOC in IC levels of talking about lean, safely protected by the shield of lean existing as an ingame thing regardless of how rarely seen.

Due to this ability to cover for annoying behaviour, its rarity and its lack of functional purpose in gameplay when actually made, I do not see any way in which lean existing is not a net negative.

tl;dr lean sucks
Changelog

cl
del: Lean has been removed entirely from the game
/cl
2022-03-16 12:04:23 +13:00