Commit Graph

1719 Commits

Author SHA1 Message Date
nevimer
b4a77d1bfa MISSED MIRROR: Adds windup autofire functionality. The future is now. (Later) (#67911) (#18850)
* Adds windup autofire functionality. The future is now. (Later) (#67911)

Pulls the wind up autofire functionality from my energy weapon pr as a standalone code improvement.

(cherry picked from commit ff21ecc626)

# Conflicts:
#	code/datums/components/fullauto.dm

* Modular!

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-23 11:59:12 +13: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
64e15f1cbd [MIRROR] Add signal override back as a runtime [MDB IGNORE] (#18865)
Add signal override back as a runtime (#72561)

We're not seeing this on CI and I'm not seeing it on my local DD logs
unless I go out of my way to check. Keeping separate file means it's
easy to go through, but this indicates a bug that needs to be fixed and
so it should still be in runtime.

Doesn't revert #70034, as it still keeps log_signal.

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-01-21 19:52:11 -05:00
nevimer
e0a33476ce Missed Mirror: Fixes runtime every time a tattoo is destroyed (#68668) (#18854)
Fixes runtime every time a tattoo is destroyed (#68668)

(cherry picked from commit 895a982623)

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2023-01-21 16:38:46 -05:00
nevimer
a051f4bdc7 Missed Mirror: Fixes seeing rotation failed message ballons at distance (#72463) (#18852)
Fixes seeing rotation failed message ballons at distance (#72463)

(cherry picked from commit 65be90bf0d)

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2023-01-21 16:38:17 -05:00
nevimer
e2d7c9a6d2 Missed Mirror: Lambs can now be killed with swords (#71500) (#18851)
Lambs can now be killed with swords (#71500)

Previously hitting a sheep with any item which was not "a razor" or
"some grass" would have no effect whatsoever.
Now hitting a sheep with a sword, axe, toolbox, or implement of your
choice will hurt it.
If you do this a sufficient number of times (more than you might expect)
the sheep will expire.

(cherry picked from commit e285b75fc5)

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-01-21 16:37:32 -05:00
SkyratBot
1a8f7ac88a [MIRROR] You no longer have to sacrifice your soul to give a mouse sentience. [MDB IGNORE] (#18847)
You no longer have to sacrifice your soul to give a mouse sentience. (#72782)

## About The Pull Request

Some Manuel shift I didn't take note of the round ID for.

A player ahelps because they LITERALLY VANISH. They think it's a genetic
meltdown. I check the logs and I don't think it is.

The player mentions they got attacked by a mouse just before they died.
I check the logs and what do we have, but the same game tick the player
gets yeeted into the void that a mouse gains sentience.

```
    Line 11801: [2023-01-17 23:39:00.036] ACCESS: Mob Login: Cheeseromancer/(Lemmiwinks) was assigned to a /mob/living/basic/mouse/white
    Line 11802: [2023-01-17 23:39:00.052] GAME: Cheeseromancer/(Lemmiwinks) Client Cheeseromancer/(Lemmiwinks) has taken ownership of mob Lemmiwinks(/mob/living/basic/mouse/white) (Medbay Treatment Center (155,85,2))
    Line 11804: [2023-01-17 23:39:00.068] ACCESS: Mob Login: Super17andre/(Carter Wolfe) was assigned to a /mob/dead/observer
    Line 11806: [2023-01-17 23:39:00.111] GAME: Cheeseromancer/(Lemmiwinks) has gained antag datum �Sentient Creature(/datum/antagonist/sentient_creature).
```

There's other chatter IC about sentience potions, which narrows down the
investigation.

Long story short, 20 month ago arm couldn't code and 20 month ago
maintainers couldn't review code. On this blessed day, we're all
complicit.

`on_tame` signal handler proc. Without source parameter. Signal handler.
Without source parameter.


![image](https://user-images.githubusercontent.com/24975989/213057552-feb1c0c4-9119-4ea2-85f0-04ff5db8ae74.png)

This leads to your classic offset-by-1 arg error. The signal's source is
the mouse. The tamer is the player that used the intelligence potion.
There is no food. But because the signal handler omits source, the tamer
is the mouse and the food is the tamer. Makes perfect sense in my head.

The food then, obviously, gets qdeleted in the later after_tame callback
invocation. Meaning the player using the sentience potion gets sent to
the Shadow Realm with no log entries suggesting cause of death.

Add in the missing source param, pass the source arg in the really,
really bad signal handler proc being called directly. And we feex.


![image](https://user-images.githubusercontent.com/24975989/213058176-5a4ecb74-756a-46ef-b83b-fc61df8364c6.png)
## Why It's Good For The Game

Players being randomly qdeleted leads to admins crying. In the future
I'm going to log qdeletions of cliented mobs. March. Because I have time
off work then.
## Changelog
🆑
fix: Mice given sentience through intelligence potions no longer
immediately consume the body and soul of the person whom uplifted them.
/🆑

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2023-01-21 16:35:24 -05:00
SkyratBot
902caab964 [MIRROR] Stock Part Datumization Complete [MDB IGNORE] (#18639)
* Stock Part Datumization Complete (#72559)

So i accidently reverted all my commits in #72511 when resolving a merge
conflict So ummm yeah fuck my bad anyway

Finishes what was started in #71693 and completes the
[initiative](https://github.com/tgstation/dev-cycles-initiative/issues/1)

Except for `obj/item/stock_parts/cell` and its subtypes. All machines
now use `datum/stock_part` for its requested components & component
parts

Not sure if i caught every machine & stuff in the game so merge with
caution
🆑
code: datum stock part for every obj stock part
refactor: all machines & dependent experiments to use datum stock parts
/🆑

* Fixes a teeny tiny Funce mistake :)

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-19 17:09:19 -05:00
SkyratBot
2271aca1bb [MIRROR] Deadchat controlled mobs/objects now appear in the orbit menu. [MDB IGNORE] (#18707)
* Deadchat controlled mobs/objects now appear in the orbit menu.

* Bye bye conflict!

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-19 16:18:37 -05:00
SkyratBot
c760326d93 [MIRROR] Trying to grab something restricted by HAUL gauntlets now has a Balloon alert. [MDB IGNORE] (#18824)
Trying to grab something restricted by HAUL gauntlets now has a Balloon alert. (#72758)

## About The Pull Request

Part of #72710 that I think is useful to be PRed even if the original is
closed. When you try to grab someone or something restrained by HAUL
gauntlets theres now a balloon alert telling you that its gripped too
strongly, rather than no indication at all.
## Why It's Good For The Game

There being no player facing indication to attempting to steal an item
being pulled by HAUL gauntlets seemed odd to me as without the feedback
its easy to mistake it for just missing the grab.
## Changelog
🆑
qol: Theres now a visual indicator when you attempt to grab an object or
person restrained by the HAUL gauntlets.
/🆑

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-01-19 16:10:35 -05:00
SkyratBot
a2832df45e [MIRROR] Uses RegisterSignals for lists of signals, instead of RegisterSignal. [MDB IGNORE] (#18769)
* Uses RegisterSignals for lists of signals, instead of RegisterSignal. (#72581)

## About The Pull Request

Uses RegisterSignals instead of RegisterSignal when registering to a
list of signals.

## Why It's Good For The Game

Less error messages, RegisterSignals is meant to be used for lists.

## Changelog

Nothing player-facing.

* Uses RegisterSignals for lists of signals, instead of RegisterSignal.

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-01-19 15:22:58 -05:00
SkyratBot
c51a58401d [MIRROR] New Mob [Garden Gnomes] [MDB IGNORE] (#18784)
* New Mob [Garden Gnomes] (#72672)

## About The Pull Request
Garden gnomes can go into the ground when they stand still for a while.
If they are damaged and underground they will heal. If they are
underground they will also gain damage resistance. They can make people
trip when underground and deal some damage. They are available through
golden slime cores or you can collect them from cargo with an emag. If
one of them gets damaged they will all retaliate against the attacker.

They have a very realistic colour pallet based on online gathered data.
Depending on their colour pallets some of them have a very low chance of
spawning.
## Why It's Good For The Game
These new garden gnomes come with expanding the world building of space
station 13. These gnomes will add more variety to the game play and use
an interesting AI and behavior that interacts with the player.

![gnome_promo1](https://user-images.githubusercontent.com/25363960/212195653-0b434f17-e73c-4a87-b8b8-e96dcf057269.PNG)

![gnome_promo2](https://user-images.githubusercontent.com/25363960/212195658-4cbcd863-dcab-4643-9e3b-686e79dcb435.PNG)
## Changelog
🆑
add: Adds garden gnomes.
imageadd: Adds garden gnome sprites.
/🆑

* New Mob [Garden Gnomes]

Co-authored-by: Comxy <tijntensen@gmail.com>
2023-01-18 13:37:37 +00: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
e3435943f8 [MIRROR] Allows Chaplain's Spirit Sword To Redo Name If Invalid [MDB IGNORE] (#18723)
* Allows Chaplain's Spirit Sword To Redo Name If Invalid (#72642)

## About The Pull Request

The current behavior doesn't let the sword re-choose their name if they
screw it up the first time and it turns out to be filtered or sanitized
out for whatever reason. That's silly in my opinion, so I changed it to
be more like holoparasite name-selection behavior, where you get the
text to choose your name until you get it right.

I moved the re-naming portion of the sword to be after all of the
important RegisterSignal steps as well, just to be safe as we sleep as
they plug in different names they might want.
## Why It's Good For The Game

You shouldn't be stuck as "spirit of the blade" permanently if you
accidentally balls up the word filter, let's have it be more like
holoparasite behavior to be nicer.
## Changelog
🆑
qol: Spirits of possessed blades (Chaplain's Null Rod Option) will be
able re-try selecting their name if it ends up to be filtered for any
reason.
/🆑

* Allows Chaplain's Spirit Sword To Redo Name If Invalid

Co-authored-by: san7890 <the@san7890.com>
2023-01-14 12:14:00 -08:00
SkyratBot
d4cc3b3e68 [MIRROR] Fixes a bad argument for onwear comp [MDB IGNORE] (#18699)
* Fixes a bad argument for onwear comp (#72653)

## About The Pull Request

Everywhere used `saved_event_type` but the parameters, causing runtime

## Why It's Good For The Game

Runtimes bad

## Changelog

🆑 Melbert
fix: Fixed not getting moodlet from freshly laundered clothing
/🆑

* Fixes a bad argument for onwear comp

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-01-13 19:34:07 -08:00
Zonespace
972c350665 Mirror #71906 (#18666)
[READY] DRAMATIC SHUTTLES!! You can now fly around the shuttle (#71906)

You can move around shuttles during transport now! Instead of them
teleporting you instantly into deepspace, you can move around somewhat
depending on your space-mobility and grip-strength.

![image](https://user-images.githubusercontent.com/7501474/206866132-3fae024c-a8a2-4f4a-b4b8-37c96a254498.png)

**Please watch the demonstration aswell, it should answer most
questions:**
https://www.youtube.com/watch?v=Os77qDOVSXE

Interactions:
- Being within armsreach of a wall or solid object means you 'cling',
where the shuttle pull is very weak and you can basically run around the
shutt;e (but dont fuck up or you're gone)
- Being in range of nothing gives you a very heavy pull, you can barely
resist if you have a decent jetpack
- Objects are instantly power-yeeted
- Being pulled or riding something excempts you from hyperspace pull
- Touching a space tile while being on hyperspace dumps you in
deepspace, you either go back to the shuttle or enjoy deepspace
- On shuttle hyperspace tiles are a lot less dangerous, and will instead
launch and freeze you instead of teleporting you into deepspace
- In-case it wasn't obvious, you can rest outside the shuttle as long as
something is blocking your path. I think it's funny but I might nerf it

🆑
add: You can now fly around the shuttle during transit! Woohoo! You can
either cling to the side or grab a jetpack and try and keep up with the
shuttle! Carps can move around freely in hyperspace
qol: Increased shuttle hyperspace size from 8 tiles to 16
/🆑

- [x] Find a way to detect when a shuttle arrives and do something with
the shit left in hyperspace

Things I will do in another PR:
- Engines spit fire and hurt (almost finished but I want to keep this
small)
- Random shuttle events. You might run into dust meteors or migrating
carps OR A CHANGELING INFILTRATOR
- Hyperspace turfs on the shuttle pull you under the shuttle

It's so much more immersive than being instantly teleported into
deepspace. It gives you a chance to recover if you get spaced or for
daredevils to look cool

It's also just very cool idk

Co-authored-by: Time-Green <timkoster1@hotmail.com>
2023-01-13 18:22:26 -05:00
SkyratBot
3c2cc22c02 [MIRROR] Fixes a bad as anything in cursed quirk [MDB IGNORE] (#18536)
Fixes a bad `as anything` in cursed quirk

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-12 15:55:40 -05:00
SkyratBot
b5d1396380 [MIRROR] Adjusts Reagent Holder Code To Ignore Reagent Container [MDB IGNORE] (#18535)
* Adjusts Reagent Holder Code To Ignore Reagent Container (#72454)

## About The Pull Request

We shouldn't try to add the reagent container itself as an ingredient,
so let's ignore that. I believe the actual reagent adding is handled
well elsewhere, we just need to ignore the case here.
## Why It's Good For The Game

Fixes #72270

Confusing user feedback is never good.
## Changelog
🆑
fix: You should now no longer get a confusing message whenever you try
to add flour from a flour sack into a bowl.
/🆑

Co-authored-by: Time-Green <timkoster1@ hotmail.com>

* Adjusts Reagent Holder Code To Ignore Reagent Container

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
2023-01-12 15:25:20 -05:00
SkyratBot
9e4a277cfd [MIRROR] Adds the Cursed quirk [MDB IGNORE] (#18492)
* Adds the Cursed quirk

* Update negative_quirks.dm

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-12 15:21:21 -05:00
Zonespace
1135ac5e2c Mirror #72280 (#18648)
Add lints for idiomatic balloon alert usage (#72280)

Adds lints for `balloon_alert(span_xxx(...))` (which is always wrong),
and balloon alert where the first letter is a capital (which is usually
wrong). Fixes everything that failed them. As a reminder, abbreviations
like "AI" and "GPS" shouldn't be capitalized in a balloon alert.

In cases where this is intentional for flavor (there was one case), you
can `UNLINT` like so:

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-01-12 08:48:06 -05:00
Zonespace
e1e52c17b7 Mirrors 72397 (#18646)
Boxes created through the crafting menu no longer spawn with their contents full (#72397)

## About The Pull Request

What it says on the tin. Since the contents weren't emptied you could
get infinite beakers, donk pockets, chicken nuggets etc. by making and
remaking a box over and over.
Fixes  #72385.
## Why It's Good For The Game

Bugfix. The world does not deserve infinite chicken nuggets yet
## Changelog
🆑
fix: Boxes created through the crafting menu no longer spawn with their
contents full
/🆑

Co-authored-by: A miscellaneous Fern <80640114+FernandoJ8@users.noreply.github.com>
2023-01-12 01:17:03 -05:00
SkyratBot
c2fb78284c [MIRROR] Basic Faithless Mob [MDB IGNORE] (#18616)
* Basic Faithless Mob (#72479)

## About The Pull Request
Turns the faithless mob into a basic mob with unique behaviors, it will
now break lights and drag around victims bodies. Can also punch open
airlocks if they can be opened.
## Why It's Good For The Game
Now the faithless mob has its own unique behavior and it is cool to see
more AI variety.
## Changelog
🆑
add: Faithless will now also break lights and drag victims around
refactor: Faithless into basic mob
/🆑

* Basic Faithless Mob

* SR

Co-authored-by: Comxy <tijntensen@gmail.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2023-01-11 18:01:48 -08:00
SkyratBot
efce076a9a [MIRROR] fixes twohanded items not letting you switch hands [MDB IGNORE] (#18640) 2023-01-11 09:59:10 -08:00
SkyratBot
bf38a3d4e2 [MIRROR] Fixes Black Carpet and Paper Frames crafting recipes only giving you 1 item in return. [MDB IGNORE] (#18500)
* Fixes Black Carpet and Paper Frames crafting recipes only giving you 1 item in return.

* Update recipes.dm

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-11 07:47:42 -08:00
SkyratBot
581b38c1a8 [MIRROR] Fixes a bug with drifting improperly stopping [MDB IGNORE] (#18626)
* Fixes a bug with drifting improperly stopping (#72588)

## About The Pull Request

You would hold a direction when you hit a wall, step, have the newt move
blocked by your still living component, and then sit there floating In
the last fix I did here I removed an unregister off loop pausing, which
was leading to conflicting component additions and so runtimes.

I've moved it to an unreg off loop deletion only, to avoid the old
runtime and still preserve the existing desired behavior

## Why It's Good For The Game

Fixes stepping after a drift movement. It looked really dumb and now
it's gone
Fixes https://github.com/tgstation/tgstation/issues/71454

## Changelog
🆑
fix: You can now properly start drifting after moving out of a drift
/🆑

* Fixes a bug with drifting improperly stopping

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-01-10 07:33:18 -08:00
SkyratBot
509b89f45c [MIRROR] Contextual tutorials for swapping hands and dropping items [MDB IGNORE] (#18604)
* Contextual tutorials for swapping hands and dropping items

* Fixes

* Oops

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2023-01-10 14:26:08 +01: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
a0424dd1ef [MIRROR] tweaks to guardians [MDB IGNORE] (#18367)
* tweaks to guardians

* oops

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 07:14:49 -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
Zonespace
e38eee6dee holopara qol update (#72042) (#18438)
holoparasite types have improved code
admins can now give someone a holoparasite through a new menu in vv
dropdown
alt click holopara abilities were moved to right click (support's beacon
wasn't, but support's heal mode was)
holoparas have less hardcoded stuff so admins can edit them easier
holoparasites now get their light color from their guardian color
holoparasites no longer have the hostile faction, things will attack
them
holoparasites now have a damage overlay, so you can see how much your
summoner is damaged
holoparasite health updating is now event based rather than running on
life, so you'll see health changes everytime they happen, rather than
every 2 seconds
holoparasites fly properly again (they cant spacewalk, but count as
flying for stuff like chasms)
holoparasite creation now uses a radial menu with tooltips for each
subtype. it also shows ghosts which type you picked
holoparasites can no longer be fugu'd
adds support for ownerless holoparasites
fixes mildly related bugs along the way

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-01-09 05:39:54 -05:00
SkyratBot
ee8226b8a8 [MIRROR] Fixes prefilled drinking glasses, and small carton icon [MDB IGNORE] (#18606)
* Fixes prefilled drinking glasses, and small carton icon (#72527)

Fixes a few drink container issues:
- The `/obj/item/reagent_containers/cup/glass/drinkingglass/filled`
subtypes runtimed whenever their reagents changed because of the strict
way that `/datum/component/takes_reagent_appearance` compares container
types.
- `/datum/component/takes_reagent_appearance` now allows for an
alternate type to check against `glass_style.required_container_type`
via a var called `base_container_type`. The filled glasses now set this
var to the main drinking glass type.
- As well, filled glasses didn't have their appearance set up to match
the corresponding glass style. Thus, the
`/obj/item/reagent_containers/cup/glass/drinkingglass/filled` type now
updates its appearance on initialization.

- Seperately, the small carton's appearance broke if you put a reagent
in that doesn't match a glass style, reverting to the "water_cup" icon
state which doesn't exist in the boxes.dmi file. This is because it was
a subtype of sillycup, but there is nothing gained as far as I can see
from that type relationship, so the small carton was repathed to
`/obj/item/reagent_containers/cup/glass/smallcarton`.

* Fixes prefilled drinking glasses, and small carton icon

Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-01-08 22:49:52 -08:00
SkyratBot
ae713bf18a [MIRROR] Crafting/Cooking menu update [MDB IGNORE] (#18334)
* Crafting/Cooking menu update

* Yeeted away all of the merge conflicts, time to fix the code

* Okay, now it compiles, and after testing, it seems to work just fine

* Actually, early addition of an upstream fix, so those that don't have hunger can still open the cooking menu

* Fixes the units tests by removing the extra comma in the Stuffed Muli Pod recipe

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-01-08 15:02:18 -05:00
SkyratBot
30530f2c96 [MIRROR] AI actions won't unassign each other's movement targets & Mice stop being scared of people if fed cheese [MDB IGNORE] (#18268)
AI actions won't unassign each other's movement targets & Mice stop being scared of people if fed cheese  (#72130)

## About The Pull Request

Fixes #72116 
I've had a persistent issue with basic mob actions reporting this error
and think I finally cracked it
When replanning with `AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION` it can run
`Setup` on one action leading to the plan changing, meaning that it runs
`finishCommand` to cancel all other existing commands
If you triggered a replan by setting up a movement action in the middle
of another movement action, cancelling the existing action would remove
the target already set by the current one.
We want actions to be able to remove _their own_ movement target but not
if it has been changed by something else in the intervening time.

I fixed this by passing a source every time you set a movement target
and adding a proc which only clears it if you are the source... but this
feels kind of ugly. I couldn't think of anything but if you have a
better idea let me know.

Also while I was doing this I turned it into a feature because I'm
crazy.
If you feed a mouse cheese by hand it will stop being scared of humans
and so will any other mice it attracts from eating more cheese. This is
mostly because I think industrial mouse farming to pass cargo bounties
is funny.
Mice controlled by a Regal Rat lose this behaviour and forget any past
loyalties they may have had.


https://user-images.githubusercontent.com/7483112/208779368-3bd1da0f-4191-4405-86e5-b55a58c2cd00.mp4

Oh also I removed a block about cancelling if you have another target
from the "hunt" behaviour, everywhere using this already achieves that
simply by ordering the actions in expected priority order and it was
messing with how I expected mice to work.
Now if they happen to stop by some cheese they will correctly stop
fleeing in order to eat it before continuing to run away.

## Why It's Good For The Game

Fixes a bug I kept running into.
Makes it possible to set up a mouse farm without them screaming
constantly.
Lets people more easily domesticate mice to support Ratatouille
gameplay.

## Changelog

🆑
add: Mice who are fed cheese by hand will accept humans as friends, at
least until reminded otherwise by their rightful lord.
fix: Fixed a runtime preventing mice from acting correctly when trying
to flee and also eat cheese at the same time.
/🆑

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-01-07 23:30:49 -08:00
SkyratBot
011fefdd81 [MIRROR] Refactors armor into dedicated subtypes [MDB IGNORE] (#18291)
* Refactors armor into dedicated subtypes

* start

* most tg things

* pain (#18584)

* shit

* non-mod changes

* compile

Co-authored-by: John Doe <gamingskeleton3@gmail.com>

* #18291

* compile fix

* ???

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 20:06:16 -08:00
SkyratBot
bccf824a6c [MIRROR] Turned most syndicate mobs (+ viscerators) into basicmobs [MDB IGNORE] (#18270)
* Turned most syndicate mobs (+ viscerators) into basicmobs (#71871)

## About The Pull Request
Turns the syndicate simpleanimals into basicmobs: (+ stormtrooper, +
space variants) Base Mob, Knife syndies, pistol syndies, SMG
syndies,shotgun syndies, viscerators
also changes some instances of the simple_animal path into the basicmob
ones
Removes civillian syndicates which were useless and also completely
unused
Also removes mech pilots:
![2022-12-09
20_02_18-Window](https://user-images.githubusercontent.com/70376633/206777829-2e49e445-3532-4e8e-8e7c-8d9b0a3a14d0.png)

Also,
makes the basic targetting datums health check configurable
basic attack behavior can now fire in bursts

https://user-images.githubusercontent.com/70376633/206766607-cf2e3659-0c5e-4117-9af7-e573e35bdf80.mp4

https://user-images.githubusercontent.com/70376633/206766630-15b4469f-68be-44c7-9394-1f2b6fe07811.mp4

https://user-images.githubusercontent.com/70376633/206766613-69b42457-a03b-449d-a1b8-a5aa556c76e5.mp4

https://user-images.githubusercontent.com/70376633/206766619-5560a178-8d2f-4b22-adf1-22ace6f63a51.mp4

https://user-images.githubusercontent.com/70376633/206766627-e671d064-fd9e-4204-b823-aa2e07f7fc26.mp4

https://user-images.githubusercontent.com/70376633/206766633-108c1574-3554-4bc1-a9ac-8faed0ec4062.mp4
## Why It's Good For The Game

simpleanimal stinks basic mob good
syndicate AI was really bad to begin with so here we are

## Changelog
🆑
code: Turned most syndicate mobs into basicmobs, making their AI better
and (possibly) more deadlier!
del: Removed syndicate mech pilots and syndicate civvies
/🆑

Co-authored-by: kawoppi <94711066+kawoppi@ users.noreply.github.com>

* Turned most syndicate mobs (+ viscerators) into basicmobs

* map

* code

* Update syndibase.dmm

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: kawoppi <94711066+kawoppi@ users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-01-07 02:48:07 -05: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
b80abedb59 [MIRROR] refreshes syndi-kits and syndicate surplus crates, introduces shared limited stock [MDB IGNORE] (#18209)
* refreshes syndi-kits and syndicate surplus crates, introduces shared limited stock

* merge conflict

* Surplus balance, Consolidated our surplus crate and the new tg one to just use our stats

* use upstream surplus loot crates

* syndicrate

Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-07 01:42:14 -05: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
SkyratBot
01348f3964 [MIRROR] psyker gang fixes [MDB IGNORE] (#18471)
* psyker gang fixes (#72330)

## About The Pull Request
adds more ammunition, and also signing on the psyker ship
fixes some minor stuff
you can see other echolocation receivers as fully purple now, rather
than just their outline
echolocating people have night vision, to prevent bugs with them not
being able to see echolocated tiles
psyker pirates have headsets that increase their echolocation range
partially fixes the shuttle docker. need someone smarter to look at it
with me though, you can physically use it at least, just cant see yet.

## Why It's Good For The Game
they are not very playable right now

## Changelog
🆑
balance: adds more ammunition, and also signing on the psyker ship
qol: you can see other echolocation receivers as fully purple now,
rather than just their outline
fix: echolocating people have night vision, to prevent bugs with them
not being able to see echolocated tiles
add: psyker pirates have headsets that increase their echolocation range
fix: partially fixes the psyker ship shuttle docker
/🆑

* psyker gang fixes

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-01-02 08:06:23 -08:00
SkyratBot
c812d943e6 [MIRROR] Rescale SM health from 900 to 100, UI improvements, visual changes. [MDB IGNORE] (#18456)
* Rescale SM health from 900 to 100, UI improvements, visual changes. (#72252)

Rescaling because i saw someone think that the number on the supermatter
UI are actually the percent damage over time, which is wrong.

Added delta symbol to damage and energy since they actually denote
change, not the actual value.

Chose the numbers that look good instead of doing a 1:1 rescale of the
old one (i.e. im dividing or multiplying things by 10 instead of 9). In
practice this means I'm lowering the damage cap but increasing damage
over the board for atmos (since it's mostly divisors). Lowered the
damage overall for external stuffs.

A bit of modification on the filter helpers to suit my needs. Added
documentation because I'm awesome.

* Rescale SM health from 900 to 100, UI improvements, visual changes.

Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
2023-01-01 09:15:37 -08:00
SkyratBot
562aa6fe3a [MIRROR] Fixes inability to declare war as nukies [MDB IGNORE] (#18360)
* Fixes inability to declare war as nukies

* Update admin_verbs.dm

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-12-31 10:57:08 -08:00
SkyratBot
e46432eeff [MIRROR] fixes pellet clouds dealing insane wounds (probably?) [MDB IGNORE] (#18429)
* fixes pellet clouds dealing insane wounds (probably?) (#72359)

## About The Pull Request
pellet clouds multiplied the wound roll they do by your amount of armor
instead of decreasing it
this meant that while they did normal stuff to someone naked

![image](https://user-images.githubusercontent.com/23585223/209995707-0371be35-9f24-410b-a441-e06ab9b054ba.png)
they did this to nukies

![image](https://user-images.githubusercontent.com/23585223/209995733-026c1c52-ae65-4860-b68d-890391451b9d.png)
and they did this to something like the admin modsuit

![image](https://user-images.githubusercontent.com/23585223/209995678-08715ac0-5be7-4e05-b750-e1f94d33f394.png)

## Why It's Good For The Game
nukies no longer get hit by 1 stray pellet and lose all their blood

## Changelog
🆑
fix: fixed pellet clouds (buckshot, improv shells) dealing insane wounds
to armored people
/🆑

* fixes pellet clouds dealing insane wounds (probably?)

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-12-31 08:20:28 -08:00
SkyratBot
8edcf87524 [MIRROR] Instant Summons will now brutally rip out embedded objects, and drag the embedee to you if nearby. [MDB IGNORE] (#18428)
* Instant Summons will now brutally rip out embedded objects, and drag the embedee to you if nearby. (#71848)

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

The instant summons spell will cause embedded weapons to be violently
torn out from victims upon being recalled away. This comes with bonus
removal damage and a piercing wound. If you are near the victim as this
happens, they will be violently launched towards you. Make sure not to
let them fly into you!

Feel free to try it with the High-Frequency Blade (100% embed chance)
next time you're wizard.

Also, if the numbers on this seem a bit extreme, give me a heads up.
Combat balance isn't exactly my forte.

https://user-images.githubusercontent.com/28870487/206542566-0cf72e21-332e-48a5-801b-0f8478ef24ff.mp4

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

Adds an interesting synergy to one of the more commonly accessible
spells. Get creative, get violent.

Encourages people to use summons for more interesting things than
shove/steal insurance.

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

🆑
balance: Instant Summons will now violently tear out embedded objects as
they are summoned, and will drag embedee to you if nearby.
/🆑

<!-- 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: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>

* Instant Summons will now brutally rip out embedded objects, and drag the embedee to you if nearby.

Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
2022-12-31 08:17:11 -08:00
lessthanthree
8244d7b043 [MANUAL MIRROR] Fixes a bunch of sidemap/plane cube issues [NO GBP] (#18427)
Fixes a bunch of sidemap/plane cube issues (#72178)

## About The Pull Request

[fixes solor trackers offsetting wrong, and panels not using plane
offsets](8f461ab8ec)

[fixes cyborg hats offsetting phyiscally over their
head](5fd5b4240e)

[fixes reflector parts z fighting with their neighbors. if we physically
offset them, they'll have nothing to fight
with](088dcfe91f)

[fixes burgers layering wrong. uses a combo of pixel z to do the visual
offsets, and pixel_y to modify
layering](ec39e2bcd3)

[fixes signs, needed to use pixel_w instead of x, I think we may be
living under iso rules? I'm not totally sure I need to investigate
more](560d152fd7)

[fixes paperbin
rendering](e6c57ec00e)

## Why It's Good For The Game

Closes #72094
Closes #72035

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-12-31 06:11:17 -05:00
SkyratBot
324acf576d [MIRROR] One more CI fix [MDB IGNORE] (#18382)
* One more CI fix (#72313)

## About The Pull Request

Most PRs are now passing after #72299 but a couple of them still failed
for the below reason, this hopefully fixes it
Unfortunately because it only fails _sometimes_ the tests passing on
this PR isn't proof that I actually fixed anything

## Why It's Good For The Game

![image](https://user-images.githubusercontent.com/7483112/209746073-d3001f5a-09c9-4763-8aca-114c44b3c8f8.png)

## Changelog

Not player facing

* One more CI fix

Co-authored-by: Jacquerel <hnevard@gmail.com>
2022-12-28 22:38:03 +00:00
SkyratBot
412826c5cf [MIRROR] Fix SM activation spam. [MDB IGNORE] (#18273)
* Fix SM activation spam. (#72032)

SM activation logging refactor

* Fix SM activation spam.

* no way this can go wrong lmao

Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-12-25 18:00:01 -08:00
SkyratBot
063c50d5e7 [MIRROR] Shuffles bedsheet attack actions a wee bit [MDB IGNORE] (#18246)
* Shuffles bedsheet attack actions a wee bit (#71865)

## About The Pull Request
my friends been doing makeshift surgery and gets mad about having to do
harm intent to start surgery and then having to turn it off to do every
single other surgery step and i agree, thats silly

~~instead, now, the bedsheet attack does not check for harm and ALWAYS
COVERS with left mouse button and ALWAYS PREPARES SURGERY with right
mouse button~~

to be more consistent all surgery initiators now work on left mouse
click and covering with your bedsheet is the right mouse button

![image](https://user-images.githubusercontent.com/116288367/206871963-3a9bd092-49ea-4867-a47c-3b5a74c960e3.png)

## Why It's Good For The Game

while obviously a lot of the time makeshift surgery IS about harming
someone else its inconsistent with how all other surgery tools function
and also isn't very clear at all. the screentip in addition to having
them be separate buttons means that bedsheets two functions are overall
much clearer and its surgery drape function will no longer lead to an
assistant accidentally knifing someone when theyre trying to save
someones life

## Changelog

🆑
qol: added makeshift surgery screentip
qol: you no longer have to go in and out of harm intent to do surgery
with a bedsheet
/🆑

* Shuffles bedsheet attack actions a wee bit

Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
2022-12-24 21:56:54 -08:00
SkyratBot
ae256b8f27 [MIRROR] Examining your uplink gives you the code [MDB IGNORE] (#18250)
* Examining your uplink gives you the code (#72101)

## About The Pull Request
If you're the "owner" of an uplink, you can examine it to get the code
and possible failsafe code.
## Why It's Good For The Game
It can feel slow to pull up the traitor info menu when you forget what
your code is
## Changelog
🆑
qol: examine your uplink for code
/🆑

Co-authored-by: etherware-novice <candy@ notarealaddr.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Examining your uplink gives you the code

Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-12-24 21:56:29 -08:00
SkyratBot
e6b9abe032 [MIRROR] Log the food's type instead of the component's [MDB IGNORE] (#18184)
* Log the food's type instead of the component's (#72031)

## About The Pull Request
Two year old bug that was filling the food_made table with
/datum/component/edible instead of actual food
## Why It's Good For The Game
Means I don't have to parse two different tables instead of one
convenient one
## Changelog
🆑 Tattle
fix: crafted foods are logged in the blackbox once more
/🆑

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

* Log the food's type instead of the component's

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
2022-12-23 12:13:41 -05:00