Commit Graph

1215 Commits

Author SHA1 Message Date
baloh.matevz
b946fa1d81 - Moved the r-wall define to after the definition of wall. It always bugged me and I must have fixed that 20 times in my local repors by now... Strange how I never committed it.
- Fixed issue 738 Hidden walls now properly update when adjacent tiles are changed.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4442 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-16 18:19:21 +00:00
baloh.matevz
530c5c804a - Yet another issue that needed fixing resulted in the entire system having to be rewritten. Fixes issue 44, Fixes issue 690.
New defines in setup.dm:

This revision changes the following things:
- Hot is no longer defined as 'higher temperature than 310.15K' but is defined as 'higher temperature than my body temperature'. The opposite applies for cold.
- Removed heat_transfer_coefficient and protective_temperature
- Added heat_protection and cold_protection flag variables to obj/item, which define which areas of your body are protected from heat.
- Added max_heat_protection_temperature and min_cold_protection_temperature which define up to which temperature the item protects when worn (NOTE that it only protects on the locations specified by the heat_protection flags!) and down to which temperature it protects from the cold.
- REMEMBER! hot and cold were redefined to mean 'which way your body temperature should be moving based on the air around you'.
- Each tick, your body now 'corrects' your body temperature towards 310.15K which is the ideal temperature. The correction is max( difference/12, 10 ), so either a twelfth of the difference between your body temperature and 310.15K, or 10K, whichever is higher. This ensures your body temperature stabilizes over time.
- Most notable changes in the amount of protection you get from common items are these: Space suits now ONLY protect from cold and fire suits now ONLY protect from heat. Now what this means is obviously that firesuits will be useless in space, but also that if you find yourself in a fire with a high body temperature and you put a firesuit on, your temperature will no longer stagnate at the high temperature, due to temperature not going up nor down, but rather it will get lower. Instead it will be protected from rising, it will however gradually get lowered by your body's 'auto-correct' attempts, as described in the last point. Additionally, if you wear a fire suit and enter an area with a good temperature (for isntance 290K) and you have a high body temperature, due to just escaping from a fire, the fire suit will not make your body temperature stagnate. Because it does not protect you from cold, and cold being defined as 'colder than your body temperature', you will actually successfully cool down to the optimal temperature.
- The opposite applies to space suits. They protect from cold and don't protect from heat. If you find yourself in space and your temperature drops and put on the space suit with your temperature still low, you will recover over time. If you enter an area with a good temperature, you will recover faster, since the space suit does not protect you from heat.
- In short, space suits are now better at dealing with space and fire suits are better at dealing with fires.
- You will NEED a fire helmet to be protected from heat and you will NEED a space suit helmet to be protected from cold. There is no 'but'. Fire helmets are red or white hardhats, found in all fire closets.
- The 'heat up' coefficients are defined in setup.dm, they are:
- - head = 30%
- - lower and upper torso = 15% each = 30%
- - legs and arms = 7.5% each = 30%
- - feet and hands = 2.5% each = 10%
- Gloves cover hands
- Shoes cover feet
- Space-worthy jumpsuits cover legs, arms, upper and lower torso
- Space suits cover legs, arms, hands, feet, upper and lower torso
- Headgear covers heads
- Removed the HEADSPACE and SUITSPACE flags, due to being moved to the new variables. This frees up the flag value 4.
. The amount of damage heated gas and heated areas do can now be set in human/life.dm. The values are: (The different levels are based on breath temperature or body temperature.)

#define HEAT_DAMAGE_LEVEL_1 2
#define HEAT_DAMAGE_LEVEL_2 4
#define HEAT_DAMAGE_LEVEL_3 8

#define COLD_DAMAGE_LEVEL_1 1
#define COLD_DAMAGE_LEVEL_2 2
#define COLD_DAMAGE_LEVEL_3 4

//Note that gas heat damage is only applied once every FOUR ticks.
#define HEAT_GAS_DAMAGE_LEVEL_1 2
#define HEAT_GAS_DAMAGE_LEVEL_2 4
#define HEAT_GAS_DAMAGE_LEVEL_3 8

#define COLD_GAS_DAMAGE_LEVEL_1 1
#define COLD_GAS_DAMAGE_LEVEL_2 2
#define COLD_GAS_DAMAGE_LEVEL_3 4

The speed at which your body temperature raises or falls can be altered with the following defines: 

