Commit Graph

15701 Commits

Author SHA1 Message Date
SkyratBot
27e7e46af7 [MIRROR] Paradox clones copy the voice. (#28013)
* Paradox clones copy the voice. (#83729)

## About The Pull Request
I have no idea if this works because I didn't setup TTS to test, but
it's simple. Makes paradox clones use the victim's voice.
## Why It's Good For The Game
Closes #81450

Because it doesn't make sense for a clone to have a different voice.
## Changelog
🆑
fix: Fixes paradox clones using a different voice from the owner.
/🆑

* Paradox clones copy the voice.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2024-06-06 18:23:13 +05:30
SkyratBot
3cc14bdc75 [MIRROR] Mutadone restores your original monkey status (#28010)
* Mutadone restores your original monkey status (#83720)

## About The Pull Request

Before PR:
Giving mutadone to a monkey turns it into a human
Giving mutadone to a human does nothing about its human status

After PR:
Giving mutadone to a monkey created from a monkey cube does nothing
about its monkey status
Giving mutadone to a monkey which was originally a human restores it to
being a human
Giving mutadone to a human who has never been a monkey does nothing
about its human status
Giving mutadone to a human who was originally a monkey returns it to
being a monkey

I couldn't think of any better way to achieve this than putting a trait
on the monkey typepath but if anyone has one, I'd love to hear it
(actually, maybe I could just typecheck the mob... but that seems
equally gross)

## Why It's Good For The Game

Treating "being a monkey" as a mutation makes sense from the perspective
of the DNA console but not from the perspective of certain other game
mechanics.
A chemical which "removes all mutations" should _intuitively_ restore
people to the state they were in at the start of the round (so monkeys
turned into humans should return to monkey, and vice versa) rather than
unilaterally enact rapid evolution upon monkeys.
At least, I don't _think_ it's meant to be a lore implication that all
test apes on the station are transformed humans...

This has a couple of side effects, both of which I think are desirable.

Firstly- some mechanics work on humans but not monkeys (see #83698), and
can be circumvented by spraying mutadone gas into a monkey pen. This
will now only be achievable by individually mutating each monkey, which
requires more effort for whatever your desired result is.
Secondly- this adds a downside to the common "cure-all" surgical method
of turning a monkey into a human and transplanting a brain into it. This
new body will still genetically remember being a monkey, adding some
element of risk to this otherwise undramatic means of curing basically
any ailment in the game.
Thirdly- Some people have admitted to using mutadoned monkeys to create
a large number of humans to kill for Heretic and Changeling progression,
which I also don't want them to do, so making this take longer is a
positive.

## Changelog

🆑
balance: Mutadone restores your originally monkey status, rather than
always turning monkeys into humans
/🆑

* Mutadone restores your original monkey status

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-06-06 18:22:18 +05:30
SkyratBot
0f2aad9e2f [MIRROR] basic honkbots (#28007)
* basic honkbots (#81920)

## About The Pull Request
this refactors honkbots into basic mobs. its mostly a faithful 1:1
refactor but i couldnt keep my hands to myselves so i gave them some new
behaviors.

honkbots now love playing with clowns, they will go seek out for clowns
and celebrate around them. also, if the honkbot finds a banana peel or a
slippery item near it, it will actively drag people onto them

honkbots will now go out of theirway to mess with secbots and annoy them

## Why It's Good For The Game
refactors hinkbots into basic bots and also undoes some of the silliness
i did in the previous basic bot prs. i also added lazylist support to
remove_thing_from_list.

## Changelog
🆑
refactor: honkbots are now basic mobs, please report any bugs
add: honkbots will try to slip people on banana peels
/🆑

* basic honkbots

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
2024-06-06 18:22:01 +05:30
SkyratBot
b86cde0521 [MIRROR] Sentient mobs can slowly subtract slime stacks by shaking (#28006)
* Sentient mobs can slowly subtract slime stacks by shaking (#83471)

## About The Pull Request

Closes #82746
PR #77569 replaced the clone damage inflicted by slimes with a lingering
damage over time effect which can be removed with water.
This is all well and good for humans who can spray themselves with fire
extinguishers, showers, or sinks... but most other mobs are not actually
capable of opearating any form of equipment which can make them wet.

This PR allows you to click on the debuff icon to shake the slime off
slowly over time (15 seconds to fully remove the debuff).
This is slower than the recovery time when wet.

Dogs, Cats, and by extension, Felinids are better at removing slime
because of their self-cleaning prowess (they're always licking weird
stuff off themselves). This is rarely helpful if you're not a Felinid,
because almost all cats and dogs have so little health that they will
hit the minimum health threshold and lose the debuff anyway by the time
they would be done.
In the very niche circumstance that a sentient wolf is attacked by a
slime they will appreciate this bonus.

## Why It's Good For The Game

This was a replacement for slimes inflicting clone damage (I am not sure
this even did anything for most simple mobs?) but essentially turned
slimes into an automatic death sentence for most forms of mob without
hands.
Technically the slime debuff cannot kill you and stops if you are under
10 HP, but this is small consolation for most of these mobs which cannot
heal themselves either.

You are still probably going to take between 30-60 damage during the 15
seconds of removing slime from your body.

## Changelog

🆑
balance: Corrosive slime left behind after a slime fails to eat you can
be scraped off with your hands, or shaken off in some other way, by
clicking on the debuff. This is slower and less effective than washing
it off using water.
/🆑

* Sentient mobs can slowly subtract slime stacks by shaking

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-06-06 18:21:50 +05:30
SkyratBot
b9612d5763 [MIRROR] Legioned Monkeys create different mobs (#28002)
* Legioned Monkeys create different mobs (#83698)

## About The Pull Request

![image](https://github.com/tgstation/tgstation/assets/7483112/e25b360a-3cb2-4150-998c-c1293e917b68)

A Monkey infested by a Legion will spawn a "Rabble" instead of a
"Legion".
This is a somewhat slow 40 HP mob which tries to melee attack nearby
people.
Its only real claim to excitement is that it can and will ventcrawl if
it has nobody to attack.

## Why It's Good For The Game

Apparently people are creating large amounts of monkeys using monkey
cubes and then using the Legion's infestation mechanic to transform them
into large groups of much more dangerous mobs.
This is funny and creative but probably shouldn't be as effective as it
is.
Replacing Legion Monkeys with this mob will still create a mob of...
mobs, but they won't self-perpetuate in the same way.

## Changelog

🆑
add: A unique kind of mob is created when a Monkey is infested by a
Legion.
/🆑

* Legioned Monkeys create different mobs

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-06-06 18:20:24 +05:30
SkyratBot
555c4b8cde [MIRROR] Minor Spider Rebalance (#27979)
* Minor Spider Rebalance (#83554)

## About The Pull Request
Breacher and Viper player-controlled Spiders have swapped castes; Vipers
now come from Abnormal Eggs, while Breachers will now come from Enriched
Eggs. This means that Vipers may be seen more, while Breachers require
the Nest to acquire at least a single kill to wrap and create an
Enriched Egg from. Nurse Spiders also perform their heal action much
faster, at the cost of a bit less healing. It was very difficult to heal
others due to the long do_after and thus we saw very few Nurse Spiders.

Breacher Spiders also are now NOT immune to cold, and will die if they
try to space a room or go into space.

## Why It's Good For The Game
Breacher Spiders are in kind of a difficult spot, both in theming and
balance; their space resistance made them able to vent the station in
multiple places by breaking key walls, and they had no need to commit to
their sieges because they could escape into space at all times. It also
broke part of the dynamic of Spiders wanting to keep the atmosphere in
the station, and disincentivizing Breachers from venting the station
also makes them more coherently a part of the Nest because they won't
reduce the Nest's habitable area.

Viper Spiders were seen quite little instead of the other options in the
Enriched Egg; now, hopefully we'll see more. Likewise, the Breacher is
quite powerful for being an Abnormal Egg, so perhaps now we'll see more
focus on cocooning to unlock the powerful Breachers, or just overall
less of them, which will help even the odds.

Nurse Spiders were VERY underutilized despite their power— the do_after
for their healing just felt obnoxiously long, and especially in tense
situations, you'd have shuffle and Spiders yelling at one another
because two of them have to Space Hulk the hallway for a semi-extended
period of time. Now, Nurses will be able to heal and move on a bit
faster. I don't believe this will create too many issues, balance-wise,
as the time-to-kill on Spiders is still quite low for all but the
tankiest against lasers and even welders.
## Changelog
🆑 Jane
balance: Spider Breachers and Vipers have swapped castes. Breachers come
from Enriched Eggs while Vipers come from Abnormals! Breachers can no
longer survive in spaced rooms/temperatures. The Nurse wraps wounds
faster, but with less damage healed per wrap.
/🆑

* Minor Spider Rebalance

---------

Co-authored-by: DrAmazing343 <147954468+DrAmazing343@users.noreply.github.com>
2024-06-04 14:37:14 +02:00
SkyratBot
cef982d403 [MIRROR] Adds Crutches to Medbay & Crafting (#27959)
* Adds Crutches to Medbay & Crafting (#83242)

## About The Pull Request

Added crutches! Wooden ones can be made with wood. Medical ones can be
bought from the medvendor.

Crutches will reduce slowdown from missing a leg by 60%, and they will
remove the limping from fractured bones. They're also a fairly decent
bludgeon. However, they do nothing if both legs are cut off. Canes now
also remove broken bone limping as well

Changed the 'white cane' name to 'probing cane' to better reflect its
function.

Shuffled some wound and mob code around, added signals for limbless
slowdown and limping.

Crutches make you waddle.

SPRITES BY XHORIAN!!!!!!!!!!!!!

![image](https://github.com/tgstation/tgstation/assets/53100513/fe7e5ac8-0e6e-4291-ae64-c96632997607)

![image](https://github.com/tgstation/tgstation/assets/53100513/bde7fd7a-38d4-4036-82f2-01bdb8a6f00b)

![image](https://github.com/tgstation/tgstation/assets/53100513/9d94bc8d-5a80-4199-a044-7c5cf1944f99)

![image](https://github.com/tgstation/tgstation/assets/53100513/b26ecf53-177a-400d-aa5a-f2c0d5560942)

## Why It's Good For The Game

> Added crutches! Wooden ones can be made with wood. Medical ones can be
bought from the medvendor.

> Crutches will reduce slowdown from missing a leg by 60%, and they will
remove the limping from broken bones. They're also a fairly decent
bludgeon. However, they do nothing if both legs are cut off.

Currently there's no way to abate slowdown from a missing leg except
getting on a vehicle, which I think is pretty lame. What if all the
doctors are busy, missing, or dead? What if medbay is a hole? A crutch
helps make up for the loss at the cost of a hand slot.

> Changed the 'white cane' name to 'probing cane' to better reflect its
function.

'White cane' was undescriptive.

> Shuffled some wound and mob code around, added signals for limbless
slowdown and limping.

I dont know where to put the friggin signals

## Changelog

🆑
Carlarc, Xhorian
add: Added crutches! Wooden ones can be made with wood. Medical ones can
be bought from the medvendor.
add: Crutches will reduce slowdown from missing a leg by 60%, and they
will remove the limping from fractured bones. (canes do that now too)
They're also a fairly decent bludgeon. However, they do nothing if both
legs are cut off.
/🆑

---------

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

* Adds Crutches to Medbay & Crafting

* This should do the trick

* Missed one

* fix

---------

Co-authored-by: carlarctg <53100513+carlarctg@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: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-06-02 19:18:12 +02:00
SkyratBot
f591dd3bd3 [MIRROR] Gondolas are now basic mobs (#27934)
* Gondolas are now basic mobs (#83451)

## About The Pull Request

This PR turns gondolas into basic mobs and does some fiddling with
gondola pods
Their verbs are now action buttons which they lose upon delivering. If
set to stay, they won't have their abilities afterwards (or wont get
them in the first place if the delivery is already done).
Lets them survive without a pod requirement in case admins want to spawn
one for their own stuff, so I also removed it from the snowflake checks
to exclude them from stuff.

Also replaced the hardcoded "cant speak" with simply giving the mute
trait, so admins can make gondolas speak if they want to for any reason.

## Why It's Good For The Game

The pet level of simple animals can finally be killed off, also gives
admins more control over gondola-related stuff if they so wish.

## Changelog

🆑
refactor: Gondolas (including gondola pods) are now basic mobs.
/🆑

---------

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

* Well then. Hope it works.

* Ohhh.

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-06-02 17:37:45 +02:00
SkyratBot
2b4e9d5391 [MIRROR] Cuffed people can sign (to a limited degree), signing tone emotes improvement (#27965)
* Cuffed people can sign (to a limited degree), signing tone emotes improvement (#83501)

## About The Pull Request

Currently, if you handcuff someone and they only have sign language
available to speak in (mute, no tongue, nearby people are deaf, you have
bronchitis(?)), they are rendered totally unable to communicate with
anything but emotes. This is stifling to trying to roleplay with nearby
people who want to keep you cuffed for whatever reason (security,
antagonists, weirdos who keep hugging you, etc).

So instead, I've made it so that if you use sign language while
handcuffed, you are still able to sign, but to a much more limited
degree (3 - 5 words per message).

If you're put in a straightjacket, you're still totally unable to use
sign language.

Additionally, I spruced up the messages that sign language uses to
signify tone (?, !) and added one for EXCLAIMED QUESTIONS?! I also made
the emotes work as emotes, rather than the small (easily missable)
messages in the chat box. These emotes will not fire if you sign with
tone while cuffed, to avoid you becoming a spam machine.
## Why It's Good For The Game

It lets cuffed sign language users communicate, which is usually a
pretty good thing when it comes to improving a scene for both them and
the people they're playing with.

It improves the descriptiveness of the inquisitive and exclamatory tone
messaging for sign language users, and also adds one for a combination
of the two tones.
## Changelog
🆑
qol: Sign language users can now sign in cuffs, but to a very limited
degree. They also have more descriptive emotes for questions,
exclamations, and a combination of the two.
/🆑

---------

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

* Cuffed people can sign (to a limited degree), signing tone emotes improvement

---------

Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2024-06-02 04:01:59 +02:00
SkyratBot
36bc0c91fa [MIRROR] fix: allow giant spiders aggressively grab again (#27953)
* fix: allow giant spiders aggressively grab again (#83531)

## About The Pull Request

Remove check that restricted non-carbon mobs from upgrading grab, using
`max_grab` instead which exists for this purpose
All mobs now have `max_grab` set to `GRAB_PASSIVE` by default, overrided
where required.
Giant spiders can now agressively grab, which makes `ambush` spider
playable again (i hope).

closes #83485

## Why It's Good For The Game

Ambush spider works as intended, as it has `STRONG_GRABBER` trait, but
effectively it didn't work, as spiders couldn't grab agressively.

## Changelog

🆑
fix: ambush spider (should instantly agressive grab) and other giant
spiders can now agressively grab
/🆑

* fix: allow giant spiders aggressively grab again

---------

Co-authored-by: Gaxeer <44334376+Gaxeer@users.noreply.github.com>
2024-06-02 03:16:25 +02:00
SkyratBot
89ef2ab0e7 [MIRROR] Fix not being able to stop looking vertically (#27952)
* Fix not being able to stop looking vertically (#83503)

## About The Pull Request
This fixes a bug with the look down/up verbs where you are not able to
*stop* looking unless you're on a tile where you're able to *start*
looking.

## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/16826524/6cafddbb-2f52-47d5-839e-dfac1595521d)

## Changelog
🆑
fix: you are now able to cancel the look up/down verbs from anywhere
/🆑

* Fix not being able to stop looking vertically

---------

Co-authored-by: Echriser <EthanSC2001@outlook.com>
2024-06-02 03:06:27 +02:00
SkyratBot
2269db746f [MIRROR] Makes disease airborne spread more realistic (#27950)
* Makes disease airborne spread more realistic (#83423)

## About The Pull Request

1. Rather than checking every life tick to try to spread via air, it
checks every breath tick. IE, every 8 seconds.
2. Wearing a mask now protects you from catching airborne diseases,
rather than only protecting you from spreading it.
3. Wearing a mask is no longer guaranteed effective (unless on
internals), it now scales based on BIO armor. This is doubly effectively
for people wearing a mask to stop spreading to others vs wearing a mask
to block spreading to them.

## Why It's Good For The Game

Wearing any kind of mask means airborne viruses will never spread, but
also wearing any kind of mask on the opposite end is pointless unless on
internals. Kinda silly.

This PR unifies those behaviors. Wearing a mask to stop spread is still
rewarded, as BIO armor is doubly effective at stopping a spread attempt
as blocking a spread attempt.

Ultimately the goal of this is to give players a realistic way to
protect themselves against airborne transmission vectors besides staying
on internals 100% of the time.

## Changelog

🆑 Melbert
balance: Wearing a mask can now prevent you from being spread airborne
diseases. Prior, it only stopped you from spreading it yourself.
balance: Wearing a mask no longer 100% guarantees you don't spread
viruses to others people - it now scales on the masks BIO armor. Get a
sterile mask from Medical for max safety.
balance: Wearing a mask to stop you from spreading to other people is
doubly effective than wearing a mask to prevent spread to yourself -
Mask up for the greater good!
balance: Passive airborne virus spread attempts are now done every time
you breathe (every eight seconds), rather than every two seconds. The
chance of spread is the same, though - it has been scaled up to
accommodate.
code: Cleaned up a fair bid of airborne-transmission-code. Report any
oddities.
/🆑

* Makes disease airborne spread more realistic

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-06-02 03:06:06 +02:00
SkyratBot
66e3f7c8ad [MIRROR] Restrict AI floor bolt external manipulation (#27947)
* Restrict AI floor bolt external manipulation (#83463)

## About The Pull Request

My delayed reaction to #68451

**When an AI is alive, on main power, and not SSD its bolts cannot be
raised or lowered externally thus returning some small amount of
autonomy to everyone's favorite brain in a box.**

I tested to be sure this change does not interfere with (de)construction
or other tool actions besides their "must be anchored" requirements.
Should maintainers wish I can adjust the check to allow external
lowering, but not raising, of the bolts anytime to satisfy those
scenarios.

I decided to include "is on backup power (incapacitated)" in the check
as a middle ground so when moving an AI from a bombed sat or the like
anyone who is now used to being able to wrench for a rescue is not
caught off guard since AI gets a harsh penalty for moving bolts on
backup power (most likely overlooked in the original PR). This also
means if you really want to move an active AI Core against its will you
still have a path forward aside from _convincing_ the AI to raise them
voluntarily.

## Why It's Good For The Game

IMO this sort of check should have been included in the original
changes, or at least made to post the anchor status message to the AI's
chat rather than a balloon they are likely to miss. An incapacitated AI
is much more likely to be watching their core.

In the grand scheme this changes very little for anyone out to get an AI
since they will most likely just card or smash it to death anyway. It's
mostly just good for a little silicon piece of mind.

## Changelog
🆑
balance: When an AI is alive, on main power, and not SSD its bolts
cannot be raised or lowered externally.
/🆑

* Restrict AI floor bolt external manipulation

---------

Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
2024-06-02 02:58:14 +02:00
SkyratBot
625c9d9b00 [MIRROR] projectile dismemberment respects limb dismemberability (#27946)
* projectile dismemberment respects limb dismemberability (#83479)

## About The Pull Request

projectile dismemberment respects limb dismemberability
## Why It's Good For The Game

bug bad

## Changelog
🆑
balance: you may not decap people with a plasma cutter
/🆑

* projectile dismemberment respects limb dismemberability

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
2024-06-02 02:57:28 +02:00
SkyratBot
7d8d5ebeee [MIRROR] Remove a bunch of unnecessary periods from photo descriptions containing living entities. (#27943)
* Remove a bunch of unnecessary periods from photo descriptions containing living entities. (#83564)

## About The Pull Request

Looking at a picture I noticed the description was a bit off, so I did
some testing:

![image](https://github.com/tgstation/tgstation/assets/42909981/828664eb-d619-4000-8fcf-a847b8746556)
Lo and behold, wow it really does just slap periods on everywhere huh?

So I just went through the code for getting mob photo descriptions and
shuffled around where and when the periods are placed til it no longer
did that:

![image](https://github.com/tgstation/tgstation/assets/42909981/ed926ea6-5d4e-42d7-ab49-a9c6fd517bb1)
Also replaced a single letter variable while I was at it.

### EDIT:
Also added newlines between them, for good measure.

![image](https://github.com/tgstation/tgstation/assets/42909981/814b778b-6aac-4e9a-be90-8a2ed78fed08)

## Why It's Good For The Game

Think it's better for there to not be excess periods. ..

### EDIT:
The added newlines also make it, well, more readable.

## Changelog
🆑
spellcheck: Photo descriptions containing living entities no longer have
a pile of unnecessary periods. .. Which they used to have between
describing different entities. .. Also removed that additional space
they had too sometimes..
qol: Photo descriptions containing living entities have these
sub-descriptions split into newlines for ease of reading.
/🆑

* Remove a bunch of unnecessary periods from photo descriptions containing living entities.

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
2024-06-02 02:52:16 +02:00
Waterpig
118f2d9dab Stops janiborgs from killing the machinery subsystem by charging light replacers 200000 times a charge tick (#83624)
## About The Pull Request

So, with the somewhat-recent power changes, cells now have a shitton of
charge compared to the old one.

Now, recently, the `model.respawn_consumable` call in
`/mob/living/silicon/robot/proc/charge` was changed to use this
variable, so every time you had a borg inside a charger, it would
constantly drain 0.5% of its cell charge, and use it for the light
replacer charge calculation.

### The light replacer

So, we now have about 200000 as the charge coefficient on bluespace
cells. On code that was made back for 1000 charge in like 2012 according
to the gitblame. Slight issue: **There's a fucking for loop looping
200000 times every time we charge**, calling
`/obj/item/lightreplacer/proc/Charge` every time it loops. It has no
break condition, so it does this every machinery tick. This, with a
single janiborg with a blue cell kills the machinery subsystem and
causes a hell of a lot of overtime, and a hilarious profiler log:

![image](https://github.com/tgstation/tgstation/assets/49160555/92726216-3bc3-4504-ab69-a2f2adf954f8)

### The fix

Simply not make the light replacer calculation loop like this and just
use division and a modulo, like a normal sensible coder, plus adjust it
to the new cell values.

See the profiler log now:

![image](https://github.com/tgstation/tgstation/assets/49160555/d909de18-f0a2-4172-ae8d-98f2641bcc89)

## Why It's Good For The Game

It fixes a potentially game killing bug. A FUCK moment to be sure

## Warning for upstreams

_Looks at Nova and Skyrat_ check your Charge() proc usages, I know you
have at least one extra hit for it.

## Changelog

🆑
fix: Fixes janitor borgs killing the machinery subsystem by charging
light replacers 200k times a tick.
/🆑
2024-06-01 05:14:17 -04:00
SpaceLoveSs13
ef7e5f10fe Merge pull request #27930 from Skyrat-SS13/upstream-merge-83482
[MIRROR] Fixes Minebots ordered through cargo being stuck in idle mode
2024-06-01 11:12:06 +05:30
SpaceLoveSs13
14da50719a Merge pull request #27920 from Skyrat-SS13/upstream-merge-83309
[MIRROR] Increases move resistance on NODE Drones, adds handling for when the drone is seperated from the node
2024-06-01 11:09:45 +05:30
zxaber
5c3e0d006b Fixes Minebots ordered through cargo being stuck in idle mode (#83482)
## About The Pull Request
- Presumably due to being spawned off-station on (I believe) the
centcomm Z-level, Minebots ordered via points and that are delivered by
the shuttle are stuck with their AI in the idle state. Rather than
override a bunch of base-level AI code, I made clicking on them set
their status to active. Right-clicking will set this without opening the
bot's UI, while left-clicking will do both. Examine text now gives users
a hint about this.

- Removed text about feeding the mining bot ore to befriend it, as this
functionality was removed in an earlier PR.
## Why It's Good For The Game
Bugfix.
## Changelog
🆑
fix: Minebots purchased via mining points are no longer stuck in idle
mode. Clicking on them will activate their AI.
spellcheck: Removed the examine text about feeding ore to minebots; this
functionality was removed already.
/🆑
2024-05-31 13:52:02 -04:00
Rhials
9cc4194409 Increases move resistance on NODE Drones, adds handling for when the drone is seperated from the node (#83309)
## About The Pull Request

NODE Drones now have higher move resistance
(MOVE_FORCE_EXTREMELY_STRONG), preventing them from being bumped off the
node, pulled away, or lifted away by a fulton extraction kit.

As an extra layer of assurance, the NODE Drone will depart from the site
if it is moved off of its vent.

## Why It's Good For The Game

Closes #83164.

I'm pretty sure these things shouldn't really be ever moving off of
their vents.
## Changelog
🆑 Rhials
fix: You can no longer force NODE Drones off of ore vents. That includes
using fulton packs!
fix: When a NODE Drone is forcibly separated from its vent, it will fly
away.
/🆑
2024-05-30 08:20:16 -04:00
san7890
f9dcaa536e Replaces move_on_shuttle with a trait (#83550)
## About The Pull Request

`move_on_shuttle` was a variable that existed on `/mob` despite only
ever being used by cameras. This PR downgrades the variable to only
exist on `/mob/camera` types, but have the only thing that variable do
is add a trait that blocks movement on shuttles if not allowed. This
allows us to check the variable without casting to camera, which is what
some code was un-necessarily doing. This also retainst the ability to
add the trait later on to different mobs who we may not want to be on
shuttles that aren't `/mob/camera`.
## Why It's Good For The Game

There's no point for this variable to live on `/mob` if all it can do is
clog up the VV screen, especially if the current utilization for it is
only cameras. Let's move it off `/mob` and turn it into a trait so it
still has the similar utilization on a global level without typecasting
- as well as make it actually work since needless typecasting was
introducing a minor bug
## Changelog
Irrelevant.

---------

Co-authored-by: Time-Green <7501474+Time-Green@ users.noreply.github.com>
2024-05-30 02:57:39 -04:00
Time-Green
ddd49179c1 Log trauma gain and loss (#83519) 2024-05-29 02:29:26 -04:00
SkyratBot
e229fa010f [MIRROR] Wendigo Mob Abilities (#27872)
* Wendigo Mob Abilities (#83325)

## About The Pull Request

Converts wendigo's abilities into mob abilities, behavior should be
almost identical to how it was before. Also gave megafauna the same
night vision as normal lavaland mobs since controlling them and being
unable to see was difficult while testing. Wendigo's scream and slam
were made into global procs so they could be used across these
abilities, but if there's a better way to do that I'm open to it.

## Why It's Good For The Game

More refactoring to make way for converting these all to basic
megafauna.

## Changelog

🆑
refactor: Wendigos abilities have been changed into actions that can be
added to any mob.
/🆑

* Wendigo Mob Abilities

---------

Co-authored-by: Whoneedspacee <yougotreallyowned@gmail.com>
2024-05-28 05:11:31 +02:00
SkyratBot
b76bc59957 [MIRROR] Vines can't pull anchored objects, can pull you off tables (#27867)
* Vines can't pull anchored objects, can pull you off tables (#83410)

## About The Pull Request

Fixes #83072 by preventing the ability from targeting anchored atoms.
Also fixes the logic to only check for obstacles interposed between us
and the target, not ones sharing the tile.

## Why It's Good For The Game

This is how the ability was already supposed to work

## Changelog

🆑
fix: Venus Man Traps cannot use vines to drag around machines or objects
that are bolted, welded, rooted to, or otherwise are part of the ground
fix: Standing on a table will not prevent you from being grappled by a
Venus Man Trap
/🆑

* Vines can't pull anchored objects, can pull you off tables

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-05-28 05:07:58 +02:00
SkyratBot
7fa267aca3 [MIRROR] Deletes handle_random_events, saving us from 1 whole proc call in Life (#27864)
* Deletes `handle_random_events`, saving us from 1 whole proc call in `Life` (#83421)

## About The Pull Request

Dumps `handle_random_events` in the bin, giving us one less proc in
`Life`, that's a free proc call optimization baby.

Replaces its only implementation with a status effect conditionally
applied when gaining / losing tox dam.

## Changelog

🆑 Melbert
refactor: Refactored the way high toxins cause you to vomit.
/🆑

* Deletes `handle_random_events`, saving us from 1 whole proc call in `Life`

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-05-26 23:15:36 +02:00
SkyratBot
9df7771eab [MIRROR] Removes miasma and gibs diseases (#27863)
* Removes miasma and gibs diseases (#83455)

## About The Pull Request
Removes miasma generating random viruses (in two locations for some
reason)
Also removes diseases being generated by gibs, which is responsible for
a lot of disease spam

## Why It's Good For The Game
New diseases are spread through events and virology (and some other
minor sources). Miasma and gibs are a source of random viruses that
dilutes player response to diseases. It's frankly exhausting curing the
disease outbreak, just to see 10 others pop-up. Hopefully we can reduce
the madness a bit and place more focus on individual diseases

## Changelog
🆑
del: Miasma and gibs no longer generates random diseases
/🆑

Something like lung rot could be cool though, but out of scope for the
current PR

* Removes miasma and gibs diseases

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
2024-05-26 23:15:02 +02:00
SkyratBot
630b3705b6 [MIRROR] minor raptor tweaks (#27845)
* minor raptor tweaks (#83407)

## About The Pull Request
i think i made these a bit too strong, this hopefully balances them out
a bit. they were initially accidentally given alot of armor against
ranged attacks, this is now removed. also ive reduced their base hp by a
bit. im open to other suggestions and feedback

## Why It's Good For The Game
they were stronger than i intended. this keeps their usefulness for
battling tendrils, or ore vents but also prevents using them to cheese
several megafauna

## Changelog
🆑
balance: you can now polymorph into raptors
balance: raptors overall have less health and no longer have armor
against ranged attacks
/🆑

* minor raptor tweaks

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
2024-05-25 20:59:58 +02:00
SkyratBot
61ec10c3e0 [MIRROR] grep's for "recieve" typos (#27826)
* grep's for "recieve" typos (#83369)

Just spellchecking some common mistakes.

* Missed these.

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-05-23 23:38:14 +02:00
SkyratBot
abcd2a4403 [MIRROR] Fix species var/hair_color not being used for, well, hair color (#27016)
* Fix species `var/hair_color` not being used for, well, hair color

* Update jellypeople.dm

* Update mushpeople.dm

* Fixing pr

* Fixed screenshots

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-05-23 21:32:21 +02:00
SpaceLoveSs13
f47c7dc815 Merge pull request #27828 from Skyrat-SS13/upstream-merge-83146
[MIRROR] adds a new fish to lava and plasma rivers
2024-05-23 23:05:46 +05:30
SpaceLoveSs13
e7aaf463c2 Merge pull request #27822 from Skyrat-SS13/upstream-merge-83384
[MIRROR] jps movement can read accesses from the access component
2024-05-23 22:58:55 +05:30
SpaceLoveSs13
5cfad9601d Merge pull request #27821 from Skyrat-SS13/upstream-merge-83267
[MIRROR] Legion mob nerfs
2024-05-23 22:58:45 +05:30
SpaceLoveSs13
b817404a26 Merge pull request #27363 from Skyrat-SS13/upstream-merge-82672
[MIRROR] Fix height settings double-applying offsets / some human icon gen cleanup I guess
2024-05-23 22:18:19 +05:30
NullDagaf
0479ed8980 Merge branch 'master' into bubber_smelly 2024-05-23 16:06:33 +00:00
NullFag
87d4b85204 Merge branch 'master' into bubber_smelly 2024-05-23 17:59:52 +02:00
SpaceLoveSs13
f70b18e3f8 Update _species.dm 2024-05-23 18:10:47 +05:30
SpaceLoveSs13
a5429e8fb4 Merge branch 'master' into upstream-merge-82672 2024-05-23 17:15:26 +05:30
Ben10Omintrix
2ecff6862d adds a new fish to lava and plasma rivers (#83146)
## About The Pull Request
this pr adds a new fish to lavaland and icebox, the lavaloop! i noticed
neither has any exclusive fish so im trying to add one of my own. u can
find this fish by using reinforced rods on lava or plasmarivers. this
fish is also lobstrosity's favorite delicacy as you will now often see
AI controlled lobstrosities fishing for it in lava and then eating it.

![fished](https://github.com/tgstation/tgstation/assets/138636438/03cd4095-940d-4cc0-8d1e-2064cae1921d)

because of its body's curvature and razor sharp spikes, this fish can
also be used as a make-shift boomerang weapon against mining mobs,
although it comes with some new mechanics. u can increase the damage it
does to mobs by winding up ur throw. when the bar reaches purple, this
indicates maximum damage. however, if it goes over the purple, it will
react violently and explode your arm off, so you have to time it just
right to get the best damage possible. On icebox, instead of dealing raw
damage, fish will freeze mobs depending on how long you charged ur
throw. charging it for too long will cause the fish to freeze you
instead

https://github.com/tgstation/tgstation/assets/138636438/c8ac3696-3705-45b0-bc43-c5b81d75cb1b

while its nowhere near as effective as using PKA's or crushers, it can
be a useful tool for hermits and ashwalkers.
## Why It's Good For The Game
having lobstrosities fish and hunt for it makes lavaland feel more like
an ecosystem with a food chain. also i think tossing fish at eldritch
horrors is a funny way to fight them

## Changelog
🆑
add: adds a new fish to lava and plasma rivers, the lava loop
/🆑
2024-05-23 01:14:52 -04:00
vinylspiders
ae3a8acb8e * Turns mush cap into an extorgan
* Trimming the fat

* Trimming the fat

* Update mushpeople.dm

* Adds colorblindness as a mild brain trauma (#76527)

What the title says.
The brain trauma makes the whole screen monochrome until cured.

![image](https://github.com/tgstation/tgstation/assets/82850673/442d24a8-6625-454c-bc28-64b786b03f49)

I feel like the current pool for mild brain traumas is quite lame, this
helps spice it up a bit with something that is quite annoying and
distracting but not game breaking (as mild brain traumas should
generally be).

🆑
add: Added colorblindness as a mild brain trauma.
/🆑

---------

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

* Fix species `var/hair_color` not being used for, well, hair color (#82168)

`var/hair_color` for species was intended to be used as a "this species
uses this type of hair color thing"

But at some point that got completely lost and now it's only used for
sprite accessories

This fixes that. That means Slimepeople now have properly slimey hair.
And Ethereals are less snowflake once more.

🆑 Melbert
fix: Fixed Slimepeople's hair not matching their slimey colors.
/🆑

* Revert "Fix species `var/hair_color` not being used for, well, hair color (#82168)"

This reverts commit c4cb756.

* Revert "Adds colorblindness as a mild brain trauma (#76527)"

This reverts commit eb815f5.

* Update _species.dm

* unused var

* Caps list..

* Update mushpeople.dm

* Update mushpeople.dm

* Update mushpeople.dm

* Update mushpeople.dm

* Update mushpeople.dm

* Attempts to fix CI errors

* Update cap.dm

* Update _external_organ.dm

* Update monkey.dm

* Revert "Update monkey.dm"

This reverts commit 29f54c8.

* Revert "Update _external_organ.dm"

This reverts commit 8de5ea7.

* Update _external_organ.dm

* Revert "Update _external_organ.dm"

This reverts commit 644cc56.

* Fix CI maybe?

* Update cap.dm

* Update DNA.dm

* Some cleanup/updating to upstream

* Update global_lists.dm

* Mush

* Update mushpeople.dm

* Hopefully the last fix

* Doing this differently

* Update organ.dm

* Update organ.dm

* Update organ.dm

* Update organ.dm

* Update organ.dm

* OK

* Update organ.dm

* Update podpeople.dm

* maybe

* Hm

* Hm

* Will this break things?

* Revert "Will this break things?"

This reverts commit bd288c6.

* Test

* Update organ.dm

* Update organ.dm

* Revert "Update organ.dm"

This reverts commit ca77ff9.

* Update organ.dm

* .

* .

* .

* Update snail.dm

* Monkeys now use height offset (and monkey tail works) (#81598)

This PR adds the ability for monkeys to wear any jumpsuit in the game,
and adds support for them to wear things like coats, gloves, and shoes
(though this cannot be obtained in-game and is solely achieved through
admins, which I also improved a bit upon by adding a defined bitfield
for no equip flags).

This reverts a lot of changes from
tgstation/tgstation#73325 - We no longer check
height from limbs and such to bring sprites down, instead monkeys now
work more similarly to humans, so the entire PR was made irrelevant, and
I didn't really want to leave around dead code for the sake of having a
human with longer legs.

I've now also added support for Dwarfism, which makes monkeys look even
smaller. Very minor change but at least now the mutation doesn't feel
like it does literally nothing to monkeys (since they can already walk
over tables).

Here's a few examples of how it can appear in game (purely for
demonstration, as it is currently intentionally made impossible to
obtain in-game, though if someone wants to change that post-this PR now
that support is added, feel free):

Tails have been broken for a while now, the only reason you see them
in-game is because they are baked into the monkey sprites. This fixes
that, which means humans can now get monkey tails implanted into them
(hell yeah) and monkeys can have their tails removed (also hell yeah)

* Removes unneeded files

* Revert "Removes unneeded files"

This reverts commit 6469d37.

* .

* ok

* Update tails.dm

* Update monkey.dm

* Fix monkey screenshot test

* Update species.dm

* Update reinf_walls.dm

* Maintenance

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: vinylspiders <13398309+vinylspiders@users.noreply.github.com>
2024-05-23 02:37:43 +02:00
Ben10Omintrix
4aec21e180 jps movement can read accesses from the access component (#83384)
## About The Pull Request
jps movement can read accesses from the access component

## Why It's Good For The Game
i cant think of any mobs that need this now but it will be useful in the
future

## Changelog
🆑
/🆑
2024-05-22 19:07:15 -04:00
Jacquerel
8c4c8fbf01 Legion mob nerfs (#83267)
## About The Pull Request

This PR does a handful of things to make the hostile "Legion" mob less
dangerous.
Firstly: They will spawn extra mobs half as often.
Secondly: Those mobs have the "attack forecast" component also used by
Goliaths and some other mining mobs.

Also now Legions can't spawn skulls while they're inside pipes or bags,
because that doesn't make any sense.

## Why It's Good For The Game

When converted to basic mobs these guys became _far_ more deadly than
they were supposed to be, to the point where even approaching a Legion
tendril was basically suicide.
This was compounded by an issue which would sometimes cause 33% more
Legions to be present at the tendril than were supposed to spawn there,
but they'd still be fairly scary with just 3 of them.

There were a couple of causes of this which this PR does something to
address:
- Simple mob AI was simply a lot more sluggish than Basic Mobs. Legions
now react faster and more reliably _actually_ spawn skulls at every
available opportunity whereas previously despite having the same
cooldown they wouldn't always bother.
- Similarly, the skulls themselves were slower to pick a target and
slower to attack, whereas Basic Mob skulls will melee you the instant
they detect that you are in range.
- This also means three (or four with the spawner bug) Legions dropping
adds on you the second they see _you_, with no guarantee that you have
yet seen them. The damage starts to become quite hard to avoid, and 4x
Legion skulls (with another four spawning in two seconds) dealing 12
damage each would crit you very quickly.
- Our click CD means it's not even possible to punch four skulls in two
seconds even if you managed to time it perfectly.

So to solve this: Spawn fewer of them, they do less damage, and you can
step away from their attacks (this gets pretty hard when you're
surrounded, but that is by design).

Eventually I am probably going to play like 20 rounds of miner, look at
all of the mining mobs we have on each map, and then completely redraw
what their roles are in a way that probably changes what this mob does
quite significantly... but I'm not going to do it yet. This should do
for now.

## Changelog

🆑
balance: The melee attacks from small mobs spawned by Legions can now be
dodged.
balance: Legions spawn their mobs less often.
fix: Legions cannot spawn mobs while inside pipes or closets.
/🆑
2024-05-22 18:46:54 -04:00
SpaceLoveSs13
c61718f4be Merge pull request #27786 from Skyrat-SS13/upstream-merge-83305
[MIRROR] Advanced Health Analysers can detect certain organs
2024-05-22 17:33:16 +05:30
SpaceLoveSs13
8577fd3178 Merge pull request #27814 from Skyrat-SS13/upstream-merge-83269
[MIRROR] Research Directors are now strong (the Athletics trait, that is). Suplexing a rod is an incredible workout.
2024-05-22 08:47:23 +05:30
SpaceLoveSs13
7526072534 Merge pull request #27800 from Skyrat-SS13/upstream-merge-83350
[MIRROR] Corrects player-facing instances of "recieve"
2024-05-22 08:41:35 +05:30
SpaceLoveSs13
17216fd902 Merge pull request #27795 from Skyrat-SS13/upstream-merge-83340
[MIRROR] [No GBP] Slime people will not be eaten be slimes
2024-05-22 08:40:16 +05:30
necromanceranne
25d68e6884 Research Directors are now strong (the Athletics trait, that is). Suplexing a rod is an incredible workout. (#83269)
## About The Pull Request

Grants the Research Director TRAIT_STRENGTH via their skill chip. This
trait is only relevant to athletics-related activities. They still need
to actually do the workout before they see any results.

Fitness bros will overestimate the RD's power level due to their ability
to suplex an immovable rod.

Suplexing a rod grants an incredible amount of athletics skill,
increased by how many people the rod has taken out. The frequency of
this happening is bound to be pretty small, but it's a nice in-round
reward for accomplishing the task (and maybe blowing up a department as
a result), and also potentially a large number of casualties on top of
that.

## Why It's Good For The Game

The athletics changes didn't acknowledge that there is already someone
on the station that is, for some reason, unnaturally stronger than
everyone else. The Research Director. So now, fitness bros think they're
naturally swole. Mind over matter, I guess?

I just think it'd be funny if by suplexing the rod once, you gain
incredible physical power and then need to take a nap because boy that
sure was an explosive amount of strength you had to apply. Since this
only happens with looping rods, I don't imagine it will disrupt fitness
as a skill too much.

## Changelog
🆑
add: The Research Director is now actually strong.
add: Fitness bros will determine the Research Director to be stronger
than they actually are, without even working out. How does he do it?
balance: Suplexing a rod grants a large burst of athletics experience.
add: The more sentient casualties of the rod, the more experience
suplexing that rod grants. Absorb the souls of the weak and feeble.
/🆑
2024-05-21 17:54:07 -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
Profakos
f0cc389329 [No GBP] Slime people will not be eaten be slimes (#83340)
## About The Pull Request

This PR readds a missing faction check that got lost during basic mob
conversion. Partially at least, previous, it ensured that
FACTION_NEUTRAL was a one way faction, protecting slimes from other
things, while keeping all the other factions via a check that fully
reimplemented `faction_check` in a less efficient way. Rather then
reimplementing this behaviour, I have just made them check for the
FACTION_SLIME, similarly how regal rats skip converting already
converted frogs and cockroaches.

So in short, slimes once again will not attack slime people, but
everything else is fair game once they get hungry (except for people who
are in their friend list).

I am not fully happy with this solution, but I would rather not make a
new list by subtracting FACTION_NEUTRAL every time they check someone.

## Why It's Good For The Game

One of the unique features of slime people was that slimes consider them
friends and family. This PR brings this back this feature I forgot to
reimplement.

Fixes #83324

## Changelog

🆑
fix: Slimes will no longer consider feeding upon slime people
/🆑
2024-05-20 12:13:30 -04:00
nikothedude
bbd6c02050 Minor raptor spellchecking (#83339)
## About The Pull Request

Spellchecks a few things in raptor code.
## Why It's Good For The Game

typos and bad grammar are bad surprisingly
## Changelog
🆑
spellcheck: Improved the grammar/spelling of a few raptor descriptions
/🆑
2024-05-20 12:08:13 -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