Commit Graph

804 Commits

Author SHA1 Message Date
Joan Lung
a88eb76aec Remove an unused proc #20825 2016-10-10 11:47:14 +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
Incoming
5eacff1038 Merge branch 'master' of https://github.com/tgstation/-tg-station into hold_it
# Conflicts:
#	code/modules/clothing/under/ties.dm
2016-09-30 13:00:49 -04:00
phil235
194398cbbd Merge branch 'master' of https://github.com/tgstation/-tg-station into PreliminaryDamageRefactor
# Conflicts:
#	code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
#	code/game/objects/effects/portals.dm
2016-09-29 01:44:27 +02:00
Incoming
83eef6662b ties the lawyer speech bubble to the attorney's badge so lawyers can disguise and people can disguise as lawyers
additional badges are found in the law closet

Needs an icon
2016-09-27 19:59:23 -04: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
phil235
6809603669 Changes obj/effect/blob,spider,swarmer,energy_net,spacevines to be ob/structures instead, since you can hit and destroy them.
Adds a large ash and large molten item decal (for future use)
simplifies decal/cleanable/replace_decal() code a bit.
Changes construction() proc to on_construction() for consistency, same for deconstruction().
Made a deconstruct() proc for machinery and computer (also for future use).
2016-09-27 19:58:27 +02:00
oranges
04a42ee479 Merge pull request #20647 from KorPhaeron/bossofthisgym
Boss of this Fitness Room
2016-09-25 12:31:33 +13:00
KorPhaeron
692f809e28 Boss of this Gym 2016-09-22 21:32:08 -05:00
jughu
a568fb9632 fixes the emergency locker 2016-09-03 01:07:41 +02:00
TechnoAlchemist
6cb1bda8e4 Adds a seclite to the detective's closet. 2016-08-22 13:21:31 -07:00
Joan Lung
cbf733dbc4 Does something, likely to be important, to blob (#19831)
🆑 Joan
rscadd: Once the blob alert message is sent in the blob game mode, all mobs get to see how many tiles the blob has until it wins, via the Status tab.
rscdel: Removed/merged a bunch of blob chems, you probably don't care about the specifics.
tweak: The remaining blob chems should, overall, be more powerful.
tweak: Shield blobs soak brute damage less well.
tweak: Flashbangs do higher damage to blobs up close, but their damage falls off faster.
experiment: Shield blobs now cost 15 resources to make instead of 10. Node blobs now cost 50 resources to make instead of 60.
experiment: Expanding/attacking now costs 4 resources instead of 5, and blobs can now ATTACK DIAGONALLY. Diagonal attacks are weaker than normal attacks, especially against cyborgs(which may be entirely immune, depending), and they remain unable to expand diagonally.
rscadd: Shield blobs no longer block atmos while under half health. Shield blobs are still immune to fire, even if they can't block atmos.
tweak: Blobs should block explosions less well.
rscadd: Blob cores and nodes are no longer immune to fire and no longer block atmos.
rscadd: Blobs can only auto-expand one tile at a time per expanding thing, and should be easier to beat back in general.
tweak: Blobbernauts now attack faster.
tweak: Blob Overminds attack mobs slower but can attack non-mobs much faster.
rscadd: Blob Overminds start with some amount of resources; in the gamemode, it's 80 divided by the number of overminds, in the event, it's 20 plus the number of active players, and otherwise, it's 60.
bugfix: You can no longer move blob cores into space, onto the mining shuttle, white ship, gulag shuttle, or solars.
bugfix: Blob rounds might be less laggy, if they were laggy?
tweak: Blobs don't heal as fast, excluding the core.
experiment: Blobs are marginally less destructive to their environment.
/🆑

Objective:
maybe possibly make blob something you can fight instead of wishing the blob didn't exist?
but also make the blob lethal enough that it can still deal with the crew if it knows what it's doing(and still lose if the crew is good instead of snowballing forever)
2016-08-17 15:48:28 +12:00
oranges
bbf8889d9c Merge pull request #19810 from KorPhaeron/blueprint_fix
Refactors area creation
2016-08-15 00:01:00 +12:00
KorPhaeron
43a16713f1 Blueprints for everyone 2016-08-11 04:04:16 -05:00
KorPhaeron
2a71f7e3b2 Fixes realism issues with rapiers being able to dismember (#19779)
* Rapier Fixes

* Typo

* Rapiers are not canon

* Removes rogue apostrophe
2016-08-11 15:43:18 +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
Thunder12345
1220d02aca Rapiers (#19340)
* Adds Rapiers
2016-07-26 15:14:11 +02:00
Joan Lung
e6259d32e3 Merge pull request #19406 from Niknakflak/ImABigBoyNow
Makes crayons not racist anymore
2016-07-23 18:40:10 -04:00
NikNakFlak
e40e24e220 Washing machine code is bad and so is whoever did krav_maga at first 2016-07-22 16:47:02 -07:00
Shadowlight213
5f10739385 Repaths satchels and lets angels equip them (#19371)
Repaths satchels so all the different ones are children of the normal satchel.
Allows angels to equip satchels since the satchels are on the side of the body instead of the back. Should help miners who find the potion out a bit.
2016-07-22 10:10:30 +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
TechnoAlchemist
f8e54b25ba Makes lethal injection actually lethal. (#19278)
* Makes lethal injection actually lethal.

* Spacing
2016-07-13 18:19:10 +12:00
Core0verload
9edf034fa9 Changes a bit how hardsuit jetpack upgrade works (#19165)
Hardsuit jetpack upgrade item is replaced by an actual jetpack - the same as the one that exists inside the upgraded suit. It still can't be used separately.

Hardsuit jetpack has hardsuit jetpack sprites instead of voidsuit pack.

You can remove jetpack from hardsuit by using screwdriver on it.

Unrelated:
Fixes mining vendor UI a bit: items with long names no longer take two lines.
Changes staff of storms path to actual staff.
2016-07-09 18:17:43 +12:00
coiax
ca167d4ba2 Opening crates with a crowbar will drop manifest (#19164)
- Also drones can now use the Toggle Open verb.
Fixes #19084.
2016-07-07 13:25:26 -04:00
Incoming
62e01be89c Like the normal ones, except:
*can fit five people
*can take a lot of punishment before breaking
*slow as garbage to move in
*only exist near the syndicate drop pods
*became utterly required once STEEL RAIN was added

🆑 incoming5643
rscadd: Nuke ops can now harness the power of METAL BOXES: special versions of cardboard boxes that can take a lot of abuse and can fit the whole team if need be. They're not nearly as light as their cardboard brothers though...
/🆑
2016-06-28 00:03:36 -04:00
Kyle Spier-Swenson
0d6bbbb412 stop the pills (#18703)
* RedPills Processing

Now you have to use START_PROCESSING(SSname, thing) (and STOP_PROCESSING)

* Fixes a minor bug.
2016-06-20 12:07:44 +02:00
Cruix
ac0bad5d61 Added priority overlay system. (#18225)
Added priority overlays to atoms, which will not be removed when overlays are cut and will always remain on top when new overlays are added. This requires everyone to use add_overlay() and cut_overlays() instead of overlays += and overlays.Cut(). These procs are found in __HELPERS/icons.dm, and the priority overlay list is found in game/atoms.dm. Everything else is replacing deprecated overlay manipulation.
2016-06-17 10:11:53 +12:00
c0
b615fb504f Brings back CE's hardsuit jetpack 2016-06-12 09:18:39 +03:00
AnturK
19eb97ae18 Moves some list initializations to New
Fixes missing ..() calls in New()
2016-06-07 18:39:13 +02:00
oranges
744b722a12 Merge pull request #18241 from phil235/BloodRefactor
Blood refactor stuff
2016-06-07 10:09:35 +12:00
phil235
94a5d5bfad Atom movable that are neither /mob nor /obj should not be picked by the closet insertion proc. (#18244) 2016-06-05 12:48:19 -05:00
phil235
40a371296a Adding lizard blood pack in medbay storage's freezer crate.
Added a var/exotic_bloodtype to species, instead of hardcoding a lizard type.
Fixes proc for objects who should never be bloodied.
2016-06-05 18:12:08 +02:00
oranges
c09046e3f1 Merge pull request #18201 from PKPenguin321/cmo-implanter
Refines autoimplanter code, gives CMO single use autoimplanter for HUD augment
2016-06-06 01:25:52 +12:00
PKPenguin321
01281044a1 refines autoimplanter code, replaces CMO eye HUD augment in locker with single use eye HUD augment autoimplanter 2016-06-02 23:23:52 -07:00
PKPenguin321
cf71a5833f repaths plant analyzers
so they are no longer children of regular analyzers
2016-06-01 22:44:03 -07:00
Jack Edge
37acbe9990 Adds "blood freezer", adds to map
No actual changes to the maps themselves, just moving
the bloodpack spawns from map into code.
2016-05-31 00:49:42 +01:00
GunHog
70380bc0d5 Head Megaphones
Adds megaphones to CE, CMO, and RD lockers.
2016-05-26 14:24:17 -05:00
oranges
947e2c5c19 Fix an antipattern when using canUseTopic
remove redundant range checks that are checked in the fixed canUseTopic
2016-05-22 00:23:47 +00:00
Cheridan
328a69ebf2 Merge pull request #17396 from KorPhaeron/security
Gives the HoS a pinpointer
2016-05-20 06:35:30 -05:00
Annie Acosta
ec90f1d23f gives security their normal headsets back (#17467) 2016-05-13 12:47:15 -05:00
Crushtoe
69508ecc90 Fixes grammar issue 2016-05-12 08:19:04 -05:00
Jack Edge
631d854187 Only one pie in a closet 2016-05-10 11:46:50 +01:00
Jack Edge
40c90f6800 Added cream pie closet, for clowns, by clowns 2016-05-08 22:10:56 +01:00
Joan Lung
5188387792 Merge pull request #17420 from coiax/robustin-pantry
New SW Maint Pantry (Box) (like #17283 but more mergable)
2016-05-06 20:06:04 -04:00
Jack Edge
28945b6ea5 Added maintenance fridge, mint, moved sink 2016-05-06 13:59:43 +01: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
KorPhaeron
89c3283e0f Security Lockers 2016-05-04 18:34:31 -05:00
Cheridan
23cb217905 Merge pull request #17299 from RandomMarine/mobile
Changes locker description
2016-05-01 22:26:15 -05:00
TechnoAlchemist
74bb2b28ab makes sure people have the right types of armor 2016-05-01 18:59:51 -07:00