Commit Graph

225 Commits

Author SHA1 Message Date
Joan Lung ce13143d9d Replaces yet more istypes with helpers (#20806)
* uses more istype helpers

* oranges is inefficient
2016-10-10 17:48:35 +13: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
Joan Lung 0067bd1332 Adds brass, used to construct various brass objects (#20419)
* Adds brass, used to construct various brass objects

* brasshole

* give em the brass

* give em more brass

* DYNAMIC

* VAR MURDER SPREE

* brassy

* acceptaphil

* this is super against my general preferences but eeeeeh sure okay i guess
2016-09-13 12:16:28 +02:00
phil235 443a4501ec Carbon Dismemberment , second attempt. (#20461)
* - I rearranged X_defense.dm mob files, more damage_procs.dm.Here's what's inside:
* X_defense.dm: is for the procs of attacks onto the mob, all the XXX_act() proc (things happening to the mob), as well as protection check and get procs (armor, ear prot, projectile dismemberment)
* damage_procs.dm: actual damage procs like adjustBruteLoss() getfireloss, any proc that handles damaging.

- some bugfixes with gibspawner effects.
- monkey's bodyparts can be dismembered and are used to create its icon.
- brains are no longer carbons.
- all carbon have bodyparts that can be dropped when the mob is gibbed.
- adminspawned bodyparts now have a default icon.
- robotic parts are now a child of bodyparts.
- health analyzer on alien/monkey shows damage on each limb
- added admin option to add/remove bodyparts for all carbon (instead of just remove on humans)
- Fixes keycheck message spam for janicart and all when trying to move.
- Fixes bug with buckling to a scooter while limbless.
- removed arg "hit_zone" in proj's on_hit() because we can already use the def_zone var (where hit_zone got its value)
- Fixes mob not getting any damage when hit by a projectile on their missing limb, despite a hit message shown). carbon/apply_damage() now when we specify a def_zone and the corresponding BP is missing we default to the chest instead of stopping the proc. Consistently with how human/attacked_by() default to its attack to chest if missing limb.
- Fixes mini uzi icon when empty and no mag (typo).
- I renamed and changed a bit check_eye_prot and ear prot
- renamed flash_eyes to flash_act()
- I made a soundbang_act() similar to flash_act but for loud bangs.
- added a gib and dust animation to larva.
- husked monkeys
- no damage overlay for husk or skeleton.
- damage overlay for robotic limb now.
- no damage overlay when organic bodypart husked.
- one handed human with a bloody hand still get a bloody single hand overlay.
- fix admin heal being unable to heal robotic bodyparts.
- slightly touched robotic bodypart sprites (head one pixel too high)
- Fixes 18532 "beheaded husk has hair".
- Fixes 18584 "Ling stasis appearance bug"
- no more eyes or lipstick on husks.
- can remove flashes/wires/cells from robot chest and head with crowbar.
- Fixes not being able to surgically amputate robotic arm/leg.

* More merge conflict fixes and adding the new files I forgot to add.

* of course I forgot birdstation

* More typos and stuff I forgot to undo.

* Fixing a typo in examine.dm
Removing an unnecessary check.
Making admin heal regenerate limbs on all carbons.
Monkey-human transformation now transfer missing limbs info and presence of a cavity implant.
NODISMEMBER species can still lack a limb if the mob lacked a limb and changed into that new species.
Changeling Regenerate ability now also regenerate limbs when in monkey form. (and remove some cryptic useless code)

* Fixing more conflicts with remie's multihands PR.

* Fixes runtime with hud when calling build_hand_slots().
Fixes lightgeist healing not working.
Fixes null.handle_fall() runtimes with pirate mobs.
Fixes typo in has_left_hadn() and has_right_hand().

* Derp, forgot to remove debug message.
2016-09-12 19:33:50 +02:00
Remie Richards c50fa5729c Merge branch 'master' of https://github.com/tgstation/-tg-station into many_hands_make_light_work 2016-09-10 20:28:23 +01:00
Joan Lung d8e804ac9a ah, of course 2016-09-08 10:18:41 -04:00
Joan Lung d9e96145a4 Makes cult structures destructible and readds them 2016-09-08 09:54:01 -04:00
Remie Richards 00738bd2a3 More than 2 hands!? WHAAAAAAT 2016-09-02 16:10:16 +01:00
oranges d7e9e74780 Merge pull request #19914 from KorPhaeron/cult2
Fixes being unable to attack cult structures
2016-08-18 14:13:02 +12:00
KorPhaeron 59c821544f Cult Structures 2016-08-16 00:47:45 -05:00
Shadowlight213 8035651400 Finishes id computer
adds designs for computer parts to rnd and cases to the autolathe.
2016-08-09 22:55:07 -07:00
Shadowlight213 4ebeec67d6 Adds header icons
Does some fixes and cleanup
Some consoles added to the map and tablets added to job loadouts for testmerging.
2016-08-06 23:05:05 -07:00
Robustin 6909ccc43e Cult balance pass (#19662)
* Runed metal to supply talisman

* Cult items update

* Cult floor overlay

* Cult overlay

* Mesons-Proof floors

* Fixes

* Fixes 2

* Fixes 3

* Runed metal costs

* Void Torch Concept

* Void Torch

* Torch available at altar

* Torch Fix
2016-08-05 11:57:47 +12:00
bawhoppen 1fecd12aaf no really who is da king (#19537)
add: Added crowns. Make them from gold. Cap gets a fancy one.

Crowns get some armor but are overall worse than sec gear.
2016-08-01 13:58:11 +12:00
bawhoppen 7830992c11 Makes shuttles superficially buildable (#18974)
Added two new materials, Titanium and plastitanium. Titanium is naturally occuring, and plastitanium is an alloy made of plasma and titanium.
These materials can be used to build shuttle walls and floors, though this serves no current purpose.

Before you yell "SNOWFLAKE" about the materials, I have definite planned purposes for them, not to mention what else they could be potentially used for (mechs, R&D, etc.)
You can use titanium to make white shuttle walls that smooth (like the ones of the escape shuttle), and plastitanium to make the grey syndie shuttle walls. You can also make floor tiles out of each material for the different shuttle floors. This PR itself doesn't change any of the paths on the map to use smoothed shuttlewalls and I'll save that for a seperate PR.

Also this PR makes ORM code better and allows people to easily add new alloys

Sprites by WJ
2016-07-14 21:25:49 +12:00
unknown ea070a4680 Fixed a runtime when gibbing plasmamen in the gibber.
Renamed generic skin to skin.
2016-07-11 21:52:47 -04:00
coiax afb7ebd790 Tiles are now (mostly) pooled objects (#19112)
* Tiles are now (mostly) pooled objects

Floors no longer have a builtin_tile, but instead use PoolOrNew().

Also added a do-nothing SSpool so you can inspect the global pool.

* Entries for time keeping

* MORE STATISTICS

* Stat tracking, auto filling

* Code review I

* Code review II

* Code review III
2016-07-08 13:32:40 -04:00
Leo 57ff27f4a9 Adds a craftable baseball bat (#19144)
The baseball bat has 10 force, although it throws the person back one or two tiles.

Sprites by Keekenox

In-hand sprites:
2016-07-08 09:56:39 +12:00
oranges 41e3acc71d Merge pull request #18820 from Xhuis/the_pinnacle_of_deception_technology
Adds cardboard cutouts
2016-06-24 20:14:59 +12:00
Swankcookie df25fde271 Changes "Bandage" to "improvised gauze" 2016-06-22 18:36:03 -05:00
Xhuis 369ad867de Adds cardboard cutouts 2016-06-21 17:57:53 -04:00
KorPhaeron 5fe4f395e9 Fulton Revival (#18480)
Miners can now purchase fulton extraction packs.
Miners can now purchase fulton medivac packs.
Two new fulton related bundles are available for purchase with vouchers.
2016-06-17 13:35:47 +12:00
Remie Richards fda2c699fc Automatic conversion via Regex 2016-06-11 18:37:48 +01:00
Lzimann 7602b99111 Bar stools are now constructable 2016-06-09 00:18:11 -03:00
TechnoAlchemist 65ba2d2800 Makes cloth not have force anymore. (#18204) 2016-06-04 01:23:29 -05:00
LatD d89eb178c6 Merge remote-tracking branch 'refs/remotes/tgstation/master' into Research 2016-05-30 18:33:55 +03:00
Lularian 8aa135f470 fixes some of the crap maybe 2016-05-28 11:08:46 -05:00
LatD 65a0027979 Merge remote-tracking branch 'refs/remotes/tgstation/master' into Research 2016-05-28 01:37:55 +03:00
Joan Lung 2cfb2d8eed Layers are now defines (#17949)
* Layers are now defines

* this looks better

* GAS_phil_LAYER

* no message

* remove the three unneeded defines

* no message
2016-05-27 22:16:21 +02:00
LatD 907fc36e5c Merge remote-tracking branch 'refs/remotes/tgstation/master' into Research 2016-05-24 22:17:44 +03:00
bgobandit b2ea93323d Runed metal no longer deletes girders when used on them. 2016-05-19 16:46:57 -04:00
LatD fe76e64641 Origin tech changes and some fixes 2016-05-17 20:57:01 +03:00
Lularian d8af0ac003 pixel projectiles dream 2016-05-16 21:26:20 -05:00
bawhoppen b7a7f7c470 2 small changes (#17543)
Survival Knife sprite and sandbag layer fix
2016-05-12 21:53:59 -05:00
paprika a45ea3293f Merge branch 'master' of https://github.com/tgstation/-tg-station into PixelProjectiles 2016-05-11 19:18:50 -07:00
Core0verload a66c2f4418 Machine/computer boards and frames refactor (#17300)
* Map Changes

* Machine/console boards and frames refactor

* More board changes
2016-05-08 12:11:18 +02:00
Robustin 7e5d0d69e3 The Cult Rises... Part II (#17228)
* Update cult_items.dm

* Update cult_structures.dm

* Update access.dm

* Update sheet_types.dm

* Update girders.dm

* Update walls_misc.dm

* Update cult_structures.dm

* New Items

* Structure improvements

* Unholy Update 2

* Spooky door

* Runed Metal creation

* Item fixes

* ABSOLUTE MADMAN

* ABSOLUTE MADMAN

* Final Tweaks

* Final Tweaks

* Final Tweaks

* Health adjustment

* Update cult_structures.dm

* clamp gone

* Dotting the i's and crossing the t's

* Grammar

* Capitalization, etc.

* time2mergebeg

* Added files via upload

* Added files via upload

* Self-reviewed PR, we're good to go now fam

* Self-reviewed PR, we're good to go now fam

* Self-reviewed PR, we're good to go now fam

* Self-reviewed PR, we're good to go now fam

* Self-reviewed PR, we're good to go now fam

* MERGE CONFLICT MAYMAYS

* Structures tweak

* Curse Improvements

* Icon update

* Phil Changes

* Phil Changes

* Phil Changes

* Phil Changes

* Phil Changes

* Phil change

* New York Phil-harmonic

* I-I like the original better anyway

* Spacesuits aren't THAT magical

* Can't have cultists getting TOO tricky eh
2016-05-07 23:07:10 -05:00
paprika 28a8387b17 initial commit 2016-05-07 14:39:17 -07:00
phil235 524a55a757 Merge branch 'master' of https://github.com/tgstation/-tg-station into Dismemberment
Conflicts:
	code/datums/martial.dm
	code/game/gamemodes/changeling/powers/fleshmend.dm
	code/modules/mob/living/carbon/carbon.dm
2016-05-05 21:57:10 +02:00
phil235 68da092009 Dismemberment port from Hippie code, based on RemieRichard's work. Big thanks to RemieRichards and crystalwarrior. 2016-05-05 18:17:51 +02:00
TechnoAlchemist 528ce49e57 Adds dragon hide cloaks (#17322)
* dragon scales and cloak stuff

* Finishes shit with the ash drakes and the cloak

* woopsie
2016-05-04 00:43:31 -05:00
c0 a7088757ed Wall-mounted extinguisher cabinets are now constructable/deconstructable 2016-04-29 15:31:23 +03:00
TechnoAlchemist e2a6dac71f Merge branch 'master' of https://github.com/tgstation/-tg-station into realkinkystuff
fixes conflicts probably

# Conflicts:
#	icons/obj/items.dmi
2016-04-28 12:03:31 -07:00
Joan Lung cc59925d2e Merge pull request #17108 from Bawhoppen/sandbagsz
Some sandbag changes
2016-04-27 20:23:21 -04:00
TechnoAlchemist 926e351fee adds sinew restraints, changes sinew droprate. 2016-04-26 14:10:42 -07:00
phil235 6eb4ffa825 Merge branch 'master' of https://github.com/tgstation/-tg-station into AttackbyDestruction
Conflicts:
	code/game/objects/items/devices/lightreplacer.dm
	code/game/objects/structures/crates_lockers/closets.dm
2016-04-26 21:49:51 +02:00
duncathan salt 0f0aa25976 fixes watcher sinew origin tech 2016-04-25 23:44:06 -06:00
phil235 bb1f60e769 Fixes typos and errors I made.
Fixes unscrewing a broken computer only dropping one glass shard instead of two.
Fixes AI holopad, recharger, keycard authentication device, reagent_dispensers reagentgrinder, and APC  not being attackable.
Fixes APC cover knockdown being random, it now uses the take_damage() proc, which also allows animals and xenos to knock down the cover of a broken apc.
2016-04-25 22:29:17 +02:00
Lularian 322fc535ad sandbags rah rah rah 2016-04-25 05:04:11 -05:00