Commit Graph

100 Commits

Author SHA1 Message Date
giacomand@gmail.com
33c738de3e -Fixed an issue where you would compare your name with yourself to see if it was available.
-Fixed an issue with the Upgrade Camera malf module.
-Fixed an issue with HTML codes in whisper.
-Ghost ears and eyes default to 0.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4700 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-16 05:43:27 +00:00
giacomand@gmail.com
9b78786611 -The AI can now select a name after being AIed by someone placing their brain into the core. Fixed Issue 857
-You can't show messages to dead/clientless AIs by putting a page of paper up to the camera.

-Ghost following will get a list of mobs from getmobs, it'll sort it by mob type and by name.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4679 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-12 02:53:50 +00:00
elly1989@rocketmail.com
ca7cb95b7d Moved cyborg law-syncing back into New().
New Borgs now sync with the AI with the fewest associated borgs. So, say there were 3 AIs and 6 borgs, each would get two each.
Cyborg cells now default to 7500 (like the transform procs do), this is so admin-spawn borgs don't end up with 1500-charge cells with a max of 1000-charge.
Default lawset is asimov rather than an empty lawset
pulsing a borg's sync wire will cause it to randomly pick an AI.
As a borg, your laws are shown to you at login.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4641 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-07 09:24:54 +00:00
giacomand@gmail.com
565b868ebc -Added a presets file for telecommunications. Moved all presets there.
-Made the Chief Engineer's cigarette spawn unlit. It was causing runtimes and everyone else spawns with unlit cigarettes.
-Updated changing AI name so it changes the eyeobj and the PDA, removed the PDA name from ai/life.dm()
-Removed a useless comment in uplinks.dm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4636 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-06 09:36:45 +00:00
elly1989@rocketmail.com
907793619d proc/activeais() now fetches AIs from the list of living mobs, not the list of mobs with clients. This fixes an issue where AIs could prevent being selected for law updates by logging out for a bit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4635 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-06 06:53:52 +00:00
giacomand@gmail.com
a1695cb5ff -Added a purchasing log for uplinks. To view it, view the variables of the item with the uplink, navigate to hidden_uplink, click on it and then look at the purchase log variable.
-Sorted the following admin commands/verbs:
Get Key, Get Mob, Jump to Area, Jump to Key, Jump to Mob, Player Panel, Player Panel New, Send Mob, Show Player Panel, Show Traitor Panel
-Because of the recent player poll, electrified grilles will now shock you when you bump into them.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4560 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-27 07:57:49 +00:00
giacomand@gmail.com
0f830d74f4 -Fixed an issue with the AI Eye being moved by shuttles.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4558 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-27 05:19:55 +00:00
johnsonmt88@gmail.com
28aabc9810 More file structure stuff!
Cleaned up the files themselves.
Everything in code/game/objects should now be in proper files or places with the exception of the files in the /weapons/ sub-folder.

There's two instances of me not following the exact file structure.
- /obj/item/brain has been moved to a file in mob/living/carbon/brain
- /obj/item/clothing/mask/facehugger has been moved into mob/living/carbon/alien/special
Both of these may not make sense according to the object structure, but they do make sense logically. If it's a problem just move them.

Next up: Finish the files in the weapon folder, then start moving defines down.


