Commit Graph

147 Commits

Author SHA1 Message Date
Tad Hardesty ce116b6d96 Correctly set description of nonstandard cells 2017-12-12 03:50:47 -08:00
ShizCalev 8eafaccc88 Cleans up unused code 2017-11-20 00:03:33 -05:00
Emmett Gaines 825ab4def4 [512] The great \ref purge (#31824)
* The great \ref purge

* cleanup
2017-10-28 17:20:04 -04:00
GLACoding e632dee0de Adds installing cells as part of mech construction and fixes some mech construction bugs. (#30942)
* spawn_mecha_result() code

Function that places the cell from construction from the holder into the new mech, and check and applies scanning module/capacitor upgrades for combat mechs

* New holder icons

No change made to the new sprites as of current.

* New ripley construction code

* New gygax construction code

* New fireripley construction code

* New honker construction code

* New durand construction code

* New phazon construction code

* New odysseus construction code

* Cyberboss Requested Fixes #1

* Cyberboss Requested Fixes #2

Turns result in mecha_construction_paths to types, also removes result in phazon_chassis as it has no purpose.
changes qdel to QDEL_NULL

* Removes old cell from add_cell() in the Initialize()

* Move CheckParts to obj/mecha and move cell check to CheckParts
2017-09-27 11:13:46 +02:00
Jordan Brown af4d9a85c9 Repaths /obj/item/weapon to /obj/item (#29929) 2017-08-16 10:38:51 -03:00
Leo ca59ca6c23 Changes all access const to be a define (#29260) 2017-07-16 18:44:23 +02:00
Joan Lung 24f69f814b missed these 2017-07-08 14:09:07 -04:00
Joan Lung 1feb0021a1 Removes now-unnecessary obj_integrity definitions 2017-07-08 14:02:50 -04:00
Cyberboss 9e1ef0ffe2 Global variable wrappers (#25325)
* Add the system for managed global variables

* Travis ban old globals

* So you CAN inline proccall, that's neat

* Fix that

* master.dm

* Remove the hack procs

* Move InitGlobals to the proper spot

* configuration.dm

* Fix the missing pre-slash

* clockcult.dm

* This is probably for the best

* Doy

* Fix shit

* Rest of the DEFINES tree

* Fix

* Use global. for access

* Update find_references_in_globals

Always hated that proc

Whoever made it must've bee a r e a l idiot...

* __HELPERS tree

* Move global initialization to master.

Fix the declaration

* database.dm

* Dat newline

* I said DECLARATIVE order!

* Here's something you can chew on @Iamgoofball

* game_modes.dm

* Fix this

* genetics.dm

* flavor_misc.dm

* More stuff

* Do it mso's way. Keep the controllers as global

* Make master actually see it

* Fix

* Finish _globalvars/lists

* Finish the rest of the _globalvars tree

* This is weird

* Migrate the controllers

* SLOTH -> GLOB

* Lighting globals

* round_start_time -> ticker

* PAI card list -> pai SS

* record_id_num -> static

* Diseases list -> SSdisease

* More disease globals to the SS

* More disease stuff

* Emote list

* Better and better

* Bluh

* So much stuff

* Ahh

* Wires

* dview

* station_areas

* Teleportlocs

* blood_splatter_icons

* Stuff and such

* More stuff

* RAD IO

* More stuff and such

* Blob shit

* Changeling stuff

* Add "Balance" to changelogs

* Balance for changelog compiler + Auto Tagging

* Update the PR template

* hivemind_bank

* Bip

* sacrificed

* Good shit

* Better define

* More cult shit

* Devil shit

* Gang shit

* > borers

Fix shit

* Rename the define

* Nuke

* Objectives

* Sandbox

* Multiverse sword

* Announce systems

* Stuff and such

* TC con

* Airlock

* doppllllerrrrrr

* holopads

* Shut up byond you inconsistent fuck

* Sneaky fuck

* Burp

* Bip

* Fixnshit

* Port without regard

* askdlfjs;

* asdfjasoidojfi

* Protected globals and more

* SO MANY

* ajsimkvahsaoisd

* akfdsiaopwimfeoiwafaw

* gsdfigjosidjfgiosdg

* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!

* facerolll

* ASDFASDFASDF

* Removes the unused parts of dmm_suite

* WIP

* Fix quote

* asdfjauwfnkjs

* afwlunhskjfda

* asfjlaiwuefhaf

* SO CLOSE

* wwwweeeeeewwwww

* agdgmoewranwg

* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?

* Fix syntax errors

* 100 errors

* Another 100

* So many...

* Ugh

* More shit

* kilme

* Stuuuuuufffff

* ajrgmrlshio;djfa;sdkl

* jkbhkhjbmjvjmh

* soi soi soi

* butt

* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING

* lllllllllllllllllllllllllllllllllllllllllll

* afsdijfiawhnflnjhnwsdfs

* yugykihlugk,kj

* time to go

* STUFFF!!!

* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!

* ngoaijdjlfkamsdlkf

* Break time

* aufjsdklfalsjfi

* CONTROL KAY AND PRAY

* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

* Goteem

* Fix testing mode

* This does not belong in this PR

* Convert it to a controller

* Eh, fuck this option

* Revert controllerization Ill do it some other time

* Fix

* Working controllerization

* FOR THE LOVE OF CHRIST PROTECT THE LOGS

* Protect admins and deadmins

* Use the inbuilt proc
2017-04-06 23:26:13 -06:00
Cyberboss d0bfbc3e13 Rename ticker to SSticker 2017-03-22 10:48:25 -04:00
Shadowlight213 4f145c2b6d Fixes a runtime with building combat mechs (#25194)
* Fixes a runtime with building combat mechs

* Fixes it correctly this time
2017-03-19 22:00:33 +01:00
vcordie f25a5d674e Makes the srm-8 rocket pods have a bit more oomph (#23390)
So, this really changes the way the rocket pods work now. So now they're proper projectiles, which means they keep going until they hit something, then they go boom. Downside of this, the sprite looks really silly now, as rockets spin about like a discoball in flight. I have no idea how to fix that. When they hit a non living target, they explode with 0 1 2, if it hits a living target, it explodes with 0 0 2. and the projectile now does 30 brute damage as well, meaning direct hits on mobs do 60 brute damage, plus a 50% chance to knock out and 7% chance to sever a limb. Should actually buff that considering you can only fire a rocket once every 2 seconds it seems like. But, this is good for now.

🆑 vcordie
tweak: The SRM-8 Rocket Pods have been loaded with new explosives designed to do maximum damage to terrain. These explosives are less effective on people, however.
/🆑
2017-01-30 10:25:02 +13:00
Joan Lung 40d331ab5a The Judicial Visor no longer requires an open hand to use (#21138)
* The Judicial Visor no longer requires an open hand to use

* SMITE

* ew ew ew
2016-10-24 22:54:04 +13:00
oranges 135a8977f2 Merge pull request #20756 from ExcessiveUseOfCobblestone/patch-2
Quick "Fix" to Mime Mechs
2016-10-10 11:19:21 +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
ExcessiveUseOfCobblestone b5a5473f1d Quick "Fix" to Mime Mechs
Allows them to be see through.

Fixes #20727
2016-09-29 12:29:10 -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
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
phil235 b8164b7b92 * Add an attack animation for mech melee attack.
* Fixes mech action button icon not updating whent the button is activated.
* Fixes internal tank action button icon not updating to off when we adjusted our masks out.
* Fixes mime/clown mask not updating their action button icon when adjusting. Fixes clown mask not updating
its on mob icon if adjusted when worn.
* Fixes typo in the human threshold for toxin in the air.
* Fixes changing the thermomachine circuitboard settings not giving any feedback.
2016-04-28 18:56:14 +02:00
KorPhaeron 3a7c53a2b1 Merge pull request #16668 from KazeEspada/LavaProofMech
Lava Proofs some mechs.
2016-04-23 00:07:43 -05:00
KazeEspada 06c173e077 Lava Proofs some mechs.
The firefighter ripley and the maurader mecha family are now lava proof.

Firefighters now have a better niche as the only mech available to the crew that can cross lava.

The only version of the Maurader available to players is the Mauler, and on average, nuke ops and lava will never come in contact.
2016-04-05 13:46:01 -07:00
KazeEspada 63d7f1c95b Mecha Ramming!
Certain Mecha now will automatically attack whatever they hit. At the moment, this is only Gygaxes in run mode, and anything in the Maurader family(Mauler, Maurader, and Seraph).

Gygax's no longer damage themselves while running, but now severely drain their cells to maintain their impressive speed.
2016-04-04 23:59:05 -07:00
Bjorn Neergaard c9f61fd7da Rework portable atmos; tgui portable pump 2016-02-05 17:06:00 -06:00
Remie Richards 10a924fc64 Adds Mecha Pilots! Syndicate soldiers who can pilot Mecha and use that Mecha's abilities and equipment. 2016-01-24 21:04:18 +00:00
Remie Richards b99ecdfbe0 Merge pull request #12597 from AnturK/atoningmycodingsins
Action Button Minor Rework Cleanup
2015-10-25 23:02:59 +00:00
AnturK 77d3260894 Action Button Cleanup
Removing action_type in lieu of subtypes
2015-10-22 21:34:27 +02:00
phil235 d3ee910211 Makes effect system code more OOP.
obj/effect/effect is now renamed obj/effect/particle_effect for better usability.
datum/effect/system and /datum/effect/effect/system are now both /datum/effect_system.
Fixes a bug where wall mounted igniters (and other spark producing objects) didn't produce sparks sometimes.
Moved explosion_particles.dm into the effect_system folder, because it has effect_systems code.
2015-10-21 23:28:29 +02:00
phil235 47909d525f Changes smoke to behave more like foam. Each covered tile has one smoke cloud. This makes smoke clouds much less random, especially in terms of reagent application.
Also smoke reaction now uses the TOUCH method instead of VAPOR, to differentiate smoke and foam. Mob without internals or gas masks also ingests reagents in the smoke.
Moved nanofrost smoke code to effects/effect_system/effects_smoke.dm
2015-10-15 21:52:37 +02:00
Razharas 3c275abb27 Makes combat mechs scale based on parts
Makes combat mechs scale based on parts
Capacitor and scanning module
2015-09-26 22:06:43 +03:00
phil235 f90ee4aa8c - Fixed monkey starting with no dna.
- Fixed bugs with monkeyize/humanize: 7803 (humanized monkey nobloodtype)
- Fixes 9298 monkeyed ling have troubles humanizing themself (already fixed?)
- Fixes despawning clothes when monkeyizing. 11855
- Replaced check_dna_integrity proc by simpler has_dna proc when required.
- created set_species() proc
- fixed space retrovirus not transfering SE (despite having a domutcheck()). Still need to check if it needs a name = real_name.
- I renamed mecha/var/dna to dna_lock to avoid confusion
- I renamed an armor var in a species proc to armor_block to avoid confusion with species/var/armor.
- I removed many if(dna) checks in lots of files.
- I removed duplicate defense procs between human/proc/X and dna.species/proc/X since dna is now always set.
- Anatomic panacea from changeling removes alien embryo correctly. 6247
- Fixes runtime when trying to put dna-less brain mmi into a dnalocked mech.
- Removed carbon/var/list/features, we now only have dna.features and prefs.features
- Remove hulk mutation from lizards and other species (Fixed 6413); only real humans can acquire hulk. (less work on sprites for each ones, fixes lizard tail not in hulk color)
- Fixes cloning not setting up correctly dna UE and dna.real_name
- I fixed the issue with sucked+cloned ling being unable to absorb
- I fixed issue with changeling proc checking if they have the dna already not working.
- Fixed 4095, low health hulk with DAA getting stuck in loop of acquiring/losing hulk.
- I added a second layer for mutations to differientate mutations that go below and above the body layer (Fixes 7858)
- Fixes 10048, the transform to initial appearence button was fucking up the dna.

- Fixes cloning not setting up correctly dna UE and dna.real_name
- Fixed the issue with sucked+cloned ling being unable to absorb
- Fixed issue with changeling proc checking if they have the dna already not working.
- Fixed 4095, low health hulk with DAA getting stuck in loop of acquiring/losing hulk.
- Added a second layer for mutations to differientate mutations that go below and above the body layer (Fixes 7858)
- Fixes 10048, the transform to initial appearence button was fucking up the dna.
2015-09-19 22:18:28 +02:00
duncathan 51c09f16bf makes all Destroy()'s return properly 2015-08-31 00:21:01 -06:00
phil235 84305062fe Fixes Bump() of mechs and bots not handling thrown cases correctly.
Mecha/Bump() now calls Bumped() in all cases as it should.
2015-07-27 14:33:13 +02:00
phil235 36c1768a77 Mech action buttons have new sprites by ZyloWalsh.
The dark gygax now has thrusters like the marauder, so that the nuke ops don't lose in space the mech they bought.
The gygax's leg actuator overload now uses an action button.
2015-07-24 00:24:52 +02:00
phil235 34db8dd695 Merge branch 'master' of https://github.com/tgstation/-tg-station into MechRefactoring
Conflicts:
	code/game/mecha/equipment/mecha_equipment.dm
	code/game/mecha/equipment/tools/medical_tools.dm
	code/game/mecha/equipment/tools/tools.dm
	code/game/mecha/equipment/weapons/weapons.dm
	code/game/mecha/mecha.dm
2015-07-16 13:50:01 +02:00
Firecage 4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
phil235 9cc577273f added update_action_buttons to mmi life subproc
Fixes seraph smoke not working.
buff energy relay so it's closet to the old effect
Fixes 6812 (mmi in mech cant use equipment) somehow.
Moved check to prevent drilling inventory to mecha/click_action so that it also happens with an AI occupant.
Fixes 9562 (verbs sometimes aren't given to the pilot) by removing the verbs
Upon destroy() we delete cabin_air: Fixes 8110
Changed armor booster availability back to all mechs.
Fixes repair droid overlay not updating when turned off after repair done
Fixes heavy plasma cutter not being attachable to anything.
2015-07-08 02:24:29 +02:00
phil235 ea1780ce97 - Mech equipment was using its unique processing method, with specific timing for each equipment, but now it uses obj processing, I
changed the values so the equipment effect stays the same. Remove global_iterator datum.
- fiddled with equip_ready procs of mech tools.
- removed mecha/proc/do_after and /enter_after() procs.
- Renamed mech sleeper occupant var to "patient" to avoid confusion with the occupant of the mech.
- all non instant tool (drill) now show a progbar when drilling etc..
- action cooldown now use do_after_cooldown() (that itself uses do_after) and start_cooldown (for instantaneous actions).
- Removed mecha_equipment's destroy proc, it's now all in Destroy(). No confusion.
- modified mecha_equipment/proc/can_attach() to not check istype(mecha) b/c it can't not be. (so the child only have one istype check.
- Removed diamonddrill/can_attach() , all done at drill level.
- armor booster now only for combat mech, instead of all except honkmech.
- Removed dynhitby, dynbulletdamage, dynattackby, dynusepower(), dyngetcharge(), dynabsorbdamage()
- I split the tools.dm file into smaller ones: work tools, mining tools, other tools.
- I split mecha.dm into mecha.dm, mecha_topic.dm and mecha_defense.dm
- refactored mech weapon ballistic/launcher, new proj_init proc, more OOP.
- Moving consumes energy! Lights consumes energy. Fixes #9425.
- Fixed #7354 xeno not bursting if host is inside a mech.
- Added action buttons to mech. Moved toggle lights, internal tank, eject, view stats from verbs to action buttons, these can now only

be done via these buttons (removed them from the big stats window).
- Removed port connect verbs b/C it's automated now.
- regular hud is no longer hidden when inside a mech (doesn't matter b/c you can't interact with most stuff in it while in a mecha). Fixes issue 10387
- can't walk when shooting projectiles. Makes walking on your projectile a bit harder. Helps against issue 10315 (but doesn't fix it).
- also made into action buttons: the special abilities of certain combat mechs.
- Added thrown alerts for mech charge and integrity.
- Fixes teleporting occupant out not properly removing it from the mech. Fixes issue 10330
- fixes ballistic mech weapons spinning when launched. proc/throw_at() now has a spin argument instead of using var/allow_spin that was added to all atoms just for that.
- added a update_action_buttons() to ai/life() to handle ai mech.
2015-07-07 19:40:32 +02:00
phil235 b0cd6d34b1 Lots of work on acids, smoke, foam, reagents reaction() proc.
- fixed the fraction argument in reaction(...., INGESTED, fraction) so the proper amounts of each reagent react, not all of it.
- slight optimization of datum/reagents/reaction()
- small optimization /datum/reagent/proc/reaction_mob
- the smoke's reagents no longer do direct transfer upon crossed()/move() but uses "reagents.reaction( mob, TOUCH)" only.
- fixes no ingesting smoke if it's in the dark.
- removed block gas smoke effect flag from clown mask and other non "actual" gas mask.
- refactor how protection against touched chems being absorbed is done. get_permeability_protection() to get that protection. No more

simple RNG get touched or not, now the amount that touches you depends on your protection and the volume in question.
- changes acid_act to take volume into account.
- chem_smoke now uses process() just like foam, we remove the reaction from crossed() and Move(), it's only done in process() now.
- optimization of effect/smoke, OOP! And now all smoke effects use objprocessing instead of shitty sleep/spawn
- removed mob var/coughedtime.
- add a volume check to item/acid_act(), there's a threshold to be able to melt and then a probability to melt (acidpwr&volume).
- greatly lowered the amount of reagent in the smoke from dead blobspore (so the volume isn't enough for melting)
- human/acid_act(): damage to limbs depends on acidpwr&volume.
- fixes metalfoam not working.
- smoke powder: only one start() call.
- Amound of smoke objects depends on amount of smoke recipe created.
- Adds an argument to add_reagent() to block automatic call of handle_reaction()
- When using reagents/proc/trans_to(), reactions are now only handled after every reagent is transfered and not before.
- Amount of smoke objects depends on amount of smoke reagent created.
- radius of foam reaction depends on amount of foam reagent created.
- The amount of other reagents inside the smoke/foam decides the life expectancy of the effect.
- The amount of reagents in each small smoke cloud/foam cell depends on the amount of other reagents in the initial reaction but also

how much smoke/foam was created (more smoke means dilution of the reagents).
- smoke/foam's reagent reaction on mob decreases the life expectancy of the effect (to avoid reagent duplication)
- The amount of reagent reacting with atoms is less if the life expectancy is high.(to avoid reagent duplication)
- The amount of movement from the smoke now depends on the number of smoke clouds created.
- removing some useless code in chem_grenade/prime().
- When calling human/acid_act(), item acid melting chance lowers after each each successful melt in the list, some of the acid is

"used" to melt that item so the next items have a lower chance to melt (to make melting every clothing harder).
- remove the banned reagent list from sprays, not needed anymore now that acid is nerfed.
- chem_grenade reaction, if there's no reagent left after reaction (smoke/foam/etc, reagents cleared) you don't get the steam effect

and immediate reaction with all atoms around the grenade explosion. (Fixes foam cleaner grenade deleting bloodstains around it as soon

as the grenade explodes, even if the foam hasn't reached the tile yet).
- melted storage items now drop their content instead of deleting everything.
2015-06-22 00:35:24 +02:00
Firecage f79e0fc1aa Updates more paths, for example obj/stuff to /obj/stuff 2015-05-31 17:48:33 +02:00
MrStonedOne bd6d51a0b5 Massive MC and subsystem rewrite
MC:
	No longer tracks a subsystem's cpu usage. This was basically worthless and took up space on the stat panel
	Can calculate wait down to a tenth of a decisecond to make it fps/world.ticklag agnostic
	Now allows subsystems to have a dynamic wait, that is based on a ratio of how long that subsystem has been taking to process(cost). (This system allows for upper and lower bounds, and an changeable cost delta for each subsystem)
	MC can now be told to init a zlevel

All Subsystems:
	Stats panel now allows child subsystems to pass it a message to add to its stats entry. All subsystems have been moved over to this system - This should cut down on subsystems having to copy and paste the stats proc in order to add to it
	All subsystems now properlly handle being given a zlevel in their init proc

Subsystem changes:
	Air:
		Added air to the dynamic wait subsystem. upper bound: 50, lower bound: 5, cost delta: 3 times process cost
		Air now fires 4 times faster when it can do so without lagging things up
		Pipenet has been merged into air
		Atmos machinery now processes with process_atmos(), ticked by air, not machinery.
		Hotspots (the fire object) are now object pooled
	Pipenet:
		Deleted, added to air
	Machinery:
		Moved all atmos calcualtions in all objects's process() to process_atmos().
	Lighting:
		Added Lighting to the dynamic wait subsystem. upper bound: 20, lower bound: 5, cost delta: 3 times process cost
	Ticker:
		Fixed ticker not updating the lobby panel when game start delayed
		Fixed the game start timer updating rapidly from queued fires when game start delay is removed
	Garbage/qdel:
		qdel will now limit its process time to 2ds a fire.
		qdel can now be given hints as a return to Destroy() as to what should be done with the object.
		the options are:
			queue: (default) this is the normal behavior.
			letmelive: old default to non-null/zero. does nothing with the object
			iwillgc: functionally the same as above, mainly to let people working with objects know that the object will not be queued for GC checking
			harddel: this will queue the object to be deleted without storing a soft reference, mainly to save locate() processing time.
			harddel_now: this will del() the object. To allow for a clean removal of every del() not in qdel
		All objects have been updated to the new system, harddel and iwillgc was not added to any new objects.
		Fixed some objects not GCing because they didn't properlly clear references in Destory()
		Fixed some objects getting qdel'ed preventing other objects from getting GCed because they did not null their reference to that object.
2015-04-29 02:00:25 -07:00
phil235 1eaaf35b41 Merge branch 'master' of https://github.com/tgstation/-tg-station into MechAtkFix1
Conflicts:
	code/game/objects/objs.dm
	code/modules/mob/living/carbon/human/human_defense.dm
2014-11-04 18:24:52 +01:00
hornygranny abc9fb947b Merge pull request #5622 from phil235/MechaProtocolFix
Mech maintenance protocol fix
2014-11-03 17:28:32 -08:00
phil235 746d22a9ec better remove that... 2014-11-03 21:47:41 +01:00
phil235 9c11d9fa25 All mechs have a melee attack now, the force of non combat mechs is 5.
Changing the mech melee attack code to be more object oriented. Creating mech_melee_attack() proc for atom and overidden in its children.
Mechs can now hit windoors with their melee attack. (they can still open them by bumping)
2014-11-03 21:40:25 +01:00
phil235 90a4271fed Fix runtime when using id on mecha as a monkey
All mecha start wit maintenance protocol forbidden by default
Only roboticist/engineers can access the ID/maintenance protocol panel
Tried to simplify the code checking the access in mecha.
2014-11-02 18:03:44 +01:00
phil235 128c9222e5 Adding checks for stun, restrained to many object verbs.
Fixing paper and supply manifest description upon examination.
Fixing being able to adjust jumpsuit while restrained.
Fixing one typo.
2014-11-01 19:18:01 +01:00
MrPerson ef6204656f Space movement rewrite to allow everything to drift
Removes a version of atom/movable/Move() that was in mob_movement.dm.
New proc called newtonian_move() that's called as a result of things like shooting a gun or spraying a fire extinguisher and as part of atom/movable/Move().
It pushes src if it's not under gravity and gives the object a chance to stop itself.
As a result, inertial_drift() is kill.
Moved Process_Spacemove() out to atom/movable. It does the same thing, it's called whenever a drift is attempted and stops the drift if it returns 1. Default check is to look for nearby lattices to make dragging shit around the station less annoying. Mobs still call it in Client/Move()
The mob version of Process_Spacemove() will shove non-anchored nearby objects out of the way if you try to move like that. For example if you're free-floating in space next to a closet and try to move right, the closet will drift off to the left.
Mechs call their occupant's version of Process_Spacemove() so mining with a mech isn't retarded. The pussy wagon does the same thing and thus no longer works like a jetpack. Will it be making a comeback?!?! (no)
Any move will attempt to keep dragging your pulled object, not just ones initiated by the client. Should make space wind a little less annoying. Was needed to make drifting not break your drags.
Mechs drift correctly without any special snowflake crap.
Spaceslipping is gone because fuck that shit
Space movement is now slow instead of fast. Having a jetpack helps go faster but even that's slower than current. Hopefully means nuke ops can see each other as they move to the station instead of losing sight of each other instantly. Having your hands full makes spacemovement even slower.
You can drift in office chairs and drag mobs in beds or the bed itself. Currently drifting diagonally while in an office chair is bugged and I need help to solve it. It winds up in cardinal movement instead of a diagonal one.
Changes up the jetpacking effects system to cause fewer errant ion trails but it's still awful code. In hindsight I shouldn't have bothered but here we go.
2014-10-25 23:19:46 -07:00
PatchouliKnowledge 8b9881a682 I accidentally the phasing 2014-10-11 22:37:37 +03:00
PatchouliKnowledge d31ed2583b Removes comments from combat.dm and phazon.dm 2014-10-11 21:42:55 +03:00
PatchouliKnowledge 6c649997e4 Fixes duplicate Ripley proc code, moves messages to switch() in Phazon damtype change code 2014-10-11 21:31:33 +03:00