Commit Graph
86 Commits
Author SHA1 Message Date
giacomand@gmail.com 4bd095fbb8 -Added photo support for newspapers.
-Removed some commented out code for advance diseases.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5296 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-11 10:48:37 +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 7cd6d5eaa4 -Added the previously unobtainable hallucigen disease to the virus crate. Increased the virus crate from 20 to 25.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5194 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-25 21:56:18 +00:00
giacomand@gmail.com 03dad49037 -I forgot a symptom file and the .dme.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5193 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-25 21:33:40 +00:00
giacomand@gmail.com af523d3e8f Added a new symptom with a high level, so that it's not possible to gain through mutations.
Gave the high level symptoms their own preset diseases and added them to the virus crate, along with a bottle of mutagen.

Several disease fixes, such as disease stages going below 0. Diseases which spread by blood will longer spread when you touch someone (i.e: click on someone)

I also did some cleaning up with comments.

Made handheld radios broadcast if their messages aren't sent on the same level as they're on, meaning that turning off the relay to the station will not make it impossible to communicate with others with radios.

Made some events only effect people on the station Z level.



git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5192 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-25 21:32:07 +00:00
giacomand@gmail.com f1d24f27f9 Simplified Detective.
-Changed the focus from the high-res scanner to the regular scanner. It will simply scan the fingerprints and display them to the detective. For extra functionality, it'll store it's findings in a log and then you can print it out in a report by using attack_self().

-Detectives can now use the medical computer.
-Removed the pda forensic scanning functionality.
-Got rid of now useless high-res scanner computer. Got rid of the now useless fingerprint cards.
-Added a medical computer to the detective's office and replaced the useless medical cabinet with an empty one.

Other

-Got rid of diseases magically moving down a stage.
-Optimized playsound()
-Added an attack_self() to sprayers so that you can change the reagent use of them between 5 and 10.




git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5168 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-23 00:39:18 +00:00
giacomand@gmail.com 83193eaa95 -Committing Zelack's fix for retrovirus and committing his work on converting checking names to checking types when playing ambient sounds.
-Committing SuperSayu's fix for allowing robots to quickly empty items that they carry.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5148 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-21 10:45:17 +00:00
giacomand@gmail.com ba4e25b97d -Added some new helper procs.
-Used some helper procs in my advance diseases.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5142 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-21 02:01:39 +00:00
giacomand@gmail.com 9250be52a7 -Got rid of a redundant del() in the PANDEMIC. Fixes Issue 1116.
-Added a new symptom. Voice Change will randomly change the voice of the affected mob. It isn't obtainable by Mutagen and I'll likely put it in the virus crate when I have more dangerous viruses.
-Added two new symptom procs. Start() will be called once and it'll be called when the advance disease processes. Allows you to setup stuff for your symptom. End() will be called before the disease is deleted.
-Diseases that spread by blood won't spread by contact anymore. You will need to directly inject someone to get them to catch the disease.
-Put a limit on shivering and fevers.
-Added a specialvoice variable. You can use SetSpecialVoice() to set a special voice that the player will say instead. To unset it, use UnsetSpecialVoice(). GetSpecialVoice() will return the player's special voice value.
-Added two DEFINEs for the limit which is how much a human can take before taking burn damage from heat or coldness. 
-Some symptom value changes.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5136 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-20 16:39:11 +00:00
giacomand@gmail.com 5b8b1b3302 -Added some visual hit indication by having a variable be set to 20 when the mob takes brute or fire damage. It will then be added to the health calculation, in the overlay code, and then it will reset to 0. Thus making a cool effect.
-Removed the waiting for light replacers.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5132 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-20 12:23:51 +00:00
giacomand@gmail.com 6d05ae60de Balance change: Malf AIs can't shunt from APC to APC and must first return to their core. They can also start a takeover from their APC now. This is a test run with it and if people don't like it I'll remove it.
General work to advance diseases.
-Changed the possible cures to a list which is ordered from easiest to cure to -hardest to cure.
-Some tweak valuables to symptoms.