My god I hope I havent broken everything.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4547 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 03:32:58 +00:00
elly1989@rocketmail.com
6e274cd395 New lighting, it's essentially just the old DAL system with a queue.
Comments for lighting:
	Like sd_DAL (what we used to use), it changes the shading overlays of areas by splitting each type of area into sub-areas
	by using the var/tag variable and moving turfs into the contents list of the correct sub-area.

	Unlike sd_DAL however it uses a queueing system. Everytime we  call a change to opacity or luminosity
	(through SetOpacity() or SetLuminosity()) we are  simply updating variables and scheduling certain lights/turfs for an
	update. Actual updates are handled periodically by the lighting_controller. This carries additional overheads, however it
	means that each thing is changed only once per lighting_controller.processing_interval ticks. Allowing for greater control
	over how much priority we'd like lighting updates to have. It also makes it possible for us to simply delay updates by
	setting lighting_controller.processing = 0 at say, the start of a large explosion, waiting for it to finish, and then
	turning it back on with lighting_controller.processing = 1.

	Unlike our old system there is a hardcoded maximum luminosity. This is to discourage coders using large luminosity values
	for dynamic lighting, as the cost of lighting grows rapidly at large luminosity levels (especially when changing opacity
	at runtime)

	Also, in order for the queueing system to work, each light remembers the effect it casts on each turf. This is going to
	have larger memory requirements than our previous system but hopefully it's worth the hassle for the greater control we
	gain. Besides, there are far far worse uses of needless lists in the game, it'd be worth pruning some of them to offset
	costs.

	Known Issues/TODO:
		admin-spawned turfs will have broken lumcounts. Not willing to fix it at this moment
		mob luminosity will be lower than expected when one of multiple light sources is dropped after exceeding the maximum luminosity
		Shuttles still do not have support for dynamic lighting (I hope to fix this at some point)
		No directional lighting support. Fairly easy to add this and the code is ready.
		When opening airlocks etc, lighting does not always update to account for the change in opacity.

Explosions now cause lighting to cease processing temporarily.

Moved controller datums to the code/controllers directory. I plan on standardising them.
"Master","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply Shuttle","Emergency Shuttle","Configuration","pAI" controller datums can be accessed via the debug controller verb (used to be the debug master controller verb)
Supply shuttle now uses a controller datum. Shuttles tend to arrive up to 30 seconds late, this is not a bug.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4537 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-25 16:06:57 +00:00
giacomand@gmail.com
683662f3b6 -Ported/continued AI Freelook. AIs can now look around like a ghost with the exception that they cannot see what cameras cannot see. Meaning if you're in maintenance, and there's no cameras near you, the AI will not know what you are doing. This also means there's no X-Ray vision cameras anymore. I've added documentation to freelook.dm which explains how the system works, if anyone is interested in adding anything. More information here: http://nanotrasen.com/phpBB3/viewtopic.php?f=7&t=9675
-I've added some cameras to rooms that should have cameras but were previously depending on other camera's using their X-Ray vision in order to see into a room.

-AIs have a multitool in their contents that they can use to interact with the telecommunication machines.

-Added "Follow" for observers. Works the same as AI tracking without checking if they can track.

-Added a range to how far Cyborgs can interact with machines. This is to stop Cyborgs from interacting with machines through cameras, which could be used to easily disable the AI.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4531 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-25 05:34:33 +00:00
sieve32@gmail.com
f1bfcfb2cf -Worked on mech fabs a bit more, replaced the has_var() proc with just the BYOND proc, since that's all it did anyways. Tweaked another part that wasn't silently discarding junk correctly. This is probably due to the lack of type-casting now, but even when I crammed areas and null refs into the fabs, they didn't runtime, and operated as intended.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4502 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-20 05:59:46 +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
baloh.matevz
d7c1882e16 - Fixes issue 463. Changeling clowns will now be able to return to their clown names.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4461 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 05:00:40 +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
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
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
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
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
sieve32@gmail.com
120510d4fa Replaces the special snowflake proc for save slot names with something simpler that is more compatible or something.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4162 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-24 06:00:22 +00:00
sieve32@gmail.com
cf86c755d6 Made Save Slots much more robust
-Made a 'default' save slot (D), and whenever you connect it automatically selects the default slot to load from, but manually selecting a different slot will allow you to play on that one before it returns to default.
-Added the ability to name your save slots with the '*'. Names can be up to 16 characters and contain letters, numbers, and basic symbols
-The preview icon on the preference screen now takes into account any job you have set on high, and dresses up the icon accordingly. If assistant is set to 'yes', or AI/Cyborg are on high it will put the icon in a grey suit (So you can still customize).
Solves Issue 667 as well

