Commit Graph

505 Commits

Author SHA1 Message Date
MrStonedOne 9d78b82ddc Makes hud/alert's destroy request obj pooling 2015-04-29 02:30:50 -07: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
Remie Richards e9363ef31a Fixes alert feedback typo 2015-04-28 21:36:55 +01:00
Remie Richards fca3c0bdb5 Adds Plasmamen! Adds the ability for species to breathe other gases! 2015-04-28 20:48:14 +01:00
phil235 e16a817b55 Adjusts electrocution damage from cells and powernets. Less RNG and never goes above 95 to avoid instacrit.
Fixes item attacks targeting a random limb instead of the one selected.
2015-04-26 23:48:20 +02:00
kingofkosmos de280c72b5 Removed some more spans from visible messages. 2015-04-24 21:06:59 +03:00
kingofkosmos 9ebbdb2fb2 span fixes 2015-04-24 20:52:01 +03:00
MrPerson 8f0cda1afa More screen alerts
High (uses "Hallucinating" icon), blind, embedded objects, asleep, weightlessness, new law (silicons), hacked (cyborgs), and locked down (cyborgs). The new law alert times out on its own after 30 seconds. The code for timing out is rough but works.

Sprites are provided by ZyloWalsh and can be seen at https://tgstation13.org/phpBB/viewtopic.php?f=11&t=3167
Drunk isn't in atm because I was waiting on phil to finish some reagent stuff. Hallu kind of ruined the "surprise" so I decided not to use it. Weaken/stun/paralysis are also not in right now because I'm lazy. All the sprites are included even if they're unused.

Added a proc human/has_embedded_objects() that returns 1 if src has any objects embedded in any limbs.
2015-04-18 16:54:36 -07:00
GunHog 365d9889ac Malf AI Mech Jacking!
- Malf AI, for 30 CPU, can hack into a mech and gain control of it.
- This strategy is permanent. Once installed, there is no escape.
Period. The mech dies, so does the AI.
2015-04-14 16:46:15 -05:00
Jordie c3634b6a10 Merge pull request #8818 from norill/corner_pushing
Move_Pulled around corners
2015-04-13 18:23:19 +10:00
AnturK 42699ad4b4 - Made hide/show button mesh better 2015-04-11 17:06:45 +02:00
AnturK e2c869bc77 - Adds generic action and action buttons system 2015-04-11 17:06:43 +02:00
hornygranny efdb97983f Merge pull request #8696 from MrStonedOne/actionbuttonfix
Raises action button count from 5 to 30
2015-04-10 12:52:33 -07:00
phil235 2ef8e76560 Merge pull request #8785 from AnturK/alien_proc_holder
Turns alien abilities into proc holders
2015-04-10 21:19:49 +02:00
kingofkosmos c8931f4cfc Only actual internals masks work now for internals. 2015-04-08 21:08:16 +03:00
kingofkosmos f114768c1d it broke 2015-04-08 19:17:18 +03:00
AnturK fdcae0a7ba - Turns alien abilites into proc holders 2015-04-08 16:56:43 +02:00
norill bb93aaf8c1 Move_Pulled around corners
- can now move dense objects around corners in a non-gimmicky way
2015-04-08 02:47:56 +02:00
kingofkosmos 97cbc65d6d usr -> C 2015-04-06 10:38:51 +03:00
kingofkosmos 8e63fe05c1 Breath mask autotoggle
Now if you have a breath mask on your face, but lowered, and decide to start running on internals, you will automatically adjust the mask back on your face!
2015-04-05 22:03:24 +03:00
MrStonedOne 04a946c524 Raises action button count from 5 to 30
Just a note, as long as we are gonna senselessly move everything to action buttons, lets not forget that only humans have them, and atm monkeys and the like can not use action buttons for things where object verbs have been removed.