-Air alarms will update their window when you cut/pulse wires.
-Re-added analysers to mechanical (blue) toolboxes.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5125 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-19 18:30:05 +00:00
elly1989@rocketmail.com a10f6e0ec2 Added a switch inside client/Topic which can direct the topic call to a few frequently used destinations.
Before, when making a link to an admin tool, you done this:
<a href='?src=\ref[C.holder];parameter=1;>link</a>

Now, we do not need to use a reference to direct it to places like usr or usr.client.holder (or client, but you never needed src for that anyway)
usr: <a href='?_src_=usr;parameter=1;>link</a>
holder: <a href='?_src_=holder;parameter=1;>link</a>

This basically allows us to move a LOT of code outside of loops as we no longer have to create a \ref for every recipient of the message. They can all be sent identical links. A simple example of this would be in pray.dm Although it's most noticeable in the adminhelp code which is vastly simplified.

Adminhelp name spotting code thingy...whatever... looks for ckey matches first, then surnames, then forenames. This is to stop it possibly weirding out if there is a station full of "Ed"s of "Sarah"s

Prayer code no longer loads a new icon into memory every time a prayer is sent. Use image() not icon()!

key_name() no longer needs a reference for it's admin_link argument.

message_admin() pretty much doesn't need those extra arguments for finding and replacing %holder_ref%. I've got to go through all the code to check before I remove it though.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5105 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-18 08:27:11 +00:00
giacomand@gmail.com 9894568500 -Cyborg Hypospray will no longer lose it's reagents when switching modes.
-Spaceacillin will now prevent the spread of diseases while it is a mob.
-Moved the "Create A Disease" code into a proc.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5101 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-17 22:28:48 +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 67906a03a0 -You can now name your advance diseases. You can only name unnamed diseases.
-Removed the mutagen requirement from a metroid recipe so it does not conflict with the mix_virus recipe.
-When deaf, you'll get a notice when you see someone talking but you don't hear them. Being blind and deaf will give you no message, because you won't be able to tell. Talking while deaf will give you a message, even while blind.
-Diseases can't be cured by having a high body temperature now.
-I cut down the copy+paste on the meter code.
-Advance diseases now have a limit of 3 in a single mob, increased the amount of symptoms you can have to compensate.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5069 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-15 02:30:29 +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
giacomand@gmail.com d71cc8f3d6 -Advance diseases were given a good bug fixing based on reports and runtimes. Including the diseases spreading correctly.
=Proposals=

-Cyborgs can now beep and ping.
-Hulks will now talk in all upper-case and will spurt out random hulk phrases and flex.

=Sprites=

-Improved APC sprite by TankNut.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5031 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-09 21:12:59 +00:00
giacomand@gmail.com 5868952ce0 -Added a check to see if you're on turf before trying to spread a disease to someone.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5023 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-07 08:37:46 +00:00
giacomand@gmail.com 0162968399 -Lot of runtime fixes for advance diseases.
-Added two new symptoms, fever and itching.
-Changed some stats on existing symptoms.
-Emotes sucks so I used visible_message if there was no preset emote.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5021 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-07 08:21:36 +00:00
giacomand@gmail.com 82820524f5 -Vent crawling mobs will trigger the area's Enter, which will fix turrets not targeting mobs vent crawling into the AI chamber/upload.
-Fixed turrets shooting over mobs, when they're lying down.
-Monkey boxes will now contain 5 monkeys.
-Decreased the amount of EMP grenades to the initial 5.

-Added several more symptoms.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4993 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-02 13:34:32 +00:00
giacomand@gmail.com bd67128dac -More work to advance diseases.
The Pandemic should be more compatible with advance diseases. Currently it's pretty ugly but when I get rid of the broken diseases and convert the rest to advance diseases I will clean up the pandemic.

Vaccines will now work properly with advance diseases.

Soon I'll add a system so that you are able to name your own diseases, as I've added ways for me to do that with the archive_diseases list.

Gave names to symptoms for the Pandemic.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4989 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-01 23:59:27 +00:00
giacomand@gmail.com 2cefee1282 -Added advance diseases! Virology can create and mutate advance with different symptoms and effects. Read my comments if you're interested in each symptom.
This isn't done, I still need to add more symptoms and a way for virology to identify and name them.