#define BODYTEMP_AUTORECOVERY_DIVISOR 12 
#define BODYTEMP_AUTORECOVERY_MINIMUM 10
#define BODYTEMP_COLD_DIVISOR 6
#define BODYTEMP_HEAT_DIVISOR 6

The divisors determins by how big a difference between your body temperature and the surrounding air (or 310.15 in the case of autorecovery) will your body temperature change. The autorecovery_minimum means what the minimum recovery is, if difference / 12 is less than 10, it will recover by 10.


Was all this needed to fix Issue 44? Yes..... yes... it was... Some things are consequences of decisions made while fixing it, but all of it was necessary to completely fix the issue. I found it did not remain on the tracker for this long for nothing.

I'm sorry for the essay, but there was a lot of work involved and a lot of changes happened, so I had to write a lot...

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4428 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-16 02:48:49 +00:00
baloh.matevz
a2b7a485ab - The sqllogging variable now determines whether a connection to the database is going to be established or not. To enable or disable sqllogging, comment or uncomment the ENABLE_STAT_TRACKING entry in config/dbconfig.txt.
Fixes issue 793

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4425 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-16 00:49:59 +00:00
baloh.matevz
5a199fc564 I started with the desire to fix issue 634. It sounded like a simple issue, right? Well one complete rewrite of how equipping and stripping works later, this commit fixes issue 645
Code-wide changes: /mob -level procs:
equip_if_possible() is now known as equip_to_slot_or_del() to prevent confusion with equip_to_slot_if_possible() and to better describe what it does.

equip_to_slot_if_possible(item, slot, del_on_fail, disable_warning, redraw_mob)

equip_to_appropriate_slot() is now a /mob - level proc.

equip_to_slot() is an unsafe proc, which just handles the final step of actually getting an item onto the mob. It has no checks of whether it can or can't do that. Use equip_to_slot_if_possible() for that purpose.

New /obj/item -level proc:
/obj/item/proc/mob_can_equip(M as mob, slot, disable_warning = 0)

This proc can be used to determine whehter a mob can pick up an item from the item's side.

Carn, I'll need you to review code/modules/mob/living/carbon/human/inventory.dm to ensure that I'm not redrawing the mob too many times.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4423 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-15 23:15:55 +00:00
trubblebass@gmail.com
b1abc73199 Fixes issue 789
Food and Lightbulb crates now cost 10 points, they should always have been 10 points anyway.
As a note for future commits to prevent this happening again, do not make any crates with a cost less than 7 points.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4419 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-15 14:50:53 +00:00
baloh.matevz
5a3b9d7a24 - A change to 'who' for admins, which now displays more information. Amongst these is the ckey of the person, the name of the character they're playing, their status as alive, unconscious, dead or observing (joined as observer) and whether they are an antagonist or not. Along with this you get an adminhelp-style (?) link which displays further information about the person. While this might not be considered a 'bugfix' it is necessary due to the removal of the tensioner panel as it gives a quick overview of how many people are alive and how many are dead.
- Removed the obnoxious message blue and red colors which was shown when hydroponics trays were overran by weeds. The message is now blue and has a dot at the end, instead of an exclamation point.
- Made '/obj/effect/debugging/marker' immovable. It was silly that it reacted to air movement.
- Standardized mapping.dm
- Removed the round-end condition of "Everyone is dead! Resetting in 30 seconds!"

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4415 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-15 00:24:24 +00:00
elly1989@rocketmail.com
e0b538ea77 Runtime fix: getFlatIcon() - Will no longer runtime should overlays contain any nulls. (Interesting note: I was intending to fix this to try speed up update_icons() even more but it turns out BYOND really dislikes overlays += null. the optimisation took twice as long o.O)
Removed unused caching code from getFlatIcon(). We handle our own caching using datacore.dm

Runtime fix: datacore wasn't checking the type of object in the wear_id inventory slot. I've removed that so it now uses mind.assigned_role instead.
The following runtime has occured 1 time(s).
runtime error: undefined variable /obj/item/device/pda/warden/var/assignment
proc name: manifest (/obj/effect/datacore/proc/manifest)
  source file: datacore.dm,14
  usr: null
  src: the datacore (/obj/effect/datacore)

Runtime fix: staff-of-change projectiles were runtiminng when transforming somebody with implants. Cause: forgot a "continue" >.<
The following runtime has occured 4 time(s).
runtime error: Cannot modify null.layer.
proc name: wabbajack (/obj/item/projectile/change/proc/wabbajack)
  source file: change.dm,37
  usr: 0
  src: the bolt of change (/obj/item/projectile/change)



