Commit Graph

192 Commits

Author SHA1 Message Date
Joan Lung ce40d29ead Makes the pronoun helper proc names less horrifyingly long (#20780)
* why were these so LONG, what the fuck

* gosh

* pronoun agenda
the true agenda is killing coiax's squished lines
2016-10-10 12:28:25 +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
Joan Lung 29b4c6a8ff like a furious buzzing bee, or some metaphor or something. 2016-09-26 16:50:49 -04:00
TechnoAlchemist eec3391270 Allows for sabre renaming. (#20367)
* Allows for sabre renaming.

* That's not supposed to be there

* Applies unique_rename to all /weapons

* fixes my stupid asshole
2016-09-13 09:05:30 +12:00
Remie Richards 00738bd2a3 More than 2 hands!? WHAAAAAAT 2016-09-02 16:10:16 +01:00
MrStonedOne 83eca75951 Removes unneeded lighting checks. 2016-08-22 08:56:53 -07:00
coiax 3796656340 Adds ammo drops to CTF, fixes reload bug (#19125)
* My bed broke

* Slow healing, nodrop items

* Mark arena as dirty when stopping ctf

* Fixes spooky zombie projectile bug
2016-07-06 07:53:30 -04:00
kevinz000 cb907d1ada itworksedition 2016-06-09 18:55:25 -07:00
kevinz000 31de8f4ec2 allgunsnowburnright 2016-06-09 18:53:06 -07:00
oranges d3bcd231f8 Merge pull request #17998 from phil235/ShotgunSawoffFix
Fixes sawn off shotguns not showing the right sprite.
2016-05-30 10:55:42 +12:00
bawhoppen 1615e67e39 fixel projectiles (#18032) 2016-05-29 14:18:16 +02:00
phil235 111259dae4 Fixes sawn off shotguns not showing the right sprite.
Moves some code around.
2016-05-28 17:45:42 +02:00
Lularian d8af0ac003 pixel projectiles dream 2016-05-16 21:26:20 -05:00
TechnoAlchemist 4705efa6da Adds new items to the mining vendors. (#17362)
* Adds new items to the mining vendors, also adds tracking implanter since that didn't exist before.

* woops

* Fixes tracking implants for miners, makes medipens not OD you on tricord.

* Actually doesn't OD on tricord now

* Chemical changes.

* Upgraded the jaunter into the wormhole lifebelt

🆑 coiax
rscadd: The Free Golems have developed the jaunter into the  wormhole
lifebelt, which automatically teleports the user when they fall in a
chasm or suffer a major medical emergency. Must be worn on the belt to work.
/🆑

Please don't mistake a random teleportation in crit for saving a user's
life, the Supply channel gets a notification, but suit sensors are
required to find them, and there's no guarantee the location picked is
safe (for example, the Toxins Test Site is a valid jaunt destination,
along with in the middle of the slime cages in Xenobiology).

* Adds modification kit.

* Golem ship now has its own /area

And a bluespace beacon.

* 5 tick medijaunt, no radio, golem jaunters + areas

The number of ticks before a medical emergency jaunt happens is now
five. No radio message is produced.

Free Golems now have no restrictions on what they can purchase. Wormhole
jaunters now specifically drop golems near their ship.

* Modkits remove the race restrictions from KAs.

* Buffs buffs buffs

I'd say something, but I'm sure I'd regret it later.

* Advanced lifebelts, golem superiority

* Removes modkit from minervendors, adds modkit to RnD!

* COMPILE DAMN YOU!!

* I made it compile

* Honor to my country, not to you :(

* fuck

* h-haha?

* Kor you know I would never actually ban you

* i could personally care less for HBls adminning style
2016-05-11 22:19:47 -05:00
paprika a45ea3293f Merge branch 'master' of https://github.com/tgstation/-tg-station into PixelProjectiles 2016-05-11 19:18:50 -07:00
Razharas 0a3ddc886c Turns tablecrafting into personal crafting (#17341)
* Converts tablecrafting to datums

* Adds crafting.dm

Adds crafting.dm

* Fix merge conflicts

Fix merge conflicts

* Fixes dme

* Fixes returns

Fixes returns

* Only check hands and remove old paths

Only check hands and remove old paths

* Recipe fixes

Recipe fixes

* Removed action button

Removed action button
Added small ui button to inventory near the intent wheel
Removed debug
href_list is not longer /list

* Added adjucent checks

Added adjucent checks

* Snacks now get chems from parts

Snacks now get chems from parts

* Complex food fuckery fixed

Complex food fuckery fixed

* Fixes old recipe

Fixes old recipe

* Fix to infinite loops in reagent extraction

Fix to infinite loops in reagent extraction
It was finding old empty containers and tries to extract from them

* Fixes hands not checking

Fixes hands not checking

* Fixes reagents fucking up

Fixes reagents fucking up

* Even more reagent fuck ups fixed and comments

Even more reagent fuck ups fixed and comments

* Fixes all the shit i could find

Fixes all the shit i could find

* Removes debug and mechs

Removes debug and mechs

* Argument renaming

Argument renaming

* Fixes all argument names

Fixes all argument names

* Final fix of arguments

Final fix of arguments
2016-05-09 18:14:48 +02:00
Cheridan 11af3176b9 Merge pull request #17472 from Core0verload/mini-egun
Adds miniature energy gun
2016-05-09 01:05:41 -05:00
PKPenguin321 42e1497022 Adds an alt-click prompt to the descriptions of various objects (#17050)
* adds an alt-click prompt to the description of the detective revolver and the washing machine

* adds italicnotice style to stylesheet.dm

* updates revolver desc to be dynamic with vars, use new style

* actually makes it dynamic

forgot to check for reskinned var

* makes washing machine break a line, use new style

* gives lockers an alt click prompt

* fixes indentation, travis

* moves revolver examine changes to gun.dm

* removes redundant locker message

* makes messages just use the 'notice' span
2016-05-08 19:34:26 -05:00
c0 9af58d7469 Adds miniature energy gun 2016-05-08 06:46:42 +03:00
paprika 28a8387b17 initial commit 2016-05-07 14:39:17 -07:00
KorPhaeron 6ec28fc001 Runtime and MC crash fixes 2016-04-22 11:17:42 -05:00
KorPhaeron 55434a673d Heavy Weapon Fix 2016-03-31 12:23:46 -05:00
KorPhaeron fad0e3934e Fixes recoil, re-adds suit icon toggling 2016-03-30 13:11:33 -05:00
KorPhaeron e829213938 Mining Balance 2016-03-28 06:30:26 -05:00
c0 1dea7ac78b Defines 2016-03-02 00:23:50 +03:00
AnturK 655c6ecf14 Fixes reskinned shotgun sprite reverting when unloading/sawing off. 2016-02-26 22:33:13 +01:00
phil235 0ec876d9fe Refactored the item's action system. Items can now hold multiple actions.
The "set internals" button of tank items now turn green when it's used as internals.
Removed research scanner from drones (since cyborgs don't have it, it's more consistent)
Removed the ignore_madkadjust mask var.
The sechailer mask now has an adjust mask action button, so I removed the adjust verb that it was using.
The item's action are now created on item/New() instead of trying to create it every time someone picks the item up.
I split hud/action.dm, the datum/action stuff is now in the datum folder (/datum/action.dm), whereas the code for action buttons is kept in the hud folder under action_button.dm. Also I moved some /datum/action code that was in some files back into datum/action.dm where it belongs.
2016-02-23 19:37:42 +01:00
phil235 91839f5f70 Action buttons will now only update when needed instead of every Life().
The action buttons now update their icon instantly.
Fixes versions of pickup(),equipped() and dropped not calling the parent.
Fixes drone not being able to remove a defib from their storage.
You can now cycle the mime mask by clicking it in your hand.
The action buttons for hardsuit and hooded suits now only appears when you're wearing the suit.
Created two mob helper procs getBeltSlot() and getBackSlot().
Created /datum/species/proc/on_species_loss() to handle stuff when our race change, currently only used by jelly and slime race to remove their exotic blood from our reagents and to remove slime people's action buttons.
2016-02-22 00:34:59 +01:00
KazeEspada 6cabed1641 updates code to match new selecting. 2016-02-09 13:51:53 -07:00
KazeEspada 7afa8a625d Merge branch 'master' of https://github.com/tgstation/-tg-station into Gunfixeselecticboogaloo 2016-02-09 13:44:18 -07:00
KazeEspada b75bea58b1 *click* 2016-02-06 11:15:47 -07:00
phil235 8b11d87b1d Merge branch 'master' of https://github.com/tgstation/-tg-station into VisionUpdateRefactor
Conflicts:
	code/ATMOSPHERICS/components/unary_devices/cryo.dm
	code/_onclick/hud/alert.dm
	code/_onclick/hud/hud.dm
	code/datums/mutations.dm
	code/datums/wires/robot.dm
	code/game/atoms.dm
	code/game/gamemodes/blob/overmind.dm
	code/game/machinery/alarm.dm
	code/game/machinery/machinery.dm
	code/game/machinery/suit_storage_unit.dm
	code/game/objects/items/weapons/tanks/tanks.dm
	code/game/objects/items/weapons/tools.dm
	code/game/objects/structures/morgue.dm
	code/modules/admin/verbs/adminjump.dm
	code/modules/atmospherics/machinery/atmosmachinery.dm
	code/modules/mob/inventory.dm
	code/modules/mob/living/carbon/alien/humanoid/death.dm
	code/modules/mob/living/carbon/alien/larva/death.dm
	code/modules/mob/living/carbon/brain/death.dm
	code/modules/mob/living/carbon/carbon.dm
	code/modules/mob/living/carbon/human/death.dm
	code/modules/mob/living/carbon/human/human.dm
	code/modules/mob/living/carbon/human/human_damage.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/carbon/human/species.dm
	code/modules/mob/living/carbon/human/species_types.dm
	code/modules/mob/living/carbon/life.dm
	code/modules/mob/living/carbon/monkey/death.dm
	code/modules/mob/living/life.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/silicon/ai/ai.dm
	code/modules/mob/living/silicon/ai/death.dm
	code/modules/mob/living/silicon/ai/life.dm
	code/modules/mob/living/silicon/pai/death.dm
	code/modules/mob/living/silicon/pai/pai.dm
	code/modules/mob/living/silicon/robot/death.dm
	code/modules/mob/living/silicon/robot/life.dm
	code/modules/mob/living/silicon/robot/robot.dm
	code/modules/mob/living/silicon/silicon.dm
	code/modules/mob/living/simple_animal/guardian/guardian.dm
	code/modules/mob/login.dm
	code/modules/mob/mob.dm
	code/modules/projectiles/gun.dm
	code/modules/reagents/chemistry/reagents/blob_reagents.dm
	tgstation.dme
2016-02-04 14:34:45 +01:00
phil235 81ce777ec2 - you now only see turfs when inside gas pipes.
- I renamed some vars of datum/hud to be more selfexplanatory
- Moved all datum/hud mob code into the hud folder.
- fixed alien's zone selection button not using the correct sprites.
- I removed the update_hud() proc (that needed to be removed).
- Fixed a typo in /mob/living/carbon/ContractDisease , using "internals" instead of "internal" (very different things)
- Fixed doTeleport() calling Entered() twice on the destination area.
- To reference a mob's selected zone, you now use a direct mob var ("H.zone_selected" instead of "H.zone_sel.selecting")
- mobs lose certain screen objects var ("healths", "zone_sel", "internals", etc) which are now vars of the mob's datum/hud instead.
- the Blind spell is now done via the blind mutation instead of the blind disabilities.
- Give to mobs a version of forceMove(), so the mob is always properly unbuckled, his pull stopped, his vision updated, etc.
- The "user" var of mob/camera/aiEye/remote is renamed to "eye_user" to avoid confusion.
- reset_view() is replaced by reset_perspective(). Now all changes to client.eye and client.perspective are done with this proc.
- I reworked /obj/machinery/computer/security code, changing camera is instantaneous now, as well as cancelling.
- I reworked /obj/machinery/computer/camera_advanced code as well.
- I changed /obj/item/mecha_parts/mecha_equipment/mining_scanner's meson view to be constant instead of by intermittent.
- Fixes not being able to use /obj/item/device/camera_bug while buckled.
- removed admin_forcemove() proc, admin force moving now uses forceMove() simply.
- Removed the client var "adminobs"
- Added var/vision_correction to glasses.
- Added a thermal_overload() proc for glasses, to remove copypasta in emp_act code.
- Remove the hal_crit mob var
- We no longer delete the mob's hud everytime he logs in.
- Added a stat == dead check in mob's metabolize() so we immediately stop metabolizing if one of the chem kills the mob.
- Being inside disposal bin lowers your vision, like wearing a welding helmet.
- removed the remote_view mob var.
- I changed advanced camera EYE, some fixes, removed unnecessary code when the eye moves, now the mob client eye properly follows the camera mob.
- fixes mob var "machine" not being nullified on logout.
- larva/death() was calling two "living_mob_list -= src"
- I made the Blind screen objects into a global_hud instead of giving one to each mob (like damage overlay).
- I untied tint and eye_blind, TINT_BLIND doesn't give you eye_blind=1.
- gave a visual overlay when inside locker (vimpaired)
- when inside disposal/gas pipes you get sight |= (BLIND|SEE_TURFS)
- glasses toggling updates (atmos meson toggle): DONE
- The new adjust procs serve to properly change eye_blind etc and call vision update procs when needed.
- I added an on_unset_machine() proc to handle perspective reset for camera consoles.
- I moved consequences of eye_check fail inside eye_check() procs themselves.
- I fixed vision updates being fucked by forceMove, especially pipe vision.
- I decided that damage overlay not appearing when dead.
- mob's hud_used is no longer deleted on each login()
- I refactored mob huds a bit, creating subtypes for each mob (/datum/hud/human)
- f12's hud toggling is now available to all mobs
- gave borgs a low_power_mode var so unpowered borg do not use stat= UNCONSCIOUS (which made things weird since you were unconscious but not blind)
- Fixed double Area entering when forced teleporting.
- I fixed larva pulling not being broken when cuffing them, and larva not seeing handcuff alert (and they can resist by clicking it)
- I removed pull updates from life() since it onyl checked for puller's incapacitation.
- I renamed camera/deactivate() to toggle_cam() to be more accurate.
- I fixed mmi brain being immortal (by removing the brain and putting it back)
- I simplified mmi brain emp damage.
2016-02-04 00:33:16 +01:00
KazeEspada 91733e03e3 Fixes issue #15131. Guns will now fire point blank correctly. 2016-02-01 21:22:36 -07:00
KazeEspada fd8e1b5567 Refactor's gun firing. 2016-01-29 22:16:35 -07:00
KazeEspada a92fc67631 Fixes an unreported issue with guns that allowed them to fire even if failing can_shoot(). Fixes the ability for clumsy xeno, hulks trained in the ways of the sleeping carp to still shoot themselves in the foot with an abductor gun. 2016-01-28 19:56:44 -07:00
MrStonedOne b50e8d2a63 removes a bunch of unneeded spawns
spawns have a high overhead.

I only went for easy targets, almost every spawn could be removed with a few subsystems in place to handle delays or cooldowns
2016-01-02 18:23:02 -08:00
Incoming b7ecdf6a2f Adds scatter lasers to the drop list
Changes it so scatter lasers start in scatter mode to drive home the point

CODING STANDARDS
2015-12-28 20:47:32 -05:00
Incoming 5a10810df7 Adds a buttload of guns to summon guns to bring it up to speed for 2016. I intentionally skipped any guns that had enough stopping power to OHKO a spessman from full health.
adds a gun proc, Unlock() that automatically swaps whatever pin the gun has for a generic electronic one.
2015-12-27 21:55:53 -05:00
KorPhaeron c79c6e4671 Properly reverts dual wielding 2015-12-23 01:59:02 -06:00
tkdrg 1074e7d161 Merge pull request #13831 from KorPhaeron/dual_wield
Dual wielding guns
2015-12-21 14:11:09 -03:00
KorPhaeron 37a7699bc9 Harm intent only 2015-12-20 15:28:29 -06:00
KorPhaeron bcb1f84360 Runs the implant_check for off_hand guns 2015-12-20 12:06:35 -06:00
KorPhaeron dbcb8dd58a Less copypaste 2015-12-20 00:46:51 -06:00
KorPhaeron eeb2653070 Dual Wield 2015-12-20 00:22:35 -06:00
KorPhaeron 225aac7b75 Gun 2015-12-19 07:54:53 -06:00
MMMiracles ba5bc90d75 just gonna not 2015-12-17 21:11:06 -05:00
MMMiracles 68edcb4c2b Merge branch '1handed' of https://github.com/MMMiracles/-tg-station into 1handed 2015-12-17 21:08:52 -05:00
MMMiracles 4540c4e06f typepath fixes 2015-12-16 21:18:20 -05:00
MMMiracles cbc9904c4c saw balance 2015-12-16 20:23:03 -05:00