Commit Graph

17707 Commits

Author SHA1 Message Date
SpaceLoveSs13
dee68d5173 Merge pull request #27804 from Skyrat-SS13/upstream-merge-83330
[MIRROR] add smoke kit to uplink
2024-05-22 08:43:13 +05:30
hack-wrench
93d3a21fda add smoke kit to uplink (#83330)
## About The Pull Request

Add smoke kit (5 grenades) by 2 TC

## Why It's Good For The Game

Smokes can be a good addition for stealth implant, vanishing and slicing
with a katana

## Proof of Testing

<details>
<summary>Screenshots/Videos OLD</summary>

![image](https://github.com/tgstation/tgstation/assets/60922927/89b56042-2b25-4f5e-bfd4-b5d088c56abd)

![image](https://github.com/tgstation/tgstation/assets/60922927/56d0c084-6c46-4e58-8931-c30d623858ee)

</details>

## Changelog

🆑
add: Added smoke kit (5 grenades) with four grenades to uplink by 2 TC
/🆑

---------

Co-authored-by: Helg2 <93882977+Helg2@ users.noreply.github.com>
2024-05-21 00:15:57 -04:00
Horatio22
6b57e1cce9 Corrects player-facing instances of "recieve" (#83350)
## About The Pull Request

Changes all player-facing instances of "recieve" to the correct spelling
"receive". There are still a handful of instances in the code, but this
PR doesn't mess with those.
## Why It's Good For The Game

It's important to speel things correctly.

## Changelog
🆑
spellcheck: Correctly spells "received."
/🆑
2024-05-21 00:12:36 -04:00
SkyratBot
e396dda558 [MIRROR] Ore vents now have countermeasures against walling them off from all sides. (#27790)
* Ore vents now have countermeasures against walling them off from all sides. (#83295)

## About The Pull Request

This PR fixes some balance and practicality issues with the spawner
component that has affected vent mining and the associated wave defense.

* The turf_peel() proc now checks to see if it's pulling no turf from
the inside or outside of it's peel, in which case it now has a default
case where it returns it's center turf instead.
* As a consequence of this, the center turf is where mobs will spawn if
an ore vent is unable to find any space where it can spawn any new
hostile mobs.

Upon testing this, it worked fairly well, but ultimately node drones
were capable of tanking enough hits for long enough that typically they
could still survive a small vent's onslaught. As a precaution, I've made
two additional changes.

* Node drones have had their maximum health dropped slightly, from 500
health to 300 health.
* As a secondary precaution, if a spawner using the turf peel method
cannot spawn correctly, it will send a signal, which ore vents are now
registered to. When called on an ore vent, it has new behavior to clear
the offending nearby turfs and create a pathway to allow nearby mobs to
get access to the vent.
* (**This is an explosion**.)

## Why It's Good For The Game

Fixes an unreported on the repo but repeatedly pinged issue regarding
ore vent waves where players could often wall off or blockoff an ore
vent in such a way that it allows vents to be functionally immortal by
quickly walling off the vent using sandstone doors. This should help to
prevent players cheesing the intended gameplay mechanic, as well as keep
up the challenge to arcmining wave defense without some additional
nuance.

I may have gone a little overboard with the health tweaks as well, but
considering that even with the explosions, I was able to survive the
repeated explosions on the vent, I think this should work quite well all
things considered. Still, open to feedback there.

## Changelog

🆑
balance: Ore vents, if blocked off from all four sides while being
defended, now cause a mild gas explosion, resulting in a mild dissuasive
explosion.
fix: NODE drones spawned from ore vent defense have lower maximum
health.
/🆑

* Ore vents now have countermeasures against walling them off from all sides.

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2024-05-20 06:36:50 -04:00
SkyratBot
7a5d074c1e [MIRROR] Fixes balloons being invisible when held (#27768)
* Fixes balloons being invisible when held (#83321)

Fixes #83306

🆑 ShizCalev
fix: Balloons are no longer invisible when held.
/🆑

* Fixes balloons being invisible when held

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
2024-05-20 06:24:31 -04:00
SkyratBot
3f460a0c89 [MIRROR] adds the Ansem/SC, the logical conclusion to the John Splintercell series (#27755)
* adds the Ansem/SC, the logical conclusion to the John Splintercell series (#83228)

Replaces the Ansem, SC/FISHER, and suppressor in the Sam Fisher gimmick
bundle with the Ansem/SC, a variant of the Ansem that:
- has an integral suppressor (read: acts like it's always suppressed,
because it is)
- an underbarrel light disruptor (functionally identical to the
SC/FISHER, fired with RMB)
(note: firing the disruptor in combat mode causes the main gun to fire
as if it were being fired akimbo. which it shouldn't, but I'm not sure
how to make it not do that)
- is longer, visually, but not storage-wise, and also visibly has an
underbarrel light disruptor

![image](https://github.com/tgstation/tgstation/assets/31829017/0842d9b9-9b24-4833-aeae-631c3bf1a5d5)

Also added code support for integrally suppressed ballistic guns (with
no separate suppressor overlay), handled by the can_unsuppress variable.

Also fixes the SC/FISHER disrupting APCs for ten times longer than they
probably should have been disrupted.

In regards to the Ansem, SC/FISHER, suppressor:
The Sam Fisher gimmick bundle having the Ansem and SC/FISHER as separate
items always kinda bugged me, since it seemed too clunky for a
sneaky-beaky operator-type to have to juggle two guns (one which you had
to bump to normal-size, leaving it unable to fit in the belt) to break
lights and then shoot dudes in the back of the head. So now it's one
gun, like the M-90gl and its grenade launcher. I think the bundle's rare
enough that it's fine to give them this much.

In regards to the APC thing:
Shooting an APC with a gimmick gun and leaving it unpowered for two
minutes seemed unintentional.

In regards to the code support for integrally suppressed guns:
Maybe someone else will want to put in another integrally suppressed
gun? It was relevant for this use-case.

🆑
qol: The Ansem, suppressor, and SC/FISHER included in the Fisher gimmick
bundle now come together as one whole gun, the Ansem/SC. It's integrally
suppressed, and fires the disruptor on right-click.
fix: The SC/FISHER disrupts APCs for an appropriate amount of time, not
ten times the intended disruption length.
/🆑

---------

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

* Oh come on.

---------

Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-05-18 23:15:51 +02:00
SkyratBot
61c379045c [MIRROR] lavaland raptors (#27746)
lavaland raptors (#82537)

adds raptors to lavaland. these are creatures that have been created
through countless xenobiological experiments by nanotrasen to breed an
animal that can withstand the harsh conditions of lavaland and aid
miners. theres now a new ranch miners can access bottom right to the
mining base

![ranch](https://github.com/tgstation/tgstation/assets/138636438/20d9e358-15a5-48e2-aee3-9364ca139e43)
this ranch starts somewhat empty as most raptors have escaped
containment and are now scattered all across lavaland, u can find them
and return them to ur ranch.

in order to tame a raptor, u first need to prove to it that ur a capable
master. when u try to ride it, a little minigame prompt will pop up

![minigame](https://github.com/tgstation/tgstation/assets/138636438/dcc13102-7100-40c8-ae7a-089cd4daf868)
in this game, the bird's icon rapidly changes direction and u have to
quickly click the arrow thats OPPOSITE to the direction its facing
several times before the direction changes. if you fail 3 times itll
knock you off and run away, however if u win it will deem u a suitable
master and listen to your orders.

There's many different breeds of raptors you can find across lavaland,
all with different capabilities:
red raptors: these excel at combat and can be very useful for dealing
with lavaland mobs or defending the node drone
yellow raptors: are very speedy mounts, theyll get u from point A to
point B in record time
green raptors: they are the tankiest type of raptor and are very good
miners. while mounted, they will clear any rock walls in their path
purple raptors: can store items in them. they have a decent storage size
allowing players to carry more items across trips
white raptors: are able to heal other injured raptors. having one in ur
party would be very useful as they can nurse the combat raptors back to
full health when they need it
blue raptors: produce very nutritious milk with healing capabilities.
having 1 or 2 of these back at ur ranch would be very useful
black raptors: by far the rarest breed, its very unlikely that ull be
able to get one of these, but in the case u do, they have the combat
capabilities of the red raptor, speed of the yellow raptor, and
tankiness of the green raptor.

Breeding different colored raptors together can net u an entirely new
colored raptor. each breed has atleast 1 guaranteed combination of
parents that it will result out of.

you will also need to maintain a good friendship bond with ur raptors,
this is done by feeding them, grooming them, and petting them. u can see
the strength of ur bond by SHIFT clicking them. more hearts indicate a
stronger bond

![hearts](https://github.com/tgstation/tgstation/assets/138636438/5662c5a7-2df3-4f98-99f4-a11faa17b569)
having higher friendship bonds means ur raptors will perform better in
combat, and in the case of blue raptors, they will produce more milk.
Maintaining friendship bonds with baby raptors and keeping them happy
will also encourage them to grow faster

U can also analyze raptors using the new raptor-dex device available at
ur ranch

![pokedex](https://github.com/tgstation/tgstation/assets/138636438/82b92c0c-b7db-4a0d-997e-384a69c0ecbe)
the inherit modifiers indicate how strong this raptor's offspring will
be. raptors inherit attack and health stats from both their parents,
breeding raptors with higher inherit modifiers means the offspring will
be stronger.

raptors will also inherit some traits from their parents that will
change how they will act around u and around other raptors, some of them
being:
Playful: raptors will play with their masters and tease them
motherly: raptors will care for baby raptors, this will encourage baby
raptors to grow quicker
depressed: means its hard to keep this raptor happy and friendship bonds
will deteriorate faster if not given enough care.
coward: makes them flee combat if severly injured, ditching u to the
wolves
trouble maker: makes them attack other raptors at the ranch. however,
trouble maker raptors will not attack other trouble maker raptors,
instead they will form posses and bully raptors together. it might be a
good idea to isolate them from the other raptors

raptors primarily consume ores. to feed raptors, you need to place ore
into the food troughs at the ranch. they are too civilized to eat ores
off the ground or directly from ur hand, they will only eat it if its in
their trough

![trough](https://github.com/tgstation/tgstation/assets/138636438/70723cc7-5743-4ace-9955-4307879e7a83)

beautiful raptor sprites by spessmenart! (rest are codersprites)

adds a new layer to lavaland mobs, and gives miners new interesting
tools and ways to tackle the challenges of lavaland.

🆑 sheets, spacemenart, ben10omintrix, goofball, infrared baron, aofie
add: adds lavaland raptors and the raptor ranch
/🆑

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
2024-05-18 11:40:59 -04:00
jjpark-kb
43aa0f219f Two New Skills (#26880)
* sure

* cough, girders are something

* what if I said this

---------

Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-05-18 17:39:28 +02:00
SkyratBot
82a7c9c68f [MIRROR] Removes virologist job (#27374)
* Removes virologist job (#82723)

As the title says. Removes the job. Whole wing of medical is still
there.

![Screenshot 2024-04-17
041852](https://github.com/tgstation/tgstation/assets/42397676/b7b55cd6-b6c1-4a0b-97c8-c7d55d4939ed)

(MSO)

![image](https://github.com/tgstation/tgstation/assets/42397676/3be548f4-9558-4d4d-bc7b-d9cbbbac1d5d)

It's boring. It's so boring that when it decides to become unboring it
just attempts to ruin the fun for everyone else

🆑
del: Due to a need for company restructuring, virologists have been laid
off by CentCom and doctors can optionally take their place.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>

* Oh right.

* Coroner, Chief Engineer, Bitrunner are no longer exempt from certain Traitor objectives (#83165)

## About The Pull Request
While reading traitor objective code for a project, I noticed that both
the Coroner and CE are not listed as potential targets for the 'Destroy
Heirloom' objectives. Looking into it, I noticed that the Coroner was
also not listed for the kidnapping objective. This fixes that.
## Why It's Good For The Game
Coroner should not be immune to traitory
And the CE should not be exempt from having their heirloom potentially
destroyed
## Changelog
🆑
fix: The Coroner and Bitrunner can now be selected as a target for
kidnapping and heirloom destruction objectives.
fix: The Chief Engineer is now a valid target for heirloom destruction
objectives.
/🆑

* Remove sleeper protocol objective + Remove the upper limit to sabotage RND server/Telecomms (#83206)

<!-- 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
Deletes the sleeper protocol objective

![image](https://github.com/tgstation/tgstation/assets/66163761/a76ebfdf-8bac-4836-bf10-5639245af872)

https://discord.com/channels/326822144233439242/326831214667235328/1239270421921005570
Removes the upper limit to sabotage telecomms/RND servers

![image](https://github.com/tgstation/tgstation/assets/66163761/0c54871e-8a41-4b14-92a3-4adbfef721b9)

https://discord.com/channels/326822144233439242/326831214667235328/1239269962707636375
<!-- 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
Removes a bad objective.
Removes a non-sensical upper limit to sabotage rnd/telecomms.
<!-- 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. -->

🆑
del: Removes the sleeper protocol traitor objective
balance: RND server/Telecomms sabotage can now show up even later in the
round
/🆑

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

* Right, I changed the path.

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: norsvenska <73006946+norsvenska@users.noreply.github.com>
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
2024-05-18 16:16:08 +02:00
SkyratBot
6947f89d04 [MIRROR] mobile defibrillator mount (#27737)
* mobile defibrillator mount (#83000)

## About The Pull Request

![image](https://github.com/tgstation/tgstation/assets/70376633/e8650bc6-e915-499c-8a63-eba0a70b4a96)

![image](https://github.com/tgstation/tgstation/assets/70376633/14a95345-e436-43c7-b4a7-de2502fc59cc)

5 iron and 1 sheet of silver and 15 cable to craft

its a defib mount but mobile, thats basically it

## Why It's Good For The Game

good for maps where there are no good spots to place wall defib mounts
or if you cant or dont want to take off your backpack (maybe using a
modsuit?) and theres no defib mount nearby

## Changelog
🆑
add: mobile defibrillator mount
/🆑

* mobile defibrillator mount

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
2024-05-18 02:10:44 +02:00
SkyratBot
981cd7f735 [MIRROR] Fixes cyborg omnitool combat behaviour. (#27736)
* Fixes cyborg omnitool combat behaviour. (#83243)

## About The Pull Request
Fixes engineering cyborg omnitool from choosing the wrong reference for
the screwdriver and crowbar. Also fixes cyborg omnitool not transferring
the wound_bonus, bare_wound_bonus, and armour_penetration.
## Why It's Good For The Game
So they behave naturally.
## Changelog
🆑
fix: Fixes engineering cyborg screwdriver not being pointy. Fixes
engineering cyborg crowbar from being pointy.
fix: Fixes cyborg omnitools not using the correct wound bonus and armour
penetration values.
/🆑

* Fixes cyborg omnitool combat behaviour.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2024-05-18 01:27:42 +02:00
SkyratBot
1131ce10ba [MIRROR] Parse_zone audit + minor misc cleanup (#27735)
* Parse_zone audit + minor misc cleanup (#83154)

## About The Pull Request

Does a audit on all uses of parse_zone, replacing most instances of it
with a new living-level proc that refers to the bodypart in that zone if
it exists.

In other cases, removes parse_zone entirely because the bodypart is
already confirmed to exist, so we just use plaintext_zone.

Also cleans up some single letter vars.
## Why It's Good For The Game

In the doc of ```plaintext_zone```, its said it ```Should be used for
parsing non-instantiated bodyparts```. 99% of the code ignores the
possibility of a bodypart existing, and so uses parse_zone when
plaintext_zone could be accessed instead.
## Changelog
🆑
code: Most instances of parse_zone now refer to the limb's
plaintext_zone var
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>

* Parse_zone audit + minor misc cleanup

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
2024-05-18 01:27:23 +02:00
SkyratBot
bb0579051e [MIRROR] Atoms that are on the border of a tile will now only trigger landmines if they actually pass over said landmine (#27734)
* Atoms that are on the border of a tile will now only trigger landmines if they actually pass over said landmine (#83156)

Fixes #83112

https://github.com/tgstation/tgstation/assets/6209658/13531391-6233-471a-8653-a68fc6ea7543

Muh immersion.

🆑 ShizCalev
fix: Atoms on the border of a tile will now only trigger landmines if
they ACTUALLY pass over said mine.
/🆑

* Atoms that are on the border of a tile will now only trigger landmines if they actually pass over said landmine

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
2024-05-18 01:24:56 +02:00
SkyratBot
2fd2ee883f [MIRROR] Fixes some atoms conduct electricity flag (#27728)
* Fixes some atoms conduct electricity flag (#83230)

## About The Pull Request
Fixes: https://github.com/tgstation/tgstation/issues/83229
I think this code was done this way by a little mistake, and a metal
sword should conduct electricity anyway (right?).

![Gif](https://c.tenor.com/4quSMOaGcKkAAAAd/tenor.gif)
## Why It's Good For The Game
its a fix
## Changelog
🆑 Rengan
fix: Officers sabre and grilles now conducts electricity as it should.
/🆑

* Fixes some atoms conduct electricity flag

---------

Co-authored-by: RengaN02 <60517664+RengaN02@users.noreply.github.com>
2024-05-18 01:15:10 +02:00
SkyratBot
7cb2e37809 [MIRROR] Assorted minor alt-click reskinning fixes, primarily context-based (#27726)
* Assorted minor alt-click reskinning fixes, primarily context-based (#83105)

## About The Pull Request

This is a collection of tiny alt-click context fixes that I found during
testing #82920, but I felt were not right to put in there.
Most of the following explanation is for posterity, like they're mostly
one-liners, there's only so much explanation to do.

First off, the emotion mask would reset `current_skin` for infinite
reskinning, while we have the `INFINITE_RESKIN` flag:

0c562fd742/code/modules/clothing/masks/costume.dm (L16-L19)
We set this to `INFINITE_RESKIN` for sanity's sake.

Then, `/obj/item/clothing/under/add_context(...)` would call its parent,
but sometimes return `NONE` when its parent returned
`CONTEXTUAL_SCREENTIP_SET`:

0c562fd742/code/modules/clothing/under/_under.dm (L83)
This is bad, because reskinning context is handled on the parent
(`/obj/item`), and we have an item inheriting this which can be
reskinned, the mech pilot's suit:

0c562fd742/code/modules/clothing/under/costume.dm (L224-L240)
So we make this return the parent return value rather than `NONE`:
```dm
return changed ? CONTEXTUAL_SCREENTIP_SET : .
```

Next up, `/obj/item/clothing/accessory/add_context(...)` would never
actually call the parent and thus neither the reskinning context. It
also checks for whether you have an item in your active hand when
context is added, even though the context it adds actually only applies
when the accessory itself is in your active hand.

0c562fd742/code/modules/clothing/under/accessories/_accessories.dm (L205-L210)
So we instead make it call the parent first, check for whether the
accessory itself is in our active hand, and return the parent value if
not:
```dm
/obj/item/clothing/accessory/add_context(atom/source, list/context, obj/item/held_item, mob/user)
	. = ..()
	if(held_item != source)
		return .
	(...)
```
This resolves our issue.

We're almost there!
`/obj/item/reagent_containers/spray/medical/add_context(...)` exists,
but is entirely redundant due to this now being handled on the base
item, and also misses some of the checks it has.

0c562fd742/code/modules/reagents/reagent_containers/spray.dm (L442-L447)
So we just remove it.

Finally, what is to me the funniest one:

9145ecb7e1/code/game/objects/items_reskin.dm (L8-L9)
To add reskinning context, we check `item_flags` for `INFINITE_RESKIN`,
while it is actually on `obj_flags`.
So, instead, we were checking for the equivalent value in `item_flags`,
being `IN_STORAGE`.

9145ecb7e1/code/__DEFINES/obj_flags.dm (L15)

9145ecb7e1/code/__DEFINES/obj_flags.dm (L34)
And thus reskinning context for infinitely reskinnables would only show
up if they were in storage.
For now, we just update this to use `obj_flags` instead.

That's everything I found so far, which this should all fix.
## Why It's Good For The Game

Having working item usage context tends to be a good thing.
## Changelog
🆑
fix: Emotion masks no longer use a janky workaround for infinite
reskinning.
fix: Mech pilot suit shows reskinning usage context correctly.
fix: Accessories show "wear above/below suit" usage context
appropriately.
fix: Accessories don't block reskinning usage context when they
shouldn't.
fix: Showing reskinning usage context cares about the infinite
reskinning flag, rather than whether it's in storage or not.
del: Removed redundant reskinning usage context code from medical
sprays, now shows reskinning usage context like other reskinnables.
/🆑

* Assorted minor alt-click reskinning fixes, primarily context-based

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
2024-05-18 01:14:49 +02:00
EnterTheJake
d8c8b79c44 Rust Heretic rework: THE PUKENING. (#83006)
## About The Pull Request
Turf rusting is now based on knowledge instead of RNG; toxic damage on
spells has been replaced with disgust; rust walkers are a bit easier to
summon and show up early in the tree.

Rust ascension spread has been massively increased and immunities while
on Rust have been updated.
## Why It's Good For The Game

This is a massive list of changes, but the tl:dr is Rust heretic design
is pretty barebones and dated in its current state. I'm going to try my
best to explain why that is and why it needs to change.

###  RNG on rusting is bad

**Problem** : quite a lot of turfs cannot be rusted, and reinforced
turfs rusting is tied to RNG, the emergency shuttle floors are also
unrustable, making an ascended heretic not threatening at all to an
escaping crew.

**Solution**: Heretic rusting prowess is now tied to knowledge
progression; reinf wall rusting is no longer tied to RNG; the emergency
shuttle is now rustable if you have accrued enough knowledge.

**Explanation** : I've been adopting the code from a previous PR that
sadly didn't make the light of day.

Link: https://github.com/tgstation/tgstation/pull/65361

The goal is to have Heretic rusting be more consistent, so that if you
ascend the shuttle is no longer a safe refuge.

**Grasp Of Rust**: Basic floors and walls.
**Mark Of Rust**: Reinf floors and walls (takes 3 applications of rust
to fully destroy).
**Toxic Blade** Titanium and Plastitanium( still takes 3 applications of
rust to destroy).
**Ascension**: almost everything save for admin walls, glass, and
silver.

### A territorial antagonist with no tools to defend its turf

**Problem**: Rust heretic is forced into a territorial playstyle, but
it's heavily diminished by rusted turfs not having any negative effect
on the crew whatsoever, Toxic damage on plume and blade is also kind of
bad and has no synergy with the rest of the kit.

Lastly, while fitting to the theme of Rust; mark detonation destroying
clothes and items can end up being more harmful to the heretic, as
destroying a secoff's flashbang will result in you getting stunned and
killed.

**Solution**: Rusted floors are no longer safe for the crew; walking
over Rust will add a small buildup of disgust, silicons will receive
ticking damage, Toxic damage on Rust skills has been replaced with
disgust buildup and a chem purge effect to prevent the crew from
cheesing the debuff with sol dry.

**Explaination** "The goal behind this change is to prevent the crew to
just be able to walk willy nilly into an eldritchly decayed area without
repercussions, plus I feel like disgust is a fitting debuff for Rusties
for a number of reasons.

1) Lore wise, your goal is to turn the entire station into a garbage
dump.

2) It fits for fighting a territorial antagonist, it's not immediately
threatening on its own, but if you overstay your welcome, it has dire
consequences.

3) We don't really do much with disgust as a status effect, far as i
know, this'll be the first iteration of it being used for an antagonist
toolset.

4) It gives reason to the crew to act hostile towards the Heretic, as
you are essentially making their work area inhabitable.

I've also Slightly increased the healing on leeching walk and gave it
some minor temperature regulation (you won't be able to outtemp space
cold).

### Rust Walkers

**Problem**: Rust walkers might as well not exist in their current
state; they are one of the latest heretic unlocks, and the recipe for
summoning one is INSANE now that you cannot decapitate mobs anymore.

**Solution**: Rust walkers pop up a bit earlier in the tree; the ritual
to summon them has more reasonable reagents (wires, pools of vomit, iron
sheets) and they have increased health.

**Explanation**: : There is not a lot to add to this. without walkers,
Rust heretics are fairly slow at spreading rust, by making rust walkers
have reasonable summoning reagents, we ease that problem; lastly i've
slightly bumped their hp, as i felt 75 hp was a bit low.

### Underwhelming ascension

**Problem**: The spread rate from the ascension is downright ATROCIOUS
in its current state, i actually ran multiple tests on different maps,
on Metastation it can take up to 40 minutes for the rust to spread to
the entire station, considering an ascended heretic results in an
immediate shuttle call, it's unecceptable in its current form.

Solution: Rust spread is now a hybridization between old ascension and
Wizard tranformation ritual.

**Explanation**: The spread rate in its current form is painstakingly
slow and has a tendency to reach one corner of the map and compound on
itself, i've borrowed the code from the wizard final ritual
"transformation" and gave it my own spin so that given enough time it
will cover the station more or less evenly, it can now spread through
all z levels.

Video example: https://www.youtube.com/watch?v=jZ5zMrNM6Jw

I've also updated the immunities you gain on ascension to ignore
slowdown and stasis from Cryogelidia.

The whole point of rust ascension is to become immune to crowd control,
i've seen far too many ascended heretics die to a single bola or cryo
syringe, that's pretty lame so i fixed that.

Lastly, aggressive spread has had its radius reduced in exchange for the
spread being consistent now; cooldown is also halved when you ascend, to
better help the heretic go on the offensive.
2024-05-16 14:55:45 -04:00
SkyratBot
dba569ce87 [MIRROR] The armoury contraband locker guns have a chance to be rigged. (#27718)
* The armoury contraband locker guns have a chance to be rigged. (#83167)

## About The Pull Request
Gives a 10% chance for the handguns in the armoury to be rigged. The
makarov and desert eagle will have a clown pin, ultra clown pin or the
explosive ultra clown pin when rigged, randomly and uniformly weighted.
The pins can not be removed, even the normal ones, so there is only one
way to find out. The Unica 6 will be reversed, shooting you instead when
rigged.
## Why It's Good For The Game
People are too trustworthy of the gear they use in the contraband
locker. By giving them a chance to be rigged and backfire on them,
people will treat these guns like contraband and not toys. If someone
was treating them like a toy, they could receive a nice introduction of
the syndicate.
## Changelog
🆑
balance: There are reports of malfunctioning guns being confiscated.
/🆑

* The armoury contraband locker guns have a chance to be rigged.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2024-05-16 06:32:39 +02:00
SkyratBot
26df470270 [MIRROR] Adds more box types to cardboard crafting (#27714)
* Adds more box types to cardboard crafting (#83135)

## About The Pull Request
5 more box types have been added into the cardboard's sheet crafting of
"fancy boxes".
Specifically includes the following boxes;

- Drinking glasses
- Paper cups
- Medical gels
- DNA Injectors
- Cigar cases (The normal brown one)

Also fixes a typo involving the "perscription" glasses box.
## Why It's Good For The Game
When I've played as a bartender, I've found it quite annoying that I
couldn't make a labeled box for spare drink glasses.
Adding these boxes will allow people to make those labeled boxes and use
them for whatever they need. (Organizing!)

Also, if those boxes exist for use, why not let them be craftable by the
player?
## Changelog
🆑
qol: Additional box types can be crafted from cardboard. Happy
organizing.
spellcheck: A typo in box crafting for prescription glasses has been
fixed.
/🆑

* Adds more box types to cardboard crafting

---------

Co-authored-by: Derpguy3 <85206687+Derpguy3@users.noreply.github.com>
2024-05-16 06:30:51 +02:00
SkyratBot
c1a550b1b2 [MIRROR] Adds a new neutral lawset, the Y.E.S.M.A.N. lawset, to the AI lawset boards and random pool. (#27710)
Adds a new neutral lawset, the Y.E.S.M.A.N. lawset, to the AI lawset boards and random pool.

Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
2024-05-16 06:29:11 +02:00
SkyratBot
61e29d5d65 [MIRROR] Staff of Shrinking for the wizard (#27708)
* Staff of Shrinking for the wizard (#83115)

<!-- 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 new staff for the wizard that shoots shrink rays. Also a
corresponding wand that comes with the wand belt. Shrinking is a
mechanic already implemented by abductors, but it's not often used
because it doesn't fit their kit super well. That's a huge shame because
shrinking stuff/people is really funny. And you know where funny stuff
fits well? The wizard kit.

OH YEAH and being shrunken now gives you the squash component so you can
be squashed as though you were a roach, though this only deals 10 damage
instead of gibbing you

tiny staff

![68747470733a2f2f696462322e616666656374656461726330372e636f2e756b2f696d616765732f32353836323339392f38333131352f31333237383435323531373936343834343132322e706e67](https://github.com/tgstation/tgstation/assets/8345184/af777602-036f-4171-ad43-5dafa7b29414)
tiny wand

![68747470733a2f2f696462322e616666656374656461726330372e636f2e756b2f696d616765732f32353836323339392f38333131352f393439333932353034373033303238393530372e706e67](https://github.com/tgstation/tgstation/assets/8345184/81241789-404f-4d8e-8473-2ec74b171f55)
exhausted wand turns back to a big wand sprite :)

![68747470733a2f2f696462322e616666656374656461726330372e636f2e756b2f696d616765732f32353836323339392f38333131352f323039323438333731323537303338313239362e706e67](https://github.com/tgstation/tgstation/assets/8345184/c2073952-c16b-4113-9ca9-527cfdbcfd16)

## Why It's Good For The Game

Shrinking stuff is funny, plus it gives the wizard something new to do
besides polymorphing everyone or turning everybody to stone or ei
nathing people.

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

🆑
add: New funny wizard staff/wand that shrinks stuff.
add: Being shrunken now leaves you vulnerable to being crushed to death.
/🆑

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

* Staff of Shrinking for the wizard

---------

Co-authored-by: PKPenguin321 <pkpenguin321.git@gmail.com>
2024-05-16 06:28:46 +02:00
SkyratBot
1cfd96c899 [MIRROR] Portals now make sounds (#27701)
* Portals now make sounds (#83166)

## About The Pull Request
### New sounds:

https://drive.google.com/drive/folders/1vLoyxY93Qfe_GtCnetkEHLrkGYZ8S7nD?usp=sharing

Demo:

https://github.com/tgstation/tgstation/assets/96586172/2c468ab8-deea-4151-8d66-167b63fdda39

Changes teleporter,gulag teleporter, hand tele, bluespace teleport gun,
cultist teleport, experimental syndicate teleporter teleport sounds.
## Why It's Good For The Game
I think sounds are an integral part of immersion and having no cool
sci-fi noises for portals really spoils it.
## Changelog
🆑 grungussuss and Virgilcore
sound: portals now have a unique sound to them
/🆑

* Portals now make sounds

---------

Co-authored-by: Sadboysuss <96586172+Sadboysuss@users.noreply.github.com>
2024-05-15 22:28:47 -04:00
SyncIt21
701368c1b2 General maintenance for smoke machine (#83158)
## About The Pull Request

**1. Qol**
- Adds examines & screentips for screwdriver, crowbar, wrench acts &
inserting reagents
- Adds examines for viewing reagents present & efficiency of the smoke
machine
- Removes power cell from smoke machine required component parts. It's
used nowhere in operation & is a waste of a good cell

**2. Code Improvements**
 - Replaced `attackby()` with `item_interaction()`
- Begins & ends processing only when the player turns the machine on/off
& not just when power is available
 - Removed unused vars like `cooldown` & `user_amount`
 - Correctly autodocs remaining vars
 - Improved UI code to use existing `BeakerDisplay` props

**3. Fixes**
- You no longer hit the smoke machine when inserting reagents into it
via beaker or other open containers
- You can hit the smoke machine with tools like screwdriver, crowbar,
wrench & open containers when in combat mode
 - No abstract & hologram item interactions with smoke machine

## Changelog
🆑
qol: adds examines & screentips for tool & container actions on the
smoke machine
qol: smoke machine no longer requires a power cell for construction
code: autodocs & removes vars for some machine, Updated attack chain to
latest standards for smoke machine
fix: You no longer hit the smoke machine with the beaker
fix: You can hit the smoke machine with tools & beakers when in combat
mode
fix: no abstract & hologram item interactions allowed with smoke machine
/🆑

---------

Co-authored-by: _0Steven <42909981+00-Steven@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
2024-05-14 23:55:27 -04:00
SkyratBot
db8f4d3f70 [MIRROR] Allows status effects with alerts to display their duration (on the alert), adds it to a select handful (#27692)
* Allows status effects with alerts to display their duration (on the alert), adds it to a select handful (#83211)

## About The Pull Request

Plainly: Expands the status effect API so their alerts can showcase
duration remaining.

https://github.com/tgstation/tgstation/assets/51863163/02eaad84-ebb7-4af9-9895-977c6e71acc4

## Why It's Good For The Game

I figure there are some status effects out there which really want the
player to know how long the duration is.

And right now, for 95% of them, you have to code dive to find out. This
is rather punishing for players who... don't code dive.

At the same time, there are effects which *do* tell you how long they
last, which leaves it up to the player to intuit when it'll run out.
This can get a bit silly during lag, and again, punishes new players.

That's not to say I think every status effect should report how much
duration is left: **For very common effects, like sleeping, it should be
left up to the player to guess.** Otherwise we lose a lot of paranoia
and feeling of helplessness. (Also keep in mind this only applies to
status effects with alerts associated.)

Hence why I only added it, largely, to the more "gamified" buffs and
debuffs - Things from (generally) one or two sources and with a static
duration, (or things which already informed the player how long they
last).

Notable ones include Fleshmend, Convulsing (from emag defib), Regen
core.

## Changelog

🆑 Melbert
qol: Some alerts, such as Fleshmend's, show their remaining duration on
their icon.
/🆑

* Allows status effects with alerts to display their duration (on the alert), adds it to a select handful

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-05-15 01:34:35 +02:00
SkyratBot
bf2b2474d7 [MIRROR] Fixes sabre alt-click (#27682)
* Fixes sabre alt-click (#83162)

## About The Pull Request
Alt click wouldnt draw the sabre bc of dual click actions
## Why It's Good For The Game
Fixes #83159
## Changelog
🆑
fix: Alt click will draw the captain's sabre again
/🆑

* Fixes sabre alt-click

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2024-05-15 01:13:26 +02:00
SkyratBot
4ab3f8302a [MIRROR] Replace cigarette smoke with particles, add a big puff when taking cigarettes out of your mouth (#27680)
* Replace cigarette smoke with particles, add a big puff when taking cigarettes out of your mouth (#83101)

## About The Pull Request

- Cigarette particles are now particles rather than baked in
- Taking a cigarette out of your mouth release a big puff of smoke

https://github.com/tgstation/tgstation/assets/51863163/183b39e7-3367-43a1-b750-99e66838d60f

## Why It's Good For The Game

Looks better

## Changelog

🆑 Melbert
add: Cigarette smoke is now more smokey.
add: Taking a cigarette out of your mouth will let out a big puff of
smoke.
/🆑

---------

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

* Replace cigarette smoke with particles, add a big puff when taking cigarettes out of your mouth

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2024-05-15 01:05:36 +02:00
SkyratBot
093f830443 [MIRROR] Fix the RMB action on the cigarettes pack and add a new QoL (#27678)
* Fix the RMB action on the cigarettes pack and add a new QoL (#83170)

## About The Pull Request
Fix the movement of a pack of cigarettes under an spaceman when they
interacts with it with the right mouse button.
Also adds a new way to quickly insert cigarettes in the mouth, just
hitting a pack of cigarettes on yourself. Here how it works:

https://github.com/tgstation/tgstation/assets/126676387/9f1442b0-173b-4f2e-a95e-e42fd9269642
## Why It's Good For The Game
It fixes the bug and adds a new quick and convenient way to put a
cigarette in your mouth. That's good, isn't it?
## Changelog
🆑
qol: Now you can put a cigarette in your mouth just by hitting the pack
of cigarettes on yourself.
fix: The cigarette pack no longer moves under the spaceman when they
interacts with it with the RMB
/🆑

---------

Co-authored-by: paganiy <leunscrupuloustrolle@ gmail.com>

* Fix the RMB action on the cigarettes pack and add a new QoL

---------

Co-authored-by: paganiy <126676387+paganiy@users.noreply.github.com>
Co-authored-by: paganiy <leunscrupuloustrolle@ gmail.com>
2024-05-15 01:04:15 +02:00
SkyratBot
503cc45e7d [MIRROR] Bitrunner job figurine (#27676)
* Bitrunner job figurine (#83173)

## About The Pull Request

This adds an action figure for Bitrunners, and places one in the
Deltastation bitrunning den.

![image](https://github.com/tgstation/tgstation/assets/28870487/03b40d5c-1eeb-493e-8244-1456d120c848)

"I'm in..."
## Why It's Good For The Game

Every job has an action figure, and bitrunning should not be an
exception! Delta has figurines in each job site, and adding one there
lets the Bitrunners in on the fun.
## Changelog
🆑 Rhials
add: Bitrunners now have their own job figurine. Cool!
/🆑

* Bitrunner job figurine

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2024-05-15 00:58:26 +02:00
SpaceLoveSs13
0ba6355276 Merge pull request #27653 from Skyrat-SS13/upstream-merge-83127
[MIRROR] Adds animation to objects sliding into or out of morgue trays
2024-05-09 17:13:42 +05:30
SpaceLoveSs13
7e3ee5e89d Merge pull request #27647 from Skyrat-SS13/upstream-merge-83114
[MIRROR] Fix cult building
2024-05-09 17:11:54 +05:30
SpaceLoveSs13
fd0e9a9ac7 Merge pull request #27645 from Skyrat-SS13/upstream-merge-83113
[MIRROR] Allows the Coroner's Ritual Knife to go in the Medical belt!
2024-05-09 17:11:31 +05:30
SpaceLoveSs13
b9184765b1 Merge pull request #27642 from Skyrat-SS13/upstream-merge-83124
[MIRROR] Adds slight animation to entering a portal / teleporter
2024-05-09 15:34:33 +05:30
SpaceLoveSs13
6ff916b099 Merge pull request #27641 from Skyrat-SS13/upstream-merge-83063
[MIRROR] Pipegun updates and glowup
2024-05-09 15:29:09 +05:30
SpaceLoveSs13
5566e17ca1 Merge branch 'master' into upstream-merge-83124 2024-05-09 14:47:40 +05:30
SpaceLoveSs13
6d3a2c168f Merge branch 'master' into upstream-merge-83063 2024-05-09 14:37:21 +05:30
SpaceLoveSs13
c48573c90c Merge branch 'master' into upstream-merge-82920 2024-05-09 14:36:07 +05:30
SkyratBot
249495424b [MIRROR] Fixes deployable turrets not actually being undeployable. (#27655)
* Fixes deployable turrets not actually being undeployable. (#83061)

Fixes #83053

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* Fixes deployable turrets not actually being undeployable.

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2024-05-09 08:36:12 +02:00
SkyratBot
35a7f722c9 [MIRROR] The shuttle won't gib you anymore while you're in jaunt (#27666)
* The shuttle won't gib you anymore while you're in jaunt (#83134)

## About The Pull Request
As it's said in title, the shuttle will not gib you now while you in
jaunt. This applies to a mage, a (s)laughter demon, an ash heretic and
anything that uses spell "jaunt" and its child classes.
## Why It's Good For The Game
I think it's pretty counterintuitive that you can't be harmed by
anything in the jaunt, including an explosion, but if you accidentally
end up on the tile where the shuttle arrives, it deletes you. So, this
PR closes this logical hole.
## Changelog
🆑
fix: The shuttle will no longer delete you while you are in jaunt
/🆑

Co-authored-by: paganiy <leunscrupuloustrolle@ gmail.com>

* The shuttle won't gib you anymore while you're in jaunt

---------

Co-authored-by: paganiy <126676387+paganiy@users.noreply.github.com>
Co-authored-by: paganiy <leunscrupuloustrolle@ gmail.com>
2024-05-09 06:34:26 +00:00
SkyratBot
d4f03e8add [MIRROR] Replace Heretic Phobia with Cursed Organs (#27664)
* Replace Heretic Phobia with Cursed Organs (#83082)

## About The Pull Request

Being sacrificed by a Heretic no longer applies an incurable brain
trauma that gives you a phobia of Heretic-associated items.
Instead it does the following things:

- Removes 2-4 of your organs and leaves them behind on the sacrificial
circle, replacing them with "corrupt" organs with negative effects.
- Gives you an unremovable "curse" debuff which will cause you to
immediately cough a random organ out of your chest if you attack or are
attack by the person who sacrificed you, **if they are wearing a Focus
at the time.**

Corrupt Organs can be removed via surgery, although doing so is
dangerous.
A removed corrupt organ will often either immediately explode for a
small (but not insignificant) amount of burn damage to everyone nearby,
or it will animate itself as a haunted object and be a general nuisance
until subdued.
A patient dosed with Holy Water can always have their organs removed
without consequence.
Chugging Holy Water will also suppress most of the negative effects of
your corrupt organs.

The effects of Corrupt Organs are as follows:
- **Eyes:** All Heretics **and also a selection of additional random
people** are completely invisible to you. You can still see their
runtext (or "hear") them, but they otherwise cannot be seen. And as you
can't see them you also cannot click on them.
- **Tongue:** When you speak, your language will sometimes be replaced
by "Shadowspeak", understood only by Curators and Nightmares. This is
less of an impediment during Halloween because of the friendly
Shadowpeople.
- **Liver:** When you drink something, it will add extra reagents to
your sip from a pool largely composed of alcohol and hallucinogens.
- **Stomach:** Your hunger will deplete significantly faster if you do
not regularly ingest blood. (Fun fact: Did you know that a drinking
glass full of blood automatically relabels itself "tomato juice"?)
- **Heart:** You will continue to be intermittently tormented by
frightening hands.
- **Lungs:** You will intermittently cough out dangerous or unpleasant
gases.
- **Appendix:** Very infrequently you will vomit out several hostile
worms.

Most of these effects aren't present while you're dodging the spooky
hands in the Mansus realm.
Plasmamen never have their lungs replaced because they'd immediately
start choking on their internals and that is annoying. Ethereals _do_
have their hearts replaced so may be surprised to find that they don't
respawn when killed if they don't get a new one.
I would haved called them Cursed Organs but the Cursed Heart already
exists.

## Why It's Good For The Game

Nobody enjoys the Heretic phobia from any angle.
Phobias suck to deal with in general. and while being scared of all
Heretic stuff from that point on is mildly flavourful it's not very
interesting.
This alternative hopefully provides a more interesting answer (which
should provide more storytelling and interaction with other people) to
the problems that the original change intended to address:
Making sure that nonlethal sacrifices still feel significantly bad
enough that you're not going to volunteer, and as an extra layer of
protection to ensure that someone you sacrificed functionally ceases to
be a threat to you.

## Changelog
🆑
del: Being sacrified by a Heretic no longer gives you an incurable
phobia.
add: Being sacrificed by a Heretic will drop 2-4 of your organs on the
ground and replace them with "corrupt organs" with negative effects
which can be suppressed with Holy Water.
add: Players who have been sacrificed by Heretics will experience
additional and rapidly lethal consequences for attempting to fight
someone who previously sacrificed them, as long as that person is
wearing a focus.
/🆑

* Replace Heretic Phobia with Cursed Organs

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-05-09 08:32:37 +02:00
MrMelbert
903803d301 Adds animation to objects sliding into or out of morgue trays (#83127)
## About The Pull Request

https://github.com/tgstation/tgstation/assets/51863163/b0662ee7-8f67-42d3-95ca-31012556f4ee

This effect is purely visual, objects are still "instantly" put into or
out of the morgue itself. (Meaning you can't grab an object as it is
being shifted in or taken out, nor can you move off the tray while it is
sliding in or out.)

Also applies to crematoriums.

## Why It's Good For The Game

Adds a tiny bit of visual flair to help "sell" the effect that the tray
belongs to the morgue container, rather than just appearing and
disappearing.

## Changelog

🆑 Melbert
qol: Morgue trays (and the contents inside) are now animated on open and
close
/🆑
2024-05-08 21:19:58 -04:00
MrMelbert
ebf288162a Fix cult building (#83114)
## About The Pull Request

Fixes #83054

#https://github.com/tgstation/tgstation/pull/82833 Changed a bunch of
new args but didn't update any subtype, so the args list got filled with
gobbledygook.

## Changelog

🆑 Melbert
fix: Cult can build again
/🆑
2024-05-08 19:58:30 -04:00
DrAmazing343
6c7ab247a9 Allows the Coroner's Ritual Knife to go in the Medical belt! (#83113)
## About The Pull Request
Allows the Ritual Knife from the Coroner's Mortidrobe contraband section
to be stored within Medical Belts like any other surgical tool.

## Why It's Good For The Game
Coroners using the Ritual Knife adds excellent flavor to the job.
Allowing it to sit upon their Medical Belt in place of, say, a scalpel
grants convenience to those wishing to roleplay out a more wicked or
occultic Coroner without having to place the Ritual Knife in their bag,
leaving an odd spot open on their Medical Belt.
2024-05-08 18:35:13 -04:00
MrMelbert
48010099c6 Adds slight animation to entering a portal / teleporter 2024-05-08 18:12:34 -04:00
necromanceranne
a2cad3c467 Pipegun updates and glowup (#83063)
## About The Pull Request

Updates pipeguns with a brand new set of sprites. Also comes with pipe
pistols; plinkier versions of the pipegun.

![ye
pipeguns](https://github.com/tgstation/tgstation/assets/40847847/dd8ea3db-aa5a-403e-9eca-c3aa2c38b694)

![image](https://github.com/tgstation/tgstation/assets/40847847/9015f1fe-8ed2-4724-844d-7d550d35b890)

![image](https://github.com/tgstation/tgstation/assets/40847847/0d99551a-ecc4-4f2b-a397-46c5f26437f7)

Alters pipeguns away from utilizing shotgun/rifle ammunition towards a
bespoke junk round ammo. These shells are crafted similarly to current
improvised shells. This also removes improvised shells as a shotgun ammo
type. (these new shells aren't shotgun shells to begin with, they're
more like rifle bullets)

Crafting junk rounds produces an entirely unknown projectile in the
shell. You won't know what you get until you fire the gun. Almost in
every instance, however, the shot is beneficial towards killing things.
And they all do about the same amount of damage, so there is hopefully
never a round you didn't want to fire in the gun. Fighting someone with
a pipegun is usually predictable for what amount of damage it will do,
but any additional effects it might have is going to be an unknown
factor. They also brutalize borgs, which is a quality that improvised
shells had previously.

Pipeguns operate as they did before, and do roughly 40 damage per shot
with the majority of their ammo types (less than what they do currently
with .310). They only have one shell in the gun at a time, so every time
they're fired, they must be reloaded.

Pipe pistols do roughly 15 damage per shot, but hold more ammo than the
bigger pipegun. However, they're more likely to veer off-course.

There are regal versions of each of these weapons, and each are more
potent respective of their general rarity. Having one is going to be a
lot more noteworthy.

### Minor changes

Some more clothing items can carry pipeguns in their suit storage.

The icemoon hermit spawns with a heroic laser musket rather than a regal
pipegun (partially because it is too difficult for the hermit to get
more ammo for their gun, and also because the regal pipegun is a more
powerful weapon than previously)

## Why It's Good For The Game

It has been a few years since I added the pipegun, and time was never
particularly kind to it. There are alternative weapons now with
interesting mechanics of their own. The ammunition it used has changed
considerably. And it simply didn't ever feel like a 'junk gun' in a way
that was fun. The original mechanics added to give it that feeling were
just not fun to experience and were removed. So the pipegun has been
left as 'a shitty version of X'. Even the regal pipegun was, at the end
of the day, a shittier version of either a shotgun or cargo rifle.

It didn't feel right not having some kind of unique quality to using
these weapons that help them express themselves as unpredictable trash
weapons built inside of maintenance. But I expressly didn't want to make
it 'unpredictable' in a way that felt unfair on the person getting shot
either. So just giving it more damage was right out. As a compromise, I
reduced the overall lethality of the weapons while introducing a gimmick
that will appeal to those wanting to play out the role of a homeless
lunatic with a shitty homemade gun stalking maintenance. A 'chaos gun'
so to speak. Maybe that will appeal to people.

## Changelog
🆑
balance: Reworks pipeguns to use an unpredictable 'junk round'. You
won't know what you're shooting until you fire it.
add: Introduces a pistol version of the pipegun; the pipe pistol. It is
inaccurate and does significantly less damage, but more portable and has
more ammunition in the gun.
image: Updates the visuals of the pipeguns.
balance: Also improves the Regal varieties of these weapons. By a lot.
balance: More articles of clothing can be used to carry pipeguns in suit
storage.
balance: The Icemoon Hermit comes with a Heroic Laser Musket instead of
a Regal Pipegun.
remove: Improvised shells (the shotgun shell) has been replaced with
improvised junk shells (which don't work with shotguns but do work with
pipeguns).
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>
2024-05-08 17:43:04 -04:00
_0Steven
982aebf8cf Fix pride pin reskinning (#82920)
## About The Pull Request

**Edit: Since writing, this pr has been updated to address failing CI
based on code-general suggestions, invalidating the previous
descriptions. The previous descriptions has been included as spoilers
for posterity**

Right, so, this has gone from just a simple pride pin fix to realizing
CI fails with it to doing a more complex lasting fix based on
suggestions.

Recap time. Objects get reskinning set up if they have `unique_reskin`
set when `Initialize(...)` runs.

9145ecb7e1/code/game/objects/items.dm (L267-L269)
Because pride pins use a global list, we set it in `Initialize(...)`...
After we call the parent.

9145ecb7e1/code/modules/clothing/under/accessories/badges.dm (L196-L198)
Obviously this fails.

However, moving this *before* `Initialize(...)`, while fixing the issue,
causes CI to fail due to calling `register_context()` twice.
Why? Well, it's simple. We automatically call `register_context()` if we
have `unique_reskin` set, as seen above, but we *also* call it on
accessory `Initialize(...)` due to it having its own context.

0c562fd742/code/modules/clothing/under/accessories/_accessories.dm (L29-L31)
This causes it to try register the same thing twice, which doesn't
_break_ things, but it sure as hell isn't clean.

So talking about this with San in code general, we decided to try go
with the following:
We add two new procs, `setup_reskinning()` and
`check_setup_reskinning()`, and handle all this fuckery within those.
This lets subtypes override them with their own new checks or
differences in setup.
Then we override `setup_reskinning()` for `/obj/item/clothing/under` and
`/obj/item/clothing/accessory` to not register context again, and do the
same for `/obj/item/clothing/accessory/pride` but while also setting
`unique_reskin`.

This fixes it.

<details>
  <summary>Previous implementation for posterity</summary>

Back from my short code break, time to fix some of the things I've been
annoyed by.

Firstly, I noticed pride pins could no longer be reskinned since the
alt-click refactor.
Looking into it, this seems to be because we now only register this on
`Initialize(...)` if `unique_reskin` has been set:

9145ecb7e1/code/game/objects/items.dm (L267-L269)
While due to using a global list we don't set this in the item
definition, but in `Initialize(...)` :

9145ecb7e1/code/modules/clothing/under/accessories/badges.dm (L196-L198)
Where we call the parent proc _before_ setting `unique_reskin`, and thus
not registering our ability to reskin.

So all we do is set this to our global list _before_ we call the parent
proc.
```dm
/obj/item/clothing/accessory/pride/Initialize(mapload)
	unique_reskin = GLOB.pride_pin_reskins // Set before parent proc checks for it.
	. = ..()
```
This fixes it.

</details>

## Why It's Good For The Game

Fixes pride pin reskinning.
Theoretically makes it easier to avoid this happening in the future, and
allows `setup_reskinning()` to be manually called in the case of values
being edited post-initialize.

<details>
  <summary>Previous pitch for posterity</summary>

Fixes pride pin reskinning.

</details>

## Changelog
🆑
fix: Pride pins can be reskinned again with alt-click.
/🆑
2024-05-08 17:21:20 -04:00
larentoun
d662f4016e Fix missing crafting flags (#83025)
## About The Pull Request
fixes https://github.com/tgstation/tgstation/issues/83023

## Changelog
🆑
fix: Materials are now correctly applied to crafted items (chairs,
toilets, etc)
/🆑
2024-05-07 03:52:43 +02:00
Bloop
745955661e Makes this list a little more downstream friendly (aka trailing comma pr) (#83028)
That's all. Just makes this easier to add onto with less diffs involved.

Nothing worth mentioning

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-05-07 03:46:58 +02:00
Useroth
fe342e367c Modular recipes. 2024-05-07 03:38:39 +02:00
Useroth
7808101238 Merge remote-tracking branch 'origin/master' into upstream-merge-82833 2024-05-03 17:10:40 +02:00
cnleth
158cc3037b Fire ant colonies created by burning actually contain fire ants (#83002)
## About The Pull Request
Fire ant colonies created by burning regular ants now give you fire ants
when scooped up
There were 2 lines of code clearing the ants' reagent when they're
burned. They're not needed because ants use `decal_reagent`
Tested and it works without these 2 lines

![fireants](https://github.com/tgstation/tgstation/assets/113535457/aee4ec28-a767-4dfe-b870-2a222848ae3a)
## Why It's Good For The Game
Fixes #82864
## Changelog
🆑
fix: Fire ant colonies created by burning regular ants will now contain
fire ants as their reagent
/🆑
2024-05-03 11:33:32 +00:00
Xander3359
2b15dbdbb9 Fix crafting bypassing checks 2024-05-03 07:36:31 +00:00