-Metroids will die in space again.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4987 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-31 18:04:04 +00:00
giacomand@gmail.com 6a2947d511 -Alien embryos will revert to stage 2 if it finds no candidates and the host has no client, meaning no more brain dead larva.
-Alien embryos take longer to burst.
-Alien embryos have more of a chance of curing, also added another fun cure.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4978 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-29 01:01:56 +00:00
giacomand@gmail.com 6a2d78bc94 -Killed the updateDialog lag. I added a check to see if there were any mobs to update, if not it will stop checking until a user uses the machine again. I had to replace all the machine = src and machine = null with procs to help make it manageable. I believe this is one of the culprits causing the server to lag as the round goes on, as more players will interact with machines.
-Atmos delay is now based on active players, to help fight lag for massive player rounds.

-Changed some for(blah in world) loops to use the correct lists.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-25 19:15:51 +00:00
giacomand@gmail.com 28a04fbb9d -Aliens can acid turf. The only turf they cannot acid are r_walls. I just used a typecheck because I didn't see the need for types of turf needing to be unacidable, but if so I'll make a variable for it.
-Made a proc which will select active candidates.

BALANCE STUFF

-Acid is less random.
-Humans being disarmed by Aliens is no longer a random duration, instead it is a constant 10, instead of the random 10 to 15.
-Facehugger throw range was reduced to 5.
-Laying eggs costs 75 plasma (from 50) and secreting resin costs 75 plasma (from 100).
-Reduced stun duration of Alien disarm to Cyborgs. From 10 to 7.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4949 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-24 16:39:46 +00:00
giacomand@gmail.com 2fe846065a -Added "give disease" VV dropdown option.
-You cannot spread diseases which are marked as SPECIAL or NON_CONTAGIOUS via blood injections.
-Carp no longer drift in space.
-Captain helmet now protects you from facehuggers.
-All humanoid aliens can now Regurgitate.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4946 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-24 00:29:27 +00:00
giacomand@gmail.com 3b95730028 -Committed RavingManiac (Smoke Carter)'s Roros laying eggs.
http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=10501
-You can insert the Auth Disk by clicking on the nuclear bomb.
-Changed how aliens are selected. It will filter the list of possible candidates by checking for players who aren't inactive for more than a minute. If no possible candidates are found, it increases the filter by another minute. It does this 5 times before giving up.
-Alien embryos cannot have carriers and they are more likely to infect someone.
-The time it takes before a larva bursts is increased a bit.




git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4897 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-17 06:04:25 +00:00
giacomand@gmail.com 2066f54e36 -Added Zelack's alien infection code. Aliens can now tell if someone is impregnated or not.
-Fixed a bug where a Cyborg could drop their module by clicking it on an operating table.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4561 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-27 09:32:09 +00:00
elly1989@rocketmail.com 4073ac9b00 Replaced all 'file.extension' references with 'relativepath/file.extension' using a script by thvortex of ss13-daedalus.
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
2012-08-18 16:33:40 +00:00
elly1989@rocketmail.com 2485d4ca0c Fix for runtime:
The following runtime has occured 99 time(s).
runtime error: Cannot read null.stat
proc name: process (/datum/disease/alien_embryo/process)
  source file: alien_embryo.dm,9
  usr: null
  src: Unidentified Foreign Body (/datum/disease/alien_embryo)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4385 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-12 22:43:39 +00:00
elly1989@rocketmail.com 81bff7c5f5 Important!
Minds part2 - Carn loses her mind.

The way datum/mind stuff works has been changed a lot. I really can't explain everything. If you have any questions it'd just be easier if you leave a comment or ask me in coderbus.
Generally, minds now represent IC characters rather than following a client around constantly. Minds can change owners, mobs, (names WIP).

Technical babble:
The var/current and var/original variables of the mind datum must always be of type mob/living (or null). Please do not mind.transfer_to(ghost_mob). If you want to ghost somebody use ghostize()! It will do all the technical stuff for you.

