Commit Graph

58 Commits

Author SHA1 Message Date
Daniel Hultgren
0741b1977f Cleanable cleanup (#52477)
* Don't initialize the atom_colours list on atoms until it's actually needed

* Moved bloody_hands var to mob/living/carbon/human instead

* Added COMSIG_COMPONENT_CLEAN_RADIATION signal to reduce moms spaghetti

The shower and suit storage unit now calls this signal instead of either doing it manually or doing it via the washed proc

* Cleaned up carbon washing, renamed washed to wash

* The wash proc now doesn't take the washer as first arg because that wasn't used anywhere
* The wash strength is no longer optional
* Carbons now overrides the wash proc instead of using the signal
* Properly check for obscuredness before washing any equipped items
* Properly wash all items and bloody hands etc
* Added clean_lips proc for humans for cleaning any lipstick

* Cleaned up washing. Washy stuff now calls wash instead of calling the clean signal directly

* Renamed is_cleanable to ismopable, gives this category a more fitting purpose. Many things beyond floor decals are cleanable. It is now also determined using the atom layer instead to make it more generic.
* Properly utilize the is_cleanable define
* Added wash override for turfs where they also wash any mopables on the same tile
* Space cleaner and cleaning element etc now simply washes the mob instead of doing its own manual cleaning on ~some~ equipped items

* Non-component washables now simply override wash instead of registering for the clean signal

* Fixed some left over clean signal registers not returning true

* Added clean_strength var to space cleaner

* Moved human wash proc next to the other washing procs

* Also wash glasses and mask if not obscured when washing face

* Fixed attempting to "scoop up" cleanable decals using a rag

* Fixed plasmaman spacehelm icon not updating when washed

Also removed a duplicated worn_overlays proc

* Fixed head icon not updating when washing lipstick

* Moved radioactive clean signal register to where it should be

* Added atom radiate VV verb for debugging

* Redesigned the CLEAN constants into a more sensible flags setup

This makes it more dynamic, cleaning apparatuses can clean more specific than just a cleaning strength.

* CLEAN_TYPE_* flags indicate a specific cleanable, such as blood, fingerprints or disease
* CLEAN_* consts consist of a combination of cleaning types to make cleaning apparatuses have a consistent behaviour on what they clean

* Fixed broken rad removal logic in showers

* Apply suggestions from code review

Co-authored-by: Rohesie <rohesie@gmail.com>

* Removed unneccesary bool from sink code

* Fixed wrongly named variable in turf wash

* Renamed bloody_hands to blood_in_hands

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-07-29 09:31:38 -03:00
Ryll Ryll
46dd89b07a [READY] Wounds part 2: Piercing wounds, dismemberment changes, housekeeping (#51786)
* pierce the heavens

* starts doing projs

* continue pierce

* before armor

* before sharpness redefine

* rename sharp defines, before further implementation

* finishing undoing atk_type back to sharpness

* neatens up sharpness defines, FALSE -> SHARP_NONE

* more piercing, removes brute damage bleed, bubblegum no longer wound

* starts letting embeds get in on the fun

* half with embed

* work on dismembering

* continued embed work

* more moving bandaging to limbs

* more dismemberment work

* removing embed pierce stuff

* tweaking bullets

* more docs and work on dismemberment

* spans, piercing, guns

* dismemberment and scar fixes

* bee changes

* bullets embedding

* more bullet and dismember work

* dismemberment, surgery, piercing, formaldehyde,

* pleases travis

* pierce smite

* nicer on blood

* Auto stash before rebase of "tgstation/master"

* more neatening

* wounds only consider up to 35 damage, wounds on l6 and 762

* updates hulk

* balance

* defines

* lower slug to 50 brute to accommodate wounds

* adds differentiation for having flesh/bones/both in mobs

* moves scar descs to json, renames organic_state

* excises removed healing skill

* fixes logs, inconsistencies, some balance changes

* untab

* slight compress

* a

* kills pointed global list

* dmdoc

* halfway through roh

* finishes roh review

* okay NOW i finished roh's reviews

* roh roh roh your boat

* gently down the stream

* global lists

* list ops, fix scanner for bone gel improvised fix

* travis moment

* sounds added and moved

* pellet clouds can join the fun fully, slight gun balancing for wounds

* doc moment

* unconflicts myself

* update hulk

* Update code/_onclick/item_attack.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* crying ascii face

* final rohview

* oops

* final final

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-07-23 23:19:30 -03:00
ShizCalev
4b6500fb67 Makes all anchored changes use setAnchored(), COMSIG_MOVABLE_SETANCHORED now only sent if an AM's anchored var has changed for more reliable usage. (#52254)
* Converts everything to use setAnchored() + other fixes

* Fixed singulo debug

* singulo again

* forgot to move the vv_edit proc

* caught that this time :)

* changes

* Update code/game/atoms_movable.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-07-21 02:20:26 -03:00
Ryll Ryll
20fd4822f2 Simplifies ear damage, allows empaths to properly spot deafness (#51436)
About The Pull Request

Ears currently behave strangely compared to other organs, especially their most closely related sensory organ, eyes. They only assign a deafness trait for quirks, mutations, and clothing (which prevents empaths from noticing hearing damage deafness), have lots of unnecessary procs for dealing/assessing damage, and several audible events check istype() for earmuffs specifically for whether a mob can hear something.

This cuts down on all of that. I removed most ear related procs from mobs, tied deafness explicitly to TRAIT_DEAF (and added a new source for hearing damage), and generally neatened up related code. As a direct result, empaths can now detect deafness from hearing damage, as I assume was intended. I also fixed a bug with examining with med HUD's or as an observer not showing a person's quirks, though I'm not sure people will really care about the info with med HUDs. Also, full revives/regenerating organs now remove all damage from existing organs rather than only trying to replace missing ones

In addition, Inacusiate and Sensory Restoration no longer instantly cure all hearing damage when applied, they now rapidly decrease both ear damage and deafness each tick. This isn't really a fix, but I figured I'd throw it in since I think cobby wanted to move away from instant fix microdose chems, and I punted the restoreEars() procs anyway

Fixes: #51435
Fixes: #48974
Why It's Good For The Game

Brings ears in line with how other organs operate, makes them easier to understand, and restores (what I assume to be) intended functionality for the empath quirk and medhud/observer examines
Changelog

cl Ryll/Shaps
fix: Empaths are able to detect deafness derived from hearing damage
tweak: Inacusiate and Sensory Restoration no longer instantly heal all hearing damage when applied, instead rapidly removing both ear damage and deafness.
fix: MedHUDs and observers now display quirks as intended on examine
/cl
2020-06-19 10:51:06 +12:00
Ryll Ryll
e461b24ee3 Removes turf embedding (#51571)
* Auto stash before rebase of "tgstation/master"

* updates for wounds

* more cleaning up

* reexamines examines
2020-06-16 13:39:47 +02:00
nemvar
cf28d15dc5 Chunky waddle (#51383) 2020-05-31 23:04:07 -03:00
spessman-007
ab84042f94 [READY] Improve spelling (#51134)
* Improve spelling

* Spell isn't, ain't, shouldn't, hasn't, wasn't correctly

Co-authored-by: NewSta <spessman-007@users.noreply.github.com>
2020-05-25 02:13:37 +08:00
Ryll Ryll
a4b69dbbbb Projectiles embed their shrapnel in the locations they hit (#50990) 2020-05-08 19:03:25 -07:00
Ryll Ryll
5c174800fb Grenades and projectiles can have shrapnel and embed, all carbons can suffer embeds, some bullets can ricochet, sizable refactor of embedding (#49634)
About The Pull Request

It annoyed me that we have a perfectly good frag grenade item, and a perfectly good shrapnel component, but no crossover episode between the two. This remedies that, and does a lot, lot more.

dreamseeker_2020-03-30_05-01-13.png

dreamseeker_2020-03-30_05-01-26.png

Big points:

    Adds new component: pellet_cloud, which can be used by ammo casings, guns, and landmines to spray shrapnel and display aggregate hit messages ("You're hit by 6 buckshot pellets!" vs "You're hit by the buckshot pellet in the X" x6). All gun ammo that shoot multiple pellets now use this component on firing.
    Adds stingbangs, premium less-lethal grenades that shoot off lots of stinger pellets, to cargo. Frag grenades are also reworked to have smaller booms, but shoot off lots of shrapnel shards. You can jump on top of these grenades to absorb a portion of the shrapnel to save those around you! There's an achievement for dying this way, called "Look Out, Sir!"
    Projectiles can now embed items/shrapnel. Adds .38 DumDum ammo to cargo that does less damage and has negative armor pen, but can embed in people. This is the only ammo that currently embeds.
    Bullets can now ricochet off walls, structures, and machinery (harder surfaces are more likely to ricochet). Only standard .38 and Match Grade .38/.357/L6 ammo can ricochet, with Match Grade being much better at ricocheting. You can buy Match Grade .38 from cargo and Match Grade L6 ammo from the nuke uplink, while Match .357 is admin only.
    Armor now protects you from harmful embeds, taking the better of the bullet/bomb armor on the affected limb. Armor penetration can modify this of course, and many blunt embeds like stingbangs and DumDum bullets are significantly worse if you have even 1 armor.

Other misc fixes/changes

    Refactored the embed element a bunch and fixed it creating new elements for every instance rather than expected bespoke behavior. There are new /obj/item helpers for modifying and adding embedding.
    Fixes #49989: Spears can no longer embed in turfs cause their sprite is annoying to me, it's generally harder for most things to embed in turfs
    Fixes #49741: New carbon helpers for removing embedded objects
    Fixes #46416: Handles embedded objects getting qdel'd or moved while embedded
    Renamed the old shrapnel component for RPG loot to MIRV to avoid confusion
    Repathed frag grenades from under minibombs to under base grenades, and added explosion vars to base grenades

Why It's Good For The Game

Fixes a bunch of janky design with embeds, adds lots of new avenues for projectile and grenade variety, ricochets and collateral damage are fun!
Changelog

🆑 Ryll/Shaps
add: Adds stingbangs to cargo (and one in the sec vendor premium), premium less-lethal grenades that shoot off a giant swarm of stingball pellets to help incapacitate swarms of people in tight quarters. You can jump on top of a live one to be a hero and absorb a bunch of shrapnel, same with frag grenades. There's even an achievement for dying to a grenade you jumped on!
add: Projectiles can now embed in people! Or at least grenade shrapnel and the new .38 DumDum ammo, now available in cargo, can. DumDum rounds excel against unarmored targets, but are pricey and do poorly against armored targets.
add: Bullets can now ricochet! Or at least, standard .38 and the new .38/L6 Match Grade ammo can. Match Grade ammo is finely tuned to ricochet easier and seek targets off bounces better, and can be purchased from cargo (for the .38) or nuke ops uplink (for the L6), but standard .38 ammo has a chance to ricochet as well.
tweak: Frag grenades now have smaller explosions but shoot off a bunch of devastating shrapnel, excellent for soft targets!
tweak: Shotguns and other multi-pellet guns now print aggregate messages, so you'll get one "You've been hit by 6 buckshot pellets!" rather than 6 "You've been hit by the buckshot pellet in the X!" messages. Bye bye lag!
balance: Armor can now protect against embedding weapons, taking the best of either the bullet or bomb armor for the limb in question away from the embed chance. Some weapons are better at piercing armor than others!
/🆑
2020-04-03 16:58:38 +13:00
kevinz000
d5cd073887 Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-03-17 09:48:02 -07:00
Time-Green
c04abab2bf [READY] Makes plumbing mappable and reworks hiding (#49644)
🆑
tweak: Ducts can now be hidden under tiles
code: tile hiding is now an element and way cooler and sexier
/🆑

Ducts can now be hidden under tiles
Plumbing machinery connects can now be hidden aswell
Plumbing can now also be properly mapped in without breaking anything
Plumbing component now uses the normal overlay systeem instead of being a weird exception

You can now add the /datum/element/undertile element to instantly make something hidable under tiles when appropriate.
2020-03-16 20:37:59 +13:00
kevinz000
2c25b2cdfd Merge branch 'master' into movespeed_modifiers_take_two 2020-03-10 00:59:01 -07:00
spookydonut
beca456c0f Add new lints (#49751)
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-03-09 22:13:48 -07:00
Ryll Ryll
f9963454db Adds tackling (VIDEO INSIDE) (#49476)
* huthtuthuthuthtuhtuthuthuthuthtuthuthuthtuthut

* documents and expands, adds new glove types

* Adds slamming into tables and neatens up throwingdatum handling (+stuff)

* bit less squishy

* adds sprites, offbrands, swaps most combat insuls for tacklers

* adds dolphin and rocket gloves to BEPIS

* changes dna to traits, buffs tackling

* same as last commit but moreso

* updates docs, nerfs stuns

* vending machines, better docs

* window tackles for good measure

* gets window splats working

* polish off

* LAST DAY OF SCHOOL
2020-03-06 11:17:52 +08:00
Emmett Gaines
33458640dc Add lints for "new" override prevention feature (#49672)
* Add lints for "new" override prevention feature

* bEsPoKe

* i'm an idiot

* arg index
2020-03-05 10:22:19 -05:00
kevinz000
350b9b7a29 Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-03-01 06:50:37 -07:00
spookydonut
cea5360e4b Updates codedocs with links (#49497)
About The Pull Request

Updating the best written documentation with the new linking feature.
2020-02-25 08:17:45 +13:00
spookydonut
1a9ddbee5f Merge pull request #48959 from Ryll-Ryll/embeddead
Refactors embedding, adds harmless embeds, sticky tape, admin buttons to make everything embeddable
2020-02-24 15:43:36 +08:00
Ryll-Ryll
6d379bf62b fixes a few bugs 2020-02-24 01:09:36 -05:00
Ryll-Ryll
7e384752e6 moves topic, cleans code, adds sticky tape to maint loot 2020-02-23 06:50:18 -05:00
Ryll-Ryll
0ecd64c74d e 2020-02-22 04:27:17 -05:00
Ryll-Ryll
cb3b82bdc1 lets you update embedding behavior, also makes red pens faster 2020-02-22 02:15:19 -05:00
kevinz000
df38abf7a1 Merge branch 'master' into movespeed_modifiers_take_two 2020-02-21 01:38:09 -07:00
kevinz000
851f5f2939 Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-02-18 16:44:19 -07:00
Ryll-Ryll
8566aa8d60 still gotta figure out how to update embedding stats on the fly 2020-02-18 02:06:35 -05:00
Ryll-Ryll
1fae3d4c22 new beginnings 2020-02-18 02:06:35 -05:00
ShizCalev
7209ac3c93 Removes unnessacary math defines 2020-02-17 23:09:09 -05:00
JJRcop
a1392847bd Remove ismovableatom macro (#9) 2020-02-17 15:03:16 +01:00
kevinz000
256d20cde0 Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-02-17 05:50:27 -07:00
Emmett Gaines
9e34b3d6a1 Supports named arguments in AddComponent and AddElement (#49098)
AddComponent/AddElement now support named arguments. This requires passing around an argument list instead of using actual proc args which a bit gross but we can blame byond for forcing this.

InheritComponent uses mirrored init arguments instead of an argument list which means no more accessing it via index to get to the same arguments as in init.

As a small bonus I restructured dcs defines to be a bit more manageable. Mainly just splits them into separate files and gives them their own folder.
2020-02-17 17:57:52 +13:00
SteelSlayer
21fd1b25ee Adds the dunkable element (#49192)
* Adds the dunkable component

* Makes this an element instead

* early return

* makes this a bespoke element

* istype check for container
2020-02-07 10:30:06 -05:00
kevinz000
e13b3352bf Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-01-24 13:25:09 -07:00
spookydonut
3195ceaa22 Update SpacemanDMM suite to 1.2 (#48785)
* Update SpacemanDMM suite to 1.2

* Fix new lint errors
2020-01-16 11:49:39 -05:00
kevinz000
c91e19c442 Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-01-11 22:17:04 -08:00
kevinz000
ce02e45ecb get rid of refactor tags 2020-01-11 22:12:07 -08:00
kevinz000
63d54e3e4f PAIN 2020-01-11 22:11:29 -08:00
MrPerson
e22560a346 update_icon() improvements (#48669)
* update_icon() improvements

Fixes some update_icon() calls to properly call parent and use update_overlays() and update_icon_state().

The rest of obj/item fuck it

* Suggested fixes, also passes the linter

* I always forget . = ..() is faster than return ..() FOR SOME FUCKING REASON

* Actually this is better

* Signilzes datum/action to update its icon when its connected item does.
2020-01-11 23:46:43 -05:00
kevinz000
46451e23ea move stuff 2020-01-10 07:27:44 -08:00
kevinz000
bb95b2a870 changes 2020-01-09 19:13:30 -08:00
skoglol
95b4d04185 Fixes waddling 2020-01-02 14:20:24 +01:00
81Denton
557d5f3266 Merge pull request #48505 from ninjanomnom/waddle-element
Makes waddling an element
2020-01-01 17:19:17 +01:00
Emmett Gaines
c6e71c5384 Makes forced_gravity an element 2019-12-31 13:00:47 -05:00
Emmett Gaines
119c4ebca3 Makes waddling an element 2019-12-31 12:55:53 -05:00
Ryll Ryll
958dedc3d1 Adds beating vending machines for free stuff/getting crushed to death (#47799)
* what a way to go

* buffs crush

* squish

* better crits

* more flavor

* buckle

* per action

* better pin

* better pin and respects ranged cheese
2019-11-30 03:57:03 -08:00
KomradeSpectre
db878e848b Adds a new element, Self-Knockback. (#47938)
* Adds a new element, Self-Knockback.

* Squashes a potential edgecase runtime in projectile_selfknockback before it can even happen.

* Allows item_selfknockback to interact with dense turfs now.

* Made self-knockback utilize the Element Bespoke flag to allow custom force and speed values on attachment.

* fixes newline issue, adds a usage comment.

* fixes the newline issue in self-knockback for real this time, thanks TortoiseGit.

* i swear on god almighty if this doesn't fix the newline issue, i'll eat a shoe.

* Testing newline lint
2019-11-25 21:34:14 +00:00
Emmett Gaines
12a4983b75 Adds a flag for bespoke elements (#47807)
* Adds a flag for bespoke elements

And applies it to firestacker

* Improves bespoke documentation
2019-11-25 17:53:00 +01:00
Emmett Gaines
5481515dff Removes the non bitflag slot defines (#47742)
Removes the non bitflag slot defines
2019-11-17 17:52:11 -08:00
MrPerson
cccdcc6d04 Shooting a BSA beam at the SM will make it delaminate (#47748)
* BSA beam delams the SM via a new signal

Adds a BSA beam blocker element that blocks bluespace artillery beams. SM and singulo have it.

* Shut up Travis

* Destroy the singularity when it's BSA'd

* No shooting nar-nar with BSA

* Removed an incorrect and unhelpful comment
2019-11-17 19:22:51 +01:00
spookydonut
cca969feea change these away from defines (#47105) 2019-10-17 10:10:51 -04:00
Qustinnus
a394ccdc2b Material datum chairs & tables and applies materials to all items (Now with less pain for mining & RnD) (#46525)
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can)

this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc.

also applies materials to everything, with fixes, which can close #46299
2019-10-08 11:06:02 -04:00