Commit Graph

49 Commits

Author SHA1 Message Date
phil235 8499413649 Makes living/verb/resist more object oriented.
Adds a fourth mob size "MOB_SIZE_TINY" to differentiate corgi size and mouse size. (used in bear trap code)
Rewrites beartrap/Crossed() to have less istype checks.
Adds a flying var to simple animals (used in bear trap code)
Makes pulling update in living/life.dm() to fix pulling not stopping when you're incapacitated.
2015-04-06 18:45:37 +02: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
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
Mandurrrh e03d98786b Fixes #7910 and #7909 clown related bugs. 2015-02-22 20:53:39 -05: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
dannno c18f485b17 fix shit, make bible suicide sacrifice you to your deity 2015-02-02 15:13:17 -05:00
dannno c48bf44a47 framework for a future "suicide hotline" job 2015-02-01 19:44:54 -05:00
Razharas 21a2c2d21e Made clumsiness into disability
I really dont want to make clumsy_act()
2014-12-14 08:04:48 +03:00
Razharas 0921aa201f Added datum mutations
Also removed some mob vars like sdisabilities and merged the usability
with disabilities
Removed need for mutations var, they are not handled in dna
Removed blinded var, now its handled by eye_blind being bigger than zero
Ands lots, lots of other shit in files that used mutations
2014-12-12 04:48:11 +03:00
tkdrg afbc910505 Adds some feedback messages for handcuffing. 2014-11-26 21:27:53 -03:00
phil235 0bc84e120e Merge branch 'master' of https://github.com/tgstation/-tg-station into TorchFix
Conflicts:
	icons/mob/items_lefthand.dmi

Adding PR 5829 to my PR so both can be merged now.
2014-11-22 18:56:31 +01:00
hornygranny 55ff8ab432 Merge pull request #5206 from paprka/usedcuffs
Used zipcuffs name change
2014-10-20 19:28:10 -07:00
paprka dc9d194706 fixes zipeties typo 2014-10-15 00:07:42 -07:00
paprka c83e0d65a0 used zipcuffs name change 2014-10-11 18:08:52 -07:00
paprka 149c9a3a76 big update 2014-10-08 20:58:43 -07:00
paprka 16a0f12ffe fixes name stuff 2014-10-08 13:33:17 -07:00
paprka d61e4ac943 big commit, handcuff overhaul 2014-10-08 13:19:54 -07:00
paprka 8f9dfe0c5b code optimizations (thanks remie) 2014-10-08 07:12:00 -07:00
paprka 060c64b854 breakouttime increased to 45 sec 2014-10-07 19:30:02 -07:00
paprka 01d69299eb changelog and consistency name fix 2014-10-06 21:21:03 -07:00
paprka 0e1083fc39 adds zipcuffs 2014-10-06 20:35:10 -07:00
Kelenius a8b7588c12 Merge branch 'master' of https://github.com/tgstation/-tg-station into Temp
Conflicts:
	code/game/objects/items/weapons/grenades/ghettobomb.dm
	code/game/objects/structures/door_assembly.dm
2014-06-19 02:27:10 +04:00
Kelenius 3908160998 One big update for stacks. 2014-06-10 20:36:08 +04:00
ikarrus 40800b79e0 The Loggening: Admin Edition
-Build mode logging. A lot of its functions are highly abusable but not logged
-Gravity Catapults no longer spam asay. They will be kept in the game log.
-Logging for Cyborg handcuffs
-Logging for Stripping/equipping
-Logging for decreasing PA power control. Easier as an admin to tell when I should panic without having to watch them like a hawk.
-Logging for disposaling people
-Some code optimizations along the way as well
2014-06-02 23:13:33 -06:00
MrPerson 6b29fecda1 Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/machinery/bots/ed209bot.dm
	code/game/machinery/rechargestation.dm
	code/game/machinery/turrets.dm
	code/game/objects/structures/crates_lockers/closets.dm
	code/modules/research/circuitprinter.dm
2014-03-08 22:03:03 -08:00
MrPerson 3c58091437 Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel
Hopefully nothing went wrong but you never know.

Conflicts:
	code/FEA/FEA_fire.dm
	code/controllers/supply_shuttle.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/machinery/autolathe.dm
	code/game/machinery/drying_rack.dm
	code/modules/hydroponics/hydroponics.dm
	code/modules/projectiles/projectile/magic.dm
	code/modules/reagents/Chemistry-Recipes.dm
	code/modules/reagents/reagent_dispenser.dm
2014-03-02 21:39:27 -08:00
Hornygranny 20901b24d0 Increases cuffing speed to match secborgs, help with shorter stuns 2014-03-01 21:00:39 -08:00
hornygranny ac8763227b Slightly sped up cuffing to compensate 2014-02-27 11:07:43 -08:00
hornygranny c31647376e This is for discussion of things that need to be changed to move away from purely stun based combat. Please only comment if you have something to contribute, rather than just saying you like or dislike it.
Shoes do not increase your movement speed
Stun/weaken on basically everything reduced from 10+ to 5 ticks
Time to unbuckle/uncuff self halved
2014-02-27 10:56:06 -08: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
Miauw 3b24bb64f4 Merge branch 'master' of https://github.com/tgstation/-tg-station into NODROP
Conflicts:
	code/modules/mob/transform_procs.dm
