Commit Graph

28 Commits

Author SHA1 Message Date
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
Iamgoofball
c06ad7e6b8 moved process() to datum. made /datum/reagents/ process instead of the containers. 2015-04-07 17:13:59 -07:00
Iamgoofball
54154bec12 Merge branch 'master' of https://github.com/tgstation/-tg-station into explosive 2015-04-07 16:21:07 -07:00
phil235
0b403b3b03 Fixes lack of dna in old blood.
Fixes some comments about blood procs in atoms.dm
Small tweak in xeno blood blood_DNA.
2015-03-31 19:48:44 +02:00
Iamgoofball
434265afa0 Reagent Decals 2: Black Powder Boogaloo 2015-03-22 02:04:31 -07:00
Mandurrrh
48daa155d7 Fixes #8116 trails bug 2015-03-04 19:53:11 -05:00
paprka
d6dce069f4 finally actually fixes the blood decals 2015-02-01 00:29:37 -08:00
paprka
0b64a23310 fixes blood drips 2015-01-31 23:40:27 -08:00
paprka
a661e58281 Merge branch 'master' of https://github.com/tgstation/-tg-station into ointmentandshit
Conflicts:
	_maps/map_files/TgStation/tgstation.2.1.3.dmm
2015-01-31 22:03:00 -08:00
paprka
f071655ea4 updates and optimizations 2015-01-24 01:12:57 -08:00
paprka
1cdd5f011f blood for the blood god 2015-01-20 19:17:59 -08:00
Razharas
7758a0afed Ok now explosions shall work properly
Changed severity to target, make items not destroy themselves on
severity lower than 1, all that stuff
2014-12-05 23:21:48 +03:00
Razharas
ff456ebaf4 Unwinded most of shit
Meh
2014-11-19 21:36:45 +03:00
Firecage
22743b77f4 Adds asbolute paths to some effect files. 2014-08-07 18:59:06 +02:00
Cheridan
f83f1932b2 Meteor code uses OOP principles a little better now
Adds new types of meteors with different effects.
Meteors drop some ore when they hit.
2014-04-23 01:37:44 -05:00
MrPerson
9eee3e5067 First pass at a qdel() garbage collection system for tgstation
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.

New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.

ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
2014-02-23 14:55:12 -08:00
VistaPOWA
b5fff895ee Makes decals disappear after an explosion
Fixes runes, dirt, blood, etc remaining and floating in space after an
explosion.
Gibs are excluded from this change.
2013-09-30 20:19:41 +02:00
VistaPOWA
881a895bd6 removes extra unused code 2013-09-17 18:03:01 +02:00
VistaPOWA
5a2bb3fbf7 Finalizing blood trails
Makes trail_holder a child of cleanables instead of blood (this is to
allow add_blood turf proc to spawn blood splatter on blood trails, also
other kinds of blood effects), also cleaned up the blood code a bit.

Big props to Aranclanos, Cheridan, Pewtershmitz and all other coders on
#coderbus for making this happen.
2013-09-17 00:57:37 +02:00
VistaPOWA
1da8b659ff blood trails now stack
--DO NOT MERGE STILL WIP--
Makes blood trails use overlays, the overlays are contained in a holder
object. DNA is now properly added to them.

todo: redo light, xeno light and xeno heavy trails. help of spriters is
welcome.
2013-09-12 19:25:21 +02:00
VistaPOWA
214ae08073 Adds directional blood trails
The blood trails now follow the path the body has taken and players can
very easily make out said path.
Heavily damaged corpses will have a much thicker blood trail than
corpses with some brute damage. At the moment, trails overwrite
eachother and a placeholder icon set is used for alien heavy blood
trails.
2013-09-03 00:03:01 +02:00
Pete Goodfellow
2b3c769662 Makes /obj/effect/decal/cleanable/dirt mouse_opacity 0, as it covers the whole tile and prevents people from crowbarring it up.
It can still be cleaned by mopping the tile.
2013-03-24 16:01:49 +00:00
giacomand@gmail.com
cd2fcfc920 -Fixed blood vomiting not hurting you.
-Removed an unneeded fingerprint proc.
-Fixed some of the blood/vomit/gibs spills not correctly processing.
-Reduced the life of a virus with no mob host.
-You can now tell how a virus spreads by the Pandemic.
-Made making vaccines quicker and making blood virals quicker too.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5232 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-30 16:37:35 +00:00
giacomand@gmail.com
e2acdcfe47 -Admins can now make their own advance diseases via the secret button! Instead of the useless "virus2" button, there will now be an option called "Create Your Own"! Use this button and pick from 5 symptoms to make your disease from.
-Fixed a bug where blood/vomit decals would be creating new viruses.
-Medical computer won't recognize advance diseases... for now.
-Used english_list when displaying symptoms.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5100 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-17 19:53:00 +00:00
giacomand@gmail.com
7955d348d8 Lots of bugs fixed for advance diseases.
Fixed advance diseases using the same reference in mobs.
Fixed advance diseases referencing other advance diseases' symptoms, instead of just copying it.

I tested it more thoroughly this time and I can't find any issues but if you do please add them to the bug tracker and or contact me on #coderbus.

Added a new reaction which will remove symptoms from a disease. Needs blood and synaptizine.
Added a new symptom, shivering will make you cold.

Tweaked and balanced some symptoms.

Removed the "flex" emote that hulks will do randomly.
Reduced the change to speak for hulks and brain damaged mobs. ( 7% -> 3% chance)

Please let me know if anything is out of place or wrong.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5048 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-13 00:28:07 +00:00
elly1989@rocketmail.com
999cc84c1c Resolves Issue 976 - gibs are now anchored again
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4770 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-29 05:56:41 +00:00
d_h2005@yahoo.com
0619a8f5de -Changes flour from an item to a container-held reagent. All recipes have been updated to use 5 units of reagent flour for every item required previously.
This has a few advantages: The 16(!) sacks of flour previously in the kitchen cabinet have been condensed to an equivalent 3 sacks. Beer is now brewable with universal enzyme, and converting lots of wheat into flour should be less tedious. Also, flour grenades, etc.
Because of this, flour is now obtained from the all-in-one blender rather than the processor, and spaghetti noodles are made with 5 units of flour in the microwave.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4637 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-06 15:55:44 +00:00
johnsonmt88@gmail.com
d91ea514d9 More file structuring.
closet.dm, costume.dm, decal.dm and window.dm have been knocked out of the define folder and their defines have been moved into appropriate files.

The closet folder has been re-organized a little.

supplypacks.dm has been moved into the datums folder since that's what it is.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4627 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-05 22:44:48 +00:00