Commit Graph

157 Commits

Author SHA1 Message Date
Useroth
2b60c77e55 Yet another mirror batch (#27314)
* A skub-related station trait. Reduced weight of annoyingly frequent neutral traits. (#81388)

## About The Pull Request
This PR introduces a new station trait that lets people choose if they
want to be pro-skub or anti-skub (or neither, really). It works the same
lobby buttons that job-related station traits also use. Depending on
whether you chose to be pro or anti skub, you'll spawn in with a special
box that contains the (bulky) skub and a pro-skub shirt, or an anti-skub
shirt. EDIT: Both also receive a number of stickers to propagate their
causes.

Kudos to @Fikou for coding the lobby buttons to be accessible by any
station trait rather than only job-related ones when you made the
Cargorilla station trait.

Another thing this PR also halves the exaggerated weight of low-cost
traits such as scarves, wallets and glitched PDAs, which I clearly
underestimated.

## Why It's Good For The Game
We've learned that low-cost, high weight traits are a bit of a design
mistake, because they tend to tip the scales toward themselves over and
over and over, leveling the diverseness of the feature and therefore
making it shallow and boring.

Beside, I've been thinking of the popular [skub comic
strip](https://pbfcomics.com/comics/skub/) lately.


## Changelog

🆑
add: Added a Skub-related station trait. You can now choose if you want
to be pro-skub or anti-skub, complete of shirt and stickers. Please
don't shank each other over it.
balance: Halved the weight of station traits such as scarves, wallets
and glitched PDAs.
/🆑

* Fix some slime species subtypes not having burn resistance (#82164)

## About The Pull Request

All slime species limb subtypes now inherent from the parent `/jelly`
subtype, giving them all their proper burn resistance.

## Changelog

🆑 Melbert
fix: Slimepeople and Luminescents are now 50% burn resistant like
Stargazers
/🆑

* There we go

* FIX: Makes Hatsune mi-go a (friendly) gold slime mob (#82251)

## About The Pull Request:

The hatsune mi-go is now a friendly gold slime mob. This means it won't
try and kill you. It also now doesn't make your ears hurt, and drops a
keyboard synth on death (you monster.)


![migomigodance](https://github.com/tgstation/tgstation/assets/69398298/9dd6eb82-68d6-470c-9538-12298c3a6008)
## Why It's Good For The Game


So in making my resprited mi-go and subsequent speedmerge, I failed to
realize that there are only 10 possible migo spawnpoints - 5 in snowdin
gateway, 3 on ceres whiteship, and 2 on kilo whiteship. This means at
most eight can exist on anyround, with a decent likelyhood of 0. This,
combined with the fact the hatsune migo is banned from spawning outside
of roundstart locations, along with the fact people seem to love the
thing, made it feel _too_ rare, even for a shiny mob. You still have to
roll the random odds with the life chem or friendly gold slime pools,
but you should actually see them outside of two mutually exclusive space
ruins and a gateway now. Also, they don't try and kill you now, because
it would have been wrong to add a hostile creature to the friendly pool.

🆑
fix: Hatsune mi-go now is a friendly gold slime mob, and doesn't hurt
your ears.
add: Hatsune mi-go drops a keyboard synth on death (you monster.)
/🆑

---------

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

* [THE QUIRKENING] Adds customization options to Organ Prosthetic, Junkie, Smoker, and Alcoholic! (#82051)

## About The Pull Request

Lets people pick:
- The shitty organ they spawn with (still has the restrictions of not
being possible to get heart when you are a plasmamen, for example)
- Their favorite alcohol to blackout with
- Their favorite brand of cigs
- Their favorite brand of drugs!
A lot of the code was taken from a downstream, made by @Floofies, i
already had my own implementation but it was buggy and not nearly as
clean, then i was made aware of theirs.
## Why It's Good For The Game

Character Customization is good and fun and lets people have more choice
in their roleplay.
## Changelog
🆑
add: Prosthetic organ users are now allowed to pick what they want to
start with.
add: Junkie of all kinds, including smokers and alcoholics, are also
able to pick their favorite type.
/🆑

---------

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

* [NO GBP] Fixes the "Drop Pod: Syndies" deathmatch modifier. (#82216)

## About The Pull Request
I've had false memories of `pick_weight` working with assoc-value-less
lists.

## Why It's Good For The Game
This will fix an issue with deathmatch modifiers.

## Changelog

🆑
fix: Fixed the "Drop Pod: Syndies" deathmatch modifier.
/🆑

* Fix robocontrol access runtime (#82242)

## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/51863163/568fa916-d167-4038-b0e8-7b0870754bf9)

`check_access` expects an item, such as an ID card, to... check access.
Not a mob.

We can circumvent this entirely by using `allowed`.

But this has an averse effect in that `allowed` will only check the
user's ID, not the ID in the mod PC.

So we need to run a separate check of `check_access` for the computer ID
card.

## Changelog

🆑 Melbert
fix: Robocontrol should work better.
/🆑

---------

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

* Adds a photobooth (#82105)

## About The Pull Request

Adds a photobooth machine to the HoP line which can be used to update
your security records photo.
It updates the records of the person's name, which means hiding your
identity and wearing an ID will let you change other people's photos. If
you aren't hiding your identity and are wearing someone else's ID, it
won't update at all because it will be unable to find your record.
There's 2 variants of this machine, one at the HoP line that's tied
behind Law Office access (so Lawyers have an extra thing they can help
out with if no one's available, but maybe it would be better behind
Library access since Curators are our "photographer" role?), and the
Security one that requires Security access.
The Security one has a special feature that it adds a height chart
behind the player.

![image](https://github.com/tgstation/tgstation/assets/53777086/c4eb0661-d752-4052-8006-2898af78c528)

This machine is used by either right-clicking on it or by pressing a
button, so the HoP can do it remotely from their line (except on Tram
where it's in the library), and after a few delays it'll update your
records automatically to how you look like.

Emagging the machine will remove its access restrictions but every time
it updates your photos it will spam camera flashing and blind you.

Sprites

Open

![image](https://github.com/tgstation/tgstation/assets/53777086/d5e97d84-46d8-40b5-995f-c0ef5c7f18ac)
Closed

![image](https://github.com/tgstation/tgstation/assets/53777086/520e88ed-4630-40d8-9039-4c6dd85a9872)
Security version on the left, has a red tint on it

![image](https://github.com/tgstation/tgstation/assets/53777086/ef71a092-8d1b-4776-bdb4-6718308967c7)

Video demonstration (old sprites):


https://github.com/tgstation/tgstation/assets/53777086/a2e59f08-2d58-4f5b-b081-e137c7606d35

## Why It's Good For The Game

Current security records has no way to change your photo ID, something
that was a feature before it was moved to TGUI. The only alternative is
to fully delete your record and make a new one with a photo and the same
name, but this shares a major issue with the HTML UI: You're immediately
sold out by the fact you have a background. No matter how well you try
to cover your tracks, any security officer looking at records will see
you are the only photo on the manifest that has a background and even a
camera in your hand, which makes it impossible to get away with it
unless security essentially takes pity on you.
This opens up the ability to fully mask yourself in records, finally.

This is also better even for non antagonists because you can now
properly update your photos to match what you look like in the event of
an appearance change or even just a job change, which makes it a benefit
for HoPs who likes to keep records as up-to-date as possible.

## Changelog

🆑 JohnFulpWillard, Twox
add: Added a new photobooth machine to the HoP's line.
fix: Things checking for access now checks your off hand, too.
/🆑

---------

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

* Converts slimes to basic mobs (#82176)

After months of preparation, and further months of work, I am finally
done. Please bear with me, as this is a massive refactor, but I have
already atomized everything I could. This is now ready for review.

General

- 	The hilbert hotel slimes are now a subtype instead of a varedit.
- The `use_mob_ability` subtree now also accepts non cooldown abilities.
If set_behaviours is set up properly, mobs won't keep continously
triggering it as if it were a 0 second cooldown action. The alternative
would have been turning the slime abilities into cooldown abilities.
- Wrestling off a slime now signs up to the `COMSIG_ATOM_ATTACK_HAND`
signal, instead of being part of attack_hand.
- Adds datum/ai_controller/controller as a fourth, optional argument to
`/datum/ai_behavior/find_hunt_target/valid_dinner()` to make it possible
to access blackboard keys.
- Slimes no longer attack windows if they would accidentally move into
them (when the conditions are met), since random walk behaviour ignores
tiles they can't go in. It was also not worth to keep. Did you know this
was the sole override of `ObjBump()`?
- Examine was made less snowflaky/bespoke. Also added a new element:
`/datum/element/basic_health_examine`, which is a simple bespoke element
that prints out a custom message based on how damaged the basic mob it
is attached to is.
- Slimes only perform knockdown instead of paralysis, as they can attack
more often now, and paralysis is not that fun.
- LAssailant has been removed due being archaic code. To befriend a
slime, you have to spawn a monkey with the slime console, or feed them a
sheet of plasma. Simple grabbing the monkey or stuffing them in
disposals do not work anymore. Slime console spawned monkeys will have a
visible status effect, with pheromones coming off them to make this
clearer.

Actions
- 	Feeding, reproduction and evolution is no longer a verb.
- Slime feeding is no longer an action button. You have to use right
click, or as previously, mousedrop. Slimes can always unbuckle from mobs
they are attached to.

Hunger

- Instead randomly changing the starvation and max nutrition values
while growing up, evolution costs 200 nutrion. This makes the code more
readable, and behaviour more predictable, while still giving the
intended time between evolving and splitting. As a result, I could also
turn these into defines.
- Added a component that handles doing an effect over time while buckled
to a mob, until the mob dies or you get unbuckled.
- Slimes gained nutrition is no longer randomly multiplied by the damage
config value, but rather gain nutrition equal to twice the damage dealt.
You'll have to eat one monkey to evolve, just as before.
- Slimes do not heal passively. They only heal from eating. It was a
rather miniscule value that did not have much effect.
- Slimes generate electricity from hunger threshold, instead of the
random amount of hunger threshold + 100.

Environment

- Slimes take 15 damage from cold every second, instead of using a
complex formula (that also decreased the damage up to a point?).
- Slimes still heal from burn damage, but this is now set on the damage
coefficient list.
- Slimes instead of getting stunned by the cold, freeze in an ice cube.
BZ instead of setting them unconscious, calls the stasis status effect,
allowing you to safely stash your hungry slimes for later. They also no
longer slow down from the cold, as they are already slowed down by the
damage they get. Conversely they no longer get a speed up from a random
amount of temperature. I could be convinced to readd this either as part
of the basic sensitive component, or a similar one.

AI
- Removed the attacked_stacks system. Slimes will just perform regular
retaliation if you hit them in a harmful manner.
- Slimes now use the pet orders component. They will interrupt their
feeding when given a command by their master.
- Slimes have their own subtrees. I tried to replicate as much as I
could from the old code, dividing ancient code artifacts and intentional
stuff, so there might be some weirdness.
- Slime speech has been almost fully reduced to basic blorbing, as you
can not even understand them anymore, and most of them require the slime
to loop through all of their surroundings.
- Discipline does not have stacks either. Disciplined baby slimes have a
chance to clear their attack and hunt blackboard keys. All slimes will
stop feeding on the target otherwise.
- Since discipline is not a stack, rabidity instead gets removed at a
10% chance per disciplining.
- 	Slimes faces are a bit more randomly picked now.

- We want to convert all simple animals to basic mobs. Old slime code
was also very strange, and had some systems that have been replicated by
components.
- Slimes fully paralyzing you is not fun at all. Knockdown should give
you a fighting chance when a slime would like to eat you.
- Slimes slow down from the heavy damage they get from the cold, so I
don't think they need extra slowdown, nor do they need to speed up from
warmth, as they are already fast.
- Slimes turning into an icecube instead of becoming paralyzed from the
cold is more fun for the slimes, as they can break out for a few
moments. It is also funny.
- Slimes entering proper stasis from BZ is not just a visual indicator
of a slime that is safe to approach, but also keeps the slimes's hunger
value in check, allowing it to not starve while stopped. They can also
look around and blorble, instead of staring at a black screen, if player
controlled.
- The attack_stack and discipline_stack behaviours were rather
overcomplicated, and the xenobio mains I talked with didn't even know it
was a thing, so I argue it needed simplification.
- The bespoke friendship system of slimes was also too complicated.
Slimes slowly gained levels of trust, and at certain levels commands
costed friendship, and other levels, they did not. The binary friend/not
friend system that everything else in the game uses is much more
sensible.
- Using right click for feeding is much more sensible than using an
action, and then picking someone from a dropdown.
- Slime speech was very soulful but not only did it loop through
everything in sight, you couldn't even understand it unless you spoke
slime. Maybe it can be readded later in a different form.
- Slime's passive healing was miniscule, and having them rely on feeding
is more interesting.

also
fixes #81463

🆑
refactor: Slimes are now basic mobs. Please report any strange
behaviours!
balance: Slimes only stun you for two seconds when they shock you, the
rest of the duration is a knockdown.
balance: Slimes are not stunned from the cold, but rather, get frozen in
a freon icecube. BZ also puts them in complete stasis, instead of making
them unconscious. Their speed is likewise unchanged by temperatures.
balance: Slimes do not passively heal, they instead rely on feeding.
fix: Slimes can use the buckling screen alert to unbuckle and stop
feeding, along with clicking on the mob they are riding
/🆑

* Oh, right.

* Fixes AI verb Jump To Network (#70016)

* check for camera loc to not be a silicon

* check for z=0 instead

* Update code/modules/mob/living/silicon/ai/ai.dm

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>

* evil touch

* redundancy

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>

* Removes camera assembly structures (#81656)

Removes the camera assembly structure middleman between the camera
wallframe and camera machine. All its behavior has been instead moved to
the camera, and I've tried to keep as much of the behavior the same as
before.
This also fixes the issue that camera assemblies had where, upon the
construction being finished, it would move itself into the newly
finished camera machine, therefore taking itself off a wall, therefore
deconstructing itself. This resulted in 2 piece of iron being in each
camera machine (except roundstart ones), and because camera machines
rely on the assembly inside of them for upgrades and such, upgrading
didn't work at all.

I've also made camera nets use defines (not in map) so it's easier to
find a list of them all, and tried to add autodoc comments to nearly
every var in camera code.

Removes copy paste and spaghetti code between structure and machine
camera, thus making it easier to work around with.
Closes https://github.com/tgstation/tgstation/issues/79019

🆑
fix: Cameras built in-round can be upgraded again.
fix: Deconstructing cameras now more consistently return to you the
upgrades inside of the camera.
fix: RD's telescreen can now properly see Ordnance cameras again.
fix: [Deltastation] Library art gallery no longer has an invisible
camera.
/🆑

---------

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

* [MDB Ignore] Combines Cargobus consoles with Dept. Order Consoles, freeing all departments of 1 whole tile of space (#82210)

## About The Pull Request

- Departmental orders are now an NTOS app
   - To download, they require `ACCESS_COMMAND`.
   - To use, they require one access from the department.
- This means you cannot order things from not-your-department unless you
have an ID.
- When newly downloading the app, it will prompt a head of staff to
insert an ID, to determine which department to be linked to.

- Changes chat room overlay from the kind that AI uploads use to a new
icon.

- Minor refactors to department order in general. 


![image](https://github.com/tgstation/tgstation/assets/51863163/605c2499-e5e9-4f91-aa2a-aa8af8b05a9f)


![image-1](https://github.com/tgstation/tgstation/assets/51863163/089d3fe1-787c-4f5a-bc3d-edb9611dfbb2)

## Why It's Good For The Game

These two computers are surprising waste spacers for two things which
are tied together.
So why not combine them?

The lesser used cargobus chat is still there, and departmental orders
are front and center.

This gives mappers a ton more leeway when mapping departments out and is
overall less clutter.

## Changelog

🆑 Melbert
qol: Cargobus chat console and Departmental Order console are now
combined into one.
qol: Mod PCs active on the "chat client" apps no longer look like AI
uploads (and now have their own sprite)
refactor: Departmental order consoles were refactored a bit, report any
oddities.
/🆑

* This should cut it.

* Was it really just skub?

* [No GBP] Fixes slow slime feed (#82284)

## About The Pull Request

Slimes were supposed to gain the same amount of nutrition as the damage
they dealt while feeding. However, I have accidentally multiplied this
again by `seconds_between_ticks` a second time. This meant that locally
slimes fed normally, but on the server they got about the third
nutrition they were supposed to, probably due to having more ticks per
second then my machine. This PR fixes that.

Also raised the nutrition gained by slimes by 20%, after careful
testing, one monkey wasn't always enough.

## Why It's Good For The Game

 Fixes #82283

## Changelog

🆑
fix: Slimes now feed faster, and should only need one monkey to reach
their next lifestage.
/🆑

* [No GBP] Fixes a slime speed config and ai controller null error in slime nutrition handling (#82330)

## About The Pull Request

Someone has linked the runtimes logs of round 226376 to show off a
runtime, and I took a look, and found some unrelated runtimes in slime
code.

- The config file for slime slowdown was still using the simple_animal
path. This has been fixed.
- Somehow, a grey slime has lost its AI controller, and when it got
hungry, it runtimed. For now, a coalesce operator has been put in place.
Later, an investigation is needed to figure out where did its AI
controller go.

## Why It's Good For The Game

Runtimes bad.

## Changelog

🆑
fix: Slime properly load their slowdown values from the config files.
fix: Slimes who lose their AI controller will no longer runtime when
they get hungry.
/🆑

* [No GBP] Slime stasis fixes (#82304)

## About The Pull Request

`handle_environment` is never called when the target was in stasis, so
slimes stayed in stasis forever. This PR fixes that, albeit in an ugly
way.
It also makes slimes actually not get hungry while in stasis.

## Why It's Good For The Game

Fixes #82300
I also claimed slimes can be safely kept in stasis, but I didn't
actually put a stasis check before handle_nutrition. This is fixed now.

## Changelog


🆑
fix: Slimes stop being in stasis when taken out of a BZ filled
environment
fix: Slimes no longer become hungry while in stasis
/🆑

* Add a unit test to check that maploaded simple/basic mobs are in an environment they can survive in. (#82180)

I've recently noticed that the maploaded penguins from the snowdin away
mission were dying from unsafe atmos/temperature. This sparked the idea
of making a (focus only) unit test that would prevent this sort of
issues from happening.

This PR also implements the usage of the `atmos_requirements` and
`body_temp_sensitive` elements for simple animals too, cutting down the
copypaste.

More unit tests to make sure things are done correctly.

🆑
fix: Made sure that mapped critters (i.e. penguins on the snow cabin
away mission) can survive in the environment they're spawned in.
/🆑

* This all is going to suck.

* A step further

* Is this hell over?

* I hope it is.

* Autosort I suppose

* This should cut it for VoidRaptor

* And Blueshift

* Revert "Autosort I suppose"

This reverts commit 9100de67c30514fc25db3ba29df81d1b0ac54e24.

* Dear god, the chicken.

* I fucking hate mapping

* fixes gas analyzers (#82278)

## About The Pull Request

#82180 accidentally messed up air analyzers being able to read or send
readouts to the chat.

## Why It's Good For The Game

air analyzer good

## Changelog

🆑
fix: air analyzers work again
/🆑

* [NO GBP]Grind & juice fixes (#82272)

- Fixes #82266. Anything that has reagents can be either grinded or
juiced
- If something doesn't have reagents but has grind results it can still
be grinded but not juiced

🆑
fix: anything that has reagents can be either grinded or juiced
fix: stuff that does not have reagents but has grind results can still
be grinded but not juiced
/🆑

* Birdshot Engineering Retrofitting (#81840)

Warning: Nanotrasen Confidential Proprietary Information (NCPI) must
only be accessed and viewed within a Nanotrasen Virtual Environment
(NVE, vNTOS-3). Employees in violation of this information ordnance will
have their wages A) garnished, and B) sent to a labour camp up to a
maximum of ten (10y) years. Questions regarding policies related to NCPI
should be directed towards departmental heads or your sector Central
Command Information Authority (CCIA) personnel.

## About The Pull Request

Credentials Confirmed
The Birdshot Engineering Revitalization Plan (formerly proposal
Blindfold, now BERP) is a procurement effort to address growing
maintenance liabilities and costs on the Skitter-MDR Class Orbital
Station located in the Spinward Stellar Cluster (SSC, Sector 28-7b).
Over the course of the previous year, ongoing analysis data has provided
vital feedback since the station was once again brought into operation
after 17 years of abandonment; and using this data, 4 options were
outlined for the Blindfold Proposal.
1) Abandonment - No Cost. Operations on Birdshot will cease. 28-7b
operations will be moderately impacted.
2) Procurement - Medium Cost. Replace offending station sections
completely with low-cost, working alternatives. Operational gains in
28-7b expected.
3) Do Nothing - No Cost. Moderate long-term impacts to operations in
28-7b.
4) >>>_Was removed_

Option 2 was selected for BERP. Procurement efforts identified 3
solutions and later narrowed it down to 1. Following the selection
process architects were brought in to draft up low-impact refits to the
designated hulk. 5 selections made it past initial drafting, with 3
ultimately being selected for engineering board review. Penultimately
draft proposal 3 was selected for the project and now awaits engineering
certification. The draft plan is provided on the next page:


![Birdshot Eng
Final](https://github.com/tgstation/tgstation/assets/33048583/441a6ca8-d7e1-4962-82b9-c412393ad73b)

Following board certification, implementation of the plan will be
commenced by 28-7b Nanotrasen Enigneering Corps. (NECs). Construction
time-frame pending Project Foremans review.

## Why It's Good For The Game

Birdshot Engineering is where this whole station began. Back then,
things were going to look closer to Birdboat Station, but that became
looser and more ill-defined as progress was made on the overall station.
While I was satisfied of the decrepit feel of Birdshot Enigneering
initially, I knew that at some point, it would require modification to
better play into Birdshots strengths.

I've had a long laundry list of a roadmap that I've wanted to implement
since the station was added, and this was the top item. Tier Zero.
Problema Numero Uno. You get the idea. This has been a year of drafting,
redrafting, and redrafting everything until it fit Birdshot right. With
this, we're nearly there. I see this being the definitive Engineering
Department for this station for quite some time to come. However, this
is still a draft and some elements are subject to change as I begin to
work out some of the more minor kinks in the draft such as pipe
locations and transit tubes.

Presently Atmospherics is completely rebuilt from the bottom up. There
is more space, enough to do projects, but you'll have to tear down some
windows and walls to gain it. Nothing ventured, nothing gained. You also
have most of the gas distro line outside. I'm a firm believer in
enabling whatever antics ANY lunatic may have. Atmos techs can rest
assured that outside lines are completely reconfigurable (and powered)
enabling some... unique project prospects. You also gained an inside HFR
and Spare burn chamber. Enjoy.

The Engineering Common Areas are now inside the department proper
instead of the satellite treatment in the original implementation.
Security gets an actual outpost and engineers now have a proper office
to file engineering documentation. They say that office colleagues can
form tight bonds so let's see whose is stronger: Purples or Yellows?

The Supermatter Engine is more of an upgrade over the previous model
(Leaky SM is here to stay so deal with it). The room is larger with less
rock, allowing some manner of greater customization, but I believe
engineers will be more than happy to find that they now have a Burn
Chamber of their own. I have zero clue of what they'll do with it, but I
think any enterprising CE will be able to create something that even god
should fear.

Finally we have maint improvements. Nothing really to see here though
maybe there's the beginning of something for the future if you care to
speculate. I couldn't really keep the meandering maint of the previous
rock, so instead we now have some pseudo dead-ends. It's all connected
by transit tubes to the north (not shown) so you can slowly get around
if you will it. Of course there's plenty of cut-throughs,
not-so-finished sections, and opportunity for those who need it. Caution
to the blind, this whole rock is spicy.

Overall I'm happy with this and want to open it up in Draft Mode for
initial thoughts. I have a rough timeline on finishing this that
stretches out to the weekend, so the earlier comments are, the more
likely I'll be able to MAYBE do something about it. Thanks for the
patience and hopefully this is a doozy of an update for all our players.

Previous Engineering Provided for Point of Reference:

![Screenshot 2024-03-04
190827](https://github.com/tgstation/tgstation/assets/33048583/55355582-2129-4744-a75b-0cd97f2b5008)

closes  #75590

## Changelog
🆑
qol: Wholesale Revamp of Birdshots Engineering Department
fix: Some Birdshot Amtospherics Concerns
fix: Some Birdshot Engine Concerns
/🆑

* Bumps `dependencies.sh` to 515.1633 Stable (#82138)

## About The Pull Request

Two reasons for this.

1. It's the stable branch, so let's move it up. This PR will detect any
issues that we might have with the latest 515.1633 as far as the
codebase is concerned (the servers have been running 1633 for at least a
week now).
2. ~~I'm fucking sick of seeing the Lua Scripting Notice in CI even
though it was fixed a few days ago in #82074
(5624d94524)

`![image](https://github.com/tgstation/tgstation/assets/34697715/0cc889c9-25d0-48cb-a0d1-304738acd8cc)`~~

* Makes simple bodycam component `COMPONENT_DUPE_SELECTIVE` (#82310)

## About The Pull Request

The thought only just occurred to me people may want to throw multiple
bodycams with different networks on them onto one mob, and it would be
trivially easy to support, so here.

I used `COMPONENT_DUPE_SELECTIVE` rather than `COMPONENT_DUPE_ALLOWED`
so people can avoid adding two of the same camera (network) to one mob.

* Fixes unfathomable curios not blocking when equipped. Fixes the shielded component still blocking despite not having a 'wearer'. (#82073)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

The unfathomable curio now only blocks when equipped to the belt slot,
and not when equipped in the hand.

The shielded component now no longer blocks despite not having a wearer,
and does not block if the wearer is not the same as the owner in the
``hit_reaction()`` proc.

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

## Why It's Good For The Game

The curio was only blocking while in-hand, rather than how it should be;
in the belt slot. Now it does what it is supposed to.

On top of that, this fixes what I think has been a bug for quite some
time with shield_inhand just not being respected whatsoever with regards
to whether or not the component worked. It only really determined
whether or not you got the sprites added/removed, but didn't factor into
the blocking ability whatsoever.

## Changelog

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

🆑
fix: Unfathomable Curios now properly block as expected.
fix: The shielded component actually respects the shield_inhand when
determining blocking potential.
fix: Ensures that the shielded component has a wearer before attempting
to block, and that this wearer is the same as the owner of the item.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

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

* Chem dispenser UI minor patches (#82123)

## About The Pull Request
- Fixes #82119. ph is not computed & shown when recording recipes is
enabled. The ph value was inaccurate anyway because it was not computed
from the recorded recipe but from the beaker.
- Removed deprecated `content` tag from buttons in the UI

## Changelog
🆑
fix: chem dispenser UI doesn't brick when beaker is ejected while
recording recipes
code: removed deprecated `content` tag from buttons in chem dispenser
/🆑

* Resprites supermatter theft (#82326)

## About The Pull Request

Resprites supermatter theft tools to match the current style surgical
tools they're based off of, as well as esprites the sliver to not be a
shard of pee glass.


![image](https://github.com/tgstation/tgstation/assets/5479091/bd37909d-afff-4316-91f4-1b87d45d57fa)

## Why It's Good For The Game

Consistency in surgical tool derived sprites that previously kept the
old style from before the last surgery resprite, and making supermatter
shards not look like glass.

## Changelog
🆑
image: Supermatter slivers and the tools used to steal them have been
resprited.
/🆑

* GAGSifies the jester costume (#82339)

## About The Pull Request

Updates the jester costume to support GAGS.


![image](https://github.com/tgstation/tgstation/assets/5479091/d76f4aaf-d3aa-489a-8a0b-cf443bda7252)

## Why It's Good For The Game

More freedom for players to customise their jestering.

## Changelog
🆑
image: The jester costume now supports GAGS
/🆑

* There we go

* You win, chicken, take your leave. (apparently nulls in prefabs default to the normal mob stuff)

* Makes the Captain's Spare safe actually secure from being smashed open now that it's been removed from a wall. (#82076)

## About The Pull Request
Makes the Captain's Spare safe actually secure from being smashed open
now that it's been removed from a wall. Damage Deflection of 30 has been
added to it.

## Why It's Good For The Game

Because the Captain's Safe was moved off of the wall it's now vulnerable
to direct attack and projectiles way, way more than before and now
there's a lot of avenues to inflict AP damage, which is directly
subtracted from the armor value before application of damage. I've added
a damage deflection of 30 to make it

## Changelog

🆑
balance: Makes the Captain's Spare safe actually secure from being
smashed open now that it's been removed from a wall. Damage Deflection
of 30 has been added to it.
/🆑

* [NO GBP] Fixes prosthetic limb quirk preferences (#82354)

## About The Pull Request

Accidentally broke it during my latest quirk PR, oops!
## Changelog
🆑
fix: Fixed Prosthetic limb quirk preferences
/🆑

* Makes deconstruction of computer & machine frames consistent (#82378)

## About The Pull Request
- Adds a missing examine for when the machine frame can be deconstructed
- Both the machine & computer frames needs to be unanchored before it
can be deconstructed & adds examines to explain the same. Currently
computer frames don't have the unanchor requirement which is
inconsistent, but now both frames share the same code

## Changelog
🆑
qol: adds missing examine for when machine frames can be deconstructed 
qol: both machine & computer frames must be unanchored before it can be
deconstructed & adds examines to explain the same
/🆑

* [NO GBP] Emergency Birdshot Maintenance (#82380)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

I forgot about changing these when I moved stuff around, and smart pipes
kinda did their smart-piping things.

Whoops forgot a cable hookup. Non-Critical, but still needs to be there.

## Why It's Good For The Game

Clear Labels make things more readable. 

APCs should start powered. 

Atmos Turbines should make the atmos techs work for their paycheck. 

## Changelog


🆑
balance: Readds some N2O to the Birdshot AI sat. I'll be working on a
better solution for this in the coming weeks.
fix: Due to a Misprint, the Atmos Gas -> Pure pipes were incorrectly
labeled on Birdshot. Your Cargo Techs have since remedied this.
fix: Our cable laying intern team didn't lay cable to the Secure Storage
APC in Enigneering. Getting coffee instead of working is a big no-no
here at Nanotrasen Tech Support, and they have since been reassigned.
Your Chief Engineers have been instructed to make the modifications on
all Birdshot Class Stations.
fix: We've noticed some Heads-Of-Staff getting lost on Birdshot. While
Telecommunications does have a GPS waypoint, our staffs stubbornness
often means this is ineffective. Additional Signage has been placed to
help direct our most senior of staff.
fix: The Birdshot Turbine will no longer Pre-Load itself with highly
flammable Plasma Gas. Do your own jobs you lazy atmos bums.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

* Makes highlander layer hoisting code actually work (#82388)

Whoops

* Small Social Anxiety Fixes (#82387)

## About The Pull Request

- Speech filters from speech impairments don't apply unless they
actually change the message
- Psicodine properly stops stutter

## Changelog

🆑 Melbert
fix: Psicodine helps Socially Anxious people again (as does signing) 
fix: Speech effects such as stuttering no longer applies its TTS filter
if the resulting message doesn't actually change the message
/🆑

* Merge ordinance burn chamber with main lab for MetaStation (#82322)

## About The Pull Request
Fixes the issue specified in #82294 for Metastation ordinance burn
chamber.

Now both the burn chamber and the lab are combined together as one
area(no physical objects were displaced just their area properties were
modified) so they share the same apc allowing the igniter to function
there

## Changelog
🆑
fix: igniter in meta station ordinance burn chamber works again
/🆑

* TGUI: bumps yarn version (#82385)

Bumps our bundled yarn version up to 4.1.1.

This seemed previously impossible due to an indecipherable error
message:
```
SyntaxError: missing ) after argument list
    at wrapSafe (internal/modules/cjs/loader.js:979:16)
```

I'm assuming this was a bug in (earlier) versions of yarn ~4.0.2.
Meaning, this is probably worth testing or test merging, as it seems to
be running fine currently.

Better build tools

N/A

* Yeah, this should do.

* TGUI: updated dependencies (#82377)

Updates some of the dependencies in tgui. Should have zero gameplay
impact at all.

This puts our typescript version up to 5.4.3! And it detected errors
immediately

Bzzz here comes the airplane

N/A

* Clown anomalous crystals turn the dead into living clowns, rather than anyone who speaks in proximity (#82373)

## About The Pull Request

Rather than turning people into clowns if they speak within proximity of
the crystal, the clown anomalous crystal instead transforms the dead
into clowns, similar to the dark revival crystal.

This also adds logging for crystal activation.

## Why It's Good For The Game

We've had a significant number of admin issues with this crystal being
abused to both grief and killbait people by turning them into clowns as
of late. The crystal literally only exists to do this basically. And it
is also grossly unlogged despite the fact that many of the effects could
be cause for investigation.

Rather remove this crystal, I'm making it useful...with a catch.

## Changelog
🆑
qol: Makes the clown anomalous crystal actually useful for once rather
than an open griefing tool. It now revives the dead...as clowns!
admin: Adds logging for the anomalous crystal activation, including
fingerprints.
/🆑

* Fix all nighter runtimes (#82405)

## About The Pull Request

So, recently, someone asked me why their All Nighter eyebags weren't
working, and though after a short conversation we worked out it was
working as intended and they had just taken a few naps to train fitness,
I still checked the round logs once they were public.
https://scrubby.melonmesa.com/round/226476/runtimes

![image](https://github.com/tgstation/tgstation/assets/42909981/162d76ae-2d43-428b-bc7e-37371ba27a1c)
Coincidentally! Someone else _did_ have an All Nighter runtime!
Well. Time to fix it.

I look into the code, and lo and behold, it seems we're really just not
caring about whether the head actually exists.

d38f9385b8/code/datums/quirks/negative_quirks/all_nighter.dm (L50-L56)

But that reminds me. We have more ways to lose your head, like
H.A.R.S.... So... I boot the game, and...
Oh no.
_Oh no._
That's a _lot_ of runtimes huh. (See "Why It's Good For The Game")

Soooo we just add a check for whether our head-in-question actually
exists to both adding and removing our bags, and be done with it.
```dm
///adds the bag overlay
/datum/quirk/all_nighter/proc/add_bags()
	var/mob/living/carbon/human/sleepy_head = quirk_holder
	var/obj/item/bodypart/head/face = sleepy_head?.get_bodypart(BODY_ZONE_HEAD)
	if(isnull(face))
		return
	bodypart_overlay = new() //creates our overlay
	face.add_bodypart_overlay(bodypart_overlay)
	sleepy_head.update_body_parts() //make sure to update icon

///removes the bag overlay
/datum/quirk/all_nighter/proc/remove_bags()
	var/mob/living/carbon/human/sleepy_head = quirk_holder
	var/obj/item/bodypart/head/face = sleepy_head?.get_bodypart(BODY_ZONE_HEAD)
	if(face)
		//our overlay is stored as a datum var, so referencing it is easy
		face.remove_bodypart_overlay(bodypart_overlay)
		sleepy_head.update_body_parts()
	QDEL_NULL(bodypart_overlay)
```
Right?

Well, no. Yes, this stops the runtimes, but while testing this I also
noticed that the bags don't come back.
We lose our head, we regenerate a new one, and we don't have bags. Even
though we removed our head, we never actually removed _our bags_.
So our `bodypart_overlay` is never set to null, and it's never actually
attempting to apply them to our new head.

To resolve this, we then just add a new proc called on
`COMSIG_CARBON_REMOVE_LIMB`, which handles removing the eyebags before
we remove our head if needed.
```dm
///if we have bags and lost a head, remove them
/datum/quirk/all_nighter/proc/on_removed_limb(datum/source, obj/item/bodypart/removed_limb, special, dismembered)
	if(bodypart_overlay && istype(removed_limb, /obj/item/bodypart/head))
		remove_bags()
```

Oh, we also remove the unused `client/client_source` argument from both
the `add_bags(...)` and `remove_bags(...)` procs.
## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/42909981/31fd97b5-dce3-46ec-9388-abf568fe4f0b)
## Changelog
🆑
fix: All Nighter: fixed a runtime from not having a head, whether from
hars/deletion/somesuch.
fix: All Nighter: losing and regaining your head while you had eyebags
no longer removes your eyebags until you've slept.
/🆑

* [NO GBP] Fixes Alcoholic quirk selection and addiction in general not being forever. (#82403)

## About The Pull Request

Fixes #82346
Also fixes a bug where Junkie, Smoker, and Alcoholic would not give you
more addiction once yours ran out.
## Changelog
🆑
fix: Fixes Alcoholic quirk selection
fix: Fixes Junkie, Smoker, and Alcoholic not giving you more addiction
when you come clean.
/🆑

* Fixes root beer rounding down to 0 delay for laser carbines/disabler SMGs (#82414)

## About The Pull Request

Title.
Closes https://github.com/tgstation/tgstation/issues/80921.

Uses SSprojectiles wait, via lemon's suggestion
(https://discord.com/channels/326822144233439242/326831214667235328/1195468576514130010)
## Why It's Good For The Game

bug bad
## Changelog
🆑
fix: Root beer no longer causes laser carbines and disabler smgs to fire
infinitely fast.
/🆑

* Fixes quirk being examined when observing (#82424)

Examining a human as ghost now shows their quirks again. This was
unintentionally removed with
https://github.com/tgstation/tgstation/pull/80692

This was unintentionally removed. Bugfix good me thinks?

![image](https://github.com/tgstation/tgstation/assets/49160555/57a8d817-c9f4-4bf5-bc10-498be58ed23d)

🆑
fix: Observers can now see people's quirks again
/🆑

* Moves that one wall in NorthStar Maints   (#82382)

You know the one, right? 

![image](https://github.com/tgstation/tgstation/assets/69398298/43f98dcb-2a00-43bb-9b9c-6541a77a8454)
Seriously though I asked "where's that random wall in northstar maints"
and not only did people know what I meant, within 5 min people told me
where it was.

<img width="825" alt="image"
src="https://github.com/tgstation/tgstation/assets/69398298/449ff97f-f256-449a-9eb0-d34b1e09f8f4">

## Why It's Good For The Game

Hallways work best when they're traversable. 

## Changelog

🆑
fix: Moves that one wall on NorthStar to not block the maints passage
/🆑

* fixes material scanning, so we can scan again (#82428)

I broke material scanning, This fixes it.

* Fixes access to borg panels (#82427)

## About The Pull Request

https://github.com/tgstation/tgstation/pull/81681 removed the access
requirement to unlock a borg, which of course meant anyone with any ID
could fiddle with them.

## Why It's Good For The Game

back to sanity

## Changelog
:cl:Zergspower
fix: borg panel access now requires robotics access again
/🆑

* Adds a visual effect to breathing in cold environments (#82336)

## About The Pull Request

Humans (who breathe) (with lungs) now has a particle associated when
breathing in cold air. The colder the air, the more likely the particle
to occur per breath.


https://github.com/tgstation/tgstation/assets/51863163/f375dd1b-87f6-4124-9329-4714fe988c16

Other changes:

- Adjusts the probability of getting "your lungs feel cold/hot" when
breathing cold/hot air depending on how cold/hot the air is.
- Very cold air now has a chance of causing humans to shiver when they
breathe it in.

## Why It's Good For The Game

Some nice VFX to breathe some style into the game. 

## Changelog

🆑 Melbert
qol: Breathing cold air now has a particle effect associated, careful
not to let your glasses fog up.
qol: Breathing cold air will now occasionally make your spaceman shiver.
Brrr.
/🆑

* [NO GBP] Emergency Birdshot Maintenance (#82380)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

I forgot about changing these when I moved stuff around, and smart pipes
kinda did their smart-piping things.

Whoops forgot a cable hookup. Non-Critical, but still needs to be there.

## Why It's Good For The Game

Clear Labels make things more readable. 

APCs should start powered. 

Atmos Turbines should make the atmos techs work for their paycheck. 

## Changelog


🆑
balance: Readds some N2O to the Birdshot AI sat. I'll be working on a
better solution for this in the coming weeks.
fix: Due to a Misprint, the Atmos Gas -> Pure pipes were incorrectly
labeled on Birdshot. Your Cargo Techs have since remedied this.
fix: Our cable laying intern team didn't lay cable to the Secure Storage
APC in Enigneering. Getting coffee instead of working is a big no-no
here at Nanotrasen Tech Support, and they have since been reassigned.
Your Chief Engineers have been instructed to make the modifications on
all Birdshot Class Stations.
fix: We've noticed some Heads-Of-Staff getting lost on Birdshot. While
Telecommunications does have a GPS waypoint, our staffs stubbornness
often means this is ineffective. Additional Signage has been placed to
help direct our most senior of staff.
fix: The Birdshot Turbine will no longer Pre-Load itself with highly
flammable Plasma Gas. Do your own jobs you lazy atmos bums.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

* [NO GBP] Emergency Birdshot Maintenance (#82380)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

I forgot about changing these when I moved stuff around, and smart pipes
kinda did their smart-piping things.

Whoops forgot a cable hookup. Non-Critical, but still needs to be there.

## Why It's Good For The Game

Clear Labels make things more readable. 

APCs should start powered. 

Atmos Turbines should make the atmos techs work for their paycheck. 

## Changelog


🆑
balance: Readds some N2O to the Birdshot AI sat. I'll be working on a
better solution for this in the coming weeks.
fix: Due to a Misprint, the Atmos Gas -> Pure pipes were incorrectly
labeled on Birdshot. Your Cargo Techs have since remedied this.
fix: Our cable laying intern team didn't lay cable to the Secure Storage
APC in Enigneering. Getting coffee instead of working is a big no-no
here at Nanotrasen Tech Support, and they have since been reassigned.
Your Chief Engineers have been instructed to make the modifications on
all Birdshot Class Stations.
fix: We've noticed some Heads-Of-Staff getting lost on Birdshot. While
Telecommunications does have a GPS waypoint, our staffs stubbornness
often means this is ineffective. Additional Signage has been placed to
help direct our most senior of staff.
fix: The Birdshot Turbine will no longer Pre-Load itself with highly
flammable Plasma Gas. Do your own jobs you lazy atmos bums.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: KingkumaArt <69398298+KingkumaArt@users.noreply.github.com>
Co-authored-by: DATAxPUNGED <44149906+DATA-xPUNGED@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Higgin <cdonny11@yahoo.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Zytolg <33048583+Zytolg@users.noreply.github.com>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Co-authored-by: Bilbo367 <163439532+Bilbo367@users.noreply.github.com>
Co-authored-by: Zergspower <Griffinj88@yahoo.com>
2024-04-16 06:05:57 +00:00
SkyratBot
e46274fc7e [MIRROR] Spider web graphics (#26775)
* Spider web graphics

* Update icon_smoothing.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
2024-03-12 00:06:38 -04:00
SkyratBot
fd0a1bad0a [MIRROR] Venus Human Traps have an orbit menu category, recieve antag datum on spawn (#26485)
* Venus Human Traps have an orbit menu category, recieve antag datum on spawn (#81411)

## About The Pull Request

Venus Human Traps now have their own category in the orbit menu. It is a
pleasant shade of green, just like vines are.

![image](https://github.com/tgstation/tgstation/assets/28870487/90615559-a45b-44a6-8fb4-39a9172a8e3a)

Venus Human Traps are also now given their antagonist datum upon
spawning from a flower. The datum isn't really anything special but it's
consistent with the other antag spawners.

This also makes the spawner piece of the VHT flower bud invisible. It's
an abstract object meant to handle the logic for spawning, and only the
structure should be visible. This currently manifests as there being
two, identical flower buds on the same tile when a flower bud spawns. I
did not want to get into untangling the two objects in this PR.
## Why It's Good For The Game

Venus human traps being lumped in with the humans in the "Alive" menu is
WEIRD. Now ghosts can give a gigantic vine infestation the attention it
truly deserves.

Fixes a minor visual incongruity found while doing all this.
## Changelog
🆑 Rhials
qol: Venus Human Traps are now visible in the orbit menu. Cool!
fix: Spawning as a Venus Human Trap now properly gives you an antag
datum/objective.
fix: Venus human trap flowers no longer have a second, identical flower
under themselves.
/🆑

* Venus Human Traps have an orbit menu category, recieve antag datum on spawn

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2024-02-12 16:11:29 -05:00
SkyratBot
6b54011c12 [MIRROR] Spider egg radial menus now require proximity (#26330)
* Spider egg radial menus now require proximity (#81209)

## About The Pull Request

Spider radial menus now require proximity, and will close if you move
away from them.

![it
works](https://github.com/tgstation/tgstation/assets/28870487/8197f8d4-6336-42b0-a690-9aadc7e47cb9)
## Why It's Good For The Game

Clicking the egg and not picking anything leaves the radial open. If you
try to use any other eggs the menu will not open until you track down
the radial menu and close it properly. If you aren't aware of this,
it'll feel like all of the eggs are broken and lead to confusion. This
has happened to myself and others.
## Changelog
🆑 Rhials
qol: Spider eggs will now close their spawn menu when you move away from
them.
/🆑

* Spider egg radial menus now require proximity

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2024-02-02 21:04:50 +01:00
SkyratBot
41fd931836 [MIRROR] Wendigo Cave Ruin & Domain Aesthetic Refresh + Wendigo Corpse Fix [MDB IGNORE] (#25838)
* Wendigo Cave Ruin & Domain Aesthetic Refresh + Wendigo Corpse Fix (#80334)

## About The Pull Request

Updates the Wendigo Cave ruin on Ice Box and it's domain to be more
detailed, without changing the shape of the arena too much. Also fixes
the Wendigo attacking corpses,

![image](https://github.com/tgstation/tgstation/assets/86125936/f6720c48-a139-46a2-92d6-d9d83fd4672a)

![image](https://github.com/tgstation/tgstation/assets/86125936/36281f17-d853-40bb-b08e-c6ae0254dcc8)
And the domain!

![image](https://github.com/tgstation/tgstation/assets/86125936/441886d8-816e-4de8-b54b-0fa4f57e3a93)
## Why It's Good For The Game
Makes the Wendigo arena and the surrounding area more varied visually,
as well as stopping the Wendigo from attacking the decorative corpses
used in the domain.

(Previous Arena for reference)

![image](https://github.com/tgstation/tgstation/assets/86125936/346da0eb-9d16-430b-91bb-970f84d52826)

## Changelog
🆑
qol: Wendigo Cave ruin gets an aesthetic refresh
fix: Wendigos (Wendigi?) no longer attack corpses

/🆑

* Wendigo Cave Ruin & Domain Aesthetic Refresh + Wendigo Corpse Fix

---------

Co-authored-by: Ical <86125936+Ical92@users.noreply.github.com>
2023-12-25 09:43:32 +00:00
SkyratBot
b79167c173 [MIRROR] Organ movement refactor *Un-nullspaces your organs* [MDB IGNORE] (#25530)
* Organ movement refactor *Un-nullspaces your organs*

* Fix conflicts

I checked the conflicts on the two weird conflicts and no previous TG pr touches them i assume its just github being github because those shoulden't be conflicts *shrug

* Fix #1 uhh...this is going to be a long one

* Fix #2 Modular Movement Flags

* Fix #3 It builds now

* Fix #4 Oh god it builds now, I missed some things

* Fix #5 No more Runtimesplosion Now time for Synths

* Update nightmare_organs.dm

* on_mob_insert

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/25664

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/25685

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/25582

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/25686

* bro the fucking brain does not go into the chest.

* seriously? undocumented code causing shit. if it breaks ghouls, so be it.

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: SomeRandomOwl <somerandomowl@ratchtnet.com>
Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-12-24 19:06:09 +00:00
SkyratBot
6c4c965ea4 [MIRROR] Changes occurrences of recieve in code to receive [MDB IGNORE] (#25393)
* Changes occurrences of `recieve` in code to `receive`

* Fix conflict

---------

Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
Co-authored-by: SomeRandomOwl <somerandomowl@ratchtnet.com>
2023-12-02 20:40:07 -06:00
SkyratBot
96e280edfb [MIRROR] Slime type datum, and cleans up slime related code [MDB IGNORE] (#25250)
* Slime type datum, and cleans up slime related code

* Resolves Conflict, Preserves SR Edit

* Update code/game/objects/items/devices/scanners/slime_scanner.dm

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

---------

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com>
2023-11-25 20:54:43 -06:00
SkyratBot
b557e89855 [MIRROR] More standardization for ghost notifications (READY) [MDB IGNORE] (#25104)
* More standardization for ghost notifications (READY) (#79596)

## About The Pull Request
I'm still not satisfied with how ghost notifications work. This gives
every notification with a source (99% of all notifications, in other
words) a link to jump/orbit. Currently, notifications with "play"
interactions would only get the interact link, so jumping to the source
was pretty annoying.

It removes posting the entire message in the alert tooltip, as some got
pretty lengthy and it didn't seem to fit. To replace this, they will
always use headers

After:

![image](https://github.com/tgstation/tgstation/assets/42397676/debfce52-3627-4a43-8663-33d61d893161)

![image](https://github.com/tgstation/tgstation/assets/42397676/01f299ae-dc6a-45f8-a97a-cb2c815088b2)

![image](https://github.com/tgstation/tgstation/assets/42397676/99567376-063e-458e-af2a-2dd4306747cc)

NOTIFY_JUMP and NOTIFY_ORBIT have been merged, since the only difference
seems to be whether it's a turf. The result shaves off some redundant
lines of code, since most-every usage of notify_ghosts uses
NOTIFY_ORBIT.
## Why It's Good For The Game
More standardization for the ghost notification system. Adds a few alert
headers that never had them. All in all, makes it easier for creators to
throw alerts at ghosts
## Changelog
🆑
qol: Nearly every ghost alert should now feature a "VIEW" button, even
those with click interaction.
del: Ghost alerts no longer show the entire message in the tooltip,
instead have been replaced with titles.
/🆑

* More standardization for ghost notifications (READY)

* Modular

* Update outpost_of_cogs.dm

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-19 11:25:32 -05:00
SkyratBot
596b2f050e [MIRROR] Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls [MDB IGNORE] (#24804)
* Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls

* Update supermatter.dm

* Modular

* More modular

* Update cortical_borer_egg.dm

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-05 22:01:17 -05:00
SkyratBot
47811450f6 [MIRROR] Basic Wizards [MDB IGNORE] (#24783)
* Basic Wizards (#79476)

## About The Pull Request

Makes NPC wizard mobs into basic mobs. These aren't actually used
anywhere, since their away mission was removed, so I figured I'd have
some fun with them.

![image](https://github.com/tgstation/tgstation/assets/105025397/901f3a92-74a3-492b-8435-43813ad2afa8)

Noteworthy changes are as follows:
- Wizard mobs can now wear any of the four basic colors of wizard robe
and hat. Rarely, they will wear the witch ("Marisa") outfit instead.
There was going to be a rare Tape Wizard spawn too, but the outfit
doesn't work correctly for some reason (see comments below).
- Wizard mobs no longer have a set spell loadout. Instead, they always
receive a random **targeted, primary spell**, a random **untargeted,
secondary spell**, and the spell **Blink**.
- Wizard subtypes (or var-edited wizards) can have any of the above
specified rather than random.
- Wizard AI will try to avoid ever being in melee, and will fire off
spells whenever possible with the priority order of primary > secondary
> blink. There is a mandatory 1-second waiting period between casts.
- Wizard mobs use "lesser" versions of Fireball and Blink. Lesser
Fireball does a little less damage and has a smaller explosion, though
it is still extremely dangerous. Lesser Blink simply has a smaller blink
radius so that wizard mobs don't just decide to leave.

Depending on their spell loadout, wizards can be _incredibly_ dangerous
mobs - stunning you with tesla blasts, shooting you with fireballs, and
more. Even weakened, fireball is the nastiest of these by far, able to
set you on fire or remove your limbs if you aren't properly protected.
Watch out!

The random lists have been kept pretty small, since I only wanted to use
spells that I know for sure work. Spell cards is pretty weak in AI
hands, since they don't take advantage of the fact that a human player
can spam it, but I wanted there to be a little variety in primary
attacks.

I included an UpdatePaths script here in case a downstream is using
these, but I doubt it was necessary.
## Why It's Good For The Game

Removes another simplemob.

The actual impact of this change is negligible, since this is an unused
mob, but it's possible that this lays the groundwork for these actually
being used - particularly since mappers can make them as powerful or
weak as they want by specifying a spell loadout. Wizards may make for a
tough boss challenge for a ruin or away mission, or a very mean surprise
for an admin to drop on an unsuspecting station.
## Changelog
As this is an unused mob, there are no player-facing changes.

* Basic Wizards

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
2023-11-04 20:58:11 -04:00
SkyratBot
4dae17f5f9 [MIRROR] Spider Infestation Balance Rebalance Expansion Part 2 [MDB IGNORE] (#24678)
* Spider Infestation Balance Rebalance Expansion Part 2 (#78705)

## About The Pull Request
Balances
1. Spiders now slow down equivalent to their health
2. Tarantulas can no longer put web passages or solid webs and destroy
walls outside of charge attack
3. Young spiders now cant pull objects do to being too weak and become
slower outside of webs as they should be
4. Makes pneumatic airlock seal unable to be destroyed by spiders
5. All Broodmother eggs now have a cooldown timer
Normal Eggs: 20 seconds
Abnormal Eggs: 180 Seconds
Enriched Eggs: 60 seconds

Expansions

1. Added a new abnormal egg category
2. Broodmothers can now lay abnormal eggs
3. 2 new spiders added
6. A new web type: Reflective silk screen
# Breacher

![dreamseeker_HmjGZdlh5l](https://github.com/tgstation/tgstation/assets/84478872/de957cd4-74d1-4df1-b8d7-69d7b07cdc88)

![dreamseeker_xvfmLDa8tX](https://github.com/tgstation/tgstation/assets/84478872/b8b9238b-b31d-4c3b-9483-00cbdc827cc6)

![image](https://github.com/tgstation/tgstation/assets/84478872/df46b478-a1e1-4743-bc56-9c5821e0aac0)

- Low damaging with High wound bonuses meant to debilitate enemies to
take ground for the nest

- Has the ability to breach areas by destroying walls with menson vision
to map out strategic breachings

- Immune to harsh environments with the ability to lay solid webs to
protect the nest environment

- Can send in warnings for the entire nest to hear

Will Help the nest get out of being closed off by small construction
attempts and fix some space breaches plus some back up by making enemies
slower and scarring them off with some bloodloss

# Tank

![image](https://github.com/tgstation/tgstation/assets/84478872/f4abe473-3593-40af-afd4-99c74cf83d46)

![image](https://github.com/tgstation/tgstation/assets/84478872/203a3b6a-9b8d-4d1f-ade8-cd67b50383ba)

- Extremely low damaging build to absorb damage to hold ground for the
nest
- With the ability to lay down silk screen reflectors to protect the
nest from missile attacks
- Can heal itself at a slow rate

Will provide great support to keep the nest at bay from range attacks at
some extent and act as a damage absorber in dier situations
# Abnormal Eggs

![YsCgX09](https://github.com/tgstation/tgstation/assets/84478872/b5da467c-9fc0-4581-bb18-47f9bf5bc9ee)

![EuKT8zN](https://github.com/tgstation/tgstation/assets/84478872/f8b0d652-14c8-4e11-92ee-d43d9eedfd77)

- They can only be made once every 180 Seconds
- Hold the two new spider types

## Why It's Good For The Game
New spiders to contribute to the general spider antag team dynamic,
balances for spiders are always good making them funner to play against
and bringing up challenges on their gameplay making them act less like
murdering simple mobs and more like an actual nest trying to survive in
the station.

How?

1. **Cooldown egg laying:** broodmothers now have to be more strategic
on where they place their eggs with an average of 3 eggs per minute per
broodmother
2. **Spider slowdown on damage:** Spiders now will become slower the
longer they stay out of the nest in battle making them have to retreat
back to the nest shortening their time out murdering giving incentives
to expand the nest
3. **Spider More Brute Damage:** Gives a reason to use melee against
spiders although more dangerous it gives more reward due to the higher
damage outputs since spiders are pretty much big bugs with delicate
bodies no bones no good structural consistency equal more damage to
blunt attacks
4. **Tarantula Nerfs:** Tarantulas shouldnt be able to destroy this many
walls at this rate and be able to lay so many defensive webs I don't
know why they had this abilities but their strong enough as is

## Changelog
🆑
add: Added Abnormal Eggs
add: Added Two new spiders
del: Some Tarantula abilities
balance: Spiders speed are now connected to health
balance: Spiders now take more brute damage
balance: All egg laying now has a cooldown
/🆑

---------

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

* Spider Infestation Balance Rebalance Expansion Part 2

---------

Co-authored-by: Hoolny <84478872+SethLafuente@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-10-31 11:17:49 -04:00
SkyratBot
c056f4dac9 [MIRROR] Nanotrasen basic mobs. [MDB IGNORE] (#24573)
* Nanotrasen basic mobs. (#78917)

## About The Pull Request

First and foremost, converts all Nanotrasen simplemobs into basic mobs.

To avoid messy and redundant code, or god forbid, making Nanotrasen mobs
a subtype of Syndicate ones, I've made Syndicate, Russian, and
Nanotrasen mobs all share a unified "Trooper" parent. This should have
no effect on their behaviors, but makes things much easier to extend
further in the future.

While most of this PR is pretty cut-and-dry, I've done a couple notable
things. For one, all types of ranged trooper will now avoid friendly
fire, instead of shooting their friends in the back. Even the Russians
have trigger discipline.

I've also created a new AI subtree that allows mobs to call for
reinforcements. I've hopefully made this easy to extend, but the
existing version works as follows:

- A mob with this subtree that gains a target that is also a mob will
call out to all mobs within 15 tiles.
- If they share a faction, mobs receiving the call will have the target
added to their retaliate list, and have a new key set targeting the
calling mob.
- If they have the correct subtree in their AI controller, called-to
mobs will then run over to help out.

Sadly, this behavior is currently used only by a few completely unused
Nanotrasen mobs, so in practice it will not yet be seen.

Finally, I've fixed a minor issue where melee Russian mobs punch people
to death despite holding a knife. They now use the proper effects for
stabbing instead of punching.
## Why It's Good For The Game

Removes 8 more simple animals from the list.

As said above, making all "trooper" type mobs share a common parent cuts
down on code reuse, ensures consistency of behavior, and makes it much
easier to add new troopers not affiliated with these groups. I expect
that I'll make pirates share this same parent next.

The new "reinforcements" behavior, though extremely powerful, opens up
exciting new opportunities in the future. There aren't many existing
behaviors that allow basic mobs to work _together_ in interesting ways,
and I think adding some enemy teamwork could be fun.
## Changelog
🆑
refactor: Hostile Nanotrasen mobs now use the basic mob framework. This
should make them a little smarter and more dangerous. Please report any
bugs.
fix: Russian mobs will now actually use those knives they're holding.
/🆑

* Nanotrasen basic mobs.

* Modular

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-24 21:42:47 -04:00
SkyratBot
a32c7ed2da [MIRROR] Partially reverts ghost announcements [MDB IGNORE] (#24564)
* Partially reverts ghost announcements (#79221)

## About The Pull Request
#79139 turned out to be quite annoying, it wasn't taken into account
that these alerts can stack (ie: spiders).

Of course, I poked around the code and found some inconsistencies in the
process. For instance, there were usages of Topic for custom action
behavior which could've been consolidated. There were other instances
where jump (the default action) doesn't give a link at all, which I
think it should anyway, since the screen toast gives you this.

I've standardized it more, meaning you can use "NOTIFY_PLAY" without
writing a custom link and topic handler (for instance, MMIs)
## Why It's Good For The Game
Fixes #79198
Fixes #79195
## Changelog
🆑
fix: Ghost alerts have been tuned down a bit.
/🆑

* Partially reverts ghost announcements

* Update cortical_borer_egg.dm

* Update cortical_borer_egg.dm

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-24 20:24:13 +00:00
SkyratBot
fa31acc3ec [MIRROR] Fixes a runtime with AI targeting code, refactors faction checking to be at the atom/movable level [MDB IGNORE] (#24386)
* Fixes a runtime with AI targeting code, refactors faction checking to be at the atom/movable level (#78803)

## About The Pull Request

Saw this in CI.

![firefox_lCYnPMJIqm](https://github.com/tgstation/tgstation/assets/13398309/8ef309df-09b6-4096-b6aa-340b59f7446b)

~~Quick fix for it--because turrets are not mobs trying to call this
proc on them will runtime. So let's give them their own implementation
of the proc.~~ Just kidding, let's refactor faction checking entirely

## Why It's Good For The Game

Fixes an issue with basic mob AI targeting and turrets.

## Changelog

🆑
fix: basic mobs will no longer runtime when trying to check the faction
of a porta turret
refactor: faction checking is now done at the atom/movable level
/🆑

---------

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

* Fixes a runtime with AI targeting code, refactors faction checking to be at the atom/movable level

* Modular updates

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-10-16 21:41:24 -04:00
SkyratBot
300adb2464 [MIRROR] Abandoned Domains: Adds two new psyker-oriented virtual domains [MDB IGNORE] (#24303)
* Abandoned Domains: Adds two new psyker-oriented virtual domains (#78892)

## About The Pull Request

_Really? Bitrunning maps are so simple you could do them with your eyes
closed? Hmmmmm..._

This adds two new medium-difficulty virtual domains to the pool -- Crate
Chaos and Infected Domain.

These two domains take you to neglected corners of the virtual world.
These are unstable, bizarre locales that do not support the bitrunning
machine's visual display, and must be traversed using echolocation.
**_These domains have been designed around you being a psyker, and will
turn your bitrunner avatar into a psyker until they leave the domain._**

_**Crate Chaos:** Low cost, medium reward._

Sneak into an abandoned virtual domain, where they store all of the loot
crates. There's about 40-ish crates in this space, and one of them
(RANDOM) is the encrypted cache we're looking for. The crates must be
manually inspected, requiring you to drop your weapon for a few moments,
but that shouldn't be a problem. There's no hostiles, just a bunch of
crates... right?

This one has very few shenanigans or threats in it. It's meant to be an
introductory experience to interfacing with things as a psyker, and
getting the rhythm down for moving between visual pulses.

_**Infected Domain:** Medium cost, high reward._

Enter another abandoned virtual domain. This one was sealed off from the
digital world after the cyber-police failed to contain a virus that
zombified its inhabitants, leaving it to grow unstable and full of
holes. Fortunately, you're provided with the single best tool for arming
yourself against zombies in any video game, ever -- Your very own
Mystery Box. Get armed with (basically) whatever gun you want, and go
put those wacky psyker abilities to use against those zombies.

This one is a lot meaner. Many chasms, landmines, and zombies. Walk
slowly, stay with your fellow bitrunners, and if it's too hard, there's
no shame in going back and rolling for a better gun!

The domains themselves are VERY simple, since there's little need for
decor or particularly complex layouts. The idea is that you should be
able to see everything you need to see in a given room/area with a
single vision pulse. Here's what one of the maps looks like:

![image](https://github.com/tgstation/tgstation/assets/28870487/fe63adce-aa05-4339-9d19-28ce06a2d31f)

Err, uh, I mean... This is what the maps look like:

<details>
<summary>SPOILERS BEWARE</summary>
<br>

![image](https://github.com/tgstation/tgstation/assets/28870487/265ecdc5-50f6-4a28-8068-fab08ae1f5e8)

![image](https://github.com/tgstation/tgstation/assets/28870487/0b41da6a-e018-4434-9368-6daee1f97fe9)

(You wanna find out if there's something cool under those red lines? Go
there yourself!)

</details>

These two psyker maps come with their own psyker safehouse too -- The
Bathroom. It's gross, the medical supplies are kind of just sitting
there on the floor... It looks a little bit better when you're blind, I
guess.

![image](https://github.com/tgstation/tgstation/assets/28870487/a10b70bb-5586-4d37-bbb1-a642d8524d54)
## Why It's Good For The Game

I like psykers a lot more than I'm willing to admit. Unfortunately, the
jankiness of echolocation provides such a disadvantage at times, that
any "real" conflict is usually over before the psyker is even aware
they're taking damage.

Fortunately, the controlled environments that bitrunning maps are
perfect for psykers. They give the opportunity to craft an experience
around the player being blind, rather than forcing them to play blind
through a seeing mans world.

These two domains should present players with a unique challenge that is
designed around playing as a psyker, with slightly higher-than-usual
rewards for their trouble. More importantly -- They're fun!
## Changelog
🆑 Rhials
add: Two new psyker-oriented virtual domains -- Crate Chaos and Infected
Domain.
add: Map helper for cyber-police corpse spawn.
add: Map helper for swapping the encrypted crate in an area with a
random crate from that same area.
/🆑

* Abandoned Domains: Adds two new psyker-oriented virtual domains

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2023-10-12 20:56:54 -04:00
SkyratBot
4a618d0561 [MIRROR] Watcher Nest Lavaland Ruin [MDB IGNORE] (#24286)
* Watcher Nest Lavaland Ruin (#78790)

## About The Pull Request

Adds a small new lavaland ruin, the Watchers' Grave.

![image](https://github.com/tgstation/tgstation/assets/7483112/9c3fa6f0-3e7d-4540-8646-5229eb11445b)

![image](https://github.com/tgstation/tgstation/assets/7483112/93bc14f0-9a0c-40d3-bd30-cc79a0d85752)

You will need to figure out yourself how to find a way through the walls
surrounding it (it's not very hard).
This is mostly just atmospheric but also serves as a delivery vehicle
for a unique item; an orphaned Watcher egg.
(That's kind of it in terms of loot, unless you count a handful of
lavaland mob corpses and mushrooms).

You can either eat this (it's an egg), throw it at someone to spawn an
angry watcher, or keep hold of it for a while and see what happens.

<details>

![dreamseeker_cMNnZXjfgL](https://github.com/tgstation/tgstation/assets/7483112/841db8fc-19ac-431f-aa66-c9ec5fbedbc3)

That's right it's your very own baby watcher.
It orbits your head and shoots at lavaland creatures for unimpressive
damage. It won't ever intentionally shoot a player but they might walk
in front of it, as it doesn't hurt very much they will probably forgive
you.
If you die it will continue circling your corpse to guard it against
predation.
</details>

In creating this ruin I also added a new component called "corpse
description".
It provides some extra examine text to a corpse which is removed
permanently if the mob is revived.
There's a field you can varedit on corpse spawners (or make a subtype)
which will automatically apply it to spawned corpses.
You can use it for environmental storytelling. Or admins can use it to
make fun of how you died.

Also I fixed basic mobs runtiming when examined by ghosts.

## Why It's Good For The Game

More variety in map generation. It's cute.
Adds a tool that mappers might like.

## Changelog

🆑
add: Adds a new lavaland ruin where you can find a unique egg.
/🆑

* Watcher Nest Lavaland Ruin

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-10-11 19:57:35 -04:00
SkyratBot
75f28c1479 [MIRROR] venus human traps are basicmobs + ""balance"" [MDB IGNORE] (#24279)
* venus human traps are basicmobs + ""balance"" (#78749)

## About The Pull Request

theyre basicmobs now, tangling is an ability and also applies a leash
for the duration of the beam

they now have 100 HP
also when theyre not within 2 tiles range of space vines every Life tick
they take 20 damage(they have 100 max hp)
if they are in range however they heal 10 damage

theyre slightly slower too, and they deal 10-20 damage, from the
previous guaranteed 20 damage
also their attack cooldown is 0.2 seconds slower

the tangling does not automatically pull people but for the duration of
the tangle the victim is leashed to you
which means they cannot go out of range of you, so you can move
backwards to pull them closer (as seen in video)

https://github.com/tgstation/tgstation/assets/70376633/aed77f81-c564-4fcc-879e-7dd8a9b5c787

## Why It's Good For The Game

basicmob good

also fighting these dudes unprepared is a death sentence and being
caught unprepared is easy if kudzu decides to spawn in the middle of
fucking nowhere and rolls flowering, then absolutely does not listen to
the protect kudzu part and goes from the middle of nowhere to medbay to
murderbone
hopefully this should make them less proficient at shredding people and
make them actually defend kudzu instead of murderboning

## Changelog

🆑
refactor: venus human traps are basicmobs now
balance: venus human traps have 100 health
balance: venus human traps take damage out of range of kudzu, heal near
kudzu, are slightly slower, attack slower, and their damage output is
slightly more random
balance: also venus human trap tangle ability now needs you to actually
move backwards to pull victims
/🆑

---------

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

* venus human traps are basicmobs + ""balance""

* Modular paths

* Update venus.dm

* Update venus.dm

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-11 18:45:56 -04:00
SkyratBot
ac45950aae [MIRROR] Flesh Spiders Regenerate + QoL [MDB IGNORE] (#24276)
* Flesh Spiders Regenerate + QoL (#78704)

## About The Pull Request

Replaces the Healing Touch component on Changeling-spawned Flesh Spiders
with the Regenerator component, as the comment helpfully suggests.
Flesh Spiders can no longer touch themselves to heal, instead they
automatically begin regenerating their health if they go four seconds
without taking damage. It takes 6 seconds to fully regenerate, so 10
seconds to fully heal from the edge of death (less if you're not that
injured).

![image](https://github.com/tgstation/tgstation/assets/7483112/37faca55-35fe-48dc-a3ed-03f4b79860bd)

Also I changed the sprite for flesh spider eggs to a different one we
already had rather than regular spider eggs tinted red, just because I
felt like it.
Would be cool to give the spiders their own sprite some time, but that's
for another PR.

![image](https://github.com/tgstation/tgstation/assets/7483112/8ec286c4-46dc-4aec-aa98-cb4e4e432690)
_Additionally_ the flavour text for flesh spiders was kind of messed up
by being shoved into the objectives box and claiming that it was a
directive from a spider queen you don't have, so I gave them their own
slightly different antag datum to compensate.
It also actually mentions how you heal yourself, which previously was
down to trial and error or codediving.

In the course of doing this I decided to just... move flesh spiders to
their own type path. It _sort of_ made sense for them to be part of the
giant spider typepath, but they keep being modified by changes targetted
at "balancing the Giant Spiders antagonist" which this mob isn't related
to and doesn't have any reason to follow. The fact that a mob has
similar stats to another one isn't automatically a reason to share a
typepath, and now that I have looked a little at this mob I'm sort of
interested in branching it further away from "it's a spider mob but
spawned a different way" in the future.

Finally, this spider egg cluster and the midwife one would prompt ghosts
with a radial menu with a single option on it... that's a bit pointless,
so we'll bypass that menu if there is only one possible outcome.

## Why It's Good For The Game

Currently Flesh Spiders heal by clicking on themselves and standing
still for two seconds, restoring 50% of their HP. This means they can
fully regenerate over 4 seconds unless you stun them, and with 90 HP
you're not _that_ likely to kill one during the channel time.
This just feels like an odd way for the creature to operate,
regenerating instead gives it a hit-and-run strategy and adds more use
to their webs (maybe we should give them meatier or bloody webs at some
point? Might be cool).
Also clicking yourself to heal is just unintuitive and I suspect several
players just didn't realise they could do it in the first place.

## Changelog

🆑
balance: Flesh Spiders heal automatically over time if they go a short
time without taking damage, instead of healing large chunks by clicking
themselves and waiting two seconds.
qol: Spider egg clusters which only hatch into one kind of spider don't
ask you to select that one type from a radial menu with one option on
it.
qol: As a Flesh Spider, the game now tells you how you can heal
yourself.
/🆑

* Flesh Spiders Regenerate + QoL

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-10-11 12:08:55 -04:00
SkyratBot
0c9149bf35 [MIRROR] Refactor gib code to use bitflags and have documentation [MDB IGNORE] (#24143)
* Refactor gib code to use bitflags and have documentation

* Modular updates

* Modular updates

* Modular updates

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-09 15:00:17 -04:00
RatFromTheJungle
631b1e120e replaces interdynes .50 cal with the sidano gunset (#24098)
* Update mining_roles.dm

* Update code/modules/mob_spawn/ghost_roles/mining_roles.dm

* Update gunsets.dm

* Update mining_roles.dm

* Update gunsets.dm

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-05 08:56:58 +00:00
SkyratBot
379c4d707f [MIRROR] Ashwalkers team stores players_spawned via ckeys rather than keys now [MDB IGNORE] (#24071)
* Ashwalkers team stores players_spawned via ckeys rather than keys now

* Update mining_roles.dm

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-03 09:41:05 +00:00
jjpark-kb
a9c2779cbd fixes the tendril blessing (respawning) (#24028)
* fixes the tendril blessing (respawning)

* Updates this var to be clearer that we are dealing with the ckey here

---------

Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-09-30 01:14:28 +00:00
SkyratBot
964fc99589 [MIRROR] Feature: bitrunner, a new supply role (READY) [MDB IGNORE] (#23865)
* Feature: bitrunner, a new supply role (READY)

* Delete bepis.dm

* Conflicts

* Update dynamic_rulesets_midround.dm

* Fixing this invalid icon file path

It was trying to use the aesthetics one

* Bepis is dead

* New digi sprites courtesy of CandleJaxx!!

Now in the correct branch!

* Fixing merge conflict

* bitrunning hotfixes [NO GBP]

* Modular health adjustments

* Revert "Modular health adjustments"

This reverts commit 0ff3c48d398f6c1aac51cdf8fecaf869491bbc86.

* Modular health adjustments

Only this one should be necessary

* The screenshot test

* Bitrunner den for voidraptor (FOR #23865) (#23891)

* no shower in sight

* lets bitrunners actually get to their room and spawn there

* New digi sprites courtesy of CandleJaxx!!

* Revert "New digi sprites courtesy of CandleJaxx!!"

This reverts commit eea9f47de256dd407c78450bc8f2a09b814f93e9.

---------

Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>

* Removes bitrunning unit tests (#78607)

## About The Pull Request
Removes the fraction of unit tests I thought would be safe.
Not thrilled that I have to exclude ALL unit tests now, but hey.

The issue is that atmos attempts to process on a turf which hasn't
initialized yet.
## Why It's Good For The Game
Other PRs can pass checks now
## Changelog
N/A

* Update birdshot.dmm

* Tweaks the BEPIS category of the bitrunning order console

* Adds back the flashdark that we had skyrat edited in

* Update tgstation.dme

* Fixes Voidraptor bitrunning den not being connected to the powergrid

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-09-29 20:53:36 -04:00
SkyratBot
37a8f73ae3 [MIRROR] Basic Legion & Hivelord [MDB IGNORE] (#23964)
* Basic Legion & Hivelord

* Update modular + fix diffs

* Fixing diffs

* More diffs

* Adds an AI behavior to replace the 'wander = 0' varedit for the hivelord gate guardians

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-09-27 22:30:02 -04:00
SkyratBot
0dae04a3a2 [MIRROR] Gives maint drones random designations [MDB IGNORE] (#23944)
* Gives maint drones random designations (#78573)

## About The Pull Request
Right now, drone ghost spawners give all drones the name "drone." This
makes it difficult to differentiate drones, both as a drone in drone
chat and as a non-drone. This gives all drones a unique identifier like
posibrains.

Also changes a couple of 1s to TRUEs

## Why It's Good For The Game
It's good to be able to identify drones, and for drones to be able to
identify each other.

## Changelog
🆑 Tattle
qol: drones now have individual names, instead of just "drone"
/🆑

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

* Gives maint drones random designations

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
2023-09-27 02:23:08 -04:00
lukevale
2b38953932 [SEMI-MODULAR] Underwear and Bra split (#23269)
* First go, should be all set.

* Adds SKYRATS additions

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

* code markings

* modular code markings

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

* modular code markings

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

* shuffle socks and undershirt color

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

* adds a space and sanitizes

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

* various comment and modular fixes

* more spacing

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

* more spacing

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

* various spacing fixes

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

* variable comment

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

* Fixes a dumb oversight

* fixes the return list.

* converts the bras properly

* Apply suggestions from code review

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

* fixes the overlaying issue.

* Apply suggestions from code review

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

* adds the space

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

* adds the descrptiors to changling vars

* Fixes a small oversight

* hard resolves the conflict by merging safekini

* Removed a duplicated proc

* Reverted Baby-Doll to Babydoll (for simplicity in the future)

* Implement the migration for bras from the various sources it could come from

Also cleans up some of the code in that file, so that should help nicely.

* Fixed the bikini underwear update

* Fixed issue with migrating the safekini

* sets the binder to be a bra.

* disables the bra as a undershirt

---------

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-09-23 13:40:30 -04:00
SkyratBot
01f6c1c268 [MIRROR] Fixed snow legion corpse spawning. [MDB IGNORE] (#23540)
* Fixed snow legion corpse spawning. (#78147)

## About The Pull Request

Resolves #77973

Due to a pair of oversights, snow legions erroneously drop two corpses
when killed, and both of these corpses use the spawnlists for Lavaland
legions. The duplicate has been removed, and the snow legion corpse
spawner is no longer a subtype of the regular one - which was causing
the issue. Now the new corpses will actually spawn.
## Why It's Good For The Game

Makes #76898 actually work.
## Changelog
🆑
fix: Snow legions now drop only one corpse, and no longer drop Lavaland
corpses.
/🆑

* Fixed snow legion corpse spawning.

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
2023-09-06 06:51:55 -04:00
SkyratBot
c3c696b6a0 [MIRROR] [NO GBP] Fixing a small issue with chasm fishing [MDB IGNORE] (#23515)
* [NO GBP] Fixing a small issue with chasm fishing (#78111)

## About The Pull Request
The default spawnables from chasms are spawned on top of the chasm
rather than on the user's turf, and that can be an issue.

## Why It's Good For The Game
This will fix #77982.

## Changelog

🆑
fix: fixed fishing skeleton mob spawners that immediately crumble back
into the void of whatever chasm you fished them from.
/🆑

* [NO GBP] Fixing a small issue with chasm fishing

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-09-04 13:42:48 -07:00
SkyratBot
87bfa7a61a [MIRROR] Fixes typo 'transfered', olive oil reaction repath [MDB IGNORE] (#23469)
* Fixes typo 'transfered', olive oil reaction repath

* Modular

* Update condiment.dm

* Update recipes_guide.dm

* Update _cup.dm

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-04 08:49:33 -04:00
SkyratBot
f8b2329771 [MIRROR] Fixes issue where role banned players can still play roles they're banned from. [MDB IGNORE] (#23399)
* Fixes issue where role banned players can still play roles they're banned from.

* Update sql_ban_system.dm

* Some formatting updates

---------

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-08-31 00:10:42 -04:00
SkyratBot
f2d1a4407f [MIRROR] [no gbp] Removes a source of self-ling [MDB IGNORE] (#23352)
* [no gbp] Removes a source of self-ling (#77941)

## About The Pull Request

The protection from allowing a possessing mob to lay changeling eggs of
the dead headslug corpses present in the meateor ruin was a
post-creation variable edit rather than an immutable property of the
typepath, so if for instance you had some kind of item of clothing which
allows you to turn yourself into an instance of a mob via its typepath
you could use them to turn into a headslug, bite a monkeyman, commit
suicide, and then become a changeling.

An unintended consequene of two things added by the same developer?
Starting to stop looking like a coincidence, someone should investigate
this guy...

## Why It's Good For The Game

This is undesirable, which is exactly why nobody reported it even though
they knew they could do it.

* [no gbp] Removes a source of self-ling

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-08-26 23:50:22 -04:00
SkyratBot
77e68ea0c6 [MIRROR] Gives IceBox legions their own, separate corpse-drops. [MDB IGNORE] (#23322)
* Gives IceBox legions their own, separate corpse-drops. (#76898)

## About The Pull Request

Noticed one of these snowmen drop an ash walker earlier today, and
thought I would have that fixed for consistency's sake, as there's no
ash walkers on icemoon. After I done that, I felt weird for just cutting
out a thing like that, so figured a replacement: eskimos. So yeah.

## Why It's Good For The Game

Consistency: There's no more ash walker corpses in legions on Icemoon,
as there's no, and never was, any living ones.
Fluff: Eskimos that replace them make much more sense.

## Changelog
🆑
add: Gave snow legions a separate corpse-drop pool: ash walkers
excluded, but eskimos included.
/🆑

---------

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

* Gives IceBox legions their own, separate corpse-drops.

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
2023-08-26 01:37:15 -04:00
SkyratBot
77adc42cdc [MIRROR] Add policy for sentient mobs that were revived by lazarus injector [MDB IGNORE] (#23122)
* Add policy for sentient mobs that were revived by lazarus injector (#77515)

## About The Pull Request

There's two policies:
* Normal lazarus injector gives you the 'friendly revived mob' policy
since it normally makes mobs friendly to everyone,
* Default text: "The lazarus injector has brought you back to life! You
are now friendly to everyone."
* EMPed lazarus injector gives you the 'slaved revived mob' policy since
it normally makes mobs only friendly to you,
* Default text: "You have been revived by a malfunctioning lazarus
injector! You are now enslaved by whoever revived you."
* The EMPed lazarus injector now also enslaves the mob to the person who
revived them, giving them the text: "Serve [reviver], and assist
[reviver.p_them()] in completing [reviver.p_their()] goals at any cost."

Suggestions for default text welcome,
## Why It's Good For The Game

There's currently no policy for lazarus revived mobs, so can be
confusing. See https://tgstation13.org/phpBB/viewtopic.php?f=33&t=34538
Now it's more clear what they should do.
Admins can also change the text if they want.
## Changelog
🆑
add: Add policy for sentient mobs that were revived by lazarus injector
(depends on config)
add; Sentient mobs that were revived by malfunctioning lazarus injector
now get enslaved to whoever revived them.
fix: Servant golems get their master's real name (Won't be serving
"Unknown" if their master is wearing a mask)
/🆑

* Add policy for sentient mobs that were revived by lazarus injector

---------

Co-authored-by: BlueMemesauce <47338680+BlueMemesauce@users.noreply.github.com>
2023-08-16 18:14:02 -04:00
SkyratBot
51d62e685e [MIRROR] More Suits resprites (Bonus: Chef/Bartender updates!) [MDB IGNORE] (#23088)
* More Suits resprites (Bonus: Chef/Bartender updates!) (#77558)

## About The Pull Request
Finally, my ultimate goal:
All Lawyer suits are now under suits.dmi. Having some suits in suits.dmi
and some in civilian.dmi was just really really weird and confusing.

Also updated some more Service stuff, specifically the Chef and
Bartender. Their uniform is the generic Service Buttondown, and their
other gear has been updated. The Bartender, notably, now has a new item,
the bowtie!

Full changelog:
- Adds Bowtie (and yes, it's in relevant vendors)
- Adds a greyscale Formal Jacket (the lawyer jackets but greyscaled)
- Removes `/obj/item/clothing/under/rank/civilian/chef` and
`/obj/item/clothing/under/rank/civilian/bartender`; replaces them with
`/obj/item/clothing/under/costume/buttondown/slacks/service`
- **Moves all Lawyer suit sprites to the suits.dmi**
- Converted `/obj/item/clothing/under/rank/civilian/lawyer/bluesuit` to
use the same GAGS configs as the buttondown (path unchanged)
- Resprited all Lawyer suits (except galaxy ones)
- Resprited the Lawyer jackets to match (including a currently unused
GAGS-palette one)
- Resprited the Chef Apron-Jacket and Hat
- Resprited the Botanist Overalls (and made them Greyscale)
- Updated the shirt on the Cook Jorts to be more up-to-date instead of
being new pants on a super crusty old shirt sprite.
- Puts stuff into vendors

## Why It's Good For The Game
Sprote updates yahoo!

Chef/Bartender showed their age, and essentially had the same uniform.
Now they look much more at home.

![image](https://github.com/tgstation/tgstation/assets/76465278/c4c317c3-e62a-41d3-87fe-bb38c2a46552)
GAGS Suit jacket yippee!

![image](https://github.com/tgstation/tgstation/assets/76465278/a1eaf9a9-58c9-44ef-b967-fdc62311afbd)
This jacket was put into to the Bartender's vendor for the sake of
allowing them their own gimmicks, such as this:

![image](https://github.com/tgstation/tgstation/assets/76465278/eb42e93b-9442-4cd4-891f-091a74aaccbf)
New greyscale overalls wahooo! Since they're greyscaled they're also in
the clothesmate for anybody who really wants them.

![image](https://github.com/tgstation/tgstation/assets/76465278/c8aea289-d2d9-467d-949a-82563bccb2d3)
The Lawyer suits just used an entirely different type of shading and it
made them stick out weird... I'm not quite sure on reshaping their
jackets but figured it's better to start with this and update them if
requested.

![image](https://github.com/tgstation/tgstation/assets/76465278/9a74c3a3-a2b8-48d6-89f9-77d1e0fdd86a)

As for moving Lawyer suits to suits.dmi... I just don't like them being
split up. It makes it annoying to prevent duplicates or keep them all
updated.
## Changelog
🆑
add: Added the Bowtie! Bartenders start with one on, but they can also
be found in the Bardrobe, Autodrobe, and Clothesmate. No need to tie it
either, it's just a clip-on.
add: Added a Greyscale "Formal Jacket" of the style that most suits use,
for crew who want to make their own using the buttondown shirt.
del: Removed the generic Cook/Bartender uniforms and changed them to use
the Service buttondown w/ slacks.
image: updated the majority of Lawyer suit sprites, along with the
Cook's Apron-Jacket and Hat, and updated/greyscaled Botany's Overalls!
Also the Overalls are available in the clothesmate, and the Cook Jorts'
shirt is less crusty.
/🆑

* More Suits resprites (Bonus: Chef/Bartender updates!)

* Modular path changes/removals

* Modular adjustments: removing deleted sprites, creating digi sprites for overalls and purple bartender resprite, removing greyscale overalls

* Fix grayscale configs

* Update misc.dm

* Moves icons to new location

* Update civilian.dm

* I hate all of this so very much.

* Update civilian.dm

* Update loadout_datum_suit.dm

---------

Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-08-16 18:13:39 -04:00
SkyratBot
d2b4b475cb [MIRROR] Spiders don't automatically grant an antag datum [MDB IGNORE] (#23029)
* Spiders don't automatically grant an antag datum (#77523)

## About The Pull Request

Fixes #77501

Spider egg ghost role spawners grant the spider antag datum, rather than
the act of being a spider.
This means that gold core, mapstart, polymorph belt, and other spiders
will not have an antagonist datum.

While doing this I also made a new abstract `mob/living/basic/spider`
type which all three kinds of spider life stage (`spiderling`, `young`,
`giant`) extend from, because there was a gross amount of copied code.
Now there isn't.

Also the Flesh Spider and Event Midwife eggs now simply hatch adult
spiders instead of child ones.
This is because there is no reason for either of these to have a two
minute wait time before they get going. Midwife spiders spawned by the
event should just start spidering immediately, and Flesh Spiders are
made by changelings and shouldn't be effected by measures introduced to
balance the spider gamemode.
Eggs which are laid during a round and _can_ hatch into midwife spiders
still hatch baby spiders.

Also I swapped some white pixels on the animation of the ambush
spiderling for a different colour because they looked bad.

## Why It's Good For The Game

While the policy is always "if you turn yourself into something, you're
not an antagonist" the presence of the antag datum still confuses
people. Plus that code was gross and I didn't like it.

## Changelog

🆑
fix: Giant Spiders only have an antag datum if created by the round
event.
balance: Flesh spider eggs hatch into adult spiders instead of baby
spiders.
balance: The eggs spawned by the start of the spider infestation event
hatch into adult Midwife spiders instead of baby ones.
/🆑

* Spiders don't automatically grant an antag datum

* Modular paths

* Modular paths

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-08-12 00:17:56 -04:00
SkyratBot
a669180af5 [MIRROR] Spider Evolution - Young Spiders [Ready] [MDB IGNORE] (#22972)
* Spider Evolution - Young Spiders [Ready] (#76692)

## About The Pull Request
This pr adds a young spiders that appear between spiderlings and adult
spiders. Now spiders have a stage where they are squishy but can also
spin webs and do some other things early depending on the spider type.
Spiderling stage takes 40 seconds and young spider stage take 1 minute,
ealier for spiderling this was 1 minute. Also adds a new wizard spider
sprite and makes the spider form usable.

Gives Wizard Spider version has better immunity against fire since it
can kill a wizard very fast it they are not paying attention.

Makes tangle spider get more health but makes the self-healing worse.
This is done because spider is a team antag except for the flesh
(changeling spider), making it so solo-playing as tangle is less
encouraged.

Scout spiderling gets thermal vision also. It cannot communicate, but it
can already start scouting now.

Viper deals bonus damage when an enemy is on low health. Toxins don't
kill humans anymore, and since the viper spider only deals 5 damage now
it deals more so it can actually take down enemies at low health. They
also have a little more health since they always die very fast. Viper
can also change between a defensive/slow mode with more armor or a
offensive/speed mode with less armor.

Nurse spider heals for 25 instead of 20, since 25 is one laser shot, it
makes more sense for the nurse spider to be able to heal that amount.

Flesh spider grows faster since they are a solo antag and spawn killing
isn't cool.

Tarantula spider can now tear down walls by clicking them instead of
needing to use their charge attack. They can also build wall webs and
passage webs. Their damage coeffs also got the regular burn factor for
spider so their health also increased a bit.

![promo](https://github.com/tgstation/tgstation/assets/25363960/19b9a97f-db08-4c7d-b470-46ae0bb18556)

![promo2](https://github.com/tgstation/tgstation/assets/25363960/783ced04-a97d-4849-8ec3-04c72a418284)
## Why It's Good For The Game
Now there is a smooth transition between the tiny spiderling and the
bigger spider stage. This will promote people to help the hive at an
earlier stage while not being too powerful yet. It is also realistic and
adds extra flavor to the spider antag. The other balance changes are
improvements to the game.
## Changelog
🆑
add: Young Spiders that appear between spiderlings and adult spiders.
balance: Wizard Spider version has better immunity against temp damage
and can lay webs faster.
balance: Tangle Spider sucks more with self-healing but has more health.
balance: Scout spiderling gets thermal vision.
balance: Viper deals bonus damage when an enemy is below 20% health.
/🆑

* Spider Evolution - Young Spiders [Ready]

---------

Co-authored-by: Comxy <tijntensen@gmail.com>
2023-08-09 17:59:34 -04:00
SkyratBot
7babc4866d [MIRROR] Areas created with the "land claim" are no longer hazardous to free golems [MDB IGNORE] (#22879)
* Areas created with the "land claim" are no longer hazardous to free golems (#77357)

## About The Pull Request
New areas created by standard blueprints are not safe for golems, which
is why I'm touching blueprints and create_area code and making the
blueprints found in the free golem ship an actual subtype rather than a
map-edited instance.

## Why It's Good For The Game
This will fix #77354.

## Changelog

🆑
fix: Areas created with the "land claim" blueprints are no longer
hazardous to free golems.
/🆑

* Areas created with the "land claim" are no longer hazardous to free golems

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-08-04 21:05:49 -04:00
SkyratBot
ec0f44a44e [MIRROR] Fix duplicate sentence in space comms agent flavor text [MDB IGNORE] (#22533)
* Fix duplicate sentence in space comms agent flavor text (#76880)

## About The Pull Request

Fix duplicate sentence in space comms agent flavor text
## Why It's Good For The Game

spelling fix
## Changelog
🆑
spellcheck: Fix duplicate sentence in space comms agent flavor text
/🆑

* Fix duplicate sentence in space comms agent flavor text

---------

Co-authored-by: BlueMemesauce <47338680+BlueMemesauce@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-18 16:41:54 -04:00
SkyratBot
2f552919c1 [MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two

* Merge conflict resolution

* Modular path hell

* hmm

* Update 2022-10.yml

* Another modular thing

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-16 00:41:18 -04:00
SkyratBot
35e28a5b4a [MIRROR] Goliath basic mob [MDB IGNORE] (#22412)
* Goliath basic mob (#76754)

## About The Pull Request

Converts Goliaths to the basic mob framework and gives them some new
moves because I can't leave things well enough alone.
I am planning on touching all the lavaland fauna and then maybe even the
icebox ones if I haven't got bored. The Golaith is the first because it
is iconic.

https://www.youtube.com/watch?v=JNcKvMwT4-Q
Here's me getting killed by one as a demonstration. Despite my poor
performance I would contend that they aren't a _lot_ more dangerous, but
they are a little more dangerous.

The chief difference here is that they have two new attacks which they
will only use in response to being attacked.
If fired at from range, they will target the attacker with a line of
tentacles (it doesn't track you, so is easily sidestepped).
If attacked in melee, they will surround _themselves_ with tentacles, on
a longer cooldown.

Something else you may notice in this video: I discovered that basic
mobs are actually _too smart_ to be Lavaland fauna.
Typically (unlike their old form) a mob on our new AI system is smart
enough to attack someone _the moment they come into range_ rather than
only checking on predictable ticks, which would make using the Crusher
an essentially unviable prospect.
To counteract this, Goliaths now have a delayed attack component which
gives you a visual warning and short duration to get out of range before
they swing at you. I will probably put this on all mining fauna that get
reworked, it wouldn't be a terrible thing to put on other mobs to be
honest.

Other changes: The goliath stun is now a status effect with _buckles_
you to the tentacle as if grabbed, as well as its previous effects.
While this seems purely worse, any nearby helpers can now help-click on
you to instantly remove the debuff.
Experiencing the effect of a Lobstrosity Rush Gland makes you immune to
being grabbed by tentacles and an implanted one will automatically
trigger and free you if you are hit, and the explosive effect of
Brimdust also causes the tentacle to retract (although you'd need to
take damage for this to happen). Using the tools of the land, you can
make these creatures less threatening.

The ability for a Goliath to chain-apply the ability has now also been
reduced, it won't refresh its duration if you are hit when already
buckled.

When not occupied hounding miners, Goliaths will intermittently dig up
the asteroid sand and eat any worms that this produces.
I also made some new sprites for riding a Goliath because they've been
broken since the Lavaland mob update and also kind of were ugly before
then anyway:

![image](https://github.com/tgstation/tgstation/assets/7483112/90580403-d82f-4c29-b3e1-6c462e01edda)

Other code changes:
- I made an element which only lets an attached object move every x
seconds. This is because Goliaths are far too slow to use the speed
system (the glide just looks bugged as hell) but one thing I am invested
in when converting these is to make sure that they share the same
behaviour when player or AI controlled. This is disabled while you're
riding them because it was interminably slow.
- The Goliath tentacle trail uses a supertype object now shared with the
Meteor Heart which did something kind of similar.

## Why It's Good For The Game

It begins the process of moving one of our larger subsets of NPCs onto
the newer framework for NPC behaviour.
It adds a little bit more life to an iconic but slightly uninteresting
foe which mostly just walked at you slowly.
This PR contains a few components I expect to apply more widely to other
mobs in the future.

## Changelog

🆑
refactor: Goliaths now use the Basic Mob framework, please report any
unusual behaviour.
add: Goliaths learned a couple of new attacks which they will use in
self-defence.
balance: Help-clicking a miner grabbed by Goliath tentacles will
immediately free them, as will the effect of several items you can
scavenge from around Lavaland.
image: New sprites for the Goliath saddle.
/🆑

* Goliath basic mob

* Update ash_rituals.dm

* fixes icon diff

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-14 03:10:50 +00:00
SkyratBot
02648adcd6 [MIRROR] Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests [MDB IGNORE] (#22348)
* Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests

* Fixing merge conflicts

* don't forget to ctrl+s!

* Another forgotten file

* urgh

* gets rid of vestiges of update_atom_languages()

and mind language holders

* No longer needed

* Fixes some modular grant_language calls

* Deprecated code

* This was up here before..

* Fixes failing unit tests, refactors silverscale lizards language a bit removing the need for skyrat edits

Removes some no longer needed code

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-13 22:38:45 -04:00
SkyratBot
2f5c7f8389 [MIRROR] Icon folder cleaning wave one [MDB IGNORE] (#22374)
* Icon folder cleaning wave one

* Fixe a merge conflict

* Fixes some more merge conflicts

* Fixes some modular icon paths

* Fixes even more modular icon paths...

Hopefully that's the last of them

* Fixes some merge discrepencies

* More merge issues

* ok

* not ok

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-13 16:24:33 -04:00
Bloop
68ef9b4d31 [MISSED MIRROR] Various spider fixes (#76528) (#22395)
Various spider fixes (#76528)

## About The Pull Request

Fixes #76484
Then I noticed some weird stuff which slipped through the PR and poked
at that too.

- Spiderlings and Spiders once more have names ending in (###)
- Removed an unused property on Spiderlings.
- Rewrote the descriptions for a bunch of web-abilities and web-objects
to be clearer and have better capitalisation.
- Refactored the "Web Carcass" ability to not extend from "lay web" as
it didn't need to perform most of that behaviour.
- Also I renamed it and made the description give you a hint about why
you would want to instantly spawn a statue.
- The web effigy now despawns at the same rate as the ability cools down
so you're not dumping spider statues all over the place.
- I made spiderlings move at about the same speed as humans except if
they're on webs in which case they're still pretty fast.

To be honest I am not certain an instant statue spawning button is great
to begin with and I didn't even know it was added to the game but I am
not interested in messing much with the balance for now.

This made me look at spiderlings enough that I'm going to try and make a
new sprite for them that isn't awful.

## Why It's Good For The Game

Lets you differentiate individual spiders a little bit.
Makes usage of abilities clearer.

## Changelog

🆑
balance: Guard spider web statues despawn as the ability comes back off
cooldown.
balance: Spiderlings now only move at light speed if they're on webs,
stay safe little guys.
fix: Spiders once again have random numbers after their names.
/🆑

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-07-12 10:16:55 -07:00
SkyratBot
7a9f5f2eeb [MIRROR] Mob spawners now return their created mob after create_from_ghost [MDB IGNORE] (#22132)
* Mob spawners now return their created mob after create_from_ghost (#76371)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

create_from_ghost() now returns the body it produces.

This should fix the pirate/fugitive ghost orbit notifications, since
they expect to have a mob returned by this proc. Since the mob they
expect to be returned is used as the subject for the ghost orbit popup,
the popup would have no source and end up being blank.

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game

Players selected to play pirate/fugitive will now have a functioning
orbit popup.

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

* Mob spawners now return their created mob after create_from_ghost

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2023-06-30 23:20:28 -07:00
SkyratBot
76e3348760 [MIRROR] Replaces the Reaper Scythe with the Vorpal Scythe (also the Morbid trait) [MDB IGNORE] (#21958)
* Replaces the Reaper Scythe with the Vorpal Scythe (also the Morbid trait)

* fix

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-22 20:21:36 +00:00
SkyratBot
94aff1857c [MIRROR] Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements [MDB IGNORE] (#21872)
* Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements (#75913)

## About The Pull Request

This standardizes fugitive hunter IDs, making all hunter packs use the
same subtype and giving them to hunters who would spawn with no ID at
all.

The badass flaming ID color that the OG Bounty Hunter team got are now
the standard for fugitive hunter IDs. Additionally, these IDs now come
with a radical skull trim.

(Spacepol Officers don't get the badass flaming skull ID, and instead
get a more modest Police Officer ID).

**These IDs come with access, too. Airlocks, bolt buttons, shuttle
controls, and shutters on all of the hunter shuttles now require a
hunter's ID to operate.**

While I was in the area doing mapping stuff to get the accesses in
place, I made a few other very minor changes to the shuttles. These
include:

- The Bounty Hunter shuttle now has an oxygen dispenser. Two walls have
been moved to make space.
- The Russian Hunter shuttle now gets enough oxygen tanks to share with
everyone.
- The Psyker Hunter spawners now have proper spawner menu text. This was
due to duplicate-but-not-really subtypes existing, and me mistakenly
putting the wrong ones there in a previous PR.
- The cut ai wire helpers from the Russian/Psyker shuttles have been
extended to the Bounty/Spacepol shuttles.
- Every hunter shuttle now has a shuttle pinpointer on it somewhere, and
is no longer exclusive to a single Bounty Hunter's loadout.
## Why It's Good For The Game

Some of the hunter IDs would spawn without trims or coloration, and some
hunters wouldn't spawn with IDs at all. Now, everyone gets a credible,
cool-looking ID that lets everyone know what you're here to do at a
glance.

One of these is a crazed larper with an unregistered firearm, the other
is a certified bounty hunter.

As for the hunter access, it's pretty nonsensical that anyone can just
walk into the hunter ship and set up shop. At least the pirates get
turrets! Not to mention, it's hard to balance or give hunters new
equipment in good conscience when their entire domain is public-access
and anything they can't carry is considered forfeit to the crew. Now it
can be used as a base of operations, storage area, etc. more securely.

Locking down the shuttle with accesses isn't going to stop a determined
gamer with a toolset, but it'll at least make it more interesting and an
actual risk. If the fugitives want to try and loot/hijack the shuttle,
it will require the effort of taking down one of their hunters first.

While hunters stand out for the differences/imbalances between each
group, I don't see the shuttle pinpointer as something that contributes
positively to the OG bounty hunter's uniqueness. There's no reason why
the other hunters shouldn't also be able to track their ship.

* Gives Fugitive Hunters credible IDs, access restricts the hunter shuttles, minor hunter shuttle improvements

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-06-18 15:21:47 +01:00
SkyratBot
8b3de29292 [MIRROR] Deadchat Announcement Variety Pack 2 and also some fixes to other popups [MDB IGNORE] (#21894)
* Deadchat Announcement Variety Pack 2 and also some fixes to other popups (#76053)

## About The Pull Request

This adds ghost orbit popups for the following:
- Macrobombs (or stacked microbombs) being triggered.
- HFR Meltdowns.
- Living players about to be gored by an emagged organ harvester.
- Nuclear devices being armed.
- Doomsday devices.
- Blob hosts bursting.

This also modifies the following ghost orbit popups:
- Toy hot potatoes will no longer cause a popup when armed.
- Normal spider eggs will not flash the byond window, only special egg
types.
## Why It's Good For The Game

Gives more gathering spots/information to deadchat. Let no entertaining
moment in this game go unobserved.

Spider eggs flashing your window for every single egg produced makes
alt-tabbing suck. I saw some guy on the forums complaining about it and
thought "huh yeah I guess he's got a point that pisses me off too" so
here we are.
## Changelog
🆑 Rhials
qol: Basic spider eggs no longer flash the byond window when ready to
hatch.
qol: Toy hot potatoes no longer give a ghost notification.
qol: Deadchat will be notified in the event of an imminent macrobomb
detonation, HFR meltdown, organ harvesting,
qol: Deadchat will be notified when a nuclear/doomsday device is
activated, as well as when a blob-infection bursts.
/🆑

* Deadchat Announcement Variety Pack 2 and also some fixes to other popups

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2023-06-18 14:14:32 +01:00
SkyratBot
c968dca9b2 [MIRROR] Turns Changeling Headslugs into a Basic Mob [MDB IGNORE] (#21690)
* Turns Changeling Headslugs into a Basic Mob

* fix

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-07 16:01:15 +00:00
SkyratBot
d31414c172 [MIRROR] Spider Infestation Balance Rebalance Expansion Part 1 [MDB IGNORE] (#21509)
* Spider Infestation Balance Rebalance Expansion Part 1 (#75204)

## About The Pull Request
https://hackmd.io/dxhPOOdRRKW7siqPbpfmYQ?view The HackMD goes in-depth
into what this PR is about

## Content
### Ambush Spider

![image](https://user-images.githubusercontent.com/84478872/236697303-16fb5fee-7862-457f-a053-9e634873f205.png)

![image](https://user-images.githubusercontent.com/84478872/236697338-7908e9ba-07d2-4af6-9e0a-583e74d96634.png)
### Scout Spider

![image](https://user-images.githubusercontent.com/84478872/236697485-91560e01-365d-4a9e-8401-a52b412d865f.png)

![image](https://user-images.githubusercontent.com/84478872/236697489-a9f1d46d-1e65-4e9d-995e-335e4cf40f8c.png)

![dreamseeker_JtR1iVptrV](https://user-images.githubusercontent.com/84478872/236697538-4e9ac1a4-b2b7-463a-b4ff-75f8ae2d266a.png)
## Tangle

![image](https://github.com/tgstation/tgstation/assets/84478872/756de834-5470-4a2a-9e8e-55d6a3ca770d)

![TkK4NHc](https://github.com/tgstation/tgstation/assets/84478872/4fa15fa6-db11-46a5-9b56-8e5fce4bc1c0)

![XxcLU0z](https://github.com/tgstation/tgstation/assets/84478872/7a007a94-e9a4-4700-9a0e-f5e2a178c924)

### Spiderlings

![ruCweIc](https://user-images.githubusercontent.com/84478872/236697721-b96469df-e68b-47b7-9316-ec152629e9aa.png)

![SWE0bgo](https://user-images.githubusercontent.com/84478872/236697726-7753f363-99db-46b1-8181-0dc755c1804e.png)

![BYNLUQa](https://user-images.githubusercontent.com/84478872/236697753-48c1c5b0-064a-45e9-bf19-ad2e29cdb426.png)

## Why It's Good For The Game
Currently, spiders have plenty of issues that make them a very 2d
mentional antag they kill,die, and respawn which is boring and leads to
a bunch of balance issues for their current design this PR both fixes
the current issues spiders have and adds more depth into the antag.
## Changelog
🆑
add: Added 3 new spider types
add: Added more spider abilities
balance: Rebalanced spiders
fix: Fixes spiderlings having density
/🆑

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Spider Infestation Balance Rebalance Expansion Part 1

---------

Co-authored-by: Hoolny <84478872+SethLafuente@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-06-06 21:41:59 -07:00