git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4412 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-14 23:46:03 +00:00
johnsonmt88@gmail.com
aa498bd0c1 I'm a fucking moron.
Apparently that meteor gun I forgot to comment out had the wrong path in its attack_self(). Instead of the meteor gun shooting meteors, every /obj/item/weapon could shoot them when clicked on.

Here's a pile of runtime fixes to go along with this.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4409 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-14 22:40:30 +00:00
giacomand@gmail.com
7f8d0cd59b -I found the bug. Apparently view also gets the area that you are in and I wasn't accounting for it. I've made it so that the atom has to be an object or a mob before it will recursively check them.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4405 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-14 18:09:52 +00:00
giacomand@gmail.com
83cbc15746 -I forgot to test it with other players and there was a bug. This is a temporary fix until I can figure out why the mobs are being added twice.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4404 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-14 17:53:31 +00:00
giacomand@gmail.com
bba7cc299a -Fixed 726 and made some improvements to the recursive_mob_check, including a recursion limit.
-Added a helper proc called "hear", it is like view but it will ignore the luminosity limits.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4403 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-14 17:44:56 +00:00
petethegoat@gmail.com
1fc8ce5bc5 Fixes issue 739.
Fixes issue 505.

Boxing gloves can no longer be used to make stungloves (with descriptive, adventure game style failure message~).
People without savefiles no longer get the "Your save has been deleted" message when they start the game.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4402 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-14 16:40:27 +00:00
d_h2005@yahoo.com
be3450d319 -Fixes the bug where matches would not light plasma.
-Fixes horrible chat spam when loading smartfridges up with plant bags.
-Fixes the bug where reishi mushrooms and broken wooden floors had ugly sprites.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4400 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-14 15:37:21 +00:00
elly1989@rocketmail.com
4c87332cc1 Resolves Issue 734
> A clown's medical, crew, and security records are updated with his newname. (read below for details)

> reject_bad_name() now checks for dumb names like "space","floor","wall","r-wall","monkey","unknown","inactive ai" (if you know any other important ones let me know)

> clname() [clown-name] and ainame() [AI name], procs which allow those players to rename themselves, were merged into /mob/proc/rename_self(var/role, var/allow_numbers=0)
This proc gives the mob 3 chances to name itself. It checks names using reject_bad_name() (the same thing that checks the round-start names). If it fails 3 times it will not change the name. If it succeeds it will call the proc in the next bullet point.

> /mob/proc/fully_replace_character_name(var/oldname,var/newname) will replace most references to a mob's oldname and replace it with newname. It updates name, real_name, mind.name, updates their id, updates their pda and updates all their data_core records (manifest records like medical, security, general, locked)

> data_core procs merged because they were massive and all identical.

> accidentally fixed an AI sound which accidentally played upon login. It conflicted with the "Welcome to the station crew" announcement. So I commented that out to try the 'new' fixed one. If people hate it I'll comment it back to how it was.

> naming a mob with the big name  at the top of viewvars will use fully_replace_character_name()

> Removed an uneccessary regenerate_icons() proc from every player which spawns. Should speed up spawns a smidge



git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4396 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-14 10:44:41 +00:00
sieve32@gmail.com
c62bdf0a6e -Cleaned up sacrificing again so it didn't rely on hasvar()
-Made a variation of hasvar(), creatively named has_var(), intended for objects versus datums, and the var name is case sensitive
-Clean up mech fabricator code considerably, the terrible switches are all gone, and I was able to make it more robust at the same time. Now, if a junk item is added to the mech fab then it will remove it in 1 of 2 places, either when you call for the queue to be displayed (Will throw it out then rebuild the queue) or when it is processing the queue (Will throw it out then reprocess the building), so now you won't even see the shit that finds its way in there.
-Made the add_part_to_set() useful, now instead of dumping everything in the "Exosuit Equipment" category, it checks if the design's category matches one of the part sets, then adds it to said set if it does (All others get dumped into "Misc"). Right now there isn't much through, mostly just moving MMIs, cells, etc... to the "Misc" set, but this would be easy to use with any other system that handles designs
-Little bit of OCD here, but I noticed that the cells on the map were all 'crap' cells, even though they had 1.5x the charge of a high-capacity cell, so I changed them all to high-capacity cells with the added capacity

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4395 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-13 18:53:28 +00:00
petethegoat@gmail.com
f657677a99 Fixed issue 775.
Fixed issue 767.

