Added eyes as an internal organ, removed the eye-stat var on mobs and changed it to properly direct it to eye damage. Altered all reference.
Updated the sleeper to allow for ejection of the beakers and occupants in panel.
Updated the body scanner to check for prosthetics/mechanized organs, and inform the individual of the blind disability.
Laid the groundwork for mechanical and assisted internal organs.
Groundwork for chemical: Peridaxon, a chemical that allows for the slow regeneration from organ damage.
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
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
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
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
This cleans up all of the files in code/game/objects/items/weapons. Meaning that the re-organizing part of this endeavour is complete. All that is left is to start dragging down all of the object definitions from code/defines/ into their proper places.
While I'm certain this is all good, I'll apologize now if files or paths end up broken.
Again: Make sure your .dme is up to date! Delete it if necessary to SVN Upload it to the current revision.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4550 316c924e-a436-60f5-8080-3fe189b3f50e
All credits to the author for this handy little script.
I Committed the modified python script to tool directory. Although it needs to be in the root folder of your repo to work.
To notice the improved compile times, in dreammaker go to Build > Preferences > and untick "automatically set file_dir for subfolders"
If this commit inteferes with any large projects just revert it, do your thing, then rerun the script. Easy-peasy.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4488 316c924e-a436-60f5-8080-3fe189b3f50e
Instead of 'x has been attacked with y by z' it now reads 'x has been 'y.attack_verb-ed' with y by z'!
Example:
Monkeyman has been bashed in the head with a riot shield by Nodrak!
or
Monkeyman has been stabbed in the chest with an energy sword by Nodrak!
- Every obj now has a list named "attack_verbs"
- When declaring an object, just use attack_verb = list("verb1", "verb2") and so on to initialize the list for that specific item.
- I've added a bunch of these to a ton of items already, feel free to modify or add more. Just try to stay away from gimmicky verbs (clown stuff being the exception.)
clothing.dm and spawner.dm only had a single definition in each of them, so their definitins have been moved to obj.dm and their original dm files deleted. I'm not sure about spawner but clothing had all of its other definitions removed recently.
radio.dm was a completely blank file, so it was removed.
Changelog updated
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4182 316c924e-a436-60f5-8080-3fe189b3f50e
-Redid icons to be more optimized at compile by setting icon = 'icons/folder/icon.dmi' instead of just icon = 'icon.dmi', meaning that Dream Maker doesn't have to search through every single file for every single .dmi. This shouldn't lead to any errors because of how I went about it, plus the fact that Dream Maker would have freaked out if I screwed something up. Also moved around 2 icons that weren't sorted well.
r4146 compile time: 1 minute, 40 seconds
r4147 compile time: 45 seconds
[VGTG]
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4147 316c924e-a436-60f5-8080-3fe189b3f50e
Created defines for disabilities and sdisabilities bitflags. Thos areas of code really need attention. Why are there so many blind variables/flags D= disability bitflags are located in setup.dm
Handcuff overlays now update when beepsky/ed-209s cuff you.
Resolves issue 628. Took a stab at tidying up handle_regular_hud_updates() for humans. If it's all working perfectly as it appears to be I'll start doing the same for other mobs. Whomever started 'fixing' this and then just abandoned it with redundant and heavily-broken code should be ashamed :[ It was/is in a real sorry state.
Resolves issue 617. Shades can no longer be weakened (stunbatons etc).
Fixed an issue with one of the antag deaf-sting/rune/whatever-it-was-I-forget causing nearsightedness rather than deafness :P
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3985 316c924e-a436-60f5-8080-3fe189b3f50e
update_clothing() has been broken up into it's key parts. A full explanation can be found in code/modules/mob/living/carbon/human/update_icons.dm
the tl;dr of it is that overlay updates are no longer called by the gameticker. Instead they are called by procs such as u_equip db_cick etc. This means faster updates (although admittedly, more of them can be called per tick). This however is offset by the fact that specific overlays can be updated now, vastly improving its efficiency. This will especially help when there are large numbers of dead mobs.
Fixed the throw code for TKgrab so it can be toggled.
Cloaking for aliens/humans/ninjas was changed. It's very crude at the moment and for that I apologise. But it works and is very efficient.It also stops cloaked individuals becomming invincible due to people being unable to hit them (even when they know exactly where they are)
Fixed a bunch of bugs with damage-overlays. They were updating FAR FAR to frequently. They were also horribly inefficient. They should now be virtually seamless when updating and only use cached icons, so they aren't affected by lag as badly. This may help with explosions lag a little.
There's still a tonne of stuff I need to refine with this. I'll be refining it down into some helper procs to reduce on code duplication and such
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3811 316c924e-a436-60f5-8080-3fe189b3f50e
- Added the tanning micro-mechanic. Hide still not available in-game yet tho until sprites are added and some use for leather is made. I'll get on that soon<TM>
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3794 316c924e-a436-60f5-8080-3fe189b3f50e
- Added 4 new cable colors. Pink (ported from Bay12), orange, cyan and white.
- Engineer tool belts can now also spawn with orange wire, in addition to yellow and red.
- Tool closets and electrical toolboxes can now spawn with cables in any of the 8 colors.
- Added cablecuff.ogg from bay12, played when you apply cable cuffs on someone
- Added this stuff to the changelog
So yeah, some stuff is credited to bay12, tho some of it was nearly enough completely recoded.
Screenshots:
http://www.kamletos.si/wire%20colors.pnghttp://www.kamletos.si/cuff%20restraints.png
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3770 316c924e-a436-60f5-8080-3fe189b3f50e
Full details in this thread:
http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=8898
And a summary of the most important bits:
-Door animations no longer desync and do the open-close-open thing. That's been around so long most people don't even notice
-Welding tools no longer get their icons desynced
-Fixed unpowered mineral door runtimes
-Chemistry machines now require power to run
-Fixed the proc to apply radiation based on armor, which means that you can actually not die of radiation as quickly if you wear armor that protects against radiation
--By fixing this, it also fixed the singularity, so you might want to be careful next time you run by it naked
--Also means that radiation events take armor into account. How great
-Hopefully have a bugfix to prevent borgs from using lag to enter the game without an AI or laws, but I cannot test it myself other than that it didn't break anything
-Disposal sound can only play once every couple of ticks, so no more ear-rape by disposals!
-Lasertag guns can no longer be used to make lasergun turrets
-Cleaned up stray pixels on several doors and the lasertag guns
-Reworked how falsewalls work, now whenever you attack them with certain tools (drills, welders, etc...) it instantly turns them into a wall and pushes the attackby(), meaning you might not even notice that you just drilled down a falsewall, and at the very least they are much more fitting
-Omni-directional PA console! Never have to worry about rotating that fucking computer again, because now it does it itself!
-The Marisa robe that spawns in the theater no longer protects like armor
-Tweaked coefficient list for fake insulated gloves (misplaced punctuation messed up the list a tad)
-Moved falsewalls out of 'transfer_valve.dm' and into 'structures.dm'
-Tweaked smoothwalls so it only connects walls with like minerals (only seen effect is on the new walls)
--Also added appropriate signs to areas
-Reworked portable turrets to be a lot less laggy, now they determine the projectile type once, then save it so they don't have to go through else if chains every time they fire
-Added many sprites from WJohnston, but many are not fully implemented (Mostly floor ones)
-Added a vending machine for engineering, the Engivend. Apparently it was needed because of the lack of availability of the Autolathe or whatever.
-Added WJohnston's Dark Gygax sprites, then made a Death Squad Gygax out of them. A bit tougher than the standard Gygax, improved battery, and is pre-fit with gear, ideally for 'hit and run' tactics
-New Odysseus construction sprites, also removed the Odysseus Carapace in favor of plasteel like the Ripley, meaning they in terms of construction, a Ripley is equivalent to an Odysseus
-Added an 'is_hot()' proc, when called it returns the temperature of the item in K, while taking into account things like whether or not the item is active or whatever
-Rewrote the Experimental Welding Tool, now instead of having a super-sized tank, it uses super-concentrated plasma that is turned into gas inside of it as its fuel source. Meaning, it will never have to be refilled, but it takes time for it to fill itself
-Added WJ's firelight sprites and code. Wanted to use them, but haven't had a chance to really implement them, but still, they're there
-Turrets made with lasertag guns now fire their respective team's bolt
-The turrets also automatically target anyone on the opposing team (But will continue to shoot at anyone, for shits n' giggles)
-Turrets get corresponding sprites based on team
-Shooting a turret with a different team's laser will disable it for 10 seconds
-You can also make ED-209's for your lasertag games/pissing off sec
-These are constructed just like a regular ED, but instead of a security vest and taser, it requires a lasertag vest and gun (same colors)
-When geared for lasertag, They will not arrest anyone nor melee them, only patrol (if set) and shoot
-They have their color schemes as well, and can be disabled just like turrets
-For both turrets and EDs, when geared for lasertag, they will not shoot anyone on the ground, this was due to very quickly learning how fucking OP that was for 1 turret to stunlock 3 people for eternity
-And when they are geared for lasertag, both the turrets and EDs have their access changed to maint, clown, and mime (This will not stop any of them from being shot, however)
-As a side note, you can also make lasertag stationary turrets for any map-related things
-Now walls are based on a plating system, meaning all walls have a girder with a mineral plating on top of it.
-As of right now, usable minerals are Silver, Gold, Diamond, Uranium, Plasma, and Sandstone (Lacking sprites for wood, *cough*)
-This also carries over to falsewalls, so you can make falsewalls out of any of those minerals
-Also, this carries over to powered doors, meaning you can construct useful doors out of minerals, so you could have actual diamond forts with doors requiring access to get in or whatever
-All of these are standardized, and for the most part work just like regular walls, meaning if you start slicing a wall, it will drop the mineral, or if you drill it, or whatever
-What was mentioned with the smoothwall tweak above, only walls of the same mineral will connect, so it all looks very nice
-Doors and walls made of uranium emit radiation when interacted with, with walls causing a 'ripple' effect, so the more walls nearby, the more radiation you get hit with
-Doors and walls made of plasma burn. It's a short, quick burn, but can easily be compounded in large structures
--As a note on plasma walls, I cannot get atmos and plasma walls to play nice (Since they are airless turfs), so I can't actually get them to ignite based on air temperature, but when they do ignite, they will auto-magically ignite nearby plasma walls, with a reduced temperature, meaning that if you want a massive chain reaction over a huge area, you better use something a bit hotter than a lighter
--Also, when plasma walls burn, they simply leave behind a girder, while doors leave assemblies
-Lastly, for nearly any kind of destructive action, Diamond walls are much more resilient, meaning they will take twice as long to be destroyed, and are immune to the effects of thermite
(Also, sprites for plasma walls and uranium walls are shite right now, waiting for replacements)
Update:
-Added cult walls as a 'mineral wall', meaning they will work on the same system and 'ReplaceWithMineralWall("cult")' will change any turf into a cult wall, hopefully for some cult-related activities soon
R&D stuff:
-Now instead of 1 sheet or ALL OF THE SHEETS, you enter a number as to how many sheets you want (it's sanitized to hell as well)
-Minerals no longer multiply when inside RnD machines. (Who fucked that one up? Goddamn)
-Mech fabricators are both deconstructable, and putting higher level parts actually improve it, each 'Tier' up is equivalent to +1 tech levels for that, so a High Powered Micro Laser would give the same bonus as +1 Material Research, a Pico Manipulator would give the same bonus as +2 Engineering, etc
-Complete with a shitty opened Mech Fab sprite!
-And not shitty overlays so autolathe's animate the material that is put in them, rather than give everything that's not glass the metal animation
LOL THE JOKES ON YOU I JUST COPY PASTED HIS TOPIC
added a few svn ignores, for thumbs.db and maps/backup
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3751 316c924e-a436-60f5-8080-3fe189b3f50e
- Welding tool code how has proper comments! Maybe not "proper" but at least I don't lie and say a proc is/does something that it doesn't actually do.
- Welders now start full of fuel instead of some random amount between 10-20
- Someone decided it would be a good idea to set the welding tool's 'on/off' var in a ton of attackby() procs. These objects and turfs shouldnt even touch this variable. This is why people have been noticing their welding being on without the sprite or damagetype and amount reflecting that.
- - I've removed a bunch of these instances but there are so many objects and turfs spread out through the code, there's no way to know if I've got them all (This is the majority of the files)
- - I've created a new proc in welding tools that checks to see if they are turned on or not. "isOn()"
- - Since I'm not sure if I've gotten every instance of this force-var-on, I've set the welding tool to update it's icon every process(). I hate adding checks like this to processes but it's necessary for now.
- Added a setWelding() proc. If you HAVE to turn the welding tool on or off, use this, don't just change the var. In fact, dont even touch the 'welding' var anymore
- Fixes issue 435
While changing the hundreds(literally) of cases of welding tool uses I've
- Changed some :'s (object:varorproc) I've come across into .'s (object.varorproc)
- Added checks to make sure the welding tool is actually on before using it (some attackby()'s didnt have this. Heck, some checked how much fuel you had, but didn't actually USE the fuel)
- Added sanity checks after some do_after()s that were missing them
Added traitor uplink items back to erro's stat tracker
- Added 'random' with the tag "RN"
- Added thermal meson glasses with the tag "TM"
- Reorganized uplinks.dm a little by moving the 'random' item generation to its own proc
- NOTE: I have absolutely no way to test this on my own, but it should work!
I've tested a bunch of construction/deconstructions with the welding tool, but again I've probably missed a few things. If there are any problems, please let me know and I'll fix them asap.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3741 316c924e-a436-60f5-8080-3fe189b3f50e
- I added in the foundations for traitor factions. See factions.dm for all the different faction datums. They don't do anything yet.
- I completely ported mob/var/mutations from a bitfield to a generic list. Mutation enumerated-identifiers are added into this list. For instance, TK = 1, COLD_RESISTANCE = 2, XRAY = 3, etc... The purpose of this was because bitwise operations could not actually be used after a certain size (because BYOND is stuck in the 16bit era).
- I've added in completely-functional nano-augmentations. Check under implantnanoaug.dm for a list of implants and implaners. As mentioned previously, they are completely functional but may be slightly OP. Among these nanoaugs are Super Strength, Psionic Radar, Electric Hands, Energy Blade/Sword Synthesizer, Rebreather, Dermal Armor, Combat Reflexes, and Regenerative Nanorobots. I won't go into detail as to what they do, but hopefully they should be self-explanitory. If not, check out their descriptions in the file previously mentioned.
- Added in a future traitor item, the Mind Batterer. Along with it a new .ogg file.
- New telecomms bus mainframe sprite, thanks to WJohnston.
- New holdable shield, sprites courtesy of Muncher (i had to mangle the side sprites because of a technical little issue. I'll change it back to the original soon). It can be retracted and expanded. Probably only going to be given to traitors.
- A couple of minor bugfixes here and there, along with some code tidying.
Hope this isn't too large a commit. I intended it to be MUCH larger, but I've decided to split up my Traitor Factions expansion into smaller commits.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3692 316c924e-a436-60f5-8080-3fe189b3f50e