I tested a good bit with other people's saves, so I'm pretty confident it won't bork savefiles. And before anyone asks, the icon blending didn't make any noticeable lag, since icon procs are client-side.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4159 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-24 04:32:07 +00:00
sieve32@gmail.com
459c558898 -Make holodeck eswords a child of obj/item/weapon/holo instead of regular eswords, clumsy check removed as a result, and you can no longer do things like cutting through walls or doors or what have you. (Fixes Issue 665)
-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
2012-07-23 00:48:51 +00:00
giacomand@gmail.com
285f31f0c4 -You can now store donuts in the donut box. The next donut you pull out will be the last one you put in.
-Changed the class type of donuts. donut/normal is now the regular donut. All other donuts have been made this way. (I.E: donut/chaos)
-Hopefully the merged records proc will now not spit out runtimes.
-You cannot enter a name without any character now. This way you can also click on the link.
-Added some coloured caps to their respected coloured wardrobes.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4123 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-20 00:12:50 +00:00
giacomand@gmail.com
e4c971e3e4 -PDA is now sorted.
-Improved the Message Monitor UI to make it easier to use.
-Added a Message Monitor in Tech Storage, hopefully so it will be used more. You will still need the key to use it.
-You need the key to turn servers on/off remotely via the Message Monitor.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4099 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-17 21:30:31 +00:00
giacomand@gmail.com
7694de3cad Added Russian Revolvers. See changelog for more details.
Added the ability to shoot yourself in the head. See changelog.
Added a isnull check on sortRecord proc.
Changed the align to left.

Added Two Russian Revolvers onto the map, on the Derelict Z-Level. Added a single .357 ammo box in a secure crate on the Derelict.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4063 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-13 23:23:26 +00:00
johnsonmt88@gmail.com
fa1d2bb873 Commit for Giacom:
Breaking bottles over people's heads!
- The bottle will be destroyed and a broken bottle will replace the old bottle
- There is a chance for a glass shard to be created
- The regents of the bottle get splashed onto the mob who got hit
- This affects alcoholic bottles, not to be confused with pill bottles or chemistry bottles.
- - Technically milk cartons and lime juice cartons, so they break as if they're glass.

Names in the PDA list are now ordered alphabetically.

Changelog updated

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3998 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-06 04:31:35 +00:00
petethegoat@gmail.com
84b9929282 Comitting for Giacom!
In short:
AI messaging
Time of death for health scanners
Most lists are sorted alphabetically

See http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=9220 for detailed information.

I wasn't able to test this as thoroughly as I'd like, but what I could test seems fine.
I don't forsee any issues popping up with this stuff.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3993 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-05 22:47:30 +00:00
elly1989@rocketmail.com
86effe3429 ghosts now have stat=DEAD so certain verbs don't break.
replaced canweaken and canstun variables with status_flags bitfield. Current flags are CANWEAKEN CANSTUN CANPARALYSE. Although you could add stuff like CANDAMAGE, CANBLIND, CANDEAFEN etc. to add additional flexibility to mob code and reduce on duplication.

Added humans_need_surnames as a config option. If when spawning  a human has only one name it will give them a random surname. I'd recommend leaving it on so that people can't name themselves "floor" "Unknown" etc.

totally removed autolowercasing of names (except for first letter) due to people pestering me. inb4 everyone starts CRUISECONTROLLING.

allowed a few characters like @ # etc for when the flag allow_numbers is set. So AIs can use those symbols (numbers and symbols cannot be used as the first character because of syntax.

Added alium nests. They're basically beds that only aliums can use. They are made of sticky resin which aliums secure their prey too for sexytimes.

Weed nodes are no longer dense.

Tidied up some alium verbs so that they are more structured. This will allow me to add Alt-Click neurotoxin shooting for queens and sentinels

Queens can secrete resin now to build nests/walls/membranes (doors to come!)
Drones that evolve into queens when there is already a live Queen will become princesses instead so the hive can tell them how stupid they are for splitting from the will of the hive. It also gives them a number so they can be differentiated between.

