Commit Graph

567 Commits

Author SHA1 Message Date
petethegoat@gmail.com
08f350acda Committing work on away missions.
Standardised cigs_lighters.dm a bit.

Removed the SORD, and some unused and shit flasks.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4609 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-02 23:58:11 +00:00
giacomand@gmail.com
c207124142 New item "camera assembly" that is dispensed from the autolathe. (700 Metal/300 Glass), deleted old grenade camera assembly.
It will construct a camera after doing the following steps:
Wrench it to attach it to a wall
Weld it to the wall with a welding tool (Welding Helmet Required)
Attach wires to the camera
Possible extra steps in order to create special cameras (X-Ray, EMP Proof, Motion) (You can have more than 1 special attachment, meaning it can be possible to have an EMP Proof, Motion, X-Ray camera)
X-Ray will need carrots (something for botanists) (this will possibly changed, well it will definitely carrots are weird)
EMP Proof will need solid plasma.
Motion will need a prox sensor.
Screwdriver the panel closed to complete the camera.

To deconstruct the camera, it would be not so difficult to disable but it will take a while to completely remove it:
Screwdriver the panel open
Cut all the wires, cutting the alarm wire is optional.
Weld it.
It is now a camera assembly again.

Gave the cameras wires to cut/mend/pulse. Random wires for every camera to make hacking it harder.
Focus wire. Will make the camera have a shorter or normal vision range.
Power wire. Will disable the camera. Pulsing will make it kick anyone who is viewing it through a security computer. Will give a tiny shock if not protected.
Light wire. Will disable the "Toggle Camera Light" that the AI has. Pulsing it will disable/enable it.
Alarm wire. Will warn the AI that a camera's alarm has been set off, when this wire has been cut/pulsed. Does nothing else. Should only triggered once, meaning.. setting off the camera won't set it off ever again..
Special wire. Will toggle the special attachment of the camera. Pulse toggles, cutting disables, mending enables.
Nothing wire. Does nothing, just here to add more wires and make guessing which wire does which harder. x 3

