Commit Graph

1064 Commits

Author SHA1 Message Date
d_h2005@yahoo.com
a3ca5e7ded The yield mode on the somatoray gun now uses a diminishing-returns formula to determine the chance of increasing yield (instead of a hard cap at 2)! Cleaned up somatoray code a bit too.
Doctor's Delight, the miracle drug, now requires tricordrazine to brew.
Fixes Issue 858. The text is now gender sensitive.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4571 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-28 03:17:13 +00:00
giacomand@gmail.com
b0f750339c Added freelook AI Eye acceleration. Your AI Eye will get faster the longer you move it, allowing you to move around the station quickly. Stopping long enough will return the camera to normal speed.
With this I added a toggle to the acceleration. Using it will stop the AI Eye from gaining speed.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4570 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-27 20:30:03 +00:00
giacomand@gmail.com
a6fa7ad176 -Fixed an AI eye issue where tracking a person from your core won't set your eye.dm
-Tracking now works like it has again. The else if weren't working because the "else if human" check would make them pass all of it.

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

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4561 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-27 09:32:09 +00:00
giacomand@gmail.com
678e4a9ffa -Cameras have X-Ray vision again.
-Fixed an issue when pressing jump links as an AI, for air alarms/power alarms.
-Changed the empty room to a Cyborg Station room. It has two recharging stations and a computer frame.
-Moved around some Telecomms machines.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4559 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-27 06:35:10 +00:00
johnsonmt88@gmail.com
4406c057c9 Admins now have an 'Animalize' button on mob player panels. This allows an admin to turn a mob into any simple_animal they wish.
Unfortunately I had to disallow certain animal types until they can be fixed.

- Mice: I know, it sucks. Mice were the reason I started making this button to begin with, and it's something that both players and admins are requesting. The problem is that when a mob is turned into a mouse, for some reason it becomes impossible to pull up their player panel. If that gets fixed, I'll allow this button to turn players into mice.

- Space Bears: The bear's AI does not seem to turn off when it is player controlled. Basically the bear will automatically maul nearby players to death and spam emotes regardless of the player's actions or inaction.

- Parrots: They are unfinished. They have no sprite, no movement and are completely untested. They were one of Poly's creations that never ended up getting finished. I like the idea of parrots though, someone should work on them!

