Commit Graph

59974 Commits

Author SHA1 Message Date
Ghilker
5713b4fb77 improve speed of cascade walls, better description for them + CL for cascade antag (#66800)
Cascade walls were processing on object subsystem, they are now in their own subsystem that ticks once per second and should be more reliable even in case of high td
better description for the walls to be more interesting
2022-05-10 19:52:50 +01:00
Ghilker
bdc6804680 Powerfist code improvement (#66824)
I wanted to add some nuance to the used gasmix in the powerfist but i want to do some cleanups first so here we are, i've also added some more text in examine and item use for a bit of quality of life
2022-05-10 19:44:44 +01:00
san7890
d604bc6b8c Fixes Marker Beacons Not Having an Icon (#66830)
FUCK.

In #66736 (7517e79), I forgot to change this line. It worked fine in the screenshot because the screenshot came from before I spun it out into it's own DMI. Whoops.
2022-05-10 19:41:09 +01:00
Ghilker
021ad98fce atmos layers update (#66825)
Updates atmosmachines layering in a way that they keep the same layer in all piping_layer and colors. dense machines have a static OBJ_LAYER that doesn't change regardless of color/layer
2022-05-10 19:37:24 +01:00
vincentiusvin
30b84afc48 Fix a missing bold tag in the omega soap poem (#66827)
Its only missing an opening b tag
2022-05-10 13:19:10 -04:00
dragomagol
4aa0108265 Adds lore terminals for mappers (#66589)
This adds the ability to use Fallout-style terminals for maps
2022-05-10 12:01:04 -04:00
SmArtKar
9633dbd424 Fixes heretic marks working on corpses (#66815)
marks shouldn't apply to corpses
2022-05-10 11:38:47 -04:00
Tastyfish
a61783066e Fix destroy_machinery runtime (#66810)
Added a check for if the applicable_jobs list got completely eliminated. The if(!length(possible_machines)) check immediately after this while loop with then cause the objective generation to cleanly fail.
2022-05-10 11:32:25 -04:00
Zonespace
37e575750c Rebalances, adds, and removes certain bounties (#66625)
* Splits Engineering and Atmospherics bounties

* Lowers the rewards from Medical bounties

* Adds refined anomaly, Assistant and Engineering bounties

* Removes Sunglasses and Briefcase bounties

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2022-05-10 07:45:45 -04:00
dragomagol
8764893593 [MDB Ignore] Mapping directional helpers for signs + sign naming conventions (#66754)
* Add mapping helpers for signs, make names snakecase

* Update maps

* Couple of lost signs in the elephant graveyard

Co-authored-by: tattle <article.disaster@gmail.com>
2022-05-10 06:32:09 -04:00
SmArtKar
e9e4998316 Fixes charged greens displaying species types instead of names (#66818)
Closes #66724
2022-05-10 02:52:41 -07:00
Tim
549ba0ee9e Fix books to only give mood bonus when read the first time (#66371)
* Fix book rereading exploit

* Refactor book_title_read to be for mind datum

* Remove reader var from on_read

* Add sanity check for mind
2022-05-09 23:38:04 -05:00
Tim
aaef545968 Revert "Add stamped requisition forms now give bonus credits (#66230)" (#66851)
This reverts commit f021767645.

This reverts commit f021767 from:

    Add stamped requisition forms now give bonus credits #66230

This bug was encountered when we were testing this PR but I thought it got fixed.
Why It's Good For The Game

Cargo crates will now reappear.
2022-05-10 15:28:10 +12:00
MrMelbert
e63d556d83 Confusion status effect is now duration based instead of magic number based (#66801)
Refactors the confusion status effect. Removes "confusion strength" and replaces it with duration, which is measured in seconds.
This also allows them to use the adjust_timed_status_effect procs instead of their own.

Fun fact! 2 years ago when confusion was refactored into status effects, all confusion effects in the game were halved in duration. They were changed to status effects, which tick every 1 second by default, from life, which tick every 2 seconds by default, without any values changing.
2022-05-09 18:59:33 -07:00
MrMelbert
b9ba2d2dae Removes (now unused) sandbox related config and variable (#66803)
I don't know when we removed sandbox but this datum doesn't exist anymore and this var is unused

Also the config does nothing anymore so might as well throw that out
2022-05-09 18:53:39 -07:00
zxaber
a6583845e5 Ripley mechs (and other mechs that are missing an air tank) can no longer toggle the air source. (#66107)
Disables the button on the UI if the mech has no internal tank. Also early returns on procs if the UI somehow lets the click through.

Fixes #66005
2022-05-09 18:48:50 -07:00
Y0SH1M4S73R
572d273ff6 Supermatter Cascades are not Universe-Destroying Events (#66804) 2022-05-09 18:45:22 -07:00
wesoda25
6f58040394 Fixes mulligan not randomizing ethereal color, removes default_color for every race except ethereals (#66229)
Judging from code this is a fix, although I initially thought it would be a feature. It tried to update color but there was nothing in ethereal code to make that do anything. Now it does.

Moth wings also do not update. I tried to figure it out but species code makes me want to hit my head against a wall so I gave up on that.

default_color wasn't used anywhere except for ethereals, so I made it a var unique to ethereals.
2022-05-09 18:38:27 -07:00
tralezab
d1a597e97a Sorts ai_laws.dm, adds Dungeon Master, The Painter and Their Canvas, and Nutimov lawsets (#66636)
Sorts ai_laws.dm, adds Dungeon Master, The Painter and Their Canvas, and Nutimov lawsets (They aren't obtainable by players at the moment)
2022-05-09 17:43:08 -04:00
MrMelbert
a020e28305 Removes "strandling" status effect from a bunch of random places / refactors it (#66711)
Refactors /datum/status_effect/strandling to utilize signals so that it's not present in a bunch of random places via hard checks and traits.
2022-05-09 09:58:00 -07:00
SmArtKar
5cef111088 Titan's Final Lament - Colossus and hierophant crusher trophy rework (#66793)
This is somewhat a port of BeeStation/BeeStation-Hornet#6805 with slight changes, credits to Rukofamicom for the original PR.

Kinetic crusher is supposed to be a high risk high reward weapon, but with current hiero wall trophy it just ends up with the player cheesing mob and boss AIs. To fix this, here we change hiero trophy to spawn a hierophant chaser instead of a wall, which will increase player's DPS without offering them any protection.

However, this creates another issue: right now colossus is unbeatable with crusher without cheesing it with the wall due to it's shotgun attack which kills and dusts you point blank or 1 tile away, which is extremely unfair and unfun. To fix this, I add what should've been done from the start - make colossus telegraph it's attacks before starting them. Player has 1.5 seconds to react(unlike 3 seconds in the original PR which made the fight much easier) and dodge the attack or at least get away from the colossus to have a chance to survive.

Since this does make the fight significantly easier, colossus gets a special final attack during which it shouts "Perish" and uses different attacks. Unlike in the original PR, he can only use it once, so it's not as deadly and bullshit. This should make the fight more epic and similar to other bossfights which get cool attacks near the end of the battle.

Goodbye 4 GBP, you served me well.
2022-05-09 09:47:31 -07:00
Pickle-Coding
d1d9fe7c73 Freon combustion burn rate is now based on oxygen moles if there isn't enough oxygen for full burn. Fixes freon hotspots. (#66782)
For some reason the sign on the if check was reversed, which causes freon burn rate to be based on freon moles instead of oxygen moles if there is lacking oxygen for full burn. Not sure why it got flipped, but I'm just flipping the freon burn rates to correct it, so it should be based on oxygen moles if there isn't enough oxygen for fullburn.

Also for some reason freon fires checked if the holder was in a turf before reacting, and returning no reaction if it was not in a turf. This caused cold fire hotspots to kill themselves due to them not being a turf while making the gasmixture react, returning no gas reaction results then setting volume of fire to 0.

Fixes that by allowing freon to react in any gasmixture, but it can't create hot ice if it's not in a turf.
2022-05-09 09:31:47 -07:00
SmArtKar
c24f94f15a Separates regenerative core and wounded alerts (#66794)
This has been bothering me for ages, it doesn't make sense for wounded and regenerative core status effects to have the same icon and in the original PR author said that he didnt put regen core into the icon instead of the skull because he didnt want wounded status effects to have the regen core as its icon, so here you go. Wounded effects still keep their skull while regen cores have proper sprites.
2022-05-09 09:24:32 -07:00
Seth Scherer
3f094d417d Refactors cyborg drink refilling into a component (#66795)
Turned the cyborg drink refilling feature into a componebt to clean up
the code since it was pretty snowflakey. Also, organizes robot item code
and fixes some bugs that existed with said code (i.e. child drink
holding aparatuses were getting a beaker + their specific glass type
inside of contents)
2022-05-09 09:24:07 -07:00
Rhials
2b4d19aa4f Mindshock/mindshield modifications (#66727)
Reduces the length of the brainwashing from six minutes to two. Adds a second charge to the mindshock gland to compensate.

Makes it so that having a mindshield will protect you from the effects of a mindshock gland. The includes the passive effects that mindshock glands have on people near them, as well as the brainwash command from the mental interface device.

Since the implant itself is handling the brainwash broadcast, it will still succeed in broadcasting the message even if the gland holder is mindshielded. Mindshields only prevent you from receiving the brainwash message. Tinfoil hat functionality is untouched and remains the only way to block the message from being broadcast.
2022-05-09 09:19:22 -07:00
Ryll Ryll
653d75c72e Adds a check for border objects to projectile impacts (#66789)
When a projectile bumps into something, it decides what it actually hits by calling /obj/projectile/proc/select_target on that atom's turf. This lets the projectile prioritize either its original target or any mobs on the tile over whatever other crap is there, but does not account for border objects in the way of the projectile's path, which should always be the first thing the bullet hits.

This PR makes select_target() prioritize the bumped atom if it's a border object, so that things like directional windows and firelocks properly block incoming fire. /turf/Entered already prioritizes border objects in the relevant direction when picking what to pass to Bump(), so we don't need to recheck the direction.
2022-05-09 10:24:26 -04:00
private-tristan
14e45f5703 changes name of trait "STUNRESISTANCE" to trait "BATON_RESISTANCE", changes some descriptions (#66788)
it will make a whole lot more sense when you look at the trait and see what it does, instead of assuming what it does based on its very clear name
2022-05-09 10:19:52 -04:00
LemonInTheDark
230d399671 Ventcrawling improvements, performance and visual (#66709)
* Initial pipecrawl work

Ok so pipecrawl images were updating EVERY TIME YOU MOVED
This was not good mojo

What I've done here is twofold
First, I ensured pipecrawl updates only when the net changes. This
breaks the current implementation, but I intend on fixing that

Second, I moved our method of getting pipes to the spatial grid
This isn't that great at the moment, but I intend on adding support for
tracking entered/exited cells, which should make this much better

* Much faster pipecrawling processing, niceties

Adds a concept called a cell tracker datum.
It manages a list of cells a passed in bound is "inside", and when
queried will return a list of new cells, and old cells.

Because we only really care about maintaining an absolute window of
"CELLS WE ARE IN" and less about always removing cells we're not in, we
can manage a second window to prevent moving up and down on a cell line
causing a ton of updates.

Uses this concept to optimize pipecrawling significantly, from 3ms per
call before to roughly 0.03ms per call.

Also moves pipecrawl images to their own plane, so they don't overlap ui
elements

* Pipecrawling effects niceties, direction help

You can now move in more then one direction when pipecrawling
This works as expected, if you hold up and left, move up for a while,
and come to a fork, you'll go left

Added some effects to pipecrawling. It'll darken the lighting plane
slightly, so you get a nice effect instead of just fullbright.
Also added a color matrix and drop shadow to the pipe images, this way
they stand out a bit more.

You now glide between pipe moves, rather then moving instantly. This
doesn't effect your actual move rate, but it no longer feels jittery
with say, 60fps

* Bounds

* Fixes runtimes, cache something somethign sonic speed

* Reworks how being interested in the spatial grid is tracked

Rather then checking multiple variables on the atom to consider, we
instead check for the existence of a string key.

This key is used by a list on the spatial grid subsystem to retrive a
cached list of all of the atoms "types"

Doing this requires doing a bit of extra work in
important_recursive_contents code, but it allows us to separate being a
part of the spatial grid from using important recursive contents, which
is very nice.

As a consequence, I've had to unroll some lazylist macros in important
recursive contents logic. It's not ""that"" bad but it's not great
either.

Oh and this adds a slight cost to enter/exit cell, but it's minimal.
Basically, rather then checking for different features of a grid member,
we just iterate the list their string key points to. Very handy

So there's an added cost of a list copy and all, but we save the
headache of more types technically increasing the cost of
addition/removal.

I also made adding/removing from the grid into one "pulbic" proc rather then two
different ones for each operation, because it was starting to get silly

* waaa waa it doesn't compile

* chord -> coord

* Ensures important_recursive_contents is actually emptied on removal

* Removes soul

* Kyler's review

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

* Kyler's review 2

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

* Kyler's review 3

Moves some procs around, improves some documentation, catches a few
small issues

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2022-05-08 21:04:44 -07:00
Ghilker
4323540b6b Anomaly expansion - part 2 - Delimber anomaly (#66420)
A new anomaly is here! the Delimber anomaly!
contrary to its name, this anomaly doesn't do you dirty by removing all your limbs.
It will instead improve your body by randomizing your limbs with every species known! Isn't that amazing?!
Incredibly enough it can also change your organs, improving them and expanding them! (we think this is amazing!)
Now you can also harness that power by constructing a reactive armor with its core, but be aware to not get hit by an EM pulse, our insurance doesn't cover that.
A note on safety, this anomaly doesn't stop, will keep on pulsating until eliminated.
2022-05-08 14:19:43 -07:00
san7890
7517e7904f Mapping Marker Markets - They're All In Now (#66736)
bout The Pull Request

Hey there,

We had a lot of marker colors previously locked behind the in-game "random marker" mechanic that mappers couldn't really use since you'd have to varedit those shits. Now, instead of just... Burgundy, we now have:

Bronze!
Yellow!
Lime!
Olive!
Jade!
Teal!
Cerulean!
Indigo!
Purple!
Violet!
Fuschia!

All for your mapping enjoyment.

There were also a few instances of weird var_edited mapping markers that I also got rid of in this PR as well. I also split off markers out of lighting.dmi into their own .dmi.
Why It's Good For The Game

image

Gives mappers the power to use these sprites that we already have in the codebase in their conquest to make stuff look better.
Changelog

cl
add: On the mapping end, mappers are now able to add a wide range of funky new colors to maps. Keep an eye out, for they might just be coming to a station near you sometime soon.
/cl
2022-05-09 09:16:23 +12:00
B4CKU
e4abc65ecb Exporting computer parts fixes (and code improvement) (#66479)
This PR fixes exporting computer parts. Previously none of the unique export datums ever got a change to trigger, because of /datum/export/modular_part which, due to its include_subtypes = TRUE overwrote all of the other computer part exports.
2022-05-08 14:14:51 -07:00
Comxy
b525e9162a Titanium and plastitanium shards and weapons + missing textures. (#66544)
Ever been bothered by why titanium glass and plastitanium glass do not drop their own shard types? Well this is the perfect PR for you! Titanium and plastitanium glass shards never existed, and it is probably because the person who made glass way back in the day didn't have time to add these shards. Luckily I decided to add them after all this time. Every piece of code created has been carefully considered and copied form other code, so then you know it is good code. Also I added more tags, I looked at the guidelines and found that adding the fix and qol tags probably boosts my pr score so it will get merged.
2022-05-08 14:11:08 -07:00
RandomGamer123
6fb6096514 Fixes briefcase launchpads having no power when being in an area that does (#66457)
Also makes briefcase launchpads not drain power because it doesn't make sense for them to drain power if they work without power anyways
2022-05-08 12:10:05 -07:00
RandomGamer123
41d9cae97c Kudzu Rebalances v2 (#66295)
Increases kudzu's maximum mutation severity to 25 from 20.
Event-spawned kudzu now will have a flat +10 bonus to its maximum severity, meaning that it'll now range from 27 to 35 to compensate for it not being manually made.
Explosive kudzu mutation is now classified as maximum severity.
New "Temperature stabilisation" SEVERITY_AVERAGE mutation as a compensation for coldmos and the worry that cold environments can be too harsh to kudzu without the coldproof mutation by offering another alternative. It has the same power as the space heater at 40000J per atmos tick (101.325 kPa of air mix at 293.15K has 2079J/C of heat capacity, so around 20C change to that turf per atmos tick, even larger if its depressurised).
Nerfs the venus human trap's vine throw by making it have the cooldown of a regular baton (4 seconds vs previously 3), since the knockdown is only 1 second long this should be fair in exchange for keeping the 85 stamina damage in.
Doubles the mutativeness scale factor, meaning that the probability of kudzu mutating in general has been doubled.
Also adds some previously missing #undef's at the end of the file.

NEW CHANGES:
Kudzu spread rate has been changed, event kudzu is now guaranteed to spread at least 3 times per second (which is now actually adjusted for delta_time), and in general kudzu now gets a boost when it just spawned to help it not die instantly. A graph of the new formula is https://www.desmos.com/calculator/ynvbzspkmo.
Slightly more documentation to some of kudzu's variables
2022-05-08 11:55:04 -07:00
MrMelbert
6e098e2dba Refactors SSvote, makes votes into datums, also makes vote ui Typescript (#66772)
Makes vote into their own singleton datums.
Refactors the voting subsystem to accommodate.
Refactors the vote UI from JS to TSX (probably badly).
2022-05-08 11:52:29 -07:00
Iain Price
6cad1b0c61 Set steel_sheet_cost for tablets (PDAs) to 2 (#66773)
Destroyed player PDA / tablet drops half of the steel_sheet_cost as a stack on destruction. Having this set to 1 creates zero sized stacks of iron. Rather than fix the code that drops, I just upped this to make it drop 1 sheet on destruction, which is probably the intended effect.
2022-05-08 11:51:17 -07:00
Tim
e3e3abf690 Add silver requirement for surgery tools (#66414)
This adds silver as a requirement to make surgery tools from the autolathe. This idea was taken from #66278 when another person suggested it as an alternative which I liked. I made it so that half the amount of iron needed is the requirement for silver for most surgery items.

10 stacks of silver are needed to make a full set of surgery tools + iron and glass requirements.
2022-05-08 11:47:55 -07:00
Tim
f021767645 Add stamped requisition forms now give bonus credits (#66230)
Requisition forms now grant bonus credits when they are stamped by the appropriate stamp listed under "Authorization Required:" on the form. Initially I was just going to have the req forms give the same amount of credits as the manifest but I was convinced to lower both of them so it doesn't unbalance crate returns too much.
2022-05-08 11:28:26 -07:00
Watermelon914
37489698a1 Steal objective can now be cashed out early for less reward as soon as you place the bug on. Removes smuggling objective and adds a new 'Destroy Machinery' objective (#66771)
Steal objective can now be cashed out early for less reward, but completing the time in its entirety will give extra TC and reputation.
The smuggling objective has been removed and replaced with the 'Destroy Machinery' objective, which focuses on disrupting workflow by destroying stuff like protolathes, telecomms and research servers.
Made the easier steal objectives worth slightly less TC
2022-05-08 11:19:22 -07:00
Jeremiah
3c69aff4f3 Changes stripped_input to behave like tgui_text (#66757)
After a little bit of EVEN MORE misunderstanding, it's apparent that tgui text handles null differently, which meant fixing last whisper for tgui inputs users (chads) would mean that it would be broken for byond input users (lizards).

All jokes aside, this changes it so that text inputs will return null when you hit cancel or X for BOTH tgui and stripped_input.
2022-05-08 11:00:23 -07:00
Ghilker
b7bd579dee Supermatter zaps now are colored based on the power (#66639)
Supermatter zaps will now start with a red color on low power, shifting towards blue for higher powers
2022-05-08 10:57:30 -07:00
Tim
856669f25f Improve nearsighted code (#66327)
This refactors the nearsighted code into it's own proc that was salvaged from #66306. Just a code improvement with no game changes.
2022-05-08 10:53:02 -07:00
MidoriWroth
b94a924468 Adds even more foods! (#66380)
This is part two of my previous food additions, this time with much more variety. This will add:

Chips and salsa: An item I have long wanted to see on the list of things you can make, and a staple of Mexican dining.
Fish tacos: Adds more variety to seafood menus, and of course, because fish tacos.
French toast: Another addition I have wanted to see for a long time. The raw version will be prepared and then be required to cook on a griddle.
Updated stuffed cabbage/pierogi sprites, because I wasn't too pleased with my previous ones.
Seaweed sheets: Made at a biogenerator and are used for making sushi.
Vegetarian sushi: Straightforward vegetarian option for sushi, can be sliced into four pieces.
Spicy filet sushi: An omnivore specific sushi with a bit of spice, can be sliced into four pieces.
French silk pie: A decadent desert that finally adds a form of chocolate pie. Sliceable.
2022-05-08 10:40:21 -07:00
John Willard
6d76199a85 Refactors how bots scan for stuff (#66681)
Refactors how bots scan for stuff and also improves Cleanbots' code.

This started off as a Cleanbot refactor but I got too-deep into how it scans for stuff, so I decided to instead focus my PR on that first since it's something I want to tread carefully with.

removes oldloc var from Cleanbot, Medibot and Floorbot, because it was all unused.

I didn't even notice how bad this was before, because Secbots use their own snowflake thing instead of scanning like all the other bots do, which sounds like a good future PR.
2022-05-08 10:36:40 -07:00
Fikou
a5de76df72 Adds an ancient altar to maintenance. (#66666)
Adds an ancient cult altar to the depths of maintenance.
It can create products woven by the ancient cultists.
2022-05-08 10:36:22 -07:00
Ghilker
c8f27896c0 Supermatter cascade round-end (#66659)
This PR adds the resonance cascade to the SM (idea ported from vg but with total rewrite)

The resonance cascade will turn reality into crystals that devours and destroy everything.
It can be triggered by delaminating the SM when is in contact with hypernoblium and antinoblium, both at over 40% and with as many moles to trigger a singulo delamination. The cascade can't be triggered if the SM is already under 80% integrity and if at any point any of the gases gets under 40% or the total gets lower than the amount for singulo, it will stop the cascade and can't be retriggered unless you reset the SM to over 80% integrity.
2022-05-08 10:27:49 -07:00
Ebb-Real
e5909ce738 Bandana GAGS follow-up (#66605)
A lot of bugs came to my attention with bandana dyeing after #65760 was merged. This should cover all of them.

fixes #65947, by making you unable to dye bandanas while they are adjusted. You also can't dye bandanas that have skulls or stripes on them since that causes all sorts of problems with GAGS and switching from multiple layer to only 1 and same thing reversed.

When you dyed a bandana and then adjusted it into a neckerchief and back it would reset its name to what it was originally before being dyed. This was because it used the initial proc. I fiddled around with trying to catch the dyed name in a var but it would get way too complex and unnecessary so I came up with the idea to just make a visual change instead of name change, by making the bandana slightly wider like a neckerchief would be when adjusted.
2022-05-08 10:24:44 -07:00
Ghilker
243747057a Freon reaction rebalance and improvements (#66562)
This is the first of hopefully many prs to fix and improve our current reactions to be sane and also easier to understand and explain to players.
Current freon reaction is a mess of numbers and incoherent amounts, with consumptions made up and without a logical sense.
This PR fixes that by using proper equations and amounts for ratios and formation.
Minimum amounts for gases changed from random 40/20/20, to MINIMUM_MOLE_COUNT * 6/1/3 (encourages players to keep the ratio later)
2022-05-08 10:19:49 -07:00
Seth Scherer
9ac655593e Splits up _mecha.dm, sorting procs into more specific files (#66662)
This file sucks. It's big and full of specific stuff that could be contained elsewhere. I think I split off the procs into appropriate files, I'm sure it could be shortened even further but I couldn't think of where the remaining procs could go, so I left them where they were.
2022-05-08 10:16:53 -07:00
Ghilker
2006afe7c1 SM delamination flux nerf (#66752)
Lower the amount of anomalies spawned from the SM delamination
Lower the probability of getting a flux anomaly
Flux anomalies spawned by the SM in this way will have the explosion size reduced by 4
2022-05-08 10:15:00 -07:00