Placed extra cameras, I can't recall all the places but here are some.
Around solar array entrances
Around EVA
Around the security back maintenance door
Place an X-Ray camera in the Living Quarters.
Bartender back room
Virology living quarters
Chapel crematory
A camera on the outside of Telecomm's external airlock
X-Ray camera outside every escape pod station.
Inbetween toxins test site and the station(?) There's cameras there already
Inbetween viro and medbay i think ^ I mean inside maintalright
private study? (library back room)
engineering secure storage
X-ray camera in toilets (both of them)
Both maintenance access that you find between important areas (captain room, teleporter room)(HoP office, staff meeting
Custodial Closet
Surgery Observation
Atmospherics Maintenance
Infront of Atmos
mining maintenance
Kitchen cold room
Hydroponics Storage
Emergency storage (both)

Other Map changes
Add red phone in Cyborg Station
Add AI restorer to Cyborg Station room
Added some camera assemblies in the Cyborg Station, inside a crate!

TODO:

Get camera alarms to give the AI a link to press, to jump there.
Standardize wires or something. There's a lot of copy+paste..

OTHER:

With the new camera stuff I got rid of the default x-ray cameras. Though there still are x-ray cameras placed around, watching you sleep.

Added Lugar223's improved vending interface. http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=9586

Some runtime fixes.

Added a second buffer for Cyborg cameras. Hopefully it'll make freelook less laggy.
Increased the first buffer to 2 seconds.
Some tweaking to stuff.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4606 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-02 23:20:40 +00:00
elly1989@rocketmail.com
3cbbbd78ea Fixes an issue with smoke bombs calling the smoke effect set_up improperly
Supply_packs ow use paths rather than strings. This is because paths for some of the items have changed with recent updates which was causing the strings to become invalid, but the compiler does not check them. Now that they are paths, the compiler will warn you. Fixes a number of runtimes with supply_packs/shuttle. A number of items that were meant to spawn in supply crates that were affected by this now spawn again. (stuff like grenades, spray bottles, etc)

Added a damp rag to the janitorial closet.
Added ammonia to the hydro crate (removed 2 bottles of pest-spray and increased cost slightly to offset)

Moved explosion2.dm to WIP/carn/Explosion2.dm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4601 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-02 18:27:45 +00:00
giacomand@gmail.com
760a57c44d -Increased the range of the EMP grenade to 10/20.
-Added two more grenades inside the EMP kit.

-Made reagents, which react to turf, require a certain number of volume before affecting the turf. For instance, you need 5 units of Thermite on a wall now.

-Added an EMP pulse recipe. It will react immediately on the mixing of the required reagents, which are Uranium and Iron. A grenade with 50 units of Uranium and Iron will act the same as an ordinary EMP grenade, with 10/20 range. Less or more reagents will change the range.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4588 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-30 13:52:26 +00:00
johnsonmt88@gmail.com
867b21c7ce File restructuring!
This brings down a bunch of defines from /code/defines/obj.dm unto their appropriate files.

I've moved morgue.dm from game/machinery into game/objects/structures since that file contains no machines.

I've reorganized the objects/items/stacks folder and made a 'sheets' and 'tiles' folder to keep things separate

I've separated stool_chair_bed.dm into its own folder which now contains the files: stools.dm, chairs.dm, bed.dm and alien_nests.dm to make it a little easier to go through.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4582 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-29 18:00:30 +00:00
johnsonmt88@gmail.com
0d9da06677 Added an attack sound to:
Glass shard
Broken bottle
Sord/Claymore/Katana
Cult blade
Kitchen knife/Butcher's cleaver
Nettle/Death nettle
Hatchet

Thank you carn for testing this for me :)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4580 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-29 16:04:23 +00:00
giacomand@gmail.com
a84ccb93ff -Fixed an issue where you couldn't send messages to people inside lockers.
-AI has to double click to move by turf.
-If more than a certain number of alarms are triggered, the AI and Cyborg will instead receive a message saying how many alarms have been triggered and of which type, they will then get a link to the "view alarms" proc. This also counts for cleared alarms.
-Fixed an issue with creating turfs and it not showing up on the camera.
-Modified the "Communication Blackout" event. It will now notify the AI that comms are down, if it is var/silent. Increased the EMP duration for telecomm machines.
-Updated the changelog.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4572 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-28 08:13:00 +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
petethegoat@gmail.com
c14f242b4e Some assembly fixes and tidying up. Plus, improved infrared emitters, with new sprites by Pewtershmitz!
Removed the infra sensor, as it was buggy, and, to be perfectly honest, utterly pointless.
Slightly improved and moved dice code.

Fixes issue 366.
Fixes issue 317.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4555 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 22:44:04 +00:00
johnsonmt88@gmail.com
2e7b008d27 File structure again.
This cleans up all of the files in code/game/objects/items/weapons. Meaning that the re-organizing part of this endeavour is complete. All that is left is to start dragging down all of the object definitions from code/defines/ into their proper places.

While I'm certain this is all good, I'll apologize now if files or paths end up broken.

Again: Make sure your .dme is up to date! Delete it if necessary to SVN Upload it to the current revision.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4550 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 05:20:27 +00:00
johnsonmt88@gmail.com
bfbd177732 Changed the AI's intercoms around a bit.
West = Custom Channel (mic off, speaker off)
North = Common Channel (mic on, speaker on)
East = Private Channel (mic off, speaker on) //No change

The old system had two intercoms on the common channel, one with the mic on/speaker off and one with the mic off/speaker on. Apparently it was too confusing for players to figure out that when they changed the freq for one, they'd have to change the speaker/mic of the other. Fixes issue 837.

I've also fixed a derp with fire extinguishers I made in my last commit.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4548 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 04:16:37 +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
johnsonmt88@gmail.com
d36387607f More file structure stuff.
- The folders themselves are now finished
- Next I'll go through each file and organize them
- Lastly I'll start pulling the object definitions out of /code/defines/ and put them into their respective files.

**Note to committers**
Make sure the .dme file updates when you update to this revision. If necessary delete the .dme and svn-update.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4546 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 01:20:02 +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
d_h2005@yahoo.com
3705bc9350 Adds double-bladed energy swords, a two-handed variant of the normal swords.
Committing this before someone else goes and conflicts all my sprite files again...

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4533 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-25 05:41:39 +00:00
johnsonmt88@gmail.com
1a8fb7c09e Another small chunk of reorganizing objects.
I've cleared out most of the .dm files in code/game/objects/ and put it into appropriate files/folders. The stuff I've left is stuff I believe may conflict with carn's work and some code for stuff that does not have a home yet.

