Commit Graph

2320 Commits

Author SHA1 Message Date
SmArtKar
ab7f1c12d6 Implements icon size caching to avoid unnecessary load in updatehealth (#88266)
## About The Pull Request

Technically an improved port of
https://github.com/DaedalusDock/daedalusdock/pull/651, instead of only
storing height over 32 pixels for HUDs we store both pure height and
width for the sake of cutting down on icon operation spam (which is
pretty costly). Should save us a significant amount of time, cuts down
update_health_hud times by 45% and total update_health by 30% which is
pretty good for a somewhat hot proc.

## Why It's Good For The Game

Our health HUDs constantly fetch icons ***twice*** every update_health,
jesus.

## Changelog
🆑 SmArtKar, Kapu
code: Implemented caching for icon sizes which should significantly
improve mob health performance due to HUDs constantly fetching icons
/🆑
2024-12-06 23:59:30 +01:00
Time-Green
a60ac1d855 Makes wild anomaly spawns more bearable (#87960)
<!-- 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

- Material anomaly will now self-delete after 1-4 relocations
- Bioscrambler now has a countdown like all other anomalies
- Increased anomaly lifetime from 99 seconds to 120
- Adds some more detonation effects where there were none (see: I abuse
the circle effect jacq added (again))

## Why It's Good For The Game

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

Material anomalies can wreak insane havok throughout the station if it's
not caught quickly. It's a cat and mouse game, which can get kinda
frustrating (flashbacks to trying to get the anomaly but it constantly
teleporting just before I get to it). I don't wanna kill the cat & mouse
game, but putting a limit on it so the entire station doesn't suffer
endlessly to pizza/snow/jungle toilets is a nice middle road.

Bioscramblers are actually beyond frustrating. If someone doesn't
immediately go for them, they'll start locking on and noclipping through
the entire station and mutating every single person for the rest of the
shift. This would probably be less bad if the bioscrambler couldn't give
every single organ (par some blacklisted), causing a lot of irreversible
damage, spontaneous combustions, glitches and creeping rare organs and
limbs into a round "for the lulz". (This doesn't fix the absolute organ
slop that they cause, but reworking bioscramblers not to be shit is for
later.)

I've also given anomalies 20 extra seconds of runtime. Anomalies take 99
seconds, take 30 to announce (for most), giving scientists 69 seconds to
get anomaly catching gear and navigate to the area and defuse it. It's
always felt like just barely too little time, often not getting the
anomaly even when I am beelining. It was usually enough from when we
just had meta, but we got bigger and bigger maps. It also gives them
more time to wreak havoc for chaos lovers.

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

🆑
balance: Bioscramblers are no longer immortal
balance: Anomalies give 20 extra seconds to defuse! Or 20 extra seconds
for them to reach havoc...
balance: Material anomalies only teleport 1-4 times before detonating
/🆑

<!-- 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. -->
2024-12-06 23:01:09 +01:00
jimmyl
25c616e353 fixes the museum cafeteria puzzle and some other things related to the museum (#88287)
## About The Pull Request

the dotted color board was missing a color for the 10th digit, and
orange and brown were not valid byond colors (damn you ghommie)
fake scrubbers and vents use the correct layer and plane
you may no longer deconstruct indestructible windows
you can no longer push indestructible grilles and robust windows if you
have a strong move force

step teleporters may not teleport abstract objects or mirage holders
(due to init shenanigans this sometimes teleported a mirage holder
messing the visuals up)

## Why It's Good For The Game

bug bad also i didnt make these bugs ok

## Changelog
🆑
fix: fixed the museum password puzzle (to the cafeteria), and the
scrubbers and vents there now look correctly (also fixed a rare visual
bug)
fix: it is now harder to bypass indestructible windows and grilles
(those are placed there for a reason, you know!)
/🆑
2024-12-01 13:39:29 +01:00
GoblinBackwards
6585612413 Fixes invisible atmos fires (#88155) 2024-11-24 20:44:31 +01:00
SmArtKar
f34bd3f5c0 Guncode Agony 4.2: Firing Effect Intervallo (#88072)
## About The Pull Request

Firing effects now attach themselves to the firer, meaning you don't run
over or back from your own muzzle flash if you fire while running.

## Why It's Good For The Game

Look better, both when moving into and away from the effect.

## Changelog
🆑
image: Muzzle flash now is attached to your sprite, meaning you won't
run over it if you fire while moving
/🆑
2024-11-24 04:35:31 -08:00
SmArtKar
bbb7a41743 Guncode Agony 4: The Great Projectile Purge (#87740)
## About The Pull Request
~~Kept you waitin huh!~~
The projectile refactor is finally here, 4 years later. This PR (almost)
completely rewrites projectile logic to be more maintainable and
performant.

### Key changes:
* Instead of moving by a fixed amount of pixels, potentially skipping
tile corners and being performance-heavy, projectiles now use
raymarching in order to teleport through tiles and only visually animate
themselves. This allows us to do custom per-projectile animations and
makes the code much more reliable, sane and maintainable. You (did not)
serve us well, pixel_move.
* Speed variable now measures how many tiles (if SSprojectiles has
default values) a projectile passes in a tick instead of being a magical
Kevinz Unit™️ coefficient. pixel_speed_multiplier has been retired
because it never had a right to exist in the first place. __This means
that downstreams will need to set all of their custom projectiles' speed
values to ``pixel_speed_multiplier / speed``__ in order to prevent
projectiles from inverting their speed.
* Hitscans no longer operate with spartial vectors and instead only
store key points in which the projectile impacted something or changed
its angle. This should similarly make the code much easier to work with,
as well as fixing some visual jank due to incorrect calculations.
* Projectiles only delete themselves the ***next*** tick after impacting
something or reaching their maximum range. Doing so allows them to
finish their impact animation and hide themselves between ticks via
animation chains. This means that projectiles no longer disappear ~a
tile before hitting their target, and that we can finally make impact
markers be consistent with where the projectile actually landed instead
of being entirely random.

<details>

<summary>Here is an example of how this affects our slowest-moving
projectile: Magic Missiles.</summary>


Before:


https://github.com/user-attachments/assets/06b3a980-4701-4aeb-aa3e-e21cd056020e

After:


https://github.com/user-attachments/assets/abe8ed5c-4b81-4120-8d2f-cf16ff5be915

</details>


<details>

<summary>And here is a much faster, and currently jankier, disabler
SMG.</summary>


Before:


https://github.com/user-attachments/assets/2d84aef1-0c83-44ef-a698-8ec716587348

After:


https://github.com/user-attachments/assets/2e7c1336-f611-404f-b3ff-87433398d238

</details>

### But how will this affect the ~~trout population~~ gameplay?

Beyond improved visuals, smoother movement and a few minor bugfixes,
this should not have a major gameplay impact. If something changed its
behavior in an unexpected way or started looking odd, please make an
issue report.
Projectile impacts should now be consistent with their visual position,
so hitting and dodging shots should be slightly easier and more
intuitive.

This PR should be testmerged extensively due to the amount of changes it
brings and considerable difficulty in reviewing them. Please contact me
to ensure its good to merge.

Closes #71822
Closes #78547
Closes #78871
Closes #83901
Closes #87802
Closes #88073

## Why It's Good For The Game

Our core projectile code is an ungodly abomination that nobody except
me, Kapu and Potato dared to poke in the past months (potentially
longer). It is laggy, overcomplicated and absolutely unmaintaineable -
while a lot of decisions made sense 4 years ago when we were attempting
to introduce pixel movement, nowadays they are only acting as major
roadblocks for any contributor who is attempting to make projectile
behavior that differs from normal in any way.

Huge thanks to Kapu and Potato (Lemon) on the discord for providing
insights, ideas and advice throughout the past months regarding
potential improvements to projectile code, almost all of which made it
in.

## Changelog
🆑
qol: Projectiles now visually impact their targets instead of
disappearing about a tile short of it.
fix: Fixed multiple minor issues with projectile behavior
refactor: Completely rewrote almost all of our projectile code - if
anything broke or started looking/behaving oddly, make an issue report!
/🆑
2024-11-23 04:02:35 -08:00
EOBGames
1fe4f77dc5 Shipping and Receiving: More Containers, Revamped Containers (#87995) 2024-11-22 20:48:29 +01:00
SmArtKar
742729fa0a Converts most common particle sources to use our new pooling system (#88048)
## About The Pull Request

Closes #83370
Converted most cases where we could benefit from using shared particles
(aka when there's probably more than 3 uses of that particle in a round)
to use the new shared particle system. Should provide significant
clientside performance in particle-heavy areas like botany (or sometimes
kitchen)

## Changelog
🆑
refactor: Converted most common particle sources to use our new pooling
system.
/🆑
2024-11-21 18:16:12 +01:00
SmArtKar
bcb5c47571 Implements shared particle holders, re-adds slimed status particles using the new system (#87892)
## About The Pull Request

Partial revert of #86701
Implements a shared holder particle system, somewhat inspired by
https://github.com/Baystation12/Baystation12/pull/34014 (thanks Kapu).
Atoms can be assigned "shared" particles via add_shared_particles, with
an optional "alternate" key passed as a second arg if you're planning to
edit the returned particle holder (for example, color it like slimed
status does). Removing is done via remove_shared_particles with an
option to delete the shared holder if nothing is using it anymore (on by
default). This system should be prioritized over normal particle holders
when a lot of entities would be using a certain particle effect (like
fires) as it conserves a lot of clientside performance.

Burning, acid, decaying, firestacks and slimed status now use this
system which should help with clientside performance and amount of atoms
created/destroyed.

## Why It's Good For The Game

Less clientside lag.

## Changelog
🆑
refactor: Firestacks, burning/acid/decaying effects and (brought back
after being temporarily removed) slimed status effects now use a new
"shared" particles system, which should considerably improve client
performance when encountering a lot of burning/slimed entities.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-20 13:46:00 +01:00
SmArtKar
97cd0ea5fb Guncode Agony 4.1: Portal Intermission (#87803)
## About The Pull Request

Closes #75447 by allowing projectiles to pass through portals. This does
not allow for infinite loops for sanity (including host's) reasons.

Can safely be merged before #87740

## Changelog
🆑
fix: Many years later, projectiles finally can pass through portals -
this time without crashing the server.
/🆑
2024-11-14 19:53:57 +01:00
MrMelbert
9b40e13f8b Makes dust animation look less 2006 (#87435)
## About The Pull Request

This was inspired by an effect I saw on Paradise but I sprited my own


https://github.com/user-attachments/assets/2130053c-a6ea-48e6-8b62-4c08563fd154

(Todo, make the skeleton appearing less jank)

## Why It's Good For The Game

1. Looks less 2006. 
2. The dust sprite will reflect the mob being dusted, since it's
literally just Your Sprite. Your clothes, species, etc.
3. All species and all mob types now animate being dusted - from corgi
to xenos, from borgs to lizards -, and we can even reuse this effect for
items being dusted if we so desire

## Changelog

🆑 Melbert
image: The animation for being dusted now takes into account your
sprite, rather than being a normal nude spaceman
/🆑
2024-11-12 10:31:03 +13:00
Ghom
e5472d9be4 Fishing bluespace capsules (#87639)
## About The Pull Request
With this PR, I'm introducing fishing bluespace capsules to the game.
They can be found on the black market, but I'll get a couple more ways
to get them before it's ready.

Anyway, they're special bluespace capsules that spawn a fishing spot of
your choice. The fishing spot can be changed by alt-clicking the
capsule, and so far it has 5 choices, plus 2 locked behind emagging for
obvious reasons:
- Freshwater: pretty basic, you get freshwater fish from this.
- Saltwater: mainly saltwater fish.
- Tiziran: You get tiziran fish here, like the gunner jellyfish,
armorfish, needlefish, dwarves moonfish and the new, bigger zagoskian
moonfish. By the by, moonfish now periodically lay moonfish eggs, a
staple of lizardfolk cuisine.
- Ice fishing spot: A small ice turf with a hole dug in it; salmon,
arctic char, arctic chrabs and the bonemass (skeleton fish).
- Hot Spring: Somehow the new home to the ought-to-be-extinct
sacabambaspis. It also doubles as a better shower overall, with mild
healing on top of stamina recovery. Felinids still hate it though, and
won't benefit from the healing.
- Lava: A 2x2 square of pure lava. Requires an emag for obvious reasons.
- Plasma: Ditto, but it's plasma instead of lava.

As a sidenote, unlike standard shelter capsules, these require their
area to be clear of pipes and cables on top of the other requirements,
unless emagged. Obviously, I've done some changes to allow pipes and
cables to not be hidden by water turfs, though I'm still keeping these
reqs because I don't think these fishing spots would look great if
riddled with cables and pipes. I may remove this extra req later if it
proves to be a tad too tedious.

Also they don't knock you back when expanding.

Screenshot from a recent test (fixed the misplaced decal and tweaked a
few things since then):

![immagine](https://github.com/user-attachments/assets/6bbcddfb-ff1c-4e96-834a-2129cadbb31f)


## Why It's Good For The Game
The idea stems from how not all fishing spots aren't designed to be
accessible every round, which is fine, because we have the fish-porter
for that. However, even the fish-porter should have its limits in terms
of what it can provide by itself (linking is all fair and game), so I've
thought having something of a middle point would been neat, also as a
way to mess around with the station layout a bit, to empower the player
with a little extra "terraforming".

## Changelog

🆑
add: Added fishing bluespace capsules to the game, which can be used to
spawn a variety of fishing spots, from freshwater to tiziran sea to hot
springs, and also lava and plasma if emagged.
add: Added two new fish: the zagoskian moonfish and the sacabambaspis.
Moonfish will now periodically lay moonfish eggs.
map: The 'crashed pod' lavaland ruin now has a hot spring, and the
cursed hotspring on icemoon now has a plastic chair and a fishing
toolbox.
/🆑
2024-11-11 08:01:09 +13:00
tonty
d5daa9c9b8 [NO GBP] Renames mob/camera to mob/eye and makes everything follow suit (#87684)
## Why It's Good For The Game

Clarity and consistency regarding DM's systems. 
Internally, `eye` is used for anything that controls the client's view.

![image](https://github.com/user-attachments/assets/7d1291e1-7a6a-4736-a14b-97834e89846f)
How `eye` is used in DM is consistent with how we use the term, so I
figured this would add clarity.

Being named mob/camera also makes it unclear exactly what it's doing.
The name implies that it would function similar to how mob/camera/ai_eye
does, but most of the time it's only used as... an eye.

My ulterior reason for this PR is that I want to clean up
mob/camera/ai_eye and it's subtypes after this.
## Changelog

🆑
server: mob/camera has been renamed to mob/eye, which may break
downstreams
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-09 10:57:45 +00:00
necromanceranne
f5099185c8 Adds a new INHALE reagent transfer method and applies it to smoking and smoke inhalation. Nitrous oxide (the reagent version) inhalation causes brain damage. (#87306)
## About The Pull Request

Adds the ``INHALE`` transfer method. Smoking and smoke exposure now uses
this method.

Makes a few sensible inhalation effects for current behaviours.

Adds a unit test amongst the rest of the exposure method tests.

Nitrous oxide does brain damage on inhalation based on volume inhaled.

## Why It's Good For The Game

Smoke and smoking being based on ingestion rather than inhaling was
always weird to me. It'd be nice to have a specific method for smoking
instead of a method shared by drinking. Many of our smokables make sense
as indigestibles, obviously, but maybe we'd like a chem you can ONLY
smoke.

~~Also, I walked out of a job interview and up the street to see a guy
throwing his empty nitrous canisters around and yelling at passerbys, so
shout out to that fucking guy with this PR.~~

## Changelog
🆑
code: Introduces a INHALE method for reagent transfer. Cigarettes and
smoke reactions use this new method.
balance: Nitrous oxide now brain damage if you inhale it. So don't do
that.
/🆑

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-10-30 12:24:43 +00:00
Ghom
778ed9f1ab The death or internal/external organ pathing (ft. fixed fox ears and recoloring bodypart overlays with dye sprays) (#87434)
## About The Pull Request
This PR kills the abstract internal and external typepaths for organs,
now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds.

This PR also fixes fox ears (from #87162, no tail is added) and
mushpeople's caps (they should be red, the screenshot is a tad
outdated).

And yes, you can now use a hair dye spray to recolor body parts like
most tails, podpeople hair, mushpeople caps and cat ears. The process
can be reversed by using the spray again.

## Why It's Good For The Game
Time-Green put some effort during the last few months to untie functions
and mechanics from external/internal organ pathing. Now, all that this
pathing is good for are a few typechecks, easily replaceable with
bitflags.

Also podpeople and mushpeople need a way to recolor their "hair". This
kind of applies to fish tails from the fish infusion, which colors can't
be selected right now. The rest is just there if you ever want to
recolor your lizard tail for some reason.

Proof of testing btw (screenshot taken before mushpeople cap fix, right
side has dyed body parts, moth can't be dyed, they're already fabolous):

![immagine](https://github.com/user-attachments/assets/2bb625c9-9233-42eb-b9b8-e0bd6909ce89)

## Changelog

🆑
code: Removed internal/external pathing from organs in favor of a bit
flag. Hopefully this shouldn't break anything about organs.
fix: Fixed invisible fox ears.
fix: Fixed mushpeople caps not being colored red by default.
add: You can now dye most tails, podpeople hair, mushpeople caps etc.
with a hair dye spray.
/🆑
2024-10-30 08:03:02 +01:00
larentoun
692540a7b9 Singularity_pull() standartize (#87304)
## About The Pull Request
Previous attempt - https://github.com/tgstation/tgstation/pull/87227

`/atom/proc/singularity_pull(obj/singularity/singularity, current_size)`
has first arg typed, but other procs were just referencing it as a
un-typed variable.

Since args are not standartized AND
`atom/proc/singularity_pull(obj/singularity/singularity, current_size)`
is out-dated, since it can be called by things that has
`/datum/component/singularity` - not just by
`obj/singularity/singularity` - This PR just adds args to every
`proc/singularity_pull()` as follows:
`proc/singularity_pull(atom/singularity, current_size)`

## Why It's Good For The Game
Standartization

## Changelog
No changelog needed
2024-10-25 02:08:26 +02:00
Iamgoofball
502165bb89 Adjusts the No ERP poster description to be more subtle and reference the lore. (#87153)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2024-10-22 09:39:07 +02:00
carlarctg
2b0485d0c8 Adds a flipping skillchip, the Chipped quirk, a chip connector implant, and a quirk to spawn with it. (#87082)
## About The Pull Request

Added the FOSBURY skillchip, found in hacked toy vendors.
This skillchip allows you to bypass the emote cooldown when flipping or
spinning. However, if used too often, it will lower the chip's
integrity. At first, this is harmless, emitting sparks only, but at a
certain point, your head starts smoking, your brain begins
short-circuiting, and once the chip has lost all integrity your head
will explode in a shower of gore, giving you a cranial fissure!

Added the Chipped quirk. It allows you to spawn with one skillchip. Of
note here is that the only chips you can spawn with are the 'default'
skillchips found in the toy vendor, you can NOT spawn in with the
fosbury chip or with the musical one.

Added the Chip Connector quirk. It contains a new implant, the chip
connector, which allows you to install and take out skillchips at any
time. Being EMPed will cause it to drop one random skillchip, and if you
try using it while it's malfunctioning you'll take out a bit of your
brain instead. It can also be made at the exosuit fabricator after basic
research.

Renamed the organ slots for brain implants and made the connector
implant take the CNS slot.
## Why It's Good For The Game

> Added the FOSBURY skillchip, found in hacked toy vendors.
This skillchip allows you to bypass the emote cooldown when flipping or
spinning. However, if used too often, it will lower the chip's
integrity. At first, this is harmless, emitting sparks only, but at a
certain point, your head starts smoking, your brain begins
short-circuiting, and once the chip has lost all integrity your head
will explode in a shower of gore, giving you a cranial fissure!

During the time flipping was bugged to have no cooldown or delay, it was
really funny seeing people flip at increasingly higher speeds. Many
people miss it, and to be honest, so do I. But everything needs limits
or it stops being funny and ends up being overdone. To this end this
skillchip lets people relive those days of glory, until they go out in a
beautiful explosion. The chip will last a very long while if well taken
care of, and there are plenty of warning signs before it gets too risky
to use, but we know what players are actually gonna do, and I am looking
forward to it.

> Added the Chipped quirk. It allows you to spawn with one skillchip. Of
note here is that the only chips you can spawn with are the 'default'
skillchips found in the toy vendor, you can NOT spawn in with the
fosbury chip or with the musical one.

Chips can be kind of neat sometimes, and I think always having one as
part of your character can make for some fun things as the consistency
of it makes it more likely to stick in your mind to do stuff with.
> 'but can't you just go to the vendor at the start of every shift?'
Sure. But we have loadouts. We have tagger, musician, and many other
things that are 'roundstart bloat', and while that by itself is not an
excuse, it's part of the design of character setup: Minimizing the time
spent running around the station for things your character is supposed
to have for their personality/roleplay/gimmick. They're paying the cost
of quirk points for it, anyways.

> Added the Chip Connector quirk. It contains a new implant, the chip
connector, which allows you to install and take out skillchips at any
time. Being EMPed will cause it to drop one random skillchip, and if you
try using it while it's malfunctioning you'll take out a bit of your
brain instead. It can also be made at the exosuit fabricator after basic
research.

I like the idea of having a gross usb drive on the back of your brain
that you shove chips into and out of, especially if it drops pieces of
your brain when malfunctioning. It also adds a little bit of extra
relevance to skillchips now that you don't need to spend 15 (!!!)
seconds inside a skillstation to add one. The cost is, as stated, quite
literally losing your brain on EMP's and the moderately expensive sum of
4 points.

> Renamed the organ slots for brain implants and made the connector
implant take the CNS slot.

It annoys me that there were organ slots for 'anti drop implant'. Now
they're just slots for anything meant to connect to the
cerebellum/central nervous system, making it less brute forcey and also
adding the start of some fun exclusivity between brain implants.
## Changelog
🆑
add: Added the FOSBURY skillchip, found in hacked toy vendors. This
skillchip allows you to bypass the emote cooldown when flipping or
spinning. However, if used too often, it will lower the chip's integrity
and cause malfunctions.
add: Added the Chipped quirk. It allows you to spawn with one base
skillchip. (not the one above)
add: Added the Chip Connector quirk. It contains a new implant, the chip
connector, which allows you to install and take out skillchips at any
time.
code: Renamed the organ slots for brain implants and made the connector
implant take the CNS slot.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-10-14 10:47:43 +02:00
grungussuss
0dcbaa5ba5 removes a few varedits (#87046)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2024-10-10 19:33:45 +00:00
Ghom
96c0c0b12c Fish infusion (#87030)
## About The Pull Request
I'm adding a new infusion ~~(actually four, but two of them are just
holders for specific organs tied to a couple fish traits)~~ to the game.
As the title says, it's about fish.

The infusion is composed of three primary organs, plus another few that
can be gotten from fish with specific traits.

The primary organs are:
- Gills (lungs): Instead of breathing oxygen, you now need to stay wet
or breathe water vapor.
- fish-DNA infused stomach: Can safely eat raw fish.
- fish tail: On its own, it only speeds you up on water turfs, but it
has another effect once past the organ set threshold. It also makes you
waddle and flop like a fish while crawling (I still gotta finish sprites
on this one)

Other organs are:
- semi-aquatic lungs: A subtype of gills from fish with the 'amphibious'
trait, falls back on oxygen if there's no water. Can also be gotten from
frogs, axolotl and crabs.
- fish-DNA infused liver: From fish with the 'toxic' trait. Uses
tetrodotoxin as a healing chem instead of a toxin. Also better tolerance
to alcohol if you want to drink like a fish (ba dum tsh).
- inky tongue: From fish with the 'ink production' trait. Gives mobs the
ability to spit ink on a cooldown, blinding and confusion foes
temporarily.

The main gimmick of this infusion revolves around being drenched in
water to benefit from it, In the case you get the gills organ, this also
becomes a necessity, to not suffocate to death (alternatively, you can
breathe water vapor, without any benefit). To enable the bonus of the
organs set, three organs need to be infused. They can be gills, stomach,
tail and/or liver, while the inky tongue doesn't count towards it.

Once the threshold is reached, the following bonus are enabled:
- Wetness decays a lot slower and resists fire a bit more.
- Ink spit becomes stronger, allowing it to very briefly knock down
foes.
- Fishing bonuses and experience
- Resistance to high pressures
- Slightly expanded FOV
- drinking water and showers mildly heal you over time.
- for felinids: You won't hate getting sprayed by water or taking a
shower.
- While wet:
- - If the fish tail is implanted, crawling speed is boosted.
- - You no longer slip on wet tiles.
- - You also become slippery when lying on the floor.
- - You get a very mild damage resistance and passive stamina
regeneration, and cool down faster.
- - You resist grabs better.
- - get a very weak positive moodlet.
- However, being dry will make you quite squisher, especially against
fire damage, slower and give you a modest negative moodlet.

While working on it, I've also noticed a few things that explained why
tetrodotoxin (TTX) did jackshit at low doses, because livers have a set
toxin tolerance value, below which, any amount of toxin does nothing.
Also I've felt like reagents like multiver & co were a bit too strong
against a reagent that's supposed to work at very low doses, with slow
metabolization, so I've added a couple variables to buff TTX a bit,
making it harder to purge and resistant to liver toxin tolerance (also
added a bit of lungs damage).



## Why It's Good For The Game
I wanted to take a shot at coding a DNA infusion and see how chock-full
I could make it. DNA infusions are like a middle point between "aha,
small visual trinket" and organs with generally ok effects. I seek to
make something a bit more complex ~~(also tied to fishing ofc because
that's more or less the recurrent gag of my recent features)~~ primaly
focused around the unique theme of being strong when wet and weaker when
dry.

EDIT: The PR is now ready, have a set of screenshots of the (fairly mid)
fish tails (and gills, barely visible) on randomly generated spessman
and one consistent joe:

![immagine](https://github.com/user-attachments/assets/a4965508-22e2-4d3a-8523-29fec6bce91e)


## Changelog

🆑
add: Added a new infusion to the game: Fish. Its main gimmick revolves
around being stronger and slippery when wet while weaker when dry.
balance: Buffed tetrodotoxin a little against liver tolerance and
purging reagents.
/🆑
2024-10-09 02:03:50 +02:00
Ghom
cdebe98a17 refactoring how materials effects are added to atoms (#86901)
## About The Pull Request
I'm "cooking" the materials system a bit, specifically the code
responsible for applying and removing effects. My goal is to move most
of the code to the objects-side, split it in smaller procs that can be
more easily overriden or called for object-specific modifiers and
effects, while also revamping things all around to better support items
made from multiple materials (the cleric mace will most likely be one in
this PR, with the handle and tip made of different materials).

PR NO LONGER WIP, TESTED AND ALL, CLERIC MACES CAN NOW BE MADE OF TWO
MATERIALS.

## Why It's Good For The Game
One of the nastiest flaws with the materials system is that it's just
unfeasable to have items made of multiple mats (with effects enabled)
right now, as they easily tend to override each other, where some of the
modifiers and effects should only be applied the main material.

Beside, the system's starting to show signs of its time, from the
several type checks used to apply different effects, the one letter
variables to the the material flags that are still being passed down as
arguments when you can access them from the atom/source arg anyway. It
would be disonhest of me if I went ahead and coded material fishing rods
or whatever fish fuckery with materials without ensuring it won't
further the technical debt the feature currently has.

## Changelog
🆑
refactor: Refactored materials code. report any issue.
add: Cleric maces (The autolathe-printable weapon design from outer
space) can now be made of two different materials.
balance: Buffed cleric maces a little.
fix: toolboxes' stats are now affected by materials again.
/🆑

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
2024-10-06 21:56:20 +02:00
MrMelbert
b3245078c8 Puts blood back on floor plane, puts runes on floor plane (removes shadows from blood and runes) (#87013)
## About The Pull Request

Basically goes through and puts some flat objects onto the floor plane.
Also puts blood back on the floor plane, since it seems like it used to
be but may have been moved mistakenly questionmark.

This means they will not be affected by Ambient Occlusion: 


![image](https://github.com/user-attachments/assets/594b878b-e5e9-42e3-900e-3c9390c819ee)

## Why It's Good For The Game

A lot of these "flat" things look really out of place because they're
secretly "floating" due to being on the wrong plane

## Changelog

🆑 Melbert
qol: Runes, crayons, and similar decals no longer have shadows
fix: Blood and similar "mess" decals no longer have shadows (again)
/🆑
2024-10-04 02:57:45 +02:00
tonty
3f0b4abb8d Replaces world.icon_size (and some magic numbers) with defines (#86819)
## About The Pull Request

All usages of world.icon_size in code have been replaced with new
`ICONSIZE_X`, `ICONSIZE_Y` and `ICONSIZE_ALL` defines depending on
context

Replaces some "32" magic numbers with the defines

A few bits of code have been modified to split up x/y math as well

## Why It's Good For The Game

Magic number bad, code more readable, code more flexible and I'm told
there's an access cost to doing world.icon_size so minor performance
gains

## Changelog

🆑 tonty
code: made some code relating to the world's icon size more readable
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-09-29 13:28:32 +00:00
SmArtKar
ad111f4950 Spacemove refactor - Newtonian physics (#84869)
## About The Pull Request

This PR significantly enhances how zero-g movement works. Its no longer
locked to one of 8 directions, everything now has inertia and is
affected by weight. This means that throwing a piece of wire will no
longer completely reverse your movement direction, and that being thrown
out of mass driver no longer will slow you down to a halt at some point.

This leads to following gameplay changes:
* Guns now accelerate you. Ballistics have higher acceleration than
lasers, and higher calibers have higher acceleration than smaller ones.
This means that firing full-auto weapons in zero-g will make you drift
and accelerate significantly. While this can be a hilarious way to
travel in space, it makes using them trickier.
* Impacting a wall or an object while moving at high speeds will cause
you to violently crash into it as if you were thrown. Careful when
exploring!
* Jetpacks now have inertia. Changes introduced in #84712 have been
mostly reverted, although speed buff has been reduced to 0.3 instead of
0.5 (although this is compensated by new movement mechanics, so overall
speed should be roughly equal). All MODsuit jetpacks now possess the
speed boost. Advanced MODsuit jets (which has also been added back) and
captain's jetpack instead have higher acceleration and stabilization
power, providing much more precise control over your movement.
* Firing guns while moving on a jetpack will partially negate your
pack's acceleration, slowing you down. Non-advanced jetpacks'
stabilization is not enough to compensate for heavy caliber weaponry as
sniper rifles, shotguns or rocket launchers.
* You no longer instantly decelerate upon sliding along a wall. Instead,
it may take a few tiles if you are moving at extreme speeds. Passing
over lattices still allows you to grab onto them!

As space movement is angle-based instead of dir-based now, its much more
smooth than before due to using new movement logic.

Example of jetpack stabilization in action:

https://github.com/tgstation/tgstation/assets/44720187/6761a4fd-b7de-4523-97ea-38144b8aab41

And, of course, you can do this now.

![jetpack_500](https://github.com/tgstation/tgstation/assets/44720187/37b11cd8-2bd1-4640-ae0c-5e0cc505bf52)

**This pull request requires extensive gameplay testing before
merging**, as a large amount of numbers have been picked arbitrarily in
an attempt to keep consistency with previous behavior (guns and
normal-sized items applying 1 drift force, which is equal to what
everything applied before this PR). Jetpacks and impacts may also
require adjustments as to not be frustrating to use.

Closes #85165

## Why It's Good For The Game

Zero-G refactor - currently our zero-g movement is rather ugly and can
be uncomfortable to work with. A piece of cable being able to accelerate
you the same as a duffelbag full of items when thrown makes no sense,
and so does instantly changing directions. Inertia-based version is
smoother and more intuitive. This also makes being thrown into space
more of a hazard (possibly opening the door for explosive
decompressions?)
Jetpack inertia and gun changes - this is mostly a consequence of
inertia-based movement. However, zero-g combat being preferred during
modes like warops was an issue due to it negatively affecting everyone
without jetpacks which are in limited supply onboard. This reverts the
mobility changes which severely impacted space exploration, while making
zero-g combat more dangerous and having it require more skill to be a
viable option.

## What's left

- [x] Refactor moth wings to use jetpack code
- [x] Refactor functional wings to use jetpack code
- [x] Locate and fix a recursion runtime that sometimes occurs upon
splattering against a wall
- [x] Add craftable tethers and modify engineering MOD tethers to use
the same system

## Changelog
🆑
add: You can now craft tether anchors, which can be secured with a
wrench and attached to with right click. They won't let you drift into
space and you can adjust tether length/cut it via lmb/rmb/ctrl click on
the wire.
add: MOD tethers now remotely place and connect to tether anchors
instead of throwing you at where they landed.
balance: MOD tethers can now be used in gravity
balance: Jetpacks are now inertia-based. 
balance: Guns can accelerate you significantly in zero-g.
balance: All jetpacks now give you equal speed buff, however advanced
MOD ion jets and captain's jetpack have higher acceleration/deceleration
values.
refactor: Refactored zero-g movement to be inertia-based and utilize
angles instead of directions.
/🆑
2024-09-26 02:49:54 -07:00
grungussuss
58501dce77 Reorganizes the sound folder (#86726)
## About The Pull Request

<details>

- renamed ai folder to announcer

-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer

- separated the ambience folder into ambience and instrumental
-- ambience --

- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it

-- instrumental --

- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)

-- items --

- moved secdeath to hailer
- moved surgery to handling

-- effects --

- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects

-- vehicles --

- moved mecha into vehicles


created mobs folder

-- mobs --

- moved creatures folder into mobs
- moved voice into mobs

renamed creatures to non-humanoids
renamed voice to humanoids

-- non-humanoids--

created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg

-- humanoids --




-- misc --

moved ghostwhisper to misc
moved insane_low_laugh to misc

I give up trying to document this.

</details>

- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc 
- [X] mobs
- [X] runtime
- [X] vehicles

- [ ] attributions

## Why It's Good For The Game

This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.

## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
2024-09-23 22:24:50 -07:00
carlarctg
7d9754b0c7 Moves Meta drone bay to the main cargo bay (#86581)
## About The Pull Request

MetaStation's Drone Bay has been moved to be basically inside the normal
cargo bay.

![image](https://github.com/user-attachments/assets/f9a84631-d761-489f-ba8d-995696ef09c5)

This bay starts slightly more prepared than others. You're still
rewarded for going out of your way to set up exoscanners but now it's
not literally obligatory, to reduce the effort entry cost.

To make room for it, the security cargo post was moved to the east of
the mailing room:

![image](https://github.com/user-attachments/assets/522e0de2-7fd6-4312-ac7e-974b3b37603e)

The drone bay spot in maintenance has been cleared out by a gang of
rowdy assistants, and turned into a drug den.

![image](https://github.com/user-attachments/assets/ae31b7f2-4817-4d09-af34-1bda8bdc1753)
It also has a nod to its prior room usage up north with some misc. drone
bay stuff.

This is my first real map PR and is likely to have dumb oversights.
## Why It's Good For The Game
## Changelog

> MetaStation's Drone Bay has been moved to be basically inside the
normal cargo bay.

On all stations Drone Bay is shunted off into some ass corner where
nobody even notices it exists. After using it a bunch I've realized it
has some interesting cargo use cases, because it's a cooldown based
activity you can often have it on in the background while doing other
things. I wished to move it inside the bay to highlight its usefulness!

> To make room for it, the security cargo post was moved to the east of
the mailing room:

The mail room is rather big for being such a non-used part of the
station, so it won't be harmed by being trimmed down into the main five
chutes. I've tried to keep everything important on the tables, but do
let me know if I fucked up and missed something.

I also think it's funny to symbolize how Security has a weak hold on
Cargo by having its security office almost completely cut off from the
main area, but that's a post-hoc rationalization if anything.

> The drone bay spot in maintenance has been cleared out by a gang of
rowdy assistants, and turned into a drug den.

Had to make use of the empty space somehow. This is a little funny den
that might kickstart some hijinks. Meta's maint is pretty bland and
hasn't had any real shakeups in a very long time, so adding a new PoI
might cause some fun events.



🆑
add: MetaStation's Drone Bay has been moved to be basically inside the
normal cargo bay.
add: To make room for it, the security cargo post was moved to the east
of the mailing room:
add: The drone bay spot in maintenance has been cleared out by a gang of
rowdy assistants, and turned into a drug den.
/🆑
2024-09-21 15:27:41 +02:00
Ghom
5409570e01 Upgrades GODMODE from a flag to a trait. (#86596)
## About The Pull Request
GODMODE has a lot of sources that toggle it. From admin-stuff to status
effects, components, actions and mobs which are supposed to be
invincible. It's better off as a trait than a flag, so we can manage
these sources.

## Why It's Good For The Game
See above.

## Changelog

🆑
admin: godmode is now a datum trait instead of a bitflag. This means the
process for toggling it is a little different now.
/🆑
2024-09-15 13:40:19 +00:00
Ghom
06ba9d93eb Pun Pun Station Trait, But it's only active on Monkey Day (14 December, every round) (#86091)
## About The Pull Request
This is a remake of https://github.com/tgstation/tgstation/pull/84501
with a few small changes to avoid mapping issues. This time it's
restricted to a once-in-a-year event, mainly because neither Jacq and
Lemon were ok with the possibility of Pun Pun being posibly playable all
year, however Jacq said he's fine with it being available on the
holiday, while Lemon isn't around on Discord atm so I don't know what
he's to say.

The trait makes pun pun playable and gives them the job of being a
busser (waiter) in the cafeteria. They're clever and can use tools most
other monkeys can't, but cannot be humanized, while also being unable to
speak Galactic Common. Should they roll traitor, they'll be able to buy
syndicate monkey reinforcements and equipment, which it can also use,
being a monkey itself.

## Why It's Good For The Game
This is a fairly unique job, like the Cargo Gorilla, due to the fact
it's not a conventional humanoid crew member nor the AI or a cyborg. I
thought this was a fun idea, though I met some obstacles and the
original PR was DNM'ed and then closed. However, the trait perfectly
fits the theme of the holiday, making a good compromise since Pun Pun
will stay AI-controlled the rest of the year, as Jacquarel and Lemon
want it to be. It can also be added by an admin through VV, whether
they're planning some shenanigean or just want to add something more to
the round.

## Changelog

🆑
add: Pun Pun is a playable crewmember during Monkey Day (14 December).
/🆑
2024-09-12 09:35:37 -07:00
EnterTheJake
6faa37853b Void Heretic Rework: You Can (Not) Heat Up. (#85728)
## About The Pull Request

Reworks most of the Void Heretic kit.

All Void spells now apply a stacking debuff that makes you gradually
colder.

Void Blast has been replaced with a new spell "Void Conduit" and a new
Side knowledge spell, "Void Prison" has been introduced.

 Waltz At The End Of Time has been completely overhauled.

Lastly Void Blade has been resprited along with the overlay of Void
Chill, check any of the linked videos to see the new look.

All new sprites have been kindly made by OrcaCora.

## Why It's Good For The Game


Void path is *Supposedly* themed around the cold of space but doesn't
have any tools to live up to the fantasy of being an harbringer of the
Void whose main goal is to freeze the station to an icicle.

Then there's also the issue of Void being utterly underwhelming compared
to his neighbors, Cold is way too easy to treat as a status effect, so
much so, a simple cup of coffee can utterly shutdown the void storm,
which is just unacceptable.

# **Changes**

- **Void Chill**: Is now a stacking debuff, each stack slows movement
speed by a percentage while lowering body temperature, upon reaching the
cap, which is 5 stacks, the victim cannot heat up anymore, all void
Spells apply 1 stack of the debuff, with the exception of the grasp
applying 5 (2 for the mark and 3 for the detonation) and the blade
upgrade applying 2.


**Reasoning**: Void chill currently suffers from being completely
shutdown by sipping tea, coffee or having the COLD_RESIST trait,with
this change you can still negate the damage and the slowdown you get
from being cold but not the slowdown from the debuff itself.

- **Aristocrat's Way**: Now grants no slip on ice and water tiles on
cold or depressurized turfs

**Reasoning:** Since the rework revolves around making Void heretic more
involved in freezing the station, they should be able to move in their
domain without getting punished for it.

- **Void Cloak:** Can now be toggled on and off to make the cloak
visible or invisible; when the cloak is visible it grants low pressure
immunity trait.

**Reasoning:** Not having pressure resistance as a Void Heretic just
sucks, as you are clearly intended to somewhat go into space at some
point; giving it to the cloak is a good compromise since you sacrifice
better protection (***the armor values of the cloak are pitiful***) for
utility.


- **Replaces "Void Blast" with a new spell, "Void Conduit"**.

**Void Conduit:** Opens a gate to the Void; it releases an intermittent
pulse that damages windows and airlocks and applies a stack of void
chill to non heretics, Heretics are granted the low pressure resistance
trait.
**Reasoning**: I like the idea behind Void Blast; unfortunately, the
spell has limited uses if an area isn't already spaced, which is hard to
do considering the current kit of Void Heretic doesn't provide anything
to help in that regard.

I wanted to give Void Heretic a tool to turn any area of their choosing
into their ideal habitat. Not amazing for quick assassinations, good if
you are anticipating a fight or want to simply expand your domain, the
added Trait might seem redundant, but let's not forget that the void
cloak is still a side knowledge, I don't want newbie heretics to space
an area and accidentally killing themselves because of it.
 
Video Demonstration: https://www.youtube.com/watch?v=nhPdj1hIgSI

- **New side knowledge: "Void Prison."**

**Void Prison:** It makes the target invulnerable and unable to do
anything for 10 seconds , when the spell ends, it applies a few stacks
of void chill, cannot be self-cast.

It occupies the same slot of Blood Siphon (inbetween Raw Ritual and Void
Phase.)


Video Demonstration: https://www.youtube.com/watch?v=nKZd8aEcZFw

**Reasoning**: Void is technically meant to be an assassination path and
not really apt at tackling multiple opponents, this spell might come
into clutch if you are outnumbered, or simply want some breathing room
from your pursuers.

- **Void Jaunt and Void Pull**

Cooldown respectively reduced to 25 and 30 seconds, down from 30 and 40.

**Reasoning:** I felt that the cooldown on these was a bit too high
overall; as it stands, Void Phase cooldown is twice as long as Ashen
passage, one of the best and arguably most sidepathed spells in the
game.

Granted phase is faster and has more range but I don't think it
justifies its cooldown being this long.

Void pull could also use slightly less cooldown, being the very last
spell you unlock and offering a simple melee knockdown.

- **Seeking Blade:** Now applies 2 stacks of void chill per hit.

**Reasoning:** Seeking blade is a bit underwhelming for being the final
blade upgrade, teleporting to a target you just stunned at melee range
is incredibly niche, now that Void chill is a stacking debuff we can
probably just slap it on the blade itself.


- **Waltz At The End Of Time:** The Heretic becomes weightless and able
to levitate around, (carp movement essentialy).

The heavy storm is no longer bound to the room the heretic is in but is
now an aura around them, this does a few things.

1) Releases a pulse that depressurizes areas, shatters windows, airlocks
and firelocks, and applies a stack of void chill to non heretics, the
passive burn and oxy damage effect has been removed.

2) Grants to the Heretic projectile deflection.


**Reasoning:** Void Has the reputation of having the weakest ascension
in the game, which it's hard to disagree on considering you can
completely neutralize the effects of the storm by simply sipping tea and
how generally little it does overall.

It's also kind of strange that you have this massive Eldritch storm
ravaging the station and for it to have no effects on its atmosphere,
infrastructure, or projectiles whatsoever.

Video Demonstration: https://www.youtube.com/watch?v=1_blr20-hgA


## Changelog

🆑
add: New Heretic Side Knowledge, Void Prison.
add: New Void Spell Void Conduit has now replaced Void Blast.
balance: Void Chill is now a stacking debuff, upon reaching the cap,
makes the target unable to heat up.
balance: Aristocrat's way now grants immunity to ice and water slips on
cold turfs.
balance:  Void Cloak now grants low pressure resistance when visible.
balance: Void Phase and Void pull have received a minor CD reduction.
balance: Seeking Blade now applies a couple of stacks of void chill.
balance: Void Heretic Ascension has been overhauled, it's now protects
the heretic from projectiles, destroys windows and airlocks and applies
void chills to non heretics.
image: Void Blade and Void Chill have received some new sprites.
/🆑

---------

Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2024-09-10 22:21:04 +00:00
Lucy
1dd4e37920 You can now bloodcrawl into/out of tomato smudges (#86565)
## About The Pull Request

This makes tomato smudges on the floor valid for bloodcrawl. Pretty
simple.

## Why It's Good For The Game

Why not? It's funny, and ketchup = fake blood.

## Changelog
🆑
add: Tomato smudges on the floor are now considered valid to bloodcrawl
into and out of.
/🆑
2024-09-10 08:37:03 -04:00
Rhials
4e1b14fd98 Hallucinatory Anomalies now produce hallucinatory decoys of itself, and hit a wider area (#86086)
## About The Pull Request

This "buffs" the hallucinatory anomaly by giving it a bit more impact
and flair. This affects both the detonate effect and what happens when
one initially spawns.

When a hallucinatory anomaly spawns, it will spawn surrounded by "decoy"
hallucination anomalies -- Illusions meant to distract you from the real
one. The idea is that these are not actually there, and that they are
the result of reality getting muddy in proximity to the anomaly.
Scanning one of these will provide a message, either of nothing
happening or a minor hallucination as your character suffers from the
real anomaly's effects.

Using an anomaly neutralizer on a decoy will do nothing. There's nothing
to neutralize, because nothing is there. You're losing your grip on
reality.

Now, the detonate effect will affect people at a wider radius, through
walls. This is done with a second helper different from
`visible_hallucination_pulse()`, which does affect the blind and ignores
walls, `hallucination_pulse()`.
## Why It's Good For The Game

Hallucinatory anomalies are easily the most underwhelming and
understated anomaly in the group. They have the impact of a dry fart on
a round, rarely affecting anyone and vanishing without anyone noticing
or caring.

It makes little sense for the detonate effect to impact only those who
can see it. Anyone with a pulse can make the connection between the
"hallucination anomaly" vanishing and Bubblegum bodyslamming them less
than a second later. By affecting those out of sight, in a wider range,
there's a higher chance the detonation will not only catch people off
guard, but lead to more chaos on comms.

As for the illusory decoy anomalies, it was just a neat idea I had to
differentiate how people typically deal with them. It makes for a more
trippy experience for whoever has to deal with them, and adds confusion
(which is the whole shtick with hallucinations -- confusion).

So, overall, more snazziness and personality, and more of an impact when
left alone.
## Changelog
🆑 Rhials
balance: Hallucinatory anomalies now have a wider range, and will spawn
hallucinatory decoys of itself to mislead you.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-09-08 03:41:28 +00:00
Ghom
10c2b7364e The fishening v3: Fishing lures. (#86007)
## About The Pull Request
Over half of the line changes are merely from splitting the
fish_types.dm into several files since it was over 1k lines already.

One of the small issues with fishing right now is RNG. You want to get
some specific fish, and you go through all the micromanaging with hooks,
reels and baits only for the random number god to say "nope", and that's
only going to get worse the more fish are in the game.

However, I've a solution: (unconsumable/reusable) fishing lures, each of
which attracts different fish based on different conditions. The only
caveat is that they require to be spun at set intervals (usually 1 to 3
seconds, depending on the lure, with a second-long window). Worry not,
there're visual cues in the form of a green/red light hovering the
fishing float, so you won't get screwed up by the server slowing down or
whatever.
The whole box of lures (12 so far) can be from cargo for the fair price
of 450 credits.

I've also added 5 new fish: monkfish, plaice, pike, another punnier
variant of the pike, perch and squid. The latter is quite special
because of the ink production trait, which lets players use it to blind
others at a close range and when butchered, it yields an ink sac, which
can be processed into a can of squid ink (one less item exclusive to the
produce console), or thrown at people in a sort-of-similar fashion of
banana cream pies (except it's ink).

<details>
  <summary>Images</summary>

Fishing lures (forgot to take my cursor off the veggie one before the
screenshot):

![immagine](https://github.com/user-attachments/assets/8ba7a0f2-2a9f-4177-9c0d-ebeabd8a0ef7)

The five new fish:

![immagine](https://github.com/user-attachments/assets/1c251079-3b39-48bb-af6c-0a35623953a7)

</details>

<details>
<summary>A table of fish catchable wth each lure (excluding
holodeck)</summary>


![table](https://github.com/user-attachments/assets/dee95855-405b-4945-bfc2-70e816e46109)

</details>

A few more things in the CL, baitfish are a thing now.

## Why It's Good For The Game
There should be ways to contrast some of the RNG fishing has. After all,
it's only going to get more random the more fish are in the game.
Furthermore, I find it disappointing that a lot of food stuff is
exclusive to the ingredients console and there're no other ways to get
it.

## Changelog

🆑
add: Added fishing lures to the game. They don't get used up like baits
and let you catch specific kinds of fish, though they need to be spun
every few seconds. The whole set can be ordered from cargo for 450
credits.
balance: The magnet hook now removes dud chances.
add: Added five new fish types: perch, two types of pike, monkfish,
plaice and squid. Squids have a fairly special ink production trait,
which lets you use them (unless dead) to ink people face at close range,
and can be butchered for an ink sac, which can either be processed into
canned squid ink, or thrown at someone.
fix: Refactored throwing a little. Some items (specifically
components/elements) won't be triggered when caught. no more plates
shattering despite being caught for example.
add: Goldfish, lavaloops, needlefish and armorfish can now be used as
baits.
/🆑
2024-09-06 19:50:28 -04:00
Ghom
d2ab513332 Reintroducing my PRs that were lost in the wallening revert. (#86439)
## About The Pull Request
This PR reintroduces #85759, #85892 and #85894.
#85892 has post-wallening arrows, but it isn't a big deal because they
fit the top-down or 3/4 style we've for a lot of things.

## Why It's Good For The Game
Reintroducing lost features and improvements. Remember to remove the
'Lost in the wallening revert' label from those PRs when this is merged.

## Changelog
N/A
2024-09-04 06:50:04 -04:00
Lucy
8263be1b73 All jaunts now kick you out if you are KO'd mid-jaunt (#86339)
## About The Pull Request

Basically, this is https://github.com/tgstation/tgstation/pull/83241
extended to all jaunts, like bloodcrawl and such

## Why It's Good For The Game

Kinda sucks getting RR'd if you die for some stupid reason
mid-bloodcrawl (i.e accidentally suffocating while jaunting)

## Changelog
🆑
fix: You will now be ejected from any jaunt (i.e bloodcrawl or shadow
walk) if you lose consciousness somehow during the jaunt.
/🆑
2024-09-03 17:38:13 +02:00
tgstation-ci[bot]
9a9b428b61 Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
8868a5d1fe and replaying the PRs skipping
#85491.

The following 239 (39 + Wallening Main PR excluded) PRs need to be
replayed (DO NOT EDIT THIS LIST MANUALLY, IT IS USED BY THE BOT TO TRACK
PROGRESS):

  - [x] #85777 - Reverted in 3
  - [x] #85767 - Reverted in 2
  - [x] #85763 - Reverted in c
  - [x] #85762 - Reverted in 2
  - [x] #85760 - Reverted in dbc19df13b033ac8bb5a83fa38c5cf140cf31836
  - [x] #85733 - Reverted in 22f17d057eac71661b86c3f2186489568c130043
  - [x] #85721 - Reverted in 6d90643dbbc90f3d21f2d25dc85dc4d4f706d6a3
  - [x] #85719 - Reverted in c52954648309ad4786238f409cd33142d486190f
  - [x] #85705 - Reverted in 3b5ddabfd5ab2cfec226a643be6e8a8fd656c831
  - [x] #85684 - Reverted in cbc1839625f44ba67bcd5489c3629ef98e31b2d4
  - [x] #85662 - Reverted in 69cac24e236604c262093abea7b9566ecbd092c4
  - [x] #85663 - Reverted in f394c3b1430d346b0598abf19fe511b30c3f4676
  - [x] #85673 - Reverted in 8a9ae0411488c9c779a54c5c41076238c230a304
  - [x] #85718 - Reverted in f8f18d8b626e963b06555f76850702740d5de0c3
  - [x] #85667 - Reverted in a1365766d178b727b6c6b503ad410e9d88d57ddd
  - [x] #85683 - Reverted in 3bdb0207d883de8db6f726d976025517cc6d3cba
  - [x] #85676 - Reverted in 0a5d667b2c8a9a2519af2a4fda8cd39f568e5049
  - [x] #85661 - Reverted in 49fc6bc1815133644d7173aa7914ede6c900218a
  - [x] #85682 - Reverted in b41efe96fd72228b079319ac07c660f4cd974af6
  - [x] #85695 - Reverted in 89a173b136cb0297070cef39c5bc9783b6323f02
  - [x] #85654 - Reverted in 1e4836b5173a40fbeb8755e0fb76ebc8d39fe1e0
  - [x] #85655 - Reverted in b4dde41eebd0422e1ec440b4d8d54229fc9617f4
  - [x] #85634 - Reverted in 0c352fc785762da025a68873438593b508f757d9
  - [x] #85700 - Reverted in 1327cf7fe48d7f4fd227120508f77c831aefa4ca
  - [x] #85633 - Reverted in c71c8c9d43112a1f4c6331bbba546881dcffd59d
  - [x] #85649 - Reverted in 73484337077f616878e63208d9bf2309f0d2e579
  - [x] #85475 - Reverted in 839f700001a57646109e75332d5311fe27bbc957
  - [x] #85467 - Reverted in 6f08421f64d01b13775d146cf7a451f9f38e195a
  - [x] #85472 - Reverted in 63c6a9b04e72e8130df5eeb2861c75f80a97e3de
  - [x] #85300 - Reverted in 7c776034f34ee6a76810c1a3779f169f2430c418
  - [x] #85249 - Reverted in 257d02273751fc1f939f76756f70b614a6e06789
  - [x] #85236 - Reverted in f9f4c444c8fc027dea87d4dbe0ebb8dd6bc67154
  - [x] #85299 - Reverted in f24ddff51dc3fec7145a2e97f057f1b286921db3
  - [x] #85228 - Reverted in cb8c318f7e2183d9f941c582f79e4c8b2503d95c
  - [x] #84910 - Reverted in 2a562ca26d9d13f335c276487f66edaa0d21b3bd
  - [x] #84889 - Reverted in 679da6885b034bcd8843f7f4c855388bce263733
  - [x] #84766 - Reverted in 4035dd7adee74af0fed82c14a8749585b2ab1c96
  - [x] #85607 - Reverted in dc9a0462b4c287cee2d541925f8a9988d18d9d85
  - [x] #85618 - Reverted in 2a06f57c89939dc31e9273ef250bd050cff17ff1
  - [x] #85619 - Reverted in b98661affc90e44c68a58c05e57cdf1dfd094c93
  - [x] #85608 - Reverted in 57a935126233f90255aef0a55dab16524be1faac
  - [x] #85648 - Reverted in ab82c66a95d4fbff86040b421a86cc82dca73009
  - [x] #85692 - Reverted in f04fac92bd3594f12f244bae9ea0c5c300c737fb
  - [x] #85544 - Reverted in 7b1198eb5c700e85ec163e60828c01fac55a9909
  - [x] #85631 - Reverted in 81c04ceb553f9887d59f8edf8b2526ff3807264b
  - [x] #85529 - Reverted in 2a7e2c8e3856d67cdefda0d25803393070a6e996
  - [x] #85525 - Reverted in 6ed2d9f28a9333c705eafd21acf54771b8e4db36
  - [x] #85514 - Reverted in a4fa2aa79d93b69d15e0fb9cb1fb7a5bc288bb34
  - [x] #85520 - Reverted in 6e1bd4b11cd55e36cab332c5a0c90c76a2e43703
  - [x] #85521 - Reverted in 79afdac194da5f42b38fb0fdfc394f2b8d485266
  - [x] #85519 - Reverted in a967cae1fb3feea23fdf196595e496431740f52d
  - [x] #85513 - Reverted in e3934edf8794f93a37dc7f63c60aa64ed7b60736
  - [x] #85498 - Reverted in cf1fadbc54a1365362aaeb142cbbd4e2c3be6f15
  - [x] #85485 - Reverted in 2a650ef9c0454bd650d6a13d10c0cb71bb134b2b
  - [x] #85494 - Reverted in bbb97958010dc0f74cee279fd304a7fcaccb625e
  - [x] #85552 - Reverted in f1780715bd054300e50e9102ad150c76690d4ca1
  - [x] #85724 - Reverted in 6933699cef8b01f9aef989f36ca079680a2777ff
  - [x] #85735 - Reverted in a6564f19226ef3969bec0573b49fa772d6e6df31
  - [x] #85729 - Reverted in f728d121a2f27a3cc7973fc2041df9b7193b796d
  - [x] #85704 - Reverted in 38f5b034a3370eda4657a2a5a6adcf3df6ec280c
  - [x] #85660 - Reverted in 7db39869d37ff5b39574d88ffc872449ab5b457c
  - [x] #85752 - Reverted in 1f2988028b7cccad121fc658d6547d89453703b7
  - [x] #85592 - Reverted in 263cbcfcb54746a9361369d86b44cc3e2d375199
  - [x] #85580 - Reverted in a92d53624198dce844c108b5dbea09cf2a16cd10
  - [x] #85573 - Reverted in a7d51042355798038ced44f64e987261b85e93bc
  - [x] #85534 - Reverted in 31787e7d1ce4fec2ce20776672099bf35486a296
  - [x] #85511 - Reverted in 2567a2eb56cdb7058f89ea298e53197147198d82
  - [x] #85508 - Reverted in 69de2ac16c20d968adcd19f0732fd2f84a4ae90e
  - [x] #85680 - Reverted in 44437ac406c708b9a3ab3b47f4e3c10e77a0b91b
  - [x] #85551 - Reverted in 7f17d428fd2787a6982534bfc9ac9188fd4b8675
  - [x] #85478 - Reverted in bd9e575dafc62dc7e1259e8c19199ba15d82be4f
  - [x] #85476 - Reverted in 4ce8052076de0bb52f1ed87663920e98482ade62
  - [x] #85593 - Reverted in 9ff5924d3d56fcba3f180fc4b539568fb2013323
  - [x] #85441 - Reverted in db96015adaec01f3fbcb978796a0d7abd5668932
  - [x] #85567 - Reverted in 62696ad04fb34fd946708309bd3e439db9b3f488
  - [x] #85337 - Reverted in 1267e9f002d03c33187afd2e734e95a78a5ca6ac
  - [x] #85348 - Reverted in 4fcc3c659ee2a38d978e137252309644d5adde8f
  - [x] #85350 - Reverted in e691c833dd5aca2e7808591516e8443e8ccf1b27
  - [x] #85744 - Reverted in 251578d2868a691981b824a268c540b9c15a424e
  - [x] #85772 - Reverted in bc6804a04aa9368074bcc853e689c8fe6de2cb3a
  - [x] #85797 - Reverted in a05e36ec4a0129ff6901ea07488120b54a8ee124
  - [x] #85787 - Reverted in a5393f94b9e71d9ea0625e5fcfb5baaf16af38d3
  - [x] #85742 - Reverted in cd99a2aeaa1347b790c9bfdae35e41900e2ada9a
  - [x] #85440 - Reverted in 8b5ead7c7f0d8087b41256a296e730443752f17d
  - [x] #85739 - Reverted in 3511aae5a4798104220b79ad0e5b2b357dc1e83b
  - [x] #85293 - Reverted in fc687ca36ef476ab9080f0c62b427ab0af533d68
  - [x] #85716 - Reverted in 130b32a222a7585cfdde71aa561fb8b2c7d8083b
- ~~[ ] #85848 - Reverted in f6c46ca2f5cb2d039e4b26731570ca801741cc5d~~
(SKIPPED)
  - [x] #85795 - Reverted in 4684c3325a9135b6bf10eb43026f373993bf605d
  - [x] #85859 - Reverted in 0e0838fe11b7d9af4f62af4f7388ed8fb57bf49c
  - [x] #84873 - Reverted in 34407b79a45718a305f3bfe3fac7f129b4f1c51f
  - [x] #85864 - Reverted in 4b25a209c5019bb65922cd793aff339f20c3d026
- ~~[ ] #85845 - Reverted in a326246e81b7b9242bbf45e7ab3b31caf9ce8147~~
(SKIPPED)
  - [x] #85844 - Reverted in bdf1e6c1e3469884550d3211e51ec9303a022482
- ~~[ ] #85843 - Reverted in 41a8acb196af0988372b06ade7131d07d03daab3~~
(NOT BEING INCLUDED)
- ~~[ ] #85840 - Reverted in 4807bacea8418000f84d62ca0fb122846cab4929~~
(NOT BEING INCLUDED)
- ~~[ ] #85837 - Reverted in bc9edfa8666de14ca4e57e466146d753182a3a71~~
(NOT BEING INCLUDED)
  - [x] #85865 - Reverted in 14c958b465af40f0ff28b100047c4c572919ae19
- ~~[ ] #85818 - Reverted in a77256f74e2d330f5f76141eb9c994a8e5e45810~~
(NOT BEING INCLUDED)
  - [x] #85822 - Reverted in caba685be95fd336f0b09e88bccfb8856d5ad9b4
  - [x] #85794 - Reverted in 0d4de984eb8513d065e8ac724e8cde11f01d4ef7
  - [x] #85756 - Reverted in 9c5a7e1a5f895851493e149ccb5cd50e35cd6101
  - [x] #85852 - Reverted in 74303e5bbae8426a073d068ef4342d8acc420a09
- ~~[ ] #85841 - Reverted in e5831ce3cc87765cb13e6d342417bc1730780392~~
(NOT BEING INCLUDED)
- ~~[ ] #85834 - Reverted in 1be665204da791ec7520d0799c015157fc625953~~
(NOT BEING INCLUDED)
  - [x] #85792 - Reverted in 33b4e48175040f9f76ef83d3154f10c69589b6ad
  - [x] #85646 - Reverted in fd23a0d6c4c96470b688dc0a35370c61c7e32f61
- ~~[ ] #85799 - Reverted in 4a7a6d812f2f301c1e749c92f324223f9bde8a39~~
(NOT BEING INCLUDED)
  - [x] #85819 - Reverted in 8bf001b7889d3a4282947cd332833c473b98eac1
  - [x] #85479 - Reverted in 6aeb5ef4582c03febe0c914185d29f75df4d5d94
- ~~[ ] #85824 - Reverted in 9ca3edfaa17d97306ac73207ef32fd1272061f6b~~
(SKIPPED)
  - [x] #85406 - Reverted in 702280ff48c8aef44f4da9a85eb33a7bc5faa013
  - [x] #85778 - Reverted in ce0ec5c685aadb02ae049d6714f1d2fd6dae1f26
- ~~[ ] #85851 - Reverted in 610c68b275cf3c54181d36ce48bd97b0cce0665c~~
(NOT BEING INCLUDED)
  - [x] #85754 - Reverted in 5cbdda00c5335db79ea50aedba097de1d06bf91b
  - [x] #85266 - Reverted in abdfec798e5223dfa9d67e1967d7618454dbec28
- ~~[ ] #85823 - Reverted in 86b766abd3d77af8ad835a3464fc5ff95cc11079~~
(NOT BEING INCLUDED)
- ~~[ ] #85842 - Reverted in 7ddd47e26ef1bc336e92a6675a33ec3191039c16~~
(NOT BEING INCLUDED)
  - [x] #85857 - Reverted in e32312ee20e9fdccb6dd7c4dc2d185540bd2276b
  - [x] #85856 - Reverted in 7d5d74c2b55a08ef5553568e996053157359dbe2
  - [x] #85276 - Reverted in 1d6fa881e4aef1e6b368d5b6809bccb021fbbd2a
  - [x] #85886 - Reverted in f27d6cabdf8f06f29926616345fa82c4e1e48708
- ~~[ ] #85771 - Reverted in 019d898b601c9ef4d45b7ee0f2144518ee127ca9~~
(SKIPPED)
  - [x] #85464 - Reverted in adc00417795deb85f8aa6170b0f0a07c40c8798c
- ~~[ ] #85870 - Reverted in d69b998420bfb39693bb59b9b9a20611880fdafa~~
(NOT BEING INCLUDED)
- ~~[ ] #85869 - Reverted in 0063c69f111bb67144f9b379476250ce86c99eee~~
(NOT BEING INCLUDED)
  - [x] #85530 - Reverted in b40c93399411d277b3899e149196f3eb974f841f
- ~~[ ] #85871 - Reverted in 63908bbd0a71d0a2bd0a4691816c17cc9eb5310c~~
(NOT BEING INCLUDED)
- ~~[ ] #85832 - Reverted in b29dab083f091198d65a9b0754536f13a935dc2c~~
(SKIPPED)
- ~~[ ] #85825 - Reverted in d072b294ca3bc526df5128df45653db97ba38fe1~~
(NOT BEING INCLUDED)
  - [x] #85632 - Reverted in 290092c7d826aa5b100a38cd4bacc5330b39a934
  - [x] #85902 - Reverted in 76118d620e71f1819a9385863b689d9a8d4ea810
  - [x] #85906 - Reverted in 82623c2cc0fd9aee3e79c95fe5558146c59bc941
  - [x] #85907 - Reverted in 68b7305f21240ca28c33afc904ee532966b7c4bd
  - [x] #85449 - Reverted in ab86a79339ef7b01ceb08dc7279c698927ebcbfa
- ~~[ ] #85875 - Reverted in 0a1fcda90e638e66d574c247e93f0669d0c27b0e~~
(NOT BEING INCLUDED)
- ~~[ ] #85861 - Reverted in 6dad5111aa144860371c93a2d78094fe3d39a7e1~~
(NOT BEING INCLUDED)
  - [x] #85264 - Reverted in dc1d2dcc995f33fc5773e037f5171e9516897281
  - [x] #85726 - Reverted in dbd9ec81586c87c1ab2afc43d43c4f020907dc1b
  - [x] #85730 - Reverted in 7de2c2a1d012ccb03f82c6beabd71a66aa0f910a
  - [x] #85880 - Reverted in 02169d2f28611765997fa332dda69c8031436fd1
  - [x] #85176 - Reverted in e3c85aae1cf665c9892bf7280b7b48ea42323198
- ~~[ ] #85887 - Reverted in 56b35f294b303fd30fbd7685011d37b456d584c7~~
(NOT BEING INCLUDED)
  - [x] #85883 - Reverted in 53be06a505ebd8581114bba8590e378d387b6c1a
- ~~[ ] #85882 - Reverted in a8877ff0083ca5753e3d3b1b9c9edc3613fa6570~~
(NOT BEING INCLUDED)
  - [x] #85895 - Reverted in 741235d41b3a19a40434653f1c14fc0999fac9c3
- ~~[ ] #85746 - Reverted in b7aebb6e5788f6c484173f0a5e29f042ea0c8560~~
(NOT BEING INCLUDED)
- ~~[ ] #85889 - Reverted in d677231d8c55efcd2cf427d510d961cd00f186c7~~
(NOT BEING INCLUDED)
- ~~[ ] #85888 - Reverted in 693f79abae54980ee098d602ed79926d51d5094b~~
(NOT BEING INCLUDED)
  - [x] #85898 - Reverted in 4f41fda23e6b9711aef5d00836591c1ac230612e
- ~~[ ] #85821 - Reverted in 738c9a75f65c4a376da36ad208e1fd8fdeac1ff0~~
(NOT BEING INCLUDED)
  - [x] #85694 - Reverted in f7ea4d19cdaa2067c87c43362b514c684b56b1f3
  - [x] #85308 - Reverted in 4a89b62774da5e9ec9ea241c60ec2a99f51f9bed
  - [x] #85904 - Reverted in 999dbe1773cc7488c629bb8d0d21be5454dbef60
- ~~[ ] #85901 - Reverted in bbf832da9e0c61ad25221530df3b1e93cace25dd~~
(NOT BEING INCLUDED)
- ~~[ ] #85896 - Reverted in 542fe408728faaef8a16869e13c4661018a8a07c~~
(NOT BEING INCLUDED)
  - [x] #85927 - Reverted in 7dc87df28e79ef3e9f3fad83cc0907d2dc867c47
  - [x] #85908 - Reverted in bcca80f073a486ca7908e9636d0e8b275c2085bf
  - [x] #85929 - Reverted in 094bf3610a73961f6433a52ada1a52f25d853738
  - [x] #85877 - Reverted in 5874cafd0dab8d3bd61cf1f662793c2708f42dcc
  - [x] #85903 - Reverted in b3ba8fffc5548e0f2ae6bada3baf10bad3c75e54
- ~~[ ] #85913 - Reverted in 67f7ec48d20f9a64ce4664fa2c452a25b60db59e~~
(SKIPPED)
  - [x] #85914 - Reverted in 7efcd3a5f7fef33c2a1625386bfead80a6ed5309
  - [x] #85917 - Reverted in fc50a5ff998d0e7269131a029e533e90e9dc3c54
- ~~[ ] #85949 - Reverted in 10a8e0f5c69e3ca1eb6e26f00945bfe226598bc2~~
(NOT BEING INCLUDED)
- ~~[ ] #85338 - Reverted in 847549ab938f77464829b1392a1b6f2b2f4b9e8f~~
(SKIPPED)
- ~~[ ] #85922 - Reverted in 3d9388249b8c322aac5dd4980d4ab4673ca01006~~
(SKIPPED)
  - [x] #85923 - Reverted in 2c6ffa4decf40eb52a92353aeb98aee8cbc7b4a2
- ~~[ ] #85920 - Reverted in 1de5b03981d9fcf9c2e6823bffa515fb939aa541~~
(NOT BEING INCLUDED)
  - [x] #85919 - Reverted in 1773e9baccdc941285f56ccb416f5c7125b031ef
  - [x] #85271 - Reverted in aecf8002cf2807a76b6b295867e50392b4bc4534
  - [x] #85918 - Reverted in 023ec3a4d1b1b2fc8f596fea65a77ddc9a06689f
  - [x] #85924 - Reverted in e4886079ad90f33628ac59e0793dfbbc8b8b9420
  - [x] #85928 - Reverted in 7470b7d5ac40be21c345e8825f4c4efc4738e29f
  - [x] #85926 - Reverted in 7761c9e3a1f442f37d4db4b27e5d78fae95edf00
  - [x] #85900 - Reverted in 633736cb0655dc464e9794666c63ae6ec7689826
  - [x] #85909 - Reverted in a47c7ec8a77bd02f8b7bb1ce3c621efbe57077c3
- ~~[ ] #85931 - Reverted in 9bc7a412982da6fbdb9cd24570d98877b76a45c3~~
(NOT BEING INCLUDED)
- ~~[ ] #85894 - Reverted in c15e1711656929aeb59f482145ecf029b40d58b8~~
(SKIPPED)
- ~~[ ] #85759 - Reverted in f45d70be0ffb9bf007bfa18a1bd1b5ce23d6dcfc~~
(SKIPPED)
- ~~[ ] #85892 - Reverted in fc08dc1a7160f584c94e368962eb56c18dccc86a~~
(SKIPPED)
- ~~[ ] #85915 - Reverted in 428f475c26f383998a689560a16de86da3f17557~~
(NOT BEING INCLUDED)
  - [x] #85222 - Reverted in 66e7ac2f00735c90acdb69a50c9e485a0f4e1552
  - [x] #85150 - Reverted in 3079387f926e41febb576105ec0b3acec2f7beba
  - [x] #85935 - Reverted in ce6114f644593ead295763362a61d19077f22acf
- ~~[ ] #85936 - Reverted in f601fa796bce7e70645a84fff91391cbb6ed8e37~~
(NOT BEING INCLUDED)
  - [x] #85937 - Reverted in 64242f589df3d9118fd5c09d19574758260c76a1
- ~~[ ] #85940 - Reverted in a979c6c24705a8729efab5eca40840f1c8070f1d~~
(NOT BEING INCLUDED)
- ~~[ ] #85942 - Reverted in 9562c14083212fc962b8687663ba5fac2ebfdd1a~~
(NOT BEING INCLUDED)
  - [x] #85944 - Reverted in adf8e1927e4b9886c9042d6a0eaaef74e4e0e102
  - [x] #85605 - Reverted in 88dbfb4f859f12549e8cf8ed5204ee8d7183d40f
  - [x] #85945 - Reverted in dea9e79a9c298eae05b8d173d8df4a37218e2d9c
  - [x] #84964 - Reverted in 234481fb1d92a266768fcbca49245151236803ed
  - [x] #85952 - Reverted in c62d87ab54d687db64b1551b319195527ca92924
  - [x] #85953 - Reverted in bd0e46245ccb597081b8baa4f81ff85949f672be
- ~~[ ] #85943 - Reverted in 697b6841391354885ef2d314d9185b8eee7a5cb0~~
(NOT BEING INCLUDED)
  - [x] #85946 - Reverted in f4afd4d330b6fc28397f7707bca8773d44cb15ed
  - [x] #85950 - Reverted in 394fffcb836f32f4e1b1fd91a621249e0e5d7d67
  - [x] #85955 - Reverted in 2230a5bc141cd11fc79ccf6b4b653257508a7e65
  - [x] #85319 - Reverted in fdaddd9cd6ed0bdd1cd78ba3c9729035936abcbd
- ~~[ ] #85934 - Reverted in 41bb6122b6d6e3c38c500d5ddf63808836ab090e~~
(NOT BEING INCLUDED)
- ~~[ ] #85255 - Reverted in 3e213b8554b40e53f6429969d6e9dbaa357fb09e~~
(SKIPPED)
- ~~[ ] #85961 - Reverted in 6f3d000b3601dc7f75f7edd221fab3edc3bbbd8c~~
(NOT BEING INCLUDED)
  - [x] #85956 - Reverted in a5bf22a93ca1a149ca839e6c874d088b32c7c25f
  - [x] #85958 - Reverted in c964a46741bd26a600bb75bc6463c629c11c914f
- ~~[ ] #85969 - Reverted in b599cd4bd3ae223210eb0d3b47c3bd814e1cb08c~~
(NOT BEING INCLUDED)
  - [x] #85252 - Reverted in 5a0e2f31a6e1093ab47970056f5bb3af54172e12
  - [x] #85984 - Reverted in b000da82f62bb48b059a881d596f3a2e7d985d21
  - [x] #85137 - Reverted in 1f31b558e41fc66d5da9db30a83d89cbb9949eae
  - [x] #85881 - Reverted in f3913f94c4557c4fc9d5605cd8e875accabebda6
  - [x] #85972 - Reverted in d3afed87a3a8eed7e0016512d2186b6aded0fca9
  - [x] #85998 - Reverted in 3d286b763cf2f7fe11b6f0ccb2456130570726c2
  - [x] #85358 - Reverted in 75f84bda1b3c80d54ae94a567bf96016aaae45b2
- ~~[ ] #85964 - Reverted in be1aeb010afa20c1b6949218d8911ee9e900b3d7~~
(SKIPPED)
  - [x] #85960 - Reverted in 69cbfce1529377ce7cd998ab474add0d61650d7f
  - [x] #85992 - Reverted in 89e4a7bb0b793461338ba1b0a3d332bf78ef140c
  - [x] #85967 - Reverted in d398e418eb340f309be523514ae0befdf1869560
  - [x] #84888 - Reverted in bb98eb09f06a1fdc0bbb733d6a42d711e6d477bc
- ~~[ ] #85983 - Reverted in 81152a9cd347eb7b4073758e2e96490e6e729ca9~~
(NOT BEING INCLUDED)
  - [x] #85976 - Reverted in 93c091347ca8f04763b91fd4c39ccdff848a0d50
- ~~[ ] #85962 - Reverted in de32ea25b534c725e3d55418ef0363145f0ed2b0~~
(NOT BEING INCLUDED)
  - [x] #85977 - Reverted in 393652a1ef065014748ae6977a9f36b32c99dc7c
  - [x] #85959 - Reverted in 52e6e07eb98bcb74a423934b14d5850dbf2c6647
- ~~[ ] #85988 - Reverted in a5853ccde46b5fee2d9eb31755384de15e7a5a87~~
(SKIPPED)
- ~~[ ] #85974 - Reverted in eab20ba04e6b06f862a0fb35cedb6374af7b93c0~~
(SKIPPED)
  - [x] #85939 - Reverted in ca85b05692f55f6b3e4bd0b3f30c63f89531c33f
  - [x] #85878 - Reverted in 3b3d3dbff9148e46b01f3af28f17f66bef4dfd16
  - [x] #85858 - Reverted in 08d6082e62d07117170ff5ffd065daad1278e853
  - [x] #85651 - Reverted in b76ab4a2114dd0eb78336878b2825d9919c210cc
  - [x] #85505 - Reverted in 0958eaa7b6f4d48400bea4e215e11edaa933ba8a
- ~~[ ] #85352 - Reverted in 620cec18618e514bbe4d3eb0a0d0db1528b9d312~~
(SKIPPED)
  - [x] #85279 - Reverted in ba0fd529ef94ba793fe2eee40975533fe8f475e3
  - [x] #85954 - Reverted in d7fe0336f2a968b93fd02361814930236e3b8ddf
- ~~[ ] #85996 - Reverted in 5fbd62139e0c1b668aaaf35d249d527cdc276b93~~
(SKIPPED)
  - [x] #85994 - Reverted in c99a03c6833ac58e0288111953573f697488234f
  - [x] #85470 - Reverted in fbd5ac46d84d27455cbcf5f998741124ed6de625
- ~~[ ] #85981 - Reverted in dc74c75011ddfb1b16d644fd2ca5607599532d6f~~
(NOT BEING INCLUDED)
  - [x] #86011 - Reverted in b14b42e70e2bd21f19d443065b2342e4591c5e05
  - [x] #85820 - Reverted in 26248546b9f7d0fedec52e7b2f7def40d457e29f
  - [x] #86013 - Reverted in e17ac14f53d08be988f0516e7c39d31496a35184
  - [x] #85986 - Reverted in 4021ffea0b1bbb1f6c5b26a296abd5a8bda1d5b3
  - [x] #86019 - Reverted in c0801b3aa5dbdd33ca7c6c81e80c9fa573ada9e1
  - [x] #86010 - Reverted in 10dff005729305b75deaf1c5755a94125fa5141d
  - [x] #86029 - Reverted in 664619213db52930fa22007561dad01fe8bb3de4
  - [x] #86024 - Reverted in e74ea4368cbd2cd085aa6e8bbe83db07800b0bd4
  - [x] #86022 - Reverted in 0b2fc6a1f478c48546b161fd3ddd571f7ed6000f
  - [x] #86015 - Reverted in b99d93592dbf8840a035f22f26b64bcf27c817cb
  - [x] #85415 - Reverted in d6102c7339838675c03eb771d7a3b5a9bea4035d
- ~~[ ] #85703 - Reverted in 339b7edf3c0318f9f02922018d6918211660234f~~
(SKIPPED)
  - [x] #85890 - Reverted in 4e54f376e07071f84ed283e7468e334aaf6e4e02
  - [x] #86046 - Reverted in 0bbe2c9a048c229d151682e08aca1fa176c3ad91
  - [x] #86008 - Reverted in a0a0635cd6618618c49fda7cf150231d62a14236
  - [x] #86042 - Reverted in fa376315a064b945ed9846225c7f48e38e9b55ed
  - [x] #85891 - Reverted in 603dcd691e9eaad0a610c60c94fee522391bd2b3
  - [x] #86040 - Reverted in e42fc7618194b4b01cb68ca0c61385e465d0cb05
  - [x] #86025 - Reverted in 536bb25fe91845fe05bb7d512d8e73cc193b67ff
  - [x] #86012 - Reverted in 5cb4ec5bdf87653a5bb651c536f21423db30887e
  - [x] #86004 - Reverted in e9536143e78e3b0614d3ce6ee2c9a40005ba9b91
  - [x] #85989 - Reverted in 88a92322c2f028d2e3a2be18951d35d1135a6268
  - [x] #86044 - Reverted in d0a5fb5956be23144e325d3d51f53cb103dd5bbe
  - [x] #86001 - Reverted in 195c3597044315c9b10d002e6196911ac0622c45
  - [x] #86030 - Reverted in 5265796286b481d34fc91a1f8c58b6373d23415e
  - [x] #86055 - Reverted in e82138798cda028b673fe7ac83890e5a6b9e16d2
  - [x] #86057 - Reverted in c921900e6151552aa0768b4c9d7cc58c58dfbcc0
  - [x] #86014 - Reverted in c004d4e989a2faa672793f58fd98bd6fded8194e
  - [x] #85304 - Reverted in 611510bd7f65ee06738b7344326d72f57a131f8a
  - [x] #86061 - Reverted in f14b0a245dcf164bb99f7696e180847bb5be9b11
  - [x] #86075 - Reverted in 5339fe6c098d48769eda3f9935aa3488faa73097
  - [x] #86089 - Reverted in 10b5398e6b55f4799ca7d6740ac50c031e157c43
  - [x] #86081 - Reverted in ba86f43383cd2e8417c0a465c23fe3227fcd5520
  - [x] #85609 - Reverted in 9e5208feaca3163b7f4237c316d880161933777f
  - [x] #86114 - Reverted in cf410a97b8348381f96cc784a6489d7c1dea49ba
  - [x] #86023 - Reverted in a7a2e95c0c1b0598f15019934c80ccc80a9f89af
  - [x] #86027 - Reverted in 9cf71611befac64d26d326c060ef082262aeca70
  - [x] #86016 - Reverted in b67fa06e1559c8de87899bd06d09891b4c7ae947
  - [x] #86095 - Reverted in dc5abd827bb56e1609afe5a9d2bdd957d40cc75c
  - [x] #86105 - Reverted in f5b8e7ecbe99cb38e829a98a4f6eb2c200af8b91
  - [x] #86070 - Reverted in 6c460bbc22827bdbc566b524b8e6a959cbb61c37

After that some startup commits on this branch need to be reverted then
it can be merged.

---------

Co-authored-by: tgstation-ci <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <kmelbert4@gmail.com>
2024-09-03 10:41:51 +02:00
Rhials
45174ce0e3 New maintenance hazard: Smokey Remains (#86016)
## About The Pull Request

![tboi
unlock](https://github.com/user-attachments/assets/c1cc3d10-85b1-450b-b404-1b00eeb5715b)

This implements a new rare maintenance spawn, smokey remains. Piles of
bones that used to be Nanotrasen employees, still packed with whatever
reagent finally did them in.

Rarely replacing a crate spawn (7/1007 chance per crate spawn if I'm
doing the math right), these act as landmines for uncareful travelers in
maintenance. When you get too close, one will release a cloud of a
randomly generated reagents into the air (the same reagent every time,
unique to the instance of remains). You can (mostly) avoid this by
walking instead of running. These will "re-arm" themselves after 4-6
minutes. They're decals, so you can just sweep them away if they're a
problem.

This also slightly tweaks the original iteration of this, which I used
in my Smoking Room ruin. Don't worry about it.

I'm open to adjusting the rarity, cooldown, and selection of reagents if
need be.
## Why It's Good For The Game

Makes maintenance a bit more spicy. Maybe dangerous, maybe beneficial,
maybe it's baldium. Who knows! Better be careful just in case!

There's plenty of boring chemicals that could roll, but an interesting
one could be a nice injection of uniqueness into an otherwise dull
round. It's an infinite supply, but can only be dispensed infrequently
(at a fixed location) and would be extremely difficult to harvest.

The rarity, combined with the variety of reagents that can be picked,
make it unlikely that these will have any serious impact on a round
(it's still possible, but rarely, which is good).
## Changelog
🆑 Rhials
add: Smokey remains have appeared in maintenance. Make sure to walk when
near them!
/🆑
2024-08-28 21:50:40 +02:00
Jacquerel
7917f3cbc3 Blackbox logging for remaining time on anomaly defusal (#86044)
## About The Pull Request

Back in 2023 in PR #74666 Mothblocks said:
`We really should collect data on how many people collect anomalies and
how much time they had left.`
Now here in 2024 it occurs to me that I don't think we actually log that
information anywhere. So I added it.

Please note: I don't remember how blackbox logging works so while I
think this works it might not be the correct way to format the data.
Please tell me if it isn't.

## Why It's Good For The Game

`We really should collect data on how many people collect anomalies and
how much time they had left.`

## Changelog

Not player facing

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2024-08-25 15:05:30 +01:00
Ghom
73081bcff0 Add messages (paper, photos, cash) in bottles. (#85703)
## About The Pull Request
This PR adds a new persistent feature: message inside bottles. These are
basically glass bottles with inside a piece of paper, a photo or space
cash (no holocredits, and most bills rarely go over 1000 credits anyway)
from a previous round, which can be fished at the beach, or from the
relative fishing portals.

Each piece of written paper or photo that isn't map-loaded has a roughly
a 0.2% chance to be added to the message bottles database at the end of
the round. However, you can also manually toss a glass bottle with
inside a paper/photo/bill into the ocean (or a fishing portal generator
with the ocean/beach module loaded) for guaranteed results.

The bottles are removed from the database once fished up by the by,
unless tossed back into the ocean.

I've also offset a couple bottle sprites that weren't properly aligned
(for the message overlays).

TODO:
- [x] add a couple (20 prob or less) message bottle spawners to the
beach away mission or something.
- [x] add a few sounds for adding and removing the message from the
bottle. (pickup/drop sounds already handle that)
- [x] test it properly.

## Why It's Good For The Game
I think it'd be neat to have a way to send photos, snarky "seek grass"
messages, as well as the occasional financial aid to future players, and
furthermore, another thing to tie fishing to.

## Changelog

🆑
add: You can place papers, photos and cash bills (no holochips) inside
bottles and then toss them into the ocean (or fishing portal gen with
relative settings) with right-click, for others to fish them up on
future rounds.
/🆑
2024-08-24 01:31:38 -04:00
carlarctg
2f69fe6190 Adds three new deathmatch maps - Ragnarok, Lattice Battles, Species Showdown (#85319)
## About The Pull Request

Adds three new deathmatch maps.

### Important nonDM Balance Changes

Cult daggers fit on belts.

Heretic blades fit on belts.

Veil shifters fit on belts.

I really don't know why these didn't, it makes inventory management
rather annoying at times. It also screwed my loadouts over.

Cursed Blades fit on cult robes. They're cult equipment after all.

Bronze suits fit toy watches!!

### Ragnarok


![ragnarok](https://github.com/user-attachments/assets/b20b0974-b1e3-4d1f-9c46-03c56da3eebf)

A vicious battle in the jungle, between the three major religious sects:
Prove your deity's might! And try not to upset any primates. Or fall
into the chasm.

Going clockwise:

**Cultist Invoker**: Wielding a mirror shield, shielded robes, a sword,
and some bolas, this cultist has a 'well-balanced' set of equipment to
annihilate their opponents.

**Cultist Artificer**: This set harnesses the blood magicks - with
spells of stunning, blood rites, and ranged hallucinations, with a
wicked Cursed Blade and Veil Shifter as implement, and Berserker Robes
to finish the look.

**Holy Crusader**: Nullifying most, but certainly not all, of the
fearsome arsenal of the opponents with the null rod at their belt, the
Crusader packs a dangerous claymore and armor to protect them from the
demons.

**Rat'var Apostate**: Hey, what's that guy doing there in the dark? They
don't have any magic because their god is Fucking Dead, but they're
still going to show up for a token effort. Good luck!

**Heretic Scribe**: This mad soul wields an antique rifle and an
assortment of other dangerous relics, with a set of magic geared towards
staying far apart, picking enemies off from range and evading their
attacks for the final blow.

**Heretic Warrior**: With the deadliest of Mansus Magic at their
disposal, this warrior is only limited by their ability to juggle all
their spells at once - don't get overwhelmed sorting your spells while
an Invoker runs at you with a sword and shield and makes you cry
yourself to death.

### Lattice Battles


![spleef](https://github.com/user-attachments/assets/03391656-4544-4230-8a40-ab6349a1458c)

A fresh change of pace: In this pacifist map, the only way to kill your
opponents is to snip the lattices and catwalks from under them. Watch
your step.

### Species Warfare


![species_warfare](https://github.com/user-attachments/assets/35b4acc5-10db-403b-ac0f-78fac8d41e8a)

Prove the might of your static by duking it out with every other kind of
crewmember out there. Features a messy dorms, a ticking-timebomb atmos,
a rather sterile robotics, a slippery closet, a fluffy medbay, and an
energetic bridge.
Mirror Shields now shatter on throw (which stuns and hurts)

## Code changes

Added two new traits, TRAIT_ACT_AS_CULTIST and TRAIT_ACT_AS_HERETIC.
Added these as an OR to respective IS_X checks. Added new GET_X checks
for them, which do not check the trait.

Tidied up the file those are in.

Added belt_contents() to outfits, but it dosen't work....

Added a heretic rust sister-type to rust walls and floors.

Fixed a typo in cult ascension.

## Why It's Good For The Game

These maps all aim to do something interesting and unique with DM rather
than the usual deathfest and hugging of random crates.

Ragnarok allows players to practice unusual and rare magical mechanics,
similar to Ragin' Mages.

Lattice Battles adds SPLEEF to the game, which I think is awesome.

Species Warfare is, I think, fun and funny. Each 'department' has
incredibly chaotic and thematically-appropiate content for the species
its meant to symbolize, and I look forward to the chaos that every round
in it is inevitably going to have.

> Mirror Shields now shatter on throw.

I'm surprised they didn't! Since they aren't used anywhere I can do what
I want with them.

## Code changes

> Added two new traits, TRAIT_ACT_AS_CULTIST and TRAIT_ACT_AS_HERETIC.
Added these as an OR to respective IS_X checks. Added new GET_X checks
for them, which do not check the trait.

I think this is a clever solution to the problem of 'what if I want
someone who acts as the antag, but isn't?' Some procs do need the datum
to modify it, so there's GET_X, but those aren't common and don't seem
likely to be an issue.

> Added belt_contents() to outfits, but it dosen't work....

Help would be very much appreciated, I don't know what I'm doing wrong
here. It's only used for the heretic scribe's unfathomable curio.
Some post-PR cleanup coming up.

## Changelog
🆑
add: Added three new DM maps - Ragnarok, Lattice Battles, Species
Showdown.
/🆑
2024-08-19 13:47:27 +00:00
Ghom
e5761e0bfc Porting and adapting food sprites from other repos (plus a couple original resprites) (#85759) 2024-08-18 16:07:35 -04:00
ArcaneMusic
b857200de9 Adds drawing chalk outlines on dead mobs, white crayons are now called sticks of chalk (#85918)
## About The Pull Request

![image](https://github.com/user-attachments/assets/1c698b33-3cd9-477c-b7a0-4a1ebb009122)
*The Miami Mutilator is at large once again. Thank god we have such
hardboiled detectives as Manny Pardo on the case.*

This pull request allows for players to use white crayons, which have
now been renamed to sticks of chalk, to generate outlines of dead or
"dead" bodies found throughout the station in an attempt to let
detectives actually set up crime scenes as opposed to, more typically,
just causing them.

Players will attempt to draw a chalk outline if the target is a mob and
the mob is dead (or fake-dead), using a single charge of the
crayon/chalk. Also, adds a quick macro so that we can get the proper
left/right orientation of the dead mob for reference.

## Why It's Good For The Game

Detective should have more thematic, simple ways to organize crime
scenes in-round, and what better way to do that then through existing
items and mechanics that we already have. Also, I was 100% shocked to
learn that these have always been white crayons as opposed to sticks of
chalk, which certainly seems odd. In essence, this change doesn't really
let you do anything "new", but just makes it easier and simpler to do so
in a regular round without nearly as much fiddling.

This mechanic exists exclusively within the afterattack of sticks of
chalk as opposed to all crayons for thematic reasons, but I'm not 100%
sold on that and it would be simple to move over to all crayons if
people feel strongly about that.

## Changelog
🆑
add: White crayons (Renamed to Sticks of Chalk) may now be used on dead
bodies to draw a body outline onto the ground easily.
/🆑

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2024-08-18 15:29:56 +02:00
MrMelbert
6f0dd84a3d Splits wall layer into three (#85901)
## About The Pull Request

Turns 
`ON_WALL_LAYER`
into
`FLAT_ON_WALL_LAYER`
`ON_WALL_LAYER`
`HIGH_ON_WALL_LAYER`

Where `FLAT_ON_WALL_LAYER` is meant for lower-priority wall mounts like
signs and posters
`ON_WALL_LAYER` is default
and `HIGH_ON_WALL_LAYER` is for stuff that "hang over" the wall

Also makes the incident display actually wall mounted

## Why It's Good For The Game

I noticed this while doing mapping and I thought it was a really cool
effect


![image](https://github.com/user-attachments/assets/93f33d54-2cda-41d1-abe6-d2035e0284c7)

Unfortunately this effect was a coinflip because all wall mounts were on
the same layer. Sometimes it'd look like this


![image](https://github.com/user-attachments/assets/59c3c6a7-561f-4ef6-813b-3cd06b295372)

So this allows us to do this kinda stuff consistently. 
Also has the added effect of letting us "de-prioritize" stuff like
posters, so we can hang stuff *over* posters and signs, which could be
useful.

## Changelog

🆑 Melbert
qol: Some wall mounts will now consistently layer over others (light
switches and cameras, notably, should always layer above other mounts
like signs and status displays)
/🆑
2024-08-17 14:28:28 -06:00
jimmyl
3fc1503fbd portable gravity machine (#85694)
## About The Pull Request



https://github.com/user-attachments/assets/98aa2177-ee0f-48d0-bbd4-83d01e688b54


it makes gravity in a radius
you may order it from cargo
may take power from wire instead
## Why It's Good For The Game

good for like space bases and stuff

## Changelog

🆑
add: portable gravity unit, bought at cargo
/🆑
2024-08-17 21:12:38 +02:00
Ghom
85e01a497f You can sell stuff on the blackmarket now. (#85464)
## About The Pull Request
The idea came up during the last blackmarket-related PR (#85066), when
the original creator @TheChosenEvilOne came and said the LTSRBT was
originally supposed to allow players to sell stuff on the blackmarket. I
replied saying the idea has some potential, and then other github users
followed, also saying it's a good idea.

So, here we are, adding another feature to the LTSRBT, to let you
provide other players with potentially knock-offs and fraudulent (or
genuinely honest) items on the blackmarket.

How you do it is fairly simple: left click the machine to open it, place
the item inside, then right-click to open the UI. From there you can
adjust the name, description and price of the market item. Finally,
click on the "Place on Market" button twice, pay a 30 credits fee, and
it's done. You have an item on the market, and once it's sold, 85% or
the earnings (the price) will be deposited on your account.

By the by, the icon of the item you're trying to sell will also show up
on the market. You should get a picture of what you're getting before
falling for an obvious scam.


![screenie](https://github.com/user-attachments/assets/fae70c25-ab46-4ceb-af9e-f4818d8a1c68)

By the by, it's a cardboard cutout.

## Why It's Good For The Game
This fits the design of the LTSRBT and blackmarket in general. 

## Changelog

🆑
add: You can sell items on the blackmarket with the LTSRBT now.
fix: Added some checks to prevent the swapper device and bluespace
anomalies from theorically being able to send things and people to
nullspace.
/🆑

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2024-08-16 12:47:47 -04:00
Ghom
d9168e7254 Adds a treasure chest to the ocean/beach fishing spot. (#85276)
## About The Pull Request
This PR adds a treasure chest that can be fished from the ocean if
you're lucky enough (or have enough explosives or lobstrosities to do it
for you). The treasure chest is basically a mystery box (like the ones
from the deathmatch) with a couple catches; the treasure chest can be
opened up to 18 times in total before breaking down, however, it can
only be opened up to 3 times per spaceman, encouraging the player to
share it with others.

Here the possible loot by the by:
- A toolbox containing a master fishing rod, all the hooks and reels,
fish feed, an experi-scanner, an aquarium kit and a can of super baits
- A box containing a lazarus injector, a cup and a bottle of strange
reagent which you can use to revive fish now
- A circuit board for a pre-emagged fishing portal generator
- A master fishing rod
- A can of super fishing baits
- A fish case containing Tiziran fish
- A fish case containing Syndicate fish
- An old, yet fairly strong cutlass
- An old laser gun which fires only 5 shots before running out
- A crank laser musket
- A smoothbore disabler
- A surplus bolt action rifle
- A ration pack
- A can of squid ink
- A bottle of aged rum that forces you to switch to the piratespeak
language
- A money bag with some doubloons inside
- A piratespeak manual
- Pirate armored coat
- Pirate armored hat
- A pre-loaded cannon
- Four trash cannon balls
- Four cannon balls

## Why It's Good For The Game
Mystery boxes are fun, from the little fanfare they play to the
potential loot they can give, and I had an old treasure chest I had
sprited for fun years ago around so I've come up with an entertaining
idea. If you think the loot list is a bit too hot, I can cool it down a
bit.
Also yeah, I wanted to make fish revivable with strange reagent, since
you can already do it with lazarus injectors even though using a lazarus
injector for this would be a severe waste of mining points.

## Changelog

🆑
add: Added a treasure chest you can rarely fish from the ocean/beach,
with loot being a mix of fishing and piratey stuff.
add: You can revive fish with strange reagent now.
/🆑
2024-08-16 15:53:52 +02:00
YesterdaysPromise
fec946e9c0 /Icon/ Folder cleansing crusade part, I think 4; post-wallening clean-up. (#85823)
Hello everybuddy, your number three rated coder-failure here to clean up
some mess. This PR accomplishes some of the more major structural clean
up changes I wanted to do with /obj/ folder, but decided to wait on
until wallening gets merged, and so, time has come. Several things to
still be done, although I know these cleaning PR's are quite a load, so
will wait for this one to get done with first.

## Why It's Good For The Game
Saner spriters, better sprites, less annoyance. Also deleted a whole
load of redundancy this time around, a lot of sprites which existed
simultaniously in two places now got exit their quantum superposition.
2024-08-15 20:22:02 -07:00
Jacquerel
ccbf9cf28c Updated anomaly dimensional themes to use new walls (#85851)
## About The Pull Request

Fixes #85546
We added a bunch of new walls which were not being referenced by the
dimensional anomaly.
It was just creating material turfs, which also seem to just not work. I
updated them to use the cooler-looking sprites.

## Why It's Good For The Game


![image](https://github.com/user-attachments/assets/b9ffacfd-bec2-4c01-af16-12f03f2fe801)
Now once again works as god intended

Observant eyes may notice that the disco theme is spawning hierophant
walls now, but these are a subtype which isn't invincible don't worry.

## Changelog

🆑
fix: Dimensional anomalies should once again create cool walls, not
boring grey ones
/🆑
2024-08-16 01:06:18 +02:00
Jacquerel
f12719266b Move cobwebs onto the ceiling (#85840)
## About The Pull Request

Fixes #85830
Shifts cobwebs way up over your head.
Before:

![image](https://github.com/user-attachments/assets/8aa94196-aa63-4f4e-a43d-f809c6bddc95)

After:

![image](https://github.com/user-attachments/assets/6029e560-dc6f-49aa-ac2b-c08aeb45da27)

## Why It's Good For The Game

spiders dont live on the floor

## Changelog

🆑
fix: corrects offset of cobweb fluff object
/🆑
2024-08-15 19:20:05 +02:00
LemonInTheDark
4b4e9dff1d Wallening [IDB IGNORE] [MDB IGNORE] (#85491)
## What's going on here

Kept you waitin huh!

This pr resprites most all walls, windows and other "wall adjacent"
things to a 3/4th perspective, technical term is "tall" walls (we are
very smart).

If you're trying to understand the technical details here, much of the
"rendering tech" is built off the idea of split-vis. Basically, split a
sprite up and render it on adjacent turfs, to prevent seeing "through"
walls/doors, and to support seeing "edges" without actually seeing the
atom itself.

Most of the rest of it is pipelining done to accommodate how icons are
cut.

## Path To Merge

Almost* all sprites and code is done at this point. 
There are some things missing both on and off the bounty list, but that
will be the case forever unless we force upstream (you guys) to stop
adding new shit that doesn't fit the style.
I plan on accepting and integrating prs to the current working repo
<https://github.com/wall-nerds/wallening> up until a merge, to make
contribution simpler and allow things like bounties to close out more
easily

This pr is quite bulky, even stripping away map changes it's maybe 7000
LOC (We have a few maps that were modified with UpdatePaths, I am also
tentatively pring our test map, for future use.)
This may inhibit proper review, although that is part of why I am
willing to make it despite my perfectionism. Apologies in advance.

Due to the perspective shift, a lot of mapping work is going to need to
be done at some point. This comes in varying levels of priority. Many
wallmounts are offset by hand, some are stuck in the wall/basically
cannot be placed on the east/west/north edges of walls (posters), some
just don't look great good in their current position.

Tests are currently a minor bit yorked, I thought it was more important
to get this up then to clean them fully.

## What does it look like?


![dreamseeker_hBsU6wCu91](https://github.com/user-attachments/assets/5392fa3b-60f6-40ea-876f-e686f25f996a)

![dreamseeker_CTiK0Je5iR](https://github.com/user-attachments/assets/1aee23bd-a5ec-4679-b094-d044401b7222)

![dreamseeker_HYkS1Q9GRq](https://github.com/user-attachments/assets/bad8844b-3179-4856-8684-f912e14e844a)

![dreamseeker_Pa18tgyKYp](https://github.com/user-attachments/assets/c2e1d222-9e5c-4500-8829-dd065428644a)

![dreamseeker_BfOBwS2mjH](https://github.com/user-attachments/assets/7dc51153-111d-4b17-93c3-8389daa6b60b)

![dreamseeker_iJazOumiMQ](https://github.com/user-attachments/assets/5837e203-3865-4f60-854e-62b4875c6b99)

## Credits

<details>
<summary>Historical Mumbojumbo</summary>

I am gonna do my best to document how this project came to be. I am
operating off third party info and half remembered details, so if I'm
wrong please yell at me.

This project started sometime in late 2020, as a product of Rohesie
trying to integrate and make easier work from Mojave Sun (A recently
defunct fallout server) with /tg/.

Mojave Sun (Apparently this was LITERALLY JUST infrared baron, that man
is insane) was working with tall walls, IE walls that are 48px tall
instead of the normal 32. This was I THINK done based off a technical
prototype from aao7 proving A it was possible and B it didn't look like
dogwater.

This alongside oranges begging the art team for 3/4th walls (he meant
TGMC style) lead to Rohesie bringing on contributors from general /tg/,
including actionninja who would eventually take over as technical lead
and Kryson, who would define /tg/'s version of the artstyle. Much of the
formative aspects of this project are their work.

The project was coming along pretty well for a few months, but ran into
serious technical issues with `SIDE_MAP`, a byond map_format that allows
for simpler 3/4th rendering.
Due to BULLSHIT I will not detail here, the map format caused issues
both at random with flickering and heavily with multiz.

Concurrent with this, action stepped down after hacking out the
rendering tech and starting work on an icon cutter that would allow for
simpler icon generation, leaving ninjanomnom to manage the project.

Some time passed, and the project stalled out due to the technical
issues. Eventually I built a test case for the issues we had with
`SIDE_MAP` and convinced lummox jr (byond's developer) to explain how
the fuckin thing actually worked. This understanding made the project
theoretically possible, but did not resolve the problems with multi-z.
Resolving those required a full rework of how rendering like, worked. I
(alongside tattle) took over project development from ninjanomnom at
this time, and started work on Plane Cube (#69115), which when finished
would finally make the project technically feasible.

The time between then and now has been slow, progressive work. Many many
artists and technical folks have dumped their time into this (as you can
see from the credits). I will get into this more below but I would like
to explicitly thank (in no particular order) tattle, draco, arcanemusic,
actionninja, imaginos, viro and kylerace for keeping the project alive
in this time period. I would have curled up into a ball and died if I
had to do this all myself, your help has been indispensable.

</details>

<details>
<summary>Detailed Credits</summary>

Deep apologies if I have forgotten someone (I am sure I have, if someone
is you please contact me). I've done my best to collate from the git
log/my memory.

Thanks to (In no particular order):
Raccoff: Being funny to bully, creating threshold decals for airlocks
aa07: (I think) inspiring the project
ActionNinja: Laying the technical rock we build off, supporting me
despite byond trying to kill him, building the icon cutter that makes
this possible
ArcaneMusic: Artistic and technical work spanning from the project's
start to literally today, being a constant of motivation and positivity.
I can't list all the stuff he's done
Armhulen: Key rendering work (he's the reason thindows render right), an
upbeat personality and a kick in the ass. Love you arm
Azlan: Damn cool sprites, consistently
Ben10Omintrix: You know ben showed up just to make basic mobs work, he's
just fuckin like that man
BigBimmer: A large amount of bounty work, alongside just like, throwing
shit around. An absolute joy to work with
Capsandi: Plaques, blastdoors, artistic work early on
CapybaraExtravagante: Rendering work on wall frames
Draco: SO MUCH STUFF. Much of the spritework done over the past two
years is his, constantly engaged and will take on anything. I would have
given up if not for you
Floyd: Early rendering work, so early I don't even know the details.
Enjoy freedom brother
Imaginos16: A guiding hand through the middle years, handled much of the
sprite review and contribution for a good bit there
Iamgoofball: A dedication to detail and aesthetic goals, spends a lot of
effort dissecting feedback with a focus on making things as good as they
can be at the jump
Infrared: Part of the impetus for the project, made all the xenomorph
stuff in the MS style
Jacquerel: A bunch of little upkeep/technical things, has done so much
sprite gruntwork (WHY ARE THERE SO MANY PAINTING TYPES)
Justice12354: Solved a bunch of error sprites (and worked out how to
actually make prs to the project) Thanks bro!
Kryson: Built the artstyle of the project, carrying on for years even
when it was technically dying, only stopping to casually beat cancer. So
much of our style and art is Kryson
KylerAce: Handled annoying technical stuff for me, built window frame
logic and fully got rid of grilles.
LemonInTheDark: Rendering dirtywork, project management and just so much
fucking time in dreammaker editing sprites
Meyhazah: Table buttons, brass windows and alll the old style doors
Mothblocks: Has provided constant support, gave me a deadline and
motivation, erased worries about "it not being done", gave just SO much
money to fill in the critical holes in sprites. Thanks moth
MTandi: Contributed art despite his own blackjack and hookers club
opening right down the road, I'm sorry I rolled over some of your
sprites man I wish we had finished earlier
Ninjanomnomnom: Consulted on gags issues, kept things alive through some
truly shit times
oranges: This is his fault
Rohesie: Organized the effort, did much of the initial like, proof of
concept stuff. I hope you're doin well whatever you're up to.
san7890: Consulting on mapper UX/design problems, being my pet mapper
Senefi: Offsetting items with a focus on detail/the more unused
canidates
SimplyLogan: Detailed map work and mapper feedback, personally very kind
even if we end up talking past each other sometimes. Thank you!
SpaceSmithers: Just like, random mapping support out of nowhere, and
bein a straight up cool dude
Tattle: A bunch of misc project management stuff, organizing the
discord, managing the test server, dealing with all the mapping bullshit
for me, being my backup in case of bus. I know you think you didn't do
much but your presence and work have been a great help
Thunder12345: Came out of nowhere and just so much of the random
bounties, I'm kind of upset about how much we paid him
Time-Green: I hooked him in by fucking with stuff he made and now he's
just doin shit, thanks for helping out man!
Twaticus: Provided artistic feedback and authority for my poor feeble
coder brain, believed in the project for YEARS, was a constant source of
❤️ and affirmation
unit0016: I have no god damn idea who she is, popped out of nowhere on
the github one day and dealt with a bunch of annoying
rendering/refactoring. Godspeed random furry thank you for all your
effort and issue reports
Viro: A bunch of detailed spriting moving towards 3/4ths, both on and
off the wallening fork. If anyone believed this project would be done,
it was viro
Wallem: Artistic review and consultation, was my go-to guy for a long
time when the other two spritetainers were inactive
Waltermeldon: Cracked out a bunch of rendering work, he's the reason
windows look like not dogwater. Alongside floyd and action spent a TON
of time speaking to lummox/unearthing how byond rendering worked trying
to make this thing happen
ZephyrTFA: Added directional airlock helpers, dealt with a big fuckin
bugaboo that was living in my brain like it was nothing. Love you
brother

And finally:
The Mojave Sun development team. They provided a testbed for the idea,
committed hundreds and hundreds of hours to the artstyle, and were a
large reason we caught issues early enough to meaningfully deal with
them. Your work is a testament to what longterm effort and deep detailed
care produce. I hope you're doing well whatever you're up to. Go out
with a bang!
</details>

## Changelog
🆑 Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan,
Ben10Omintrix, BigBimmer, Capsandi, CapybaraExtravagante, Draco, Floyd,
Iamgoofball, Imaginos16, Infrared, Jacquerel, Justice12354, Kryson,
KylerAce, LemonInTheDark, Meyhazah, Mothblocks, MTandi, Ninjanomnom,
oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner,
SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016,
Viro, Waltermeldon, ZephyrTFA with thanks to the Mojave Sun team!
add: Resprites or offsets almost all "tall" objects in the game to match
a 3/4ths perspective
add: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: = <stewartareid@outlook.com>
Co-authored-by: Capsandi <dansullycc@gmail.com>
Co-authored-by: ArcaneMusic <hero12290@aol.com>
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Runi-c <5150427+Runi-c@users.noreply.github.com>
Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@gmail.com>
Co-authored-by: Senefi <20830349+Peliex@users.noreply.github.com>
Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com>
Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: Rob Bailey <github@criticalaction.net>
Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
2024-08-14 09:07:45 +00:00
tattle
f2f856037e Makes cyborg damage more... showy (#85298)
## About The Pull Request
Makes cyborgs blink yellow when they're dead. The icons were lying
around in the code for some reason, so why not repurpose them?

Borg death blink:
https://www.youtube.com/watch?v=DtYSHSSZVs8

Makes cyborgs emit particles when they reach a certain damage threshold.
Smoke for brute, sparks for burn. I think I want to tweak them a little
more, but it's hard to troubleshoot when the particle editor keeps
throwing a BSOD.

Borg particles:
https://www.youtube.com/watch?v=Xh64rZkrp-U

## Why It's Good For The Game
It's really really annoying when you're sitting dead in robotics and
everyone assumes you're AFK because the roboticist isn't wearing a
diagnostic hud (agony).

The particles I just think are cool flavour, plus it's a way for
silicons to show actual signs of wear and tear.

## Changelog
🆑 Tattle
qol: dead cyborgs now blink yellow lights
qol: damaged cyborgs have smoke particles when they've taken brute
damage, and sparks for burn
/🆑

---------

Co-authored-by: tattle <article.disaster@gmail.com>
2024-08-01 20:34:57 +02:00