Commit Graph

1206 Commits

Author SHA1 Message Date
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
SmArtKar
49243c9c9c Stuffing people into contractor pods now unbuckles them first (#85461)
## About The Pull Request
Closes #85451

## Changelog
🆑
fix: Putting people you're fireman carrying into contractor pods no
longer sends both of you to zelda's shadow realm
/🆑
2024-08-01 14:48:12 +00:00
Ghom
36ca9a8559 Raising lobstrosities from chrabs is now a component. Adds in tadpoles which become frogs. (#85346)
## About The Pull Request
I've componentized part of the code that manages raising lobstrosities
from chrabs so that it can be added to other fish too. As proof of
concept, I've added tadpoles. Tadpoles are not fished like the rest,
instead you merely right-click a puddle and after 5 seconds you'll get
one. Tadpoles are fairly fragile, cannot be butchered, don't reproduce,
require lukewarm freshwater, need to be feed frequently, and become
frogs after about 3 minutes.

## Why It's Good For The Game
A small needed refactor for the chrab code, plus another small fish to
make it easier to complete the first fish scanning experiment.

## Changelog

🆑
add: Added tadpoles, which can be scooped from puddles with right-click.
Functionally they're like most fish, which require an aquarium to
survive, and also need to be fed fairly frequently, however they quickly
become frogs after about 3 minutes of care.
add: Every station now has a couple puddles. One at the public garden
and the other in prison.
qol: Changed the name of an aquarium UI button from "Reproduction
Prevention" to "Reproduction and Growth", as it controls both fish
breeding and growth.
/🆑
2024-07-31 15:18:23 +01:00
Ghom
27d048f6cb (Black)market Telepad (LTSRBT) Update: Restocking Edition (#85066)
## About The Pull Request
This is a suggestion that was to me several months ago to add the
ability to pay credits to restock the black market. I liked the idea
because it'd add anothe small reason to buy the board, though I had
forgotten about it shortly after and just happened to remember it now.

So, yeah, you can swat the LTSRBT with a holochip to restock the
market(s). The price is shared amongst all pads and starts at 675
credits, but it doubles up everytime this is done, for obvious balance
purposes.

I've also updated included this new feature in the unit test, given the
LTSRBT new sprites and renamed the Blackmarket subsystem to Market,
because of how it can support different types of market datums, not just
the blackmarket

## Why It's Good For The Game
This adds one more reason to buy and build the LTSRBT and make markets
less dependant on the bad side of RNG, if you have the credits. It's a
bit of a money sink.

## Changelog

🆑
add: You can now restock the black market by hitting the LTSRBT with
enough credits. The price doubles each time this is done.
imageadd: Updated the LTSRBT sprites.
balance: Reintroduced the LTSRBT to cargo for 2000 credits vs the
original 4000 (the ansible and crystals to build it are included btw),
and slightly lowered the average blackmarket price for the same item to
account for shipping costs.
/🆑
2024-07-27 17:28:13 -04:00
Helg2
854efc7ace Emergency climbing hooks now spawn in emergency boxes if the station has multi-z level. (#85273)
## About The Pull Request
Emergency climbing hooks now spawn in emergency boxes not only on
Icebox, but also on Northstar and Tram.
## Why It's Good For The Game
Firstly, I think it's funny to see some assistant just casually climbing
up from the -1 floor on the sideways of tram, when he fell out of it.

Secondly, trying to get somewhere when the Northstar or Tram got blown
up multiple times is an absolute nightmare if you have no good
flashlight, or something similar.
## Changelog
🆑
add: Emergency climbing hooks now spawn in emergency boxes on all of the
multi-z level stations.
/🆑
2024-07-27 21:36:31 +02:00
Ghom
e6e5cb9320 Fish ordered from bought fish cases now sells for 1/20th of the normal price (#85287)
## About The Pull Request
Fish money printer goes brrrr...

But yeah, it turns out just buying and sending back fish crates is
making cargo lotsa money, which is basically an exploit. Good thing
we've the TRAIT_FISH_FROM_CASE trait which we can use to differentiate
fishes from cargo from other more natural sources.

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

## Changelog

🆑
fix: Centcom technicians have been trained to recognize cargo-bought
fish. You will no longer be able to trick the economy system by buying
fish and sending it right back. Also nerfed fish selling price very
slightly.
/🆑
2024-07-26 19:32:47 +00:00
Ghom
49b45ee51a Removed a janky fish bounty and introduced exporting fish thru cargo. (#85146)
## About The Pull Request
The fish bounty for specific kind of fish has been removed for being a
bit janky and relying on RNG way too much. The other two remain, and
have had their payout buffed a little to compensate.

To make it make it better, a fish export has been added. Each and every
fish can be sold to cargo, with a selling price determined by their size
and weight, meaning bigger fish sell for more. A fish of default size
and weight generally sells for around 130, rarely goes above 600 for
most fish, yet a few can sell for 1k, and it can **theorically** go all
the way up to ~11k if you were to reach max size and weight for the
biggest fish in the game.

This PR also reduces the weight of the jumpercable a bit for balance
reasons. It's a big, self-reproducing fish that requires no care
whatsoever so it's quite the cash cow, only offset by its rarity (EMAG
or blackmarket RNG). Conversely, I made the bone fish evolution a bit
easier (still a useless-ish braggard niche tbh).

## Why It's Good For The Game
The aforementioned fish bounty was janky, complex, relied on RNG too
much and the info on it didn't really fit in the bounty console. It's
better gone tbh. My fault for adding it in the first place.

As for the fish export, I want something simple, that doesn't require
the fish to be alive rather than dead, with a low payout per fish on
average, to complete the addition of "bomb fishing" from the other PR,
ergo dropping maxcaps in the ocean for shit and giggles, but that can
also have the potential to generate a decent income by cultivating big
fish.

## Changelog

🆑
del: Removed a janky fish bounty
add: introduced exporting fish through cargo.
balance: reduced the average weight of the jumpercable. Conversely,
eased up the requirements for the bone fish evolution.
/🆑
2024-07-26 07:41:31 +02:00
necromanceranne
9f780d3e35 Updates Strong-Arm implants to be cooldown based, deal entirely lethal damage (but more of it) (#85012)
## About The Pull Request

Strong-Arm implants utilize a five second cooldown between activation
(this is per implant, not for both). As a result, the implant does a
larger chunk of damage in one blow. It does not do stamina damage
anymore.

If you strike a mob with either the MOB_BEAST or MOB_SPECIAL biotypes,
you inflict additional damage (40 extra).

You can fit both a toolset implant and a muscle implant into the same
arm.

## Why It's Good For The Game

Strong-arms were really weird implants in that they were not locked
behind any research progression, but instead could be purchased from
cargo. However, they were still not exactly amazing to have, so they
only really get purchased by bored medical doctors, since the implant
was a medical departmental order option (for some reason). I tried
giving them a little extra oomph a while ago, but I never felt like they
were in a particularly good space even after that update.

Borrowing some ideas from an older PR, I've introduced a cooldown to
allow for them to work alongside other unarmed features, but still not
allow them to stack with other effects. It makes them exceptionally good
as opening attacks, but not to the point of being intrusive. They were
also a method of infinite stamina damage, so that has been resolved as
well.

The mob bonus damage makes them a little fun option for miners, really,
that's why I added it. I thought it would be a cute feature, and maybe
incentivize a few to get augmented. I don't think they will, since
augments aren't super useful for miners, but still.

The pairing with toolsets is because they're not quite as useful
generally as the toolsets, and since they are a weaker arm implant in
the progression, I don't feel it is too extreme to have both, because
overall most people will gravitate towards toolsets if they had to
choose.

## Changelog
🆑
balance: Strong-arm implants go on cooldown when activated, but deal
more overall lethal damage on a single blow.
balance: The strong-arm implant does additional damage to fauna and some
other dangerous mobs.
qol: You can pair toolset arm implants with the strong-arm implants.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-07-24 12:47:03 +00:00
SmArtKar
2c0f5d181a Datumizes pod types (#85033)
## About The Pull Request

Changes supply pods to use datums instead of a massive nested list to
store data and index defines as styles. Complete feature parity.

## Why It's Good For The Game
this is nightmare fuel to work with

![image](https://github.com/user-attachments/assets/851ea009-508b-4958-996e-d46a758b2f62)

and this is a sin against nature and god

![image](https://github.com/user-attachments/assets/6b0cd374-1305-4fe6-9ab6-4912c9cb4461)

![image](https://github.com/user-attachments/assets/88c83f60-af9d-4ea9-af5f-c0810a6d9c66)
ends up as

![image](https://github.com/user-attachments/assets/2cb9e264-895d-49b9-b228-e04ac1353ba1)
which is ???

Using a nested list to store pod data is a very bad idea, it has
horrible formatting, is unreadable without having index defines open in
a second tab and is not extendable. And as you can see above, if someone
added another pod type before 14th everything would break because other
pod type lists **__only have 8 elements__** instead of 10 like the
seethrough one does.

## Changelog
🆑
refactor: Pod code now uses datums instead of being a huge nested list
/🆑
2024-07-21 13:52:21 -07:00
norsvenska
5f80128fa9 Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request

it's - conjunction of "it" and "is"
its - possessive form of "it"

grammar is hard, and there were a lot of places where "it's" was used
where it shouldn't have been. i went and painstakingly searched the
entire repository for these instances, spending a few hours on it. i
completely ignored the changelog archive, and i may have missed some
outliers. most player-facing ones should be corrected, though
## Why It's Good For The Game
proper grammar is good

## Changelog
🆑
spellcheck: Numerous instances of "it's" have been properly replaced
with "its"
/🆑
2024-07-21 13:41:37 -06:00
DrTuxedo
63e2f45ed3 TSA: Scanner Gates and N-Spector update (#85077)
## About The Pull Request
Scanner gates now have a much-refined sprite with dirs.


https://github.com/user-attachments/assets/22659e12-5565-4feb-a8e7-0f1a56c4a99e

_The message in the video is outdated, now working with the formula
`src.say("[detected_thing][reverse ? " not ": " "]detected!!")`_

Scanner gates now can have false positive/negative which depends on the
tier of scanning modules in it:
- Tier 1 - 4%
- Tier 2 - 3%
- Tier 3 - 2%
- Tier 4 - 1%

Scanner gates now loudly blare into chat when they detect stuff.

Now there is a preset scanner gate to detect **GUNS** in main Brig
entrances on maps, they are not upgraded with N-Spector.

***

N-Spector now can not only scan items for contraband but people too. It
takes 4 seconds, makes a loud noise, and warns the person getting
scanned in a chat with bold text.


https://github.com/user-attachments/assets/6aaca7bb-8273-485b-a727-c84f132b92f5

***

Made scanner code using proper cooldowns.

The scanner gate description now tells on which mode it's turned on.

Now smuggler satchel description tells you that it can prevent items
from being detected by contraband scanners.
## Why It's Good For The Game
Scanner gates sprites were ancient and as such been updated.

Scanner gates having false-positive will make sure for Security to
always be on their toes, and also cause interaction between crew who got
false-positive. Also, it finally makes use of scanner gates being
upgradable, as before this there was no reason for using higher-tier
scanning modules for its construction.

Scanner gates blaring into the chat now make it clearer for spectators
to acknowledge why the scanner got triggered.

Putting not upgraded scanners in the Brig entrance doors gives them some
use outside of being sometimes built by bored Security Officers.

***

When N-Spector was upgraded, I immediately thought it should also be
possible to scan people, like how TSA scans people with metal detectors.
It takes around the same time as stripping a backpack, and backpack
searches still would be more effective as they can show stuff that the
scanner cannot detect.

The warning and loud sound make it possible for the person getting
scanned to walk away if they start getting scanned unprompted.
This would not likely cause any trouble, as going up and starting
scanning someone for no reason would be the same as going up to someone
and starting to strip their backpack.

With N-Spector Security can perform more fluff interesting searches. 
## Changelog
🆑 DrDiasyl aka DrTuxedo
add: Scanner gates now blare into the chat the reason why it got
triggered
add: Scanner gates now can have false positives/negatives, and the
chance of them being reduced when they are upgraded
add: Brig entrances now have scanner gates preset to detect GUNS
add: You can now scan people with N-Spector for contraband
image: Scanner gates now have a better sprite with dirs
qol: Scanner gates description now tells to what mode they are set
fix: You no longer can remove N-Spector from scanner gates without
unlocking them first
/🆑

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2024-07-20 23:35:45 +00:00
Ghom
4611958e74 Buffing some awful black market items to be less awful. (#84895)
## About The Pull Request
With this PR, I'm making some awful or bad blackmarket items less bad
(some are still bad imo). I don't aim to tweak every item that I find
mediocre at best, because it ultimately boils down to opinion and maybe
what I don't like, others do, but also because the feature was designed
to have some "scammy" items in there (the broken chameleon hat is a
prime example).

Moving on, some of the more noticeable changes:
- the old spacesuit in a box should no longer cost thousands of credits
- the thermite bottle now contains enough thermite to melt one r-wall
- replaced the shotgun dart item with a more expensive box of XL shotgun
darts (25 units of reagent capacity vs 15)
- replaced the science googles with a more expensive medical-security
combo HUD (the sprites exist already)
- the donk pocket box item can now spawn subtypes of the donk pocket
box, this includes the gondola box, though it's pretty rare.
- the suspicious pill bottle item can now spawn a pill bottle of
maintenance pills

The rest should be price changes.

## Why It's Good For The Game
Many of the blackmarkets choices are downright a bummer, and I'm not
talking about things like the broken chameleon hat, but stuff such as
shotgun darts, science googles, thermite; I mean, SOME of stuff that's
OBVIOUSLY easy and more convenient to get from a (proto/auto) lathe or
the chemist and just make the blackmarket look kinda bad.

## Changelog

🆑
balance: reduced the prices of some blackmarket items across the board.
balance: the thermite bottle (from the contraband spawner and the
blackmarket), now spawns with 50u of thermite vs 30, enough to melt one
reinforced wall.
add: Replaced the science googles from the blackmarket with a security +
health scanner HUD.
add: Replaced the single shotgun dart from the blackmarket with a box of
XL shotgun darts.
add: The donk pocket box from the blackmarket now comes in different
flavors.
/🆑
2024-07-15 01:49:13 -04:00
ArcaneMusic
43e62163fe Adds a Contraband trait, and implements contraband as a mechanic to security bounties. (#84003)
## About The Pull Request

This PR does a few things but centrally it's all centered around
mechanically enforcing what items are and are-not considered contraband
in-game.

### What does something being contraband MEAN?

Contraband items are visually indistinguishable from non-contraband. If
an item is Contraband, it can only be detected in two ways:
* After being scanned by an N-Spect scanner, which is a standard item
security item, assuming it still has a charge to do so.
* Via a scanner gate, which can now be upgraded with an N-spect scanner
to allow for it to scan a person and all their contents for contraband.

### What items ARE contraband?

Contraband items are intended to be determined both logically and
through other relevant examine text. However, here's the short list of
items that are considered contraband, reserving the right to expand the
list.

<details>
  <summary>In hindsight it's kind of a long list.</summary>
  
* Items that have "contraband" or "illegal" in the name or description.
* Items that allow for the player to obtain other illegal items, that
are NOT particularly stealthy.
* This means that a syndicate uplink is NOT considered contraband, as
they're typically hidden on your person as something else.
* Stealth items under the syndicate uplink, the revolutionary flash, and
some mapped in dangerous items that can come from both syndicate and
company-aligned resources are not considered dangerous.
* Items that are purchased from cargo after emagging or switching to
extended cargo range.
* Items purchased FROM syndicate uplinks, the wizard knowledge scroll,
or other antagonist shops.
* Cursed artifacts/tools magically produced by cultists or heretics.
* Items purchased from the blackmarket.
* Items purchased from the contraband section of vending machines.
* Some drugs and overtly dangerous or criminal byproducts.
  
</details>

### How does this interact with the round?
Well, primarily, this is an aid for in-game enforcement of space law.
Based on the length of the above list, we have a LONG, LONG list of
items in-game that are technically considered, in one way or another,
illegal to have on the station, and yet without either metaknowledge of
what those items are, or how they're used, security officers lack some
of the certainty of how to deal with these kinds of encounters.

Additionally to the knowledge aspect of this trait, security officers
may now receive a new civilian bounty to collect items that are
considered contraband, also giving them an incentive to look for and
confiscate contraband that's been found across the station while
upholding space law.

### Other minor changes that I rolled into this

Security has a bounty for 3 different rechargers, and considering access
limitations, most security players aren't going to make this exchange,
so I've lowered the required amount down to 1.

Adjusted the N-spect scanner's description to match it's new
functionality.

The Civilian bounty TGUI now has an additional 1 point of padding to
make it feel less cramped.



https://github.com/tgstation/tgstation/assets/41715314/c3cd4752-b03a-4e0b-959e-1252fcc2369d

**Updated as of 6/19/2024:**
Additionally, some storage items will block the presence of contraband
when going through a contraband aligned scanning gate. These items
include the infiltrator modsuit core, storage implant, void cloak, the
aptly named smuggler's satchel, and the chameleon kit's backpack.

**Updated as of 6/23/2024:**
N-spect scanner now has contextual screentips.

**Updated as of 6/29/2024:**
Scanner gates are now available in all lathes that have a feature
specific to how scanner gates function. So, includes cargo (contraband),
security (weapons), and medbay (diseases).

## Why It's Good For The Game

Originally, this started out as a way to be able to provide more
in-character and in-flavor bounties for security officers, because they
suck! Most security bounties as they exist right now do the worst
possible things from all respective bounties:
* They detract away from a job's actual responsibilities as opposed to
working with them.
* They're best completed while sitting next to your lathe and running
items back to the bounty pad.
* They exist with such esoteric rarity of high quantity of items that
it's miserable to fulfil.

As a result, I started work on this as a framework to allow security
officers to be further incentivized to collect contraband across the
station, either as a result of the gamemode or just through routine
patrols across the station.

Implementing it as a learning tool for security as well just happened to
work out as an additional bonus, and having a function in-game allowing
newer or less experienced players to know if an item is considered
dangerous or conspicuous also works as a particularly good way to
provide information where a player may not know what they're up against.

If nothing else, this might be interesting to try, and if not, I'll just
snip out the QOL changes from it and we'll see how it goes.

Going forward, I am a bit hesitant about the contraband scanner gate
mode, and as such, will try working with the admin team to determine if
that's a good feature to keep around for game health, while hoping to
give it a chance in the fullness of time.

## Changelog

🆑
add: Items spawned via traitor uplinks or are known illegal contraband
on the station can now be scanned and identified as such by the N-spect
scanners in security. These only applies to overt traitor or antagonist
items, and "stealth" items will not be seen as such.
add: Scanner gates can now be upgraded by using an N-spect scanner on it
to unlock "contraband scanning" mode.
add: Security officers can now be offered a bounty to turn in pieces of
contraband.
add: Some stealthy storage items like storage implants, smuggler's
satchels, void cloaks, the infiltrator modsuit, and the chameleon
backpack will block the presence of contraband on your person when
placed inside.
qol: N-spect scanner contextual screentips.
balance: Recharger security bounties ask for a quantity of 1, down from
3.
qol: security, cargo, and medbay have access to scanner gate boards.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-07-11 03:08:25 +02:00
necromanceranne
e4adc1a939 Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death (#84435)
## About The Pull Request

Adds a new crate to the Service section of cargo. The Fletching and
Bow-Making Starter Kit. Comes with some materials and a fletching
instruction manual.

The manual teaches you how to make shortbows (18 force from normal
arrows utilizing projectile multipliers), arrows, holy arrows (but you
need a divine bow to make them), quivers (but they only hold 10 arrows),
plastic arrows and violins. For reasons.


![image](https://github.com/tgstation/tgstation/assets/40847847/576732f2-03b4-47b7-9bad-d85ff06480f0)


### Fixes

Bows now no longer utilize hardcoded sprites for their loaded sprite.
Now they use overlays.

Bows properly become undrawn once fired. No longer can your bow
magically launch arrows by sheer force of will.

## Why It's Good For The Game

Initially I just wanted to provide a way for bow wielding chaplains to
produce additional arrows for their bow. Running out of those always
felt pretty lame. But then I got to thinking; actually, I kind of want
to LARP sometimes as an archer. I think that'd be kind of goofy and fun.
So I bundled that together into a solution for both.

The shortbow is really, really not meant to be a meaningful weapon. It's
just kind of silly, and meant to let people pretend to be Robin Hood and
occasionally hurt someone in a workplace accident. I'm particularly
thinking of clowns being the perfect users for this with their clumsy
trait. I will make this weaker if I have too.

(I am not, at this moment, redoing flaming arrows okay? I saw the code
comment. I know. Not right now. @tralezab, if you have any flaming arrow
sprites lying around, please let me know.)

## Changelog
🆑
add: Fletching starter kit! Make your own bow, shoot your friends in an
unfortunate workplace accident. Replace all those holy arrows you lost.
fix: Bows now properly undraw once they have fired an arrow.
code: Bows now utilize overlays in order to display loaded arrows.
Unique overlays per arrow.
/🆑
2024-07-07 17:57:32 +02:00
Da Cool Boss
6aa646c2d7 Cleans up relic code & adds new relic theme (#84511)
## About The Pull Request
Cleaned up crusty old code and made it more readable, removed single
letter variables, camel case, etc.

Improved naming for strange objects. Unidentified objects are "Strange
[thing]", activating the item replaces the word "strange" with a new
prefix. Improved the list of strings.

Added cosmetic themes for artefacts. All current strange objects are now
"prototype" artefacts, reflecting their man-made origin in space.
Artefacts with different themes pick from different sprite and name
pools, reflecting who made them.

New "necrotech" theme for relics. These are strange objects from
lavaland. Instead of getting half-multitool-half-gun-blows-up-when-used
monstrosities crafted by insane maint dwellers, you will now get strange
relics that look like this.
![strange relics from boulders](https://i.imgur.com/Qr5uz6q.png)
And they're called something like "ruined instrument" or "dark relic".
## Why It's Good For The Game
Code needed cleaned up. It was in a bad state. Years of neglect.

Themes add more flavour to these items. I really didn't like how the
boulder machine looked when it produced lots of relics, so now it
produces more appropriate ones.

Lets admins and mappers use variable editing to decide what relics do
and what cooldown they should have before they are activated.
Previously, this would be overwritten when the relic was activated.
## Changelog
🆑
code: Cleaned up relic code.
image: Added necrotech themed relics.
/🆑
2024-07-05 20:27:58 +02:00
Andrew
d4765c0657 Cytology without plumbing (#84235)
## About The Pull Request

Makes Growing Vat work as a normal machine akin hydrotray. 
Doesn't need plunger to clear reagents, doesn't need plumbing to input
reagents.
Still has the plumbing port, but can be used without it.
Also made the examine text a bit more compact.

Removed science plumbing RCD from the game.
Removed plumbing tools from cytology equipment, and added a protein
powder jug instead.


![image](https://github.com/tgstation/tgstation/assets/3625094/40d2d33e-f78d-4dc9-96e6-4b0fd231035f)

Automatically fixes #84573

## Why It's Good For The Game

Plumbing was an unnecessary complication for Cytology.

Growing vat is a relatively simple machine that shouldn't require
plumbing knowledge.
Now it works more like hydrotray, and you can pour reagents directly,
and clear them out with a right click.

## Changelog

🆑
refactor: Vat grower is a normal machine now that doesn't need plumbing
qol: Cytology petri dish smartfridge starts with 3 random samples
add: Added protein powder condiment bottle, available in the cytology
supplies locker and the cargo pack
del: Removed science variant of plumbing RCD
fix: Fixed a bug when machines without stock parts didn't spawn frames
on deconstruction
fix: Fixed vat grower not growing
/🆑
2024-07-04 12:04:31 -07:00
OrbisAnima
07fabb5fac Corrected the bio emergency crate (#84547)
## About The Pull Request

Corrected the bioemergency crate to bring general instead of generic bio
suits, thus allowing for a source of general biosuits to exist, and
allowing for the Security Biosuits recipe to be crafted.

## Why It's Good For The Game

Allows for security to craft their own security bio suits, keeps the
equipment consistent by making it so we get a general type of the object
instead of the generic which shouldn't exist.

Fixes downstream: https://github.com/NovaSector/NovaSector/issues/530

## Changelog
🆑
fix: Bio Emergency crates now bring Bio Suits and Hoods compatible with
the Security Hoods and Suits Schematics.
/🆑
2024-07-02 19:23:40 +02:00
Vekter
9c8a1725d4 Fixes Bitrunner lacking job-based bounties (#84367)
## About The Pull Request

Fixes #84283 by just adding actual bounties for Bitrunner, giving them
something more interesting to do than random bounties for jobs they
don't have access to. These bounties revolve around optionally turning
in the special rewards from each of the bitrunning domains (a bike horn,
the abductor plush, beach ball, etc) for a credit reward. I considered
the idea of making each one drop a specific bounty chit that you turned
in for a reward, but at that point it's just "paying you per domain" and
I'm not sure how that would balance with economy.

This is more just meant to be a framework for others to add things that
might be a little more interesting.

This also adds a special drop from the Pizzeria domain because I thought
it was funny.
2024-06-28 15:42:46 -05:00
Watermelon914
0db2a23faf Adds a new power storage type: The Megacell. Drastically reduces power cell consumption/storage. [MDB Ignore] (#84079)
## About The Pull Request
As the title says. A standard power cell now only stores 10 KJ and
drains power similar to how it did before the refactor to all power
appliances.

The new standard megacell stock part stores 1 MJ (what cells store right
now). APCs and SMESs have had their power cells replaced with these
megacell stock parts instead. Megacells can only be used in APCs and
SMESs. It shouldn't be possible to use megacells in any typical
appliance.

This shouldn't change anything about how much 'use' you can get out of a
power cell in regular practice. Most should operate the same and you
should still get the same amount of shots out of a laser gun, and we can
look at expanding what can be switched over to megacells, e.g. if we
want mechs to require significantly more power than a typical appliance.

Thanks to Meyhazah for the megacell icon sprites.

## Why It's Good For The Game
Power cell consumption is way too high ever since the power appliance
refactor that converted most things to be in joules. It's a bit
ridiculous for most of our machinery to drain the station's power supply
this early on.

The reason it's like this is because regular appliances (laser guns,
borgs, lights) all have a cell type that is identical to the APC/SMES
cell type. And it means that if we want to provide an easy way to charge
these appliances without making it easy to charge APCs/SMESs through a
power bug exploit, we need to introduce a new cell type to differentiate
between what supplies power and regular appliances that use power. This
is primarily what the megacell stock part does.

This moves us back to what it was originally like before the power
refactor, where recharging power cells wouldn't drain an exorbitant
amount of energy. However, it maintains the goal of the original
refactor which was to prevent people from cheesing power generation to
produce an infinite amount of power, as the power that APCs and SMESs
operate at is drastically different from the power that a regular
appliance uses.

## Changelog
🆑 Watermelon, Mayhazah
balance: Drastically reduces the power consumption and max charge of
power cells
balance: Added a new stock part called the battery, used primarily in
the construction of APCs and SMESs.
add: Suiciding with a cell/battery will shock you and potentially dust
you/shock the people around you if the charge is great enough.
/🆑

---------

Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2024-06-25 00:32:19 +00:00
SmArtKar
4ac4375faf Adds pen clicking, changes most pen typechecks into writing implement checks (#84186)
## About The Pull Request

Fixes #84170 
Adds pen clicking and changes some of edagger and pendriver code to use
it instead.
Also replaces most pen typechecks to writing implement checks where it
makes sense, so now you can rename things with everything you can write
with (crayons)


![3d6NwcATNp](https://github.com/tgstation/tgstation/assets/44720187/f6b3ba2f-f3de-4e40-827f-2bad153a92f4)

Twisting pen caps (for traitor uplinks) has been moved to ctrl + click
instead.
2024-06-24 16:08:37 -05:00
Donglesplonge
6ed64b7c1d reduces the price for most livestock crates (#84132)
## About The Pull Request

this ones always been itching at the back of my head, mainly because i'm
greedy, and you should be too, animals in cargo are hardcore expensive,
2000 credits for a cat? 800 credits per single chicken? 1200 per pig?
obscene! this PR lowers the costs across the board with some exceptions,
which i'll note here:

crab rockets remain the same price as they were, you get 50 crabs PER
rocket, thats ALOT of crabs per cubic inch, what would you do with so
many? i don't know, but its why they're remaining expensive, at 1600 per
rocket.


butterfly crates also retain their original price, as you also get 50
butterflies per crate purchased, at a cost of 1000 credits for a crate
of 50, i think this is fair.


monkey cubes, truth be told this one i'm kinda scratching my head on,
they're remaining the same price right now due to how accessible they
are from other avenues (xenobiology, botany both public and private),
but i'm willing to change their price to accommodate if they seem to be
needing a price reduction, but overall i think that theres alot of ways
to accrue them so them remaining particularly expensive isn't
necessarily a bad thing.


one part of this PR that bothered me was that i couldn't figure out how
to display gnomes on either the cargo console or the express console,
but they also have been price slashed, down from 4000 credits per 3
gnomes to 3000 credits per 3 gnomes, overall a 25% decrease in cost,
think of all the mystical forest friends you can have for that price!

EDIT: i forgot about duct spiders, whoopsy me, they aren't in the
livestock crates tab and are considered imports instead, so it slipped
my mind completely, they are down from 1200 credits to 800, still
moderately expensive, but still a discount nonetheless.


heres two pictures displaying the before-the-price decrease values, and
the after-the-price- decrease values:

BEFORE 
![Screenshot 2024-06-19
002027](https://github.com/tgstation/tgstation/assets/120208006/d0d5925d-d489-41e0-8345-e22fbd5cdd09)

  AFTER
![Screenshot 2024-06-19
005017](https://github.com/tgstation/tgstation/assets/120208006/824c28e1-2103-4cf1-ab77-077a845318e1)

i'll gladly edit or change any prices that seem way too low, and provide
what i believe are reasonable answers for all of them, and i'd gladly
love feedback from anyone on whether or not they think somethings too
low, or still too high.


## Why It's Good For The Game

buying animals from cargo is generally a very difficult think to pull
off for mass gimmicks due to the difficulty of accruing wealth crew-side
in the jobs that would more than likely attempt to participate in such
gimmicks (assistants, for one) so i think cutting their prices will not
only help people actually be able to realize their gimmicks in round,
but also drum up more cash for cargo, as you can now reasonably buy
multiple animals without immediately going bankrupt and having to farm
exorbitant amounts of money that you probably won't be able to make
within the scope of an average round without some truly exotic methods,
i think this will improve the cashflow for the livestocks tab, while
also healthily promoting peoples funny little critter gimmicks.

## Changelog

🆑
balance: most livestock crates, with some exception, have been made
cheaper to facilitate healthier mental states in the crew, go build a
farm!
/🆑
2024-06-22 13:16:56 -04:00
Rhials
7b1a0daad2 DRAGnet snares now use a dedicated beacon instead of the station teleporter (#84118)
## About The Pull Request

This sets up an alternative to the DRAGnet snares using the teleporter
to determine the destination of their snare teleport -- The DRAGnet
beacon.

![drag
net](https://github.com/tgstation/tgstation/assets/28870487/0084d4d9-378f-4896-bc88-0685d6407999)

Rather than using a convoluted system that routes via the teleporter,
DRAGnets can now by synced with a DRAGnet beacon. When snare rounds are
fired and successfully teleport a target, they will instead be sent to
the synced beacon. Syncing can be done by either pressing the gun to the
beacon or vice-versa.

These beacons can be wrenched into place, then swiped with a security ID
to block them from being unwrenched. An emag will unlock and unwrench
the beacon, and fry its access control.

To facilitate this change, roundstart DRAGnet armory spawns are now done
through spawners (like the other weapons), which includes a single
beacon to be used by the two guns. You can print more with basic sec
tech, and one is included in the DRAGnet crate from cargo.

The teleport is also slightly more accurate, to make it more consistent.
As usual, if not synced to a beacon, DRAGnets will just teleport your
target willy-nilly.
## Why It's Good For The Game

The current system is both clunky and prone to mishaps, dissuading
players from engaging with it. The "active" teleporter concept has
always been a bit of a mystery to players, and when a system for
properly using the DRAGnet teleport is set up, it's incredibly easy to
break even on accident. Every time you teleport a prisoner you have to
pray that no bumbling space explorer decided to reroute the teleporter
to the abandoned satellite.

This system is much more clear and reliable. It's also more versatile,
allowing for multiple teleport networks to be set up simultaneously.
Security is starved for creativity at times. They deserve to be able to
do some wacky dynamic stuff with their tools.
## Changelog
🆑 Rhials
balance: DRAGnets now come with a beacon they can be synced to, which
will set the destination for the snare round's teleport ability.
/🆑
2024-06-20 10:19:30 -07:00
Jacquerel
920cd7459d Neutralised anomalies respect the core limit (#83964)
## About The Pull Request

This PR changes it so that if you refine an anomaly by neutralising it,
it respects the same limit on number of anomaly cores as refining one
you bought from Cargo.
If it would produce an illegal core, it will create a mostly useless
inert core which you can sell at cargo for 80% of the price of buying a
raw core.

## Why It's Good For The Game

https://hackmd.io/@tgstation/r1tzxpwPL
This was a requirement in the original design doc which just never made
it into the game.
We want to be able to control how many cores of each type can possibly
exist in a round, as this is what allows them to have the "these items
can be really busted" allowance.

## Changelog

🆑
fix: Neutralising an anomaly cannot produce more anomaly cores than are
supposed to exist in a single round
/🆑
2024-06-15 11:37:04 +12:00
StaringGasMask
bc0e2587cd Phazons now use ectoplasm cores (#83939)
## About The Pull Request

Phazons now use ectoplasm anomaly cores instead of bluespace ones. Text
implying otherwise has been changed as well.
Allows ectoplasm cores to be bought via the science supply console.

## Why It's Good For The Game

Bluespace cores are some of the most overused ones in anomalock
technology, and often the most desirable ones. Ectoplasm cores, however,
have a single gimmicky and mediocre use.
This PR aims to make them more appealing to the crew while reducing
machines that rely on bluespace anomalies, so their available number can
be more freely tweaked.

## Changelog


🆑
balance: Phazon mechs use ectoplasm cores now
balance: You can now acquire ectoplasm cores from the science supply
interface
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-06-14 19:56:29 +00:00
SyncIt21
47be0bffc2 Ctrl click refactor (#83784)
## About The Pull Request
Same idea as #82656 but for ctrl click & ctrl shift click cause why not

- Does your signal & `can_perform_action()` checks using
`interaction_flags_click` flags before delegating the event down to
`ctrl_click()` proc.
- The one new change now is that `ctrl_click()` proc is now blocking,
meaning returning `CLICK_ACTION_SUCCESS` or `CLICK_ACTION_BLOCKING` will
stop the object from getting grabbed/pulled. So remember to return these
values if you want to stop the grab action or return `NONE` if you want
to process the click but still want the object to get grabbed as well

## Changelog
🆑
refactor: Ctrl click & Ctrl shift click has been refactored. Please
report bugs on GitHub
/🆑
2024-06-13 13:29:45 -07:00
ArcaneMusic
6163752e3c Removes unused code from stock market and an unused market define. (#83872)
## About The Pull Request

This PR removes a completely unused file, which added
`/datum/supply_pack`s originally containing the materials for the
mineral stock market contents, plus a define, MARKET_QUANTITY_HELPERS.
Neither of these wound up being used in the final revision of the
galactic mineral market, and I stumbled upon these to my horror that
they're still in the code and completely unused as a result. Yikes!

## Why It's Good For The Game

Removes unused code that is both not being utilized by the mineral
market, but in fact was superseded by the current implementation during
development and managed to slip it's way through review.

## Changelog

No front facing changes, as the code was unused.
2024-06-13 13:02:19 -05:00
MrMelbert
ff6b41aa07 Afterattack is dead, long live Afterattack (#83818)
## About The Pull Request

- Afterattack is a very simple proc now: All it does is this, and all
it's used for is for having a convenient place to put effects an item
does after a successful attack (IE, the attack was not blocked)


![image](https://github.com/tgstation/tgstation/assets/51863163/1e70f7be-0990-4827-a60a-0c9dd0e0ee49)

- An overwhelming majority of afterattack implementations have been
moved to `interact_with_atom` or the new `ranged_interact_with_atom`

I have manually tested many of the refactored procs but there was 200+
so it's kinda hard

## Why It's Good For The Game

Afterattack is one of the worst parts of the attack chain, as it
simultaneously serves as a way of doing random interactions NOT AT ALL
related to attacks (despite the name) while ALSO serving as the defacto
way to do a ranged interaction with an item

This means careless coders (most of them) may throw stuff in afterattack
without realizing how wide reaching it is, which causes bugs. By making
two well defined, separate procs for handing adjacent vs ranged
interactions, it becomes WAY WAY WAY more easy to develop for.

If you want to do something when you click on something else and you're
adjacent, use `interact_with_atom`
If you want to do something when you click on something else and you're
not adjacent, use 'ranged_interact_with_atom`

This does result in some instances of boilerplate as shown here:


![image](https://github.com/tgstation/tgstation/assets/51863163/a7e469dd-115e-4e5b-88e0-0c664619c878)

But I think it's acceptable, feel free to oppose if you don't I'm sure
we can think of another solution

~~Additionally it makes it easier to implement swing combat. That's a
bonus I guess~~

## Changelog

🆑 Melbert
refactor: Over 200 item interactions have been refactored to use a
newer, easier-to-use system. Report any oddities with using items on
other objects you may see (such as surgery, reagent containers like cups
and spray bottles, or construction devices), especially using something
at range (such as guns or chisels)
refactor: Item-On-Modsuit interactions have changed slightly. While on
combat mode, you will attempt to "use" the item on the suit instead of
inserting it into the suit's storage. This means being on combat mode
while the suit's panel is open will block you from inserting items
entirely via click (but other methods such as hotkey, clicking on the
storage boxes, and mousedrop will still work).
refactor: The detective's scanner will now be inserted into storage
items if clicked normally, and will scan the storage item if on combat
mode
/🆑
2024-06-11 21:58:09 -07:00
necromanceranne
73dfd61634 [NO GBP] Fixes drake empowerment for berserker armor by adding drake remains, which are used to make drake armor and empower the suit (#83700)
<!-- 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

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

Adds an intermediary item called drake remains, which are used to
construct drake armor and empower berserker armor.

There is no functional balance change here, as the components to make a
drake armor are relatively the same.

## Why It's Good For The Game

I borked it. This is the most reasonable and flexible method to fix the
bug and what I should have done in the first place.

## Changelog

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

🆑
fix: Drake empowerment for berserker armor now uses valuable drake
remains, made from ashdrake hides and bones.
add: Drake armor is made use drake remains to construct. (This is a net
neutral to the previous recipe)
/🆑

<!-- 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-06-06 00:54:18 -04:00
John Willard
8442124bcd Gondolas are now basic mobs (#83451)
## About The Pull Request

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

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

## Why It's Good For The Game

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

## Changelog

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

---------

Co-authored-by: san7890 <the@san7890.com>
2024-05-31 16:48:31 -06:00
FearfulFurnishing
1507792ec1 Make Watcher Wreath Bounties Completable (#83523)
## About The Pull Request
Initial PR here: https://github.com/NovaSector/NovaSector/pull/2694

This is a proposed fix for an issue reported downstream on
https://github.com/NovaSector/NovaSector/issues/2198 and requested to be
put upstream where watcher wreath bounties were not accepting the items
they state they want. The root of the issue seemed to be the FALSE flags
attached to the wanted_types. include_subtypes can be used for what
might have been the intended effect of having only ice wreaths for the
ice bounty and normal wreaths for the normal bounty.

## Why It's Good For The Game
This bug would prevent someone from being able to do any bounties until
the 5 minute timer to refresh the bounty options passed. Less wait time
on undoable tasks means more time spent interacting with the round.

## Changelog
🆑
fix: fixed watcher wreath bounties being incompletable
/🆑
2024-05-28 14:45:06 -06:00
YesterdaysPromise
8eb3b51ad9 /icons/ folder cleansing crusade part 3 (#83420)
## About The Pull Request

In my effort to make the /icons/ folder cleaner and more intuitive
instead of having to rely on recalling names of stuff and looking them
up in code to find them for poor sods such as myself, plus in spurt of
complusion to organize stuff, here goes. I've tracked all changes in
commit descriptions. A lot still to be done, but I know these waves go
over dozens of files making things slow, so went lighter on it.
Destroyed useless impostor files taking up space and cleaned a stray
pixel on my way.

## Why It's Good For The Game

Cleaner /icons/ file means saner spriters, less time spent. Stray pixels
and impostor files (ones which are copies of actually used ones
elsewhere) are not good.

## Changelog

🆑
image: Cleaned a single stray pixel in a single frame of a bite
telegraphing accidentaly found while re-organizing the files.
/🆑
2024-05-25 21:08:08 -07:00
starrm4nn
77e739af35 Cargo goodies section typo fix (#83245)
## About The Pull Request

Fixes some typos in the Cargo goodies section and makes the item names a
bit more consistent

## Why It's Good For The Game

typos bad

## Changelog

🆑
spellcheck: Fixes some typos in the goodies section and makes it look a
bit more consistent.
/🆑
2024-05-16 18:20:11 +02:00
necromanceranne
6fd6ebd850 Pipegun updates and glowup (#83063)
## About The Pull Request

Updates pipeguns with a brand new set of sprites. Also comes with pipe
pistols; plinkier versions of the pipegun.

![ye
pipeguns](https://github.com/tgstation/tgstation/assets/40847847/dd8ea3db-aa5a-403e-9eca-c3aa2c38b694)


![image](https://github.com/tgstation/tgstation/assets/40847847/9015f1fe-8ed2-4724-844d-7d550d35b890)


![image](https://github.com/tgstation/tgstation/assets/40847847/0d99551a-ecc4-4f2b-a397-46c5f26437f7)

Alters pipeguns away from utilizing shotgun/rifle ammunition towards a
bespoke junk round ammo. These shells are crafted similarly to current
improvised shells. This also removes improvised shells as a shotgun ammo
type. (these new shells aren't shotgun shells to begin with, they're
more like rifle bullets)

Crafting junk rounds produces an entirely unknown projectile in the
shell. You won't know what you get until you fire the gun. Almost in
every instance, however, the shot is beneficial towards killing things.
And they all do about the same amount of damage, so there is hopefully
never a round you didn't want to fire in the gun. Fighting someone with
a pipegun is usually predictable for what amount of damage it will do,
but any additional effects it might have is going to be an unknown
factor. They also brutalize borgs, which is a quality that improvised
shells had previously.

Pipeguns operate as they did before, and do roughly 40 damage per shot
with the majority of their ammo types (less than what they do currently
with .310). They only have one shell in the gun at a time, so every time
they're fired, they must be reloaded.

Pipe pistols do roughly 15 damage per shot, but hold more ammo than the
bigger pipegun. However, they're more likely to veer off-course.

There are regal versions of each of these weapons, and each are more
potent respective of their general rarity. Having one is going to be a
lot more noteworthy.

### Minor changes

Some more clothing items can carry pipeguns in their suit storage.

The icemoon hermit spawns with a heroic laser musket rather than a regal
pipegun (partially because it is too difficult for the hermit to get
more ammo for their gun, and also because the regal pipegun is a more
powerful weapon than previously)

## Why It's Good For The Game

It has been a few years since I added the pipegun, and time was never
particularly kind to it. There are alternative weapons now with
interesting mechanics of their own. The ammunition it used has changed
considerably. And it simply didn't ever feel like a 'junk gun' in a way
that was fun. The original mechanics added to give it that feeling were
just not fun to experience and were removed. So the pipegun has been
left as 'a shitty version of X'. Even the regal pipegun was, at the end
of the day, a shittier version of either a shotgun or cargo rifle.

It didn't feel right not having some kind of unique quality to using
these weapons that help them express themselves as unpredictable trash
weapons built inside of maintenance. But I expressly didn't want to make
it 'unpredictable' in a way that felt unfair on the person getting shot
either. So just giving it more damage was right out. As a compromise, I
reduced the overall lethality of the weapons while introducing a gimmick
that will appeal to those wanting to play out the role of a homeless
lunatic with a shitty homemade gun stalking maintenance. A 'chaos gun'
so to speak. Maybe that will appeal to people.

## Changelog
🆑
balance: Reworks pipeguns to use an unpredictable 'junk round'. You
won't know what you're shooting until you fire it.
add: Introduces a pistol version of the pipegun; the pipe pistol. It is
inaccurate and does significantly less damage, but more portable and has
more ammunition in the gun.
image: Updates the visuals of the pipeguns.
balance: Also improves the Regal varieties of these weapons. By a lot.
balance: More articles of clothing can be used to carry pipeguns in suit
storage.
balance: The Icemoon Hermit comes with a Heroic Laser Musket instead of
a Regal Pipegun.
remove: Improvised shells (the shotgun shell) has been replaced with
improvised junk shells (which don't work with shotguns but do work with
pipeguns).
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-05-08 22:40:28 +01:00
Ghom
5631fb144e Unit test for black market items. Added missing bulwark module and jawed hook to the market. (#82972)
## About The Pull Request
Jacq has come up with the suggestion of adding a unit test to the
blackmarket. I agreed ~~and I think I deserve the NO GBP label because
both of these missing items are actually my fault~~.

## Why It's Good For The Game
Let's avoid issues like this in the future.

## Changelog

🆑
fix: Added the missing bulwark MOD module and the jawed fishing hook to
the black market.
/🆑
2024-05-08 22:22:29 +01:00
Nick
54bcab1b96 Fixes traditional equipment having no name for its crate (#83051)
## About The Pull Request

This pr fixes the missing name when you order traditional equipment then
just appearing the name

## Why It's Good For The Game

So people know what kind of crate it is at sight

## Changelog

🆑
fix: fixes traditional equipment crate name
/🆑
2024-05-05 19:50:18 +02:00
Interception&?
1fb8ac678f Adds a funny scene when getting Sisyphus achievement (#82897)
## About The Pull Request


https://github.com/tgstation/tgstation/assets/137328283/979231c3-70cd-49dd-8d4d-2a8554adfbb3

## Why It's Good For The Game

This PR makes getting the “Ordeal of Sisyphus” extremely pointless by
teleporting carried boulder and spessman back to the Lavaland. In my
opinion, this feature is funny and suits the spirit of this achievement.

## Changelog

🆑
add: Added a short scene when getting an Ordeal of Sisyphus achievement.
/🆑
2024-04-29 02:45:15 +02:00
Jeremiah
8e3f635b98 Alt click refactor (#82656)
## About The Pull Request
Rewrites how alt click works. 
Based heavily on #82625. What a cool concept, it flows nicely with
#82533.

Fixes #81242 
(tm bugs fixed)
Fixes #82668

<details><summary>More info for devs</summary>

Handy regex used for alt click s&r:
`AltClick\((.*).*\)(\n\t.*\.\.\(\))?`
`click_alt($1)` (yes I am aware this only copies the first arg. there
are no other args!)

### Obj reskins
No reason for obj reskin to check on every single alt click for every
object. It applies to only a few items.
- Moved to obj/item
- Made into signal
- Added screentips

### Ventcrawling
Every single atmospherics machine checked for ventcrawling capability on
alt click despite only 3 objects needing that functionality. This has
been moved down to those individual items.
</details>

## Why It's Good For The Game
For players: 
- Alt clicking should work more logically, not causing double actions
like eject disk and open item window
- Added context menus for reskinnable items
- Removed adjacency restriction on loot panel

For devs:
- Makes alt click interactions easier to work with, no more click chain
nonsense and redundant guard clauses.
- OOP hell reduced
- Pascal Case reduced
- Glorious snake case

## Changelog
🆑
add: The lootpanel now works at range.
add: Screentips for reskinnable items.
fix: Alt click interactions have been refactored, which may lead to
unintentional changes to gameplay. Report any issues, please.
/🆑
2024-04-16 17:48:03 -06:00
Zephyr
7f8752be14 Admin Verb Datums MkIII | Now with functional command bar (#82511) 2024-04-12 12:27:09 -07:00
Da Cool Boss
f529daf0f4 Fixes a typo in the cargo console. (#82578)
## About The Pull Request
Fixes a typo in one of the items descriptions.
## Why It's Good For The Game
Fixes player facing typo.
## Changelog
🆑
spellcheck: Fixes a typo in the cargo console.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2024-04-12 03:51:26 -07:00
YesterdaysPromise
e64331f678 Clowns can now make balloon... toys. And also mallets and hats. (#82288)
<!-- 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

Clowns will now start with a box of 24 random long balloons and a
skillchip in their noggin allowing them to create balloon animals by
combining two of them of different colour together. Owners of the
skillchip also gain access to crafting recepies of balloon mallets,
vests, helmets and tophats, all created from long balloons. A crate of
long balloons, with a box of balloons inside, can be bought at cargo, in
case the clown runs out. I might edit this once I wake up, its 3 in the
morning right now.
Oh also, resprited how balloons look in inventory.


![image](https://github.com/tgstation/tgstation/assets/122572637/2d7ce955-c787-48a5-bfda-4613d2eed837)

## Why It's Good For The Game

Balloon animals funny.
Silly features are my favourite kind of features, and this one's
open-ended too.
Someone on the coder chat recommended someone would do it that one time,
here it goes.


## Changelog

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

🆑
add: Added long balloon box to the clown's starting inventory, and a
skill-chip of long lost honk-motherian knowledge to their brain.
add: Added long balloons. Consequently, added balloon animals to make
from such balloons. Also, balloon top hat, vest, helmet, and a mallet.
Don't ask about the mallet.
add: A long balloons box harvested fresh from the farms on the clown
planet will be able to be shipped in a crate to the cargo department
near you!
add: As per requests; water balloons can now be printed at service
lathe, and entertainment modsuit can now blow long balloons!
image: Balloons will now have an unique sprite when in the inventory,
compared when to on the ground.
/🆑

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

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-04-10 23:58:15 +00:00
san7890
c403a6eccc Wraps lowertext() to ensure proper stringification. (#82442)
## About The Pull Request

Fixes #82440

This PR just creates a new macro, `LOWER_TEXT()` (yes the irony is not
lost on me) to wrap around all calls of `lowertext()` and ensure that
whatever we input into that proc will be stringified using the `"[]"`
(or `tostring()` for the nerds) operator. very simple.

I also added a linter to enforce this (and prevent all forms of
regression) because I think that machines should do the menial work and
we shouldn't expect maintainers to remember this, let me know if you
disagree. if there is a time when it should be opted out for some
reason, the linter does respect it if you wrap your input with the
`UNLINT()` function.
2024-04-10 12:19:43 -07:00
necromanceranne
b602a8138c Watcher wreaths; Normal and Icewing varieties (#82457)
## About The Pull Request

Adds Watcher Wreaths. An item that makes it look like you have a
slightly floating thorn crown that you can make from some of their
material parts (and the icewing crusher trophy for the icewing variant).

The wreath has emissives. They don't do anything mechanically, they're
just for show.


![wreath](https://github.com/tgstation/tgstation/assets/40847847/84b7cf89-2087-4c5c-85c1-d911c2e7ea13)


![image](https://github.com/tgstation/tgstation/assets/40847847/77bcda12-e29f-45f0-ad4a-8f25de12c0ef)


![image](https://github.com/tgstation/tgstation/assets/40847847/da3321bb-b24d-4e60-8648-455483e955d6)

## Why It's Good For The Game

I really like the whole thing with turning lavaland monsters into
trophies and cosmetics. Going down and coming back up looking like
someone who just crawled through a horror movie and took some souvenirs
is great. Stuff like the trophy accessories, bone and drake armor and
many of the various lavaland items have this quality, and it always
amuses me when a tech sees a dressed up miner and just goes 'holy shit,
where did you get that'?

Drip is the ultimate reward for playing miner. Nobody can tell me
otherwise. this is the endgame every miner craves. And I crave a goddamn
crown made from the broken remains of my enemies.

## Changelog
🆑
add: Watcher wreaths. Made from the mangled remains of a watcher, now a
handsome accessory for you to wear a few inches behind your head. Comes
in Normal and Icewing variants.
add: Some bounties for the two variants of watcher wreaths.
/🆑
2024-04-06 15:19:05 -06:00
Jeremiah
9723b4b317 Replaces even more deciseconds with SECONDS (#82438)
## About The Pull Request
Using these search regexes:

Ending in 0:
`addtimer\((.*),\s?(\d{1,3})0\b\)`
replacement:
`addtimer($1, $2 SECONDS)`

Two digit ending in odd:
`addtimer\((.*), (\d)([1-9])\)$`
replacement:
`addtimer($1, $2.$3 SECONDS)`

Single digit ending odd:
`addtimer\((.*), ([1-9])\)$`
replacement:
`addtimer($1, 0.$2 SECONDS)`

## Why It's Good For The Game
Code readability

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-04-06 15:18:49 -06:00
SyncIt21
c4adbf877e Clamps material market quantities & prices during cargo operations (#82338)
## About The Pull Request
- Fixes #82329

Cargo operations means buying & selling materials on the market. Now
both their prices & quantities are clamped during these operations

Also increased the width of materials market UI so large numbers don't
overflow to the next line.

## Changelog
🆑
fix: buying & selling huge quantities of materials on the market won't
cause their prices & quantities to go beyond bounds.
/🆑
2024-04-02 19:38:59 +02:00
MrMelbert
a73b77b3bb [MDB Ignore] Combines Cargobus consoles with Dept. Order Consoles, freeing all departments of 1 whole tile of space (#82210)
## About The Pull Request

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

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

- Minor refactors to department order in general. 


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


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

## Why It's Good For The Game

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

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

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

## Changelog

🆑 Melbert
qol: Cargobus chat console and Departmental Order console are now
combined into one.
qol: Mod PCs active on the "chat client" apps no longer look like AI
uploads (and now have their own sprite)
refactor: Departmental order consoles were refactored a bit, report any
oddities.
/🆑
2024-03-27 16:00:47 +00:00
Pickle-Coding
c1f11f26ce Converts arbitrary energy units to the joule. Fixes conservation of energy issues relating to charging cells. (#81579)
## About The Pull Request
Removes all arbitrary energy and power units in the codebase. Everything
is replaced with the joule and watt, with 1 = 1 joule, or 1 watt if you
are going to multiply by time. This is a visible change, where all
arbitrary energy units you see in the game will get proper prefixed
units of energy.

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

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

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

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

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

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

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

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

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

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

---------

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

Refactors a lot of the unused defines.

## Why It's Good For The Game

Refactors a lot of the unused defines.

## Changelog
Nothing player facing

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-22 21:29:35 -06:00
Ghom
5fb0088983 Fixes the LTSRBT
I borked it in the blackmarket refactor. It was constantly on cooldown
when idle. Also, some logic mistakes.
2024-03-22 22:03:54 +00:00
carshalash
5f7e7c21a4 Implements orderable fish food. (#82118)
## About The Pull Request

Most stations now have aquarium kits ready in service, I thought this
was super fucking neat but realized 'oh no food, fishy die quickly'. To
amend that I've added an orderable fish food crate to synergize with the
free aquarium kit.

## Why It's Good For The Game

Ordering a whole now aquarium kit for the fish food is silly.

## Changelog


🆑
qol: Fishfood is now more easily acquired through cargo
/🆑
2024-03-22 13:03:01 +01:00
Ghom
89a3734d99 Deathmatch Modifiers Tweaks and Additions (#82113)
## About The Pull Request
After playing more than a few matches, I came to notice a couple
lingering issues with deathmatch modifiers, and also I came up with more
ideas.

For starters, the echolocation modifier doesn't work, and even if it
worked, I believe it'd be ass, so I'm removing it. The perma-flipping
also doesn't work quite well and gets interrupted by stuff like
knockdowns and the such, plus it's just fluff, so I'm removing it too.
Second, I've forgot to set the style of the deadmatch missiles, so they
look like normal pods right now.

About what's being added rather than removed: There're now a "No
Slowdown" modifier, a "Random Teleports" one that randomly teleports
everyone (and whatever they're buckled too) every 12 to 24 seconds,
"Snail Crawl" which works much like snailpeople's, "Forcefield Trail"
which also works pretty much like the cosmic heretic trail, albeit
lasting way shorter, and finally a "Manual Blinking/Breathing", if you
truly hate players to a misanthropistic level.

So yeah, 2 removed modifiers, and 5 new ones.

## Why It's Good For The Game
Fixing a couple of issues, and lading the feature with a few more
options.

## Changelog

🆑
del: Removed the (non-working) "Perma-Flipping" and "Echolocation"
deathmatch modifiers.
add: Added "No Slowdown", "Random Teleports", "Snail Crawl", "Forcefield
Trail" and "Manual Blinking/Breathing" modifiers.
fix: Fixed deathmatch cruise missiles looking like standard pods.
/🆑
2024-03-21 20:25:13 +00:00