TODO:
- Files that were left in code/game/objects that may conflict with carns work
- Go through all the files in all the subfolders of code/game/objects.
- Move all the defines from /defines/ to their proper spots

Not much right?

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4520 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-22 21:55:46 +00:00
petethegoat@gmail.com
d6f2556945 First part of a fix for issue 818.
Removed some pointless, unused objects. (i'm looking at you, rubber chicken without a sprite)
Added a few new "features"- lighting cigs with igniters, and toggle-able bedsheets.
Slightly improved the cow gib sprite because if I don't commit it now I'll revert it.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4517 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-22 18:56:31 +00:00
johnsonmt88@gmail.com
00a1ff2d97 The changeling's regenerative ability's description now states that you have to use it before you die to help prevent confusion.
A proper fix for teleport data-cards. Instead of just doing player.loc = landmark.loc it now properly uses the teleporter datum. It sets a new 'one time use' variable which means that only one person or object can pass through the teleporter before it looses the coordinates. This is also in place to prevent hand-teles from opening portals to the clown planet.

Players will not really notice any change except that when they insert the clown-coordinates, they must then walk through the teleporter.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4503 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-20 19:44:14 +00:00
baloh.matevz
f392067896 - Reagent code reorganization commit 3 (finalizing everything)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4493 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 21:53:47 +00:00
baloh.matevz
7789c31c92 - Mining satchels now once again fit in on belts and pockets
- Increased the mining satchel capacity from 30 to 50
- Fixed the issue where picking up all the items from a tile would display the pick-up message as many times as there were items to pick up.
- Fixed the problem which made ores sometimes stay on your screen after being inserted into an ore box.
- Restored the ability to empty satchels, and any other storage item that has the 'empty contents' verb, by just using them on themselves.
- Fixed an ages-old desync bug which happened when you used the a crossbow on a storage item. 
- Fixed a potential problem which caused removed item's layers to not get updated properly.
- Fixes issue 819

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4490 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 17:33:42 +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
Kortgstation@gmail.com
e8f4ce561f What did I even do
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4456 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 03:12:58 +00:00
Kortgstation@gmail.com
6800f6aaf2 Gave titles to the manuals to stop the incomplete messages when reading them. Which fixes some issue or another but I dunno how to link that so whatever.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4455 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 02:53:19 +00:00
johnsonmt88@gmail.com
852b838e4e There were a bunch of boxes that had their own special code when they all do the same thing. So I've merged them into proper storage items.
Boxes affected:
- Donut boxes
- Egg cartons
- Candle packs
- Match boxes
- Snap pop boxes
- Monkey cube boxes

Items I didn't merge:
- Pizza boxes
- Cigarette packs

Pizza boxes are a whole new kind of 'special snowflake code' that is best left the way it is. Cigarette packs involve some stuff I'm unfamiliar with so that can wait until I learn what I need to learn.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4452 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 00:35:01 +00:00
baloh.matevz
cac628a640 - In preparation of fixing issue 585, which extends far further than just the things listed there, as well as to standardize the many incarnations of satchel-type code (pill boxes, mining satchels, hydroponics satchels, etc.) I have added some functions to storage type items:
New variables:
var/use_to_pickup = if 1, the storage item also works like satchels, which means you can use it on something else to pick it up.
var/display_contents_with_number = if 1, the items in the storage item are grouped by type with the number of items being displayed. See the screenshot.
var/allow_quick_empty = if 1 on creation, it adds a verb that allows you to empty the item with one click
var/allow_quick_gather = if 1 on creation, it adds a verb which allows you to switch between pick-up methods. one-per-click or all-on-tile. Same as satchels worked. use_to_pickup must be 1 for any of that to matter.
var/collection_mode = 1;  //0 = pick one at a time, 1 = pick all on tile

New procs:
/obj/item/weapon/storage/proc/can_be_inserted(obj/item/W as obj, stop_messages = 0)
- Returns 0 or 1, depending on whether the item W can be inserted
/obj/item/weapon/storage/proc/handle_item_insertion(obj/item/W as obj)
- Inserts the item into the storage item and calls all the procs it needs to. Doesn't check whether the item can fit tho, tha'ts what can_be_inserted() is for.
/obj/item/weapon/storage/proc/remove_from_storage(obj/item/W as obj, atom/new_location)
- Removes item W from the storage object and sets it's loc to new_location or get_turf(src) if one is not provided.
/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S as obj)
- Called after the object has been removed from the storage item S. The object's loc is already set to the new one.
/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S as obj)
- Called after the object has been inserted into the storage item S. The object's loc is already set to S.