- Space Worms: Another unfinished project. Currently they drop new space worms when the player moves and you can end up eating your own tail. Eating your tail drops a new space worm and regenerates your tail. I only spent about 15 seconds as a space worm, so there are probably more issues.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4557 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-27 02:51:07 +00:00
elly1989@rocketmail.com
474294466a Fixes a really stupid mistake where a sleep() was causing the explosion() proc to end after the sleep due to src being null. This meant that the lighting process was turned off but never turned back on. It also meant powernets were deferred permanently :( sorry.
Reduced the Login delay for new_players. It stays because it protects against rapid connect/disconnects sending resources repeatedly, it's just a lot less annoying now.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4554 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 17:50:29 +00:00
johnsonmt88@gmail.com
5eb6bd3b68 Runtime fixes:
runtime error: list index out of bounds
proc name: attack (/obj/item/weapon/gun/projectile/russian/attack)

runtime error: Cannot read null.loc
proc name: Topic (/mob/living/silicon/pai/Topic)

I've also added Pewter to the list of spriters.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4553 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 16:16:07 +00:00
giacomand@gmail.com
08a969b6a2 -AI Eye won't show up in pull, examine or point to popout menus.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4549 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 04:53:29 +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
giacomand@gmail.com
95f05fbaea -Changed choking.
You have to stand still while lethally choking someone. It takes time to get into that lethal choke. When you are lethaling choking someone, they are still concious until the lack of oxygen knocks them out.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4542 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-25 21:01:39 +00:00
giacomand@gmail.com
348685d97c -AI camera light now properly works with AI freelook.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4539 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-25 18:10:19 +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
1aa0883686 -Missed some files.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4534 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-25 05:46:49 +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
5f320a1b62 Added some debugging code to help find out how the gender is being changed.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4526 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-23 21:51:38 +00:00
sieve32@gmail.com
672aa26d68 -Brought the miner borg drill force back up to 15 based on feedback
-Gave back the miner borg stun arm to account for the smaller improvement for drills
-Fixed an issue where I accidentally made borg emag modules invisible

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4525 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-23 20:53:13 +00:00
sieve32@gmail.com
61a7751658 -Dropped the miner borg drill force down to 3 as it was supposed to be
-Added a proc for cyborg modules to 'rebuild', which makes it possible to remove items from the modules without clogging up the module menu
-Made the emag for minerborgs work better as a result
-Gave borgs their special radios back
-Fixed an apparently ancient bug where everything inside a borg will appear on the screen (MMI, cell, radio, etc...). It wasn't complex at all and I can't believe no one had fixed it yet.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4524 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-23 19:57:04 +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
sieve32@gmail.com
71d3c7e353 -Fixed AIs being broken forever after being restored by the AI fixer, this was due to them lying down when they die, and being unable to get back up when they spring to life (Essentially, it was really dumb). Also made the console handle moving the AI from the dead_mob_list to the living_mob_list
-Removed the AI_status.dm, as it contained a single AI proc, which is now in ai.dm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4519 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-22 21:14:16 +00:00
sieve32@gmail.com
f3b3cb368a -Put in a control_disabled check for AIs operating cameras and calling/recalling the shuttle. Meaning they can't do any of those if they are carded without wireless.
-Moved the AI shuttle calling proc from communications.dm to ai.dm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4516 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-22 18:31:58 +00:00
johnsonmt88@gmail.com
0338759071 Hardhats and Rig helmets now properly update their mob icons when toggled with the action buttons (buttons on the top-left of the screen.)
Items equipped with the 'equip' button now update the player's hands. Unfortunately since the procs it uses forces an update_icons() call, using the equip button will now call it twice.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4512 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-22 14:28:20 +00:00
johnsonmt88@gmail.com
95c6127bea Moved all of the defines/mob into their appropriate modules/mob/ files
Next up, objects! One day we'll be able to click on something in the object tree, and actually end up where all the object code is.

I standardized robot/life.dm while I was at it.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4510 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-22 03:11:46 +00:00
johnsonmt88@gmail.com
38d09c8c19 Revolution game mode fixes:
Station-heads who are monkied now count as 'dead' for round completion.
- This previously applied to revheads but not station heads.

Changed get_all/living_heads to pull from the mob list instead of the player list.
- It was causing players to get skipped by the check-antag verb admins have if they were disconnected.

Runtime fix by Erro for:
runtime error: Cannot execute null.show inv().
proc name: done (/obj/effect/equip_e/human/done)
  source file: inventory.dm,562
  usr: Nodrak Davis (/mob/living/carbon/human)
  src: the human (/obj/effect/equip_e/human)
  call stack:
the human (/obj/effect/equip_e/human): done()
the human (/obj/effect/equip_e/human): process()

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4509 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-22 01:40:48 +00:00
baloh.matevz
9b06db8ad8 - Resolves Issue 838
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4507 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-21 23:18:09 +00:00
baloh.matevz
01031e0a0b - Fixed Issue 829
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4505 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-21 22:35:35 +00:00
baloh.matevz
067b474cca - Um... sometimes I just need two commits to fix something tiny. Proper fix for what I wanted to fix in r4500.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4501 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-20 03:36:54 +00:00
baloh.matevz
80682c88c5 - Hopefully fixed the annoying 'your savefile is incompatible and has been deleted' message bug.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4500 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-20 03:32:40 +00:00
baloh.matevz
b6061bdeeb - Added an indicator for cold damage that is displayed to humans when they're taking cold damage. Monkeys don't react to cold anyway.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4499 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-20 00:42:44 +00:00
baloh.matevz
dd6288f26a - Removed the changes done to space suits in r4497. They were aimed at fixing Issue 827, which had the symptoms of randomly getting hurt in space while wearing a space suit. Sieve assumed it was due to not having high temperature protection, but it was the opposite.
- The problem was actually down to an ancient bug, which wrongly calculates the temperature of tiles with very little gas on them - tiles exposed to space. Space suits protect down to a temperature of 2.0K, space is 2.7K, which I assumed to be the lowest temperature anywhere. Unfortunately I forgot about this bug at the time, which can cause the gas temperature on tiles with little air to even hit negative kelvins (Nobel prize, plox). This happens relatively often, each floor tile that meets the criteria experiences this about once every 50 ticks and if you're standing on it when it happens, your cold protection will be 0%, because the temperature on the tile will be lower than 2.0K. Everything will be fine in the next tick cold-protection-wise, but your body temperature is already lowered to under the damage threshold by then.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4498 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-19 22:58:17 +00:00
baloh.matevz
44fb70ffd4 - Changed all "male" and "female" assignments to use the constants MALE and FEMALE.
- Added a message_admins() message which is sent if a character setup mismatch is detected to help diagnose the problem.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4496 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-19 17:56:51 +00:00
baloh.matevz
54f3bf84bc - Reagent code reorganization commit 2 (removing old file structure)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4492 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 21:51:10 +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
sieve32@gmail.com
94ea00b5a7 Clearing out a bad leftover that prevented MMI's from understanding AIs/borgs
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4487 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 03:11:45 +00:00
sieve32@gmail.com
03e199e30a -Makes the lobby music a config option, as per Erro's feature request.
Closes Issue 816

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4486 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 02:02:45 +00:00
baloh.matevz
ca02f37a6e - Fixed issue 814. Added a obj/screen/inventory object type, which is for screen objects that can hold other ones. This will stop clicks on other UI slots from attempting to equip whatever is in your active hand to them.
- Fixed an issue where the monkey's slot_l_hand and slot_r_hand slot identifiers were being assigned to the two pieces of the 'swap hand' button instead of the actual hand screen items. Not tomention them being the wrong way around...

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4482 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 00:26:47 +00:00
baloh.matevz
96645c8726 - Proper fix for issue 803
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4481 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 00:00:34 +00:00
baloh.matevz
bdae39686f - Fixes issue 808. You won't get flashed by anything if you're blinded.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4479 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 16:30:42 +00:00
baloh.matevz
3be7d6d8ef - Fixes issue 812.
- Adds logging for throwing. Pulling and grabbing does not need to be logged in detail, since kill-intent grabbing is logged already.
- Something broke throwing, which made it runtime. This also fixes that.
- Fixes the problem of applying wires to a stack of glass, which only contains one piece of glass using wires, deleting the glass piece and not spawning a light tile. A call of the glass' use(1) was misplaced, which had the chance of deleting the object, thus stopping the proc, before it spawned the light tile.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4478 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 16:19:04 +00:00
baloh.matevz
4ac7df8917 - fixed issue 809. Nodamage checks are now done on all the lowest level procs as well as the higher level brute and burn damage procs for humans.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4475 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 14:08:55 +00:00
rockdtben@gmail.com
c8feb9f493 Fixes issue 529
Now if someone busts out of a mob it will gib and the contents of its stomach will fly out as intended

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4473 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 12:39:20 +00:00
baloh.matevz
4ce5a0d405 - Fixes issue 653.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4471 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 09:44:48 +00:00
baloh.matevz
c2734300b2 - fixed issue 803. Admins will be able to hear deadchat no matter what... unless they shut it off with the toggle-hear-deadchat verb, that is.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4467 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 07:23:17 +00:00
baloh.matevz
adbc74a942 - Fixes issue 748. Pulling restrained monkeys now behaves as it's supposed to.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4462 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 05:37:11 +00:00
sieve32@gmail.com
626cb74704 -Metroids will now feed when 'content' (But not as quickly), meaning they will evolve and reproduce properly
Fixes Issue 765
-It is now possible to weld secure lockers shut
-Lockers now have a welded overlay (Expect in some cases, such as cabinets)
Thanks to Pete for the sprite

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4459 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 04:22:53 +00:00
baloh.matevz
f3996dfc5e - Fixed issue 657. Attacking someone at a distance (using TK) will no longer make you get smeared in their blood.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4458 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 04:18:08 +00:00
baloh.matevz
9062d7fb23 - Added a real_name variable to DNA, which gets assigned when mobs are created and when preferences are copied as well as when changelings absorb mobs. This is so I could drop the dictionary-style list from changelings, which went list(real_name = \ref[dna]). What this meant was that if you absorbed multiple people whose real_name was "Unknown", you'd only have one dna to show for it. Now all of them will show and will be available to transform into.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4457 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-17 03:55:09 +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