Commit Graph

15331 Commits

Author SHA1 Message Date
carshalash
2be66ded0c Space dragons are no longer acceptable dna for the omnitrixbelt (#82157)
## About The Pull Request

We've had people able to transform into space dragons with no
limitations for quite a while now. Whenever dragons are killed multiple
people will rush the polymorph belt and become space dragons. this
version of the space dragon faces none of the limitations of the regular
antagonist, such as not needing to place portals.

## Why It's Good For The Game

Crewmembers should not be able to become space dragons en masse after
doing a single anom core test. This isn't healthy and leads to headaches
for admins and players who aren't a part of the dragon spam.

## Changelog

🆑
balance: The polymorph belt will no longer register space dragons as
acceptable DNA.
/🆑
2024-03-26 19:10:31 -04:00
John Willard
2163f60527 Simple animal xenos are now basic animal xenos (#82187)
## About The Pull Request

We currently have 2 types of xenos in the codebase, simple animal and
carbon.
I'd like to unite them both under basic, and I thought I should go for
simple animal first since it's more of a conversion than a remake.
This helps set a base for a future basic-only xeno, which would require
the following:
- Basic mobs (or just anything than Carbon) to have Organs, which we can
then use for things like referring to their plasma sac for egg-laying,
etc.
- All xeno types having a basic mob variant, preferably with an AI so
they would work without a player.
- Something be done about larva, either we'd split basic xenos into
"larva" and "adult" (like carbon) or have it be a separate path that can
also have organs so they can still have hivemind.

Everything else seems to have been done overtime as simple animals have
been converted to basic (HUDs and holding things now seem possible,
etc.)

Even if this doesn't work out, at least this cuts off a good chunk of
the remaining simple animals to convert to basic.

Sprites used (for mapping helpers):

Fire medkit
Toxin medkit
Oingo Boingo punch face (i tried to shrink it down)

## Why It's Good For The Game

This helps advance us move away from simple animals, and helps move
carbon xenos to basic mob later too if that's what we want to go for.

## Changelog

🆑
refactor: Xenomorphs (Lavaland & Oldstation ones) are now basic mobs.
/🆑
2024-03-26 15:28:58 -06:00
SyncIt21
02d83c1f4f Fixes recharge stations charge rates (#82191)
## About The Pull Request
- Fixes #82190

Have to now use the assigned constants and not magic number `10000`.
Also stuff will take the exact charge needed without any wastage.

## Changelog
🆑
fix: recharge stations draw the same amount of power as before but
directly from grid(without using apc cell power) and won't waste any
excess power
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-25 17:29:12 +01:00
MrMelbert
33a371c0b7 Adds some generic species lore, descriptions, etc. to a few species (#82162)
## About The Pull Request

Adds lore, descriptions, and pref perk setups to Abductors, Androids,
Jellypeople, Golems, Podpeople, and Snailpeople

# This PR does not imply nor implicate any intent to make any of the
species roundstart species.

Note: All the lore and descriptions created were intended to be
extremely generic to work with "future lore", IE essentially just temp
lore. Suggestions are welcome.

## Why It's Good For The Game

This kind of stuff is good to have setup in case rogue admins, station
traits, or monthly events make these species roundstart.

See: Monkies. Which have a fully setup pref page for Monkey Day. 

## Changelog

🆑 Melbert
qol: A few species (such as Jellypeople) now have proper(ish) preference
menu setups
config: The in-repo species config has been updated. Well it's still the
same by default, but it's now updated for newer species.
/🆑

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
2024-03-24 19:26:16 -06:00
Rhials
4fe36e3e9e Fixes Venus Human Trap Tangle Ability (#82178)
## About The Pull Request

This makes the Venus Human Trap's dreaded "Tangle" ability work again!
You can also now just click on people from a range to activate it too,
instead of using the ability button.

It has been converted into a projectile attack mob ability. This
(surprisingly) didn't require any work beyond extending the ability
path. Some balloon alerts have been thrown in as well, to notify the
user when they've tried to tangle something they can't.

The max_vines var has been axed, and you can only target one user. This
is still an improvement over the current (zero) number of people you can
target with this ability. I have no idea what this var was supposed to
do because the ability has not worked since its implementation.
## Why It's Good For The Game

Closes #79848.
## Changelog
🆑 Rhials
fix: Venus Human Traps can once again entangle victims and drag them
into their web.
/🆑
2024-03-24 13:29:56 -06:00
MrMelbert
afe1b7443c Fix species var/hair_color not being used for, well, hair color (#82168)
## About The Pull Request

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

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

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

## Changelog

🆑 Melbert
fix: Fixed Slimepeople's hair not matching their slimey colors. 
/🆑
2024-03-24 13:25:46 -06:00
MrMelbert
959c15cdbe 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
/🆑
2024-03-24 13:25:03 -06:00
MrMelbert
e634d66121 Cleans up blood deficiency hardcoding (#82185)
## About The Pull Request

- Dehardcode blood deficiency 
   - Deletes "update mail goodies" 
   - Deletes "updates quirk mail goodies"
- Both of these were only used to update blood deficiency mail goods, we
can just do that with a signal.
   - Deletes hardcoded "get_quirk / lose_blood" calls
- While you can `get_quirk`, much like you can `GetComponent` generally
speaking it's much cleaner to do it via signals.
      - In this case I added a signal to `handle_blood`. 
- And by adding this signal we can do similar dehardcoding for
jellypeople, removing their `spec_life` and running it off the signal.

## Why It's Good For The Game

Ye olde "consistency and cleaner code". And probably a tiny but of
optimization to be yeeked out of it since we don't need to iterate over
a mob's quirk list every life tick, nor every time we change specieses.
But that's probably not even a drop in the bucket so not even worth
mentioning.

Blood defi still happens in sync with Life (as noted by the comment).

## Changelog

🆑 Melbert
refactor: Blood deficiency and slimepeople now handle blood a tiny bit
differently, report any oddities.
refactor: Blood deficiency now handles its mail goods a tiny bit
different, report any oddities.
/🆑
2024-03-24 13:24:23 -06:00
MrMelbert
a8fc9cf7e2 Makes Bioware into Status Effects because they're just Status Effects but their own datum (#81989)
- Refactors `/datum/bioware` -> `/datum/status_effect/bioware`. 
- Literally everything bioware datum does is done by the status effect
API, including handing dupes / unique keys
- Tallies all blackbox surgeries done rather than just nerve splicing
2024-03-23 21:01:28 +00:00
MrMelbert
aa38fb4227 Jellyperson Hair Fix B: "If you're gonna have it, do it right" (#82167)
## About The Pull Request

#76074 Accidentally made all Slimepeople types have all head flags, when
Jellypeople and Luminescents should not have.

This is a proposed alternate fix to #82166 which, rather than removing
all hair from all jellypeople types (except slimes) , it makes all
jellypeople hair look like slime (like slimepeople).

This PR also fixes jellies have some head flags they shouldn't. 

## Changelog

🆑 Melberet
fix: Jellyperson, Luminescent, and Stargazer hair no longer look bad.
All jellyperson types no longer have eyesockets.
/🆑
2024-03-23 14:59:52 -06:00
Pickle-Coding
c1f11f26ce Converts arbitrary energy units to the joule. Fixes conservation of energy issues relating to charging cells. (#81579)
## About The Pull Request
Removes all arbitrary energy and power units in the codebase. Everything
is replaced with the joule and watt, with 1 = 1 joule, or 1 watt if you
are going to multiply by time. This is a visible change, where all
arbitrary energy units you see in the game will get proper prefixed
units of energy.

With power cells being converted to the joule, charging one joule of a
power cell will require one joule of energy.

The grid will now store energy, instead of power. When an energy usage
is described as using the watt, a power to energy conversion based on
the relevant subsystem's timing (usually multiplying by seconds_per_tick
or applying power_to_energy()) is needed before adding or removing from
the grid. Power usages that are described as the watt is really anything
you would scale by time before applying the load. If it's described as a
joule, no time conversion is needed. Players will still read the grid as
power, having no visible change.

Machines that dynamically use power with the use_power() proc will
directly drain from the grid (and apc cell if there isn't enough)
instead of just tallying it up on the dynamic power usages for the area.
This should be more robust at conserving energy as the surplus is
updated on the go, preventing charging cells from nothing.

APCs no longer consume power for the dynamic power usage channels. APCs
will consume power for static power usages. Because static power usages
are added up without checking surplus, static power consumption will be
applied before any machine processes. This will give a more truthful
surplus for dynamic power consumers.

APCs will display how much power it is using for charging the cell. APC
cell charging applies power in its own channel, which gets added up to
the total. This will prevent invisible power usage you see when looking
at the power monitoring console.

After testing in MetaStation, I found roundstart power consumption to be
around 406kW after all APCs get fully charged. During the roundstart APC
charge rush, the power consumption can get as high as over 2MW (up to
25kW per roundstart APC charging) as long as there's that much
available.

Because of the absurd potential power consumption of charging APCs near
roundstart, I have changed how APCs decide to charge. APCs will now
charge only after all other machines have processed in the machines
processing subsystem. This will make sure APC charging won't disrupt
machines taking from the grid, and should stop APCs getting their power
drained due to others demanding too much power while charging. I have
removed the delays for APC charging too, so they start charging
immediately whenever there's excess power. It also stops them turning
red when a small amount of cell gets drained (airlocks opening and shit
during APC charge rush), as they immediately become fully charged
(unless too much energy got drained somehow) before changing icon.

Engineering SMES now start at 100% charge instead of 75%. I noticed
cells were draining earlier than usual after these changes, so I am
making them start maxed to try and combat that.

These changes will fix all conservation of energy issues relating to
charging powercells.
## Why It's Good For The Game
Closes #73438
Closes #75789
Closes #80634
Closes #82031

Makes it much easier to interface with the power system in the codebase.
It's more intuitive. Removes a bunch of conservation of energy issues,
making energy and power much more meaningful. It will help the
simulation remain immersive as players won't encounter energy
duplication so easily. Arbitrary energy units getting replaced with the
joule will also tell people more meaningful information when reading it.
APC charging will feel more snappy.
## Changelog
🆑
fix: Fixes conservation of energy issues relating to charging
powercells.
qol: APCs will display how much power they are using to charge their
cell. This is accounted for in the power monitoring console.
qol: All arbitrary power cell energy units you see are replaced with
prefixed joules.
balance: As a consequence of the conservation of energy issues getting
fixed, the power consumption for charging cells is now very significant.
balance: APCs only use surplus power from the grid after every machine
processes when charging, preventing APCs from causing others to
discharge while charging.
balance: Engineering SMES start at max charge to combat the increased
energy loss due to conservation of energy fixes.
/🆑

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-03-23 16:58:56 +01:00
Bilbo367
466b3df048 Refactor removing unused defines. (#82115)
## About The Pull Request

Refactors a lot of the unused defines.

## Why It's Good For The Game

Refactors a lot of the unused defines.

## Changelog
Nothing player facing

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-22 21:29:35 -06:00
Varoxus
5a3938ce3e Fat trait fix attempt 2 (#81947)
## About The Pull Request
Adds in a new trait to handle the tackle defense bonus that was
previously granted by `TRAIT_FAT` to solve a few problems that were
occurring downstream, this new trait is handled by the stomach organ and
handles it all automatically. Also edits the lipoplasty check to see
that the target is fat from eating too much.

## Why It's Good For The Game
No functions will have their results altered by the change and it will
help solve some some issues downstream.

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-21 20:30:56 -06:00
Ben10Omintrix
0a0c1260b5 Cultist pets (#80595)
## About The Pull Request
cultists can now convert pets on their side. when you convert a pet, it
will become much more dangerous and obedient to you, it will also gain a
new dangerous AI. cultist pets will look for fellow dead cultists, and
revive them by dragging them to nearby revival runes and activating it.
if there is no revival runes around them then they will create their own
and drag u to it. u can give them commands to follow, attack, or to
create revival runes. they will also go around to crit non cultists so
cultists can convert them

![pughealed](https://github.com/tgstation/tgstation/assets/138636438/8cd10a4f-2a30-40d9-b4fb-c9ff70bdcddd)

they will also now feed on organs and blood for healing

## Why It's Good For The Game
adds a extra layer to cult, u can now command non-sentient pets to aid
you

## Changelog
🆑
add: cultists can now convert pets to their side
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-21 18:47:04 -06:00
Ghom
76fa5bcdad Skillchips are now copied to bitrunning avatars, plus a new chip to dodge bullets while flipping. (#81980)
## About The Pull Request
Active skillchips are now copied on bitrunning avatars. To celebrate
this, I've made a skillchip, which can be ordered through the bitrunning
vendor, that lets you dodge projectiles for the duration of your flips
plus 1/10 of a second (so 8/10 of a sec), at the cost of stamina (if you
think 20 is a bit too low, tell me).

I've also renamed the files containing the orderable bepis disks and
bitrunning tech because they inconsistent with the names of their
sections shown in the UI.

## Why It's Good For The Game
I think (active) skillchips being copied to bitrunning avatars makes
sense as after all they're both tech-y, brainy stuff. It's a bit of a
shame that no one thought of doing that.

## Changelog

🆑
add: Active skillchips are now copied on bitrunning avatars.
add: To celebrate it, a skillchip is now available from the bitrunning
order console, which lets you dodge projectiles for the duration of your
flips, at the cost of stamina.
/🆑
2024-03-21 20:44:10 +00:00
Higgin
3f66b76872 fixes fake laser lenses falling out of pirates (#82102)
## About The Pull Request

fixes #81812 

pirate basic mobs use casingtype instead of projectiletype. 

This meant pirates shooting lasers were trying to drop casings with
their projectiles. switching it to use projectiletype for the
/trooper/pirate/ranged types fixes the issue, though it would need to be
respecified for pirates using ballistic weapons if we want them to drop
the stuff later.

## Why It's Good For The Game

fix good. fake bullet casings bad

## Changelog

🆑
fix: basic mob pirates no longer drop fake energy weapon lenses when
shooting you to death with lasers.
/🆑
2024-03-20 13:38:08 +01:00
Vekter
8b0f2f50b2 Ports additional Felinid ears from Orbstation (#82066)
## About The Pull Request
Adds 5 new ear options from Orbstation, originally PRed in
lizardqueenlexi/orbstation#360. Sprites by @Or-Fi-S.

Big:

![image](https://github.com/tgstation/tgstation/assets/7019927/5f847130-e5f5-44cc-adb4-c740c4c4f69b)

Coeurl (FFXIV Miqo'te style):

![image](https://github.com/tgstation/tgstation/assets/7019927/34448bee-d6af-4d3c-b796-384ec9904368)

Fold:

![image](https://github.com/tgstation/tgstation/assets/7019927/a7dafd05-f652-460e-9386-f7fcbef696e9)

Lynx:

![image](https://github.com/tgstation/tgstation/assets/7019927/174ff630-6eb8-4bb9-8f4f-791b70356c58)

Round:

![image](https://github.com/tgstation/tgstation/assets/7019927/b3a24d1b-66fa-4883-8c27-871ae8966d6c)

Also makes it so the code guarantees that custom ears on a felinid
actually count as felinid ears and not human ones, as the code wasn't
checking properly when preferences were applied. There's probably a
cleaner, more permanent way to do this and a refactor is needed
somewhere down the line (man that sprite accessories file is getting
long huh) but I'll leave that to a more competent coder.

## Why It's Good For The Game
More customization options are good also Cobby said I could


![image](https://github.com/tgstation/tgstation/assets/7019927/56bbe285-068f-41a1-92cc-9f3861875090)

## Changelog
🆑
add: Added 5 new Felinid ear options, ported from Orbstation! (Sprites
by Or-Fi-S)
/🆑

---------

Co-authored-by: _0Steven <jaydondegenerschool@gmail.com>
2024-03-19 19:42:58 -06:00
Ghom
9cc18fe1fe [NO GBP] The deathmatch modifiers modal menu can actually be opened now. (#82041)
## About The Pull Request
I've fucked up the logic, so it requires the user to be both the host
and an admin to open it, which was the case when I tested it locally.
This PR fixes that and other issues (and **un**dumbs some of the code).
The spinning screen modifier has also been scrapped for being downright
awful and breaking my screen.

## Why It's Good For The Game
Fixing stuff I've thankfully noticed early.

## Changelog

🆑
fix: The deathmatch modifiers modal menu can actually be opened now.
Also fixed a bunch of issues it had.
/🆑
2024-03-18 21:10:57 +01:00
san7890
47840962cf Fixes Headsets Being Wonky On Non-Poly Parrots (#82046)
## About The Pull Request

Fixes #81861

Basically we just typecasted too hard on the headset strippable item so
it was impossible to get headsets from non-Poly parrots. pretty silly
mistake because literally everything else is meant to typecast to just
`/mob/living/basic/parrot`. one line fix and leroy jenkins
## Why It's Good For The Game

parrots shouldn't "eat" headsets and make them entirely unretrievable
once placed on their ears.
## Changelog
🆑
fix: If you place a headset on a non-Poly Parrot, you should be able to
remove it from the parrot as-expected now rather than having the parrot
send it to the shadow realm.
/🆑
2024-03-17 21:47:02 +01:00
Rhials
d064ba0c40 [NO GBP] Fixes plasmaman nukeop reinforcements being given the wrong outfits (#82004)
## About The Pull Request

This updates the plasmaman species outfit registry to consider all
reinforcement outfits the game can pick for you. I mistakenly only
overwrote the base type of reinforcement costumes, meaning plasmamen
wouldn't actually be given a plasmaman outfit and would burst into
flames and die upon spawning.

Now, every reinforcement outfit redirects to the base plasmaman
reinforcement outfit, because making 5 new plasmaman variants of
existing outfits felt like an unwieldy solution.
## Why It's Good For The Game

I was told that plasmamen die when spawned in as nukie reinforcements.
They probably shouldn't be doing that.
## Changelog
🆑 Rhials
fix: Plasmamen nukie reinforcements are now properly given a
plasmaman-safe outfit.
/🆑
2024-03-17 21:43:56 +01:00
RikuTheKiller
ad6c2237c6 Removes remove_any from the game (#82020)
## About The Pull Request

Okay, so, turns out smoke machines, cigarettes, vapes and all sorts of
things intentionally unmix your mixes.
Why? For chaotic effects. Well sadly it just deletes chems from mixes
and makes them completely useless.
It also tends to have very little effect on deathmixes and moreso just
gimps you ability to use them for healing.
This is pretty bad, especially for machines like the smoke machine that
are specifically intended for chemists.

This PR entirely removes all uses of remove_any as well as the proc
itself from the game. It's just bad.
## Why It's Good For The Game

As it turns out, the game intentionally gimping your chem mixes just to
fuck with you is bad.
Especially when it's both obscure and not really all that fun for
gameplay.
## Changelog
🆑
balance: Smoke Machines, Showers, Vapes, etc will no longer arbitrarily
delete a random amount of the chems they are processing
/🆑
2024-03-17 15:52:41 -04:00
John Willard
32b40e83a5 Abilities with no owner control isnt given to ghosts (#82037)
## About The Pull Request

Actions that don't give the user control (so don't give them an action
button) will now no longer give them to ghosts either. Ghosts should see
the same information as the player when observing them. They don't need
to see guardian's protection mode and bileworm's spitting, for example.

## Why It's Good For The Game

Explained in the about the pull request already, ghosts should have the
same information as the player they are orbiting, not see the hidden
actions. It makes it annoying for contributors to have to manually set
every ability meant to not be seen by players to also not be seen by
ghosts.

## Changelog

🆑
fix: Action abilities hidden from players are now not shown to observers
either.
/🆑
2024-03-17 12:40:57 +01:00
MrMelbert
c1a6867a80 MODsuit now uses spacesuit cell hud element (#81985)
## About The Pull Request

Rather than using screen alerts, MODsuits will now use the spacesuit
cell hud element, which normal space suits use to show how much cell is
left.

Also adds some new states to the cell hud icon to accommodate. 

## Why It's Good For The Game

1. Less clutter in the alerts tab. Allows for higher priority screen
alerts to be displayed, such as being on fire.
2. Less confusing for Ethereals using MODsuits. 
3. Consistency with normal space suits. 

## Changelog

🆑 Melbert
add: MODsuits now use the "suit charge" HUD element to show how much
charge they have left, rather than a screen alert
/🆑
2024-03-16 21:26:40 +01:00
Ghom
7e907771fb Deathmatch modifiers (#81673)
## About The Pull Request
This PR adds the base to simple modifiers that the host can select to
make the minigame ~~worse~~ more entertaining for everyone.

Here's the screenshot of the UI (without a few modifiers I added later):

![immagine](https://github.com/tgstation/tgstation/assets/42542238/95bb9414-d93b-4c45-ab8a-ed8f28856018)

## Why It's Good For The Game
I've seen this minigame is frankly popular lately, so I thought I could
contribute to it.

## Changelog

🆑
add: Added 20+ modifiers to the deathmatch minigame, which can be
enabled by the host.
/🆑
2024-03-16 12:06:02 +00:00
Ghom
bff8de4fe1 Skateboard tweaks and buffs. (#81928)
## About The Pull Request
I have been dissatified with the situation of skateboards for a long
while now, especially with the 'pro' and 'hoverboard' versions that
provide negligeable bonuses for the high price they warrant.

On top of all things, this PR makes the aforementioned two subtypes
faster than the standard and improvised skateboards.
Second, the hoverboard now hovers and can be used in zero g (more info
in the CL). The thing costs about 2000, so this is pretty much deserved.
Third, skateboards respect move intents. While in walk intent, you will
ride it slowly, but you also won't crash against other things.
Fourth, improvised skateboards are a nick more unstable and not
mechanically on par with standard skateboards.

## Why It's Good For The Game
Skateboard were cooler back when you would go fast and die young by
crashing into an airlock/spessman/wall at stim speed imho, also see the
first paragrath of the above section.

## Changelog

🆑
balance: The pro skateboard and hoverboard are now faster.
balance: The improvised skateboard is a nick more unstable than the
standard, so the two aren't exactly the same.
add: Riding a skateboard on walk intent will prevent you from crashing
into things, at the cost of speed.
add: hoverboards now actually hovers and can be used even in zero g.
There are a caveat to it: It cannot be ridden on open space gaps deeper
than one level or actual space, unless there're objects that prevent
falls, like lattice or catwalks.
/🆑
2024-03-16 01:37:57 +00:00
FlufflesTheDog
950675f4e7 Cleanbots can't acid people unless emagged. (#82008)
## About The Pull Request
Returns a long lost restriction to cleanbots of not being able to spray
acid on people unless emagged. Labeling as a fix since it's potentially
quite destructive, annoying, and presumably not intended. (likely
introduced by #80128)
## Why It's Good For The Game
Letting people go from ghosts to melting clothes and PDAs in 3 clicks is
maybe not great
## Changelog
🆑
fix: Cleanbots once again require an emag to spray acid on people. They
can still acid trash objects normally.
/🆑
2024-03-15 13:37:27 -06:00
13spacemen
31996c114b [no gbp] fix span type errors with poll alerts (#81979)
type mismatch due to feeding non text into span defines
2024-03-14 17:36:08 +00:00
John Willard
405d369694 Crushers and PKAs: Coop Upgrades (#81940)
## About The Pull Request

This PR makes 2 changes, one to the crusher and one to the PKA

Crushers: Their projectile no longer overrides eachother, so a mob can
have the blue bubble from several crushers. Triggering it will only
trigger the one that you own, so each player has to go hit the mob to
strike.

PKA: Fixed the minebot passthrough upgrade, and also adds a human
passthrough upgrade. They are incompatible with eachother, so you choose
between solo+minebot or coop, which is a compromise I thought as a
better alternative to taking mod space (the minebot passthrough
currently takes none). This upgrade is available solely at the mining
vendor, for 750 points.

## Why It's Good For The Game

The new mining has been great, and one thing I love is that it
encourages more coop play. Excavating boulders with other miners is much
more engaging and has good teamwork in it, and also is a good way to
encourage miners to stick together more and even fight megafauna in
pairs.
This hopes to make that easier to do, because currently having anyone
with a crusher is sort of a detriment to the whole team. Either the PKA
dude will accidentally shoot the crusher user while they're going in for
a melee kill, or 2 crusher users will be constantly erasing the mark of
the other. This will hopefully make that aspect better, and make mining
with friends a little better.

## Changelog

🆑
balance: Crusher marks no longer overwrite eachother, fauna can have one
from each crusher.
balance: Ash drake's crusher trophy no longer affects people the same
faction as you (like hiero trophy), so you won't friendly fire people
with it.
add: Added a new upgrade: Human Passthrough. You can shoot your PKA
without having to worry about friendly fire with this, for 750 mining
points at your mining vendor.
fix: Minebot passthrough upgrade now properly makes PKAs pass through
minebots.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-03-14 00:41:56 +00:00
Ghom
5d77f75ca4 [NO GBP] Fixes the larva "hide" ability not properly hiding larvas under tables. (#81921)
## About The Pull Request
This PR fixes yet another small issue with elevation.

## Why It's Good For The Game
This PR fixes yet another small issue with elevation.

## Changelog

🆑
fix: Fixed the larva "hide" ability not properly hiding larvas under
tables.
/🆑
2024-03-13 23:18:30 +00:00
Pickle-Coding
4e96a0a406 Prevent bioware list deletion runtime for human destroy (what the fuck is a bioware?). (#81907)
## About The Pull Request
Prevent bioware list deletion runtime (biowares remove themselves from
the biowares list when deleted) by making it a lazy list delete.
## Why It's Good For The Game
Removes a runtime.
## Changelog
🆑
fix: Prevent runtime from humans with biowares gettingn deleted.
/🆑
2024-03-13 23:10:24 +00:00
Ghom
9f4a8dfc50 Buffs the SC/FISHER Saboteur Handgun. (#81553)
## About The Pull Request
The saboteur gun will now silence pAIs, toggle off radio broadcasting
(won't auto-relay nearby speech), disable turrets, chill out secbots a
little, and turn off APCs like power outages do.
The disrupt duration has also been buffed from 10/20 to 15/25 for ranged
and point-blank respectively.
Removed a conspicious chat message from an otherwise inconspicious gun.
Brought the code up to date.

## Why It's Good For The Game
The concept is cool, alas it's also undermined by how much of a joke
it's right now, and the game has plenty already.
The amount of interactions it has with things is underwhelming, so you
could barely consider it a stealth tool. The duration is also quite
scarce, I pointed that out in the original PR too.

Basically, I want to make the item cooler.

## Changelog

🆑
balance: Buffed the duration of the SC/FISHER Saboteur Handgun's
disruption effects. It's also stealthier and it won't conspiciously
alert living mobs hit by it.
add: Added saboteur interactions with radios, pAIs, turrets, secbots and
APCs.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-03-13 22:25:29 +00:00
Ghom
737822398a Blackmarket refactor and balance, fixing spy bounties, plus a new category for people captured by pirates/tots/contractors. (#81818)
## About The Pull Request
This PR aims to take care of a few potential hard dels and fix the
fenced goods category first and foremost.

The PR also adds a new one that enables you to buy mobs captured by
antags in advance, before they're sent back to the station. Unlike other
categories, it doesn't have "Launch" and "Teleport" as delivery methods,
instead it uses a special "Supply Pod" delivery method that ships the
chattel directly to your location. This method costs 400 credits,
however, if you've built the LTSRBT, shipment will be free.

Another thing, I always felt LTSRBT to be pretty fucking dumb as is. Way
too overpriced for the benefits it offers: a slighty cheaper delivery
method that, while definitely better than the other two, doesn't really
pay off or honestly even remotely compensate the 4000 credits you just
spent to get it, especially if you're only buying a couple items at
most. So I decided to remove it from cargo and add it to the blackmarket
as a 500 to 750 creds item, available every round.

Human mobs sold by the pirate bounty pad are no longer deleted, instead
they're properly ransomed and sent to the holding facility, much like
for contractors and tots. This means they're also added to the black
market.

## Why It's Good For The Game
The blackmarket system has some issues to it that need to be fixed
(otherwise the "Fenced Goods" and "Hostages" categories wouldn't work).
The Pirate Pad deleting "ransomed" mobs instead of actually ransoming
them is lame. The LTSRBT shouldn't suck as much. Also more market stuff.

This will fix #81809.

## Changelog

🆑
fix: Fixed the "Fenced Goods" black market category.
balance: Removed the LTSRBT from cargo and added it to the blackmarket,
reduced the price from 4000 to 625 on average.
balance: The time it takes for captured mobs to be automatically sent
back to the station from the holding facility has been increased from
3-4 minutes to 6.
add: You can buy mobs captured by contractors, traitors and pirates from
the black market and have them sent back to the station in advance. For
safety, they'll also be handcuffed (not always) upon delivery.
add: Human mobs sold by pirates are not deleted anymore. Instead,
they're now captured and sent to the holding facility.
/🆑
2024-03-13 15:22:01 -04:00
Justice
558fae3b64 Fixes grammar and formatting on the description of friendly megafauna (#81922)
## About The Pull Request
Fixes grammar and formatting on the description of friendly megafauna
## Why It's Good For The Game
It's not
## Changelog
🆑
spellcheck: Fixed grammar and formatting on the description of friendly
elite mining mobs.
/🆑
2024-03-13 11:17:32 +01:00
John Willard
9f2d708007 Drunk people no longer feel cold (#81939)
## About The Pull Request

Simple PR, if you're drunk then you no longer feel the effects (or get
the warnings) of cold temperatures.
This makes things like cryosting and the coldness of space give you no
warning or tell of why you're being hurt, but it also means you don't
suffer its slowdown.

## Why It's Good For The Game

It's a small bit of realism that doesn't do much to change the game, but
gives some extra bonus/drawback to alcohol that isn't really changing
the game by any means.

## Changelog

🆑 JohnFulpWillard, Atlasle
balance: You no longer feel cold if you're drunk. You still take damage,
but get no warning or slowdown.
/🆑
2024-03-12 18:00:50 -04:00
Iajret
c8c18d77c1 Prevent borgs resisting from grabs when they are locked down (#81904)
## About The Pull Request
Prevents borgs resisting from grabs when they are locked


![image](https://github.com/tgstation/tgstation/assets/8430839/3fc8dee4-3539-4891-9a91-bc27b3610da2)

(yes, there's small baloonies message barely visible)
## Why It's Good For The Game
Isn't it fun to try and pull some locked down borg while they press B
like hundred times per second so you can't even move them.
## Changelog
🆑
fix: As a borg you shouldn't be able to resist from grab while locked
down
/🆑
2024-03-12 08:03:00 +00:00
MrMelbert
56a26d03f8 Saymode won't process custom say emotes (#81883)
## About The Pull Request

Closes #62666 

Every saymode does some snowflake thing for sending out its messages to
the relevant mobs, and none of those snowflake things have handling for
custom say emotes.

We could manually go through and add the required handling, but for each
implementation, it would get messy fast. So it's a bit easier to just
prevent mobs using saymode from attempting to "emote" over them.
Especially since it doesn't make sense in a lot of situations that we
use saymodes.

## Changelog

🆑 Melbert
fix: Silicons can use asterisks in binary without fear of saying
something interesting.
/🆑
2024-03-11 19:35:24 -06:00
san7890
3681a19bfe Fixes Hatsune Migo Spawning Comments and Code (#81856)
## About The Pull Request

The `prob()` was not lining up with the comment, `prob(0.04)` is NOT
1/20 odds. it's also wack to have 1/20 odds for something meant to be
super duper cool and rare (lest people get sick of the joke), so I
balanced it to be a `prob(0.1)` odds as well (1/1000 i think).

i also don't like how non-special the mi-go replacement was and detested
the fact that the `desc` would duplicate if an admin spawned in a mi-go
twice (mentioning the blue hair twice), so let's make it a tad bit more
sane by actually replacing it with the type introduced in that PR and
checking against that type.
## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/34697715/6c31296d-2bc6-4c60-a493-1f7f2ad73337)

people would likely try to fix the way this worked in the future to
match the comment and that's icky imo. let's rebalance it to be more
sane and also clean up the code
## Changelog
the odds of players having seen this sprite in game were already really
rather low so let's not bother them with the tantalizing unknown

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-03-10 20:59:44 +01:00
LemonInTheDark
ef714c1c34 Overlay Lighting Color/Intensity Pass (#81425)
## About The Pull Request

I was looking at screenshots of the game and realized we had a lot of
light sources that were really... flat.

Medium intensity, not colored at all, cringe.

So I went over all the uses of overlay styled lighting (since I've done
matrix lighting already) and gave them more unique features. Colors that
match the sprite they're used with, intensity to produce vibes, that
sort of thing.

It's kinda impossible to go one by one cause there's a LOT.

I may have gone a bit overboard with a few, I'm messing around with some
things like giving bots colors based off their department, etc. We'll
see how this all turns out.

Oh also I tweaked how the cone of overlay lighting is drawn. It seemed a
bit too present to me so I dropped the alpha down from like 200 to 120
at max (so it's roughly half of the mask's alpha so it's less
overwhelming

## Why It's Good For The Game

Lighting should be impactful, subtle and colorful

<details>
<summary>
Old Lights
</summary>


![dreamseeker_QJ5bFZxd63](https://github.com/tgstation/tgstation/assets/58055496/8ae74a95-32cb-473f-830a-ab4e1073a581)

![dreamseeker_DPVgI8wOoN](https://github.com/tgstation/tgstation/assets/58055496/149095af-a08a-4038-bf18-9e3401327452)

![dreamseeker_pyEmTAb37x](https://github.com/tgstation/tgstation/assets/58055496/6dbb6cf8-2ed7-4bc0-9d19-c64849088a33)

![dreamseeker_aDfvnea6YD](https://github.com/tgstation/tgstation/assets/58055496/4ed983e1-6be3-4513-ba3b-cecde08ccd38)

![dreamseeker_RnkQSwmxmc](https://github.com/tgstation/tgstation/assets/58055496/63e0210e-e1b1-42f0-be64-53d67c43f689)

![dreamseeker_G8NSC3lzAk](https://github.com/tgstation/tgstation/assets/58055496/93001925-904d-4061-8874-1d17bb225a90)

![dreamseeker_yASfxtbHDR](https://github.com/tgstation/tgstation/assets/58055496/ce0ae9ad-9067-44e0-9491-3ef331bbbb84)

![dreamseeker_4ecBbG5urI](https://github.com/tgstation/tgstation/assets/58055496/ce82f471-15c7-40ce-bc08-be4f5dc8a3b7)

![dreamseeker_udYlv8uAce](https://github.com/tgstation/tgstation/assets/58055496/c516a278-852b-44b8-ba7c-1203cea3f845)

![dreamseeker_bc2120Fnmr](https://github.com/tgstation/tgstation/assets/58055496/87a1429a-2329-4dd5-8c7b-ff44f54a08bb)

</details>

<details>
<summary>
New Lights
</summary>


![dreamseeker_0H11TyhGgx](https://github.com/tgstation/tgstation/assets/58055496/75b68a25-055e-488c-af82-b062dbe7413e)

![dreamseeker_2B9AENHsfl](https://github.com/tgstation/tgstation/assets/58055496/b52d441c-6ed3-495b-9ebd-9b0c9f924f30)

![dreamseeker_3vOVRRMTSP](https://github.com/tgstation/tgstation/assets/58055496/b265578f-34cc-4a0a-80ea-3237fb83df33)

![dreamseeker_5bTLup65rx](https://github.com/tgstation/tgstation/assets/58055496/6fcd3dc0-5927-458a-9f77-5582ad57a954)

![dreamseeker_iZzxZv4nfW](https://github.com/tgstation/tgstation/assets/58055496/67c3af13-2305-4130-936b-19ded08ccc4e)

![dreamseeker_Lhe9TSA0Av](https://github.com/tgstation/tgstation/assets/58055496/a5310e58-0ff1-45ac-bb81-b4a0212eb0ce)

![dreamseeker_ngQJUv0tV4](https://github.com/tgstation/tgstation/assets/58055496/c3d7423a-ab32-4401-9ffa-c4c3b7811334)

![dreamseeker_PL0z6sU7by](https://github.com/tgstation/tgstation/assets/58055496/2947d828-3aee-48c2-903f-2bf0db9077d2)

![dreamseeker_xineFZDzPA](https://github.com/tgstation/tgstation/assets/58055496/095ff8b0-51cf-4f7c-a2ee-752d9d7e87bd)

![dreamseeker_zpXxbZZakS](https://github.com/tgstation/tgstation/assets/58055496/c4200d35-a2fa-4c3f-8e88-1fd87f44cd46)

</details>

## Changelog
🆑
add: Tweaked the saturation, color and intensity of a bunch of lights
/🆑
2024-03-09 23:57:19 +00:00
John Willard
9ac81e1a64 New station trait job: Human AI (#81681)
## About The Pull Request

This PR does many things, I'll try to explain the basic/background stuff
to the main thing first:

1. Adds a new remote that allows a human to function like an AI. It
controls a fly that will fly around the station slowly, and when it
reaches a machine then the person can interact with it as if they were
an AI. This required changing a lot of silicon/AI checks with one that
also checks for this remote, and some messing with shared ui state.
2. Moves req_access from the obj and bot to ``/atom/movable`` which lets
it be shared between the two, no more copy-paste and one side lacking
features/checks/signals the other has.
3. Adds a check for AI config for AI-related station traits, which was
lacking prior

Now for the good part...
Adds a new station trait that replaces the AI with a Human.
This person is equipped with an AI headset (including Binary), an
advanced camera console, an omni door wand, the machine controller, and
their laws.
They are immune to the SAT's turrets (even if set to target borgs) and
are slow outside of the SAT, mimicing the actions of the AI.

They interact with the world through their advanced camera console,
which allows them to do most AI stuff needed, and the holopad they can
connect to without having to ring first (like Command can).

They are given a paper with the laws they must follow, but since they
are human they are able to bend it. Cyborgs that run the default lawset
are "slaved" to them via an unremovable law 0, so the Human AI can bend
the laws if they really need to (for their own survival n such), and
make the cyborgs obey their commands above laws, but in general this
shouldn't be a frequent occurrence. This does take into account the
unique AI trait, so it's not guaranteed Asimov.

When this station trait rolls, all Intellicards, AI uploads, and AI core
boards are destroyed and are unresearchable. They can be spawned by
admins in-game if necessary. Maybe in the future we can also exclude
Oldstation from this but I haven't really decided.

Extra perks:

Human AI spawns with a Robotic voicebox (unless they are a body purist)
and teleport blocking implant, so they can't use teleporters to bypass
their on-station slowdown.
They also have an infinite laser pointer that can be used to blind
through their camera console. This is unfortunately nerfed from the
recent borg balance PR that removed its stun. This was meant to be the
alternative to no longer being able to permanently lock borgs down like
AIs can (or more than one, for that matter).
They aren't affected by Roburgers, Acid, and Fuel's toxicity.
Bots salute them like they do Beepsky (which is now a trait)
They spawn with SyndEye to replace the AI's tracking ability
They do not have a bank account

### The machine remote

The machine remote has a little fly in it that flies to the machines it
is pointed to, working as the arms and legs of the Human AI. It scans
the machine and punches in the action the AI does, and is how the AI
accesses basically anything. This fly slowly moves from one machine to
the next, and can be recalled with Alt Click.
It works on machines and bots.

### Video (Low quality to fit Github)


https://github.com/tgstation/tgstation/assets/53777086/e16509f8-8bed-42b5-9fbf-7e37165a11e8

## Why It's Good For The Game

I've seen a funny screenshot one day of a person replacing the AI by
using a bunch of door remotes, camera console, crew monitoring console,
and a few other things. I've been thinking about that for a few years
and really wanted to make it official if not easier to make possible,
because it is an incredibly funny interaction.
This makes it a reality, and while they aren't as powerful as regular
AIs, I think it makes for better and funnier in-game moments. With the
same weight as Cargorilla (1), I hope this wouldn't be rolling too often
and ruin rounds, but instead show off the different capabilities that
Humans and AIs can do, to do the job of an AI. You win some you lose
some.

## Changelog

🆑 JohnFulpWillard, Tattax
add: Adds a new station trait job: The Human AI.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-03-09 23:48:39 +01:00
_0Steven
2239fd91f4 Makes robotic talk use GetVoice for carbons, fixing voice changer issue (#81901)
## About The Pull Request

I noticed that when using a chameleon set and agent ID to change my
voice and then using the binary encryption key to talk over binary, it
would actually show as "Real Name (as ID)" rather than "ID" as expected.
Looking into the code, this seemed to be because robotic talk would use
`name` rather than getting the voice of the speaker, which is set to the
*visible name* of the speaker, leading to it using the visible name
rather than their voice.
This pr changes it to use `GetVoice` to have a result consistent with
regular comms.
## Why It's Good For The Game

When you use a chameleon mask with an agent ID it lets you mask your
voice over comms even if your face isn't fully covered, it's your voice
after all, but over robotic comms it cares about your visible name
rather than your voice even though you're still talking into a headset.
This pr makes it consistent with the behaviour of voice changing over
regular comms.
## Changelog
🆑
fix: When a carbon talks over robotic it uses their voice instead of
visible name. Meaning, voice changers work like they do over other comms
regardless of face covering.
/🆑
2024-03-09 22:54:49 +01:00
Thunder12345
058cb039eb Bitrunning 1.5: Secondary Objectives (#81828)
## About The Pull Request

Added secondary objective lockboxes to bitrunning. These pull from a
list of secondary objective loot on the domain, with a limited quantity
of items. Once there are no items left to pull, the secondary objective
disappears. If multiple secondary objective markers are placed, they
will be placed until all markers have been used, or all the items in the
loot pool are already spoken for.

To support this functionality, adds SSbitrunning, which stores all
domains as instances, instead of checking the hardcoded types as
previously. SSbitrunning manages listing domains for the quantum
console, and rolling secondary loot.

As an example of this functionality, added a side path to Glacier Grind
with a polar bear and some loot.

## Why It's Good For The Game

Secondary objectives give mappers ways to encourage players to venture
into a wider range of domains by offering non-trivial loot beyond the
fluff items given in the main caches. The absolute limit on the number
of items available ensures these items can't be farmed.

As well as supporting secondary objectives, SSbitrunning allows for
future support of features relying on mid-round modification of domains,
for instance adding custom domains.

## Changelog
🆑
add: Added secondary objectives to bitrunning!
add: Pick up encrypted curiosities and return them to the safehouse to
claim their contents.
add: Glacier Grind has been given a secondary objective, look out for
the limited edition hat.
add: Bitrunning domains can now be modified during the round by admins.
/🆑
2024-03-09 22:42:23 +01:00
Lucy
a8d1551466 Shuttle gibbing code improvements (#81726)
## About The Pull Request

Adds a resistance flag, `SHUTTLE_CRUSH_PROOF`, adds it to the existing
things that have it, and adds it to the immortality spectres.

## Why It's Good For The Game

Gets rid of some hardcoded checks, making it easier for future code (or
admins) to make things immune to shuttle crushing.

Also makes it so immortality spectres are immune to being shuttle
crushed, as that kinda ruins the whole "immortality" thing...

## Changelog
🆑
refactor: Improved shuttle gibbing code, adding a new resistance flag,
`SHUTTLE_CRUSH_PROOF`.
fix: Immortality revival spectres can no longer be crushed by shuttles.
add: The ghost of Poly can no longer be shuttle-crushed, nor can
anything incorporeal.
/🆑

Co-authored-by: san7890 <the@san7890.com>
2024-03-09 05:00:18 +01:00
Nick
cc63ecd65b Chem stun reductions now all use AdjustAllImmobility, and the AllImmobility procs now adjust unconscious (#81873)
## About The Pull Request
Meth, maints tar, synaptizine, and nicotine now all use the
`AdjustAllImmobility` to handle their stun reductions, instead of
individually adjusting all 5-6 immobility effects. `AllImmobility`,
`SetAllImmobility`, and `AdjustAllImmobility` now also affect the
unconscious status effect as well. I'm calling this a bug/consistency
issue, since every chem that didn't already use `AdjustAllImmobility`
was adjusting the unconscious status effect anyway, and they are all
clearly trying to do the same thing.

If I missed anything that could also be replaced with
`AdjustAllImmobility`, let me know and I'll fix it.
## Why It's Good For The Game
Makes things more consistent, and consistency is good.
## Changelog
🆑
code: Chem stun reductions are now applied more consistently.
fix: Chem stun reductions should now more consistently apply to
unconsciousness.
/🆑
2024-03-09 04:29:01 +01:00
Ben10Omintrix
6b6bd5ce95 fix ore vents spawning the wrong wolves and remove simple wolves (#81864)
## About The Pull Request
wolves got refactored but the ore vents were still spawning the old
versions, this fixes it and removes the old wolves from the code

## Why It's Good For The Game
fixes ore vents spawning old wolves

## Changelog
🆑
fix: fixes ore vent spawned wolves being untammable
/🆑
2024-03-07 11:10:07 -07:00
MrMelbert
47dc38fee2 Let's you talk through action figures, plushies, and toy mechs with .l and .r. Also a big clean up of say because its support for non-mobs was lackluster. (#81848) 2024-03-07 09:21:12 -07:00
ArcaneMusic
d7cf8309c5 Arcargo: Vendor Cargo and Vending Machine Update (#81582)
Another one.

## About The Pull Request
This pull request originally had a design doc that @Fikou and I worked
on, but that was never really polished up for publishing quality so I'll
forgo it for now and be as descript as possible here.

### Core changes
- This pull request adds a new NTOS app to the game, the restock
tracker. The restock tracker shows a comprehensive list of vending
machines across the station, as long as there is a need for that vending
machine to get restocked.
- This has also been pre-installed into the cargo data disks.
(`/obj/item/computer_disk/quartermaster`)
- Vending machines now store a total of 20% of the cost of any purchase
made within themselves into a small pool of cash. This only applies to
premium and normal purchases, not to contraband, as they're technically
not sanctioned by the company.
- The restock tracker app will also track which vending machines have
the most credits stored internally inside them.
- By refilling a vending machine, the stored credits within are paid out
to any crewmember who goes and restocks the station, while also paying
out *half that amount to the cargo budget*, serving as a basic but
otherwise easy tertiary money making method on the same level of
complexity as doing bounties, with the added benefit of actually helping
to assist the station for jobs like... assistant.


![image](https://github.com/tgstation/tgstation/assets/41715314/59cee2d9-7e60-4733-8a76-d88fe5b8c3f2)

### Break Stuff
- Anyway, when you try and smash a vending machine open with a melee
weapon of choice, it can now pay out 50 credits at a time as a way to
make money at zero risk to yourself.
- ~~Except for the horrible risk to yourself.~~

![image](https://github.com/tgstation/tgstation/assets/41715314/23208bf0-8484-40b9-b753-0ffdb57d770f)

### Cargo Specific Changes
- Restock units may now be sold for a small profit as well, to
incentivize cargo to keep the station stocked further.
- The `STATION_TRAIT_VENDING_SHORTAGE` trait will now add a small amount
of existing credits into the vending machines on station, to incentivize
cargo to fix the issue during the round and not just push for an early
shuttle call. Or, more accurately, provide the crew with a money making
scheme to engage better with the station trait as it stands.

### This also refactors behavior on vending machines
- This pull request also finally changes it so that vending machines now
use the payment component, which as a consequence allows for the
following improvements:
* Vending machines may now pull from physical credits on your person,
not just requiring you to have money on your ID card.
* Vending machines may also use credits being pulled by the player
interacting with the vending machine, allowing for handless mobs to be
able to purchase items from a vending machine.
* Finally makes the "use-for-everything buying things component" used by
the most utilized component of the in-game economy, to reduce the
quantity of unique implementations of purchasing things in the code.
- Existing vending specific checks are retained on before handing off
behavior to the payment component, for behavior such as purchasing
cigarettes/alcohol under the age of 18/21.

Notes:
- Vending machines will lose their internal credits stored when
deconstructed, as a security measure.
- Vending machines will now show the total amount of credits that a mob
has on their person, combining physical credits as well as credits held
in their ID card to accurately portray their total wealth across the mob
in question.

## Why It's Good For The Game

First off, this is largely an excuse to move vending machine behavior
over to the payment component for the purposes to less code copy-paste,
and to try and make the implementation more wide-spread.

Second, this implements a new tertiary economy method to the game, in
the same design space as bounties, which serve as common methods of
making money without necessarily being specific to their job in
question, with the primary goal of providing small amounts of work to
the crew and a basic interaction with the economy system.

Additionally, it gives cargo more things they can do to assist the
station, and a way to know which parts of the station need support as a
result.
It improves the interaction between the vending shortage station trait
as well, making it a challenge with depth as opposed to a more
oppressive round change that players would rather reroll the game over.

Additionally, this makes a few price tweaks to vending restock modules
as well to help incentivize buying some of the more minor restock kits,
and a few select bumps on restocks that cover wide enough territory to
necessitate fewer restocks.
2024-03-06 18:15:49 -06:00
aaaa1023
20cda4e18a Makes revenants able to emag medibots (and other basic bots) (#81857)
## About The Pull Request
Makes Revenants able to emag basic bots. Revenant's Malfunction Ability
only checked for simple_animal/bot so when Medibots, Cleanbots, and
Hygeinebots were turned into basic mobs Revenants lost the ability to
emag them.

## Why It's Good For The Game
Being able to hack bots is pretty much the main function of malfunction,
especially Medibots. Revenants not being able to hack them really
reduces their ability to cause chaos.

## Changelog
🆑

fix: Revenants can now again emag Medibots, Cleanbots, and Hygienebots.

/🆑
2024-03-06 16:07:55 -07:00
Jacquerel
9d9da3a790 Spider web graphics (#81839)
## About The Pull Request

Here is what webs look like.
It looks like pure ass and I hate seeing it.

![image](https://github.com/tgstation/tgstation/assets/7483112/fe3279e6-4d69-48d3-abb7-fb4b1c61396e)

Here's my attempt at making them look nicer.

![image](https://github.com/tgstation/tgstation/assets/7483112/0a5b1034-f021-4a5b-bc93-c590334c7d42)

Notes: Genetics Power webs now have a slight purple tint to
differentiate them from regular spider webs, so spiders aren't confused
about why they can't cross these ones.

On the backend I condensed a lot of these typepaths to inherit from each
other instead of not doing that. In the future I am going to use this to
cut down on the excessive amount of action buttons we have for these
too.

Here's (most of) what the action buttons look like. this screenshot also
demonstrating that we have a serious problem with how many buttons we
give to spiders.

![image](https://github.com/tgstation/tgstation/assets/7483112/c78ce4f3-dbfd-4434-b318-dfe2a88ce838)

After this is merged I will embark on two further projects:
- Wallening version
- Reworking spider web placement to not be a function of having 15
action buttons, it's _so bad_.

While I was working on this I noticed that AI spiders would not
automatically place webs on certain crossable tiles, because we forgot
to pass an argument to a proc. I fixed that too.


Oh also final change I almost forgot to document:

![dreamseeker_MiooTij0sG](https://github.com/tgstation/tgstation/assets/7483112/7ae262d9-7b89-45b9-beb3-f6921963e04e)

I made you jiggle if you get stuck in a web.

## Why It's Good For The Game

The previous sprites looked bad and these look less bad.

## Changelog

🆑
fix: AI-controlled spiders can correctly recognise where they can place
webs.
image: New sprites for most kinds of spider web
/🆑
2024-03-06 16:05:49 -07:00
MrMelbert
b8b420cfcb Food Bar Updates, moves it out of the alert "stack" and to the left of mood, makes it more snappy (#81834) 2024-03-06 14:46:01 -07:00
13spacemen
357799c8a5 Removes Orbit Polling Component, SSpolling improvement (#81748)
When I made SSpolling, jlsnow gave me his blessing to delete the orbit
polling component [where you orbit something for 20 seconds before it
chooses a ghost from the orbiters]
It's only used in a few places like soulstones replacing
jobbanned/inactive players, etc.

Also upgraded SSpolling; you can now place a little icon on the sides in
the chat message, chat message looks a lot nicer, the alert pic and the
jump target don't have to be the same anymore, and I made it be able to
pre-pick candidates since 90% of the use cases would just want 1
candidate

Also prints to chat who the chosen one was

Also made slime intelligence potions ask the user for a reason, which
will be displayed in the alert poll
2024-03-06 08:24:36 +00:00