I made satchels work on this new code. The rest will be added to it soon. See the screenshot.

Screenshot:
http://www.kamletos.si/new%20satchels.png

This is yet another big change and it is very possible that bugs will come from it. Please report them to me or on the tracker.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4451 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-16 23:35:53 +00:00
giacomand@gmail.com
be76c3afcc Fixed issue 645.
I changed how uplinks worked. Instead of there being a duplicate item which would switch out when it activates, there's an item called "obj/item/device/uplink/hidden". It is a hidden uplink which you can place in any obj/item. In "hidden" is where it will generate menus, check for triggers to show the menu and etc.. No need to switch out with duplicate items or add the menu onto the PDA's notes.

How to create a new uplink item in 3 easy steps!

1. All obj/item 's have a hidden_uplink var. By default it's null. Give the item one with "new(src)", it must be in it's contents. Feel free to add/remove "uses".

2. Code in the triggers. Use check_trigger for this, I recommend closing the item's menu with "usr << browse(null, "window=windowname") if it returns true. The var/value is the value that will be compared with the var/target. If they are equal it will activate the menu.

3. If you want the menu to stay until the users locks his uplink, add an active_uplink_check(mob/user as mob) in your interact/attack_hand proc. Then check if it's true, if true return. This will stop the normal menu appearing and will instead show the uplink menu.

I've given the recharge station's verbs a category so they don't create their own tab.
I've added a mob/proc called put_in_any_hand_if_possible. Name speaks for itself. Returns true if successful, false otherwise.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4450 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-16 21:57:27 +00:00
petethegoat@gmail.com
0970e6c55d Standardised reagent colour mixing a little bit. Fixes issue 785.
Changed the path of large beakers, so they're actually a subtype of beaker (wtf)

Moved new_year.dm to unused.
Updated Carn's sequential master controller to not have tension stuff, for potential live testing.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4444 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-16 18:33:34 +00:00
baloh.matevz
26314e1310 - Fixed a small noize-bug
- Fixed issue 783 Unstable mutagen now only reacts to mobs with dna.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4441 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-16 17:57:27 +00:00
sieve32@gmail.com
f0ed7dc198 -Fixed carp chasing their target around when dead
-Deleted the old /obj/item/weapon/'grenade', there's standardized stuff now, and the old shit doesn't even work. Waste of space, 0/10 would delete again.
-Fixed clusterbangs. Honk

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4426 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-16 02:06:43 +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
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
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
rockdtben@gmail.com
bf9f922390 -Fixes issue 690
-Made my comment less ambiguous

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4391 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-13 13:21:02 +00:00
rockdtben@gmail.com
bfd80f5854 -Tidied up some of the nanoaug code
-Modified the implanted method signature to be more readable
-Tested changes with Ausops

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4390 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-13 11:08:25 +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
petethegoat@gmail.com
faea964e13 Fixes issue 521.
Fixes issue 676.
Fixes issue 700.
Fixes issue 753.
Fixes issue 754.
Fixes issue 755.

Additionally I slightly cleaned up grenade code and stunglove code, and removed mustardbomb.dm (because it was fucking awful).

