* some deathmatch fixes (#84472)
## About The Pull Request
firstly and most importantly polymorphing works now
fixes field gens in OSHA Violator
map names are sorted alphabetically
binary chat may not be used in deathmatch arenas
Chef and Clown final destination loadout names were renamed to avoid
confusion with loadouts of the same name
## Why It's Good For The Game
fixes#82791fixes#82802
a feature of a deathmatch map working is good
loadout confusion = bad
also i guess sorting the list looks cool
## Changelog
🆑
fix: deathmatch OSHA Violator map has actually functioning field gens
now
fix: being polymorphed in deathmatch does not count you dead
fix: deathmatch cyborgs may not talk in binary
qol: deathmatch map names are sorted alphabetically
spellcheck: deathmatch final destination clown and chef loadouts have
been renamed to avoid confusion
/🆑
* some deathmatch fixes
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* Trimming the fat
* Trimming the fat
* Update mushpeople.dm
* Adds colorblindness as a mild brain trauma (#76527)
What the title says.
The brain trauma makes the whole screen monochrome until cured.

I feel like the current pool for mild brain traumas is quite lame, this
helps spice it up a bit with something that is quite annoying and
distracting but not game breaking (as mild brain traumas should
generally be).
🆑
add: Added colorblindness as a mild brain trauma.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
* Fix species `var/hair_color` not being used for, well, hair color (#82168)
`var/hair_color` for species was intended to be used as a "this species
uses this type of hair color thing"
But at some point that got completely lost and now it's only used for
sprite accessories
This fixes that. That means Slimepeople now have properly slimey hair.
And Ethereals are less snowflake once more.
🆑 Melbert
fix: Fixed Slimepeople's hair not matching their slimey colors.
/🆑
* Revert "Fix species `var/hair_color` not being used for, well, hair color (#82168)"
This reverts commit c4cb756.
* Revert "Adds colorblindness as a mild brain trauma (#76527)"
This reverts commit eb815f5.
* Update _species.dm
* unused var
* Caps list..
* Update mushpeople.dm
* Update mushpeople.dm
* Update mushpeople.dm
* Update mushpeople.dm
* Update mushpeople.dm
* Attempts to fix CI errors
* Update cap.dm
* Update _external_organ.dm
* Update monkey.dm
* Revert "Update monkey.dm"
This reverts commit 29f54c8.
* Revert "Update _external_organ.dm"
This reverts commit 8de5ea7.
* Update _external_organ.dm
* Revert "Update _external_organ.dm"
This reverts commit 644cc56.
* Fix CI maybe?
* Update cap.dm
* Update DNA.dm
* Some cleanup/updating to upstream
* Update global_lists.dm
* Mush
* Update mushpeople.dm
* Hopefully the last fix
* Doing this differently
* Update organ.dm
* Update organ.dm
* Update organ.dm
* Update organ.dm
* Update organ.dm
* OK
* Update organ.dm
* Update podpeople.dm
* maybe
* Hm
* Hm
* Will this break things?
* Revert "Will this break things?"
This reverts commit bd288c6.
* Test
* Update organ.dm
* Update organ.dm
* Revert "Update organ.dm"
This reverts commit ca77ff9.
* Update organ.dm
* .
* .
* .
* Update snail.dm
* Monkeys now use height offset (and monkey tail works) (#81598)
This PR adds the ability for monkeys to wear any jumpsuit in the game,
and adds support for them to wear things like coats, gloves, and shoes
(though this cannot be obtained in-game and is solely achieved through
admins, which I also improved a bit upon by adding a defined bitfield
for no equip flags).
This reverts a lot of changes from
tgstation/tgstation#73325 - We no longer check
height from limbs and such to bring sprites down, instead monkeys now
work more similarly to humans, so the entire PR was made irrelevant, and
I didn't really want to leave around dead code for the sake of having a
human with longer legs.
I've now also added support for Dwarfism, which makes monkeys look even
smaller. Very minor change but at least now the mutation doesn't feel
like it does literally nothing to monkeys (since they can already walk
over tables).
Here's a few examples of how it can appear in game (purely for
demonstration, as it is currently intentionally made impossible to
obtain in-game, though if someone wants to change that post-this PR now
that support is added, feel free):
Tails have been broken for a while now, the only reason you see them
in-game is because they are baked into the monkey sprites. This fixes
that, which means humans can now get monkey tails implanted into them
(hell yeah) and monkeys can have their tails removed (also hell yeah)
* Removes unneeded files
* Revert "Removes unneeded files"
This reverts commit 6469d37.
* .
* ok
* Update tails.dm
* Update monkey.dm
* Fix monkey screenshot test
* Update species.dm
* Update reinf_walls.dm
* Maintenance
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: vinylspiders <13398309+vinylspiders@users.noreply.github.com>
* Bioscrambler Anomaly chases you (#82555)
## About The Pull Request
I heard reports that people just ignore the bioscrambler anomaly because
basically you just don't go into that room any more and depending on
where it spawned, that's no big deal.
That won't do.
Now the Bioscrambler will be attracted to the nearest sign of advanced
thinking life (read: nearest humanoid mob controlled by a player) and
will very slowly pursue them, travelling through walls and obstacles in
order to do so.
Also if it decides to target you, you will get a foreboding psychic
warning like with the dark matteor, because I think it's funny for dire
warnings to have multiple obscuring sources.
The Bioscrambler can be blocked with containment fields if you want to
make an overly-elaborate pen for it.
To accomplish this I refactored containment fields a little bit to apply
turf traits instead of making four different `locate()` checks for
different objects. Those files smell bad.
Oh also I moved the dullahan organs to the Bioscrambler blacklist
because they runtimed while I was testing it (see also: my other
incoming PRs) and I can't see any other reasonable way to fix it (they
expect to be in an abstract body zone...)
## Why It's Good For The Game
Anomalies are generally meant to be problems that you deal with or face
some kind of consequence.
Because the Bioscrambler isn't a timed anomaly with a dramatic
detonation effect, being spawned in a poorly-trafficked area could
simply mean that it isn't a problem to anyone.
Now it will make sure that it is a problem for someone until someone
gets rid of it.
I thought this solution was funnier than making it do something zany if
you leave it alone for 3 minutes.
## Changelog
🆑
balance: The Bioscrambler will now actively attempt to get closer to
living targets rather than chilling in a closet nobody goes into (unless
you trap it in a containment field).
balance: Because it can now travel through walls, the Bioscrambler will
no longer transform you THROUGH walls.
/🆑
* Anomaly Releaser logging and fixes (#82684)
## About The Pull Request
I literally do not think I have heard of anyone using this extremely
niche space ruin item a single time.
_**However**_ if they did it wasn't logged, so now it is.
Additionally I found a bunch of bugs while testing it:
- You could queue inputs on a bunch of cores and activate all of them at
once because it didn't check if had been expended by a concurrent
do_after.
- It made normally immobile anomalies mobile.
- I broke immobility in general in a recent PR, but also it's redundant
with a different var I added.
I fixed all of these.
## Why It's Good For The Game
For the one round that will happen in tg history where someone
reactivates a Vortex Anomaly Core on the escape shuttle, it should log
who did it.
## Changelog
🆑
admin: Reactivating an anomaly core via the anomaly releaser is now
logged.
fix: Fixes various bugs related to dimensional/spectral anomalies moving
when they should not.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* deathmatch (#81444)
## About The Pull Request

adds a deathmatch minigame, a port and slightly redone version of the
aetherstation deathmatch (by TheChosenEvilOne)
the goal is to kill everyone else with loadouts
## Why It's Good For The Game
CTF sucks and this is probably better to filter out the bloodthirsty
terry players anyway
## Changelog
🆑
add: deathmatch minigame
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* deathmatch
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Attack chain refactoring: Broadening `tool_act` into `item_interact`, moving some item interactions to... `atom/item_interact` / `item/interact_with_atom`
* Patches up merge skew (#80197)
## About The Pull Request
Yeah #79968 (1e76fd70b4) was not
compatible with master but no one said anything on the PR so i got
jebaited into merging it. The code should be up to the same standards
per the documentation I read (preventing thwacking the target in certain
situations while not returning anything in other situations)
master will definitely compile now though
* Patches up merge skew
* Merge conflicts
* Modular adjustments
* Removes this entirely duplicated proc...
* Update tool_override.dm
* Update weldingtool.dm
* Update tool_override.dm
* Update tool_override.dm
* Nope. Copy paste begone.
A skyrat edit is so much easier to deal with here
* Update brand_intelligence.dm
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Standardize Welder Fuel Usage (#76021)
Remove welder fuel usage from all actions except attacking and leaving
it on
most welder tasks require a minimum of 1u of fuel, some longer tasks
require a minimum of 2 or 3u welders now drain 1u every 5 seconds
they're active
## About The Pull Request
Prior to this PR welder fuel usage was random, a lot of tasks didn't use
any welder fuel and welders were basically near infinite so long as you
didn't use them for combat, it took 26 seconds of activity to drain 1u
of fuel, that means an emergency welder alone could run for 5 minutes
straight before needing a refuel
After this PR all welders will drain 1u every 5 seconds instead of every
26 seconds, but welding objects won't require extra fuel anymore, making
the fuel usage much more consistent.
resolves#55018
## Why It's Good For The Game
Actually makes fuel tanks useful and relevant without making it
obnoxious to do repetitive quick tasks like turn rods into plates,
there's actually a reason to upgrade off the emergency welder now since
it lasts 50 seconds rather than 5 minutes
## Changelog
🆑
qol: Welders now have a more consistent fuel usage
/🆑
* Standardize Welder Fuel Usage
---------
Co-authored-by: Couls <coul422@gmail.com>
* Allows field generators to contain explosions. (#75771)
## About The Pull Request
Allows field generators to contain explosions. The fields will not let
the explosion propagate past them.
## Why It's Good For The Game
Allows people to contain the tesla for fun, or on station bomb testing
if they so desire.
## Changelog
🆑
balance: Field generators can parry explosions.
/🆑
* Allows field generators to contain explosions.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Basic Mob Carp Bonus Part: Wall smashing (#71524)
## About The Pull Request
Atomisation of #71421
This moves the attack function of "environment smash" flags which allow
simple mobs to attack walls into an element, so that we can put it on
other things later.
For some reason while working on carp I convinced myself that they had
"environment_smash" flags, which they do not, so this actually is not
relevant to carp in any way.
While implementing this I learned that the way wall smashing works is
stupid, because walls don't have health and so resultingly if a mob can
attack walls it deletes them in a single click. If we ever decide to
change this then it should be easier in an element than in three
different `attack_animal` reactions.
This is especially silly with the "wumborian fugu" item which allows any
mob it is used on to instantly delete reinforced walls, and also to
destroy tables if they click them like seven or eight times (because it
does not increase their object damage in any way).
## Why It's Good For The Game
Eventually someone will port a basic mob which does use this behaviour
(most of the mining ones for instance) and then this will be useful.
If we ever rebalance wall smashing to not instantly delete walls then
this will also be useful.
Admins can apply this to a mob to allow it to delete walls if they
wanted to do that for some reason, they probably shouldn't to be honest
at least until after we've done point two unless they trust the player
not to just use it to deconstruct the space station.
## Changelog
🆑
refactor: Moves wall smashing out of simple mob code and into an element
we can reuse for basic mobs later
/🆑
* Basic Mob Carp Bonus Part: Wall smashing
* SR mobs
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Removes ComponentInitialize()
* Fixes a leftover merge conflict marker
* Fixes the oversight that came from the upstream merge skew
* Fixes all of the instances where we used ComponentInitialize() when we shouldn't've been
* Fixes CI being broken because of the HEV suits
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed
* Fixing conflicts
* Makes it compile, yeet all the RAD armor from everywhere (thanks RegEx!)
* Removing more lingering rad armor (woo)
* Damnit powerarmors
* Bye bye rad collectors!
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc
* WHEW THAT WAS EASY
* Update ammo.dm
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Converting the EMP protection component into an element. (#54617)
* Converting the EMP protection component into an element.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* Converts everything to use setAnchored() + other fixes
* Fixed singulo debug
* singulo again
* forgot to move the vv_edit proc
* caught that this time :)
* changes
* Update code/game/atoms_movable.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
About The Pull Request
Allows Field Generators and their containment fields to block Gasses when active. Field Generators now project shielding over the floor that prevents melting. Intended as a prelude to making turfs melt easier under high heat.
Why It's Good For The Game
Allows for setting up safe gas containment with some risk for containment breach.
Changelog
cl Jdawg1290
balance: Field Generators now block gasses and shield floors from melting when active
/cl
About The Pull Request
Similar to #46485
Now all relevant uses of power_change() call parent, theres a signal sent when a machine changes the NOPOWER flag, all remaining machines that were using power_change() instead of update_icon() have been fixed.
Why It's Good For The Game
code quality, eventually signal stuff. and signal stuff
* Reverts italics-span back to no color.
* Cleans up many extra spaces and indents.
* Adds 'hear' span class.
* Replaces all 'italics' used in heard messages with 'hear'.
About The Pull Request
Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game
This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
* Fixes projectiles not hitting mobs, some refactoring too
* some stuff for projectile can hit target to work with not being ontop of an object
* Yeah let's just refactor bullet_act while we're at it.
* Yeah let's just refactor bullet_act while we're at it.
* Yeah let's just refactor bullet_act while we're at it.
* CanPass returns true to projectiles regardless of hit
* snakecase?
The component is initialized with any combination of three flags, EMP_PROTECT_SELF protects against effects that target the object itself, EMP_PROTECT_WIRES protects against wires being messed with similar to the NO_EMP_WIRES_1 flag which this PR removes, EMP_PROTECT_CONTENTS protects against things that are inside the object like organs, internal "non-virtual" power cells and the like
This enables (but doesn't introduce) new mechanics such as adding EMP shielding at runtime to any atom, or taking it away.