Commit Graph

60001 Commits

Author SHA1 Message Date
SmArtKar
73daa9dc66 Fixes staff of storms not aggroing mobs (#66819) 2022-05-13 01:36:04 -04:00
GuillaumePrata
4904ac7fa7 Surgery tools can be recycled for silver. (#66901) 2022-05-12 22:41:50 -04:00
ErdinyoBarboza
6f450d93a6 New drink sprites aka Drink Desouling (#66538)
- All drinks and bottles have been resprited
2022-05-12 22:39:40 -03:00
wesoda25
ba9b1d4786 Allows ethereals to ghost out of crystallization (#66853)
* moves around tgui question so it doesnt piss off linter or someting idk

* code clean up
2022-05-12 15:12:30 -04:00
GuillaumePrata
a2d135c456 Goodbye stack/medical (#66898)
Okay, why removing instead of giving it a sprite?

Simply put, those items are all small and there is no reason that you need to quick draw a suture/ointment and if you do, the medical belt can carry 7.
Allowed/exoslot items should be either medium/big/bulky sized items (Syringe gun) to make it worth inventory wise or items that you can quickdraw multiple times (Health Analyzer) to make your life easier.
Medical stacks are neither and would just get in the way if you try to quickly put them into a bag/pocket/belt and instead it goes into your exoslot where you would normally want to carry more valuable things like the syringe gun.

This doesn't feel big enough for a fix, spending 5 seconds making a list alphabetical doesn't few worth of code improvement, I will label this as QoL and if someone say it is a balance change I will follow you in game and keep placing shitty small items in your inventory via reverse pickpocketing.
2022-05-12 11:56:16 -07:00
John Willard
daf3fd6119 Makes cult's objectives load before their antag ui (#66899)
Makes Cultists get their objectives from their team BEFORE their parent's on_gain runs, giving and triggering their antag UI. This means players no longer have to close and reopen the page to see their actual objectives.
2022-05-12 11:55:49 -07:00
san7890
e38300ac2d Adds Ceilings To IceMoon Ruins (#66836)
Hey there,

On IceBox, sometimes, ruins could spawn below chasms that we had, or below a ruin that spawned in more openspace chasms. This would cause numerous Active Turfs on initialization, and I've seen the number go up to 150 active turfs. This change should reduce the number by a good margin.

I decided to make the ceiling mineral-rich snow to ensure it had that "buried" appearance, and would hopefully look nice to have that odd chance for a underground ice ruin create a natural bridge that just needs to be excavated.
2022-05-12 11:30:14 -07:00
John Willard
9ae3ef56a9 Lathe taxes now checks departmental flags (#66896)
Lathes and designs now use departmental flags rather than some random misc define that wasn't used anywhere else (which this PR is deleting), this allows us to cross-reference it with job bitflags to check whether or not a job should pay lathe taxes. Nothing else is effected by this change. Important changes are in code/modules/research/machinery/_production.dm if you want to get straight to the point.
2022-05-12 09:22:46 -07:00
Ghilker
f134d777ca Remove organs from delimber anomaly (#66888)
* Remove organs from delimber anomaly

* Remove organs from reactive armour
2022-05-12 11:09:15 -04:00
Seth Scherer
035373e746 Repaths /obj/item/clothing/mask/animal/rat to make more sense (#66860)
* Repaths `/obj/item/clothing/mask/animal/rat` to make more sense
It was used as the parent for a lot of other small animal masks simply
because of its flags and a single proc, so i repathed it to
`/obj/item/cltohing/mask/animal/small/...` to make more sense

* adds an updatepaths

* fixes the got damned maps
2022-05-12 10:49:02 -04:00
Tim
13d044cff7 Fix wizard modsuit not having antimagic protection (#66890)
* Fix wizard modsuit not having antimagic protection

* Change TRAIT_ANTIMAGIC_NO_SELFBLOCK comment
2022-05-12 10:46:55 -04:00
Ebb-Real
da8934cbcb Vape GAGS (#66859)
* what am i gonna do with the open panel overlay

* subtypes and color presets
2022-05-12 06:24:50 -04:00
Tastyfish
d8d29f6701 Test all maps in parallel integration tests (#66864) 2022-05-12 00:12:02 -07:00
MacBlaze1
7f79efb2bd fixes dizziness causing hard crashes (#66861)
this pr fixes dizziness causing hardcrashes and sending your view 50 tiles in both x and y
2022-05-11 20:54:43 -04:00
John Willard
15034505b9 Makes constable helmet a subtype of head (#66872)
Moves constable hats to be a subtype of head directly, rather than head/helmet, because they aren't helmets, they're hats, and helmet block your hair which looks odd for something that isn't actually covering it.
2022-05-11 20:47:44 -04:00
John Willard
cc57407c79 [MDB IGNORE] Removes tablet cartridges + reworks a ton more (#66505)
- All tablets who previously had apps in a cartridge now has them built-into their tablet instead. This means it costs space for it.
- Rebalances the sizes of several apps to help them fit on Command tablets (Cargo ordering costed 20!!)
- Removes tablet cartridges, they've been reworked into a regular old portable disk (the same you use for toxins/borgs)
- Removes Signaller (the module required to run the signaller app) from tablets (likely will remove more in the future)
- Refactors the health/chem scanning app to not be as bad
- Dehardcodes detomatix resistance
- Ability to send PDA's to all is now tied to your access rather than a cartridge
- Moves 'eject disk' button to the very top of the UI
2022-05-11 12:04:11 -04:00
GoldenAlpharex
a3c8013b45 Refactors how legs are displayed so they no longer appear above one-another when looking EAST or WEST (#66607)
So, for over 5 years, left legs have been displaying over right legs. Never noticed it? Don't blame you.
Here's a nice picture provided by #20603 (Bodypart sprites render with incorrect layering), that clearly displays the issue that was happening:

It still happened to this day.
Notice how the two directions don't look the same? That's because the left leg is always displaying above the right one.

Obviously, that's no good, and I was like "oh, that's a rendering issue, so there's nothing I can do about it, it's an issue with BYOND".

Until it struck me.

"What if we used a mask that would cut out the parts of the right leg, from the left leg, so that it doesn't actually look as if it's above it?"

Here I am, after about 25 hours of work, 15 of which of very painful debugging due to BYOND's icon documentation sucking ass.

So, how does it work?

Basically, we create a mask of a left leg (that'll be explained later down the line), more specifically, a cutout of JUST the WEST dir of the left leg, with every other dir being just white squares. We then cache that mask in a static list on the right leg, so we don't generate it every single time, as that can be expensive. All that happens in update_body_parts(), where I've made it so legs are handled separately, to avoid having to generate limb icons twice in a row, due to it being expensive. In that, when we generate_limb_icon() a right leg, we apply the proper left leg mask if necessary.

Now, why masking the right leg, if the issue was the left leg?
Because, see, when you actually amputated someone, and gave them a leg again, it would end up being that new leg that would be displayed below the other leg. So I fixed that, by making it so that bodyparts would be sorted correctly, before the end of update_body_parts(). Which means that right legs ended up displaying above left legs, which meant that I had to change everything I had written to work on right legs rather than left legs.

I spent so much time looking up BYOND documentation for MapColors() and filters and all icon and image vars and procs, I decided to make a helper proc called generate_icon_alpha_mask(), because honestly it would've saved me at least half a day of pure code debugging if I had it before working on this refactor.

I tried to put as much documentation down as I could, because this shit messes with your brain if you spend too long looking at it. icon and image are two truly awful classes to work with, and I don't look forward to messing with them more in the future.

Anyway. It's nice, because it requires no other effort from anyone, no matter what the shape of the leg is actually like. It's all handled dynamically, and only one per type of leg, meaning that it's not actually too expensive either, which is very nice. Especially since it's very downstreams-friendly from being done this way.


It fixes #20603 (Bodypart sprites render with incorrect layering), an issue that has been around for over half a decade, as well as probably many more issues that I just didn't bother sifting through.

Plus, it just looks so much better.
2022-05-10 23:49:06 -07:00
MrMelbert
6f5f012441 fixes withdraw stages, sort of (#66848)
So, addiction checks the current_addiction_cycle exactly to see if it can enter a new stage of addiction.
current_addiction_cycle starts at 1 and increased by delta_time (2) every tick.

Do you see the issue here?

current_addiction_cycle would never be equal to 60, and it would never enter stage 1 of addiction.
It skips from 59 to 61.

The other addiction stages take this into account, but stage 1 doesn't.
2022-05-11 00:59:58 -04:00
RandomGamer123
9ea34bcfaa Fix erroneous 'the' in some clown car messages (#66842) 2022-05-11 00:58:20 -04:00
MrMelbert
86f11d96a7 Fixes "high blood pressure" status effect, and corrects the spelling of "opioid" (fixing another bug) (#66849)
Status effects that are intended to be added, are actually added.
Opioid is now spelled correctly, consistently.

This actually caused a bug: Opioid end_withdrawal was never called because it's path was spelled correctly and the others weren't.
2022-05-11 00:57:15 -04:00
MrMelbert
29bfa42779 Converts jittering to status effect, striking yet another mob level status value (#66852)
Converts jittering to status effect, striking yet another mob level status value
2022-05-11 00:56:29 -04:00
RandomGamer123
c2f0c44bd4 Fix teleport rune portals harddeleting (#66841)
* Fix teleport rune portals harddeleting
2022-05-11 00:30:37 -04:00
GoblinBackwards
3dac11dc3a Removes AOE hit detection from fireball (#66828) 2022-05-10 20:45:06 -04:00
Ryll Ryll
e8f2441630 Minor twohanded component refactor (#66791)
The two handed component, while useful, has quite a bit of bloat that gets replicated whenever a new class of 2h items is added.

This PR cuts that bloat by replacing the use ofCOMSIG_TWOHANDED_WIELD and COMSIG_TWOHANDED_UNWIELD as ersatz callbacks with actual callbacks, the replacement of various var/wielded defs on items with a check for HAS_TRAIT(src, TRAIT_WIELDED), and the removal of any now-unnecessary on_wield()/on_unwield() procs that simply toggled those wielded vars
2022-05-10 20:09:23 -04:00
Tim
d423937bd8 [NO GBP] Fix mapped cardhands not initializing (#66678)
* Fix mapped cardhands not initializing

* Refactor cardhand Initialize proc to be readable
2022-05-10 15:39:59 -07:00
Ghilker
26e7cf546a fix delimber anomaly making not being made in refinery (#66835)
* fix delimber anomaly in refinery
2022-05-10 15:07:30 -04:00
Iamgoofball
2306b93c3e The supermatter cascade now takes one minute to end the round instead of 5 minutes to end the round, to put it on par with Blob and such. (#66832) 2022-05-10 15:04:38 -04:00
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