Credits to 39kk9t for fixing larva/death.dm, hissing which I forgot to do and some of the alium verbs. You're awesome <3

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3983 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-04 20:53:13 +00:00
elly1989@rocketmail.com
47bb6e7588 Relaxed the enforced lowercasing of characters in names to allow stuff like MacTavish as per request.
Relaxed forced uppercasing following numbers for AIs

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3963 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-01 23:28:49 +00:00
elly1989@rocketmail.com
20a799bc28 Similar naming restrictions applied to AIs. However numbers are allowed and only a minimum of one word is required for the name.
Names with he word "cyborg" in are rejected.
Fixed the "Invalid name" help message.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3958 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-01 02:53:55 +00:00
elly1989@rocketmail.com
6594f7098e Actually, tweak to previous commit to prevent preceding and trailing spaces counting as a second word
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3957 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-01 01:07:13 +00:00
elly1989@rocketmail.com
2a775f9d1f Added some restrictions to round-start names for humans. this was necessary due to people using meta names like "floor" "unknown" "lol" etc.
If you feel the restrictions are to strict please let me know here or on the feedback forums.

Generally only A-Z, a-z, space, . - ' are allowed.
Names should be 2 words at least.
Names with too many space, . - ' are rejected.
Names are auto-capitalised.
Names with not enough regular alpha-numeric characters are rejected.
Names with bad characters such as \ etc are rejected.

Raised the minimum character age at the request of a few people. It's now the minimum age for enlisting in the army for most countries (17)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3956 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-01 00:53:52 +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
petethegoat@gmail.com
f2f3c6bebf Updated toilets, urinals, and showers with NEW features.
The shower path has changed!
From /obj/structure/shower to /obj/machinery/shower

Made bookcases appear empty if they have no books, and fill up as more books are placed in them.

Updated do_after() to have an extra var that determines if the user is required to keep the item in the active hand. This is only used in swirlies at the moment.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3684 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-27 16:31:08 +00:00
baloh.matevz@gmail.com
c2c7a3bcda - Variable declaration standardization. Big commit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3671 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-25 19:26:36 +00:00
johnsonmt88@gmail.com
fd529891ca Sanitized a large number of input()s.
- Hopefully this will cut down on the server spamming/crashing escapades happening on other servers. (This wont stop that from happening, this just makes it less severe)
- Some of the sanitizes were probably unnecessary, but better safe then sorry.

Added MAX_NAME_LEN constant which is initialized to 26.
- Please use MAX_NAME_LEN instead of typing in 26 when cutting inputs short. 26's are annoying when they have to be changed and you have to hunt through over a hundred files and tens of thousands of lines of code to find them all.

Moved uplink_kits.dm to code/game/objects/storage

Moved uplinks.dm to code/game/objects
- The stuff inside uplinks.dm could really be chopped up and split into separate dm files but this will do for now.


*********************************************************
**********************Important**************************
*********************************************************
When you create code that asks the user for an input consider whether or not it gets shown to the user through html or the like.

If it does please sanatize() or strip_html() it. Also use copytext() to cutoff spam by using MAX_NAME_LEN and MAX_MESSAGE_LEN as the cutoff var.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3652 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-24 19:34:04 +00:00
elly1989@rocketmail.com
15bf7ea10a Some fixes for topic calls and inputs.
There's like 1001 things to fix so some of this is somewhat crude for now.

