* Fixing BoH bombing being doable with just one BoH. (#77243)
## About The Pull Request
BoH-bombing is supposed to require two bags to be achievable.
## Why It's Good For The Game
Fixing an easy and amusing bug, except being the one fixing it fills me
with an ounce of remorse, so you could say it's not all that easy. This
will fix#77204.
## Changelog
🆑
fix: BoH bombing now correctly requires two bags to be done.
/🆑
* Fixing BoH bombing being doable with just one BoH.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Basic Lobstrosity (#77253)
## About The Pull Request
I'm slowly chipping away at mining mobs. These ones also got some new
sprites because the old ones were a bit weird except when facing South.

Arctic Lobstrosities are now hairy to give them a little more visual
distinction from Lavaland ones.
In terms of behaviour, they're now a little faster and can charge you
from further away.
They will _only_ attack players who are incapacitated in some way
(primarily from being hit by their charge, but could be from a Goliath
or something too) and will otherwise keep their distance until they can
charge again. They move slower for a short duration after charging
though, so you have time to slap them a bit.
If a Lobstrosity downs you then it will try to snip off one of your
arms, then retreat in order to eat it.
Obviously nobody likes losing an arm, but this does give you an
opportunity to get away while it is distracted? Funnily enough the way
our health system works means that sometimes losing that arm actually
takes you out of soft crit so you can stumble back to the station for a
replacement (or try to wrestle yours back?)
All of these things are achievable also by a player if you make one
sapient, they will pull arms off mobs they attack which are in crit and
can eat arms if they see them lying around if they want.
I added an element to let you dismember people with your bare hands,
maybe someone evil can use it to add a beheading attack some day.
Here's a video of their new behaviours:
https://www.youtube.com/watch?v=9eKxsH7hD7Q
## Why It's Good For The Game
Gives mobs more character.
Reduces our list of frozen simple mobs.
Replaces some ugly side sprites.
Medbay enrichment?
## Changelog
🆑
refactor: Lobstrosities are now basic mobs and have different AI
behaviour. Please report anything which seems like it shouldn't be
happening.
add: Lobstrosities will now only opportunistically attack things they
have knocked over with their charge, and are otherwise timid.
add: Lobstrosities are hungry for fingers and will steal one of your
arms if they defeat you in combat, although this gives you time to crawl
away.
sprite: New sprites for Lobstrosities.
/🆑
* Basic Lobstrosity
* Modular paths
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Updates all the icons in under/suits.dmi and related sorting/cleanup (#76865)
Somebody was pointing out how our suits varied WILDLY in quality
Figured I'd go through and tidy them up
* Updates all the icons in under/suits.dmi and related sorting/cleanup
* Rename Amish suit, remove scratch suit (was removed upstream)
* Fixes a rogue path
---------
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* fixes station trait unit test and gives coroner a cybernetic revolution implant (#77235)
## About The Pull Request
what the title says, the implant is a bone tongue
## Why It's Good For The Game
bone tongue kinda fits as a unique implant. we should have more implants
though cause we kinda ran outta them
## Changelog
🆑
fix: coroner has an implant during cybernetic revolution
/🆑
* fixes station trait unit test and gives coroner a cybernetic revolution implant
* Gives modular jobs cybernetics
* Update tgstation.dme
* ctrl+s fail
* Merge branch 'upstream-merge-77235' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-merge-77235
* Fine
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Add "Hall of Fame" emergency shuttle (#77074)
## About The Pull Request
This adds a new emergency shuttle called the **Hall of Fame**.

It's designed around persistence. The goal is to have the shuttle store
memories, photos, and trophies for the crew to see!
## Why It's Good For The Game
Cool way for the crew to store and share memories.
## Changelog
🆑
add: Add a new 'Hall of Fame' emergency shuttle. It even comes with it's
own nifty photo album.
/🆑
* Add "Hall of Fame" emergency shuttle
---------
Co-authored-by: Tim <timothymtorres@gmail.com>
* Fixes a large amount of spelling and grammatical errors in the Exploration Drones section. Also fixes an angry pine tree quip. (#77095)
## About The Pull Request
Title
## Why It's Good For The Game
It bothered me
## Changelog
🆑 Licks-The-Crystal
spellcheck: Corrected a large quantity of spelling, grammatical and
phrasing errors with Exploration Drone content.
/🆑
---------
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Fixes a large amount of spelling and grammatical errors in the Exploration Drones section. Also fixes an angry pine tree quip.
---------
Co-authored-by: zeckle/licks-the-crystal <79835169+mikederkan@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Restore photophobia, remove flash sensitivity on quirk removal (#77220)
## About The Pull Request
For some reason the `remove()` proc in code got eaten, meaning the quirk
registered and immediately deregistered itself
Also the eyes never returned to their original state, so that's fixed
now too
## Why It's Good For The Game
This makes photophobia work.
## Changelog
🆑
fix: Photophobia should work now.
fix: Eyes should return to their normal flash sensitivity when the quirk
is removed.
/🆑
* Restore photophobia, remove flash sensitivity on quirk removal
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* Improves the RPG loot wizard event. (#77218)
## About The Pull Request
As the title says. Adds a bunch more stat changes to various different
items and a somewhat simple way of modifying them whilst minimizing
side-effects as much as possible.
Added a new negative curse of polymorph suffix that can randomly
polymorph you once you pick up the item.
Curse of hunger items won't start on items that are not on a turf.
Curse of polymorph will only activate when equipped.
Bodyparts, two-handed melees, bags, guns and grenades, to name a few,
have a bunch of type-specific stat changes depending on their quality.
Some items won't gain fantasy suffixes during the RPG loot event, like
stacks, chairs and paper, to make gamifying the stats a bit harder.
I'm sure there'll still be other ways to game the event, but it's not
that big of a deal since these are the easiest ways to game it.
High level items also have a cool unusual effect aura
## Why It's Good For The Game
Makes the RPG item event cooler. Right now, it's a bit lame since
everything only gains force value and wound bonus on attack. This makes
the statistic increases more type-based and make it interesting to use
It's okay for some items to be powerful since this is a wizard event and
a very impactful one too. By making the curse of hunger items not spawn
on people, it'll also make it a less painful event too.
## Changelog
🆑
add: Expanded the RPG loot wizard event by giving various different
items their own statistic boost.
/🆑
---------
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Improves the RPG loot wizard event.
---------
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fixes bloody soles making jumpsuits that cover your feet bloody when you're wearing shoes (#77077)
## About The Pull Request
Title says it all.
It basically made it so wearing something like a kilt would result in
the kilt getting all bloody as soon as you walked over blood, even when
you were wearing shoes, unless you wore something else that obscured
shoes.
I debated with myself a lot over the implementation for this, I was
thinking of adding some way to obscure feet in particular, but it's
honestly so niche that it could only have caused more issues elsewhere
if I tried to fix this issue that way.
* Fixes bloody soles making jumpsuits that cover your feet bloody when you're wearing shoes
---------
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Add leash component to pAIs that keeps them within range instead of directly teleporting them back, increases default range to max range (#77030)
## About The Pull Request
Tries to keep pAIs in range of their owner by moving them closer when
the owner moves, rather than jarringly teleporting every time the owner
gets out of range. Does this by calculating the closest path a nearby
tile and forcefully moving you there. Still a bit janky at times but is
better than teleporting directly onto the owner 100% of the time I feel.
Also prevents you from moving out of range, rather than forcefully
teleporting you back.
Increases the default pAI range to the maximum (9 tiles)
## Why It's Good For The Game
New leashing makes being a leashed pAI significantly less jarring and
obvious. Ideally we would also have a visible max range too.
Default pAI range was pretty small in my testing and I think it's not
unreasonable to think a lot of people won't bother changing it. That
they are leashed at all is the important part.
## Changelog
🆑
qol: pAIs now try to stay within range of their owner, and teleport back
only when necessary
qol: Default max pAI range has been changed to the maximum range you can
choose (9 tiles)
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Add leash component to pAIs that keeps them within range instead of directly teleporting them back, increases default range to max range
* Fixes the leash enable/disable
* A workaround because the procs are private.
* Update card.dm
* Update card.dm
what I get for rushing
* Update card.dm
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* New Wizard achievement (#77191)
## About The Pull Request
Adds an achievement for completing the Grand Ritual
Also, adds blackbox logging for the Grand Ritual feature so we can see
how much people are actually doing it
Also, while testing I noticed that Summon Guns/Magic were fucked, so I
fixed them.
## Why It's Good For The Game
Nice to have some stats.
Nice to get a juice reward for doing your wizard chores.
* New Wizard achievement
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* [NO GBP]Mat container Final clean-up & patches (#77092)
## About The Pull Request
1. Fixes#77177
Some things were not connecting to the ore silo round start because the
silo was not initialized yet so it went to local storage. Now it
connects with the ore silo again
3. Removed some unused code in remote materials
4. Protolathe uses `eject_sheets()` defined in remote materials and not
it's own version because that's redundant
5. Don't put the item back in the players hand when inserting it in the
material container cause we haven't even removed it yet
6. `fast_split()` is now even faster & robust and is a global proc
7. Some code cleanup for RHD silo link
## Changelog
🆑
fix: some things not connecting to the ore silo round start
/🆑
* [NO GBP]Mat container Final clean-up & patches
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
make the mushroom a basic monster (#76570)
## About The Pull Request
i maked the mushrom from the simple monster to a basic monster so he is
dont a simple anymore but now he is a basic.i followe the instrucions in
the guide learn-ai.md to maked this pr. i also give the mushrom a extra
feture he will go and hunt food mushroms on the floor to ate them and
when he ate them he will heal small his hp
## Why It's Good For The Game
he is now a basic monster so he is not simple anymore. it is good
because he is a more advance ai and he will stil go and do the same stuf
he did when he is simple but he is now a basic
## Changelog
🆑
refactor: Mushrooms have been refactors, please report any
bugs/unintended behavior
add: the mushroom basic mob can eat the mushroom plant to heal itself
/🆑
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
* Piggyback rides no longer permanently remove your density (#77168)
## About The Pull Request
Fixes#77041
Getting onto someone's back would give you "TRAIT_UNDENSE" to stop you
from colliding with things your mount could cross.
Getting off someone's back would remove "TRAIT_UNDENSE" from the person
being ridden.
They didn't have the trait, so removing it from them wasn't very useful.
## Why It's Good For The Game
This is silly
## Changelog
🆑
fix: Dismounting from a piggyback no longer allows you to phase through
other players.
/🆑
* Piggyback rides no longer permanently remove your density
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Puts a cap to the amount of stickers that can be sticked to an atom. (#77160)
## About The Pull Request
The lack of a limit to the amount of stickers that can be attached on an
atom can lead overlays-related issues, as shown in #76987, likely by
going past the maximum number of overlays an atom can safely have.
The cap will be of 12 stickers per atom, an honest amount if you ask me.
Oh yeah, I've also taken the opportunity to improve the code a smidge I
guess.
## Why It's Good For The Game
This will fix#76987.
## Changelog
🆑
fix: Put a cap to the amount of stickers that can be sticked to an atom
(12) to prevent icon-related issues.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Puts a cap to the amount of stickers that can be sticked to an atom.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Implements usage of the REVERSE_DIR macro throughout the code. (#77122)
## About The Pull Request
Replaces a ton of `turn(dir, 180)` calls with the aforementioned macro.
## Why It's Good For The Game
Afaik, `REVERSE_DIR` was coded to be faster than the classic `turn(dir,
180)` call, being a simple set of binary operations. To sum it up, micro
optimization.
## Changelog
N/A
* Implements usage of the REVERSE_DIR macro throughout the code.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Adds a negative station trait: Vending products shortage. (#77125)
## About The Pull Request
Adds in a mean station trait that randomly lowers the availability of
all vending products from vending machines on the station.
## Why It's Good For The Game
Kicking aside the simple concept of "The more the merrier (until it's a
feature creep)" for a moment, vending (re)supplies are scarcely needed
on a generic round basis. The addition of this new trait could lead to
situations where more vending supplies are wanted/ordered once in a
while.
Beside, this is a pretty evil negative trait notwithstanding its
simplicity, unlike many other relatively innocuous ones.
## Changelog
🆑
add: Added a 'Vending products shortage' station trait, that randomly
lowers the availability of all vending products from vending machines on
the station, with a 1/20 chance of the vending machine itself being
tilted.
/🆑
* Adds a negative station trait: Vending products shortage.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Adds a unit test to stop elements from using identical lists for their arguments. (#76322)
## About The Pull Request
Ok, so a few days ago I made an issue report about multiple instances of
identical elements being generated because of uncached lists.
ninjanomnom (the mind being the element datums) cleared it up and said
an implementation of GetIdFromArguments() that also checks the list
contents wouldn't be worth the performance cost, while adding that a
unit test should be written to check that it doesn't happen at least
during init, which should catch a good chunk of cases.
Also, i'm stopping RemoveElement() from initializing new elements
whenever a cached element is not found. Ideally, there should be a focus
only unit test for that too, but that's something we should tackle on a
different PR.
Some of the code comments may be a tad inaccurate, as much as I'd like
to blame drowsiness for it. Regardless, the unit test takes less than
0.2 seconds to complete on my potato so it's fairly lite.
## Why It's Good For The Game
This will close#76279.
## Changelog
No player-facing change to be logged.
* Adds a unit test to stop elements from using identical lists for their arguments.
* Fixes unit test
* seeing double
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Converting crabs to basic mobs (#77109)
## About The Pull Request
Exactly what it reads on the tin. As a bonus, they will flee from
attacking targets, hunt tiny critters (crabs are now small-sized) and
actually move sideways (it's an element that covers both client and
basic movement)
## Why It's Good For The Game
Another simple to basic mob refactor.
## Changelog
🆑
refactor: Crabs refactored into basic mobs. They now hunt tiny critters
and flee from attackers.
fix: Fixed crabs not crab-walking.
/🆑
* Converting crabs to basic mobs
* UpdatePaths
* More path changes
* Update simple_animal_freeze.dm
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* [no gbp] Goliaths make less mess (#77141)
## About The Pull Request
In an earlier PR I made Goliaths dig when they are bored. I still like
this behaviour as an ambient thing for them to do, but the consequence
is that after 30 minutes there were huge piles of sand all over
lavaland.
While convenient for actually having miners bring glass back to the
station, it was an eyesore and too much.
To resolve this I have made two changes:
- Goliaths dig 1/3 as often as they did before.
- Sand (and snow) which are left outside during a storm gets blown away
if it's not inside someone's inventory.
Together these prevent the accumulation of hundreds of piles of sand.
## Why It's Good For The Game
Fixes an unintended consequence of my actions.
## Changelog
🆑
add: Uncollected sand and snow will be blown away by the wind when
storms happen (but don't worry, storms also allow those turfs to be
freshly dug up again).
/🆑
* [no gbp] Goliaths make less mess
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* [NO-GBP] Warns viro of radioactive resonance absence (#77119)
There was no in-game way for the viro to know the radioactive resonance
sympton couldn't be rolled (during rad nebula)
Now it sends a fax to the virologist, or if there's no fax it sends a
supplypod straight at the virologist with a fax machine and then sends
the fax
🆑
qol: The virologist is warned when radioactive resonance cannot be
obtained
/🆑
* [NO-GBP] Warns viro of radioactive resonance absence
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
* fixes SM crystals dusting themselves after falling (#77128)
## About The Pull Request
get_z_move_affected always returns src which is something that wasnt
exactly accounted in this case
## Why It's Good For The Game
fixes#76811
## Changelog
🆑
fix: shoving a crystal down a hole no longer makes it dust itself
/🆑
* fixes SM crystals dusting themselves after falling
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* Fix adrenal crisis being incurable (Fixes#77086) (#77117)
## About The Pull Request
Fixes#77086
Adrenal Crisis lacks the CURABLE flag, meaning it will never be cured,
even if the cure is present.
I opted to remove the `var/disease_flags` from it, since it has
`CAN_CARRY|CAN_RESIST`, if I add `CURABLE` to that it's the same flags
as the base `/datum/disease` datum has, and I think it's cleaner to not
list them again if they don't change from the base.
Not sure if it was ever curable? Seemed to have these flags since it was
added. And the `has_cure` proc seemed to check for that flag even back
then.
## Why It's Good For The Game
Disease that's supposed to be curable is now curable.
## Changelog
🆑
fix: Determination can now actually overcome your adrenal glands, making
adrenal crisis a curable condition!
/🆑
* Fix adrenal crisis being incurable (Fixes#77086)
---------
Co-authored-by: Inari-Whitebear <inari_whitebear@fastmail.jp>
* Phobia warnings have the same glowy text now as they would in say messages (#77066)
## About The Pull Request
Title.
## Why It's Good For The Game
Fixes#48028
## Changelog
🆑
spellcheck: Phobia warnings have the same glowy text now as they would
in messages.
/🆑
* Phobia warnings have the same glowy text now as they would in say messages
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* [NO-GBP] Optimizes rad nebula (#77014)
Switches rad nebula to only directly irradiate carbons and use radiated component
* [NO-GBP] Optimizes rad nebula
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
* Material container & related stuff ui refactors & clean-up (#76220)
## About The Pull Request
**1. Material container clean-up & refactor**
- Replaced `total_amount` var with `total_amount()` proc, this var can
be easily computed by summing up all material amounts rather than
storing it as a var which is tedious to update & keep track of when
materials are added/removed
- Removed unused procs `transer_amt_to()`, `can_insert_amount_mat()`,
and `get_categories()`. These procs are not used anywhere in the
codebase so let's remove them & make some space.
- Callbacks are replaced with signals, the callbacks don't need to be
explicitly garbage collected & having macros & procs marked with
`SIGNAL_HANDLER` makes your intentions more readable & explicit.
- Fixes#76151
All material adding, removal, checking operations are "Integer"
operations, i.e. the final value is rounded & them made 1 if the final
value is 0 using the macro `OPTIMIZE_COST`[coudn't come up with a better
name]. No more dealing with decimal value materials
The problem was after the protolathe was upgraded with better parts all
the design costs were multiplied with a decimal `efficiency_coeff`
value, this means even though in the UI the cost was displayed as 60
bluespace crystals its actual cost was `60.0001` something in the
backend causing this check for materials to fail & print the error
message.
- Replaced `GetComponent(/datum/component_material_container)` with just
a simple ref to the material container when adding the component, so we
can save some overhead from calling this proc
- Gave all procs a ton of documentation with documentation having
documentation
- Fixes#76506 RCD and other devices that uses the silo link upgrade now
have the correct material usages
- Fixes#72096. It wasn't just a problem with ancient protolathe but
with all machines that used `datum/component/remote_materials` the
problem was remote materials would add an instance of
`datum/remote/material_container` if it wanted to use local storage but
this component would get added before `datum/component/remote_materials`
could be registered i.e. it comes before remote_materials in the
component list. So when the machine is destroyed it will first destroy
`material_container` & then `remote_materials` therefore destroying the
materials before they could get ejected
- Silo link is established when parent is registered with remote
materials raher than adding an external timer which is faster
- Everything that uses a material container will auto eject their sheets
when destroyed
- Moved this & remote materials into its own folder for better
organization
**2. Material UI Changes**
- Removed the x25 & x50 print buttons from the autolathe, now they just
have x5 & x10 buttons like the protolathe, These buttons were of no use
since you could just type the exact amount you want to print in the
`[Max: <some amount>]` side bar. The code to compute these buttons was
just plain right nasty & some of it unused in the UI.
- The material eject button in the material bar does not gray out when
you can eject exactly one sheet
- All material cost are integer values rounded
- Fixes#76253 Exosuit Fabricator sends the material container static
data to the UI so its material bar is not greyed out when there are
sufficient materials to eject
- Component printer material bar sends the material container static
data to the UI so its material bar is not greyed out when there are
sufficient materials to eject
- Autolathe Material bars now display number of sheets available
- Max printable amount of items are now computed & updated correctly in
the UI. They were displaying wrong values & now get updated when items
are printed, materials are removed
- Silo hold actually works now. When a machine is put on hold it calls
this proc
e929cf39cd/code/datums/components/remote_materials.dm (L78-L87)
Notice how the key is `src` so we should be consistent during checking
if a machine is on hold using the same `src` var. But for some reason we
did dumb shit like this
e929cf39cd/code/datums/components/remote_materials.dm (L150-L153)
What is category? Why do we care for the area the machine is in? None of
it made sense so i removed all that junk and just made it check for
`src` like it should
- Removed redundant `removable` & `sheets` var from the material
container ui_data. These vars are unused in the UI
- If an item does not have the required materials then upon clicking
that item you will not get any error message but instead nothing happens
## Changelog
🆑
fix: items can be printed from autolathe & protolathe when the exact
material amounts are present in them after upgrading
fix: max printable amount now shows the correct value & updates when
items are printed, materials are removed in the autolathe & protolathe
fix: component printer material bar is not greyed out when there are
sufficient materials to eject
fix: rcd and other devices that uses the silo link upgrade now have the
correct material usages
fix: silo hold actually works
fix: machines using local storage to hold materials will eject it's
materials as sheets when deconstructed/destroyed
refactor: Autolathe Material bars now display number of sheets available
refactor: printing an item that does not have enough materials will fail
silently with no error messages
refactor: Drone dispenser will eject sheets upon deconstruction
refactor: all things that store materials will auto ejects its sheets(if
there is sufficient material) when destroyed
refactor: inserting an item into the material container will display the
units consumed as sheets not absolute units
refactor: removed x25 & x50 print buttons from the autolathe
* Material container & related stuff ui refactors & clean-up
* Update ammo_workbench.dm
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Climbing on crates no longer stun you (#77049)
## About The Pull Request
Removes the stun from climbing on crates by fixing the climbable
Element.
This has been a bug for years and I just noticed it now lol.
## Why It's Good For The Game
Climbing on crates now work as God intended.
## Changelog
🆑
fix: Crates no longer stun you when you climb onto them.
/🆑
* Climbing on crates no longer stun you
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* made the bee a basic insect (#76971)
## About The Pull Request
the bee now a baisc insect he will now go to find his home and he will
go and pollinated the plants and helped the queen make children by
polliniting the plants and he will. the queen will leve the hive more
rarely than the normal bees so she can stay in the hive to make kids
## Why It's Good For The Game
the bee now is a basic insect so it means he have a better ai
## Changelog
🆑
balance: the bee now can fly over the machines so its easy for him to go
to the hydroponics machine
fix: player bees now will not be stuck inside the hive if he entered it,
they can now leave it
fix: fixed a har deleted when the hive is deleted all the bees still
have a refence to the hive now its fixed
fix: now when a player interacted with the bee hive the bees will now
leave the hive to defend the hive (it was glitched)
refactor: the bees now are a basic insect.
/🆑
* made the bee a basic insect
* Merge conflict
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Prevents possessed blade spirits and similar entities from being created in a destroyed parent item (#76978)
## About The Pull Request
Activating any item with a `spirit_holder` component to poll for a new
spirit, then destroying the item before the poll process is completed
would create the spirit in nullspace, which would then dump them to the
error room. These spirits are in GODMODE by default, but are usually
contained within an item. See the issue?
This PR makes the spirit creation process check for whether the parent
item was deleted or not before actually creating the spirit. If the
summoning item was destroyed, the would-be spirit will get a message
about it so they can brag about it in deadchat
## Why It's Good For The Game
Fixes#61935
## Changelog
🆑
fix: fixed possessed sword spirits summoned during destruction of the
sword spawning in the error room. those fellas are in godmode, and y'all
don't need an immortal spirit haunting your station, m'kay?
/🆑
* Prevents possessed blade spirits and similar entities from being created in a destroyed parent item
---------
Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
* Fix APC related issues (#77005)
## About The Pull Request
Fixes a bunch of stuff broken by #76822, including APC control console,
malf blackout ability, shunted malf pinpointing, Admin APC recharge and
others.
## Why It's Good For The Game
Yes.
## Changelog
:cl:Thebleh
fix: Fixed several APC related issues.
/🆑
* Fix APC related issues
---------
Co-authored-by: thebleh <43266738+rdragan@users.noreply.github.com>
* Removes two redundant components (#76866)
## About The Pull Request
We're starting to get to have enough components that people don't
realise that what they want already exists but doesn't have the name
they expect 🙃
I recently added `track_hierarchical_movement` which is similar enough
to `connect_containers` that it shouldn't independently exist, even if I
like sending a new signal more than the ugly setup pattern for
`connect_loc`.
`trait_loc` is actually older than `give_turf_traits` but
`give_turf_traits` covers more edge cases than `turf_loc` so seems like
the better one to maintain.
HOWEVER `give_turf_traits` held a list of references to atoms in it,
which isn't great in an element. I couldn't think of a way to completely
eliminate the list, but it isn't a list of references any more so it
shouldn't cause any hard deletions.
## Why It's Good For The Game
Having two components which do the same thing but marginally differently
is confusing and going to cause us trouble down the line.
## Changelog
Not player facing
* Removes two redundant components
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* No roundstart playable MULEs / Trampling requires hacking (#76837)
## About The Pull Request
Prevailing feedback has been:
- The player base cannot be trusted to control MULEbots.
- It should be clearer what bots can and can't do.
The former is easy to fix.
The latter is sort of a matter for policy but I'm going to investigate
giving bots a rudimentary laws system. Plus that sounds much more
controversial than this so I am going to atomise this outside of that
PR.
MULEbots can still be set to allow sentience by cargo technicians, but
don't start that way.
ADDITIONALLY this PR just changes it so that MULEbots do not crush
people unless:
- They have been emagged.
- Their safety wire has been cut.
Either means works, so it's not too hard to access for nefarious
purposes, but hard to do to yourself.
Otherwise they just slow down for a few seconds instead.
Also fixed an unrelated name bug while I was there.
Closes#76926
## Why It's Good For The Game
Players would take them, not deliver any cargo, and repeatedly ask
people to lie down in front of them.
Plus Tram has 5 of the things which is frankly too many to be wandering
around the bar.
## Changelog
🆑
balance: You can't possess a MULE as soon as the round starts, someone
will have to give you permission.
balance: MULEbots no longer crush prone characters unless they have been
hacked (or emagged).
fix: Bots can put numbers in their names, what with being robots.
admin: Adds attack logging when certain wires are cut (for instance:
MULEbot safeties)
/🆑
* No roundstart playable MULEs / Trampling requires hacking
* add missing arg
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>