Something to think about before it gets to the point where simple mobs/monkeys/borgs/etc can't use anything.
2015-04-02 01:33:32 -07:00
Jordie c8e0c16d09 Merge pull request #8520 from MrPerson/effect_cleanup
Effect pooling
2015-03-30 01:21:40 +11:00
Swag McYolosteinen bdfd2a2f7c Merge pull request #8554 from RemieRichards/MonkeyHats
Monkeys can wear hats!
2015-03-28 13:47:35 +01:00
Remie Richards 5b20448e2b Monkeys can now wear hats! Monkeys can now also wear all masks, instead of the select few they had icons for (which have been removed, since they are no longer needed) 2015-03-26 15:23:52 +00:00
MrPerson b6c71dc50d Effect pooling
obj/effect/effect all pool themselves.
PoolOrNew() can now be passed a type and a list instead of a type and a location. In that case, the list will be passed to New() via arglist().
RCD's now delete their spark system and properly garbage collect.
2015-03-24 11:44:49 -07:00
phil235 48bbf303da Fix conflict in xenobiology.dm
Simplify simple_animal/attackby()
more work on slimes.
2015-03-20 22:05:09 +01:00
phil235 aecb365f84 Merge branch 'master' of https://github.com/tgstation/-tg-station into SlimeAnimal
Conflicts:
	code/modules/mob/living/carbon/alien/life.dm
	code/modules/mob/living/carbon/life.dm
	code/modules/mob/living/carbon/slime/slime.dm
	code/modules/mob/living/silicon/robot/life.dm
	code/modules/mob/living/simple_animal/slime/life.dm
2015-03-20 19:32:16 +01:00
Cheridan da1e6f57f0 Merge pull request #8334 from MrPerson/cleanup_crew_comin_through
Code cleanup
2015-03-15 01:55:39 -05:00
phil235 456a64f8fd slime from carbon to simple animal 2015-03-14 23:40:57 +01:00
Cheridan e5428c1519 Merge pull request #8256 from phil235/StrangenessTextFix
Strangeness text, janicart, alien nest, weak golem fixes
2015-03-13 15:23:30 -05:00
MrPerson e7ba8df654 Moved all pull icon updating to update_icon(), to reduce copy+paste.
Made the pull icon update_icon() as part of creation as requested by oranges.
2015-03-13 12:10:13 -07:00
MrPerson 9038fb15af Code cleanup
Removed a bunch of unused or hardly used vars on /mob and /atom/movable.
Added defines for mob/living/var/mob_size so it's not using magic numbers.
2015-03-13 10:41:00 -07:00
phil235 71d560bd3a Fixes a runtime with buckling screen alert
Fixes being able to buckle to janicart while crit and when there's a dense object on the janicart's turf.
Fixes alien nest not buckling and being wrongly pixel shifted, and fixed a runtime.
Fixes golems being super easy to weaken by punch and not doing more damage themselves via punch.
Fixes some typos.
2015-03-09 19:09:52 +01:00
MrPerson 24dcf08b2e Merge branch 'master' of https://github.com/tgstation/-tg-station into alert_alert_ur_a_faget
Conflicts:
	code/modules/mob/living/carbon/alien/humanoid/life.dm
	code/modules/mob/living/carbon/alien/larva/life.dm
	code/modules/mob/living/carbon/alien/life.dm
	code/modules/mob/living/carbon/monkey/life.dm
	icons/mob/screen_alien.dmi
2015-03-02 12:04:38 -08:00
Cheridan d218256e32 Merge pull request #7854 from phil235/LifeProcsDuplicateFix
Life procs duplicate fix
2015-03-02 09:16:09 -06:00
MrPerson 8ffbc1be14 On screen alert system
Replaces some of the hardcoded HUD icons defined at mob level with a pair of mob procs throw_alert() and clear_alert(). Alerts will appear on the top-right side of the screen.
You can shift-click alerts to get a description of what's wrong and sometimes a tip on how to solve the alert.

Alerts can be given a master, which overlays the master on top of a box and forwards clicks of the alert to that master. Getting buckled will put an alert of what you're buckled to, for example. If it's a chair, you just click the alert and you're unbuckled. The idea I'm shooting for is to replace resist entirely with this kind of stuff.

Making a new alert and using it is a little complicated. This explanation will suck, but this is simpler than I'm making it sound, I promise. Throw_alert() has 4 args, category, id, severity, and obj/new_master. If you don't supply an id, category will be used as id. Only 1 alert per category is allowed; any duplicate will be replaced. Additionally clear_alert() clears alerts by category. Id MUST match a type path of /obj/screen/alert/[id]. That type path is where the alert's name and desc come from. The icon_state of the alert will either be "template" if new_master is set or [id][severity] otherwise. new_master is totally optional.

