They also added extra checks to
-Everytime a mob attacked (checking for super strength and electric hands)
-Every time a mob was attacked (checking for dermal armour)
-Every time a human was shot (checking for reflex)
-Every time a human breathed (checking for rebreather)
-Every tick of human life (checking for regen)
-Every hud update (checking for radar)
Not to mention just cluttered mob code in general. I know there won't be any noticeable performance increase from this but seeing as they were never going to be finished (I asked Doohl beforehand) and mob code is messy enough as is, I think only good can come of removing the code.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5587 316c924e-a436-60f5-8080-3fe189b3f50e
I got about half-way through changing these when SuperSayu came up and said he fixed this a while ago but never posted the fix. So technically half of these were fixed by me and half by him. Credit to both of us!
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5564 316c924e-a436-60f5-8080-3fe189b3f50e
- Added a verb that breaks all airgroups into individually processing tiles and a verb that forces a group-rejoin attempt on all airgroups. Once the verb to break all air groups is used, they will not attempt to recreate until the recreate verb is used. In other words, this is for debugging, not goofing around. Verbs available in debug verbs.
- Some atmos code standardization
- Decreased the pressure resistance of most items by a factor of 10, meaning pressure will finally actually move items around!
I also attempted to speed up air movement, but it caused runtimes and everything moved in checkered patterns and I got scared so I didn't include it in this commit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5554 316c924e-a436-60f5-8080-3fe189b3f50e
Standardization of the object tree and some modified functionality.
Moved a lot of storage/*_kit and similar boxes to storage/box/* ; most of these can now be found in boxes.dm. First aid kits remain a separate item type.
Replacement Light boxes pick up lights (for example broken ones) when used on them
Moved weapon/secstorage to storage/secure
Moved plant bags, ore satchel, trash bag, and sheet snatcher to storage/bag, in bags.dm
Fixed reagent_containers and snacks to pass through attackby() so the use_to_pickup code works. This affects plant bags, trash bags, and pill bottles.
Dice packs are now pill bottles, and all pill bottles can pick up dice.
Added error handling to uplink/generate_menu() so that one mistyped string doesn't bork the whole syndie uplink menu, since strings cannot be type-checked at compile time.
Cigarette packs and crayon boxes are now storage/fancy, however they retain existing update_icon() code.
Added a comment to storage.dm so that future people know where to look for use_to_pickup and allow_quick_gather code.
Updated all maps.
I've tried to test this thoroughly but I wouldn't be surprised if there were a few lingering issues. Try not to panic if you encounter any.
Full (i think) list of changed paths:
/obj/item/weapon/storage/flashbang_kit > /obj/item/weapon/storage/box/flashbangs
/obj/item/weapon/storage/body_bag_box > /obj/item/weapon/storage/box/bodybags
/obj/item/weapon/storage/chemimp_kit > /obj/item/weapon/storage/box/chemimp
/obj/item/weapon/storage/trackimp_kit > /obj/item/weapon/storage/box/trackimp
/obj/item/weapon/storage/seccart_kit > /obj/item/weapon/storage/box/seccarts
/obj/item/weapon/storage/handcuff_kit > /obj/item/weapon/storage/box/handcuffs
/obj/item/weapon/cigpacket > /obj/item/weapon/storage/fancy/cigarettes
/obj/item/weapon/storage/mousetraps > /obj/item/weapon/storage/box/mousetraps
/obj/item/weapon/storage/PDAbox > /obj/item/weapon/storage/box/PDAs
/obj/item/weapon/storage/id_kit > /obj/item/weapon/storage/box/ids
/obj/item/weapon/storage/lightbox/mixed > /obj/item/weapon/storage/box/lights/mixed
/obj/item/weapon/storage/donkpocket_kit > /obj/item/weapon/storage/box/donkpockets
/obj/item/weapon/storage/beakerbox > /obj/item/weapon/storage/box/beakers
/obj/item/weapon/storage/syringes > /obj/item/weapon/storage/box/syringes
/obj/item/weapon/storage/gl_kit > /obj/item/weapon/storage/box/rxglasses
/obj/item/weapon/storage/diskbox > /obj/item/weapon/storage/box/disks
/obj/item/weapon/storage/stma_kit > /obj/item/weapon/storage/box/masks
/obj/item/weapon/storage/lglo_kit > /obj/item/weapon/storage/box/gloves
/obj/item/weapon/storage/lightbox/bulbs > /obj/item/weapon/storage/box/lights/bulbs
/obj/item/weapon/plantbag > /obj/item/weapon/storage/bag/plants
/obj/item/weapon/storage/satchel > /obj/item/weapon/storage/bag/ore
/obj/item/weapon/trashbag > /obj/item/weapon/storage/bag/trash
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5494 316c924e-a436-60f5-8080-3fe189b3f50e
If you fail the step, has small chance of activating implant.
Gives you a sound and ~15 ticks to run away like hell.
Changes I did to other parts to make this possible:
-Implants are now organ-based, not mob-based
-Part of implant working code is moved to appropriate activate() procs
Credit goes to CodenameB and Spike68 for the original proposed commit. Althought it ended up changing, this commit still uses all of their suicide messages. Thanks to carn for pseudo-coding the base of the system that I ended up using to implement this.
The suicide verb checks the item in your active hand and calls that item's suicide_act(). (/obj/item/proc/suicide_act(mob/user)) The proc displays the suicide message to any viewers and returns a damage type. The suicide verb then applies 175 damage to the mob divided by the number of damage types. If the proc returns null (meaning that the item does not have a suicide_act() defined) the regular suicide occurs.
To any coder wanting to add items to this:
- You MUST return one or more damage types. "return (BRUTELOSS|FIRELOSS)" for example.
- Please do not manually type in the item's name; use [src] to refrence an it instead. It'll save time down the road if an item gets renamed. It also helps handle any child of that item without copy/pasting the proc to each child.
- Please do not use 'usr' for anything.
Parrots can now see which item they are holding onto in the stat panel.
The toy crossbow should once again work properly. Fixes Issue 1227.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5468 316c924e-a436-60f5-8080-3fe189b3f50e
This fixes a fuckload of runtimes and makes structures and machinery being able to cause damage on attackby procs, for example, using TK.
I'm not entirely happy of doing this, adding another var to a base class, but it's better than leaving a lot of hasvar() procs and it's easier than moving obj/machinery, obj/structure, etc, to obj/object/machinery, obj/object/structure, etc.
Also it doesn't break the entire game.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5457 316c924e-a436-60f5-8080-3fe189b3f50e
Moved helper for checking if mob is down on some operable surface to unsorted helpers.
Checking for tool type now will properly work with subtypes (istype instead of comparing type var)/
Runtime fix for being hit by something without there being a usr. This was most likely due to explosions or possibly mass drivers.
Runtime fix for simple animals using department channels. Only parrots can use them now as they are the only simple animal with the 'ears' variable.
Runtime fix for the mech's energy relay process() when there is no battery in the mech.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5405 316c924e-a436-60f5-8080-3fe189b3f50e
Added a new gun/projectile which deals brainloss as well as causes hallucinations.
Replaced the pulse rifle in stationCollision with the new gun.
Gave the HoS gateway access so he can banish people.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5201 316c924e-a436-60f5-8080-3fe189b3f50e
This will only trigger in surgery for now - That is when you cut someone open in surgery, you'd better wash your hands before, or otherwise you'll get infected wounds.
This is simply not acceptable:
- http://www.kamletos.si/screen%20overlay%20reduced%20size.png
- http://www.kamletos.si/screen%20overlay%20reduced%20size2.png- Made being in an area with extremely low pressure cause some damage (2 per tick)
- Reduced the amounts of oxy damage per tick from 1/ 2 / 4 to 0.5 / 1.5 / 3, depending on your body temperature.
- Reduced the maximum amount of high pressure damage per tick from 7 to 4. Slightly reduced the damage coefficient for pressure damage. This is to prevent insta-kills in high pressure areas. I still can't believe poly originally set it to 20 per tick...
- Added a maximum amount to how much your body temperature can change in each tick. It can go up or down by, at most, 30K per tick.
- Space suits and the captain's armor now protect against pressure damage
- Fixed some more of poly's awful code. The STOPSPRESSUREDMAGE flag now defines whether you take damage or not. You still need to have both a helmet and suit with that flag on to be fully protected from pressure damage. This will make the pressure damage indicator actually show what kind of pressure is affecting you and not just pretend like you're not taking damage, even if you are, while in a space suit:
//Poly code<TM>
if(istype(wear_suit, /obj/item/clothing/suit/space)||istype(wear_suit, /obj/item/clothing/suit/armor/captain))
--pressure.icon_state = "pressure0"
else
--...
- Standardized /obj/item/examine().
- Added the important stuff to the changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5004 316c924e-a436-60f5-8080-3fe189b3f50e
Item's attack_hand proc wasn't calling the item to be picked up if it was in your inventory, which meant that the lights couldn't update properly. By calling pickup, even if the mob was taking it from their own inventory, I was able to get the lights to update properly. I've tested all items that used /pickup and they all worked correctly, apart from tray which never worked correctly as I then tested it on the online servers. I'll create an issue report for that later.
-The crew monitor will now detect mobs that are inside a content of an object, such as a locker. I also made it so that it only detected mobs on the same z level as the computer itself, so people on the away missions and what not will not be able to see the crew member's on the station.
-Updated the changelog about my last commit, before this one.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4999 316c924e-a436-60f5-8080-3fe189b3f50e
The path has changed from /obj/item/weapon/mousetrap to /obj/item/device/assembly/mousetrap
Deleted mousetraps.dm, and removed the original define from weapon.dm
Added a new /obj/item proc, on_found(). It's called when pockets are emptied, and whenever someone looks in a storage item. Currently used only by mousetraps and facehuggers~
Updated the map with path changes.
Updated the changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4969 316c924e-a436-60f5-8080-3fe189b3f50e
Pretty much finished surgery system.
-working appendectomy, bone surgery, eye surgery, face surgery, brain surgery (humans only) and metroid core surgery.
-moved operation stages tracking vars to one op_stage datum. Left brain opstage var alone because way too many things reference it.
-added bone gel and bone setter.
-added check for surgery tools, so new doctors won't beat shit out of patients on optable too often.
-pretty much emptied surgery_tols.dm, it was unneeded by this point.
Still need to test it more, slap sanity checks everyfuckingwhere.
Also more literate messages written with help of trained monkey (faux).