* Thermomachines no longer self-destruct when built on blocked ports (#73580)
## About The Pull Request
Ever felt the utter pain when you make a new thermomachine, hook it up
perfectly and then screwdriver it only for it to immediately become a
pile of iron and components without warning? This PR fixes that.
Instead of doing what it did previously, it unanchors itself and opens
its panel.
Right, almost forgot to mention, failing to wrench down a thermomachine
no longer bonks it with the wrench.
Due to not being allowed to use visual messages for when the port is
blocked, I've added a mob/user variable to all on_construction() procs.
(This allowed me to use balloon messages instead.)
## Why It's Good For The Game
Saves a lot of unnecessary headaches when working with thermomachines.
## Changelog
🆑
fix: Atmosians have finally convinced the thermomachines to not
self-destruct when built on blocked ports.
fix: Failing to wrench down a thermomachine no longer hits it with the
wrench.
/🆑
* Thermomachines no longer self-destruct when built on blocked ports
---------
Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
* Feature Request: Bunny crate (#73714)
## About The Pull Request
A common player on manual recently requested the ability to more easily
have rabbits as crewmembers. This feature introduces a reasonably priced
rabbit crate to cargo to amend it.
## Why It's Good For The Game
Bunnies are cool I guess.
## Changelog
🆑
add: Introduces orderable rabbit crate to cargo livestock.
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Feature Request: Bunny crate
---------
Co-authored-by: carshalash <carshalash@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Buff scythes, goats, and plantbgone vs PLANT biotypes (#72889)
This buffs scythes, goats, and plantbgone vs PLANT biotypes:
- Scythes now deal x1.5 damage to venus flytraps (3 hits to kill)
- Scythes now target the flower bud vines
- Goats now target flower bud vines and deal 15 damage to PLANT biotypes
- Goats have a eating sound whenever they bite PLANT biotypes
- Plantbgone now does 2 dmg per unit to PLANT biotypes (10 dmg per
spray)
- Plantbgone now has a 75% chance to remove weeds and deals large damage
to flower buds
- Weed control crates now come with a pair of leather gloves
- Golems are immune to thorn effects
- Any kind of thick glove material will prevent thorn effects when
attacking
- Flower buds will now take x4 damage from fire and sharp weapons
(unless they have fire trait)
- Regular scythes are now a sharp object
Also this fixes a few runtimes with spacevines and nulls. The bane
element now accepts `mob_biotypes` bitflags as an argument.
Before my changes:
- Plant-b-gone was doing 0.4 dmg per unit to PLANT biotypes (2 dmg per
spray)
- Scythes took 5 hits to kill venus flytraps
- Goats only affected podpeople
- Flower bud vines were being ignored by weed killing code
- Plantbgone only had a 50% chance to remove weeds (and this was very
inconsistent due to RNG)
- Botanical gloves and thick gloves didn't protect from thorns
- Golems were getting pierced by thorns despite having pierce immunity
- Flower buds were not taking the x4 damage like they should have been
- Regular scythes were not a sharp object, but other scythes
(chaplain's, megafauna loot) were sharp
This makes the weed killer crate more effective since people were
complaining about it being worthless vs vines and flower buds. These
changes give people more options to respond to threats vs plants.
🆑
add: Add a pair of leather gloves to weed control crate
balance: Mobs with the PLANT biotypes (venus flytraps, pod people,
killer tomatoes) are now much weaker vs scythes, goats, and plantbgone.
balance: Plantbgone is now more effective at destroying weeds.
balance: Regular scythes are now a sharp object
fix: Fixed scythes, goats, and plantbgone not affecting flower bud
vines.
fix: Thick and botanical gloves not protecting from thorns
fix: Golems not having pierce immunity from thorns
fix: Runtime where vines tried to spread into null turf
fix: Runtime where null vines that were destroyed were trying to spread
to nearby turfs
soundadd: Add eat food sound when goats eat plants
code: Improved goat targeting code
code: The bane element now accepts `mob_biotypes` bitflags as an
argument.
/🆑
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Adds required template keys to some midround rulesets, fixes midround nuclear operative leaders from spawning on arrivals (#73620)
## About The Pull Request
`/datum/antagonist/nukeop/leader/move_to_spawnpoint()` overrides
`/datum/antagonist/nukeop/move_to_spawnpoint()`, which is responsible
for calling `SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_NUKIEBASE)`
Nuke op leaders also get created first thing, so they always got sent to
arrivals
`move_to_spawnpoint` now is not overridden by anything, location is now
obtained though `get_spawnpoint`
But this doesn't solve the entire issue! Seemed like there was a race
condition in that, on nukie team creation, it looked for the nuke to
generate the nuke code. But it created the team before creating the nuke
(and template). So it runtimed and broke, no nukies.
So I had to go deeper.
Rulesets have this list, `ruleset_lazy_templates`, that none of the
midround rulesets used. CC @ ZephyrTFA on this, but it seemed like it
caused a few issues related to lazyloading by missing them?
I added the keys to abductor and nukies. and also ninja even though
it'll probably never be used
I also also made the kidnapping objective for traitors pre-emptively
load the holding facility on objective *taken*, rather than waiting for
the exact moment which the victim is kidnapped.
(Should) Fix#72248
## Why It's Good For The Game
LATE FOR WORK
## Changelog
🆑 Melbert
fix: Nuke Ops Leaders midround don't spawn on Arrivals Shuttle late for
work
fix: (Maybe) fixes some additional issues related to midround nukie /
abductor spawns
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds required template keys to some midround rulesets, fixes midround nuclear operative leaders from spawning on arrivals
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds new combat cybernetic implant (#73043)
## About The Pull Request
Adds arm empower implant to the game - a cybernetic implant that will
make your punches deal 13 damage(normal human attacks deal between 1 and
10 damage), and throw your target away(doesn't work if you are lying
down) like a baseball bat does. It is inserted into your arm, and it
works only for the arm it is inserted into.
As an EMP effect it would cause you to fall under your target, or get
paralyzed due to muscle spasms.
## Why It's Good For The Game
Expands the implant system and adds more things to stuff into yourself
if you want to roleplay as a cool robo man.
## Changelog
🆑
add: Added a new cybernetic implant that increases punch damage of a
human
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Adds new combat cybernetic implant
---------
Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Admins can now customize the stray drop pod event. (#72975)
## About The Pull Request
Gives admins the ability to rig where the stray drop pod will drop in
addition to rigging what type of cargo crate regular drop pods contains
and how many telecrystals and which uplink syndicate droppods will use.
## Why It's Good For The Game
More control for admins regarding drop pods, while admins can spawn drop
pods normally these drop pods have slightly different behavior that
changes their usecase. I think it'd be highly useful for admins to for
example spawn in a clown ops surplus crate as part of a TC trade or
randomly spawn a crate full of gnomes thats announced to the crew so
they can hunt for them.
## Changelog
🆑
admin: Admins can now customize the crate type and landing zone of the
stray drop pod event.
/🆑
* Admins can now customize the stray drop pod event.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Big Paperwork: Adds the Paperwork loan offer, paperwork fraud, and ancient paperwork! (#70863)
Adds paperwork -- an indecipherable mess of papers that only a seasoned
department head could hope to decipher. If processed and sent to Central
Command via the cargo shuttle, the budget gets a bonus.
Paperwork is distributed through a new Shuttle Loan offer. A nearby
station needs some paperwork reviewed. Do you have what it takes to
handle BIG PAPERWORK?
Processing paperwork is relatively simple. You can inspect it to see
which head of staff it "belongs" to, and you can use their stamp to
complete it. You get a lot of these, so the bonuses can add up if you
get them all in. Just be careful not to return any unprocessed
paperwork.
With big paperwork comes big paperwork fraud, and big fines.
You can photocopy your completed paperwork to double-dip with Central
Command and squeeze out a little bit more money. The more paperwork
fraud you commit, the higher the chance you'll be caught and fined.
On top of that:
Some say that in the long forgotten halls of maintenance, there lies
_ancient paperwork_. Documents whose importance has long since passed,
but are still important for bookkeeping at Central Command. With a keen
eye, you might spot one of these while scouring through maintenance.
Make sure it gets forwarded to the right person, cargo will thank you.
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Changes crate description for snake crate (#73148)
## About The Pull Request
Changes the snake cargo crate description from "three poisonous snakes"
to "three venomous snakes". While snakes can (rarely) be poisonous, the
snakes in-game are venomous.
## Why It's Good For The Game
Correct word usage is good. Venomous animals inject toxins via bite or
sting (which is what the in-game snakes do). Poisonous animals only
transfer toxins when they are consumed.
## Changelog
🆑
spellcheck: changes the snake crate description from poisonous to
venomous
/🆑
* Changes crate description for snake crate
---------
Co-authored-by: Horatio22 <69338705+Horatio22@users.noreply.github.com>
* [NO GBP] makes pizza crates' pizza list weighted again (#73082)
## About The Pull Request
didnt realize in #71202 pick-n-take didnt have the weight function like
pick weight obviously does oops!
## Why It's Good For The Game
pizza crates did not care about assigned weight, if you think that the
arnold pizza was showing up too often, it was!
## Changelog
🆑
fix: pizza crates' pizza list applies the assigned weight on its pizza
list
/🆑
* [NO GBP] makes pizza crates' pizza list weighted again
---------
Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
Implements Amphibian Crate (#72922)
## About The Pull Request
- This adds a new crate to cargo, the "Amphibian Friends Crate!" Gives
you one frog and one axolotl.
- Edits "code\modules\cargo\packs\livestock.dm"
## Why It's Good For The Game
Great for those who want a frog or axolotl and couldn't find them in
maintenance or really want an amphibian friend but someone else took it.
Also helps those who want to do amphibian related cytology. Players seem
to love frogs and axolotls in the game, so this also adds another method
of getting them via cargo.
## Changelog
🆑
add: Adds a new crate to cargo, the "Amphibian Friends Crate!" Gives you
one frog and one axolotl.
/🆑
---------
Co-authored-by: ophaq <44999764+ophaq@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Corrects the description of the Exotic Seed Crate (#73009)
## About The Pull Request
Changes the description for the Exotic Seed Crate from advertising that
it contains fourteen seeds to twelve seeds.
## Why It's Good For The Game
The crate's description says that it contains fourteen seeds, when it
only contains twelve. Changing the description to reflect the actual
number of seeds will help buyers not to feel scammed.
## Changelog
🆑
spellcheck: After one false advertising lawsuit too many, Nanotrasen has
changed the sales pitch of the 'Exotic Seed Crate' to correctly reflect
that it only contains twelve seeds.
/🆑
Co-authored-by: the-orange-cow <76538214+the-orange-cow@users.noreply.github.com>
* adds atmospheric gloves, small resprite of firefighter gear, repaths stupid glove paths (#72736)
repaths a lot of gloves off /color because they were incredibly stupid
firefighter gear has gotten an update (it doesnt cover hands anymore
though, you need something else)
firefighter helmets no longer hide your mask or glasses

fixed engine goggles starting with darkness vision
to the atmos lockers adds atmospheric gloves, a pair of thick (chunky
fingers) gloves that are fireproof and fire protective, slightly shock
resistant and let you fireman carry people faster.
atmospheric firefighter helmets now are a subtype of welding hardhats,
you can enable a welding visor.
welding hardhats change mode with right click instead of altclick
im not a good spriter but i think this resprite makes them fit nicer
with other engi equipment
lets me firefighter rp
🆑
add: Atmospheric Gloves, thick gloves that are fully fireproof and fire
protective and let you fireman carry people faster.
fix: fixes engine goggles starting with darkness vision
qol: firefighter helmets can now enable a welding visor
qol: welding hardhats change mode with right click instead of altclick
balance: firesuits no longer protect your hands
/🆑
* Makes shit compile
* Updates the digi and snouted stuff to match the new sprites (thanks Halcyon!)
* Fixes a whole ton more issues that popped up
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Stock Part Datumization Complete (#72559)
So i accidently reverted all my commits in #72511 when resolving a merge
conflict So ummm yeah fuck my bad anyway
Finishes what was started in #71693 and completes the
[initiative](https://github.com/tgstation/dev-cycles-initiative/issues/1)
Except for `obj/item/stock_parts/cell` and its subtypes. All machines
now use `datum/stock_part` for its requested components & component
parts
Not sure if i caught every machine & stuff in the game so merge with
caution
🆑
code: datum stock part for every obj stock part
refactor: all machines & dependent experiments to use datum stock parts
/🆑
* Fixes a teeny tiny Funce mistake :)
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* New Mob [Garden Gnomes] (#72672)
## About The Pull Request
Garden gnomes can go into the ground when they stand still for a while.
If they are damaged and underground they will heal. If they are
underground they will also gain damage resistance. They can make people
trip when underground and deal some damage. They are available through
golden slime cores or you can collect them from cargo with an emag. If
one of them gets damaged they will all retaliate against the attacker.
They have a very realistic colour pallet based on online gathered data.
Depending on their colour pallets some of them have a very low chance of
spawning.
## Why It's Good For The Game
These new garden gnomes come with expanding the world building of space
station 13. These gnomes will add more variety to the game play and use
an interesting AI and behavior that interacts with the player.


## Changelog
🆑
add: Adds garden gnomes.
imageadd: Adds garden gnome sprites.
/🆑
* New Mob [Garden Gnomes]
Co-authored-by: Comxy <tijntensen@gmail.com>
* Refactor lighting items that use fuel (#72146)
Fixes#71826
This does the following:
- Makes candles a subtype of flare
- Fixes candles having lighting inconsistencies
- Fixes burning items (welder, candles, flares, etc.) not causing
ignition effects when held in hand
- Adds burnt flares and melted candles to maint loot and trash spawners
- Add match lighting sound when candles are lit
- Add time defines for fuel amounts and rounded them (ex. instead of
32.3333 minutes, it's now 35 minutes)
- Light sources that burn will now spawn a trash item once fuel is spent
- Light sources that burn now have a welder hitsound
- Light sources that burn can now be extinguished by a fire extinguisher
(except flares)
- Light sources that burn can now be used to ignite another object on
fire (ex. a lit candle can be used to light a cigarette)
- Light sources that burn and are lit now do `BURN` damage while
attacking
Code is more cleaner and consistent. Also fixes some bugs.
🆑
soundadd: Candles will now use the match lighting sound when lit
soundadd: Light sources that burn will now have a welding hitsound
fix: Fix candle light behaving erratically
fix: Fix burning items that are held in hand will now have an ignition
effect on the turf. (ex. lit welders in hand will now ignite plasma in
the air)
balance: Light sources that burn and are lit now do `BURN` damage while
attacking
balance: Light sources fuel amounts were rounded to exact numbers (ex.
instead of 32.3333 minutes, it's now 35 minutes)
qol: Light items that burn can now be extinguished by a fire
extinguisher (except flares), used to ignite another object on fire, and
will now leave a trash item once fuel is used
qol: Add burnt flares and melted candles to trash spawners
refactor: Refactor lighting items that use fuel to be more robust
/🆑
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Modular!
* Toggle Light
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Improves duplication (#72572)
## About The Pull Request
- Improves duplication code significantly
- Removes 'perfectcopy', 'newloc', 'nerf' and 'holoitem' args. These
were made for holodeck items, but holodeck items do not use this proc so
it's since been unused.
- Adds many things to duplicate forbidden vars, such as external organs
(and fixes internal organs), overlays, and signals. The signal part is
what broke basic things for duplicated mobs, such as dying, huds, and
lying down.
- Duplicated mobs now properly carry over the identity of the old mob
without losing anything in the process, and now actually work as a mob,
with visible HUDs and everything. They also carry implants over now.
- Duplicated mobs also now no longer cut all their contents and rebuild
the entire mob, they don't carry overlays at all (so we don't have the
problems that come along with it, like clothing sprites from clothes
that don't exist).
- As a minor detail, makes DuplicateObject use snake_case instead, and
makes duplicate_forbidden_vars protected.
- Removes copy_contents_to because it's unused. It was originally meant
for Holodeck, but holodecks now use map templates so it's no longer used
in-game.


## Why It's Good For The Game
Closes https://github.com/tgstation/tgstation/issues/42212
Duplicating mobs no longer gives a broken mob, which was a common
problem with cloning pods (the admin pods, that you drop down onto
people).
Updates very old code to modern code standards.
This PR was made to help out
https://github.com/tgstation/tgstation/pull/71141 too, the author of
that PR is aware of this one.
## Changelog
🆑
refactor: Duplicating mobs now should now give properly functioning
mobs, as duplications in general have been reworked. Admins can feel
free to use the pod feature on people.
/🆑
* Improves duplication
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* [no gbp] removes all duplicate armor datums (#72354)
closes#72348
Title
My bad
Heres the script I used this time if you want to
```cs
var baseDir = Environment.CurrentDirectory;
var allFiles = Directory.EnumerateFiles($@"{baseDir}\code", "*.dm", SearchOption.AllDirectories).ToList();
var known = new Dictionary<string, List<KeyValuePair<string, int>>>();
foreach (var file in allFiles)
{
var fileLines = File.ReadAllLines(file);
for (var i = 0; i < fileLines.Length; i++)
{
var line = fileLines[i];
if (line.StartsWith("/datum/armor/"))
{
var armorName = line.Replace("/datum/armor/", "").Trim();
if (!known.ContainsKey(armorName))
known[armorName] = new List<KeyValuePair<string, int>>();
var knownList = known[armorName];
knownList.Add(new KeyValuePair<string, int>(file, i));
}
}
}
Console.WriteLine($"There are {known.Sum(d => d.Value.Count)} duplicate armor datums.");
var duplicates = new Dictionary<string, List<int>>();
foreach (var (_, entries) in known)
{
var actuals = entries.Skip(1).ToList();
foreach (var actual in actuals)
{
if (!duplicates.ContainsKey(actual.Key))
duplicates[actual.Key] = new List<int>();
duplicates[actual.Key].Add(actual.Value);
}
}
Console.WriteLine($"There are {duplicates.Count} files to update.");
foreach (var (file, idxes) in duplicates)
{
var fileContents = File.ReadAllLines(file).ToList();
foreach (var idx in idxes.OrderByDescending(i => i))
{
string line;
do
{
line = fileContents[idx];
fileContents.RemoveAt(idx);
}
while (!String.IsNullOrWhiteSpace(line));
}
File.WriteAllLines(file, fileContents);
}
```
* modular
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* Minor improvements to mining order console
* merge
* Mining orders can no longer error and don't say they charge you (#71676)
- Mining orders now show the amount of mining points spent as the 'Cost'
instead of a flat 240 credits
- Mining orders now no longer have errors (including nothing being in
the crate at all) because they can't be sent back for a full refund.
- Mining orders no longer say they charged you if they haven't.
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
* Crafting/Cooking menu update
* Yeeted away all of the merge conflicts, time to fix the code
* Okay, now it compiles, and after testing, it seems to work just fine
* Actually, early addition of an upstream fix, so those that don't have hunger can still open the cooking menu
* Fixes the units tests by removing the extra comma in the Stuffed Muli Pod recipe
Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* refreshes syndi-kits and syndicate surplus crates, introduces shared limited stock
* merge conflict
* Surplus balance, Consolidated our surplus crate and the new tg one to just use our stats
* use upstream surplus loot crates
* syndicrate
Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Adds a helper for base_pixel sets in typepaths that ensures the offset is autoapplied to pixel_x/y (#72309)
## About The Pull Request
This was an issue on wallening and I figured I should fix it at the root
Look ma I'm upstreaming
* Adds a helper for base_pixel sets in typepaths that ensures the offset is autoapplied to pixel_x/y
* update modular
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Changes the missing food icon test to cover ALL /obj's
* Update implant.dm
* Hopefully fixes all the failing integration tests!
* Fixes more missing icons
* Even more icon fixes
* Hopefully that was all of them
* Okay now SURELY that's all of them
* I'm tired of this shit man
* Hopefully that's all, for real this time!
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Fixes access_view on goodies not being respected by anything other than department budget orders (#72125)
## About The Pull Request
Fixes access_view on goodies not being respected by anything other than
department budget orders
## Why It's Good For The Game
Bugfix, per gitblame we simply never fixed this but we clearly intended
it to work this way per the variable comment description and the fact we
use it on the detective revolver
## Changelog
🆑
fix: Fixes access_view on goodies not being respected by anything other
than department budget orders
/🆑
* Fixes access_view on goodies not being respected by anything other than department budget orders
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
* Changes the default security delivery area to the Security Office (#72128)
Sets the security office as the highest priority location for
security cargo crate deliveries, meaning that their delivery
crates now have to be opened where the crates are
actually delivered, and fixes the mess like on Icebox where
you have to open the crate on the lower level with all the
cells.
* Changes the default security delivery area to the Security Office
Co-authored-by: Profakos <profakos@gmail.com>
* Flatten mech/combat and mech/medical (#71494)
## About The Pull Request
The only thing mech combat has is the reload helper that should be on
mech proper anyway and the medical subtype isnt even defined outside of
ody code
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
* Flatten mech/combat and mech/medical
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
* Adds a preference that disables intensive rendering on different multiz layers (#71218)
## About The Pull Request
It's kinda hacky, but it is nearly the same as just rendering one z
layer.
We allow people to ENTIRELY REMOVE most plane masters from their screen.
This has the side effect of disabling most visual effects (AO is a big
one) which saves a LOT of gpu.
We rely on planes being essentially layers to ensure things render in
the proper order. (outside of some hackyness required to make parallax
work)
I've kept parallax and lighting enabled, so visuals will still look
better then multiz pre plane cube.
It does also mean that things like FOV don't work, but honestly they
didn't work PRE plane cube, and FOV's implementation makes me mad so I
have a hard time caring.
Reduces gpu usage on my machine on tram from 47% to 32%, just above the
27% I get on meta.
I'm happy with this.
Oh also turns out the parallaxing had almost no cost. Need to remove it
as a side effect of what I'm doing but if I could keep it I would.
There's still room for in between performance options, like disabling
things like AO on lower z layers, but I didn't expect it to make a huge
impact, so I left things as is
Also fixes a bug with paper bins not respecting z layer. It came up in
testing and annoyed me
## Why It's Good For The Game
Ensures we can make multiz maps without running into client performance
issues, allows users to customize performance and visual quality.
## Changelog
🆑
add: Adds a new rendering option to the gameplay preferences. You can
now limit the rendering intensity of multiz levels. This will make
things look a bit worse, but run a LOT better. Try it out if your
machine chokes on icebox or somethin.
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds a preference that disables intensive rendering on different multiz layers
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* quick reorder
* nakamura part 1
* nakamura finished maybe
* blacksteel does not actually make black steel
* renames the folder, special metals part 2 for blacksteel
* WHERE WE PLAY NOTHING BUT ROCK, ROCK, AND MORE ROCK
* file pathing
* blacksteel done
* nri surplus start
* interest stuff, company flags, nri surplus completion
* deforest medical
* theres gonna be multiple nakamuras actually
* donk co
* the prices are behaving strange
* those are a tad expensive
* im so confused
* ticks the other companies to see if maybe they're responsible
* also maybe that?
* on jod bro they just needed to all be the same name
* kahraman mining tools
* nakamura tools
* nt-bolt defense equipment
* the two g*n companies
* ammo company
* good lord what is happening in there
* STOP TALKING ABOUT GUNS, IM TIRED OF HEARING ABOUT IT
* hopefully the last few bits of gun-centricity (i don think that's a word
* price adjustment
* changes what can be a freebie
* those should be the other way around
* well that'd just make the descriptions incorrect now would it
* 1st batch of changes
* pt2
* oopsies (makes every test fail)
* then king minos told me "DIE" and I was like 💀
* some of those things could cause problems
* they even spelled asbestos wrong
* ultrakrill (funny)
* i hate this dumbass """"""advanced"""""" ammo box thing
* nakamura was a bit hard to get interest from
* not much a fan of how interest goes down
* those mod cores should be cheaper
* again fuck this stupid ''''''''advanced'''''''' ammo box shit
* price adjustment
* misinput
* Update accretion_incompatibility.dm
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Fishing Odds Code Improvements and Rescue Hooks (#71415)
## About The Pull Request
I wanted to try and implement an easier way for people to fish out
corpses from chasms, as I heard many tales of people trying to fish
others out of chasms and it taking over one IRL hour, with some cases
where it would take over two hours. Obviously, that's not really
interesting gameplay, and it doesn't really give people an incentive to
fish, it just turns it into an annoyance that people won't want to do
for fun. Now, we don't want that, do we?
As such, I've created the rescue hook, a special fishing hook that can
only be used in chasms (as that's currently the only place you can find
people into), which will only be able to fish out duds, skeleton
corpses, any mob that's fallen into a chasm and hasn't been rescued yet,
or rarely, a hostile monster lurking below. It has, at the time of
writing this, a weight of 5 (50 without bait, lower with bait) for duds
and a weight of 30 for chasm detritus, which themselves have a 50%
chance to be a random skeleton corpse, or a lobstrosity, and the
remaining 50% chance of fishing out a mob that's fallen into a chasm.
I'm open to tweaking these values if we think it's too easy or too hard,
but it's still a rather expensive item, so I'd consider it quite fine
the way it is myself, as it's still not risk-free.
It's currently only obtainable through buying it from cargo in the
goodies section, at a default price of 600 credits (making it
SIGNIFICANTLY more expensive than the rest of the fishing content, and
making it something that assistants will have to put some elbow grease
into if they want to be able to afford it).
As it stands currently, it can't be used to recover the fallen's
belongings that weren't on their person (i.e., their crusher if they
were holding it in hands), ~*but* I'm down to make that easier to fish
out using, for instance, the magnet hook, while also making it
incompatible with fishing out bodies, which would make it a nice way to
recover those lost items without spending over an hour fishing for them,
if that's something that maintainers would want.~ Maintainers did want
it, and as such...
The Magnetic hook is now the go-to hook to retrieve objects from chasms!
Not only does it inherently do a much better job at fishing out
non-fishes, it also has a lesser chance of retrieving random junk from
chasms, and an even lower chance of fishing out lobstrosities!
I also improved the code for the fishing weights calculation so that the
hooks and the rods can have an effect on the odds of certain types of
rewards more easily, with the option of offloading a more of what's
currently being calculated on `fishing_challenge` over on the rods or
even the hooks themselves.
I finished by fixing a handful of capitalization and punctuation issues
in various fishing items, as that bugged me when I was testing my
changes.
## Why It's Good For The Game
Corpses being recoverable from chasms was a great idea, however making
it so people would have to sink a major portion of their shift for a
chance at recovering a corpse doesn't create a particularly interesting
gameplay loop. However, being able to spend your hard-earned funds in
order to streamline that process without really being able to use that
to cheese other mechanics sounds like a great deal to me.
## Changelog
🆑 GoldenAlpharex
add: Added a Rescue Hook, that will allow the fishing rod it's attached
onto to become a lot more proficient at recovering corpses from chasms,
at the expense of making it unusable for more traditional fishing. It
isn't entirely lobstrosity-proof, however...
balance: The magnetic hook can no longer fish out corpses from chasms,
but will fish out items much more efficiently than any other hooks,
while also being much less attractive to lobstrosities. Some still fall
for it regardless, however.
spellcheck: Fixed the capitalization and punctuation in the description
of multiple fishing accessories.
code: Improved the code for fishing weights, to allow for different
hooks to have some more noticeable results on the weights without having
to add to an already massive proc.
/🆑
* Fishing Odds Code Improvements and Rescue Hooks
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Coffee Shop DLC - done right this time edition (#70991)
## About The Pull Request
this is a re-attempt at PR #70725 that was practically ready but was
ruined in the course of my hardships with git. Mistakes were made.
In this re-edition I also addressed a few suggestions from the comments
of the original pr. There is a shaker added in the meta station cafe and
the pill bottle is moved out of sight to the fridge (I still left it
cause it contained antidepressants for the especially overworked NT
employees). Additionally, the naming of `/cup/glass/coffee` has been
handled differently this time to minimize the need of changing the code
in multiple places.
Please refer to the original PR for all details concerning the content,
below I add just a rough line-out for the sake of coherency.

The content of the pr extends to:
- a new coffee bean driven coffeemaker
- syrup bottles
- a coffee condiment display box
- almost complete make-over of the meta station cafe
- adding the new coffeemaker in a few break rooms on delta and tram (2
machines per station)
## Why It's Good For The Game
Please refer to #70725
## Changelog
🆑
add: After a massive success of the Modello 3 series, Piccionaia Home
Appliances rolls out a completely new coffeemaker model and renovates
the meta station cafe for free in a promotional campaign!
add: Syrup bottles, condiment displays, and more, to make the spess
coffee experience even better
/🆑
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@ gmail.com>
* Coffee Shop DLC - done right this time edition
Co-authored-by: disappointedButNotSuprised <57324037+disappointedButNotSuprised@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@ gmail.com>