The fix for issue 767 was to standardise spray bottle code (to some extent). If any issues come up with spray bottles, pepper spray, or chem sprayers, report them to me.
Cyborgs now recharge their pacid and lube, as the size of their bottles was quartered.

Changed the flash item_state to "flashbang", as it looks exactly like a flash.

There's some more grammar and text clean up too, mostly with crates and closets.

Finally, fixed some pipes in virology, and changed the librarian's den so the bookcases are at the top.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4394 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-13 18:24:34 +00:00
giacomand@gmail.com
38d209e662 -Changed recursive_mob_check and get_mobs_in_view. It might also fix the cause of some people being able to hear behind walls (unconfirmed)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4389 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-13 08:43:42 +00:00
johnsonmt88@gmail.com
e9671308bf Reorganized clothing as a whole.
Everything related to clothing should now be defined in modules/clothing. I'm almost certain there's clothing code hidden elsewhere but this should be the vast majority of it finished.

Everything is set up related to the object types themselves (meaning paths.)
So all hats will be in modules/clothing/head, all gloves will be in modules/clothing/gloves, ect...

I've removed 'modules/clothing/random.dm' and 'objects/items/clothing.dm' which both seemed to just be a place where people would put stuff they were too lazy to find a proper home for.

I've also moved files that had no, or very few blocks of code into more catagorized areas.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4388 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-13 02:17:14 +00:00
baloh.matevz
4a0f31a8c0 - Addressed the issue of AIs not being able to see anything in the dark. They now have a 'toggle camera light' verb in the AI verbs panel. What this does is enable a light on the camera they are viewing from. Only the light on the camera they're viewing from will continue to be enabled.
The fluff behind this change is that a loss of power in an area prevents the use of advanced camera features, such as XRAY. The amount of power which the camera network supplies is only enough to operate a light on the camera.

Since there are lots of ways to remove an AI from a camera, it is possible that some bugs will appear. I tested what I could and fixed all the errors that I noticed. If any additional errors appear, please let me know.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4387 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-12 23:24:28 +00:00
Kortgstation@gmail.com
0ed6f00100 Cleaned up the wizards spellbook, it no longer has the option of using client verb spells instead of object based ones. Object based spells are superior in every way and are the ones currently tracked by Erro, the client verbs weren't even supported anymore so there was really no reason for a ton of if statements everywhere/code for three different spellbook types (including one that used telecrystals).
Changed the config, item list, wizard spawn gear etc to eliminate the possibility of the old type of spell book

Removed commented out (non functional) code from change.dm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4383 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-12 20:22:08 +00:00
giacomand@gmail.com
ec4dd7b397 -People with Mesons will not be able to hear through walls, sorry for not catching this before.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4379 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-12 09:31:35 +00:00
johnsonmt88@gmail.com
cc544acea0 Removed the tensioner. It was buggy and really only served to ruin rounds. The original purpose of the tensioner before Poly reworked it was to act as a stat tracker, which is now meaningless since erro has a fully operational stat tracker in place.
As a result, cyborg death squads were also removed.

This also fixes meteors and space dust so that they properly take into account the borders of the map. Please do not hardcode numbers when we have defines in place.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4374 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-11 20:02:31 +00:00
petethegoat@gmail.com
b9facf9e43 Removed the chainsword and chain of command. No chains allowed.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4373 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-11 19:25:18 +00:00
petethegoat@gmail.com
7f627a522b Removed some more stuff from weapons.dmi:
swordchain
warhammer
pepperspray_old
thickcane
browncane
thickbrowncane
stick
chainofcommand
electric

Also removed obj/item/weapon/cane/brown, as it was unused and the sprite was indistinguishable from the normal cane.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4369 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-11 15:08:21 +00:00
giacomand@gmail.com
c33fa849af -Accidentally removed something I wasn't suppose to.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4366 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-11 07:18:18 +00:00
giacomand@gmail.com
d5b3b537bf Added recursive_mob_check() proc. It will recursively loop through an atom's contents and check for mobs, then it will loop through every atom in that atom's contents. It will keep doing this until it checks every content possible. This will fix any problems with mobs, that are inside objects, being unable to hear people due to being in a box within a bag.
I then changed the get_mobs_in_view() to use this proc for gathering mobs and radios. 

The old system would loop through lists for a total of 5000 per function call, in an empty server. This new system will loop at around 1000 in an empty server.

