Commit Graph

1107 Commits

Author SHA1 Message Date
Ben10Omintrix
ce6f2724cd basic cats and mini kitchen helpers (#79800)
## About The Pull Request
this pr transforms cats into basic pets! cats now have some new
behavior. they can carry fish and hunted mice in their mouths to deliver
it to kittens, and kittens will eat them.


![catmouse](https://github.com/tgstation/tgstation/assets/138636438/8f146be4-c7b2-41d3-8301-734be49b5efc)

![catfish](https://github.com/tgstation/tgstation/assets/138636438/f8df54f2-9183-406d-afbd-f90f415f7f3d)

if a kitten sees you holding food, it will point at you and meow loudly
until u give it the food.
becareful when putting male cats near each other, there is a small
chance they get into a heated argument and meow loudly at each other
until one of them flees.
also added a new small cat house for cats. cats will use these homes if
u build one near them (using 5 wood planks)


![cathouse](https://github.com/tgstation/tgstation/assets/138636438/9515a78c-fdfe-461b-bad2-6b497117c694)

Chefs can craft the cake cat and breadcat. these are useful cats because
they can help the chef around in the kitchen. they will turn stoves and
grills off when food is ready, so they dont burn. and the cake cat will
help the chef decorate his donuts

## Why It's Good For The Game
refactors cats into basic mobs and gives them a deeper ai

## Changelog
🆑
refactor: cats are now basic pets. please report any bugs.
add: the cake cat and bread cat can now help the chef around in the
kitchen
/🆑
2023-11-28 21:51:37 -07:00
Rhials
3d7a638287 Barsign Wallmounts and Cargo Pack (#79837) 2023-11-27 14:34:56 -07:00
MrMelbert
566c7ba9c2 Removes some code soul (IF YOU ARE COPY PASTING THIS...), replaces it with a macro (#79935)
## About The Pull Request

Replaces all instances of `SSblackbox.record_feedback\("tally",
"admin_verb", 1, (.+)\)` with `BLACKBOX_LOG_ADMIN_VERB($1)`

This makes so the funny comment isn't necessary. 

It also reveals one location which someone did not heed the comment, the
`debug_controller` proc copy+pasted the line but did not change the
fourth argument. PEOPLE DON'T READ!
2023-11-26 20:17:04 -07:00
YesterdaysPromise
f4535255c0 Nukes radio.dmi, adds inhands for somewhat relevant items. (#79792)
## About The Pull Request

Third /icon/ cleansing splinter 1. Comments on commits say all it does
pretty much.


![image](https://github.com/tgstation/tgstation/assets/122572637/6540e588-bed8-4e98-81f5-2a6f449c53c3)


## Why It's Good For The Game

Inhand for walkietalkie was requested in the project, gets rid of some
usecases of old 'gangtool', headset splitoff requested by Fazzie.
Inhands reflecting the items they are supposed to represent is nice.

## Changelog

🆑
image: Following now have unique item sprites: syndicate war declaration
radio, curator and chief beacon's, chaplain beacon.
image: Following now have unique inhand sprites: radio, export scanner,
walkie-talkie, syndicate war declaration radio, curator and chief
beacon's, chaplain beacon.
/🆑
2023-11-20 14:22:07 +01:00
Hatterhat
6a77a2962a Makes the SC/FISHER a bit better - more range/accessibility/pacifist-usability (#79835)
## About The Pull Request
- SC/FISHER is now pacifist-usable.
- SC/FISHER black-market availability prob up to 75, from 50.
- SC/FISHER range bumped from 14 to 21.

## Why It's Good For The Game
The SC/FISHER does no damage (except against ethereals, where it does a
grand total of 3 per shot), which I think is negligible but can be
removed if it's that bad to allow pacifists a gimmick method of
murdering another guy, so I think pacifists should be allowed to use it.

The range buff and black-market availability are just because I felt
like it, since I don't think it's available enough, especially for a
doohickey whose sole purpose is "break lightbulbs".

## Changelog

🆑
balance: The SC/FISHER disruptor pistol is now more likely to show up in
black market uplinks.
balance: The SC/FISHER now has more range (21 tiles up from 14), and is
usable by pacifists.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2023-11-19 19:22:40 -05:00
Jeremiah
7a1b1fa9ad Splits placeontop proc (#79702)
## About The Pull Request
I find the proc hard to read honestly. There's no reason we can't split
this into two functions - the secondary functionality is used only once,
in reader.dmm.
## Why It's Good For The Game
Code improvement
Glorious snake case
## Changelog
N/A nothing player facing

---------

Co-authored-by: san7890 <34697715+san7890@users.noreply.github.com>
2023-11-19 04:58:31 +01:00
san7890
b251b9dbb0 Refactors Parrots into Basic Mobs (ft. Ben10Omintrix/Kobsamobsa) (#79762) 2023-11-18 19:24:32 -08:00
SyncIt21
b39953ebce Fixes material market prices going negative & runtime when buying materials (#79732)
## About The Pull Request
- Fixes #79114
- Fixes #79245

The hope is that it should fix these 2 issues because looking at the
math is seems solid. This PR ensures 2 things
- If the current market price of a material is 0 then neither the market
quantity nor its price is changed because the material is worthless at
that point so adding more is just meaningless
- Corrects the formulae to calculate the new price so we get the right
rate of change

For more details on how this bug occurs refer to
https://github.com/tgstation/tgstation/issues/79114#issuecomment-1790757814

Mentioning @Iajret in the changelog cause credits(no pun intended) goes
to them for discovering said bug

This also corrects a runtime that went unresolved in
- #79307

I could not get my code suggestion there in time so i'm just carrying it
over here

## Changelog
SyncIt21, Iajret
🆑
fix: selling large amount of mats in cargo should not give you infinite
credits
fix: runtime when adjusting material market after buying 
/🆑
2023-11-18 23:19:35 +01:00
Rhials
5204028ea6 Fixes grey ID crate typo (#79798)
## About The Pull Request

"Grey ID Card Multipack Cate" -> "Grey ID Card Multipack Crate"

That is not a Cate, that is a Crate!
## Why It's Good For The Game

Fixes a silly typo.
## Changelog
🆑 Rhials
spellcheck: The Grey ID Cargo Crate is now spelled properly.
/🆑
2023-11-18 19:14:48 +01:00
ArcaneMusic
c117897605 Fixes to the Galactic Material Market regarding market quantity. (#79307)
## About The Pull Request

This PR makes a fix to market quantity of materials on the GMM. In
short, when you buy sheets, they get removed from the market's pool of
available resources.
When buying resources, they now shift up and down based on a fraction of
their inherent base_market_quantity, and not their current quantity,
preventing situations where a material can fully deplete all its stock
forever. I've also tweaked the numbers to try and keep those changes
from swinging too far wide as a result of this change.

Respecting quantity of materials should additionally help to decrease
the quantity of bike rounds in-game as well as the rare but horrifying
billion credit round.

## Why It's Good For The Game

Respecting quantity of materials should additionally help to decrease
the quantity of bike rounds in-game as well as the rare but horrifying
billion credit round. Also, I namely just completely missed this during
the original PR and I've been out of state for a few weeks so I've been
meaning to get around to fixing this.

Fixes #79116. Fixes #79247.


## Changelog

🆑
fix: The Galactic Material Market now respects quantity of materials
purchased, removing them from the market when bought and preventing you
from ordering more than are available at a given time.
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-11-15 07:01:03 +00:00
Andrew
2630cc119e New crates (#79665)
image: Crates got new sprites
image: Added more crate styles
2023-11-13 18:16:05 -05:00
Jacquerel
a1e46c5d31 Basic Guardians/Holoparasites (#79473)
## About The Pull Request

Fixes #79485
Fixes #77552

Converts Guardians (aka Holoparasites) into Basic Mobs.
Changes a bunch of their behaviours into actions or components which we
can reuse.
Replaces some verbs it would give to you and hide in the status panel
with action buttons that you may be able to find more quickly.

They _**should**_ work basically like they did before but a bit
smoother. It is not unlikely that I made some changes by accident or
just by changing framework though.

My one creative touch was adding random name suggestions.
The Wizard federation have a convention of naming their arcane spirit
guardians by combining a colour and a major arcana of the tarot. The
Syndicate of course won't truck with any of that mystical claptrap and
for their codenames use the much more sensible construction of a colour
and a gamepiece.

This lets you be randomly assigned such creative names as "Sparkling
Hermit", "Bloody Queen", "Blue World", or "Purple Diamond".
You can of course still ignore this entirely and type "The Brapmaster"
into the box if so desired.

I made _one_ other intentional change, which is to swap to Mothblocks'
nice leash component instead of instantly teleporting guardians back to
you when they are pulled out of the edge of their range. They should now
be "dragged" along behind you until they can't path, at which point they
will teleport. This should make the experience a bit less disorienting,
you have the recall button if you _want_ to instantly catch up.

This is unfortunately a bumper-sized PR because it did not seem
plausible to not do all of it at once, but I can make a project branch
for atomisation if people think this is too much of a pain in the ass to
review.

Other changes:
- Some refactoring to how the charge action works so I could
individually override "what you can hit" and "what happens when you hit"
instead of those being the same proc
- Lightning Guardian damage chain is now a component
- Explosive Guardian explosive trap is now a component
- Added even more arguments to the Healing Touch component to allow it
to heal tox/oxy damage and require a specific click modifier
- Life Link component which implements the Guardian behaviour of using
another mob as your health bar
- Moved some stuff about deciding what guardians look and are described
like into a theming datum
- Added a generic proc which can return whether your mob is meant to
apply some kind of damage multiplier to a certain damage type. It's not
perfect because I couldn't figure out how ot cram limb modifiers in
there, which is where most of it is on carbons. Oh well.
- Riders of vehicles now inherit all movement traits of those vehicles,
so riding a charging holoparasite will let you cross chasms. Also works
if you piggyback someone with wings, probably.

## Changelog

🆑
refactor: Guardians/Powerminers/Holoparasites now use the basic mob
framework. Please report any unexpected changes or behaviour.
qol: The verbs used to communicate with, recall, or banish your Guardian
are now action buttons.
balance: If (as a Guardian) your host moves slightly out of range you
will now be dragged back into range if possible, rather than being
instantly teleported to them.
balance: Protectors now have a shorter leash range rather than a longer
one, in order to more easily take advantage of their ability to drag
their charge out of danger.
balance: Ranged Guardians can now hold down the mouse button to fire
automatically.
balance: People riding vehicles or other mobs now inherit all of their
movement traits, so riding a flying mob (or vehicle, if we have any of
those) will allow you to cross chasms and lava safely.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-11-10 21:04:52 -07:00
SyncIt21
f9c041f8f1 Removes unused vars from cargo & economy. (#79531)
## About The Pull Request
1. Removes `SSshutle.order_history`. This list is responsible for
keeping track of all orders delivered through cargo. This list however
is neither used for logging nor has an UI interface for players to
interact with, it just increases in length & memory as orders are made
and goes unused. By removing this list we can now safely delete supply
orders after cargo has shipped them thus saving memory

2. Mining orders & Material orders now delete their supply packs when
their supply orders are deleted to properly cleanup memory. These 2 are
special orders that generate their own unique supply packs that is not
part of the custom `SSshuttle.supply_packs` list so it won't cause any
issues

3. Removes `SSeconomy.export_total` & `SSeconomy.import_total`. Nobody
used these vars so no reason to keep them around.

## Changelog
🆑
code: removed order history, import & export value from cargo & economy
subsystems. Allow supply packs to be properly deleted. In general memory
savings
/🆑
2023-11-09 13:46:49 +01:00
SyncIt21
20ee583550 [NO GBP] Material market buy buttons greys out correctly (#79574)
## About The Pull Request
The buy buttons in the material market UI now takes into consideration
the value of a crate (200 cr) when computing final price and thus
prevents you from placing an order that would exceed the available
budget.

Also, since private orders have a multiplier of 1.1x that too is taken
into account so overall you should not be able to place an order that
exceeds the available budget in the UI.

Additional checks applied in the back end as well.

## Changelog
🆑
fix: Material market buy buttons greys out correctly and thus prevent
you from placing orders that exceeds the available budget.
/🆑
2023-11-08 14:38:32 +01:00
Bloop
23f0284cab Adds some trailing commas to lists, fixes typo (#79422)
## About The Pull Request

What it says on the tin. Another one of these PR's. Is there a reason
why we don't use the linters to enforce trailing commas?

## Why It's Good For The Game

Cleaner diffs

## Changelog

🆑
code: added some trailing commas in lists that were missing them, fixed
a typo in comments
/🆑
2023-11-05 22:34:45 -07:00
Zergspower
3911968402 Fixes Virology bounties (#79459)
## About The Pull Request

fixes what https://github.com/tgstation/tgstation/pull/79136 broke, not
sure if it was an oversight or not but the viro stuff wasnt logged in
the CL and may have just been overlooked. The var and object were named
the same thing and broke the ability to turn Viro bounties in

## Why It's Good For The Game

Virus bounties work again

![image](https://github.com/tgstation/tgstation/assets/22140677/8893a60a-a499-43d5-871d-8e8ea3cd6db1)


## Changelog
:cl:Zergspower
fix: Bounties - Virus bounties work once more
/🆑
2023-11-03 10:08:27 -04:00
Zephyr
9ebf319e6a fixes signal circuit not working | refactors name of timer cooldown macros to be inherent, also docs them (#79367)
## About The Pull Request

Title
## Why It's Good For The Game

Less headache in the future for a macro thats not really obvious in what
it does
## Changelog
🆑
fix: signals in circuits now actually function
/🆑
2023-10-31 10:58:48 +00:00
SyncIt21
e39276b869 GMM UI & Cargo budget handling tweaks (#79145)
## About The Pull Request
- Fixes #79115

This PR is a 2-part solution as specified by the last paragraph of the
above-mentioned issue.

> but also, for you to be prevented from adding more to an order that
you don't reasonably have the funds in that account to afford.

The GMM will now not add stacks to an existing order if it exceeds the
available (private or cargo depending on the mode of ordering) budget or
if it exceeds the available market quantity on the market.

The UI is improved.
- Much larger to display all materials without scrolling
- Now shows the total cost of the order
- Display's number of sheets ordered next to each material type
- Has a clear button to cancel the order
- Order buttons greys out if the order quantity is greater than what's
available in the market or if you don't have the available budget for it
![Screenshot
(340)](https://github.com/tgstation/tgstation/assets/110812394/b2e0dc50-9eee-457f-a85e-c011de014cc6)

But this is not enough. The below example will explain why.

Say you have a budget of 500 cr in both private & cargo.
1. Place an order of materials worth 500 cr be it private or by cargo
budget.
2. Now go spend that budget on something such that it falls below 500
cr, say in this example you overspend, and the available budget becomes
0(you broke)
3. Now go call the shuttle. The order gets rejected but it's left
hanging in the cargo checkout queue and will only be cleared till you
raise your budget above 500 cr and again call the shuttle.

This example just applies to 500 cr but with larger amounts you order
will be hanging in the queue indefinitely till your broke... makes the
available budget to finally purchase it

To fix this we go to the 2nd part of the paragraph.

> An ideal fix would be for GMM orders to be cancellable.

cargo will now **"remove/cancel"** this order and will not leave it
hanging in the queue indefinitely. So, this way if you by accident made
a material order way beyond your available budget cargo will forgive you
and clear you of that debt so you can start a fresh order.

Of course, this fix is only useful if you send the order without
checking the budget but even if you do there is plan B so it's helpful
to know.

## Changelog
🆑
fix: Cargo will remove/cancel orders from its cart if that order exceeds
the available budget (both private or cargo) and the player cannot
cancel this order manually. All order costs are rounded up to integer
values
fix: Galactic material market will deny appending stacks to your
existing order if it exceeds the available (private or cargo depending
on the mode of ordering) budget & if it exceeds the available materials
on the market. Galactic material market UI is overall improved.
/🆑

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-10-31 01:49:17 +00:00
Ghom
c9186b4bfd Fishing-related bounties. (#79136)
## About The Pull Request
This PR adds three basic/assistant bounties for shipping fish. The
reward is above par when compared to other basic bounties, however, each
shipped fish that is either dead or comes from a case (bought from
cargo, cause that's lazy) will reduce the payout by a portion of it,
also the pool of assistant bounties is quite big you wouldn't roll them
too often.

The three bounties are the following: One for any kind of fish, another
for fish of matching fluid type (freshwater, saltwater, sulphuric
water), and lastly, one for specific types of fish, possibly easy money
if RNG is with you.

## Why It's Good For The Game
I wanted to add something diffrent from most grimy assistant/basic
bounties where you either just print the stuff from the nearby autolathe
or fetch it for little money. Also, this provides another outlet to
fishing, I guess.

## Changelog

🆑
add: Added a few fish related bounties.
add: Fish cases to store and preserve life fish within can be now
printed from the service techfab and the autolathe.
/🆑
2023-10-28 21:53:48 +01:00
DrTuxedo
26818af618 Disabler SMG: We got laser carbine, so why not have automatic disabler? (#79158)
## About The Pull Request
Basically, it's #78685, but instead of an automatic deadly laser gun,
it's an automatic disabler gun.


https://github.com/tgstation/tgstation/assets/42353186/6ce1c401-30a6-45f7-a55c-4d95f742c35a

_For comprasion, normal disabler takes 4 shoots and too uses 80% of
charge_

![disabler
SMG](https://github.com/tgstation/tgstation/assets/42353186/7242a0bd-9e78-4e98-a746-7c735b4f997e)

![smg
inahnd](https://github.com/tgstation/tgstation/assets/42353186/a20848ab-9157-43a8-a146-6c3b57e0a817)

It's a side-grade as well, the damage is halved (15 instead of 30) while
the ammo count (40 instead of 20) is higher. So damage potential stays
the same.
The sound which it uses is more weak sounding to signify that.

You **can't** dual wield them.

You can order a crate of 3 at Cargo.
## Why It's Good For The Game
Automatic guns are fun, and as laser carbine showed - REAL FUN.
This introduces another automatic gun available to the crew through
Cargo because variety is always good, and this way we cover the both
most prominent projectiles (Lasers and Disablers).
Now Security can have fun without only killing people, this also lets
Pacificists have some as well.

<details>
  <summary>GET DISABLED</summary>

![HoS does
ratatata](https://github.com/tgstation/tgstation/assets/42353186/29b0d1b3-3bae-4230-ac03-958c58d67a7e)

</details>

## Changelog
🆑
add: New automatic weapon for the crew - Disabler SMG. Capable of
rapidly firing weak disabler beams.
/🆑

---------

Co-authored-by: Jacquerel <7483112+Jacquerel@users.noreply.github.com>
2023-10-24 22:08:41 +01:00
Hatterhat
d3366a57a9 scanning export barcodes now tells you who made them and the profit split (#79173)
## About The Pull Request
Scanning a parcel with an attached barcode, or the barcode itself, with
a universal scanner, now actually tells you the owner of the associated
bank account and the assigned profit-split.

## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/31829017/bc5380cc-38ae-4098-aed9-465962b64619)

## Changelog

🆑
qol: Universal scanners are now capable of recognizing the account
owners and assigned profit splits on barcodes. Cargo technicians are
asked to do their due diligence when matters call for it.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-10-24 17:43:56 +00:00
Ghom
9ed4bd202d Aquariums now have an internal feed storage. Fish catalogs as 25cr goodies. (#78958)
## About The Pull Request
Added a reagent holder to aquarium tanks and some code to enable the
fish to be automatically fed at selectable intervals of 1 minute to 7
(default 3). The holder can be accessed and filled by opening the
control panel, and emptied with a plunger if necessary. Simple plumbing
compatibility has been added as well, in case you think the 6 units of
capacity of the reagent holder (enough to feed a fish 60 times) are not
enough. The preset fishing tank starts with enough feed to keep its
contents alive for 30 minutes.

Beside that, I've fixed a small oversight with the fish analyzer goodie
pack. It should cost 150, not 500.
The fish catalog is now a goodie pack you can get as a goodie for dirt
cheap (25 creds) and a subtype of `book/manual`, so there's a slim
chance you may find it at the library or somewhere else.
Fixed a small oversight inside the fish catalog.
Mapped in a single aquarium kit for each station map, in the service
hallway/storage room where the techfab and cargo consoles are also
found.
Aquarium kits are now compatible with slapcrafting.

## Why It's Good For The Game
Aquariums require too much maintainance for a gimmick, and it's quite
awful to see the fish inside preset aquariums die 5 minutes into the
round. Also, you cannot get fish catalogs anywhere but from the aquarium
kit crate, which costs 1k credits, though its pertinence with fishing
goes beyond aquarium stuff.
Lastiy, I think it's good to give the crew a free aquarium kit. The
price of the supply pack is a bit out of reach for many, service could
use a bit of fisciculture too (I may make it a service pack later, so
that it can be ordered through the service console).

## Changelog

🆑
add: Aquariums now have a small internal reagent holder, accessible when
the panel is open and used to automatically feed the fishes at
selectable intervals, also compatible with plumbing.
add: Fish catalogs can now be bought as a goodie pack, for 25 cr, or
rarely found at the library or maints.
fix: Fixed the prices of fish analyzers. It's supposed to be 150 cr, not
500.
map: Added an aquarium kit to each station, found in the room where the
service techfab and order console also are.
qol: Aquarium kits are now compatible with slapcrafting (crafted by
hitting them with the required material without opening the menu).
balance: Moved the aquarium kit and fish supply packs from the "General"
section to "Service" and "Livestock" respectively, meaning they can be
ordered for free from the service orders console.
/🆑
2023-10-21 16:23:06 +01:00
BlueMemesauce
9a129de703 Export scanner no longer shows shipping manifest value + manifest error changes (#78923)
## About The Pull Request

Adds a variable to exports called `scannable`. If you are trying to scan
it and its set to false, then it won't show the value. When the actual
sale is done, the value will still be added/subtracted.

I also reorganized the message the scanner sends because I didn't want
to put multiple inline if statements.

Lastly, made it so that locked crates and private order lockboxes can't
get the shipping manifest contents error by adding a new trait
`TRAIT_NO_MANIFEST_CONTENTS_ERROR`. For departmental orders, I just
entirely disabled the manifests having errors by setting it to
`MANIFEST_CAN_FAIL` to false.

This PR conflicts with #78911, sorry but that PR was what reminded me to
fix this bug.

## Why It's Good For The Game

Some may call it tedium but having to read paperwork is part of the
cargo experience. Since it is harder to determine the crates value,
there has been a few balance changes. The penalty for incorrect manifest
is half the crates price or 500 credits, whichever is less.


![image](https://github.com/tgstation/tgstation/assets/47338680/b7549d11-eb49-43a2-8bb2-70ca8817e04d)

Let me know if you have any suggestions for how the message is worded,
it might be too long.

Locked crates and private orders can no longer get the shipping manifest
contents error because it is basically impossible to get someone to tell
you all the contents of their purchase. It's only a 5% chance of being
wrong and if they're not in cargo they probably don't care about the
cargo budget.

## Changelog
🆑
balance: Export scanner no longer shows value of shipping manifests, now
you actually have to read them.
balance: Shipping manifest penalty is now only half crate cost as well
as capped to 500 credits.
balance: Shipping manifests for private orders or locked crates can no
longer have the incorrect contents error. Shipping manifests for
departmental orders can n longer have any error.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-10-21 03:48:54 +02:00
RedBaronFlyer
88c113562c Universal Scanners Now Make a Noise When Scanning (#78911)
## About The Pull Request
The universal scanner will now make a sound when scanning any item of
value. Items that have no value do not make any noise when scanned. The
lack of a sound for no-value items is intentional, as I couldn't find a
good middle-ground noise that sounded neutral for items with no value.

## Why It's Good For The Game

More audio feedback for scanning stuff with an export scanner. Nearly
all item interactions make a noise of some sort.

## Demonstration


https://github.com/tgstation/tgstation/assets/45489195/f1bf9538-7cf6-44cc-9def-2c7c5af676b9

Here you can see (from left to right of the viewer) the sounds that play
for positive, no value, and negative value items scanned with an export
scanner. The scanner making the same noise for positive or negative
valued items is intentional as
https://github.com/tgstation/tgstation/pull/78923 will be fixing that.

## Changelog

🆑
sound: added sounds for scanning valued items with an export scanner
/🆑
2023-10-16 15:48:01 +02:00
SyncIt21
d55dbe285d Galactic Market Hot Fixes (#78836)
## About The Pull Request
1. Fixes #78732
The "Order Via Cargo Budget" button no longer appears in the UI if you
don't have cargo access in your ID

2. Fixes #78730
Orders made privately & orders made via cargo budget now come in
different crates
![Screenshot
(315)](https://github.com/tgstation/tgstation/assets/110812394/8dfead42-02ed-46f6-b795-d1ce5a139bfd)
So cargo ordered crates no longer require QM cargo budget card and can
be opened by anyone as intended wheras privatly ordered crates come with
your regular secure access facility. This occurred when assigning the
bank account to the order

e41730f6e4/code/modules/cargo/materials_market.dm (L201)
This param is only meant to check if you want an access secured
crate(which you should get for private orders) or an normal crate for
cargo orders. If null it will send you the regular cargo crate

3. Fixes #78731
Orders made privately vs orders made with cargo budget are now separate
and not bundled together
![Screenshot
(314)](https://github.com/tgstation/tgstation/assets/110812394/151dfc37-8765-4aa9-88a9-7a41e4f6069d)
So if you first make an order privately & them switch to cargo budget or
vice versa it will still separate your orders. This way you get what you
ordered privately in a separate crate and cargo gets their crate
separately for it's purposes

4. New Qol now money will be deducted from cargo budget/your account
only after the order is confirmed in the cargo request console & after
shuttle is called and arrives with your packages This way you drain the
budget only after your orders were successfully delivered and not before
hand itself. We don't have to worry about making orders that exceed our
budget cause cargo already has bound checking code for that so let it do
its thing. Here for example cargo only had 500 credits but i ordered way
too much so it gracefully rejected it
![Screenshot
(316)](https://github.com/tgstation/tgstation/assets/110812394/0b13946e-13f5-4dbc-aebc-a54ba10df043)


6. This also addresses
https://github.com/tgstation/tgstation/pull/78729#pullrequestreview-1654922282
by making the for loop treat the items in the list as paths by using the
`as anything in` clause in the for loop.

## Changelog
🆑
fix: You cannot order with cargo budget if you don't have cargo access
in the Galactic Market
fix: Private & Cargo orders no longer get mixed together in the same
crate if you order them interchangeably so no more embezzlement in the
Galactic Market
fix: Orders made with cargo budget come in a regular cargo crate thus
allowing you to open them without QM cargo budget card in the Galactic
Market
qol: Orders made in the Galactic Market will deduct money from your
account/cargo budget only after the order has been confirmed in the
cargo request console & after the shuttle arrives with your order. This
way you drain the budget only after your orders were successfully
delivered and not before hand itself
/🆑
2023-10-11 08:07:57 -04:00
Isratosh
5c4430c694 Makes Gondolapods great again (#78900)
## About The Pull Request
Fixes #73310 

Bug fix for gondola supplypods generated with the Config/Launch
Supplypod admin verb. open_pod() now dumps the contents of the holder
reference it was passed (holder = src supplypod in all cases except for
the gondola pod) allowing gondola pods to actually deliver their cargo.
Mobs in the new gondola pod get their perspective reset instead of being
stuck in the void of nullspace until the pod opens. The mob's plane is
set on the pod opening to allow items to appear on top of the pod, and
reset to standard mob plane on closing.

In the case of a reversing pod, contents are properly stored in the
supplypod and the outgoing mob is qdel'd (new one is spawned when the
pod lands, holder != src should only be true in the case of the gondola
pod).

Fixed a runtime where glow_effect.plane was being modified while
glow_effect is null. Removes incorrect comment.

Everything tested locally.
## Why It's Good For The Game
Makes the gondola supplypod variant actually functional.
## Changelog
🆑
admin: Gondola supplypods are functional again.
/🆑
2023-10-10 22:39:07 -06:00
GPeckman
340bf909d5 Borg modules can no longer be sold by pirates (#78873)
## About The Pull Request

The pirate cargo pad and console worked by recursively getting all the
contents of all atoms located on the pad. Incidentally, this resulted in
borg modules and radios being sold if the borg happened to be on the
pad. This PR just makes the pads ignore cyborgs and anything located in
a cyborg (or in a thing in a cyborg, and so on). Fixes #47941.
## Why It's Good For The Game

Borg modules probably shouldn't be sold, since they need a module reset
to replace. Borg radios _definitely_ shouldn't be sold, as IIRC not even
a reset will replace them.
## Changelog
🆑
fix: Borg modules can no longer be sold by pirates.
/🆑
2023-10-10 16:37:46 +02:00
GPeckman
e8365f2a36 The laser carbine, a full-auto sidegrade to the normal laser gun (#78685)
## About The Pull Request

This PR adds the laser carbine, a new fully-automatic laser weapon that
can be ordered from cargo. A crate of 3 can be ordered from cargo for
1800 credits, locked behind armory access. Here is a video
demonstration:


https://github.com/tgstation/tgstation/assets/21979502/6f7fecec-ccb6-4a65-8027-21ab887fb91d

Now, I'm sure people are very concerned about the balance implications
of this new weapon. Let me give you some hard numbers:

The gun deals 10 damage per shot, and has a capacity of 40 shots with a
fully charged cell. This means that it has, at most, 400 damage per
charge, which is exactly the same as a normal laser gun.

In terms of DPS, it can put an unarmored human in crit roughly as fast a
laser gun. It is meant to be a sidegrade, not an upgrade to the normal
laser gun.

It also has considerably lower wound bonus. During testing, when all 40
shots were fired into an unarmored human, it dealt tier 1 burn wounds
with the occasional tier 2. I never observed a single tier 3 burn wound
during any of my tests.

Here's a picture of the different sprites (The last one is animated just
like the normal laser gun):


![laser_carbines](https://github.com/tgstation/tgstation/assets/21979502/75c88c8a-aa8a-481d-994d-86850fcdbb9b)

## Why It's Good For The Game

For a long time, there has been a strong push to make crew-available
weapons almost entirely energy based. This trend has been contentious,
to say the least. Many people prefer ballistic weapons over energy
weapons. After spending some time on a different codebase, one where
autorifles are still completely available to order from cargo, no emag
needed, I think I might know why (or at least part of the reason). Part
of what I find satisfying about some ballistics is the fact that they
fire quickly and automatically. Energy weapons might be more enjoyable
to use if automatic energy weapons are also an option.

## Changelog

🆑
add: The laser carbine, a weak but fully automatic sidegrade to the
normal laser gun, can now be ordered from cargo.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-10-06 16:45:50 +00:00
Ghom
0f46a1a12a fish analyzers can also be used to perform fish scanning experiments. (#78745)
## About The Pull Request
I recently read of someone being confused that they couldn't use them to
perform fish-related experiments, so I thought it would be a good idea
to add that. Also, I've converted the related misc supply pack to a
goodie one, like other fishing supplies.

## Why It's Good For The Game
It makes sense, and a fair amount of players doesn't even know
experiments exists until they play the scientist role a couple times.

## Changelog

🆑
add: Fish analyzers can now be used to perform fish scanning
experiments.
balance: They can now be singularly bought as a goodie pack for 125 cr
each, instead of a crate of three for 500 cr.
/🆑
2023-10-06 13:32:49 +01:00
Tim
d6f79f4427 Refactor gib code to use bitflags and have documentation (#78754)
## About The Pull Request
This takes all the gib related procs:
- `gib()`
- `spawn_gibs()` 
- `spill_organs()`
- `spread_bodyparts()`

And adds heavy documentation that communicates what the procs are used
for and how the different bitflags affect them. The difference is
noticeable:

`gib(TRUE, FALSE, FALSE, null)` vs `gib(DROP_ORGANS|DROP_BODYPARTS)`

The code is now much more legible which is important considering it's
used in a lot of places!

Another robust change, is that we had several places in the code where
there were double negatives like so:

```
/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts)
	if(!no_bodyparts) // DOUBLE NEGATIVES ARE BAD M'KAY?!?
		// do stuff here
```

This is a mindfuck to untangle. I inverted a lot of these parts so we
don't lose our sanity.

Last thing that was changed was a big `if()` loop in the `spill_organ()`
proc. This was refactored to just be a simple `for` loop with `continue`
statements where we needed to skip enabled bitflags. It's now shorter
and cleaner than before.

The only slight gameplay change this affects is that gibbing a mob now
guarantees to drop all items unless the `DROP_ITEMS` bitflag is
deliberately omitted. Some places like admin gib self, we don't want
this to happen.

## Why It's Good For The Game
Gib code is very old. (~15 years) People kept adding more arguments to
the procs when it should have been a bitflag initially. By doing it this
way, there is more flexibility and readability when it comes to adding
new code in the future.

## Changelog
🆑
refactor: Refactor gib code to be more robust.
qol: Gibbing a mob will result in all items being dropped instead of
getting deleted. There are a few exceptions (like admin gib self) where
this will not take place.
/🆑
2023-10-06 13:12:22 +01:00
san7890
1b1fde4908 Refactors Goats into Basic Mobs (#78759)
## About The Pull Request

Refactors goats into basic mobs, pretty clean refactor. They're a bit
smarter when it comes to retaliating mobs, and they're still just as
good as ever when it comes to munching on good ol' plantlife. I also
(finally) turned Pete into a goat subtype just in case people want to
inject more behavior into him in the future.
## Why It's Good For The Game

Cleaner implementation of code when it comes to doing stuff like eating
kudzu or just lusting after flora.
## Changelog
🆑
refactor: Refactored goats into basic mobs! Not much should have changed
beyond their endless desire to retaliate should you attack them, they're
still just as good as chomping away plant life as ever.
/🆑
2023-10-06 13:09:53 +01:00
lizardqueenlexi
0378b25b8e The Galactic Materials Market no longer runtimes on opening or ordering. (#78729)
## About The Pull Request

The Galactic Materials Market, currently, runtimes while attempting to
open the UI. This is due to attempting to load various fields from
un-initialized material datums. Through liberal application of
`initial()`, these runtimes have been removed, and it is now possible to
use the market at all (though it has some other issues that I'll make
bug reports for...).

Also gives priority to `greyscale_colors` over `color` when choosing
colors for the UI, to make the correct colors appear.
## Why It's Good For The Game

The Materials Market is rather important as the only source of minerals
on rounds without any miners. So... it's good if it actually loads.
## Changelog
🆑
fix: The Galactic Materials Market now offers things for sale as it
should.
/🆑
2023-10-04 19:43:28 -04:00
Jacquerel
2d39c1289f Adds tongs (#78698)
## About The Pull Request


![dreamseeker_6nkq7xbypa](https://github.com/tgstation/tgstation/assets/7483112/60f86b9d-a5aa-4630-8ab4-8956b2e44665).

Adds tongs, as requested on the [Official TGStation13
Forums](https://tgstation13.org/phpBB/viewtopic.php?f=9&t=33026)
Tongs can be used to pick up food from two tiles away, and feed it to
people who are two tiles away.
You can also use them while in your hand to snap them together like a
crab, or use them to harmlessly pinch people who are up to two tiles
away.

Tongs are available from the kitchen's dinnerware vendor, the autolathe,
and the service lathe.

## Why It's Good For The Game

You can feed people from across a counter, without touching the food and
spreading your germs to them.

## Changelog

🆑 Coded by Jacquerel, Sprited by Dalmationer
add: Added tongs to the kitchen, which you can use to manipulate food
from further away
/🆑
2023-10-03 14:27:26 -06:00
nikothedude
d54e75f47e Makes dep. order consoles alert the department over radio whenever their cooldown expires (#78703)
## About The Pull Request

Title.
## Why It's Good For The Game

A lot of the time, order consoles go unused. I think this is because
people just don't actually know when taking the trip to the console,
even if its, like, 2 feet away, is worth it. Seeing this lil blurb will
make people go "oh hey I can get something free now" and go get said
free thing.

Also, feedback is good.
## Changelog
🆑
qol: Departmental order consoles now alert their department via radio
when their cooldown expires
/🆑
2023-10-03 16:15:09 +02:00
Lamb
0b8f4dc9ce adds boxes of bandages, and bandages to go in them (#78406)
## About The Pull Request
have you ever walked into medbay, picked up a suture, and asked yourself
"how do i know how to stitch myself up?"
do you long for the simplicity of a bandage that can be popped on, no
thought required?
well, look no further! now introducing, the DeForest First Aid Bandage!

![image](https://github.com/tgstation/tgstation/assets/110322848/bb737393-0e2b-4773-a673-ab784a409bed)
each box of bandages holds five each, which are all one time use items.
using one heals up to 25 brute damage from a single part of the body.
boxes of bandages will drain much faster than sutures, and are much less
precise for healing specific increments of damage, but heal more in
exchange. they are also worse at stopping blood loss, but not completely
useless for it.

they can be found in a handful of places:
(some) high value medkits
in paramedic's pockets
some medbay lobbies
some cargo holds
all sec infirmaries
in goodies on the cargo console
maint loot
and nanomeds!

i considered making these replace brute kits, but those are used in a
lot of old references, so it felt a bit passe. so i made a new item that
is a bit more balanced, so they can be mapped in and added to vendors
without much worry.
## Why It's Good For The Game
cute item, heals the people who wouldn't really be going into medbay
anyways, and is fairly flavorful. if it's a bit too strong as is i can
tweak the number, but the goal is to not be powerful enough to outshine
sutures, while still offering somewhat effective healing for rough
housing assistants and antags
## Changelog
🆑
add: adds boxes of bandages, a quick healing item
/🆑
2023-10-01 23:54:46 -06:00
Ghom
db8eca7bf3 The fishing portal generator expansion (plus skill-chip) (#78203)
## About The Pull Request
This is a PR I worked on last month, but had to put on hold while
dealing with some pressing issues with fishing feature, minigame and
other stuff, and because I had to atomize out some of the stuff
previously present here.

I've expanded on the fishing portal generator to do something other than
dispense guppies and goldfishes. It now has multiple settings,
unlockable by performing scanning experiments for fish types, available
from the get go, which also reward a meager amount of techweb points
upon completion. The generator can now be built too. No longer it has to
be ordered from cargo.
It can also be emagged for the syndicate setting, tho right now it only
dispenses donkfish and emulsijack, both otherwise impossible to get
outside of... exodrone adventures.

The advanced fishing rod now comes with an experiment handler component,
specific to the fish scanning experiment, that automatically scans
fished content. The node to get it now requires 2000 points and the
first fish scanning exp to be unock.

A new skillchip has been added, which adds a trait that changes the icon
of the fish shown in the minigame UI, giving some clues on what the
reward will be. The same trait is also gained by reaching the master
(penultimate) level of the fishing skill.

A new fish type has been added, with its own quirks. One of these quirks
included temporarily switching movement direction of the bait.
Currently, it can only be fished in the hyperspace and randomizer
setting of the fishing portal.

Screenshots:
![fuck
yea](https://github.com/tgstation/tgstation/assets/42542238/b4c75951-fa07-44ae-99ee-f602adf8a5a4)

![radial](https://github.com/tgstation/tgstation/assets/42542238/68ff21d8-69fd-4ba5-aa58-9976b6e3282f)

## Why It's Good For The Game
The fishing portal generator is but a stale and underdeveloped prototype
of the fishing feature right now, so much I was thinking of removing it
at first. However, we also have a lot of fishes which are pretty much
unfishable, so I came up with the idea of adding new portal settings
that allow people to actually get them.

As for the skillchip and trait, it's but an extra to both the vending
machine in the library and the fishing skill itself, which has an
overall humble impact on the minigame.

## Changelog

🆑
add: Expanded the fishing portal generator. It now comes with several
portal options that can be unlocked by performing fish scanning
experiments, which also award a modest amount of techweb points.
balance: The fishing portal generator is now buildable and no longer
orderable. The board can be printed from cargo, service and science
lathes.
balance: Advanced fishing tech is no longer a BEPIS design. It now
requires the base fish scanning experiment and 2000 points to be
unlocked.
add: The advanced fishing rod now comes with an incorporated
experiscanner specific for fish scanning.
add: Added a new skillchip that may change the icon of the "fish" shown
in the minigame UI to less generic ones. Reaching master level in
fishing also does that.
qol: The experiment handler UI no longer shows unselectable experiments.
/🆑
2023-10-01 04:11:55 +01:00
ArcaneMusic
9073290d8a ArCargo: Adds the Galactic Materials Stock Market V1.2 (Free Market Edition) (#78500)
## About The Pull Request

**This PR is a rerelease of #78164, with some bells and whistles.** As
such, most of the core functionality is the same, but with some tweaks
to balance the gameplay and prevent bike levels of profit. I've tried to
bold the new additions to make it easier to read for those coming back
for the second pass.


![image](https://github.com/tgstation/tgstation/assets/41715314/ff9bf038-524d-44fc-81bb-c6ff97fef6dd)
This PR adds a new machine that can be bought called the **Galactic
Mineral Market** (GMM). The Galactic Mineral Market (GMM) allows you to
buy and sell minerals wholesale from the market machine. It goes
something like this:

### 1. Getting the Machine:
The GMM can be bought as an un-assembled machine for 600 credits from
cargo. It's a low cost, but its not mapped in standard, so if you're
confident in your miners, you shouldn't necessarily need one for the
department. Otherwise, it's available for other crewmembers to buy for
cost.

The cargo pack comes will all supplies necessary to finish the machine.
Tools not included.

### 2. Buying Low
Using the machine's UI, you can see all traded minerals and their
associated prices. Buy prices are played straight, and can be bought for
material price, times the quantity. The order is then instantly placed
on the cargo shuttle, and will be deducted from the buyer's account on
shuttle send. **A single order can only have 10 different stacks of
materials in it. So, that can be 100 sheets of iron and 1 of everything
else, or 500 sheets of iron. After that you're blocked from buying more
sheets until you've sent the order.**

Cargo staff with standard cargo access may toggle the machine to order
directly from the cargo budget. Otherwise, materials are only purchased
from private accounts.

All purchases are treated as private and must be opened by the recipient
like private orders.

### 3. Selling High

It's stocks time. To sell minerals on the market, simply insert any
relevant metal stock into the machine. This produces a totally original
and not-a-bounty-cube stock block, which can be sold on the cargo
shuttle for cargo funds. Stock blocks can also be price-tagged as well
following their standard process.

**Stock blocks start out a bright pink and are worth the value of that
material at that time, but over time their color will degrade. After a
full 5 minutes, stock blocks will switch over to a purple hue, and their
value will once again become liquid, subject to the current market
value. This encourages players to be a bit more fast on their feet than
before instead of just waiting forever for all of their investments to
arrive at the perfect value, before the inevitable "rest of the game"
tries to upend your investing.**

Sold cargo stocks are subject at a 20% processing fee as part of the
galactic mineral market.
### 4. Outside Factors

**In-game events like the Crab-17 or the Market crash event will cause
stocks to bottom out completely, and for the market to become
unavailable until the market stabilizes. Thankfully, once the market has
crashed, typically stocks will recovery and gain back some value,
allowing for fast acting market movers to capitalize on rough markets.**

**Additionally, low value materials like iron and glass have an extra
stipulation, as their value goes all the way down to 0 credits. In that
case, you are unable to buy them at that value as a market protection.
Be careful that you don't see a reset or crash when you're planning on
selling your horde of iron and glass stocks!**

Additionally, market events can occur during the round that can more
sharply adjust a single stock's price and completely rebound it's
trajectory. These events are always mentioned in the station
announcement's economics report.

### Other notes:
The market does not cover all minerals, partially for consistency
purposes as well as for balance reasons. Plasma, being a unique material
that only Nanotrasen has their hands on, is the sole exporter of plasma
in the system, so it stands to reason that it's not on the market, and
remains a solo export. Bananium, as it has a rare and expensive
conversion rate, works the opposite way, and as such isn't listed on the
market either, with the sole source being single cargo sales. All others
just don't make much sense to include into the market at this second, so
I left them out for now.

**Alright now below I'm going to cover the math and shit so if that's
not what you care about then please scroll past.**
<details>
  <summary>Warning: Arcane is about to talk about the math</summary>
Alright.
So this adds a new stock_market subsystem, which fires once every 20
seconds. I'm still fairly new to subsystem design so I'm probably going
to need some feedback on cleaning this up to make it look nicer and run
smoother.

So we have 4 associated lists, each attached to the relevant traded
datum; this tracks prices, market trends, how long that trend is going
to last in SS fires, and market quantity.

Prices fluctuate between 0.5x and 3x the material's single sheet value.
This could be tweaked even farther in the future, but for now I'm
keeping it at this nice clean margin. Prices fluctuate based on a
gaussian normal distribution that is centered on different points based
on their **trend**. Upward trending materials are centered in such a way
that they'll almost certainly go upwards, but being that it's based on a
random chance, not always. Vis versa, downward trends should tend to
lose value at about the same rate. We also change our rounding based on
this trend data, in order to prevent low price values like iron and
glass from getting stuck in the same value or freefall drop over time
just because of rounding down. Similarly, neutral trending materials
will not change nearly as much, and will generally stay at around the
same amount.

When buying or selling a material, the quantity of that material will
change on the market. The magnitude of that change depends on how much
of that material currently exists on the market. Buying a low quantity
material like diamond for example will tangibly increase that material's
cost, while buying stacks and stacks of iron and glass won't do much
damage to the price of iron as there's usually around 500 full stacks on
the market to start with. It's applied at a relative percentage of
(qty_changed / new_total_on_market) * price of goods bought/sold at.

In addition to that, there are random "market events" that can occur
randomly, which you might miss if you don't follow the newscaster
economy news. These three events are fairly barebones now, but in
general they have a 1% chance of happening per material, and can more
dramatically increase, decrease, or fully reset the value of a material
on the market back to it's standard value. This opens up for doing more
with it in the future, but that's a later problem.
</details>


## Why It's Good For The Game

This independently resolves some issues related to #78040, that being
that lowpop stations, or shifts with few miners would have a new way to
be able to still get some access to minerals in a given round. This also
provides a unique minigame and alternative way to acquire money in a
given shift, using minerals.

**"But Arcane,** I hear you ask. **"Isn't this just the same thing you
tried doing way back when and then reverted in #50537?**
Well, fuck man, how you doing I haven't see you around in forever also
no you're completely wrong and here's why

**This PR is no longer contingent on the rest of ArcMining in it's
current iteration.** I have introduced some extra factors into the
gameplay as well to try and curb the creation of bikes within gameplay.
This also provides a massive benefit to round progression and gives the
QM and the cargo members the ability to prevent round progress from
stalling by buying round-critical resources.

Not to mention, as the GMM is not cargo required, more cargo integrated,
it also functions as economy content for the rest of the crew.

## Changelog
🆑
add: A new export has arrived in the imports section, the Galactic
Materials Market! You can use this to buy and sell minerals for profit
or cost, as well as stock your station when you don't have any miners.
add: Insert sheets of minerals into the Galactic Materials Market to
convert them into a stock block, allowing you to lock in your price for
5 minutes. Wait too long and it'll be subject to market value again!
add: Minerals can be bought on the market either using the station's
cargo budget by cargo crew, or privately by everyone else.
del: Any material stacks that can be bought and sold on the market
before have been removed from the cargo catalog.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-09-30 08:58:56 -04:00
nikothedude
33f172d5e0 Gives sci departmental order consoles access to canstiers & materials (#78604)
## About The Pull Request

Title.
## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/59709059/46558829-1a9e-433f-b0e2-cd6664352559)

Sci is the most mat-hungry department of the entire game, maybe
surpassed by engi but probably not. Toxins can also very much use this
for obvious reasons.
More reasons to use the console = more times sci uses it = more money
for cargo = more inter-departmental action when cargo actually has to
deliver crates to sci.
## Changelog
🆑
balance: Sci now has access to the materials & canisters section in
their departmental order console
/🆑
2023-09-29 21:20:55 -04:00
san7890
24ee1a4681 Refactors Snakes into Basic Animals (#78612) 2023-09-27 20:55:34 -04:00
Lamb
af0e29f3bb adds a surgery tray to surgery supplies medical order, removes surgery duffelbags entirely (#78514)
## About The Pull Request
the surgery supplies order from the medical order console still included
a surgical duffel, so i axed it, and replaced it with a surgery tray.
also axes the surgical duffel from the code, as it's no longer necessary
to have. as well as it's prefilled morgue variant
syndicate surgery duffelbags still work and are untouched. for flavor
reasons
## Why It's Good For The Game
the original switch to surgery trays was done via update paths, so there
really should not be any more of these duffels laying around in code,
primed to confuse mappers. this brings a bit more consistency to medical
orders, and removes that source of potential confusion.
## Changelog
🆑

del: removes surgical duffelbags
fix: the surgery supply order now comes with a surgery tray
/🆑
2023-09-26 23:55:41 +00:00
admeeer
5cf1470b0b Adds a candle box crate (#78593)
## About The Pull Request
Adds a candle box crate that you can order.  🕯️  

## Why It's Good For The Game
The chaplain only starts with a few boxes with a RNG way (scouring
maintenance) to acquire any more

## Changelog
🆑
add: Added a candle box crate for all your candle needs!
/🆑
2023-09-26 11:43:24 -06:00
Jeremiah
a3849062b8 Feature: bitrunner, a new supply role (READY) (#77259)
## About The Pull Request
[Design doc](https://hackmd.io/@shadowh4nd/r1P7atPjn) 

Adds a new supply role centered on short dungeon-esque runs with a focus
on unifying the job with the fun part. Some virtual domains are combat
related, some are silly, some focus on "objectives". Avatar health is
linked to your physical presence and retries are limited.


<details>
<summary>Photos, WIP</summary>

Net pod stasis

![netpod](https://github.com/tgstation/tgstation/assets/42397676/d99073a4-2438-4600-83c0-cafb7b3fee55)

Server loaded

![](https://cdn.discordapp.com/attachments/1131433451841662996/1135304774976278759/dreamseeker_N14j6dwLcK.gif)

Server cooldown

![](https://cdn.discordapp.com/attachments/1131433451841662996/1135304775945179217/dreamseeker_NkIwWLJZma.gif)

the quantum console UI
![Screenshot 2023-08-05
105742](https://github.com/tgstation/tgstation/assets/42397676/3a45feaf-8c80-46b2-81c9-355932d1b014)

Cyber police antag page
![Screenshot 2023-08-16
205303](https://github.com/tgstation/tgstation/assets/42397676/fc28bcdd-2a2a-487b-927c-904f224c1b89)

A safehouse

![image](https://github.com/tgstation/tgstation/assets/42397676/c22ac115-4e00-432a-aeeb-b6afdb1ef750)

Domain info page, every domain gets this (and sometimes help text)
![Screenshot 2023-08-04
141859](https://github.com/tgstation/tgstation/assets/42397676/ba9ed6d9-a318-4466-b246-d2da0fa05676)

Me getting steamrolled in one of the missions

![syndicant](https://github.com/tgstation/tgstation/assets/42397676/3eb3099a-f9b2-4431-854d-50d8cad9b7f0)

Ghost roles getting notified that server is kicking them out
![Screenshot 2023-08-04
135454](https://github.com/tgstation/tgstation/assets/42397676/edab916c-6255-4b83-b2e7-155df2f03aab)

Players enjoying the new combat missions
![Screenshot 2023-08-05
005727](https://github.com/tgstation/tgstation/assets/42397676/e302a66f-610d-4fe1-82e0-7c8aec3913ea)

Players exploring some of the virtual maps
![Screenshot 2023-08-06
220919](https://github.com/tgstation/tgstation/assets/42397676/75a92a0b-6aa1-4bac-8fd1-c9fb47c955da)

(Not part of the PR, but)
![Screenshot 2023-08-06
221527](https://github.com/tgstation/tgstation/assets/42397676/012475ec-bfa5-4fd3-9dcb-31d222bb7bef)

New bitrunner vendor

![dreamseeker_V62h2BGdEl](https://github.com/tgstation/tgstation/assets/42397676/37ca8f69-f75e-45c9-b324-e6b31696c7b7)

</details>

## Why It's Good For The Game
Content, firstly, and moreso being supply department content.

The framework that this implements is a great (preauthorized)
replacement for two systems which are collecting dust: BEPIS and the
gateway. They integrate into this system and it's a direct upgrade.

This adds a way for the players on station to generate materials (if
that remains). The nice part about it is that I can throw balance and
believability to the wind, as unlike its unrelated predecessor VR or
away missions, bitrunning entirely washes its hands of the map and mobs
each reboot.

It offers a very expandable map framework to add content and it's all
fairly well documented.

I'd like to add a feature that represents the idea that jobs don't have
to be mundane and "external" jobs can stay tied to the main gameplay
loop.

## Changelog
jlsnow301, kinneb, mmmiracles, ical92, spockye
🆑
add: Adds Bitrunning to supply department- a semi-offstation role that
rewards teamwork.
add: Adds new machines to complement the job- net pod, quantum server,
quantum consoles, and the nexacache vendor.
add: Adds several new maps which can be loaded and unloaded at will.
add: Some flair for the new bitrunning vendor.
add: Adds a new antagonist for the virtual domain only. Short lived
ghost role that fights bitrunners.
del: Removes the BEPIS machine, moves its tech into the Bitrunning
vendor.
/🆑

<!-- 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: MMMiracles <lolaccount1@hotmail.com>
Co-authored-by: Ical <wolfsgamingtips@gmail.com>
Co-authored-by: spockye <79304582+spockye@users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-09-23 11:14:12 +02:00
Ben10Omintrix
0976420f2f seedling basic mobs (#78224)
## About The Pull Request
this is a mob that was removed from the game since years ago. this pr
refactors them and readds them to the game. seedlings now can have
different colored petals!

![petalcolors](https://github.com/tgstation/tgstation/assets/138636438/7c657c49-9186-4563-a93f-eba35e335ce9)


to obtain this monster, botany can now grow them out of 'seedling' seeds
that they can find in the exotic seeds crate. this mob loves to help all
plants and when its grown out of the seed, it will help the botanists
look after their plants. it can water plants (if it finds a bucket),
remove weeds and remove dead plants. they will also use their solarbeam
ability to provide small healing to damaged plants. it will try to
refill its bucket with water if there is a water source near by. it will
also follow the orders of whoever harvested it.


![plantbotany](https://github.com/tgstation/tgstation/assets/138636438/4cde0613-0869-4fea-8851-2e6f4680d9d7)

traitors can buy a seed from the uplink that grows an evil version of
the seedlings, they can command them to attack people and use abilities
and to cause chaos on the station.


## Why It's Good For The Game
refacotrs the seedlings into basic mobs

## Changelog
🆑
refactor: seedlings have been refactored into basic mobs please report
any bugs
add: seedlings now can have different colored petals and can look after
botanys plants
add: seedlings are re-added to the game! they grow out of seedling seeds
obtainable from exotic seed crates or traitor uplink
/🆑
2023-09-22 15:28:48 +01:00
Teagarden
84501e8e0e radiation suit crate fix (#78369)
## About The Pull Request

deletes duplicates in the radiation suit crate
2023-09-17 01:27:27 -05:00
jimmyl
feb4505f4c climbing hooks for multiz planetary maps (#78340)
## About The Pull Request


https://github.com/tgstation/tgstation/assets/70376633/6c65925e-5276-41fb-8062-cafc2de94b2f

allows you to climb up holes by clicking on tiles above the hole youre
on
examining the rope shows you your current binds for looking up

emergency variant can be found in internals boxes on planetary maps that
have multiz levels (2 uses)
a better one can be bought from cargo for 250 credits (5 uses)
syndies can buy a much much better one for 1TC or can be found in the
nukie base personal lockers (10 uses)

## Why It's Good For The Game

being fucked because you fell down a 1 tile hole in the dark and now
youre in a 1x1 box of snow on the middle of nowhere sucks
or falling down a hole and bam 30 watchers
or falling down a hole and now youre completely lost and might have to
weld your way into the station if youre lucky

## Changelog
🆑
add: climbing hooks that allow you to go up holes for multiz, found in
internals boxes (on planetary maps), the uplink, cargo and nukie
personal lockers
/🆑
2023-09-15 23:15:34 +01:00
Teagarden
d84b33335a Express supply console grammar and QOL (#78283)
## About The Pull Request
Fixes a mistake and adds some QOL to it.

## Why It's Good For The Game

It's nice for things to be convienent

## Changelog
🆑
qol: The supply beacon will no longer delete itself due to explosions,
and you can now anchor it with a wrench.
spellcheck: Express console now correctly states that it needs cargo
access instead of QM access.
/🆑
2023-09-15 19:59:20 +02:00
Hatterhat
ac18420676 John Splintercell: a gun that is only good for shooting out lights (#78128)
## About The Pull Request
adds the SC/FISHER lightbreaker self-charging energy pistol, which does
0 damage. As a joke.

![image](https://github.com/tgstation/tgstation/assets/31829017/84603fcd-dbc3-4857-a657-98c4bd34e881)


https://github.com/tgstation/tgstation/assets/31829017/97572baa-7421-4800-a60e-2db03f4adc6d

<details><summary>actual details, in case the video wasn't good
enough:</summary>

unless you shoot at light fixtures,

![image](https://github.com/tgstation/tgstation/assets/31829017/54092fbf-cbf6-4750-b2b8-37d643efba2a)
floodlights,

![image](https://github.com/tgstation/tgstation/assets/31829017/90b19560-fa25-471b-9f6f-3147c33e5c56)
or people with flashlights/seclites (even on helmets or guns) (it still
does 0 damage, it just turns off their lights. not permanently)

![image](https://github.com/tgstation/tgstation/assets/31829017/1a83c6f9-8fff-4035-aeeb-515319a3dd40)
it also works on crusher lights. and cyborg headlights. i don't have a
screenshot for it.
doesn't work on flares though.

also it can shoot past machines and lockers

![image](https://github.com/tgstation/tgstation/assets/31829017/8fb0a213-8e4a-42cc-9daa-eae5faf6ee77)
</details>
(also adds a variable for deciding how loud a dry fire sound is, in case
you want to make your gun's empty sound be less loud.)

## Why It's Good For The Game

Adds a silly little tool for silly little men who either really hate
lightbulbs or want to recreate the experience of being John
Splintercell, the lightbulb-assasinating secret agent from Fork Echelon.

## Changelog

🆑
add: The SC/FISHER disruptor pistol, a very compact, permanently
silenced energy gun, is now stocked in Nanotrasen-accessible black
markets with a price generally somewhere between 400 and 800 credits.
Aspiring users are warned that it's really bad for trying to actually
kill people. Caveat emptor.
add: Guns now have a dry_fire_sound_volume variable, allowing for guns
to be less loud when trying to fire while empty.
fix: Closets and crates now properly count as structures for pass flags
again.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2023-09-12 14:02:10 +02:00
lessthanthree
3594c3d1fb Medical/roller beds (#78078)
## About The Pull Request

'medical beds' in the game were just varedited survival pod beds. This
creates a proper medical bed subtype plus its own sprite for regular and
roller beds. Cleans up little bits of the bed code and adds context
helpers.

- Medical/roller bed is now constructable with titanium and plastic
after research
- Bed will face the correct direction when pulled
- Movable beds can have 'brakes' toggled with alt-click


![medical_bed_1](https://github.com/tgstation/tgstation/assets/83487515/dd197e24-cf72-4240-ac5a-8cdf575eca00)


![para_bed_1](https://github.com/tgstation/tgstation/assets/83487515/8ad5103e-57be-4dca-8a32-33bdabbeb82e)

## Why It's Good For The Game

Medical gets their own bed, new sprites, cleans up varedits on maps.

## Changelog

🆑 LT3
image: New medical bed and emergency roller bed
code: Added context hints for beds
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
2023-09-04 20:53:09 +02:00
GuillaumePrata
06e7270008 Funny clown internals (#77963)
# About The Pull Request
This PR changes the internals that spawn inside the clown's survival box
for a new one with a rainbow sprite, higher O2 volume (same as the engi
ones) and a secondary gas on top of O2 to make things more interesting
for the clowns.
The gas options are:
BZ, which just adds hallucinations for the clown, without the brain
damage effect as it is in low percentages.
N2O will make the clown giggle and laugh, without the sleep.
Helium will give the clown a "funny voice".

These tanks are also added to the mail list of clown fans and the clown
costume crate at cargo.

And codersprites, I can polish them later if people think it is pixel
soup, I'm not happy with them that much, but making this looks good
might be above my paygrade...
<details><summary>Pics here</summary>
<p>


![clown_internals](https://github.com/tgstation/tgstation/assets/55374212/f5eda877-a01a-4dfa-b481-7d406c4fb768)

![in game clown
internals](https://github.com/tgstation/tgstation/assets/55374212/342285ae-919b-49ab-a97e-cdf25a975f83)


</p>
</details>

## Why It's Good For The Game
The main goal I have with this is to add more uses for Atmos Content to
other players in a flavorful way.
Atmos is not something the crew interacts in a positive way often and I
want to change that.

These tanks are something quite minor but flavorful IMO, also will make
people know Helium fucking exists...

The tanks *shouldn't* change much of the clown's round in a negative
way, and the default O2 internals are in every hallway's locker so even
if they don't want to deal with the hallucinations it is not a big deal
to dodge them.
## Changelog
🆑 Guillaume Prata
add: New funny internals for the clowns to spawn with. They come with O2
and a secondary gas between 3 options: BZ, Helium and N2O. Talk with a
"different tone" with Helium, giggle and laugh "uncontrollably" while
under the minor effects of N2O or have "fun" hallucinations while under
the minor effects of BZ.
balance: To not cut on how long the clown's O2 internals last due to the
mixed gases, the funny internals have 50% more gas volume, same as
engineers' internals.
/🆑

---------

Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-09-02 13:04:34 +02:00
Andrew
b1c5e5e0f6 Foodening (#77887) 2023-08-31 14:57:19 -04:00