new helper proc located in procs/helpers.dm
reject_bad_text(var/text)
just feed any text in and it will either return the original text or null (if it contains odd characters such as \ / < > or characters reserved by BYOND. It also rejects if there are no non-whitespace characters)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3571 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-09 11:34:11 +00:00
VivianFoxfoot@gmail.com
4dfe439b1a Adds BS12 dismemberment. Not all features of it are implemented yet, but it should be equal to our previous system.
Adds greater changeling code, but doesn't change the genome count yet on it. 
Renames registered to registered_name on IDs because bs12 had it and it seemed like a good idea to do last night.  For some reason.   
Adds an afterattack to mobs that can be used.  (In fairness, lots of shit in attack_hand should be in there instead, like stungloves and stuff, to minimize duplicated code)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3537 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-01 15:33:29 +00:00
baloh.matevz@gmail.com
a9365d38e1 - Redesigned the options panel (show player panel verb) to be less terrible. Screenshot: http://www.kamletos.si/options%20panel.PNG
- Made some changes to admin verbs:
- Rejuvenate verb removed from mobs, is now in the options panel above (heal).
- Drop everything verb moved into view variables, added a confirmation message.
- Mute verb removed from mobs, use the options panel.
- Warn verb removed from mobs, use the options panel.
- Grant full access moved to debug verbs. 
- Rejuvanate as a verb also still exists in debug verbs.

These changes were made to make right clicking a mob not show a million unneeded verbs. They were moved based on the statistics gathered via feedback logging:
http://www.kamletos.si/tgdb/latest_stats.html#adminverbs

Please post any additional feedback on the admin forum.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3532 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-30 03:13:04 +00:00
kortgstation@gmail.com
8fee7b7240 AIs and Juggernauts/Wraiths/Artificers should no longer have random names when they ghost.
Fixed a typo in the borg manual

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3521 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-27 01:56:21 +00:00
quartz235@gmail.com
1b74952dd0 Fixes some runtimes, involving do_mob, observe, send_status on mulebots, check_gas_mixture, the explosion cinematic, sleeper get_reagents_amount, and a possible (albeit unlikely) fix for throw_at
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3478 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-19 00:14:56 +00:00
VivianFoxfoot@gmail.com
3dae4beda4 Adds an adminverb to quickly take control of a mob, mostly for testing
Mech fabricator can no longer sync while it has a queue
Fixes resisting out of cuffbuckling.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3449 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-13 16:02:27 +00:00
VivianFoxfoot@gmail.com
57dcdcbfbc git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3425 316c924e-a436-60f5-8080-3fe189b3f50e 2012-04-10 03:21:08 +00:00
VivianFoxfoot@gmail.com
92fedfe8df An attempt to make the master controller more robust. This shouldn't cause terrible additional lag, given that the master controller doesn't actually fire that often, and can also give us a clue as to what part of the controller has died in case of failure
Modifies do_after to something that fires a lot less, and is hopefully more robust against infinite loops. It is now theoretically possible to run around and then come back to the same place and have it complete, but that's only really valid for extremely long times (like handcuff removal) and if you get lucky and dodge one of the timed checks.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3421 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-09 18:53:04 +00:00
vageyenaman@gmail.com
f9c472c4ee Hopefully should fix some crashing for NTSL.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3413 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-08 18:34:56 +00:00
quartz235@gmail.com
1f2e67f9ff Runtime fixes
Moved delete to trial admins because they can already mass delete and that's not particularly as helpful as regular delete (but a lot more destructive)
Trialmins can now toggle adminhelp sounds without observing

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3397 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-03 00:09:44 +00:00
quartz235@gmail.com
a3bf2d0a03 Runtimes goin down for the count
Lookin at the ground
I think they a hater

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3371 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-29 22:17:00 +00:00
vageyenaman@gmail.com
37e972ec48 More work on shuttle transit stuff.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3352 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-24 02:11:47 +00:00
VivianFoxfoot@gmail.com
e14671e234 Adds Halloss as a damage type weapons can do. Halloss can be healed by sleeping. Halloss now effects the interface more fully.
Adds a holodeck to fitness!  
Tensioner now respects antagonist preferences (Mmph.  More antagonist for me.)
More flailing attempts to fix the tensioner assigning braindead people.  (How?)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3341 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-23 04:39:38 +00:00
elly1989@rocketmail.com
a7bc2b0bb7 Fixes a dd_replacetext() sanity checks so that "" isn't considered an invalid text to substitute into a string.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3336 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-21 19:37:06 +00:00