I made get_mobs_in_radio_ranges() use a level parameter to help make it more effecient by only bothering with the mobs that are in the Z level that are getting the radio message.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4365 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-11 07:08:58 +00:00
elly1989@rocketmail.com
6e9ee0cadb Tiny performance tweak for get_mobs_in_radio_ranges()
Known Issues:
It's getting called 3 times for every message sent through telecomms rather than just once like it used to. this is due to the relays on the station, telecomms and mining.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4363 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-11 02:06:36 +00:00
giacomand@gmail.com
35c0740f22 -Added a plasma_rate and heal_rate variable for Aliens. This will make it easier to tweak balance changes.
-Made all aliens use this when determining how much to recharge/heal.
-Deleted handle_enviroments which overshadow the base alien one.
-Made maxHealth actually do something. Every alien caste had their own updatehealth which did not use maxHealth, which was very stupid.
-Fixed an issue where a player could accidentally pick a breed of alien when typing. Larva will now have to use the evolve verb in order to evolve.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4353 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-09 19:26:52 +00:00
elly1989@rocketmail.com
df75514318 Preparations for minds - Part3.
Replaced mob/var/original_name with datum/mind/var/name.

Halved the speak-chances of every simple-animal because that constant squeaking was insufferable.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4346 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-09 12:40:17 +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
johnsonmt88@gmail.com
0225ed33b7 Cleanup of proc/helpers.dm
Split a bunch of procs in helpers.dm into new files:
-helper_list
-helper_text
-helper_type2type

These files are sorted into groups internally. Hopefully people will make it easier for people to find useful procs.

I've added comments to a good chunk of these procs as well explaining what they do.

I've removed a few unused or unnecessary procs and fixed up a couple that were not working as intended.

I've also moved a mob proc 'get_equipped_items()' into mob/inventory.

All of the non-helper.dm files (besides mob/inventory.dm) are the result of fixing duplicate procs. It seems that there used to be text searching procs where one was case sensitive and one was not, and at some point someone removed the case-sensitivity of the case sensitive procs. I've re-added the case-sensitivity and as a result, I've had to go through extra files and ensure that they were calling the proper proc.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4341 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-08 19:32:08 +00:00
rockdtben@gmail.com
40495a6adb As Rageroro suggested I made it so the proc checks for headsets first. This will reduce lag in the cases that the player has a headset. Which is often.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4339 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-08 16:28:53 +00:00
rockdtben@gmail.com
6efd2ea76a Reduced a little bit of lag in the /proc/get_mobs_in_radio_ranges(var/list/obj/item/device/radio/radios) proc
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4338 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-08 14:04:39 +00:00
Superxpdude@gmail.com
bb0da3e5b8 Replaced some more placeholder area sprites with proper area sprites. Specifically the Head of Security's office and the prison wing.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4331 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-06 19:31:27 +00:00
Superxpdude@gmail.com
2eee57b6ed Gave the Miscellaneous Research area proper sprites instead of placeholders.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4330 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-06 19:20:04 +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
ericgfwong@hotmail.com
7fbf079a81 -Readded the changes to Space Station 13 areas.dm that was undone by r4315
-Added a req_access to the new shutter buttons in science

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4316 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-04 15:59:25 +00:00
baloh.matevz
e7efac9ca6 - Fixed r4301 so it actually does what it set out to do.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4315 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-04 14:51:46 +00:00
ericgfwong@hotmail.com
e5a2674e3a -Added Armor run to admin tomes
-Resolved Issue 720. Message should now properly tell you who got cult armor
-Resolved Issue 642. Bad indentation caused girders to disappear if you move away while building them.
-Commented out admin messages when monkeys used non-monkey SEs
-Atmos techs given Construction Area access
-Remapped the south end of Med-Sci
--Misc. Research Lab added to science
--Virology moved to be made more isolated
-Updated Changelog

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4312 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-04 07:37:22 +00:00
giacomand@gmail.com
bff8bbc48d -Fixed Issue 590, the pick up verb will now use Click() instead of bypassing all the checks. This will stop people being able to pick up items that are on the other side of a window.
-Fixed Issue 391, I've added the mule bot to the get_mobs_in_view() proc. But like most other atoms that has a mob inside it's contents, the mob will be unable to see emotes such as "X has punched Y".

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4303 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-03 17:34:45 +00:00
ericgfwong@hotmail.com
c37cce0fb8 -The AI Upload area now all share the AI's SMES unit
-Cloneloss inflicted on fresh clones is now randomized between 0-25 instead of a constant 10

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4302 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-03 17:27:06 +00:00
giacomand@gmail.com
c97004bef2 -Fixed issue 726, not the best fix but I could find no other solution.
-Added the unused alien resin door. Only aliens can open it, it will also auto-close after 10 seconds.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4294 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-02 21:42:43 +00:00
baloh.matevz
49f3db9954 - F12 now properly hides the action buttons
- Changed the 'black overlay' you get when paralyzed, blind or in critical condition to include a small circle around you. It still 'blinks' once every 25 seconds or so.
- Added a flag BLOCK_GAS_SMOKE_EFFECT, which can be applied to masks, glasses and hats, which prevent gas smoke, which contains reagents, from having an effect on you. Currently only present for gas masks.
- Dramatically lowered the amount of damage you get per breath while in critical condition. Critical condition now lasts for about 5 minutes if nothing is causing you any additional harm. This in combination with the new black image overlay is an attempt at making doctors more willing to help. For one thing they'll have more time to get to you, for another you will get to see if they murder you before sending you to genetics.
- Added Cheridan's wooden chairs to code
- Added a action_button_name to all items, which defaults to null and contains the text which appears on the action button. If an action button exists, but this variable is not set, the text will default to 'Use [name]', name being the name of the item tied to the button.
- Fixed the problem which resulted in certain glasses types making you keep night vision abilities even after you took them off. 

