Commit Graph

382 Commits

Author SHA1 Message Date
SkyratBot
8fcac218c1 [MIRROR] Fix: DNA Infuser & Infusions [MDB IGNORE] (#18748)
* Fix: DNA Infuser & Infusions

* Fixes the damn conflict

* Fix: DNA Infuser Organ Filtering (#72745)

## About The Pull Request

My PR #72688 was merged mid-review. This is a followup PR to fix the
buggy code which was introduced by myself in between testing a naive
approach to organ filtering. The code does not work due to my own
oversight, as I was attempting to test buggy code in
`/obj/machinery/dna_infuser/proc/infuse_organ` when the prior PR was
merged.

I took this chance to simplify the code more, and I added an additional
proc to the DNA Infuser to replace inline code, `pick_organ`. The proc
picks a random mutated organ from the infuser entry which is also
compatible with the target mob. If none of the organs are compatible,
then the infusion still pricks you with needles but nearly-silently
fails by omitting the "You feel yourself becoming..." chat message.

`pick_organ` tries to return a valid mutant organ if all of the
following criteria are true:
1. Target must have a pre-existing organ in the same organ slot as the
new organ;
   - Or, the new organ must be external.
2. Target's pre-existing organ must be organic / not robotic.
3. Target must not have the same/identical organ.

## Why It's Good For The Game

The DNA Infuser should filter organs depending on whether or not the
occupant has one already, if it is organic, and if it doesn't exist the
occupant can still get an external organ (such as a cat tail). This PR
introduces algorithmically correct code to filter the organs, and fixes
bugs introduced by my prior PR which caused the proc to throw a runtime.

## Changelog

🆑 A.C.M.O.
fix: Fixed buggy organ filtering code in the DNA Infuser which stopped
it from infusing organs.
/🆑

Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-01-23 17:18:50 -05:00
SkyratBot
b9958bf2b6 [MIRROR] Changes signals In item_scaling to fix inventory scaling [MDB IGNORE] (#18873)
Changes signals In item_scaling to fix inventory scaling (#72696)

## About The Pull Request
Fixes #72601 which finally allows item scalable objects to properly
scale to large again when inside an inventory.
Replaces and removes signals that don't seem to effect the item itself.
## Why It's Good For The Game
Can finally see cards in ones binder easily, and allows future items
with item_scaling to properly work.
## Changelog
🆑
fix: fixed Item scaling objects not properly scaling in inventory slots.
/🆑

Co-authored-by: Ed640 <Ed.640@hotmail.com>
2023-01-22 18:55:34 -05:00
nevimer
b2e7e489cb Missed Mirror: Fix incorrect calls to UnregisterSignal (#68698) (#18856)
Fix incorrect calls to UnregisterSignal (#68698)

Fix calls to UnregisterSignal

(cherry picked from commit aba3bc80e0)

# Conflicts:
#	code/_onclick/hud/new_player.dm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/game/objects/items/devices/geiger_counter.dm

Co-authored-by: Gamer025 <33846895+Gamer025@users.noreply.github.com>
2023-01-21 22:15:23 -08:00
nevimer
79d3bfb35a Missed Mirror: Fixes the freezing component (#68737) (#18855)
Fixes the freezing component (#68737)

(cherry picked from commit 5b0b56eef4)

# Conflicts:
#	code/datums/elements/frozen.dm

Co-authored-by: Profakos <profakos@gmail.com>
2023-01-21 22:14:07 -08:00
SkyratBot
25f4961156 [MIRROR] Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate. [MDB IGNORE] (#18487)
* Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate.  (#72110)

So, a huge issue with memories and - what I personally believe is the
reason why not many have been added since their inception is - they're
very annoying to add!

Normally, adding subtypes of stuff like traumas or hallucinations are as
easy as doing just that, adding a subtype.

But memories used this factory argument passing method combined with
holding all their strings in a JSON file which made it just frustrating
to add, debug, or just mess with.

It also made it much harder to organize new memories keep it clean for
stuff like downstreams.

So I refactored it. Memories are now handled on a subtype by subtype
basis, instead of all memories being a `/datum/memory`.

Any variety of arguments can be passed into memories like addcomponent
(KWARGS) so each subtype can have their own `new` parameters.

This makes it much much easier to add a new memory. All you need to do
is make your subtype and add it somewhere. Don't need to mess with jsons
or defines or anything.

To demonstrate this, I added a few memories. Some existing memories had
their story values tweak to compensate.

Makes it way simpler to add new memories. Maybe we'll get some more fun
ones now?

🆑 Melbert
add: Roundstart captains will now memorize the code to the spare ID
safe.
add: Traitors will now memorize the location and code to their uplink.
add: Heads of staff winning a revolution will now get a memory of their
success.
add: Heads of staff and head revolutionaries who lose their respective
sides of the revolution also get a memory of their failure.
add: Completing a ritual of knowledge as a heretic grants you a quality
memory.
add: Successfully defusing a bomb now grants you a cool memory. Failing
it will also grant you a memory, though you will likely not be alive to
see it.
add: Planting bombs now increase their memory quality depending on how
cool the bomb is.
refactor: Memories have been refactored to be much easier to add.
/🆑

* Modular!

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-17 12:51:58 +13:00
SkyratBot
71a25960db [MIRROR] Basic mobs won't shoot walls / Basic mobs won't leave permanent bullet casings [MDB IGNORE] (#18719)
* Basic mobs won't shoot walls / Basic mobs won't leave permanent bullet casings (#72494)

## About The Pull Request

Basic mobs using the generic ranged attack behaviour will now not
attempt to shoot a target which they can no longer see.
If they can still see you through a window that's fine because shooting
in your direction will probably break the window eventually, but a mob
knowing you're on the other side of a wall and pointlessly firing at it
isn't useful.

Additionally, adds a component to bullet casings fired by basic mobs
which deletes them after 30 seconds.

https://user-images.githubusercontent.com/7483112/211012442-027455c7-2846-426e-89fb-c8c89d891e4f.mp4

Here's a demonstration but sped up so they vanish after 5 seconds
instead.

## Why It's Good For The Game

![image](https://user-images.githubusercontent.com/7483112/210862278-f58111d9-917b-43c4-8fa0-b58c02ae8ab5.png)
We're not actually sure that's where these 75,000 bullet casings came
from (it's probably related to that pAI down there) but it's one way it
could happen.

Players with limited ammo leaving persistent bullet casings should
rarely be a problem, mobs have infinite ammo and so should not be able
to generate infinite debris. Having them just sort of disappear after 30
seconds is... less than immersive, but I feel like it's better than the
alternative.
You can attach the element to other things to thanos snap them if you
want.

## Changelog

🆑
fix: Syndicate mobs will no longer attempt to shoot you through walls,
building up massive piles of empty bullet casings in the process.
qol: Bullet casings from "weapons" fired by certain mobs will clean
themselves up after 30 seconds.
/🆑

* Basic mobs won't shoot walls / Basic mobs won't leave permanent bullet casings

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-01-14 12:25:53 -08:00
SkyratBot
b44967501c [MIRROR] Optimizes explosions (very slightly) [MDB IGNORE] (#18624)
* Optimizes explosions (very slightly)

* Update explosions.dm

* Update atoms_movable.dm

* Update dungeon.dm

* Update stone.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-10 12:34:26 -08:00
SkyratBot
8e8002b555 [MIRROR] Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars [MDB IGNORE] (#18348)
* Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars

* merge conflicts

* adjust_eye_blur and set_eye_blur_if_lower

* adjust drowsiness overdoses

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 13:14:47 -05:00
SkyratBot
ae3b1e78a4 [MIRROR] Dogs become tamed when given bones [MDB IGNORE] (#18549)
* Dogs become tamed when given bones

* skew

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 08:38:01 -05:00
SkyratBot
ff97c189db [MIRROR] Dogs use the Pet Command system [MDB IGNORE] (#18393)
* Dogs use the Pet Command system

* modular pets

* modular dogs

* oops

* NO

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 08:06:58 -05:00
SkyratBot
7ee524f748 [MIRROR] Basic Mob Carp Part VIII: Basic Mob Carp [MDB IGNORE] (#18344)
* Basic Mob Carp Part VIII: Basic Mob Carp

* maps

* missed killing main carp file

* shorki and ocean biomes

* shorki 2: pet-a-boogaloo

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 05:48:50 -05:00
SkyratBot
002ab78d9b [MIRROR] useless update_appearance reduction, emissive_blocker micro optimization (saves a second of init) [MDB IGNORE] (#18243)
* useless update_appearance reduction, emissive_blocker micro optimization (saves a second of init)

* merge conflict

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-07 18:45:54 -05:00
SkyratBot
80d1906bd1 [MIRROR] Basic Mobs can run away [MDB IGNORE] (#18196)
* Basic Mobs can run away (#71963)

## About The Pull Request

That's right I'm still atomising #71421, some day I might even post
something related to carp.
This PR adds various behaviours to basic mobs allowing them to run away,
in a couple of variations.

Mice will flee from anyone who doesn't share their factions, at all
times (so they will scatter from most humans, but not regal rats).
Rabbits and Sheep will flee from anyone who has attacked them.
Pigs will run away from people who have attacked them, but only if
they're below half health.

https://user-images.githubusercontent.com/7483112/207127135-d1737f91-d3f7-468a-ac60-7c7ae5d6623d.mp4

Mice are still plenty catchable because they don't run _very far_ (or
very fast) but I think the chase will be good enrichment.

To achieve this I had to change the signal COMSIG_CARBON_HEALTH_UPDATE
into COMSIG_LIVING_HEALTH_UPDATE but frankly the latter seems more
sensible anyway.

## Why It's Good For The Game

More behaviours to use later when designing mobs, gradually gives mobs
more things to do rather than just sort of moving aimlessly around the
area you left them in.
It'll give people hunting rats in maintenance some exercise.

## Changelog

🆑
add: Mice will now run away from you, you have to catch them if you want
to eat them. Use those traps!
add: Rabbits, Sheep, and Pigs likewise won't just sit there and let you
pulverise them if they can see an escape route.
/🆑

* Basic Mobs can run away

* Modular!

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-07 23:51:47 +13:00
SkyratBot
650d64f6d4 [MIRROR] afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item [MDB IGNORE] (#18519)
* afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item

* Update _neck.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 06:55:38 +00:00
SkyratBot
e396fbca22 [MIRROR] Touch spells can now be used for high fiving, which casts it on the high-five-ee. [MDB IGNORE] (#18354)
* Touch spells can now be used for high fiving, which casts it on the high-five-ee.  (#71978)

## About The Pull Request

![image](https://user-images.githubusercontent.com/51863163/207437877-cecbad86-9af4-44ea-a1d9-75d16087e2c5.png)

https://user-images.githubusercontent.com/51863163/207440026-bbb77b71-1b9a-4330-9192-61b50e079df2.mp4

Offering a touch spell to someone will offer them a high five like with
the slapper.

If someone accepts your offer to high five, you will cast the spell on
them.

### **Important distinction: Cult spells are not touch spells they
aren't even spells**

## Why It's Good For The Game

A funny interaction with the offer system. High five people with smite
for fantastic results.

## Changelog

🆑 Melbert
add: You can now high five people with (non-cult) touch spells! Maybe be
careful high-fiving a wizard who knows Smite.
/🆑

* Touch spells can now be used for high fiving, which casts it on the high-five-ee.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-12-28 22:40:33 +00:00
SkyratBot
494935c2c0 [MIRROR] Fixes some bad AddElements, Fixes incompatible element runtime error text [MDB IGNORE] (#18355)
* Fixes some bad AddElements, Fixes incompatible element runtime error text (#72188)

## About The Pull Request

- `/datum/element/squish` cannot be applied to non-carbons, and the
falling hazard element works on all livings.
- It seems like squish could easily be changed to apply to all livings,
but out of scope.
- `/datum/element/fried_item` and `/datum/element/griled_item` weren't
being applied to the new item correctly
   - This one's my bad
- Changes "Incompatible element" `CRASH` to print the element type
rather than the mob's name mistakenly
- I think this was intended, but always used the wrong arguments, and no
one noticed?

## Why It's Good For The Game

Less runtimes, features work as expected, and a more clearer runtime for
element errors

## Changelog

🆑 Melbert
fix: Silver foods correctly spawn things grilled and fried
/🆑

* Fixes some bad AddElements, Fixes incompatible element runtime error text

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-12-28 07:44:36 -08:00
SkyratBot
81ca11b95a [MIRROR] Basic Mob Carp: Retaliate Element [MDB IGNORE] (#18030)
* Basic Mob Carp: Retaliate Element (#71593)

## About The Pull Request

Adds an Element and AI behaviour intended to replicate the "retaliate"
behaviour which made up an entire widely-populated subtype of simple
mobs.
The behaviour is pretty simply "If you fuck with me I fuck with you".
Mobs with the component will "remember" being attacked and will try to
attack people who attacked them, until they lose sight of those people.
They don't have very long memories so breaking line of sight is enough
to remove you from their grudge list.
The implementation unfortunately requires registering to 600 different
"I have been attacked by X" signals but c'est la vie.

It will still be cleaner than
`/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/honcmunculus`
and `mob/living/simple_animal/hostile/retaliate/bat/sgt_araneus`.

I attached it to the pig for testing and left it there because out of
all the farm animals we have right now, a pig would probably get pissed
off if you tried to kill it. Unfortunately it's got a sausage's chance
in hell of ever killing anyone.

## Why It's Good For The Game

It doesn't have much purpose yet but as we make more basic mobs this is
going to see a **lot** of use.

## Changelog

🆑
add: Basic mobs have the capability of being upset that you kicked and
punched them.
add: Pigs destined for slaughter will now ineffectually attempt to
resist their fate, at least until they lose sight of you.
balance: Bar bots are better at noticing that you're trying to kill
them.
/🆑

* Basic Mob Carp: Retaliate Element

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-12-12 18:02:47 -05:00
SkyratBot
9be426ef9c [MIRROR] Fixes art decal from spray can and crayon always being terrible [MDB IGNORE] (#18060)
* Fixes art decal from spray can and crayon always being terrible (#71760)

## About The Pull Request
Fixes #71688
`apply_moodlet(source, user, impressiveness * mult)` can result in
`impressiveness * 0 ` thus giving all decals bad artistic value.
## Why It's Good For The Game
Bug fix is very gud
## Changelog
🆑
fix: fixe all art decal giving you bad art moodlet on examine
/🆑

Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>

* Fixes art decal from spray can and crayon always being terrible

Co-authored-by: FinancialGoose <92416224+TheBoondock@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
2022-12-10 17:51:57 +00:00
SkyratBot
a5a173f672 [MIRROR] Adds the DNA Infuser, a genetics machine you feed corpses to infuse their DNA with yours! What could go wrong?! [MDB IGNORE] (#17811)
* Adds the DNA Infuser, a genetics machine you feed corpses to infuse their DNA with yours! What could go wrong?!

* SR conflicts

* fox ears

* remove duplicate event and merge master

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-07 16:07:26 +00:00
SkyratBot
e9dc2286a4 [MIRROR] Fixes registersignal(s) sound manager runtime [MDB IGNORE] (#17906)
* Fixes registersignal(s) sound manager runtime (#71667)

## About The Pull Request

RegisterSignal no longer takes lists, so these needed to be updated

The element passed an empty list to the component (caused a runtime but
not one you'd expect) and also registered a list to SSdcs incorrectly

Very cool

* Fixes registersignal(s) sound manager runtime

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-12-04 07:25:54 -08:00
SkyratBot
a6ff30c693 [MIRROR] Fixes layering of tram rails [MDB IGNORE] (#17829)
Fixes layering of tram rails

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-12-01 18:22:10 -05:00
SkyratBot
4a892c36b3 [MIRROR] Add baking and grilling results to the blackbox [MDB IGNORE] (#17856)
* Add baking and grilling results to the blackbox (#71632)

## About The Pull Request
Adds baking and grilling results to the blackbox. Microwaved and crafted
foods were being logged here, but the logging messages were lost when we
got the grilling and baking components.

## Why It's Good For The Game
More food logging yeehaw

## Changelog
No player-facing changes

Co-authored-by: tattle <article.disaster@ gmail.com>

* Add baking and grilling results to the blackbox

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
2022-12-01 10:36:16 -05:00
SkyratBot
810fef5fde [MIRROR] This kills the deep fried foods holder. Refactors deep frying to just make the thing edible but still functional. [MDB IGNORE] (#17848)
* This kills the deep fried foods holder. Refactors deep frying to just make the thing edible but still functional. (#71551)

## About The Pull Request

Refactors deepfrying, removing the gross Deep Fried Foods Holder Object
and replacing it with the edible component.

Now, deep frying a food will simply make the item edible directly. This
means it's still functional and doesn't become a dead item.

This follows the same method that grilling uses when applying its
effects. Tweaks grilling a bit so they line up better. Also, silver
foods can make grilled items.

![image](https://user-images.githubusercontent.com/51863163/204105022-ee66889b-f843-4dc2-b0dc-5f1eb5ba19c3.png)

I swear this is unrelated to the other 2 fried foods related PRs. I
started this a few weeks ago.

## Why It's Good For The Game

Tangibly better code (doesn't have to copy a million vars! Less
abusable!) at the price of removing a soulful piece of code. Also means
that deep frying an item doesn't irreversibly make it unusable / dead.
This is sad, but... damn the holder object sucks.

Unfortunate side effect is that anything that overrides `attack` to not
send signal will *not* be edible when deepfried. Maybe this encourages
better signal use?

Either that or fried foods can override `pre_attack` to hook directly
into eating. I can do that as well.

## Changelog

🆑 Melbert
refactor: Refactored deep fried foods. Deep fried foods are still
""usable"" as their normal item, but are just edible.
qol: Silver Slime stuff can spawn grilled as well as fried.
/🆑

* This kills the deep fried foods holder. Refactors deep frying to just make the thing edible but still functional.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-12-01 01:11:20 +00:00
SkyratBot
1d6f69a4fa [MIRROR] Undertile Element Logic Refactor, or Catwalks Aren't Affected by Ambient Occlusion Anymore [MDB IGNORE] (#17845)
* Undertile Element Logic Refactor, or Catwalks Aren't Affected by Ambient Occlusion Anymore (#71555)

## About The Pull Request
It was bugging me how catwalks would just be stuck rendering on the game
plane in order to be above the pipes and all the other underfloor
objects, because it meant that they stood out due to being affected by
ambient occlusion.

So I decided to change that, and the best change I could come up with,
was to refactor the logic of `/datum/element/undertile` in order to
actually allow us to do exactly what we wanted by having three different
states of underfloor visibility, which in turn allowed me to slap
everything that wasn't accessible on the floor plane rather than
whatever plane they were on, effectively making it so catwalk tiles
wouldn't need to be on the game plane anymore. :)

Also fixes https://github.com/tgstation/tgstation/issues/63590 while I'm
at it :)

## Why It's Good For The Game
Seeing ambient occlusion on catwalks make them stand out in a jarring
way, now that won't be the case anymore!

Now, instead, you get something like this, which _absolutely_ looks like
it fits in!

![image](https://user-images.githubusercontent.com/58045821/204106823-95b77a6b-b9c1-4494-b2f8-3b586c42428c.png)

## Changelog

🆑 GoldenAlpharex
refactor: Refactored the way the undertile component works, to allow it
to have a bit more granularity as to when it's meant to be covered, but
still visible, like for catwalks!
fix: Catwalks no longer are affected by ambient occlusion, and now
properly feel like actual floor tiles.
/🆑

* Undertile Element Logic Refactor, or Catwalks Aren't Affected by Ambient Occlusion Anymore

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-30 18:13:35 -05:00
SkyratBot
fcebbd61a9 [MIRROR] Basic Mob Carp Bonus Part: Wall smashing [MDB IGNORE] (#17791)
* 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>
2022-11-28 16:42:19 -05:00
SkyratBot
a70a6a8055 [MIRROR] Save 0.6-0.7s of init time by splitting registering lists of signals into its own proc, and optimizing QDELETED [MDB IGNORE] (#17670)
* Save 0.6-0.7s of init time by splitting registering lists of signals into its own proc, and optimizing QDELETED

* modular RegisterSignals

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 14:51:08 -05:00
SkyratBot
257feb1be7 [MIRROR] More horrible 515 proc compatibility. [MDB IGNORE] (#17671)
* More horrible 515 proc compatibility.

* Feex

* Hopefully we're done now

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-27 14:46:36 -08:00
SkyratBot
a2f7b13ebd [MIRROR] Refactor of pizza crate code and various other small pizza related code changes [MDB IGNORE] (#17659) 2022-11-22 10:02:16 -08:00
SkyratBot
e75eeca48d [MIRROR] Coffee Shop DLC - done right this time edition [MDB IGNORE] (#17622)
* 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>

* Coffee Shop DLC - done right this time edition

Co-authored-by: disappointedButNotSuprised <57324037+disappointedButNotSuprised@users.noreply.github.com>
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-22 00:19:52 -05:00
SkyratBot
b4fd13b16b [MIRROR] Improve the naming of the element argument hash index selector [MDB IGNORE] (#17588)
* Improve the naming of the element argument hash index selector (#71319)

So confusing name

* Improve the naming of the element argument hash index selector

* sr sync

Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-21 16:27:40 -05:00
SkyratBot
3dc90aa092 [MIRROR] Fix being unable to block embeds [MDB IGNORE] (#17586)
* Fix being unable to block embeds (#71334)

## About The Pull Request

Fixes #62386
Fixes #71309

## Changelog

🆑
fix: Fix being unable to block embeds
/🆑

* Fix being unable to block embeds

Co-authored-by: 1bw0kopy <xz2rbf23@protonmail.com>
2022-11-20 00:27:22 +00:00
SkyratBot
49d1a6d1a9 [MIRROR] Adds falling hazard element, beware of falling tools, wear your hardhat, comically timed piano falling on the clown [MDB IGNORE] (#17539)
* 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>

* Adds falling hazard element, beware of falling tools, wear your hardhat, comically timed piano falling on the clown

* Made anvil and large mortar falling hazards

Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2022-11-18 14:10:59 -05:00
SkyratBot
ce962ec886 [MIRROR] Fix emberfall sound looping forever [MDB IGNORE] (#17545)
* Fix emberfall sound looping forever (#71282)

## About The Pull Request

Fixes #71154

## Changelog
🆑
fix: Fix emberfall sound looping forever
/🆑

* Fix emberfall sound looping forever

Co-authored-by: 1bw0kopy <xz2rbf23@protonmail.com>
Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
2022-11-18 12:31:12 +13:00
SkyratBot
1ba95626a6 [MIRROR] mech bustin update 2022 [MDB IGNORE] (#17504)
* 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. -->

* mech bustin update 2022

* vr for the love of god

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2022-11-16 14:41:58 -08:00
SkyratBot
68e8eee1fc [MIRROR] Refactors Rabbits to be a Basic Mob [MDB IGNORE] (#17499)
* 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.

* Refactors Rabbits to be a Basic Mob

* Fixed the CI and the rabbit on VoidRaptor

* Oops, forgot to remove it from here too

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-11-16 11:57:50 -05:00
SkyratBot
d6c74372f9 [MIRROR] Bedsheet Improvements [MDB IGNORE] (#17496)
* 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>

* Bedsheet Improvements

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-11-16 08:17:57 -08:00
Zonespace
f7c26bbf25 515 Compat (#17465)
* ONLY SKYRAT CHANGES

* ACTUALLY SKYRAT CHANGES

* yolo, revert later

* Update alternate_byond_versions.txt

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-11-15 06:59:06 +00:00
SkyratBot
4b6c93f6b9 [MIRROR] Easy's Super Omega "unarmed strike based species var moved to limbs" refractor, unarmed strike striking with specific body parts rather than it just being flavor, and brain based attacking limb selection extra chunky edition. And also bodypart traits. [MDB IGNORE] (#17306)
* Easy's Super Omega  "unarmed strike based species var moved to limbs" refractor, unarmed strike striking with specific body parts rather than it just being flavor, and brain based attacking limb selection extra chunky edition. And also bodypart traits.

* Removed all the conflicts, and started converting all the arms and legs to the proper typepaths

* Actually makes the game compile :)

* Makes the maps compile too!

* Early mirror of #71143 because it's more relevant to us

Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-11-11 11:44:49 -05:00
SkyratBot
f6f454be72 [MIRROR] randomizes the pixel offset of stuff when it comes out of a microwave [MDB IGNORE] (#17395)
randomizes the pixel offset of stuff when it comes out of a microwave

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-09 14:16:50 -05:00
SkyratBot
9e9b09d90b [MIRROR] Chefs can now kiss food they make to make it with love. (And a lot of cooking refactoring) [MDB IGNORE] (#17334)
* Chefs can now kiss food they make to make it with love. (And a lot of cooking refactoring)

* update from master and fix conflicts

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-11-09 17:49:35 +00:00
SkyratBot
80d124a3c6 [MIRROR] 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) [MDB IGNORE] (#17384)
* 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.

* 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)

* skyrat elements

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-05 17:48:01 -04:00
SkyratBot
64d27e50e3 [MIRROR] Saves 2 seconds off init by inlining the bumpclick element [MDB IGNORE] (#17339)
* Saves 2 seconds off init by inlining the bumpclick element (#71008)

## About The Pull Request

It was also a tad yorked so I fixed that bit
bump_click did very little in this case, and while the modularity is
nice, the hotness of minerals made this totally untenable

* Saves 2 seconds off init by inlining the bumpclick element

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-11-04 12:58:53 -04:00
SkyratBot
dfaddc1570 [MIRROR] Fixes attack equip element passing incorrect args [MDB IGNORE] (#17263)
* Fixes attack equip element passing incorrect args (#70895)

* Fixes attack equip incorrect args

* These will never run

* Fixes attack equip element passing incorrect args

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-10-31 14:09:06 +00:00
SkyratBot
62c02030e3 [MIRROR] Convert mouse and rat to basic mobs [MDB IGNORE] (#17215)
* Convert mouse and rat to basic mobs

* run the UpdatePaths script you borb

* packs and nests

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-10-28 21:27:47 -04:00
SkyratBot
4ad8aa5bbb [MIRROR] Fixes some bespoke elements being passed non-static lists. [MDB IGNORE] (#17178)
* Fixes some bespoke elements being passed non-static lists. (#70690)

Bespoke keys use references of lists in generation. Non-static lists will create a million instances of the element, not good.

* Fixes some bespoke elements being passed non-static lists.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-10-26 16:17:46 -04:00
SkyratBot
4c79b97104 [MIRROR] Refactors some signal misuse with the stationloving component [MDB IGNORE] (#17157)
* Refactors some signal misuse with the stationloving component (#70496)

* Refactors secluded locs

* Tweak

* Use traits instead of signals

* Review

* Type error

* Refactors some signal misuse with the stationloving component

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-10-25 14:13:46 -07:00
SkyratBot
d1ffc137fd [MIRROR] Fixes contextual bare hand element improperly setting up its element ID [MDB IGNORE] (#16917)
* Fixes contextual bare hand element improperly setting up its element ID (#70538)

Fixes contextual barehanded screentips being inaccurate if only LMB text is set

* Fixes contextual bare hand element improperly setting up its element ID

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-10-17 10:04:28 +01:00
SkyratBot
7d9556c291 [MIRROR] Fixes null thrower runtime with plant backfire element [MDB IGNORE] (#16896)
* Fixes `null` thrower runtime with plant backfire element (#70540)

Fixes null thrower runtime

* Fixes `null` thrower runtime with plant backfire element

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-10-16 10:39:01 -04:00
SkyratBot
3eecf2fbb9 [MIRROR] Put clothing on people by clicking on them with clothing inhand + targeting correct area. [MDB IGNORE] (#16724)
* Put clothing on people by clicking on them with clothing inhand + targeting correct area. (#69560)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Put clothing on people by clicking on them with clothing inhand + targeting correct area.

Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-10-09 23:05:57 +01:00
SkyratBot
2c60091ec7 [MIRROR] Adds a few (very) basic hallucinations, to keep people on their toes [MDB IGNORE] (#16709)
Adds a few (very) basic hallucinations, to keep people on their toes

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-10-09 23:05:33 +01:00