Commit Graph

511 Commits

Author SHA1 Message Date
SkyratBot
2a355aeed2 [MIRROR] Ice cream now gives a chilling food effect (plus small food haste buff) (#26914)
* Ice cream now gives a chilling food effect (plus small food haste buff) (#81719)

## About The Pull Request
We have a `crafted_food_buff` in the code meant for specific food buffs
(and perhaps one day, debuffs) that has gone unused ever since it was
created during the 'Foodening' PR.

Anyway, yeah, this PR takes the fire step to implement it with ice cream
and other frozen treats.

Frozen treats (all food found in the `food/frozen.dm` file) have it by
default. Other ice cream holders such as waffles cones (and now regular
waffles too!) can aquire it when filled with ice cream. Using the ice
cream vat also adds the 'Chef Made' trait now, which is required for
food effects to happen.

Also very slight food effect refactor. There's no need to have five
different alert screen objects when only have to switch icon states.

This PR also adds an action speed modifier to the generic 'haste' food
effect. I'm confident the original creator would have done that too, but
action speed modifiers aren't as well-known.

## Why It's Good For The Game
People tend to make one feature, call it a day and then move on to the
next. Food effects are nice, however they're barely implemented, and I
don't like food being all the same-ish in the end.

## Changelog

🆑
add: Ice cream and frozen treats now have a chilling effect.
add: You can add a scoop of ice cream on waffles.
balance: added an action speed modifier to the generic food haste effect
(you do things, and not just run, an itsy bitsy faster)
/🆑

* Ice cream now gives a chilling food effect (plus small food haste buff)

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-03-16 22:50:16 -04:00
SkyratBot
5638c1f642 [MIRROR] Don't use turf icons for abilities (#26712)
* Don't use turf icons for abilities (#81720)

## About The Pull Request

Fixes https://github.com/wall-nerds/wallening/issues/100
Replaces a couple of instances of abilities using the icons of walls or
floors with different, somewhat more descriptive icons.

I will be honest I do not understand why two of these were even using
iron walls as an icon.
Both of these instances were cases of "I want to surround something" so
I have replaced them with this icon:

![image](https://github.com/tgstation/tgstation/assets/7483112/264da818-5c33-4093-b993-45ee1b06c24f)

I have also replaced the "freeze floors" ability icon with the ice cube
icon, rather than a 32x32 ice floor icon.

![image](https://github.com/tgstation/tgstation/assets/7483112/524af0ac-4128-4bd3-a3f0-f82583f6cbcb)

I removed a bunch of old copies of goggles items from the `robot-items`
dmi and made them just reference the corresponding item sprites that
they were copies of, because they were out of date with the items and
using deprecated sprites. X-Ray now just looks like the red sam fisher
goggles instead of a caution sign (not that it is obtainable in game).

Oh also I added a tooltip to Ice Demon afterimages because it didn't
have one.

## Why It's Good For The Game

The previous icons don't even look like anything.

## Changelog

🆑
image: Bubblegum Hallucination Surround Charge, Wendigo Shockwave
Scream, and Ice Demon Floor Freeze all have more appropriate action
icons.
qol: Adds a tooltip to Ice Demon Afterimages ability.
image: Cyborg view items now use the same sprites as their corresponding
goggles instead of old versions of those sprites.
/🆑

* Don't use turf icons for abilities

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-03-01 18:38:37 +01:00
SkyratBot
290a97d05e [MIRROR] You can do more things while floored (#26643)
* You can do more things while floored (#81641)

## About The Pull Request

While on the floor, you can:
- Use the UIs of Atmos machinery (except thermomachine and bluespace gas
vendor), Holopads, Crayons (spray cans too), radios, and Disposal bins
- Close extinguisher cabinets with Right-Click
- Click and drag yourself onto a photocopier to climb onto it.

I also changed all instances of ``ui_status`` to have all the args it's
being passed, I was messing with it a bit but it's gonna be for a later
PR.

## Why It's Good For The Game

It's an extra layer of harmless realism, also nice QoL for people who do
not have functional legs and do not have a wheelchair.

## Changelog

🆑
qol: You can use atmos machines, holopads, crayons, spray cans, and
disposal bins while floored.
fix: You can close extinguisher cabinets while floored.
fix: You can climb onto a photocopier from the floor.
/🆑

* You can do more things while floored

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2024-02-26 21:32:59 +01:00
SkyratBot
85cc1c6acc [MIRROR] cyborg inducer respects cell changes (#26191)
* cyborg inducer respects cell changes (#81002)

## About The Pull Request

cyborg inducers use the cell of the cyborg instead of the one in the
borg when it was inserted

also minor code cleanup

## Why It's Good For The Game

fixes #80956

## Changelog
🆑
fix: cyborg inducer respects cell changes
/🆑

* cyborg inducer respects cell changes

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
2024-01-20 13:55:50 -05:00
SkyratBot
dc7873d5ca [MIRROR] [No GBP] Fixes all borg apparatus-type tools [MDB IGNORE] (#26108)
* [No GBP] Fixes all borg apparatus-type tools (#80912)

## About The Pull Request
- Makes borg apparatus-type tools able to start the held item's attack
chain again.
## Why It's Good For The Game
Bug of my own making.
Fixes #80881
## Changelog
🆑
fix: Borg tools that hold and use specific items now work correctly
again.
/🆑
Oops.

* [No GBP] Fixes all borg apparatus-type tools

---------

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2024-01-14 06:36:23 +01:00
SkyratBot
fb156f2319 [MIRROR] Fixes borg apparatuses being able to pick up inactive items from their own module storage window [MDB IGNORE] (#26060)
* Fixes borg apparatuses being able to pick up inactive items from their own module storage window (#80835)

<!-- 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
Adds a check against picking up objects with a `loc` of
`/obj/item/robot_model` (which is where inactive borg modules go). Also
adds a check against picking up nodrop items.

Also reorganizes the relevant proc to be IF > Early Return, rather than
IF/ELSE
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
Fixes #80074
Probably also fixes #77156
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

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

🆑
fix: The various borg apparatuses can no longer pick up other internal
borg tools.
/🆑

<!-- 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. -->

* Fixes borg apparatuses being able to pick up inactive items from their own module storage window

---------

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2024-01-10 06:29:34 -05:00
SkyratBot
2c789e5276 [MIRROR] Replaces cyborg lover with transhumanist [MDB IGNORE] (#25811)
* Replaces cyborg lover with transhumanist (#80509)

<!-- 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 reworks cyborg lover to be more interesting. Taking this quirk will
start the user off with a robotic limb. The user gains mood buffs by
being around silicon based lifeforms and loses mood by being around
organic based lifeforms.
Additionally, they can gain mood buffs by replacing all of their limbs
to their silicon counterparts but can also gain a massive mood debuff if
they lose or replace their starting robotic limb with an organic one.

The idea being here that they hate organics and seek to become robotic

Also, transhumanists won't be scared of people who have two or more
augments.

## 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. -->
Cyborg lover isn't really all that interesting since it's just a basic
mood buff upon clicking on a silicon.
This makes it more interesting by making it a dynamic between silicons
and organics and may adapt the playstyle of anyone choosing to take this
perk as they will need to stay away from organics to avoid mood debuffs.

## 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. -->

🆑
balance: Cyborg lover has been replaced with Transhumanist.
Transhumanists start with a robotic limb and get mood buffs by being
near to silicon-based lifeforms. However, they get mood debuffs by being
near organics, so there is a tradeoff to taking this quirk. The cost for
this quirk has been reduced from 2 to 0.
/🆑

<!-- 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: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>

* Replaces cyborg lover with transhumanist

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
2023-12-24 18:31:06 +00:00
SkyratBot
c3ced06238 [MIRROR] New Quirk! Cyborg Lover! [MDB IGNORE] (#25762)
* New Quirk! Cyborg Lover! (#80023)

## About The Pull Request

This PR adds a new quirk for people, who want to play as
silicon-friendly crew.

Basic quirk info:
- It costs 2 points.
- It has minor additions to person's mail goodies list (cable coils,
basic cells, etc).
- It has a few simple mood events, when you pet a borg or being
touched/hugged by borg.

## Why It's Good For The Game

I think it is nice to have a chance to play as ~~robo-creep~~ person who
loves borgos.

## Changelog

🆑
add: Added new quirk: Cyborg Lover!
/🆑

---------

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

* New Quirk! Cyborg Lover!

---------

Co-authored-by: SSensum <121913313+SSensum@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2023-12-21 01:41:26 -05:00
SkyratBot
3658c80e57 [MIRROR] Explodes device.dmi [MDB IGNORE] (#25523)
* Explodes device.dmi

* Demodularize these

* Update traitordevices.dm

* Update traitordevices.dm

* Modularizes hypnotic flash

* Modular dmi repath

* Modular dmi repath

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-09 09:48:43 -05:00
SkyratBot
5aff98201e [MIRROR] Adds some more engi borg modules and buffs the engi borg RPED [MDB IGNORE] (#25199)
* Adds some more engi borg modules and buffs the engi borg RPED (#79374)

- add Internal inducer: An inducer for engi borgs, it uses power from
there own cell to charge other devices
- Buff the RPED module to be onpar with BSRPED in storage(same
otherwise)
- Borg chargers now also draw from powernet like cells do

The RPED buff is more because the standard capacity for parts is really
low, this lets borgs use RPED more hassle free. They still need to
physicaly be next to the machine so its not an insane buff otherwise

* Adds some more engi borg modules and buffs the engi borg RPED

---------

Co-authored-by: Autisem <36102060+Autisem@users.noreply.github.com>
2023-11-22 21:24:14 -05:00
Bloop
8d9a35a4fe Adds our traits define file to the linter steps (#25134)
* Adds our traits define file to the linter steps

* Update check.py

* Adds our traits define file to the linter steps

* Update check.py

* Update ci_suite.yml

* Update declarations.dm

* Modular traits

* Update _traits.dm

* Update _traits.dm

* Oops

* Yes we do

* Update sources.dm

* Update other_reagents.dm

* oOPS

* Update for changeling sting pr

* Update for changeling sting pr

* Update declarations.dm

* Oopsies

* Add to admin tooling

* Update _traits.dm

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/__DEFINES/~skyrat_defines/traits/declarations.dm

---------

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-11-22 15:05:41 -05:00
SkyratBot
9c78808284 [MIRROR] Nukes radio.dmi, adds inhands for somewhat relevant items. [MDB IGNORE] (#25147)
* Nukes radio.dmi, adds inhands for somewhat relevant items. (#79792)

## About The Pull Request

Third /icon/ cleansing splinter 1. Comments on commits say all it does
pretty much.

![image](https://github.com/tgstation/tgstation/assets/122572637/6540e588-bed8-4e98-81f5-2a6f449c53c3)

## Why It's Good For The Game

Inhand for walkietalkie was requested in the project, gets rid of some
usecases of old 'gangtool', headset splitoff requested by Fazzie.
Inhands reflecting the items they are supposed to represent is nice.

## Changelog

🆑
image: Following now have unique item sprites: syndicate war declaration
radio, curator and chief beacon's, chaplain beacon.
image: Following now have unique inhand sprites: radio, export scanner,
walkie-talkie, syndicate war declaration radio, curator and chief
beacon's, chaplain beacon.
/🆑

* Nukes radio.dmi, adds inhands for somewhat relevant items.

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
2023-11-20 09:05:49 -05:00
SkyratBot
b237afa316 [MIRROR] Mob attackedby / check_block refactor, plus some minor cleanup of attack_x procs [MDB IGNORE] (#25079)
* Mob `attackedby` / `check_block` refactor, plus some minor cleanup of `attack_x` procs

* Fix the race condition

* Modular

* Ooops

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-18 02:19:31 -05:00
SkyratBot
3a1925b4d1 [MIRROR] fixes signal circuit not working | refactors name of timer cooldown macros to be inherent, also docs them [MDB IGNORE] (#24675)
* fixes signal circuit not working | refactors name of timer cooldown macros to be inherent, also docs them (#79367)

## About The Pull Request

Title
## Why It's Good For The Game

Less headache in the future for a macro thats not really obvious in what
it does
## Changelog
🆑
fix: signals in circuits now actually function
/🆑

* fixes signal circuit not working | refactors name of timer cooldown macros to be inherent, also docs them

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-10-31 18:31:52 -04:00
SkyratBot
f292f2a713 [MIRROR] B.O.R.I.S. Module Bugfix [MDB IGNORE] (#24431)
* B.O.R.I.S. Module Bugfix (#79047)

## About The Pull Request

The boris module that turns a cyborg into an AI shell is a bit weird. It
can be used like an MMI or a positronic brain directly on a completed
borg exoskeleton. It can also be used like any other cyborg upgrade on a
completed cyborg, if an only if that cyborg is not controlled by a
player already. If you reset an AI shell, it is intended to make the
cyborg un-player controlled and to drop the boris module onto the
ground. From there, you are supposed to be able put it back in like any
other upgrade.

However, this behavior was bugged. Due to certain parts of the code not
calling procs they should have, the boris module was not being properly
removed from the list of upgrades when the shell was reset (in most
cases). This meant that the boris module could not be re-applied to the
newly empty borg. Furthermore, if the empty borg was deconstructed then
the dropped boris module would immediately be deleted.

This PR just fixes all that behavior so it works properly. I also fixed
a weird typo with removing cells from borgs because I noticed it while
testing.
## Why It's Good For The Game

Bugs are bad.
## Changelog
🆑
fix: B.O.R.I.S. modules can once again be properly applied to the
unformatted borg created when you reset an AI shell.
/🆑

* B.O.R.I.S. Module Bugfix

---------

Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
2023-10-19 15:17:38 -04:00
SkyratBot
6e677a2bbd [MIRROR] Invisibility refactor [MDB IGNORE] (#24405)
* Invisibility refactor (#78908)

This adds a tracker for sources of invisibility and a priority system. I
needed this for another thing so I'm doing this first since it touches a
lot of code. As for the bugs fixed in the changelog, it's only what I
noticed while going through everything and there's likely a few more
things fixed with this. This should be testmerged for a while, I'll
bring this out of draft when it feels safe.

🆑
admin: Invisimin can now be used on mobs that are already invisible,
whether through temporary or permanent effects.
fix: Monkeyize/Humanize mob transformations no longer permanently reveal
invisible mobs if they had effects making them invisible otherwise.
fix: Objects with the undertile element that have been made invisible
through other means are no longer revealed by being uncovered.
/🆑

* Invisibility refactor

---------

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2023-10-18 00:36:09 -04:00
SkyratBot
60fd61c37f [MIRROR] Engineering Borgs can no longer grab their own iron module [MDB IGNORE] (#24133)
* Engineering Borgs can no longer grab their own iron module (#78773)

## About The Pull Request

Borgs apparatus modules can no longer pick up items located inside
themselves (or another borg, technically). I can't think of any
situation where a borg would legitimately need to do this, and it can
cause bugs. Closes #76699. Closes #77659.
## Why It's Good For The Game

This is a major borg that can result in humans having un-droppable borg
modules in their hands.
## Changelog
🆑
fix: Engineering borgs can no longer grab and drop their own iron/glass
sheet module.
/🆑

* Engineering Borgs can no longer grab their own iron module

---------

Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
2023-10-06 05:44:24 -04:00
SkyratBot
9976d8cf79 [MIRROR] Nerfs peacekeeper borg shock hugs [MDB IGNORE] (#23839)
* Nerfs peacekeeper borg shock hugs (#78332)

## About The Pull Request

Modifies the flags of the peacekeeper cyborg's emagged shock hug,
changing the hardstun to one similar to the shock hand mutation.
## Why It's Good For The Game

Most players will agree that hardstuns are something that should be
phased out, however, there are some situations where hardstuns are
necessary for glass cannons to balance out their achilles heel.
Peacekeeper borg shock hugs are not one of those things.

Right now, the shock hug is a discreet (i.e iconless) electrocution
hardstun weapon that ignores insuls, arguably making it more effective
than the engineer borg's stun arm despite being a side module.

One of the things that balances this out on the engineer borg is that
the stun arm is a dead giveaway, it has a visible icon and makes a
distinct stun noise. Meanwhile, shock hugs have no icon, and the
ubiquitous shock effect combined with the relative obscurity of the
shock hug can cause some confusion among the crew.

Although borgs _should_ be powerful in many cases, this powerful of a
combat tool feels unwarranted considering the peacekeeper already has
multiple other stunning tools.

Replacing the stun effect with a disarming effect should act as a soft
nerf while playing into the peacekeeper borg's anti harm theming, and
hopefully keep it viable as disarming can very well make or break a
fight.
## Changelog
🆑
balance: Peacekeeper cyborg's emagged hug is no longer a hardstun.
/🆑

* Nerfs peacekeeper borg shock hugs

---------

Co-authored-by: Toastgoats <63932673+Toastgoats@users.noreply.github.com>
2023-09-21 14:22:36 -04:00
SkyratBot
3863238ccd [MIRROR] Removes some food initialize arguments [MDB IGNORE] (#23712)
* Removes some food initialize arguments (#78322)

## About The Pull Request

A prior PR added some new initialize arguments to the food subtype which
did not strictly need to be there, this caused a large number of bugs as
a result of places which already had extra initialize arguments not
correctly accounting for these new ones.
As a result I have removed these again in favour of performing the
required operations in a different way (one of these arguments was
seemingly used for butter purity and literally nothing else), for this
food and also some of its subtypes.

In some other cases where it _did_ make sense to have arguments in
`initialize` I also added them to `new` so they can be passed by name.

This will hopefully make the food more maintainable if in the future if
someone does something similar, and solve any remaining bugs related to
"not passing the arguments properly".

## Changelog

Hopefully not player facing

* Removes some food initialize arguments

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-09-15 12:30:43 -04:00
SkyratBot
85b005636e [MIRROR] Service borg extra apparatus upgrade [MDB IGNORE] (#23616)
* Service borg extra apparatus upgrade (#78077)

## About The Pull Request

Adds an upgrade similar to the extra beaker storage for mediborgs to
service borgs, which adds an additional drink apparatus (that also
doesn't do the weird drink refilling thing)
## Why It's Good For The Game

This can allow the service borg to carry a wider variety of drinks, also
considering they specialize in chemistry, they should get an apparatus
upgrade like mediborgs.

## Changelog
🆑
add: Added the service borg "drink apparatus" upgrade, which adds an
extra drinking apparatus to the borg, up to a maximum of 5 extra.
🆑

* Service borg extra apparatus upgrade

---------

Co-authored-by: Teagarden <124026007+Vincent983@users.noreply.github.com>
2023-09-10 13:37:29 -04:00
SkyratBot
6620bffa84 [MIRROR] Collected food fixes [MDB IGNORE] (#23596)
* Collected food fixes (#78190)

I went through the code and tried to find all of the remaining places we
forgot to update the arguments passed into `item/food/Initialize` after
more arguments were added to it, because there were a couple and they
caused things to stop working.
Most notably, golems were unable to eat anything because nothing would
correctly spawn "golem food".

_Additionally_ we were using a bunch of named arguments in new whenever
crafting or cooking food. This runtimed, causing the food not to init
properly.
_On top of that_ a late code review on a recent PR processed a list into
a string_assoc_list twice causing it to become null.

Finally, we were trying to check the food preferences of examining
ghosts or dogs or other non-human mobs. We shouldn't do that.

I also added a unit test for moth and golem food in the hopes that we'll
notice them breaking.

* Collected food fixes

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-09-09 10:32:37 -04:00
SkyratBot
71da4ca73f [MIRROR] Refactors the notransform variable into a trait. [MDB IGNORE] (#23566)
* Refactors the `notransform` variable into a trait.

* Update robot_upgrades.dm

* modular

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-07 20:24:59 -04:00
SkyratBot
87bfa7a61a [MIRROR] Fixes typo 'transfered', olive oil reaction repath [MDB IGNORE] (#23469)
* Fixes typo 'transfered', olive oil reaction repath

* Modular

* Update condiment.dm

* Update recipes_guide.dm

* Update _cup.dm

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-04 08:49:33 -04:00
SkyratBot
f0b265b6bb [MIRROR] Foodening [MDB IGNORE] (#23440)
* Foodening

* Update chem_dispenser.dm

* Juicening?

* Update big_mortar.dm

* Adds crafting complexities to modular foods

* Olive oil repath

* Cooking oil repath

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-03 20:47:17 -04:00
Bloop
b766255ef6 [MISSED MIRROR] Setting a few things straight with embedding and caseless ammo. (#77450) (#23014)
Setting a few things straight with embedding and caseless ammo. (#77450)

## About The Pull Request
So, when I made the `caseless` and `projectile_drop` elements, I failed
to take into account that bullets have an embedding variable sets, which
led to a few projectiles being embeddable when they shouldn't.

Beyond that, I wanted arrows and harpoons to be reusable yet embeddable,
which lead me to change a couple lines on the `embed` element, since
whoever made the element thought it was a good idea to add the
unnecessary step of attaching a copy of it to the `payload_type` of a
fired projectile before trying to embed it. Like, why? All that's going
to do is cause the resulting item to become embeddable, which may be an
issue for anything other than drop-deletable shrapnels. So yea, arrows
and harpoons, and emagged lollipops will now embed properly.

I've also deleted an unused, problematic subtype of quiver and arrow
casing, and made the quiver storage use

## Why It's Good For The Game
This will fix #77187. Perhaps buff harpoons and arrows a little but meh.

## Changelog

🆑
fix: Fixed fired foam darts, gumballs and (harmless) lollipops being
embeddable.
fix: Projectiles that should embed while being reusable will now do so
correctly, actually embedding the reusable casing instead of a shrapnel.
balance: Arrows are generally more likely to embed now, except for
blazing ones, that kind of just blaze.
qol: the quiver storage now uses numerical stacking (like botany and ore
bags, or the RPED, for example).
/🆑

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-08-11 14:23:29 -04:00
SkyratBot
200089ab97 [MIRROR] Service Borg's Apparatus Fix [MDB IGNORE] (#22968)
* Service Borg's Apparatus Fix (#77403)

## About The Pull Request
Fixes an oversight in containers with the service cyborg's apparatus, by
allowing it to pick up coffee pots and syrup bottles.

## Why It's Good For The Game

Coffee pots alongside syrup bottles are generally used and made within
the service department, and it would only make sense if the service
cyborg could also pick up and move these drink related containers around
too.

* Service Borg's Apparatus Fix

---------

Co-authored-by: Derpguy3 <85206687+Derpguy3@users.noreply.github.com>
2023-08-09 16:57:57 -04:00
SkyratBot
c0799c48c0 [MIRROR] A small pile of borg combat changes [MDB IGNORE] (#22704)
* A small pile of borg combat changes (#75819)

## About The Pull Request
This PR rebalances borg combat. It is first part of broader set of
changes that I talked about with armhullen, which was then discussed in
discord player project channel. Ultimately arm decided to rewrite the
complete rebalance and grab combat, but to help with testing, and to
measure reaction to that changes, I wrote this much smaller change, that
should be usable as a TMd test.
Main points that changed:

- Flashing cyborgs for the first time blinds them, and scrambles their
movement. Flashing them while they are blinded immobilizes them as it
used to, but still allows them to talk, and use radio.
- Emping cyborgs still turns them completely off, but the code behind is
_slightly_ changed, because of how utterly incomprehensible cyborg code
is
- Borg stunarm deals 60 stamina damage, costs 200 energy (SUBJECT TO
CHANGE AS SOON AS I DECIDE ON HOW TO), and applies confusion,
stuttering, and jittering.
- Robot consoles used by humans can now lock down only one borg at a
time, they exhibit increased power draw while doing so. The borg is also
informed of the location of the console. If left alone, the borg will
unlock itself in 10 minutes, to avoid leaving it permanently locked down
in some faraway place. If the console gets destroyed (or depowered), the
borg will get unlocked
- laser pointer only blinds borgs, without the paralyze component. If
you flash a borg blinded this way it will paralyze it, so comboing it is
possible.
- Throwing things at borgs slows them down

Not planned, but possible if testing shows its required:
- Changing borg health to malfunctions
- Whatever people convince me to add
- Portable lockdown solution for sec, or a way for them to do basic
check on borg.
- Usage of bucket/something else to restrict radio usage of cyborg

If you have ideas what would make this change better please use [discord
channel](https://discord.com/channels/326822144233439242/1113145741788065924),
or comments. Almost everything that I wrote here is subject to change,
as requested or suggested.

### DISCLAIMER
I had to change few functions in background of how borgs work. This WILL
have changes I couldn't predict, since some of them aren't linked in any
obvious way in code. I am aware of that, and will try fixing what needs
fixing when pointed out.
PS: Borg code is a nightmare

## Why It's Good For The Game
Borg combat sucks. It is absolutely binary, there is 0 capacity for
talking, because both sides fear losing in one click. Sec can't really
feasibly ask the borg to state laws while flashed, so their only
solution is to kill it and revive it.

- Turning most instastun solutions into less lethal versions should
lessen the pressure, since it reduces the chance that person that reacts
first survives.
- It causes minor reduction in traitor's capacity to emag borgs with
only a flash, but EMPs still hardstun, and they are plentiful both in
uplink, and in ghetto form, so that shouldn't be a problem.
- Since it allows borgs to scream for help while being flashed, it also
increases the potential of AI helping it, or at least noticing its
death.
- Lockdown console changes reduce its capability in completely turning
off malf ai, and leave it still highly capable of being an useful tool
in stopping emagged cyborgs.

## Changelog
🆑
balance: Flashing borgs requires two consecutive flashes to fully
immobilize
balance: Flashed borgs can speak
balance: Remote lockdown on cyborgs lasts 180 seconds
balance: Cyborg stun arm works like normal baton, and costs less energy
/🆑

---------

Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>

* A small pile of borg combat changes

---------

Co-authored-by: Kubisopplay <38842052+Kubisopplay@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-07-26 18:32:44 -07:00
SkyratBot
7f6a3cea58 [MIRROR] Removes side effects in Destroy from cyborgs, misc related code cleanup [MDB IGNORE] (#22575)
* Removes side effects in Destroy from cyborgs, misc related code cleanup (#76867)

## About The Pull Request

- Removes side effects from cyborg `Destroy`
- Right result in more cyborgs getting dusted... Will have to check this
out.

- General AI / cyborg code cleanup

Fixes #76855

## Why It's Good For The Game

Some more consistent, clean code

## Changelog

🆑 Melbert
fix: Cyborgs no longer drop their radio key when deleted, only when
deconstructed first
fix: Cyborgs no longer drop their MMI on deletion, only prior to
deletion. This may result in bad code rearing its ugly head, open an
issue report on the github if you're a cyborg and get ghosted when you
feel like you shouldn't
fix: Runtime from syndie cyborgs spawning
fix: AI deaths are reported to black box
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Removes side effects in Destroy from cyborgs, misc related code cleanup

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-07-18 20:58:40 -04:00
SkyratBot
2f552919c1 [MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two

* Merge conflict resolution

* Modular path hell

* hmm

* Update 2022-10.yml

* Another modular thing

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-16 00:41:18 -04:00
SkyratBot
e264ee3644 [MIRROR] Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts [MDB IGNORE] (#22469)
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts

* Update communications.dm

* Modular override

* Some modular adjustments, removes 'emagged' vars in favor of obj_flags

* whoops, mobs don't have obj_flags.

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 16:46:17 -04:00
Bloop
bf30f6e31e [MISSED MIRROR] Robot suit hard-del / exited cleanup (#76583) (#22438)
Robot suit hard-del / exited cleanup (#76583)

## About The Pull Request

Constructed cyborgs seemed to hard delete pretty consistently due to
their robot suit having poor reference handing

Goes through and better implements exited for cyborgs and robot suits

Also a hard delete with forced AIs that may have resulted in some
metagaming

Also fixes 1 nodrop check for hats

## Why It's Good For The Game

Hard deletes are bad

## Changelog

🆑 Melbert
fix: Fixed some hard deletes involving constructed cyborgs
fix: Cyborgs with nodrop hats no longer lose them on tip
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2023-07-15 16:00:22 -04:00
SkyratBot
381549f2f7 [MIRROR] service borg cookin fixin update [MDB IGNORE] (#22325)
* service borg cookin fixin update (#76590)

## About The Pull Request
PR done for bounty:
https://tgstation13.org/phpBB/viewtopic.php?f=5&t=33988
borgs can now turn on stoves and griddles
borg click code has been reworked a bit to be closer to base mob, you
are now able to click on stuff within reach rather than just Adjacent
(might be buggy to introduce this? hopefully not. if anything we can
testmerge this), which lets us make the apparatus work to pick up stoves
on the range and such
Adds the Codex Cibus Mechanicus as an upgrade you can research in RnD
with the other service borg ones. When you use it it shows you the
cooking menu!

![image](https://github.com/tgstation/tgstation/assets/23585223/5f881387-e0ba-4bb8-a9d6-ddc9d8fa9272)

## Why It's Good For The Game
The service borg has the tools to prepare ingredients, but it can't
actually do anything with them, which severely limits it, only being
able to do slapcrafted foods.
The apparatus not working on items that are on top of stoves/griddles
seems to be just a bug with how cyborg click code is handled.

## Changelog
🆑 Fikou
fix: service borg apparatus now works on stoves and griddles and ovens
qol: borgs can now activate stoves and griddles
add: rnd can research a cookbook for service borgs
/🆑

* service borg cookin fixin update

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-07-09 11:16:10 -07:00
SkyratBot
a1ea7f13db [MIRROR] Replaces ammo_casing/caseless and bullet/reusable with elements. [MDB IGNORE] (#22102)
* Replaces ammo_casing/caseless and bullet/reusable with elements.

* stupid

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-07-04 13:06:52 +00:00
SkyratBot
b88ffa560f [MIRROR] Lavaproof tracks fix [MDB IGNORE] (#22079)
* Lavaproof tracks fix (#76258)

## About The Pull Request

There is an upgrade for mining borgs called lavaproof tracks. As the
name implies, it allows them to safely traverse lava. This PR makes the
tracks also protect from liquid plasma. Fixes #76107.

## Why It's Good For The Game

Liquid plasma is the Icebox equivalent of lava, it stands to reason that
something that protects against lava should also protect against liquid
plasma.

## Changelog
🆑
fix: The lavaproof tracks cyborg upgrade now protects against liquid
plasma, the Icebox equivalent of lava.
/🆑

* Lavaproof tracks fix

---------

Co-authored-by: GPeckman <gpeckman1@gmail.com>
2023-06-27 21:06:46 -07:00
SkyratBot
8f2969d830 [MIRROR] mediborg beaker apparatuses can now hold test tubes [MDB IGNORE] (#21923)
* mediborg beaker apparatuses can now hold test tubes (#76118)

## About The Pull Request

In addition to the beakers and bottles they could already hold, mediborg
beaker apparatuses can now hold test tubes.

The descriptions of beaker and drink apparatuses have been updated to
more accurately reflect what they can and can't hold.

## Why It's Good For The Game

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

This seems to just be an oversight from the PR that added test tubes,
especially since service borg drink apparatuses can hold condiment
packets.

## Changelog

🆑
fix: In addition to the beakers and bottles they could already hold,
mediborg beaker apparatuses can now hold test tubes.
spellcheck: The descriptions of beaker and drink apparatuses have been
updated to more accurately reflect what they can and can't hold.
/🆑

---------

Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>

* mediborg beaker apparatuses can now hold test tubes

---------

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
2023-06-19 17:33:58 -04:00
SkyratBot
124ff7955c [MIRROR] Improves mob resizing (and UpdatePaths). [MDB IGNORE] (#21726)
* Improves mob resizing (and UpdatePaths).

* updatepaths

* conflicts

* update modular

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 14:23:05 +01:00
SkyratBot
6dfe17306c [MIRROR] Pulls apart the vestiges of components still hanging onto signals [MDB IGNORE] (#21738)
* Pulls apart the vestiges of components still hanging onto signals

* update modular

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 13:18:23 +00:00
SkyratBot
22f68874f4 [MIRROR] Service Borger Upri- Kitchen Upgrades [MDB IGNORE] (#20909)
* Service Borger Upri- Kitchen Upgrades

* Update robot_model.dm

---------

Co-authored-by: Dawnseer <126404225+Dawnseer@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-05-03 00:10:27 -07:00
SkyratBot
d6e02a634e [MIRROR] Adds a Material Stack manipulation apparatus for Engineer Cyborgs, replaces the R-Glass tool [MDB IGNORE] (#20578)
* Adds a Material Stack manipulation apparatus for Engineer Cyborgs, replaces the R-Glass tool (#74297)

## About The Pull Request
- Adds a new apparatus for Engineer Cyborgs that can pick up and
manipulate material sheet stacks. Once holding a stack, interactions are
passed to the stack.
- Sheets in the new apparatus will always show as single sheets while
held, regardless of the actual count.
- Removes the R-Glass tool from Engineer Cyborgs.
- Sabotage borgs have the same changes
## Why It's Good For The Game
Allows Engiborgs to repair or build with various materials, without
(further) destroying the concept of material economy.

The R-Glass tool, in my experience, is generally unused, as the RCD can
create R-Windows and that's the main use for the sheets. So the tool has
been removed to keep the Engineer Borg Toolkit from exploding. The new
tool can also pick up R-Glass, if a need for it arises.
## Changelog
🆑
balance: Engineer Borgs now have a tool to manipulate material stacks
(and also tile stacks). This replaces the R-Glass tool.
/🆑
Pictured: Apparatus carrying titanium.

![image](https://user-images.githubusercontent.com/37497534/228021045-0f5a6c76-9caa-47de-ad0a-d20e7e1f4eb2.png)

* Adds a Material Stack manipulation apparatus for Engineer Cyborgs, replaces the R-Glass tool

* fex

---------

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-21 02:12:00 +01:00
SkyratBot
9a594755f3 [MIRROR] Renames delta time to be a more obvious name [MDB IGNORE] (#20507)
* Renames delta time to be a more obvious name

* updates to our code

---------

Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-12 20:45:43 +01:00
Gandalf
e4b4d4d3c0 MISSED MIRROR [Lints Against Unmanaged Local Defines] (#20204)
* https://github.com/tgstation/tgstation/pull/74333

https: //github.com/tgstation/tgstation/pull/74333
Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* var stuff

Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* vars

* Update sol_fed.dm

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-04-01 01:15:22 +01:00
SkyratBot
4e2e129d05 [MIRROR] Peacekeepers don't get a message about being confused [MDB IGNORE] (#20196)
* Peacekeepers don't get a message about being confused (#74235)

## About The Pull Request

Cyborgs don't get a message about phantom confusion during using of harm
alarm.

## Why It's Good For The Game

A fix(QOL)? for #71237

## Changelog

🆑 SishTis
qol: Peacekeepers cyborgs don't get message about being confused while
using harm alarm
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>

* Peacekeepers don't get a message about being confused

---------

Co-authored-by: Kush1Push1 <78963858+Kush1Push1@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-31 03:01:43 +01:00
SkyratBot
408f0e9c5a [MIRROR] Audits usage of isanimal() vs isanimal_or_basic_mob() [MDB IGNORE] (#19938)
* Audits usage of isanimal() vs isanimal_or_basic_mob() (#74029)

## About The Pull Request

There's a couple of open issues which fix places where only simple
animals were considered, but they are doing it piecemeal.
I decided to just go through every instance of `isanimal` or
`subtypesof(mob/living/simple_animal)` I could find, identify which
should also affect basic mobs, and fix them.

I left out the two others which are already in PR, I'm not stealing your
GBP.

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

## Why It's Good For The Game

Consistency, mostly.
As far as I can tell all of these things _should_ have effected basic
mobs, but didn't.
This fixes a fair number of bugs but also they're bugs that nobody
noticed or reported.

There are a couple of places I did not update which will need updating
in future. These are:
- Dextrousness checks, because basic mobs don't have that yet.
- The Charge cooldown action, because frankly I couldn't tell what it
was trying to do.

alright here goes

## Changelog

🆑
fix: Carp will once again be healed from being near carp rifts
fix: Sepia slime cores and the rewind camera now work on Ian
fix: Sapient ridden carp (or cows) can throw off their riders by shoving
them, or by performing the spin emote.
fix: Giant Spider AI will be disabled by the timestop spell
fix: Ian can eat envirochow
fix: Mice, Frogs, and Cockroaches will no longer set off bear traps
fix: You can put a macrobomb implant into Cayenne (or Ian)
fix: Ian will now recognise that being squeezed by a cyborg is a nice
hug
fix: The player panel will tell admins if you're currently a corgi
fix: The staff of storms deals massive damage to Bileworms and Giant
Spiders
fix: Ian will whimper if forced to scream
fix: Slimes can consume space carp
fix: Mice can be captured in xenoballs
fix: You can use pacifying potions on Giant Spiders
fix: Sgt Araneus can be fitted with a xenobiological radio implant
fix: Sapient corgis no longer count as living players for the purpose of
highlander escape objectives
fix: The random sentience event can now target corgis and sergeant
araneus
add: The random sentience event can target a wider array of farm animals
fix: Petsplosion wizard event can target corgis
add: Petsplosion wizard event will now target farm animals and
mothroaches
fix: The colossus possession crystal can now actually possess the
cockroach it spawns, does not kill you instantly upon ending possession
/🆑

* Audits usage of isanimal() vs isanimal_or_basic_mob()

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-03-18 03:15:31 -07:00
SkyratBot
4912b160a8 [MIRROR] Removes bad nodamage var from projectiles, fixes Juggernaut / Rust Walker projectiles doing zero damage [MDB IGNORE] (#19768)
* Removes bad `nodamage` var from projectiles, fixes Juggernaut / Rust Walker projectiles doing zero damage

* wew

* Update drinks.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-11 04:19:58 +00:00
SkyratBot
4f554a3990 [MIRROR] Corrects blocked limb balloon alert for borg hyposprays [MDB IGNORE] (#19545)
* Corrects blocked limb balloon alert for borg hyposprays (#73632)

## About The Pull Request

Fixes #73631
## Why It's Good For The Game

Reads better
## Changelog
🆑
fix: Borg hypospray will correctly tell you the name of the limb that is
blocked when trying to inject into a blocked limb.
/🆑

* Corrects blocked limb balloon alert for borg hyposprays

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-02-26 15:24:56 -05:00
Shadow-Quill
69f1515276 Reagent containers AltClick update (#19272)
* Reagent containers with two settings now just swap on altclick

* suggested change
2023-02-14 13:24:52 +00:00
SkyratBot
c5ca08fd01 [MIRROR] Adds spaces around logical operators [MDB IGNORE] (#18776)
* Adds spaces around logical operators

* Update code/modules/admin/verbs/admingame.dm

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-01-21 22:16:43 -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
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
625b66bd0c [MIRROR] Refactors bar drink icons into datum singletons / unit tests them [MDB IGNORE] (#18140)
* Refactors bar drink icons into datum singletons / unit tests them (#71810)

- Refactors bar drink icons.
- Juice boxes no longer have a hard-coded list of a bunch of reagent
types in their update state, and use a system similar to bar drinks.
- Glass and shot glass icon information are no longer stored on the
drink. Instead, they are now stored in glass style datums. These datums
store name, description, icon, and icon state of a certain container +
reagent type.
- Glass styles are applied via the `takes_reagent_appearance` component.
Glasses, shot glasses, and juice boxes have this component.
- This comes with support for being able to have drink icons from
different files, rather than requiring the drinks DMI.
- The britmug is now a subtype of mug.
   -  1 new icon: britmug filled.
- Various small code clean-up around drink reagents.
- Unit tests icon state setups for glass styles as well as all `/drink`
reagent container subtypes.
- Splits up the massive `drinks.dmi` into separate files.

*Disclaimer: Much of the drinking glass datums were written via script
automatically, so there may be errors present.*

- Much easier to add new drink styles, much more modular.
- It is no longer necessary for new drinks to be added to the massive
`drinks.dmi`. People working with drinks in the future can simply add
their glass style datum and point it to their file wherever it may be.
- Expandable system. Adding a new type of reagent container that works
similarly to bar drinks but for different types of icons is a breeze.
- Ensures going forward no bar drinks have invisible sprites.

🆑 Melbert
refactor: Refactored how bar drinks set their icons. Juice boxes now use
the same system.
/🆑

* Well that's all of them, unit tests prove me wrong

* now its a mapping pr lmao

* SHUT THE FUCK UP

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-01-04 09:10:12 -08:00