Commit Graph

25 Commits

Author SHA1 Message Date
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
bear1ake
f697ae90f5 removes a bunch of .0 2015-09-10 20:57:30 +09:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
phil235
e8d3deafab Merge branch 'master' of https://github.com/tgstation/-tg-station into AcidFix
Conflicts:
	code/modules/clothing/masks/gasmask.dm
2015-06-28 15:22:21 +02:00
Ikarrus
8759f56f6f Squashed Commits 2015-06-27 00:09:16 -06: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
Remie Richards
17654037db Ports Mloc's Refactor of buckling, All /obj can now buckle things. HE Pipes now change colour based on heat. 2015-01-14 19:07:18 +00:00
tkdrg
063a19c814 Fixes wizard slipping on all the area soaps 2014-11-22 19:24:57 -03:00
Incoming
d2982a4b8e Adds drones, blobbernauts, magicarp, and chaos magicarp to the staff/wand of change
Makes it so player controlled mobs with a ranged attack can actually use said ranged attack
Fixes #5551 because it's vaguely magic related anyways
2014-10-30 14:29:06 -04:00
Ergovisavi
d2917b7992 Fixes an issue with teleportation scrolls and mining vouchers that allow you to gain unlimited uses from them. 2014-03-02 05:00:57 -08:00
Razharas
e299b62400 Merge pull request #2817 from Sugarette/spellcheck
Spell check of origin_tech variables in items that no one deconstructs anyway
2014-02-20 16:25:57 -08:00
Sugarette
b48583a587 Merge pull request #3 from Sugarette/master
Wonder if it works
2014-02-18 22:07:56 +03:00
Hornygranny
2134add41b Items with throw_range over 7 reduced to throw_range 7. This does not affect players as there's no way to extend your vision range. 2014-02-17 15:44:07 -08:00
Sugarette
a319c216b3 Fixed origin_tech in lesser scroll 2014-02-17 10:51:48 +03:00
Hornygranny
9e14c22747 Reduces throwspeeds on all items to realistic levels. 2014-02-15 19:58:03 -08:00
Cheridan
bb9c09df46 Obsoletes flags = FPRINT | TABLEPASS*
*TABLEPASS was already totally obsolete.
FPRINT was used, but it was on virtually everything anyway.

Removes those flags from every instance where they were used. Also assigned and removed other flags where it made sense.

If it is desired, I can revive the flag as NOFPRINT, which would retain the original functionality, though inverted. That way it would be be used only  where it was intentional (holodeck items could use this for example).
2013-12-30 15:03:17 -06:00
giacomand@gmail.com
edbae4d9d5 - More runtime fixes.
- Committed carn's fix to events happening every 5 minutes, on the dot.
 - Changed some more turf which play sound so they do not play to everyone in the area.
 - Made the join screen a little bigger for the "view player polls" option.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5801 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-02 16:51:57 +00:00
giacomand@gmail.com
a3b74c9d2b - Multiple runtime fixes.
- Moved some fingerprint procs to detective_work.dm.
 - Removed some unnecessary del() usage in the detective code.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5800 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-02 01:19:02 +00:00
Kortgstation@gmail.com
f4afd0fe2c Added wizard apprentices/magic contracts (devoid of any madoka references due to enormous self restraint)
You can buy a contract from the spellbook, same as any other artefact. Using the contract will pull a ghost (with wizard set to yes in preferences) and have them become the apprentice. The person using the contract chooses from 3 sets of 2 spells each for the new apprentice to learn. The sets are as follows:

Destruction: fireball/magic missile

Bluespace manipulation: jaunt/teleport

Robeless: knock/mindswap

The apprentice chooses their name and gets an objective to keep the wizard alive. For game ticker purposes, they count as traitors, so the round will still end if the main wizard dies. The apprentice spawns in normal blue robes and with a one use telescroll in their pocket.

If the contract is unable to find a ghost to become a wizard it will remain usable until it spawns one successfully. If the wizard changes their mind/there are no ghosts available, they can attack the spellbook with an unused contract to refund their spell point.

Redid the spellbook to have descriptions of spells visible before purchasing/fixed some of the cooldown times (from memory, some may still be wrong).

Updated the changelog.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5702 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-14 00:25:59 +00:00
aranclanos@hotmail.com
a8cb1dc4f8 Some improvement to the teleport scroll and spell code. It unbuckles the user now.
Thanks to Nodrak~

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5565 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-17 06:22:29 +00:00
giacomand@gmail.com
9afc2cbe7f -Chemical implants can now hold 50 units instead of 10.
-Made mutagen a catalyst instead of an ingredient. Fixes Issue 1100.
-Spellbook and Teleport Scroll doesn't show up for other players now.
-Added a syndicate intercom in the wizard's den.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5072 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-15 08:03:05 +00:00
giacomand@gmail.com
6a2d78bc94 -Killed the updateDialog lag. I added a check to see if there were any mobs to update, if not it will stop checking until a user uses the machine again. I had to replace all the machine = src and machine = null with procs to help make it manageable. I believe this is one of the culprits causing the server to lag as the round goes on, as more players will interact with machines.
-Atmos delay is now based on active players, to help fight lag for massive player rounds.

-Changed some for(blah in world) loops to use the correct lists.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-25 19:15:51 +00:00
johnsonmt88@gmail.com
e3b3ff836b The wizard's teleport scroll now only works if the wizard actually has it. Fixes issue 997.
I've also moved the teleport scroll define from defines/obj/weapon.dm into scrolls.dm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4846 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-11 23:07:34 +00:00
johnsonmt88@gmail.com
28aabc9810 More file structure stuff!
Cleaned up the files themselves.
Everything in code/game/objects should now be in proper files or places with the exception of the files in the /weapons/ sub-folder.

There's two instances of me not following the exact file structure.
- /obj/item/brain has been moved to a file in mob/living/carbon/brain
- /obj/item/clothing/mask/facehugger has been moved into mob/living/carbon/alien/special
Both of these may not make sense according to the object structure, but they do make sense logically. If it's a problem just move them.

Next up: Finish the files in the weapon folder, then start moving defines down.


My god I hope I havent broken everything.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4547 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 03:32:58 +00:00