mob/dead/observer/var/corpse was removed. mob/dead/observer/var/mind is now used as a reference to the last mind the player had (so respawning code has something to reference), but also because mind.current is a far more useful way of tracking a corpse. If somebody triggers a mind.transfer_to() call on your corpse, your mind will be tranfered to another mob/living or something...that will then be considered your corpse. This could allow for more interesting mind_transfers. For instance, the "raise corpse" rune ghostizes any player in the corpse to be raised and selectes a random dead player to take possesion of their character! The person possesing them will have all of their memories, objectives, etc. The poor guy who was originally the owner cannot re-enter body if there is another player in his body...but if that player is ghosted he can once again return. Exorcisms anybody?

Changes to cloning and hydroponics. I will likely have to rework these later as they're hacky as hell right now.

A lot of stuff is now handled by Login/Logout rather than in hundreds of different places. One such example, mind datums get their variables updated at Login and Logout.

Fixed a few minor bugs. I'll update the issues manually in a bit because I literally cannot think atm.

TL;DR guide:
-If you want to make somebody a ghost use ghostize(). Or you will need to find a doctor to stitch your bits back on. :)
-You don't have to worry about making minds. Simply doing key="carnwennan" or whatever will either: A) make a new mind and initialise it if there isn't one or B) take possession of the mind currently attached to the mob.
-It's safe to transfer a mind even if a key isn't in-body (e.g. they are ghosted/admin-observing etc!) Minds have an active variable which tracks whether they are currently synced with a key. This is to avoid dragging ghosts back into their bodies when say, a wizard mind_transfers them.
-Transferring a mind whilst var/active=1 will cause the following: mob.key = mind.key. So no need to do that separately (in fact you'll lag things if you do, so don't)
-If you do want to initialize a mind manually, say if you don't have a client to login to the mob yet, simply do new_mob.mind_initialize(). Simple! When someody is logged into that mob they will take ownership of the mind and it will sync up.