(Screenshot of black overlay: http://www.kamletos.si/blackimage4.png)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4280 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-02 08:25:34 +00:00
giacomand@gmail.com
4b239afe76 Fixed issue 724 - I've also tried to fix the unreported bug where a person cannot hear their radio messages while in the dark. Instead I'll make an issue report and try to work on it more later. I'm assuming it has something to do with BYOND thinking that the user cannot see dark tiles in the viewer proc.
Cleaned up a bit of the broadcasting code.
Made everything use turf's z levels as I find them more reliable, sometimes an item's loc can be null or the z level can be entirely wrong. I hope the high usage of get_turf() will not create problems.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4275 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-01 22:55:14 +00:00
elly1989@rocketmail.com
187ecee177 Added global lists for chemistry datums.
chemical_reactions_list for storing /datum/chemical_reaction so we don't have to spawn them all everytime two reagents get mixed together.

chemical_reagents_list, unlike reactions it is indexed by id so we can have fast lookup of reagent data. Again, without spawning everytype of that datum everytime we add a reagent to something 

It was making all subtypes of this datum everytime it filled any reagent_container with a single reagent. Considering how many reagent containers there are that's a lot of wastage. Now it only does this once, thank goodness.

Unfortunately I had to stick the initialisation inside the datum/reagents holder object's New() proc, since New() for map ojects gets called before world/New()

Fixed clean_blood() yet again *sigh*. It's probably as good as I'm gonna get it without changing loadsa stuff needlessly.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4273 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-01 19:27:09 +00:00
sieve32@gmail.com
7d418a1bb7 -Completely removes new_players from the dead_mob_list because it was decided that they shouldn't be there
-MMIs will no longer hear binary chat.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4271 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-01 16:54:30 +00:00
elly1989@rocketmail.com
a9eabb0561 Created global lists for hair and facial_hair datums since they are referenced frequently. This means those datums are only ever created once. Also, the list is indexed by hairstyle name. This means means we only need to store one variable to find the hair datum. It also means admins can change h_style and f_style to the name of the hair and use the Regenerate Icons function in viewvars to update a human's hair icon. If an incorrect f_style or h_style is input it won't affect anything adversely (besides hair not showing for that mob).
The hub will no longer report admins who are stealthminning.

Added a server byond_version check. All it does is tell you if your byond_version is below RECOMMENDED_VERSION and encourages you to update BYOND.

Underwear and bag lists are now a single global list rather than creating the same list for every new player.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4268 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-01 13:40:43 +00:00
giacomand@gmail.com
dce315dc64 -Added a potato battery sprite.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4266 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-01 12:49:56 +00:00
ericgfwong@hotmail.com
ac026993ae Swapped Medical Storage with the Sleeper Room
-Sleepers are closer to the front now
-MD-restricted areas are next to each other

>https://dl.dropbox.com/u/831776/honkbay.png

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4259 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-01 05:48:26 +00:00
petethegoat@gmail.com
f295c3ab33 Updated space carp, walking mushrooms and killer tomatos to use simple_animal instead of critter code.
Notify me if any issues with them, or any simple_animal arise.

Fixed a few issues with space bears.

Slightly improved teleporter code, and did a few misc runtime fixes.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4258 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-31 21:22:42 +00:00