Commit Graph

2221 Commits

Author SHA1 Message Date
SkyratBot
02e3251f84 [MIRROR] Makes gasses use defines [MDB IGNORE] (#21492)
* Makes gasses use defines

* Mirror!

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-06-01 15:24:31 +12:00
SkyratBot
59569cbc44 [MIRROR] Abductors can now use batons in general. (not just their specialized baton) [MDB IGNORE] (#21564)
* Abductors can now use batons in general. (not just their specialized baton) (#75561)

## About The Pull Request
Abductors can now use any baton instead of just their special baton.
## Why It's Good For The Game
Abductors are a bit fucked if they lose their baton and are unable to
buy one from their shop. Sure they can just use flashes or maint-fu but
those methods are hard and or unreliable. (if they manage to lose their
baton, they probably aren't that robust anyways). This PR gives more
leeway if you fuck up as an abductor.
## Changelog
🆑
balance: The mothership which abductors came from has worked very hard
to train their field agents how to use batons from their specimen's
habitat
/🆑

---------

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

* Abductors can now use batons in general. (not just their specialized baton)

---------

Co-authored-by: Singul0 <127663818+Singul0@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-05-31 17:56:27 -04:00
Funce
68d843d070 [MIRROR] Quietens Spaceman when debugging UNIT_TESTS locally [MDB IGNORE] (#21548)
Quietens Spaceman when debugging UNIT_TESTS locally (#75570)

The contract is removed by virtue of testing.

Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com>
2023-05-31 17:11:46 -04:00
SkyratBot
32429145f4 [MIRROR] Stops factory blobs from hard deleting. [MDB IGNORE] (#21523)
* Stops factory blobs from hard deleting. (#75676)

## About The Pull Request
The code for factory blobs and blob structures is kinda messy and ridden
with some unreacheable code and unused variables. My plan here is stop
factory blobs from hard-deleting because of uncleared references, but I
took a little liberty to cut some old code that looks more of a
hindrance than anything.

## Why It's Good For The Game
This should fix #74845.

## Changelog

No tangible change for the player.

* Stops factory blobs from hard deleting.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-05-31 23:16:06 +12:00
RatFromTheJungle
a14b3fbe85 nerfs changeling chemicals (#21402) 2023-05-24 10:18:28 -07:00
SkyratBot
b42f16e167 [MIRROR] [NO GBP] Fixes HMS in so many ways. [MDB IGNORE] (#21405)
[NO GBP] Fixes HMS in so many ways.

Co-authored-by: Charlotte <98856144+orthography@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-05-24 15:20:19 +00:00
SkyratBot
3a48a87464 [MIRROR] Adds Hereditary Manifold Sickness, a Chronic Illness Quirk [MDB IGNORE] (#21384)
* Adds Hereditary Manifold Sickness, a Chronic Illness Quirk (#75035)

## About The Pull Request

Adds a new quirk called Chronic Illness. It provides a -12 score as it's
a pretty life-altering quirk, but could give way to interesting RP.

- Hereditary Manifold Sickness (HMS) can not be cured, it can only be
delayed and treated using a new unmakable vaccine called
"Sansufentanyl". You spawn with 6 pills and are able to order crates
containing 12 more from cargo as it's proprietary to Interdyne.

- HMS has 5 stages total.
Stage 1 does nothing
Stage 2 gives minor effects
Stage 3 becomes debilitating
Stage 4 is a danger zone.

Upon reaching Stage 5, there are 4 possibilities, 1 is a recovery back
to stage 1, and the other 3 are deaths which I won't explain here to
avoid ruining it. (read the code I guess.)

This also adds a new traitor objective to infect someone with HMS.

- [x] Correcting the chronic aspect.

- [x] Add traitor objective.

- [x] Tweaking for fairness.

## Why It's Good For The Game

HMS is a new quirk that gives a much more hardcore junky or tumor
playstyle. Neglecting HMS can mean the end of your shift. it's not
something you want to mess with.

It puts a reliance on cargo rather than medical for a quirk and gives a
use case for money. (price may be tweaked still). I think it'd be
interesting to see if people will start mugging or robbing the vault
more to get their life-saving medication.

## Changelog
🆑
add: Interdyne has released a new medication to treat those who are in
the wrong timeline!
add: Interdyne has also realized this is VERY profitable! They've begun
arming their operatives with an autoinjector.
/🆑

---------

Co-authored-by: Tom <8881105+tf-4@ users.noreply.github.com>

* Adds Hereditary Manifold Sickness, a Chronic Illness Quirk

---------

Co-authored-by: Charlotte <98856144+orthography@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@ users.noreply.github.com>
2023-05-24 16:56:31 +02:00
SkyratBot
98774c8580 [MIRROR] Fixes mind traits (Curator, Miner, Clown) [MDB IGNORE] (#21397)
* Fixes mind traits (Curator, Miner, Clown) (#75593)

## About The Pull Request

Tower of Babel (Curator), Naive (Clown), and Storm detector (Shaft
Miner), are all traits that are given to your mind upon taking these
jobs.
However, we have been checking the body for these traits, not the mind.
This meant that Shaft miners werent alerted of ice storms, Clowns didnt
have their unique examine text, and Curators were affected by Tower of
Babel.
This fixes all those issues.

Naive and Tower of Babel realistically should only be on the mind, so I
changed all instances to check the mind. Storm detection is something
you can get through analyzers, so I left it as a check for both your
body and mind traits.

Clown's Naive:

![image](https://github.com/tgstation/tgstation/assets/53777086/30e92026-5d1d-44a5-9969-206df99c5e8f)

Tower of Babel:

![image](https://github.com/tgstation/tgstation/assets/53777086/b1d41f9d-e020-495c-89de-0d4e2c953442)

## Why It's Good For The Game

Fixes several bugs for 3 jobs all at once. I don't see any issue reports
on any of these, but they existed.

## Changelog

🆑
fix: Shaft Miners are now alerted of Icemoon storms, Clowns are naive,
and Curators are immune to the Tower of Babel again.
/🆑

* Fixes mind traits (Curator, Miner, Clown)

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-05-24 16:34:55 +02:00
SkyratBot
95f3d30016 [MIRROR] Hulk can no longer two shot dragon portals [MDB IGNORE] (#21395)
* Hulk can no longer two shot dragon portals (#75586)

## About The Pull Request
Drops the damage carp rifts take from hulk to 30 (Was 150).
## Why It's Good For The Game
Closes #74925

Dragon is supposed to be a round ending threat if left unchecked. But at
the moment there's a number of ways you can cheese it completely if you
get within spitting distance of the portal. This pretty much prevents
dragon from getting blue balled because one guy in an EVA suit rushed
their portal before they could intercept without making hulk worthless
(30 damage is still nothing to sneeze at when welders and other melee
weapons barely break 20).
## Changelog
🆑
balance: Hulk damage to portals lowered to 30 (Was 150)
/🆑

* Hulk can no longer two shot dragon portals

---------

Co-authored-by: DaydreamIQ <62606051+DaydreamIQ@users.noreply.github.com>
2023-05-24 16:31:57 +02:00
SkyratBot
17534b3e7f [MIRROR] Ashwalker Tribe roundend reporting revamp [MDB IGNORE] (#21336)
* Ashwalker Tribe roundend reporting revamp (#75506)

## About The Pull Request

This PR changes how ashwalkers are listed in the roundend report.
Originally, they would be listed as individual "other" antagonists,
which isn't a particularly great way of handling it and leads to
weirdness like this:

![image](https://github.com/tgstation/tgstation/assets/28870487/c00a2cfc-3f08-46f6-a290-ef632cac0371)

_(That's an authentic ninja greentext from a live server, by the by)_

Now, the roundend report gives each ashwalker team their own section
within the report, whether or not they succeeded, and some bonus stats.

![image](https://github.com/tgstation/tgstation/assets/28870487/c2dc3c00-62a7-4784-90be-5a8bb5cc5a50)

This new roundend report handling also supports having multiple
Necropolises (Necropoli?) in the same round. Each tribe has their stats
and success reported individually.

This also slightly modifies the protect_object objective, preventing
hard deletes when linked to objects that don't clear their own
references.

## Why It's Good For The Game

Gives Ashwalkers a much better roundend report, and handles how the
reporting is done in a much more sensible manner.

Reduces how much space that large nests take up with their individual
listings.
## Changelog
🆑 Rhials
qol: Ashwalker roundend reporting has been revamped. Glory to the
Necropolis!
/🆑

* Ashwalker Tribe roundend reporting revamp

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-05-22 12:06:13 +00:00
SkyratBot
6a6ad62bf4 [MIRROR] Abductees strapped to the abductor operating table are now properly layed down [MDB IGNORE] (#21338)
* Abductees strapped to the abductor operating table are now properly layed down (#75524)

## About The Pull Request

This gives the abductor surgery table a buckle angle, so buckled humans
lie down on it properly.

This wasn't an issue for sleeping test subjects, but awake ones would
look like they're standing on the table instead of buckled.

This also changes a the table's can_buckle boolean arg from a 1 to a
TRUE, because I was right next to it.
## Why It's Good For The Game

Reduces confusion, goofiness, etc.
## Changelog
🆑 Rhials
fix: Humans who wake up buckled to the abductor surgery table will no
longer look as if they are standing on it.
/🆑

* Abductees strapped to the abductor operating table are now properly layed down

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-05-21 22:49:32 -07:00
SkyratBot
3696b1eb88 [MIRROR] Converts Killer Tomatoes to Basic Mobs [MDB IGNORE] (#21301)
* Converts Killer Tomatoes to Basic Mobs

* skyrat modular changes

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-05-20 23:44:02 -07:00
SkyratBot
6fb0f58f96 [MIRROR] Fixes bad call to heretic on research + outdated signal [MDB IGNORE] (#21282)
* Fixes bad call to heretic on research + outdated signal  (#75490)

## About The Pull Request

- This never got updated from the fully heal refactor
- Second arg to on research needs to be the heretic datum it's being
called on

## Why It's Good For The Game

Runtimes

## Changelog

🆑 Melbert
fix: Ahealing a heretic now properly gives them their heart back
/🆑

* Fixes bad call to heretic on research + outdated signal

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-05-20 22:29:54 +01:00
SkyratBot
6c9be73f51 [MIRROR] Adds TTS to the game. Players can select their own voices in preferences. [MDB IGNORE] (#21232)
* Adds TTS to the game. Players can select their own voices in preferences.

* [SEMI-MODULAR] [MIRROR FIX] Fixes the TTS PR. (#21267)

Fixes the TTS PR.

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
2023-05-19 01:47:19 +01:00
Pinta
4771452cbf [UPSTREAM PARITY] Fixes changeling fake death (#21258)
Update fakedeath.dm

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-05-19 00:26:38 +01:00
Tom
3de33e867e Fixes infinite bloody bastard swords (#70721) (#21215)
Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
2023-05-19 00:21:48 +01:00
Tom
222dabd650 Maids in the Mirror take no damage from ghosts examining them (#68122) (#21209)
* maids in the mirror take no damage from ghosts

* dead players in their mob shouldn't hurt either

Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
2023-05-19 00:21:26 +01:00
SkyratBot
1b70c02075 [MIRROR] Adds a revolutionary conversion stinger [MDB IGNORE] (#21256)
* Adds a revolutionary conversion stinger

* head

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-05-18 17:12:09 +00:00
SkyratBot
9f3909a809 [MIRROR] Blobs and Kudzu are killed by chasms. [MDB IGNORE] (#21252)
* Blobs and Kudzu are killed by chasms. (#75469)

## About The Pull Request

Fixes #75451
Originally I just whitelisted them because they're structures that are
supported by their surroundings... but there's still the theoretical
scenario where it has expanded over a reasonably large chasm and then
becomes almost impossible to remove because you can't easily get at the
ones in the middle, and it would be "levitating" after you cut off
everything around the edge.

So instead this adds a trait which restores the original behaviour of
chasms where they delete stuff which falls into them and applies it to
Blobs and Kudzu.

## Why It's Good For The Game

It's a very niche scenario but "expanding structure falls into abstract
chasm storage" causes issues where it potentially keeps processing in
there and there isn't much you can do about it.
Maybe there's other stuff that commonly falls into chasms we'll decide
that we want to delete instead of keeping in pools now that you can just
slap a trait onto something to do it, future consideration.

## Changelog

🆑
fix: Blob and Kudzu tiles which expand into chasms will now be correctly
destroyed by the chasm.
/🆑

* Blobs and Kudzu are killed by chasms.

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-05-18 18:59:37 +02:00
Tom
78186458f0 Gives the Spider Charge a unique sprite (Ninja C4) (#68362) (#21212)
Co-authored-by: ReinaCoder <83892995+ReinaCoder@users.noreply.github.com>
2023-05-18 15:20:32 +02:00
SkyratBot
d3f2386664 [MIRROR] Bible refactor [MDB IGNORE] (#21190)
* Bible refactor

* Delete book.dm

* updatepaths

* you're meaning to tell me i have to edit CODE??

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-05-16 09:34:10 -04:00
SkyratBot
637ac53109 [MIRROR] Now blocking is more noticeable! New blocking and parrying sounds [MDB IGNORE] (#21090)
* Now blocking is more noticeable! New blocking and parrying sounds

* Update code/game/objects/items/dualsaber.dm

---------

Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-05-15 18:07:25 +01:00
SkyratBot
5d3dae7e72 [MIRROR] Adds the Syndicate Induction Kit for Nuclear Operatives [MDB IGNORE] (#21189)
* Adds the Syndicate Induction Kit for Nuclear Operatives (#75055)

## About The Pull Request

Adds the Syndicate Induction Kit for Nuclear Operatives.

The kit contains the following

- One Ansem pistol
- One each of 10mm AP/HP magazines
- An energy dagger
- A syndicate bowman headset
- A nuclear PDA and agent card
- A syndicate fabric space suit and helmet, alongside a jet harness
- Combat boots, turtleneck, fingerless gloves
- The Fission Mailed book
- And the most important part, the induction implant.

The induction implant will make anyone who is implanted by it a
Syndicate Operative. This will give them the syndie faction and the nuke
op datum, alongside the usual weird name nukeops get.

The implant will NOT work on anyone who is not an antagonist in some way
or form. Normal crew members do not gain benefits from implanting, and
in fact the implant disintegrating inside gives them toxin.

It costs a total of 10 TC, for what is more or less 25 TC of gear. The
value is totally up to change, it's probably way too low.

Uplink spacesuits are randomized between all their different colored
variants! Visual only.

## Why It's Good For The Game

It's cool and rewards teamwork. Traitors can team up with nukies, and if
they choose to do so they gain some basic gear (a free gun, a space
suit, the dagger) that isn't really even close to the degree of gear
real ops get. As a downside, their name becomes an extremely obvious
nuclear operative name, meaning if they want to be stealthy they either
have to never talk or purchase a voice changer.

Being able to just obtain a whole new member of the team for so little
likely seems bonkers, but my intention is to just encourage something
that's neat and interesting ingame without hopefully being *too*
impactful and strong.

Imagine stumbling upon a heretic and inducting them into the team. Or a
changeling, or a wizard? Running around hypnoflashing people to be nuke
ops and then giving them the kit?? There's a lot of fun moments that
could arise from this, but they're balanced by the fact that, well,
nobody ever saves TC for the station.

Something I can see becoming a problem is EVERY traitor buying syndicate
encryption keys to beg for an induction kit every time war is declared.
I'm not sure if this is going to be a huge issue, but I think I'd rather
just get this ingame and see if that does turn out to be a problem. If
it does, we can just make it so that traitors can't be inducted, as the
syndicate has already hired them for something else and doesn't want to
flare inter-faction tensions.

## Changelog

🆑
add: Adds the Syndicate Induction Kit for Nuclear Operatives, which lets
them induct any willing antagonist into the nuclear operative team for
10 TC.
add: Uplink spacesuits are randomized between all their different
colored variants! Visual only.
/🆑

* Adds the Syndicate Induction Kit for Nuclear Operatives

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-05-15 14:17:56 +01:00
SkyratBot
d7bc0722f9 [MIRROR] Fixes records console sechuds glitch, ninja sechuds glitch [MDB IGNORE] (#21109)
* Fixes records console sechuds glitch, ninja sechuds glitch

* Update code/game/machinery/computer/records/security.dm

---------

Co-authored-by: JupiterJaeden <48777952+JupiterJaeden@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-05-15 13:13:20 +00:00
SkyratBot
7ffc0e786e [MIRROR] Cargo category cleanup [MDB IGNORE] (#21119)
* Cargo category cleanup (#75374)

## About The Pull Request

I accidentally discovered that when #55504 removed cargo export
categories being a thing during export value evaluation, in two
instances, they forgot to remove passing over the now defunct export
categories, causing it to be passed in as the elasticity value, and by
sheer coincidence, this was not causing problems (due to being overriden
by a named argument in the pirates case, and cargo_exports being
evaluated as true in another).

This PR fixes the arguments, preventing possible bugs in the future.
This also removes the code that set if the cargo shuttle could sell
contraband and emagged items, as that is no longer a thing. I talked
with @ ArcaneMusic about this, and they agreed, albeit with the caveat
that if someone finds a good use case for this feature, it could be
saved.

This PR also autodocs several export related files, and cleans up
various single and two letter vars.

## Why It's Good For The Game

Cleaner code, unused code removed.

## Changelog

🆑
code: cleaned up cargo export code a bit
/🆑

* Cargo category cleanup

---------

Co-authored-by: Profakos <profakos@gmail.com>
2023-05-14 16:02:52 -07:00
SkyratBot
077e2d4eee [MIRROR] Makes update_icon_updates_onmob more robust [MDB IGNORE] (#21076)
* Makes update_icon_updates_onmob more robust (#75324)

Safeguards against #74965 happening in the future.

Noticed a bunch of these were using ITEM_SLOT_HANDS. This is incorrect,
as the element already automatically updates held items. grep'd it to
catch future instances.

Likewise, a number of objects weren't passing slot_flags to the element,
meaning it wasn't actually updating those things properly when they were
being worn. I've simplified this so now the element will automatically
update all slot_flags, and passing an additional slot to the element
when being added is only needed for additional slots that might need to
be updated. This also means if slot_flags change, the element will now
update correctly as well.

🆑 ShizCalev
code: The update_icon_updates_onmob element will now automatically
update all slots in an item's slot_flags var. This does fix multiple
things that weren't updating properly. Passing a slot to the element is
now only necessary if you want to add additional slots to be updated.
/🆑

* Makes update_icon_updates_onmob more robust

---------

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2023-05-10 22:57:55 -07:00
SkyratBot
aac6045ba8 [MIRROR] Golem Rework [MDB IGNORE] (#21001)
* Golem Rework

* SECT 9

* ok

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-09 03:56:30 +01:00
SkyratBot
88e4c08a98 [MIRROR] New Medical job: The Coroner [MDB IGNORE] (#20963)
* New Medical job: The Coroner

* Fixes coroner (code-side) (#21005)

* Fixes coroner

* Update jobs.dm

* trailing newline

* wew

* VR Replacements

* w

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-08 03:44:11 +01:00
SkyratBot
f1fef9b0c3 [MIRROR] Demotes Psyker Pirates to Bounty Hunter Duty [MDB IGNORE] (#20951)
* Demotes Psyker Pirates to Bounty Hunter Duty (#75031)

This PR demotes the Psyker-gang from a pirate team to a fugitive hunting
team. For more information on Psyker pirates, please refer to #71650.

Stuff this also does in the process:
- Gives fugitive hunters their own subfolder in the fugitives antagonist
folder, moves some of their stuff into hunter-specific files rather than
interlacing it with the rest of the fugitive code.
- Moves the hunter backstories to defines, to make reading things easier
while I made this change.
- Exhaustively moves everything related to psykers from being
pirate-oriented to hunter-oriented (typepaths, locations where stuff is
defined, etc. There should be nothing left behind related to psykers in
anything pirate related). (Tell me if I missed anything somehow).

They still get their ship (they even get their own custom
psyker-friendly prisoner capsule). They still have a bunch of lethally
chambered firearms. They're the same gunrunning nutcases they were
before, just as bounty hunters.

To assist with basic tasks such as "getting to the station" or "figuring
out who the fuck we're supposed to be kidnapping", the psykers have
"acquired" a Seer to assist them. They can _try_ to coordinate the
psykers and lead them through situations where their impairments put
them at too great a disadvantage. If you're one of the psykers, make
sure to keep this guy alive at all costs!

Why are they called Shikaris instead of hunters? Mariam-Webster says
it's a Hindi word for some kind of hunter/tracker, and it sounded like
something a bunch of space-junkies would call themselves because they
think it sounds cool.

They now also come with a slightly different motivation, now that they
can't directly threaten the crew for money. Psyker hunters now arrive
tasked with a dirty kidnapping job, payment rendered in GORE.
## Why It's Good For The Game

Psykers aren't up to the challenge of being pirates. They're bogged down
by a number of fundamental issues that render them unable to do anything
expected of pirates. As it currently stands, they present about as much
threat as you would expect from three blind junkies with guns.

Removing them wholesale would be kind of lame. They can function as a
bunch of chaotic-neutral gun-toting space-maniacs, but for the purposes
of gameplay, keeping them as pirates would be a waste of their talents.

Moving them to a lower-stakes role not only moves them to a niche they
are more capable of filling, but gives players a more lax environment to
get a grip on playing psyker without being overwhelmed.

Giving them a seeing-eye role should bring a more unique dynamic to how
psykers are played (that is, some semblance of organization rather than
blind flailing), and should help get over the mechanical hurdles of
being a psyker until better solutions can be made. It shouldn't be too
big of an impact on balance considering the psyker gang only has three
spawns, while most hunter packs have 4+.

* Demotes Psyker Pirates to Bounty Hunter Duty

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-05-06 17:34:31 +01:00
SkyratBot
fc1471c818 [MIRROR] Deadchat Announcement Variety Pack 1 [MDB IGNORE] (#20957)
* Deadchat Announcement Variety Pack 1 (#75140)

## About The Pull Request

Adds announce_to_ghosts()/notify_ghosts() calls to a bunch of different
things.

**THIS INCLUDES:**
- Powersink being activated/reaching critical (explosion) heat capacity.
- His Grace being awoken.
- Hot Potatoes being armed.
- Ascension Rituals being completed.
- Eyesnatcher victims.
- Ovens exploding as a result of the Aurora Caelus event.
- Wizard Imposter spawns.
- Rock-Paper-Scissors with death as the result of Helbital consumption.
- BSA impact sites.
- Spontaneous Appendicitis.
- The purchasing of a badass syndie balloon.
- The Supermatter beginning to delaminate.

This was everything that I could think of that would be worth announcing
to deadchat. These were all chosen with consideration to questions like
"how easy would it be to spam deadchat with this?" and "will observers
actually see the interesting thing happen, or just the aftermath?".

Not gonna lie, I've really become an observer main as of recently. Maybe
that's being reflected in my recent PRs. Who's to say? Deadchat
Announcement Variety Pack 2 will probably never come out. Sorry.
## Why It's Good For The Game

Gives deadchat a better indiciation of when/where something **REALLY
FUNNY** is about to happen. Draws attention to certain things that are
likely to gather an audience anyways, but sooner (for your viewing
pleasure). In simple terms, it helps the observers observe things
better.

Some cases, such as the aurora caelus or helbitaljanken, are occurrences
so rare that they deserve the audience.
## Changelog
🆑 Rhials
qol: Observers now recieve an alert when a powersink is activated/about
to explode.
qol: His Grace being awoken now alerts observers, to give you a
headstart on your murderbone ghost ring.
qol: Ascension Rituals being completed will also alert observers, for
basically the same reason.
qol: Arming a hot potato will now alert observers. Catch!
qol: Eyesnatcher victims will now notify observers, and invite them to
laugh at their state of misery and impotence.
qol: Observers will be notified of any acute references to The Simpsons
or other 20th Television America copyright properties.
qol: Wizard Imposter spawns alert observers, much like any other ghost
role event should.
qol: Playing Rock-Paper-Scissors with death will now alert the observers
and invite them to watch. Better not choke!
qol: Observers now get an orbit link for BSA impact sites. Why does it
keep teleporting me to the AI upload??
qol: Spontaneous Appendicitis now alerts deadchat.
qol: The purchasing of a badass syndie balloon now alerts deadchat. You
might not be any more powerful, but at least you have an audience.
qol: When beginning to delaminate, the Supermatter will alert observers
and invite them to watch the fireworks.
/🆑

* Deadchat Announcement Variety Pack 1

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-05-05 15:34:05 -07:00
SkyratBot
b44715db5d [MIRROR] ex_act() will work on basic mobs again (lol) + Unit Test [MDB IGNORE] (#20919)
* `ex_act()` will work on basic mobs again (lol) + Unit Test

* COnflict

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-03 22:51:49 +01:00
SkyratBot
c4d4e1da63 [MIRROR] Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. [MDB IGNORE] (#20916)
* Minerals have been refactored so costs and minerals in items are now in terms of mineral defines.

* AI GEN RUN ONE

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-03 22:48:10 +01:00
SkyratBot
f5e769dfcd [MIRROR] Fixes some miscapitalization of Nanotrasen [MDB IGNORE] (#20846)
* Fixes some miscapitalization of Nanotrasen  (#75026)

## About The Pull Request

Fixes #75019

Also fixes it in a drink, the ethereal lore, and some photocopier
paperwork.

And also adds "NanoTrasen" to common spelling mistakes

## Why It's Good For The Game

Nanotrasen is the correct capitalization
## Changelog
🆑
spellcheck: Fixed Nanotrasen being miscapitalized in traitor posters, a
drink, the ethereal lore, and some photocopier paperwork
/🆑

* Fixes some miscapitalization of Nanotrasen

* Fixes the linters

---------

Co-authored-by: BlueMemesauce <47338680+BlueMemesauce@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-05-03 01:35:18 +01:00
SkyratBot
96676cc94e [MIRROR] Gunpoints now take half a second to activate, make gasp sounds, and briefly immobilize the shooter and target, other small balance changes [MDB IGNORE] (#20882)
* Gunpoints now take half a second to activate, make gasp sounds, and briefly immobilize the shooter and target, other small balance changes (#74036)

## About The Pull Request
This PR messes around with gunpoints a bit, with the purpose of making
them more viable in certain scenarios without making them obnoxious. The
biggest change is that gunpoints now require a 0.5 second do_after()
where neither the shooter nor the target moves, and immobilizes both of
them for 0.75 seconds if point blank, or half that if you're 2 tiles
away. Originally you were supposed to only be able to initiate a
gunpoint from point-blank, but #56601 seems to have removed that
requirement, so we'll run with it and just leave it as advantageous to
gunpoint closer up. The do_after() reinforces that it should be used as
an ambush tactic, and so you can't use it on someone who's actively
fleeing or fighting you.

Getting held up will now make you emit a shocked gasp sound, a la Metal
Gear Solid, which combined with the short immobilize will hopefully make
it more noticeable that someone's pointing a gun at you.

Holdups will now immediately give a 25% bonus to damage and wounds,
instead of having to wait 2.5 seconds to hit the double damage stage.

Finally, right clicking someone that you're holding up will no longer
shoot them. That just feels like good consistency.

## Why It's Good For The Game
Hopefully makes gunpoints a little more viable for when you want to
stick someone who's not expecting it up without them immediately jetting
off. In the future I'd like to ape Baycode and let the gunman have an
action that toggles whether the victim is allowed to move, so you can
order them to move to a second location without instantly shooting them,
but that'll come later.
## Changelog
🆑 Ryll/Shaps
balance: Holding someone at gunpoint now requires both the shooter and
the victim to hold still for half a second before activating, so you
can't hold-up people fleeing or fighting you. After that, it will
briefly immobilize the both of you, 0.75 seconds if adjacent, or half
that if you're two tiles away. Nuke ops are immune to the
immobilization, since they're ready to die anyways.
balance: Holding someone up will immediately apply a 1.25x damage and
wound multiplier, rather than waiting 2.5 seconds to hit 2x.
soundadd: Being held up will now make the victim play a sharp gasp
sound, a la Metal Gear Solid.
qol: Trying to hold someone up that you're already holding up will no
longer shoot them.
/🆑

---------

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

* Gunpoints now take half a second to activate, make gasp sounds, and briefly immobilize the shooter and target, other small balance changes

---------

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-05-02 12:32:43 +01:00
SkyratBot
4cde250f54 [MIRROR] You can now close codex cicatrix in your hand. [MDB IGNORE] (#20855)
* You can now close codex cicatrix in your hand. (#74684)

## About The Pull Request
Fixes that you could spam open books.
Changed that toy version of codex cicatrix didn't have a proper
animation.
And you also can close it in your hand now.

Also fixed some minor typos.
## Why It's Good For The Game
Book looks like book now.
## Changelog
🆑
fix: You can't spam open codex cicatrix now.
qol: You can close codex cicatrix in your hand now! Also toy codex
cicatrix has proper animation now.
/🆑

* You can now close codex cicatrix in your hand.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-05-01 13:28:05 -07:00
SkyratBot
7028b1d32e [MIRROR] Converts Spiderlings from Structures to Basic Mobs [MDB IGNORE] (#20852)
* Converts Spiderlings from Structures to Basic Mobs (#75001)

If I could've made this more atomic, I would have in a heartbeat, trust
me.

## About The Pull Request

Hey there. People were mocking us for having spiderlings still be a
subtype of `/obj/structure`. I decided to take a lot of time to fix
that. A lot of behavior it was implementing was just pseudo-mob stuff,
so it was actually easier than it looked for the raw conversion. A lot
of the footwork on spider stuff in the basic framework was already done
previously by Jacquerel, so that was pretty nice.

However, there are two new things that weren't introduced in the code
that had to be put in.

A) A component to handle growth and differentiation into a mob. This may
have already existed, no clue. If it does (and it's NOT
evolutionary_leap), let me know.
B) AI Behavior to handle seeking out a vent, entering a vent, and then
exiting out of a different vent. I may have gone a bit wacky on the
code, but it certainly works as expected (spiderling goes in one vent,
exits the other). Let me know if you can think of a way it can be better
optimized, but it was deliberately written to be very failsafey in case
shit goes yonkers.

One fundamental difference between structure spiderlings and basic mob
spiderlings (beyond the AI and not just a random prob() check for
movement) is the fact that they had vent movement coded in... but we
_really_ don't need stuff like that for our intents and purposes. If the
range turns out to be too OP in the current framework, we can always
change it up a bit, but also there's a _lot_ of vents we can end up in
the station (my testing had one spiderling end up in the AI sat to get
obliterated).
## Why It's Good For The Game

Spiderlings aren't structures! They behave like a mob should! Players
can possess spiderlings! They work seamlessly with differentiating into
a giant spider! Better AI! More room for people to add into this very
under-utilized buggers!
## Changelog
🆑
refactor: Spiderlings are now basic mobs, report any complete
weirdness/deviation from known behavior. They should be a lot more
intelligent now though.
add: AI Spiderlings are super fragile, but they're also super fast,
especially when they get into a vent. Once they're in circulation, they
could end up everywhere! Maybe in the armory, maybe in a locked closet
in maintenance. Be sure to be vigilant and splat them whenever you can
to save the station from a whole lotta heartache!
/🆑

---------

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

* Converts Spiderlings from Structures to Basic Mobs

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-04-30 12:54:58 -07:00
SkyratBot
102748fc27 [MIRROR] Cosmic Ascension Balance Patch [MDB IGNORE] (#20808)
* Cosmic Ascension Balance Patch

* conflict

---------

Co-authored-by: Comxy <tijntensen@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-04-29 09:59:15 +01:00
SkyratBot
9c2e07ee7c [MIRROR] Miner Style Points 2: Style on Everyone [MDB IGNORE] (#20826)
* Miner Style Points 2: Style on Everyone (#74690)

## About The Pull Request
A re-open of https://github.com/tgstation/tgstation/pull/66326 with
Fikou's permission

Adds the style meter, it can be bought from the mining vendor for 1500
points, it is an attachment to your glasses.
The style meter creates a display on your hud, with your recent actions,
like attacking enemies, killing them, mining ore etc. Actions like
spinning or flipping increase your score multiplier, making you get more
points.
Your style meter affects how much ore you get from mining rocks. By
default with the meter, you get 20% less ore, but at the highest, you
can get 1.2x the ore from mining. In addition, on B-tier or above, you
can "hotswap" items, by attacking an item in your backpack with one in
your hand (should it fit and all that). Also features a leaderboard for
highest style point count!

New streamable: https://streamable.com/eewi6l

The following are sources of points:

- Killing things
- Killing big things
- Killing small things
- Punching things
- Melee'ing things
- Mining rocks and ores
- Having matrix traps detonate
- Hit, defuse, and detonate gibtonite
- Detonate crusher marks
- Scan geysers
- Parry projectiles (others or your own)

Oh, right. While wearing the style meter, you're able to parry any
lavaland-based projectile by clicking on it or the tile it is on, which
reflects it back in a 7 degree arc, making it 20% faster and 15% more
damaging. Usually not very easy.

Maybe-plan in the future for some syndicate variant of this (with bullet
parrying and appropriate style sources, etc.), but not for this PR

Thanks to Arcane, multitooling the style meter will make it play some
sounds on rank-up.

![image](https://user-images.githubusercontent.com/41448081/231605640-a01c2b60-1ba1-4390-8bea-0aa804ea1973.png)

https://streamable.com/nheaky

Parrying in action

## Why It's Good For The Game
Makes miners bring more ore in a fun way.

## Changelog
🆑 Fikou, Zonespace, Arcane for voicing
add: The mining vendor now has a style meter. This meter gauges your
style points and uses them to improve your ore yield.
/🆑

---------

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

* Miner Style Points 2: Style on Everyone

---------

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
2023-04-28 19:54:39 -07:00
SkyratBot
cdabf141f4 [MIRROR] Paradox clone no longer duplicates object. [MDB IGNORE] (#20811)
* Paradox clone no longer duplicates object. (#74989)

## About The Pull Request

Paradox clone no longer duplicates object, we instead try to copy as
much as possible over to a newly created human

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/74124
Closes https://github.com/tgstation/tgstation/issues/74122
Closes https://github.com/tgstation/tgstation/issues/73973
Closes https://github.com/tgstation/tgstation/issues/73972
Closes https://github.com/tgstation/tgstation/issues/72437 (hopefully)

## Changelog

🆑
fix: Paradox clones are now attempted manual copies of humans, rather
than straight-up copying everything. They should no longer have bugs
related to being unable to use UIs, having FOV, or visual bugs.
/🆑

* Paradox clone no longer duplicates object.

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-04-28 23:21:06 +01:00
SkyratBot
3753662bab [MIRROR] Changes speed of butchering for sickly blades to 3 seconds. [MDB IGNORE] (#20766)
Changes speed of butchering for sickly blades to 3 seconds.

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-04-26 23:22:27 +00:00
SkyratBot
e6f66d3a4a [MIRROR] Experiment with replacing weakrefs in AI blackboard with deleting signals, ideally making it easier to work with and harder to cause hard deletes [MDB IGNORE] (#20719)
* Experiment with replacing weakrefs in AI blackboard with deleting signals, ideally making it easier to work with and harder to cause hard deletes (#74791)

## About The Pull Request

Replaces weakref usage in AI blackboards with deleting signals

All blackboard var setting must go through setters rather than directly

## Why It's Good For The Game

This both makes it a ton easier to develop AI for, and also makes it
harder for hard deletes to sneak in, as has been seen with recent 515
prs showing hard deletes in AI blackboards

(To quantify "making it easier to develop AI", I found multiple bugs in
existing AI code due to the usage of weakrefs.)

I'm looking for `@ Jacquerel` `@ tralezab` 's opinions on the matter, also
maybe `@ LemonInTheDark` if they're interested

## Changelog

🆑 Melbert
refactor: Mob ai refactored once again
/🆑

* Experiment with replacing weakrefs in AI blackboard with deleting signals, ideally making it easier to work with and harder to cause hard deletes

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-04-26 21:17:15 +01:00
Tom
171e82aa17 Makes ash blade fireproof (#71767) (#20789)
Gives ash blade "resistance_flags = FIRE_PROOF"

Co-authored-by: SargesC <114319169+SargesC@users.noreply.github.com>
2023-04-26 10:43:16 -07:00
Tom
939abb15fe Heretic blades now do 20 damage instead of 17 (#68345) (#20790)
Heretic blades now do +3 damage
Heretic blades now have a 20% demolition modifier
Heretic blades now have 35% armor penetration

Co-authored-by: ANAME593 <85279840+ANAME593@users.noreply.github.com>
2023-04-26 08:15:14 -07:00
SkyratBot
dbc5abb1ec [MIRROR] Fixed final objectives appearing as skipped in the traitor panel [MDB IGNORE] (#20778)
* Fixed final objectives appearing as skipped in the traitor panel (#74956)

## About The Pull Request
Final objectives appear as skipped due to them setting the 'skipped'
variable on themselves to TRUE when failing all other objectives.
Also stops admins from unintentionally bugging the final objective by
failing/succeeding it whilst it is taken.

Closes #74929

## Why It's Good For The Game
Bugfix

## Changelog
🆑
fix: Fixed final objectives appearing as 'Skipped' in the traitor panel.
/🆑

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Fixed final objectives appearing as skipped in the traitor panel

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2023-04-26 15:08:26 +01:00
SkyratBot
1f56d7a7df [MIRROR] Non-random events now provide a cause in their deadchat broadcast [MDB IGNORE] (#20757)
* Non-random events now provide a cause in their deadchat broadcast

* Update _event.dm

* change proc

* Update _event.dm

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-04-25 18:44:12 -07:00
SkyratBot
020a596eb3 [MIRROR] Fixes some grammar issues with pirates [MDB IGNORE] (#20743)
* Fixes some grammar issues with pirates (#74937)

## About The Pull Request
Read title
## Why It's Good For The Game
## Changelog
🆑
spellcheck: Fixes grammar issues located in Pirates and item
descriptions related to the folder
/🆑

---------

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

* Fixes some grammar issues with pirates

---------

Co-authored-by: Rex9001 <120136161+Rex9001@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-04-24 23:39:57 +01:00
SkyratBot
55a2c15b3b [MIRROR] When failing to teleport with the veil shifter it tells you with text and sfx, and doesn't use up a charge. [MDB IGNORE] (#20730)
* When failing to teleport with the veil shifter it tells you with text and sfx, and doesn't use up a charge. (#74903)

## About The Pull Request

When failing to teleport with the veil shifter it tells you with text
and spooky ghost sfx, and doesn't use up a charge.

## Why It's Good For The Game

> When failing to teleport with the Veil Shifter, it makes no extraneous
effects, just says 'teleport failed!' and makes a noticeably different
spooky ghost noise.

Failing to teleport used to consume an use, make the teleport effects,
and overall act like you actually teleported. While I'm not smart enough
to find out why #74757 was caused at least I can do this as a little qol
for if it ever happens again.

## Changelog

🆑
qol: When failing to teleport with the veil shifter it tells you with
text and spooky ghost sfx, and doesn't use up a charge or have any
unintended vfx.
/🆑

* When failing to teleport with the veil shifter it tells you with text and sfx, and doesn't use up a charge.

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-04-23 21:49:34 -04:00
SkyratBot
8cb96fad58 [MIRROR] Fixes body purist headrevs from getting mad at their implant by making them unaware of it [MDB IGNORE] (#20616)
* Fixes body purist headrevs from getting mad at their implant by making them unaware of it

* Update surgery.dm

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-21 03:53:01 +01:00
SkyratBot
a126a7a27f [MIRROR] Adds admin alert for revs created through traitor panel [MDB IGNORE] (#20669)
* Adds admin alert for revs created through traitor panel (#74862)

## About The Pull Request

So like, using traitor panel to make revs doesn't work.

Revolutions live and die, currently, by the revolution ruleset datum
dynamic creates. It manages the hostile environment and also processes
to check whether either side should be winning or not.

This means that the revolutionary buttons in the traitor panel are kind
of noob-admin-bait. You press it for a funny revolution and then you
realize it's screwed when all the heads are dead and everyone's
stumbling around cluelessly

This has a proper solution, albeit somewhat difficult - separate out the
revolution from the ruleset, make admin spawned revs create a
revolution. I can do this but it's a lot of effort and this works in the
meanwhile

Pops up a TGUI alert when an admin presses "add revolutionary" in
traitor panel when there is no ongoing revolution. Simply enough, gives
them an alert that it will not work correctly. Lets them decide whether
they want to deal with that. (Because you can manually deal with it via
proc calls, if you've got code smarts.)

## Why It's Good For The Game

Stops admins from stumbling into the same trap without warning.

Can be removed in the future easily when revs are coded better.

## Changelog

🆑 Melbert
admin: Adds a warning that spawning revs via traitor panel will not
function as expected.
/🆑

* Adds admin alert for revs created through traitor panel

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-04-21 01:42:48 +01:00
SkyratBot
8b61a8e648 [MIRROR] Fixes runtime from pirate data tap EMPing research servers [MDB IGNORE] (#20672)
* Fixes runtime from pirate data tap EMPing research servers (#74851)

## About The Pull Request

`emp_act(null)` causes a runtime

![image](https://user-images.githubusercontent.com/51863163/233014843-0d95f7e7-c47c-43f5-ada3-6b6734fe4fc1.png)

## Changelog

🆑 Melbert
fix: Fixes a runtime with pirate Data Siphon while emp-ing the station's
rnd servers
/🆑

* Fixes runtime from pirate data tap EMPing research servers

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-04-21 01:42:17 +01:00