2014-02-18 18:22:40 +01:00
Hornygranny 9d3f8f6a2d second pass 2014-02-15 20:11:12 -08:00
Hornygranny 9e14c22747 Reduces throwspeeds on all items to realistic levels. 2014-02-15 19:58:03 -08:00
hornygranny e0d0cedf36 passed over everything with throwforce 2014-02-13 18:06:50 -08:00
Miauw 9b8656247c u_equip is now called unEquip PANIC 2014-02-13 20:58:33 +01:00
Miauw 8c7ef19be6 Replaced before_take_item() and drop_from_inventory() with u_equip 2014-02-12 19:51:37 +01: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
Razharas 358a85eb3d Completed the transition to a new proc
All the logging i have found in the code was changed to use the
proc(maybe i missed something)
Killed all runtimes found so far
Proc now handles all the checks, no need to add checks in the body of
object
2013-12-17 22:56:04 +04:00
Cheridan d7406925a8 -Actually fixes the issues with inhands not updating. Thanks to Aranclanos. 2013-04-22 01:03:42 -05:00
Cheridan 189611e6d6 -Fixes the stuff Giacom pointed out.
-Updated some other items to use the hitsound var while I was at it.
2013-04-21 23:26:59 -05:00
Cheridan 8f02d5fee1 Commitin' the stuff that didn't merge 2013-04-16 23:13:35 -05:00
Pete Goodfellow 6c34a59aca Cuffs now play the sound when they're first used, not when they're finished. 2013-04-13 01:14:10 +01:00
carnie 7c01c25232 Merge branch 'master' of git://github.com/Cheridan/-tg-station 2013-03-11 17:51:19 +00:00
Cheridan 971cf6e628 Cable coils and cable cuffs now use the inhand sprites. Only red and blue, for now. 2013-03-11 11:53:27 -05:00
Pete Goodfellow 14b1777359 Rewrote how handcuffs work. Fixes gcode issue 1376.
Includes standardization and text styling.
2013-03-11 15:54:00 +00:00
aranclanos@hotmail.com 3a2673a284 Changes for all the different update icons procs of humans and monkeys, they now update their own sprite and hud icon (if it's a proc of a slot item) without having to call for update_icons().
A lot of different calls for update_inv_[slot] now won't call for update_icons.dm(). Such as dropping, throwing, picking up objects, moving objects around your gear, using your active hand, firing guns, stripping, etc.
All the different calls for UpdateDamageIcon() now they won't call for update_icons()
The different sprites of humans/monkeys will now have their own layer, humans starting with MUTANTRACE_LAYER in layer -1 to R_HAND_LAYER in layer -20, so the sprites don't get messy overlapping eachother if update_icons() is not called. To help this change, all layers numbers were changed, R_HAND_LAYER used to be 1, now it's 20. (This can be changed back if it ends up being confusing or ugly to read)

TL;RL I removed 90% of the calls for update_icons() modifying the different update procs of update_icons.dm of monkeys/humans. The goal is to reduce lag.

JUST IN CASE, lying down will call for update_icons(), so players have an easy way to update their icons if something goes horribly wrong. Which won't. I hope.


Fixes issue 842. Handcuffs sprites appearing on the player's UI if this one was handcuffed. Because I liked this we'll call it feature and add some awesome sprites made by Cheridan, you'll now have a new sprite on your UI telling you "you're handcuffed buddy!". (Also he named the sprites so don't blame me)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5809 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-04 05:01:07 +00:00
johnsonmt88@gmail.com e7ebfae317 Another whack at the defines folder:
Removed defines/obj/toy.dm and moved the defines down to objects/items/toys.dm

Moved a big chunk of defines out of defines/obj/weapon.dm and into their respective .dm files.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5441 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-01 01:25:02 +00:00
johnsonmt88@gmail.com 4ddf9100f5 Sending a message should no longer work if you are incapacitated. Fixes issue 1120.
Moved some mob vars to carbon:
mob/var/handcuffed -> mob/living/carbon/var/handcuffed
mob/var/legcuffed -> mob/living/carbon/var/legcuffed

As a result, I've turned some procs into pure virtual procs and moved their code into carbon.dm.

mob/proc/restrained() -> mob/living/carbon/restrained()
mob/proc/can_use_hands() -> mob/living/carbon/can_use_hands()

The hand and legcuff portion of mob/proc/u_equip() was moved into mob/living/carbon/u_equip().

The handcuffed portion of mob/proc/show_inv() was moved into mob/living/carbon/show_inv().

Fixes issue 1114.

Made parrots immune to bear traps since parrots should be flying over them anyway.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5184 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-25 00:28:47 +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