THIS BUGFIX TRAIN AIN'T STOPPIN'
Thanks QualityVan for the issue 521 fix, and thanks Nodrak & Tobba for pointing out my dumbness for issues 753 & 754 respectively.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4382 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-12 19:51:08 +00:00
rockdtben@gmail.com
7f0e81c5bc Fixed issue 625
-Revheads cannot exploit loyalty implants anymore.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4381 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-12 16:09:08 +00:00
elly1989@rocketmail.com
a79f049ebd Moves mob/var/datum/changeling/changeling to datum/mind/var/datum/changeling (changeling datums are now held by minds rather than mobs)
As such, changelings can now be reported at round-end, even after gibbing. Resolves Issue 251

Changeling power proc_holders are now datums rather than objects.
Condensed all those changeling stings down a bit. This will make fixing issue 351 easier to fix

Replaced changeling fakedeath and a number of checks for the zombiepowder reagent with a bitflag: mob/var/status_flags & FAKEDEATH
setting the FAKEDEATH flag will make the mob appear dead in exactly the same way changeling parasting and parapens worked. I've updated changelings and zombiepowder to work with this flag.

Bug fixes for the staff of change. There was a type mismatch and I typo'd "alien" as "xeno" so xenos were not being randomly picked.

TODO:
changeling purchased verbs could probably be moved to mind/special_verbs. Likewise, other modular antag proc-holders can be merged with the changeling system using the same type of datum. (namely wizards)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4377 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-12 05:43:39 +00:00
quartz235@gmail.com
710acf77e5 Fixed issue 695
- Syringe overlay layer is no longer above the blackout screen layer
Fixed issue 704
- Shades (and all simple animals) can no longer pick up paper bins/donut boxes with clickdragging (were there any other objects you could pick up with onmousedrop?)
Fixed issue 737
- Dead/unconscious cultists no longer count towards cultist count on rune use (such as sacrifice, nar-sie, etc)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4360 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-10 20:03:24 +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
petethegoat@gmail.com
46db0d2c3e Fixes issue 641.
Fixes issue 339.
Does not fix issue 506, but I have spruced up the text a bit.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4335 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-07 17:20:22 +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
giacomand@gmail.com
e0ca2a6bc0 -Fixed issue 540, someone thought that the prison's intercom microphone not working was a bug, which was actually intentional.
-Fixed issue 643, the code will now check that the TKed item's loc is on turf, i.e: not in a locker or in someone's pockets.
-Fixed issue 282, the locker wouldn't pick up the chameleon's dummy because it was an effect and not an item. I added a hacky exception for the chameleon projector. I've also made the starting item something more useful so that people will use it more. Please report any issues you find with this, I'm sure nothing too bad will happen.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4313 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-04 14:35:12 +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
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
johnsonmt88@gmail.com
6a9b24a178 Runtime fixes:
- Robots being deleted passed the mmi object to the mob list instead of the mmi's brainmob

- DNA injectors were checking for a user, but not for a mob.

- DNA computers would try to modify the dna of a mob that no longer existed.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4239 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-31 01:19:22 +00:00
elly1989@rocketmail.com
919677e2d5 Finally fixed those clean_blood() calls so they update mob-overlays properly. Resolves issue 681. Fixes space-cleaner grenades/splashing/spraying, Soap (work-around), Showers (again) and Janitor-borgs.
Fixed putting ammo in RCDs, resolves issue 696. Removed a little spam-text from RCDs too.
Removed some dyslexia from spesscash.
added an undef for LEGCUFF_LAYER


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4209 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-29 04:04:24 +00:00
johnsonmt88@gmail.com
c930622bea Attack verbs!
Instead of 'x has been attacked with y by z' it now reads 'x has been 'y.attack_verb-ed' with y by z'!
Example:
Monkeyman has been bashed in the head with a riot shield by Nodrak!
or
Monkeyman has been stabbed in the chest with an energy sword by Nodrak!

- Every obj now has a list named "attack_verbs"
- When declaring an object, just use attack_verb = list("verb1", "verb2") and so on to initialize the list for that specific item.
- I've added a bunch of these to a ton of items already, feel free to modify or add more. Just try to stay away from gimmicky verbs (clown stuff being the exception.)

clothing.dm and spawner.dm only had a single definition in each of them, so their definitins have been moved to obj.dm and their original dm files deleted. I'm not sure about spawner but clothing had all of its other definitions removed recently.

radio.dm was a completely blank file, so it was removed.

Changelog updated

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4182 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-26 05:21:24 +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