NOTE: a lot is probably broken since this is a pretty massive change. Please let me know asap (with actual info! Shouting at me, "IT BORKED HALP", doesn't help)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4342 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-08 20:51:55 +00:00
elly1989@rocketmail.com fb600f9bce Ok, part 1 of this huge mind datum fix. I need to run over the next part again because I've made a lot inconsistencies in it. This is sort of all the misc stuff that got tidied up whilst I was trying to get my head around how everything related to eachother.
This part focuses on:
-structuring the way silicon mobs initialise upon login (there was some hideous copypasta in Login() and New() which used spawn() to change the order of the calls so it was all jumbled up. I think I've got it sorted now.
-Borgs var/real_name was not initialising as "Cyborg". Meaning the name checks were kind of borked.
-Ghosts are now deleted at logout if they no longer have a key. This will stop unneeded ghosts being left lying around. It will not delete ghosts with keys assigned (so people can't respawn or anything). Removed all the del(ghost_ref) stuff I could find. Generally movign the key from a ghost should be the last thing you do as the ghost will be deleted by Logout. However I've put it in a spawn() to hopefully avoid coders accisentally using it in a way which causes runtimes.
-Fixed clone-plants spawning dud potato-people left, right and centre. They'll now dump seeds if it fails for whatever reason.
-Cultist and Rev status are removed at mob/living/silicon/Login() rather than having to be called on a special-case basis everywhere. This may not be necessary when this stuff is finished.
-Removed a bunch of :
-Commented mob/living/Login() with the rest of the antag-indicator code from cloning.dm and hydroponics.dm for any coders whom feel brave/suicidal to fix the related issues

Next on the agenda, replacing mob/var/original_name with datum/mind/var/name to fix the ticker runtimes
Then, fixing mind/proc/transfer_to(mob) once and for all. (There are issues with duplicate minds, role updates, inconsistent initialisation etc etc *yawn*

There's probably a few obscure bugs in there somewhere. Might want to hold off on the updates for a bit. Coderbus will likely spot them all by the end of the week.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4322 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-05 15:29:15 +00:00
sieve32@gmail.com 7bf6788082 -OPTIMIZATION TIME
-Almost every instance of 'for(mob in world)' has been killed. Because GODDAMN was it being run a bunch. Instead, a series of global lists have been made, and they are all handled auto-magically through New()'s, Del()'s, Login()'s, death()'s, etc...

Lists are as follows:
-mob_list : Contains all atom/mobs by ref
-player_list : Like mob_list, but only contains mobs with clients attached
-admin_list : Like player_list, but holds all mobs with clients attached and admin status
-living_mob_list : Contains all mobs that ARE alive, regardless of client status
-dead_mob_list : Contains all mobs that are dead, which comes down to corpses and ghosts
-cable_list : A list containing every obj/structure/cable in existence
Note: There is an object (/obj/item/debuglist) that you can use to check the contents of each of the lists except for cables (Since getting a message saying "a cable," x9001 isn't very helpful)

These lists have been tested as much as I could on my own, and have been mostly implemented. There are still places where they could be used, but for now it's important that the core is working. If this all checks out I would really like to implement it into the MC as well, simply so it doesn't check call Life() on every mob by checking for all the ones in world every damn tick.

Just testing locally I was able to notice improvements with certain aspects, like admin verbs being MUCH more responsive (They checked for every mob in the world every time they were clicked), many sources of needless lag were cut out (Like Adminwho and Who checking every single mob when clicked), and due to the cable_list powernet rebuilding is MUCH more efficient, because instead of checking for every cable in the world every time a powernet was broken (read: A cable was deleted), it runs though the pre-made list, and even with a singulo tearing all the way across the station, the powernet load was VERY small compared to pretty much everything else.

If you want to know how any of this works, check global_lists.dm, there I have it rigorously commented, and it should provide an understanding of what's going on.

Mob related in worlds before this commit: 1262
After: 4
I'm helping


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4179 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-26 03:04:05 +00:00
elly1989@rocketmail.com b88733fd89 Alien larva now chestburst even after their host has died. To do this I had to make a custom process() for the alien_embryo disease.
I gave up trying to get facehuggers  to hug laying down mobs after a throw. Instead I just fixed the attack() proc so aliens can slap them onto people's faces.

Changed the chestbursting code so larva are created even if no client is available. I will be making a verb so ghosts can posses aliens/larvae with no ckey depending on what headcoders think of the idea. I didn't think it fair that aliens should suffer because not enough ghosts have be_alien enabled at the exact moment a larvae chestbursts. 

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3987 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-05 13:21:25 +00:00
johnsonmt88@gmail.com 80b15df54b ** Mob Define Cleanup: Part 1 **
I'm currently working on moving all of the vars in mob_defines.dm and some procs in mob.dm into more fitting places. For example, ghosts and simple animals can not be cloned, so they do not need a cloneloss var. Cloneloss would be better fitting to /mob/living or even /mob/living/carbon. 

By moving these defines into proper children of /mob we lower the amount of resources that must be set aside every time a mob is created and we lower the amount of data that gets transfered between mobs when we combine, transfer or transform them. In theory, this should help free up some resources and combat lag.

Due to how integrated some of these defines are in the rest of the code, I'm going to be committing this cleanup in small batches. Doing it this way instead of one massive commit means that bugs will be easier to locate and identify. It is also less likely to overwhelm players with bugs, and if it still does, it will make it easier for us to revert only the section that is causing problems. Smaller commits also means merging with existing code will be less of a nightmare and has less potential for merging mistakes.

One of my goals in this cleanup is to add a description to every single variable in mob defines. While some of them are self explanatory, there are some there that are used in horribly obscure ways on top of having no comment to describe their use.

-----------------------

Mob defines moved to living:
- last_special*
- bruteloss
- oxyloss
- toxloss
- fireloss
- cloneloss
- brainloss
- halloss
- hallucination
- hallucinations(list)

*Note: I believe this variable is not needed, but the code it is used in (the resist verb) is cluttered and messy. That chunk of code probably use a re-write. I'll put it on my TODO list and if I survive mob_defines I'll try to get around to it but if anyone wants to do it for me, that would certainly help!

-----------------------

Mob procs moved to living:
- getBruteLoss()
- adjustBruteLoss()
- getOxyLoss()
- adjustOxyLoss()
- setOxyLoss()
- getToxLoss()
- adjustToxLoss()
- setToxLoss()
- getFireLoss()
- adjustFireLoss()
- getCloneLoss()
- adjustCloneLoss()
- setCloneLoss()
- getHalLoss()
- adjustHalLoss()
- setHalLoss()
- getBrainLoss()
- adjustBrainLoss()
- setBrainLoss

Mob procs moved to carbon:
getDNA()
setDNA()

-----------------------

Mob verbs moved to carbon:
- Sleep
- Lay down / Get up

-----------------------

The : operator...

The thing that has been killing me through this whole cleanup is people using or copy/pasting the : operator everywhere. 


*** Please use obj.var_or_procname. Do not use obj:var_or_procname ***


Using obj:procname will not throw a compiler error if obj does not have that specific var or proc. This means that the coder making changes will NOT be informed of an error which will result in a proc failing, potentially being completely unusable and definatly causing a runtime error.

With that said, I fully anticipate that most bugs (if any) caused by this mob define cleanup to be the result of : operators.

I've been replacing many : operators in favour of the . operator as I've been going, most noteably I went out of my way to remove almost every : operator from the 4000+ line Chemistry-Regents.dm
Exceptions:
- Water: Turf and Atmos related vars. I'm not familiar with the members and methods in those class' hierarchy.
- Silicate: because it's commented out and I honestly dont see it returning.
- Thermite: Turf and Atmos related vars.
- Corn Oil: Turf and Atmos related vars.

Final note: While this may be the source of some mob-related bugs, there are two other revisions that have been committed between now and the last time either of the the two tgstation servers have been updated. These revisions both touch mob-related files. I'm not blaming these other revisions for anything, especially since one of them is mine anyway, I'm just listing them here for refrence to help quickly identify any problems.
- My human/life() changes in r3925 
- Carn's life() standardizations in r3933

Stuff unrelated to mob defines:
- Fixed borgs and such being able to go into DNA modifiers.
- Changelog updated and I added Sieve to the list of coders.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3934 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-28 17:06:19 +00:00
baloh.matevz eda9677ab2 - Nerfed pierrot throat. You will only shout out "Honk" messages if you are at the last stage (stage 4). Made bananas cure pierrot throat with a 75% chance, instead of a 35% chance.
- Fixed the problem where people would get automuted due to pierrot throat.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3906 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-24 05:48:05 +00:00
elly1989@rocketmail.com 48088b79d9 ugh...this was horrible. I'm really sorry if I fucked anything up, I was literally going braindead towards the end.
Replaced every l_hand = and r_hand = and all that if(hand) crap to use standardised procs. This means we can use procs like Dropped() reliably as they will always be called when things are dropped.

Thorough documentation to come. But generally, if you want a mob's icons to update after deleting something in the inventory...use drop_from_inventory(the_thing_you_wanna_drop) just before deleting it. If you wanna put something in a mob's hands use put_in_hands() (or one of the variants). It'll try putting it in active hand first, then inactive, then the floor. They handle layers, overlays, screenlocs calling various procs such as dropped() etc for you. Easy

mob.equipped() is now mob.get_active_hand() because there was another totally unrelated proc named equipped() and stuff was confusing.

Weakening was made instantaneous.

Minor optimisations for human/handle_regular_status_updates(). I'll port these changes over to the other mobs next. Basically it should stop it constantly incrementing every status effect even after death.

umm... bunch of overlays related fixes... I think that's everything. :/

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3900 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-23 21:24:45 +00:00
johnsonmt88@gmail.com 0f456531b9 - Fixed one of the ways the Core R&D Computer can lock up and become completely unusable. If it gets stuck from using this method, just close the window and click on the computer again. Fixes issue 316.
- Vaccine bottles from the panD.E.M.I.C. now auto-name. There was a bug where you could very quickly create a ton of bottles which could cause clients to crash. Fixes issue 326.

- Changed various ASSERT()'s to sanity ifs. ASSERT should really only be used during debugging, not in release. Runtime prevention.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3368 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-28 16:51:55 +00:00
kortgstation@gmail.com 67a9794225 Removed the flu causing hallucinations who the fuck even added that godamn.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3280 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-13 00:09:58 +00:00
joe.heinemeyer@gmail.com 04c39436f2 BS12 port: Hallucinations and Dreaming
To take advantage of hallucinations, just have something that sets the "hallucination" var in a human mob to a positive number (The higher it is, the more crazy things are)
LSD is currently the only thing that does that, ATM.  (silicon, hydrogen, anti-toxin)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3221 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-01 04:30:16 +00:00
vageyenaman@gmail.com 00119e0b4a ▫ Telecommunications is finally live. There's just too much to explain so I'm going to recommend you visit the wiki article on Telecommunications.
▫ AI satellite replaced with Communications Satellite.
▫ Some turret tweaks. Gave "AI" turrets a variable that controls what type of lethal shots they shoot.
▫ New job access level, Telecommunications Satellite. The CE, RD, and Captain get this access level.


▫ Some icon tweaks and stuff.
▫ Faster chem machine energy regeneration rate.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2959 316c924e-a436-60f5-8080-3fe189b3f50e
2012-01-16 01:14:19 +00:00
ryantennessee@yahoo.com a99a19b9eb Changed all chances of sleep curing diseases to laying down. Temporary, or perhaps permanent, fix because sleeping is broken.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2889 316c924e-a436-60f5-8080-3fe189b3f50e
2012-01-01 00:29:34 +00:00
rockdtben 5b691f8727 brainloss is now only referenced via procs.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2874 316c924e-a436-60f5-8080-3fe189b3f50e
2011-12-30 17:47:35 +00:00
uporotiy 3f5b76aff0 Added stun, weaken and paralysis-related procs in place of directly editing the vars. Hulk is 5% chance now due to being completely immune to any sort of stunning (will nerf more later). Think that's all but not entirely sure.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2683 316c924e-a436-60f5-8080-3fe189b3f50e
2011-12-14 16:38:46 +00:00
petethegoat@gmail.com 1cd49a6f13 Replacing monkie with monkey...
Replaced 11 strings in 8 files

Shout at me if this breaks anything.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2569 316c924e-a436-60f5-8080-3fe189b3f50e
2011-11-28 19:39:22 +00:00
rockdtben f733c08847 Implemented adjustToxLoss(amount)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2535 316c924e-a436-60f5-8080-3fe189b3f50e
2011-11-20 00:12:49 +00:00
rockdtben 38d90773cc Implemented getToxLoss()
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2528 316c924e-a436-60f5-8080-3fe189b3f50e
2011-11-17 23:42:09 +00:00
mport2004@gmail.com ec507d8277 Anything that used the updateappearance proc will no longer update hair/beards. The things that use it are DNA changes, Cloned mobs, Changlings. The proc was runtiming due code on lines 234 and 246, I looked into it a bit but don't currently know how to fix it. The proc is currently commented out so at least the skin color/body updates properly.
Thanks to Exadv1 the reagent checking code for chem got a nice performance tweak.
Minor text change to the steal ai objective.
Few runtimes/nullchecks fixed.
HoS does not spawn with a flash, Warden does not spawn with a taser, Security officers now spawn with a flash.
Wizarditis has been uncommented and nerffed quite a bit.
Moved most of the suits over to the clothing module folder.
Force 0 items won't damage humans.
The two lockboxes have been readded to the armory.
The brigs extra large power cell has been cut in half. (still twice as large as normal apcs)


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2480 316c924e-a436-60f5-8080-3fe189b3f50e
2011-11-04 12:14:39 +00:00
uporotiy c0d8adf42f Facehugger overhaul
They now function like landmines. They don't move, but you can pick them up and throw them at people.
Eggs now grow gradually and you can harvest a hugger from a grown egg.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2438 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-28 17:17:01 +00:00
mport2004@gmail.com 17ed3899c4 Fixed the map/code issues that the body bags caused.
/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work. 
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more.  More random name monkeys will help with changeling and clean up the observe/mob menus.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-03 10:28:57 +00:00