Examples:
throw_alert("oxy") -- takes name/desc of obj/screen/alert/oxy, icon_state = "oxy" -- clear_alert("oxy")
throw_alert("nutrition","fat") -- takes name/desc of obj/screen/alert/fat, icon_state = "fat" -- clear_alert("nutrition")
throw_alert("nutrition","starving") -- takes name/desc of obj/screen/alert/starving, icon_state = "starving" -- clear_alert("nutrition")
throw_alert("temp","cold",1) -- takes name/desc of obj/screen/alert/cold, icon_state = "cold1" -- clear_alert("temp")
throw_alert("temp","cold",3) -- takes name/desc of obj/screen/alert/cold, icon_state = "cold3" -- clear_alert("temp")

If you pass a new_master, id is only used to get name/desc and still must match a path, but the icon_state is "template" and icon is from the mob's ui preference instead of icons/mob/screen_alert.dmi.

Several unused icons removed, like borg oxygen and temperature alerts. Also some icons were used but now are not and were removed, like the nutrition icon for being well-fed and cyborg charge icon for being fully charged.
2015-03-01 17:31:26 -08:00
paprka 1b62290572 remember to test your fixes before you act snarky 2015-02-27 04:35:46 -08:00
hornygranny f7342415c1 Merge pull request #7959 from phil235/AttackSelfTKFix
A bunch of fixes
2015-02-25 19:54:36 -08:00
phil235 18323955a7 Merge branch 'master' of https://github.com/tgstation/-tg-station into LifeProcsDuplicateFix
Conflicts:
	code/modules/mob/living/carbon/human/life.dm
2015-02-25 19:01:59 +01:00
Remie Richards b1ff6b7220 Merge branch 'master' of https://github.com/tgstation/-tg-station into AttackbyParams
Conflicts:
	code/game/turfs/simulated/floor/light_floor.dm
2015-02-24 22:16:53 +00:00
phil235 79de9615dc Fixes not being able to prime grenade, toggle lamps and other attack_self things with TK.
Fixes the blobbernaut death animation looping.
Fixes armchair layer being above ghost layer.
Fixes chloral hydrate metabolization rate (and 2 other reagents)
Fixes a typo in closet/attack_self() .
2015-02-24 16:36:40 +01:00
phil235 e9a943218c Fixes being able to break free from a pull while handcuffed if the puller is buckled.
Add the incapacitated proc to mobs to check for stat, stun, weakened, paralysis, restrained. And replacing those checks by that new proc in some places.
2015-02-21 14:49:47 +01:00
phil235 c8b0a21baa Fixes a lot of duplicated code in life and its subprocs for carbon mobs.
Fixes cyborg and monkeys no seeing any flash when flashed.
2015-02-21 00:37:04 +01:00
Remie Richards 5fc7af7fbf attackby() now has an argument containing the parameters of the click that called it. Items placed on tables now center their icon where the user clicked. this is NOT true for racks, since racks look organised in their sprite.
Items reset their pixel_x and pixel_y values on pickup.
2015-02-19 13:02:43 +00:00
Swag McYolosteinen f130872f4e Merge pull request #7517 from RemieRichards/MovableUIElements
Movable UI Elements!
2015-02-10 17:50:33 +01:00
Remie Richards 37809856ee Prevents movable and snap UI elements from being placed outside the screen region, resulting in runtimes. 2015-02-06 22:37:18 +00:00
Remie Richards 6290462c20 Adds Debug verbs for Movable and Snap UI Elements (R_DEBUG Admin rank required) 2015-02-03 22:38:45 +00:00
dannno d8823a8038 Merge branch 'master' of https://github.com/tgstation/-tg-station into killyoselfmyman 2015-02-02 19:30:24 -05:00
Remie Richards c271abe599 Adds 2 types of movable UI element, One the snaps to the turf grid, and one that places it's center where the cursor is. 2015-02-02 20:30:35 +00:00
dannno c48bf44a47 framework for a future "suicide hotline" job 2015-02-01 19:44:54 -05:00