Commit Graph

96 Commits

Author SHA1 Message Date
Andrew 0818d6ae4c Crafting/Cooking menu update (#71779)
## About The Pull Request

Updated crafting menu, adding a lot of new functions and recipes that
were not in the crafting menu before.

<img alt="cult"
src="https://user-images.githubusercontent.com/3625094/206009533-aec3a1dd-cbe5-45eb-8515-1b75fabb65c5.PNG">

<img alt="nH77dLyyGx"
src="https://user-images.githubusercontent.com/3625094/206009786-b6706f70-0599-40bf-b051-8f499de43abd.png">


![image](https://user-images.githubusercontent.com/3625094/206623881-12d8abfc-de5e-458e-a01c-3daac8dbe9bd.png)


https://user-images.githubusercontent.com/3625094/206009841-738e4a03-0660-45b7-8d83-15eeb6501967.mp4

## Why It's Good For The Game

It is easier to use, and it has a lot of recipes that were spread
throughout the game, some of which weren't even on the wiki.
Crafting and cooking now count about 1200 recipes in total, including
conditionally available ones.

## Changelog

🆑
qol: Rewrote the crafting/cooking menu UI
qol: Split crafting and cooking menus in two different menus
qol: Crafting is no longer blocking the entire UI, only the "Make"
buttons are disabled
qol: Added stack crafting recipes to the crafting menu
qol: Added cooking recipes that were absent in the crafting menu before
(tool recipes, machine recipes, reactions)
qol: Added option to search recipes by title
qol: Added option to filter recipes by required materials/ingredients
qol: Added food types to the cooking menu, highlighting diet of your
species (liked, disliked foods)
qol: Added total nutrition value of the result to the cooking menu
qol: Added option to filter cooking recipes by the food type of the
resulting food
qol: Added "Can make" category that lists all currently craftable
recipes throughout all categories
refactor: changed categories and reshuffled some items in them
code: Reagents now have default container to get an icon from the
reagent datum
code: Objects now have `desc_controls` var for OOC information about
mouse controls that are visible on examine, but not in the description
fix: Fixed alignment on many food icons
fix: Fixed missing icon for beef stroganoff
/🆑

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2022-12-25 12:27:49 -08:00
LemonInTheDark 44c61dfed6 Fixes a bunch of sidemap/plane cube issues (#72178)
## About The Pull Request

[fixes solor trackers offsetting wrong, and panels not using plane
offsets](https://github.com/tgstation/tgstation/commit/8f461ab8ec17df5c158a564a3b3d92c165eb88f5)

[fixes cyborg hats offsetting phyiscally over their
head](https://github.com/tgstation/tgstation/commit/5fd5b4240efe71f0d8ac9a5b9342780cc2540a87)

[fixes reflector parts z fighting with their neighbors. if we physically
offset them, they'll have nothing to fight
with](https://github.com/tgstation/tgstation/commit/088dcfe91ff750fcfe78c02c85a3a63408c9b21f)

[fixes burgers layering wrong. uses a combo of pixel z to do the visual
offsets, and pixel_y to modify
layering](https://github.com/tgstation/tgstation/commit/ec39e2bcd39b1d8bd61a1f008a391b642f92a575)

[fixes signs, needed to use pixel_w instead of x, I think we may be
living under iso rules? I'm not totally sure I need to investigate
more](https://github.com/tgstation/tgstation/commit/560d152fd745d9f37dd4f6a9e67cc67f43b14821)

[fixes paperbin
rendering](https://github.com/tgstation/tgstation/commit/e6c57ec00eba1b4522b8ef1d056e0ef036a9e901)

## Why It's Good For The Game

Closes #72094
Closes #72035
2022-12-24 02:43:36 -08:00
LemonInTheDark 24d795b354 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>
2022-11-24 20:31:36 -08:00
MrMelbert a1ab0201ff Fix halloweens races (#70874)
* Fixes halloween races.
- Fixes a race condition involve checking for holidays befores SSevents is instantiated. Now, holiday checking is done through a helper, which will ensure the holidays list is created and filled before checked.
2022-10-31 16:01:31 +01:00
ShizCalev 1a32f60cf4 [ready] adds unit test for missing inhand icons. fixes a bunch of missing inhand icons (#70037)
fix: Fixed a bunch of missing inhand icons.
fix: Fixed cables in electrical toolboxes not randomizing their colors.
fix: Fixed the wrong colored icon showing when trying to make cable cuffs out of cables.
fix: The collectable SWAT helmet is now using the proper icon again!
refactor: Pipecleaners and power cables now share a unified color system, so they're once again available in ALL the same colors.
imageadd: Updated the screwdriver belt overlay to represent the newer sprite.
imageadd: Added a bunch of new inhand icons. Special thanks to Twaticus for doing the helmets! <3
fix: Wirecutters now have an icon when inside a belt again!
admin: Added a new omnitool subtype that allows you to spawn all items in a typepath!
fix: Explorer gaskmasks now properly reflect their adjusted state when held.
fix: Fixed balaclavas having the wrong icon when pulled up.
fix: Fixed the base energy sword (admin spawn only) being invisible.
fix: The rainbow energy sword is now a little bit more rainbowy!
fix: Fixed an tk exploit with orange handcuffed shoes.
fix: The traitor outfit in the select equipment panel is now actually functional!
2022-10-04 10:20:24 -07:00
John Willard 7c990173e0 Removes network cards and printers from tablets (#70110) 2022-09-26 11:18:58 -07:00
Mothblocks c5ba0db5b1 Paper bins now create paper dynamically, rather than creating thousands of pieces of paper on init every round (#69586)
* Paper bins now create paper dynamically, rather than creating thousands of pieces of paper on init every round

* Fix hard del, fix static initialization

* Fix fire_act not using paper_stack
2022-09-04 09:34:34 +12:00
tattle fd9f50c552 [IDB IGNORE] Renames the inhand/misc folder to inhand/items (#69573)
Also adds balloons to inhand/items
2022-09-01 03:29:10 +02:00
Timberpoes 786ac5c855 [MDB Ignore][Bounty][Complete Refactor] Papercode Redux: Too Many Damn Files <Map Conflict Edition> (#68612)
Papercode refactor
2022-08-02 19:27:42 +02:00
Superlagg 236b7ee1e8 Changes paper bins to be easier to use (#61429)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-09-26 01:41:48 -07:00
Ghom 38f12422a0 honkspam component to element. (#60635) 2021-08-19 18:40:40 -07:00
Ed640 568cdc5cf2 Fixes collapsed or burnt paper bins from voiding new papers added (#59732)
* Stops collapsed or burnt paper bins from voiding new paper added afterwards

* Replaces papers.Remove and paper.Add

LAZYADD and LAZYREMOVE are much more useful.
2021-06-23 12:46:03 -07:00
Watermelon914 375a20e49b Refactors most spans into span procs (#59645)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.

Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.

(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
2021-06-14 13:03:53 -07:00
cacogen 001d2ca06d Paper bins show the paper inside them (atomised) (#57907)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-03-25 18:42:17 -07:00
spessbro cbeb9c5be4 Refactors the paper bin behavior for dragging to pick up into an element (#57501)
* Drag pickup element for the paper bin behavior

* invokes async on put_in_hands to comply with the linter

* documented and like better names

* blackspace
2021-03-08 16:50:53 -08:00
TemporalOroboros e4079c87b8 update_appearance (#55468)
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
2021-02-19 12:06:18 -03:00
LemonInTheDark 5c22a0cfc1 Converts many proc overrides to properly use list/modifiers, lots of other smaller things (#56847)
Converts many proc overrides to properly use list/modifiers, fixes some spots where modifiers should have been passed, calls modifiers what it is, a lazy list, and cleans up some improper arg names like L, M, C, and N. Oh and I think there was a spot where someone was trying to pass M.name in as a string, but forgot to wrap it in []. I fixed that too.
2021-02-16 09:18:46 -05:00
TemporalOroboros edd6500d78 /obj/screen --> /atom/movable/screen (#54403)
Repaths screen objects to /atom/movable
2020-11-08 23:07:15 -03:00
WarlockD 6317c371c2 Various Paper bug fixes (#52470)
* Ugh too tired fix latter

* Ok think its fixed, still need to make the stamp working

* Major fixes done, but still the ui dosn't pop up once you examine the door

* Ok you can read doors now, that was annoying.

Ok we done

* Update paper.dm

oh fix

* I have DONE it! Alright

* Miner fixes on order

* Update tgui.bundle.js

* Update code/modules/paperwork/paper.dm

Sure

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

* Update code/modules/paperwork/paper.dm

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

* Alright some fixes

* Update tgstation.dme

* Revert "Update tgstation.dme"

This reverts commit 3eaa48d9fcfa2645663420165c39643c3ae5d939.

* Update tgui.bundle.js

* Update code/datums/components/honkspam.dm

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

* Update code/datums/components/honkspam.dm

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

* Update code/modules/paperwork/paper.dm

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

* Update code/modules/paperwork/paper.dm

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

* Bahhh...me..so..tired

* pointless uistate gooone

* Update tgui.bundle.js

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-11 23:39:10 +03:00
jdawg1290 62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
WarlockD 1d0cc0c715 Papers Please! Now with Markup...again! (#51534)
* Initial update

* tgui ofcourse

* Small fixes

* More lint fix

* Updated to support signatures and adding to paper

* Sign and adding to paper work, need to tune it a bit though

* Ok, signatures and adding work, still working on stamps

* Stamps now, fix rotate and cleanup tommow

* Alrighty!  Lets try for some testing!

* Stupid travis

* annnd the bundle

* Minor fixes

* DONE.  Still have some code cleanup, but all the major features work now

* Requested changes cleaned up formating

* Dammmn you bundle!

* Fixed the preview issue

* Updated bundle

* Ok, some more fixes and clean up

* Ugh damn you tgui bundle

* Update tgui.bundle.js
2020-06-17 11:55:58 -04:00
nemvar 6ef421be42 Renames a few variables. Also reorders icon fallback order again. (#51060)
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.

* Fixes some comments

* Fixes map issue

* Restart lints

* Properly resolves conflicts
2020-05-25 06:47:19 +02:00
MrPerson 26093e5ac2 Further update_icon splitup (#48784)
* Further update_icon splitup

After this there'll be just under 100 old update_icon() calls that need fixing.

* Thanks Travis
2020-01-22 10:18:05 -05:00
Firecage ff42a1590b Ports carbon paper from Bay. (#47691)
* Ports carbon paper.

* Can't fold stacked carbon paper into paperplane.

* Changes some update_icon()'s into update_icon_state()'s

* Does as Action asked.

* Return is returned to the box from whence it came.
2019-11-14 02:56:35 -08:00
nemvar dc783795db Renames is_hot and is_sharp to get_temperature and get_sharpness (#46680) 2019-09-23 14:02:59 -07:00
vuonojenmustaturska 8ddc9677c7 examine-code refactor (#44636)
* 1/4 done? maybe?

* more

* stuff

* incremental stuff

* stuff

* stuff & things

* mostly done but not yet

* stuffing

* stuffing 2: electric boogaloo

* Git Commit and the Kingdom of the Crystal Skull

* make it actually compile

* found more stuff

* fixes

* fix AI laws appearing out of order

* fix windows

* should be the remaining stuff

* this time for real

* i guess it should compile too

* fix sechuds
2019-06-19 22:07:57 +02:00
kevinz000 3e7184c975 Combat/Stun (slip) overhaul staging, mobility flags, adds crawling (#39967)
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.

Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove

cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
2018-10-11 11:22:21 +13:00
Davidj361 232f788bb9 Fixed paperbin dropping and fingerprints (#36788)
* Removed parent call to stop the paperbin from dropping from being carried when getting a pen or paper.

* Found a better fix

* Better operator

* Fixed fingerprints not being created upon paper bin interaction

* Review change
2018-04-09 21:13:35 +02:00
kevinz000 f300a5c155 Interaction/Attack Hand Refactor (#36405) 2018-03-23 11:20:54 +01:00
BordListian 0a3b27474b - Deletes a redundant double proc definition 2018-02-18 13:56:52 +01:00
vuonojenmustaturska a162837faf Replaces a bunch of loc assignments with forcemoves and moves to nullspace (#33465)
* big batch of loc assignments

* Update emergency.dm

* Update spiders.dm

* Update parrot.dm

* Update ripley.dm

* Update firealarm.dm

* seems to work

* this maybe works?

* brainmemes, again

* stuff

* fix brainmob, camera runtimes
2017-12-13 20:56:39 +01:00
vuonojenmustaturska d55aa05c4b It's a time to stop warning about paper bins eating pens 2017-10-20 01:35:07 +03:00
Jordan Brown af4d9a85c9 Repaths /obj/item/weapon to /obj/item (#29929) 2017-08-16 10:38:51 -03:00
ShizCalev d525b18d8d Completes major inhand split project (#29574)
* Completes split project

* More work on it. Should be more or less finished
2017-07-29 16:47:37 -03:00
shizcalev df75d76c7e fix
fixes #28653
2017-06-21 00:12:31 -04:00
Expletive 1860e1a2ea Paper frames, but with new sprites. (#28452)
* Paper frames, take two

* With entirely new sprites

* and basemap

* no directional doors also smoothing

* changes requested

* woops

* deconstruct -> Destroy
2017-06-18 10:45:35 -04:00
Really-Good-Soda-Flavor a811bb3269 Fixes paper bins and moves paper to initialize (#27531) 2017-05-23 00:50:30 -03:00
MrPerson ff3f84ab81 Replaces /image with /mutable_appearance, where appropriate (#26518)
In cases where you're creating an image to use as an overlay, it makes more sense to use a mutable_appearance if you can. The image will create a static appearance for not just the image but also each intermediate step if you change vars along the way. The mutable appearance avoids this unnecessary and expensive process. The only situation that requires an image instead of a mutable_appearance is if the overlay is supposed to be directional. MA's ignore direction while images don't. I dunno why, probably another BYOND-ism.

I added a convenience function, mutable_appearance(), designed to emulate image(). Also went ahead and set the default plane of /mutable_appearance to FLOAT_PLANE because it's fucking 0 by default.

Several overlays that were image() calls were changed to just text strings when I could. overlays += "string" has the same result as overlays += image(icon, "string") and saves a proc call.
2017-04-25 12:15:16 +02:00
Joan Lung dc0e007a23 A bunch of Initialize()s now have return values (#26464) 2017-04-25 10:51:40 +02:00
Cyberboss 7c50d3fb8f Clean up some paper bin warnings (#25987)
* Cerestation paperbins

* Fix more
2017-04-10 10:41:14 +12:00
Cyberboss 73fa1e61f8 SSevent -> SSevents 2017-03-22 11:26:01 -04:00
Lzimann 5a618297ce Replaces the default output with the to_chat wrapper. 2017-03-10 01:32:05 -03:00
Cyberboss d27899ce64 Unequip refactor fix pack (#24040)
* Fixes drag drop deletion

* Fix it for clothing as well

* Do it properly

* Various other incap checks I noticed from the unequip refactor

* Time to generalize this shitty shit

* PADDLING!!!

* A whole bunch of ree
2017-02-14 08:52:56 +01:00
bgobandit 3573b0a74f Adds construction paper (#23576)
* Adds construction paper

* metastation too

* honk honk and such
2017-02-03 00:33:34 +13:00
Cyberboss 3f7f5d4000 Removes/Refactors /mob/unEquip (#22918)
* Part1

* IT COMPILES!!!!

* Fuck wait this was missing from that last

* Update handlabeler.dm

* Update handlabeler.dm

* Fixes n shit

* Fix this

* Fixes #23310

* Fucking @RemieRichards was right

* Fixes devil unEquip

* WTF ARE BITFLAGS?

* THERES THE FUCKING PROBLEM

* Fixes
2017-01-31 09:28:31 +13:00
Cyberboss 5959ac32cc Refactors atom/Initialize. Fixes ruins being initialized twice (#22778)
* Refactors atom/Initialize

Captialized for compiling correctness and to be more inline with Destroy

Will now be called from atom/New if the world initialization loop in SSobj has already run. Should always call the base.

Now comes with the `roundstart` parameter indicating whether or not it was called by SSobj or atom/New

Other fixes/tweaks:
- Renamed a proc called Initialize in abduction consoles to Setup
- Removed /obj/item/device/radio/headset/headset_sec/department: Broken and referenced literally nowhere in the code
- Removed a spawn from the Initialize of turbine_computer which made literally zero sense
- Generalized the proc which fixes RND servers with no id set

Reasoning: It's better to check roundstart per function than to have to duplicate code in New and Initialize. Think of it as a safer New for atoms. If we move enough stuff to it, initial map load performance will increase due to less New calls

* Fixed a thing

* Actually, fuck the police

* >Expecting a merge without errors

* >Not calling ..() in New

* Sanic

* Fix the headset bug

* Makes sure the map loaders dew it right

* Fixes ruins being initialized twice

* Rename roundstart -> mapload

* Revert "Rename roundstart -> mapload"

This reverts commit 667c327fd2ccfa3ce4f4db52eac03f9e8b0f6812.

* Remove unrelated change

* A more direct solution to map loads

* And now we shouldnt need this warning

* Add the new var to SSobj recovery

* Revert "Revert "Rename roundstart -> mapload""

This reverts commit dee07dbd5e4696554ac43aae5b91cce743b9b9e0.

* Line endings
2017-01-23 09:37:45 +01:00
Mervill 309adf96c3 Pens can now be placed on top of paper bins :shock: 🚀 (#22195)
* pens can now be placed on top of paper bins :shock: 🚀

* refactor

* fix
2016-12-18 19:49:03 +13:00
Mervill 09ea5ad2e5 w_class now uses defines 2016-12-01 21:33:14 -08:00
phil235 5f835bfc26 Obj damaging system, acid damage, and fire damage refactor (WIP) (#20793)
Please refer to #20867 and #20870 for a easier view of the changes. Those two PRs show all meaningful changes (hopefully) and doesn't show the files changed with just 3 lines changed.

This PR does three things:

    It makes all children of /obj/ use the same damage system.
    Previously to make your new machine/structure be destroyable you needed to give it a var/health, and its own version of many damage related proc such as bullet_act(), take_damage(), attacked_by(), attack_animal(), attack_hulk(), ex_act(), etc... But now, all /obj/ use the same version of those procs at the /obj/ level in code/game/obj_defense.dm. All these obj share the same necessary vars: obj_integrity (health), max_integrity, integrity_failure (optional, below that health level failure happens), and the armor list var which was previously only for items, as well as the resistance_flags bitfield. When you want your new object to be destroyable, you only have to give it a value for those vars and maybe override one proc if you want a special behavior but that's it. This reorganization removes a lot of copypasta (most bullet_act() version for each obj were nearly identical). Two new elements are added to the armor list var: fire and acid armor values.
    How much damage an obj take depends on the armor value for each damage category. But some objects are INDESTRUCTIBLE and simply never take any damage no matter the type.
    The armor categories are:
    -melee(punches, item attacks, xeno/animal/hulk attacks, blob attacks, thrown weapons)
    -bullet
    -laser
    -energy (used by projectiles like ionrifle, taser, and also by EMPs)
    -bio (unused for this, only here because clothes use them when worn)
    -rad (same)
    -bomb (self-explanatory)
    -fire (for fire damage, not for heat damage though)
    -acid
    For machines and structures, when their health reaches zero the object is not just deleted but gets somewhat forcedeconstructed (the proc used is shared with the actual deconstruction system) which can drops things. To not frustrates players most of these objects drop most of the elements necessary to rebuild them (think window dropping shards). Machines drop a machine frame and all components for example (but the frame can then be itself smashed to pieces).
    For clothes, when they are damaged, they get a "damaged" overlay, which can also be seen when worn, similar to the "bloody" overlay.

    It refactors acid. See #20537.
    Some objects are ACID_PROOF and take no damage from acid, while others take varying amounts
    of damage depending on their acid armor value. Some objects are even UNACIDABLE, no acid effect can even land on them. Acid on objects can be washed off using water.

    It changes some aspect of damage from fires.
    All /obj/ can now take fire damage and be flammable, instead of just items. And instead of having just FLAMMABLE objs that become ON_FIRE as soon as some fire touch them (paper), we now have objects that are non flammable but do take damage from fire and become ashes if their health reaches zero (only for items). The damage taken varies depending on the obj's fire armor value and total health. There's also still obj and items that are FIRE_PROOF (although some might still be melted by lava if they're not LAVA_PROOF).
    When a mob is on fire, its clothes now take fire damage and can turn to ashes. Similarly, when a mob takes melee damages, its clothes gets damaged a bit and can turn to shreds. You can repair clothes with cloth that is produceable by botany's biogenerator.

    It also does many minor things:
        Clicking a structure/machine with an item on help intent never results in an attack (so you don't destroy a structure while trying to figure out which tool to use).
        I moved a lot of objects away from /obj/effect, it should only be used for visual effects, decals and stuff, not for things you can hit and destroy.
        I tweaked a bit how clothes shredding from bombs work.
        I made a machine or structure un/anchorable with the wrench, I don't remember which object...
        Since I changed the meaning of the FIRE_PROOF bitflag to actually mean fire immune, I'm buffing the slime extract that you apply on items to make them fire proof. well now they're really 100% fire proof!
        animals with environment_smash = 1 no longer one-hit destroy tables and stuff, we give them a decent obj_damage value so they can destroy most obj relatively fast depending on the animal.
        Probably a million things I forgot.

If you want to know how the damage system works all you need is the three obj vars "obj_integrity", "max_integrity", "integrity_failure", as well as the armor list var and the resistance_flags bitfield, and read the file obj_defense.dm
2016-10-10 11:14:59 +13:00
phil235 2d2975f783 Some preliminary changes before the damage refactor PR. The changes here do absolutely nothing gamewise.
This just adds some vars that the refactor will use. Putting this in a separate PR prevent the damage refactor PR from becoming too big (number of files changed) and hard to read and review.

Introduces the resistance_flags bitflag that replaces unacidable and burn_state.
Moves the armor var from item to /obj level and gives specific armor values to many objects, the armor list also gets two new armor types: fire and acid, which will be used in the refactor. the new fire and acid armor values are given to plenty of items.
2016-09-27 22:33:08 +02:00