Commit Graph

300 Commits

Author SHA1 Message Date
petethegoat@gmail.com
11b17c4442 Committing suomynonAyletamitlU's storage item standardisation commit: http://forums.nanotrasen.com/viewtopic.php?f=16&t=11746
Standardization of the object tree and some modified functionality.
Moved a lot of storage/*_kit and similar boxes to storage/box/* ; most of these can now be found in boxes.dm. First aid kits remain a separate item type.
Replacement Light boxes pick up lights (for example broken ones) when used on them
Moved weapon/secstorage to storage/secure
Moved plant bags, ore satchel, trash bag, and sheet snatcher to storage/bag, in bags.dm
Fixed reagent_containers and snacks to pass through attackby() so the use_to_pickup code works. This affects plant bags, trash bags, and pill bottles.
Dice packs are now pill bottles, and all pill bottles can pick up dice.
Added error handling to uplink/generate_menu() so that one mistyped string doesn't bork the whole syndie uplink menu, since strings cannot be type-checked at compile time.
Cigarette packs and crayon boxes are now storage/fancy, however they retain existing update_icon() code.
Added a comment to storage.dm so that future people know where to look for use_to_pickup and allow_quick_gather code.

Updated all maps.

I've tried to test this thoroughly but I wouldn't be surprised if there were a few lingering issues. Try not to panic if you encounter any.

Full (i think) list of changed paths:
/obj/item/weapon/storage/flashbang_kit	> /obj/item/weapon/storage/box/flashbangs
/obj/item/weapon/storage/body_bag_box	> /obj/item/weapon/storage/box/bodybags
/obj/item/weapon/storage/chemimp_kit	> /obj/item/weapon/storage/box/chemimp
/obj/item/weapon/storage/trackimp_kit	> /obj/item/weapon/storage/box/trackimp
/obj/item/weapon/storage/seccart_kit	> /obj/item/weapon/storage/box/seccarts
/obj/item/weapon/storage/handcuff_kit	> /obj/item/weapon/storage/box/handcuffs
/obj/item/weapon/cigpacket		> /obj/item/weapon/storage/fancy/cigarettes
/obj/item/weapon/storage/mousetraps	> /obj/item/weapon/storage/box/mousetraps
/obj/item/weapon/storage/PDAbox		> /obj/item/weapon/storage/box/PDAs
/obj/item/weapon/storage/id_kit		> /obj/item/weapon/storage/box/ids
/obj/item/weapon/storage/lightbox/mixed	> /obj/item/weapon/storage/box/lights/mixed
/obj/item/weapon/storage/donkpocket_kit	> /obj/item/weapon/storage/box/donkpockets
/obj/item/weapon/storage/beakerbox	> /obj/item/weapon/storage/box/beakers
/obj/item/weapon/storage/syringes	> /obj/item/weapon/storage/box/syringes
/obj/item/weapon/storage/gl_kit		> /obj/item/weapon/storage/box/rxglasses
/obj/item/weapon/storage/diskbox	> /obj/item/weapon/storage/box/disks
/obj/item/weapon/storage/stma_kit	> /obj/item/weapon/storage/box/masks
/obj/item/weapon/storage/lglo_kit	> /obj/item/weapon/storage/box/gloves
/obj/item/weapon/storage/lightbox/bulbs	> /obj/item/weapon/storage/box/lights/bulbs
/obj/item/weapon/plantbag		> /obj/item/weapon/storage/bag/plants
/obj/item/weapon/storage/satchel	> /obj/item/weapon/storage/bag/ore
/obj/item/weapon/trashbag		> /obj/item/weapon/storage/bag/trash

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5494 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-08 19:11:56 +00:00
giacomand@gmail.com
53f11d0137 PACMAN generators will drop fuel. Added an eject button too. Fixes 1232
Gave human made cameras a c_tag on construction. Fixes 1222

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5491 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-07 23:35:18 +00:00
giacomand@gmail.com
e4478711e4 -Added a logging message for a node having a null powernet.
-Misc stuff.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5475 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-06 00:08:51 +00:00
johnsonmt88@gmail.com
2c3ae32f04 You can now commit suicide using certain items! There will be more items to come, this really just lays the groundwork.
Credit goes to CodenameB and Spike68 for the original proposed commit. Althought it ended up changing, this commit still uses all of their suicide messages. Thanks to carn for pseudo-coding the base of the system that I ended up using to implement this.

The suicide verb checks the item in your active hand and calls that item's suicide_act(). (/obj/item/proc/suicide_act(mob/user)) The proc displays the suicide message to any viewers and returns a damage type. The suicide verb then applies 175 damage to the mob divided by the number of damage types. If the proc returns null (meaning that the item does not have a suicide_act() defined) the regular suicide occurs.

To any coder wanting to add items to this: 
- You MUST return one or more damage types. "return (BRUTELOSS|FIRELOSS)" for example.
- Please do not manually type in the item's name; use [src] to refrence an it instead. It'll save time down the road if an item gets renamed. It also helps handle any child of that item without copy/pasting the proc to each child.
- Please do not use 'usr' for anything.

Parrots can now see which item they are holding onto in the stat panel.

The toy crossbow should once again work properly. Fixes Issue 1227.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5468 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-05 03:56:24 +00:00
rockdtben@gmail.com
169c96db1b Too remove potential excessive garbage collection per tick. We will be reusing lists for overlays instead of deleting and creating them.
the .Cut() proc on a list will empty a list by default. This also will set the len to 0.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5465 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-04 15:11:06 +00:00
giacomand@gmail.com
31e8a5ebae Portable generators will not remake powernets everytime a wrench is used on it.
Got rid of the reliability factors for generating power or critically failing.
Increased the time factor for each sheet for all generators.
Added some feedback stuff such as saying which fuel the generator takes and how much power is in the current powernet, that it is connected to.

Powernet making will not wire up "power" machines that are not anchored.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5458 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-03 15:23:43 +00:00
giacomand@gmail.com
a2c1c935de -Made Emitter EMP_act do nothing. For the concerned.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5455 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-03 08:23:52 +00:00
aranclanos@hotmail.com
0eee76d693 Runtime fix for the singularity, who is trying to search for the var glasses on mobs without them.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5451 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-02 12:25:26 +00:00
johnsonmt88@gmail.com
e7ebfae317 Another whack at the defines folder:
Removed defines/obj/toy.dm and moved the defines down to objects/items/toys.dm

Moved a big chunk of defines out of defines/obj/weapon.dm and into their respective .dm files.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5441 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-01 01:25:02 +00:00
giacomand@gmail.com
ab4789fec6 -Added a queue update icon system for APCs to use during process(). This will limit how often they can update their icon and will help when the power is being unstable.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5431 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-31 04:35:07 +00:00
johnsonmt88@gmail.com
0549de1b93 Removed some world messages when disconnecting powernets.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5428 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-31 02:57:05 +00:00
giacomand@gmail.com
2bd3025fe1 -You can buy shield generators from cargo. Teleporter access required.
-Small update on emitter.
-Updated changelog.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5424 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-30 11:06:53 +00:00
giacomand@gmail.com
a04eb3f275 -Changed emitters.
Emitters will now need to be wired.
Emitter type has changed to /obj/machinery/power/emitter
Fixed cables not correctly disconnecting power machinery from the powernet after being removed.

-Fixed a typo with smashing tables/racks.
-Fixed maps having incorrect types.
-Fixed singularity EMPing when at stage 1.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5423 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-30 10:47:25 +00:00
giacomand@gmail.com
7af60a7fb5 -Changed the powernet nodes list to be a dictionary list (associative list, hashtable, etc..)
-Added a solars_list. The sun will use this list instead of the machines list. I made a proc which decided on whether to use this list or the powernet nodes list depending on what is smallest. I replaced some loops to use this proc.
-The sun will reference this list for debugging purposes. The sun will also remove solar equipment in the list which are not connected to a powernet.
-Cut down on some duplicated code.
-Fixed an issue with solar panels not updating their direction correctly.
-Changed the proc updateicon()'s name to update_icon()

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5418 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-29 07:24:42 +00:00
ericgfwong@hotmail.com
82f31bc6e2 -Fixed up floor arrow icons so that they're not just the same one rotated around.
-Made chemistry a bit less reinforced.
-Moved more engineering equipment to access_engine_equip.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5413 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-29 00:14:01 +00:00
johnsonmt88@gmail.com
d4dc5ae070 Moved var/force from /obj/item to /obj so that everything gets it, including structures and machines that get tossed around using Telekenesis. The default force is still 0. This should finally put a stop to a large number of runtimes.
Runtime fix for being hit by something without there being a usr. This was most likely due to explosions or possibly mass drivers.

Runtime fix for simple animals using department channels. Only parrots can use them now as they are the only simple animal with the 'ears' variable.

Runtime fix for the mech's energy relay process() when there is no battery in the mech.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5405 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-27 02:08:41 +00:00
giacomand@gmail.com
e9fd2037d2 -Committed lpeters's patch which Fixes Issue 1189. http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=11549
-Made the shower not require power.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5391 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-24 01:38:36 +00:00
giacomand@gmail.com
cdc4332769 -Should fix machines not depowering correctly. Let me know if you find a machine which should be powered off but isn't.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5388 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-24 00:12:12 +00:00
giacomand@gmail.com
eca72b69aa -Added constructable solar arrays.
-Added a solar pack crate to order.
-Machines that have a use_power of 0 will no longer be turned off due to lack of power in the area.
-Fixed a bug with the solar computer not reconnecting to the powernet when dismantled and remantled.
-Increased the cap of crates to 30.
-Some performance tweaks.
-Some standardization.
-All objects of type /obj/machinery/power will try to disconnect from the powernet before deleting, this will help reduce the node list size.
-Added a heat_proof variable for doors. It will effect glass airlocks and it'll determine whether they can block heat or not. Research glass airlocks will always have it enabled.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5344 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-16 19:51:23 +00:00
giacomand@gmail.com
7a24d16b03 -I forgot to put back the spawn()s when I was testing whether they were needed or not.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5257 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-04 17:01:34 +00:00
giacomand@gmail.com
fc90b08e1c -Changed the limits of the server room alarm to fix Issue 1143.
-Changed the singularity code a bit. Checking for the last movement had some problems, I changed it around. It fixed Issue 1121.
-In addition of this, the singularity will now move diagonally. It doesn't get stuck in the corners of the field now.
-Mimics which are structures, have density and anchored will be able to knockdown people and be twice as strong.
-Doubled the amount of times the staff of animation can fire before needing to recharge, since it had to shoot way more than the staff of change to be effective.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5256 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-04 16:55:04 +00:00
elly1989@rocketmail.com
ec0376097a Replaced src=%holder_ref% with _src_=holder
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5203 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-26 19:24:03 +00:00
giacomand@gmail.com
6d05ae60de Balance change: Malf AIs can't shunt from APC to APC and must first return to their core. They can also start a takeover from their APC now. This is a test run with it and if people don't like it I'll remove it.
General work to advance diseases.
-Changed the possible cures to a list which is ordered from easiest to cure to -hardest to cure.
-Some tweak valuables to symptoms.

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

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5125 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-19 18:30:05 +00:00
aranclanos@hotmail.com
0258d5be22 -Changed all minerals path from /obj/item/stack/sheet to /obj/item/stack/sheet/mineral. (This change excludes glass, Rglass, metal and plasteel)
-Reduced the chunks of code about minerals in door_assembly.dm

Preeeetty much this commit is just to update all the files to the new path of the minerals. From here, if I can, I'll start changing one by one to remove the huge chunks of code.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5087 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-16 15:00:09 +00:00
giacomand@gmail.com
b54bc843ba -Eye lasers will hit people who are lying down.
-After using the wish granter it will update your mutation icons.
-Rejuv will now heal clone damage and brain damage.
-Changed the order of possible directions the singularity can go in so that it won't go south too often (in theory).

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5057 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-13 19:34:45 +00:00
aranclanos@hotmail.com
dee7b74a45 -Changed turf creations, merging everything to only one proc
-Fixes Issue 1085 - Artificers creating turfs with buggy lighting
-Spells now will use the proper proc to create turfs

Due to the amount of files changed, this is just the 'part one'. The merging in turf.dm is not finished, mineral walls and buildmode are still using the old system. The creation of turfs on the game panel is not using the proper procs yet. Stay tuned for this changes, but now, sleep.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5054 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-13 13:39:00 +00:00
giacomand@gmail.com
b00c0c2a9f -New sprites APC sprites by TankNut!
-New wraith sprites by TankNut!
-Decreased flare duration, again(!)
-Made a based interact proc and changed the updateDialog to call that instead of attack_hand. This caused issues with the APC and getting the power cell out of it. I then changed all machines that had their own defined proc (that was everywhere)


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

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

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-25 19:15:51 +00:00
giacomand@gmail.com
a6b214cc06 -Monkeys will now start dying when in crit.
-Fire heals Metroids now!
-Improved corrosive acid.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4952 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-24 20:24:48 +00:00
giacomand@gmail.com
92d0367c17 -Potentially fixed Metroids not going after food. They kept targeting unconscious food.
-Removed metroid core flushing. There doesn't seem to be a point of it.
-Badly made metroids unelectrutable. I'll change this later.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4947 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-24 02:23:17 +00:00
giacomand@gmail.com
28fbd01e7f -Added a new, and admin spawnable only, machine which can turn humans into Cyborgs. Probably can be used for Robot Uprising events. The human has to be lying down and alive to be Borged. When spawned a conveyor belt will spawn on the left and right side too.
-Reduced the duration of the flare. I think putting it in process() made it last longer.

-Added some null checks in camera chunks.

-Large NarSie now force calls the shuttle and displays a threatening warning message.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4915 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-20 02:13:40 +00:00
giacomand@gmail.com
1e1f173ca2 -Added large Nar-Sie. It is summoned by Cultists instead of regular Nar-Sie.
-Larger icon provided by HornyGranny.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4914 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-19 20:38:53 +00:00
aranclanos@hotmail.com
d25a5d5aa3 Fixes issue 1001.
Fixes issue 994. (Chemsprayers are not included)
Fixes issue 990.
Adding some instant admin logs and server logs for some stuff in emitters/PA. See image. http://i.imgur.com/7kQpH.png

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4904 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-17 14:27:23 +00:00
baloh.matevz
952954446b - Added ground code for logic elements. Currently supports sensors, indicators, negators, two input and gates, or gates, xor gates, xnor (equivalence) gates and a relay, with one control input that works by logic laws and another input and output that work by powernet laws.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4849 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-12 22:46:24 +00:00
baloh.matevz
d20ec0696a - Piped tgstation 3.0.0.dmm
(Damn it, it took a million hours to do that, and the entire commit log is going to be two words long?!)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4804 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-04 02:30:17 +00:00
giacomand@gmail.com
1c9b1a48fe -The use_power() proc, for machines, will now default to using it's assigned "power_channel", when the proc is used.
-Slightly increased the power usage of the chemistry dispenser. From 2000 to 3000.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4791 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-01 17:29:35 +00:00
giacomand@gmail.com
0fbfa48217 -Added more info for admin messages in these areas:
Chem smoke will say what reagents are in the chem_smoke.
Added a more_info ? to the last fingerprint that touched the grenade.
Added a more_info ? to bomb's last fingerprint and the attacher.
Admins get a warning message when someone summons guns.
Added a jump link to bomb's activation location.
Added a jump link to chem smoke's activation location, it will also show you the area's name.

-NarSie won't follow mobs in another Z level.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4719 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-18 09:49:51 +00:00
johnsonmt88@gmail.com
be04c81a27 Captains no longer spawns with a cigar in their mouth, instead it spawns on the desk where the captain spawns.
CEs no longer spawns with a cigarette in their mouth. I did not add a cigarette to their desk because there is already a cigarette pack that spawns there.

Moved some stuff in singularity/New() into its own proc that singularity/New() calls. This is so that I can override it and prevent runtimes with an away mission.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4717 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-18 01:36:40 +00:00
giacomand@gmail.com
2bc3ec67f1 -Improved the singularity. It was using 3 for(in range) loops when it could be easily be brought down to a single loop.
-Changed grabbing's constructor to allow parameters for the grabber and the grabbee. (I made a simple little tweak and look at all the files I had to change :( )

-Easter Egg: Clowns have a chance of reducing or increasing the singularities energy. Upper and lower limit is 300 and -300.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4681 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-12 11:17:49 +00:00
elly1989@rocketmail.com
9f1362c68d Failsafe added to the debug/restart controller verbs.dm
Failsafe now checks the lighting_controller too. It will restart it if it doesn't progress for 5 cycles (same as MC)
datum/failsafe is now datum/controller/failsafe

The probability of lights breaking after spawn was reduced from tube:10 and bulb:25 to tube:2 bulb:5

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4674 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-10 12:53:55 +00:00
elly1989@rocketmail.com
aeaf790882 Removed a spawn() from rad_collector/New()
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4643 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-07 09:48:57 +00:00
giacomand@gmail.com
ecd2bcec56 -Holograms are range based again.
-Instead of the singularity using range to look for rad_collectors around it, it will now look through the list and check the distance between every rad_collector, if it's less than 15 tiles in range then it'll give it power.
-Fixed naming your revolver.
-

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4638 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-06 21:24:33 +00:00
elly1989@rocketmail.com
c81c70bd86 Replaced var/netnum for cables and powered machines with a direct reference to their powernet. The bug which was causing cutting and merging powernets to fail was due to my attempts to fix the powernets slowly becoming filled with null entries. Removing those null entries messed up the indexes and essentially jumbled up the powernets. :( sorry
Fixed the failsafe misreporting how long the MC has been dead.

Lighting initialization no longer 'interrupts' the master_controller setup().

Added updated powernet debugging tools. They're in my WIP folder. They are sexy c: It draws the powernet onto the map so you can see what's going on during debugging.

Added tachyon-doppler arrays. They're gonna be something for scientists to measure their bombs with rather than praying for the figures. Nothing spectacular.

Commented out switches, they aren't used and I've been fixing/testing powernets all day. Sorry. If you need them back  just PM me and I'll fix them.

Known issues: the merging procs behave silly at intersections. I really tried to fix it but I think I'll make more progress just working on some powernet improvements.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4623 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-05 16:14:24 +00:00
elly1989@rocketmail.com
73e5c38a56 Preparations for reducing the number of processing machines at round-start. There are currently 8000 or so at round start, this was already pruned to 2800ish by doohl's stuff.
machine.process() now uses a return value to remove itself from the processing machines list. This is more efficient and will help reduce costs especially at round start where some 5000+ machines were removed from the list using first-find. Now there is no searching involved. Instead of machines.Remove(src) just do .=PROCESS_KILL that will return the flag to the proc which called it (the MC) and trigger its removal from the list. If you're deleting something don't even bother removing it from the machines list, there is no need to.

Simplified the last_processed stuff for the MC. It's now a single variable rather than 3. It is simply a typepath rather than a reference to an object (this is so it works even if said object is deleted)

MC stats in admin status_panels now show the length of the processing lists (indicated by #). I've just realised I forgot to mention what the abbreviations are:
The less obvious ones are: Dis=diseases; Net=pipes; Pnet=powernets; Mch=Machines; Tick=the game-mode ticker.

Beach-water now uses an overlay image rather than a separate object.

Fixed a typo in the shuttle console.

Hydroponics trays no longer use first-find within their process() for checking the plant is in the tray (why is that even there anyway? talk about lazy)

Removed some junk/placeholder procs like organ/proc/process() return

Removed newscasters from the processing machines lists.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4603 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-02 20:32:01 +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
giacomand@gmail.com
42f3efc21a I wanted to wait until after the feature freeze to commit this but there have been problems with Telecomms recently and this update that I've been keeping fixes most of the issues. I've tried to remove most features from it but there were some things that I couldn't.
-TCommsat machines no longer use their Z level to check if they can receive the signal or not. Instead, they use listening_level. It defaults to 0 for machines that don't change the value. If it is 0 when the telecomms machine's New() is called it will set itself to it's Z level.

-This allows you to manually change the value to other Z levels. I call this an off-site relay. I've added an off-site relay on the satelitte for the station and removed the one in the communications room.

-Players can create an offsite relay with two receivers, two broadcasters and, if necessary, a relay. Why two receivers and broadcasters? Otherwise any player can go to the Ruskie/Mining relays and turn them into off-site relays for the station! It would harm the TCommsat's usefulness. Instead, you will have to setup another broadcaster and receiver if you want to do that. Though it may be pointless, if someone sabotages the Commsat they would have destroyed/depowered the other machines there too.

-About the option to have an offsite relay, there is only a single Z level that you can lock onto at the moment and that's the station. Gameplay wise, the TCommsat is orbiting the station and if we do get the away missions then it would not make sense for the TCommsat's broadcaster/receiver signal to be able to pickup there. More sense if the Receivers and Broadcasters from there
are sent here... maybe. I don't know, seems more fun this way.

-Fixed an issue that doesn't let the Engineer Borg (or Borgs with multitools) be able to link machines with their multitool module.

-All-In-Ones do not have a Z level restriction. They can pick up ALL signals and send ALL signals (to Z levels 1-10)

-Fixed an issue with the player being unable to remove frequencies from the filter.

-Added support for additional interaction options for certain machines. To use it, create a new Options_Menu() and Options_Topic(href, href_list) for your machine.

-Added EMP_ACT to Telecommunication Machines. I've also added an event called "telecommunications_blackout()", it will loop through all telecomm machines, in telecomms_list, and EMP_ACT them. The EMP will last 2 minutes. Currently only admins can use it.

-Fixed issue 831

-Changed the map. The station no longer has the station relay, it is now on the Satellite. There's an empty room now, it should be used for something after the feature freeze.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4522 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-23 16:27:21 +00:00
johnsonmt88@gmail.com
4b2326388c In-hand items should now properly update when equipping items.
The singularity can no longer stunlock dead or unconscious people.

tgstation.dme updated since one of the files were removed

Changelog updated to put the 'have a bug to report?' bit to a spot just above where coders put their changes.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4521 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-23 04:13:37 +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
7b572e4ca7 - Fixes issue 760 The AI's machine variable did not get reset properly upon failure. The machine variable's interact() proc is normally called once per tick. In the case of an APC it printed the fail message, but did not reset the variable to null, meaning the same machine's interact() proc would get called the next tick, giving the same error.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4463 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 05:48:16 +00:00