Commit Graph

102 Commits

Author SHA1 Message Date
Giacom
583cdb1781 Merge pull request #1763 from fleure/medmech
Fixed some container escape issues
2013-11-17 13:10:53 -08:00
Fleure
771daba295 Correct usage of del() for packages 2013-11-17 16:50:42 +00:00
Fleure
ecc10f6aea Refactored big package attack code 2013-11-16 20:56:23 +00:00
Fleure
e1009cf496 Fixed some container escape issues 2013-11-11 22:59:29 +00:00
Aranclanos
2295080ea3 Merge branch 'medmech' of https://github.com/fleure/-tg-station into medmech
Conflicts:
	code/game/objects/structures/crates_lockers/closets.dm
2013-11-09 15:14:48 -03:00
Fleure
aaf68d2a12 Included additional structures to escape from 2013-11-05 00:26:30 +00:00
AndroidSFV
2fe27c0167 Fixes #636. A wrapped package never ever had a w_class other than 3. 2013-10-27 19:03:51 -05:00
Giacomand
1e49af6cae * Forgot comment. 2013-10-05 22:06:27 +01:00
Giacomand
277fae40cb * Fixed disposal units not starting with full pressure.
* Fixed some disposal units starting unconnected to the trunk, by checking for trunk during initialization.
2013-10-05 22:00:59 +01:00
supersayu
a993ce62db Bugfixen and minor changes. Fixes #136.
Adjusts the click code to not use client/Click().  The code is largely unchanged, except that it allows the compiler default behaviour of calling atom/Click(), and then forwards the call to mob/ClickOn().  I had some reports that melee combat mixed with movement was behaving oddly, and I believe it may be due to the use of client/Click; the byond documentation says that redefining client/Click() causes additional overhead, and it isn't strictly necessary.

Alters the way double clicks are handled, in an attempt to better handle clickspam, as often occurs during pitched combat.  This may also be responsible for the above, but I don't know.

Inserts proximity (aka flag) checks in all afterattack() procs.  The old assumption was that unless an item used the USEDELAY flag, afterattack() was only called when adjacent, but this is no longer true.  This led to beakers, soap, crayons, etc, all being usable at all ranges.

Removes the NODELAY flag, which was unused.  Removes all existing uses of the USEDELAY flag so that it can be readded to things that need extra delay.

Removes the hand_* procs, previously used by restrained actions.  Instead, the mob helper mob/RestrainedClickOn() has abosrbed basically all the functionality they were used for, which is really only monkeys with jungle fever.

Adds a special case of the Adjacency() proc for doors.  This fixes #136, airlocks being unreachable due to border fire doors.  However, this only takes us back to the unpleasant position where you have to open-hand the door, switch to a crowbar, and pry open the firedoor; it still needs a better fix.
2013-09-17 18:19:14 -04:00
supersayu
475042a212 Click code rework
Fixes #646, #579, #863

Completely redoes the click code.  Moves all click related code into code/_onclick for reference.  Also moves hud datum code and all the screen object code I could find into code/_onclick/hud, as it is related.  Item attack(), attackby(), afterattack(), and attack_self() have been moved into item_attack.dm for consistency.

Completely removes dummy objects and adds atom.Adjacent(user).  This proc checks for border items and anything marked with throwpass for determining whether or not you can reach a given square.  A turf helper, ClickCross(), was added to facilitate this.

Removes the monolithic Atom.Click() proc in favor of an overridable click handler attached to mobs.  Click code no longer uses the : path operator as a consequence, and mob/lastDblClick has been moved to Client/next_click.  A few end arounds were necessary (screen objects, buildmode, and spells), but this has been handled by repurposing Atom.Click(); if you have special click code, insert it in the object's Click() function and return 1 to prevent normal processing.

This update adds support for attack_ghost(); the previous "new" click handler had support for it but was never finished.  I have taken the liberty of letting ghosts click portals, the gateway, and the teleporter to jump to the intended target square, and kept the previous default action of examine()ing every damn thing you click.  It is to be suggested that you could do more with this proc when ghost interactions are enabled.

This update also adds support for double clicking.  It is currently only used for ghosts and AIs, because the original (first) click still registers normally.  For both of these, double clicking a square will jump you to it, and double clicking a mob will follow it.  In the case of ghosts, double clicking bots and the singularity will also set you following it; if you double click your own corpse, you will re-enter it; this also works if your body is in a closet, sleeper, DNA scanner, etc.  Default mobs ignore double clicks as normal.

-- NOTE --

There are two flags which were previously unused or misused by click code: USEDELAY and NODELAY.  Ostensibly, USEDELAY would double the normal 1sec delay, and NODELAY would remove it.

Using either of these flags as intended would significantly affect the timing of the game.  In particular, USEDELAY is currently applied to guns and about everything else that acts at range.  I am adding USEDELAY as a half-second increase for now, but I have not put a significant amount of thought into it.  I considered lowering the normal 1sec delay to .8sec to balance it, but the consequences of that on combat involve more calculations than I care to make.

NODELAY seems to never have been used, and I did not implement it, but I could do so trivially.
2013-09-17 18:15:54 -04:00
Aranclanos
ff6ba43737 Makes disposal start the round with air inside, depending the air of their loc. This will slightly reduce atmos roundstart lag. Around 150~ compare calls per tick for 5 minutes removed. 2013-08-23 08:06:14 -03:00
Cael Aislinn
01e87ce2a9 Merge pull request #1186 from VistaPOWA/disposals
Added delay to Disposals sounds
2013-08-19 03:22:04 -07:00
Cael Aislinn
b25efc1e3a Merge pull request #1159 from Giacomand/malftransforming
Added the transforming machine to the Malf AI's Modules.
2013-08-19 02:46:55 -07:00
VistaPOWA
cb6fb7703d removed extra newline 2013-08-19 02:40:59 +02:00
VistaPOWA
c325378da9 Added delay to Disposals sound
Fixed mining (and disposals) being a noise hazard. Their sound shouldn't
'pile' up now like before.
2013-08-19 02:38:44 +02:00
Giacomand
784ac98de4 * Added the transforming machine to the Malf Modules.
* You have to be within camera vision to place the machine.
 * The machine has been given a minute cooldown per each use, and will look unpowered when cooling down.
 * Added a delete option for /Robotize() and used it in the machine, to stop items piling up and eventually crashing clients.
 * The machine will make a sound when placed.
 * Added auto conveyor belts which are always on unless unpowered or broken.
 * Cyborgs built from the machine will only get 5k power cells.
 * Added a changelog entry for this change.
2013-08-13 23:23:37 +01:00
Aranclanos
0ce01d1583 Adding Linda. 2013-08-10 06:15:14 -03:00
Aranclanos
9fbcec4652 Some standarization for disposals.
Added a spawn(0) before the flush() call on their process() proc because flush() includes some sleeps. You can actually restart the MC on a specific way.
The new air for disposals will be created AFTER the air is transfered to the holder, avoiding runtimes and making this feature actually work. Removed a hacky check on process() to avoid this runtime.
Someone slap donkie for me.
2013-07-25 17:35:52 -03:00
Giacomand
29424a34bf Merge pull request #905 from Aranclanos/MachineryTopic
Machinery Topic(): mob and self checks fix.
2013-07-24 01:23:30 -07:00
Cheridan
f2794d5d2c Merge pull request #961 from Giacomand/blob_fix2
Blob Tweaks
2013-07-14 11:07:11 -07:00
Giacomand
1bd58ab8ad * Disposal units will now drop their contents onto the floor when deleted, such as from a blob attack. Fixes #963 2013-07-14 15:21:22 +01:00
Cael Aislinn
93c83139e8 Merge pull request #941 from Malkevin/nopackageautodivert
Disabled disposals auto-routing for packages.
2013-07-13 04:09:08 -07:00
Cael Aislinn
ab10293f49 Merge pull request #833 from Aranclanos/DisposalsMob
Disposal units mob restrictions for stuffing other mobs.
2013-07-13 03:27:15 -07:00
Malkevin
6ca77ece2f Merge branch 'master' of https://github.com/tgstation/-tg-station into nopackageautodivert 2013-07-07 19:51:42 +01:00
Malkevin
84724a5e2b Disabled disposals auto-routing for packages.
For some reason package wrapped objects were set to auto-reroute to disposals, I can't think a good reason for this to happen but i can think of a bad one: people's mail ends up getting lost to a murder room due to someone else's neglect/incompetence - probably one of the main reasons the mail room doesn't get used very often.

So what will happen now is that packages that are put on the conveyor without a destination will loop back around and come back out the mail chute until a cargo tech works out how to use a destination tagger
2013-07-07 19:30:51 +01:00
Aranclanos
90b894fe66 Made all the machinery use ..() on the Topic(), instead of having a copy pasta everywhere to see if the human is dead or others. This will stop dead AIs interacting with machineries or others. 2013-07-03 13:16:53 -03:00
Giacomand
05b51097c9 Merge pull request #852 from Aranclanos/CargoMails
Wrapping objects not being sorted properly fix.
2013-06-28 04:42:06 -07:00
Aranclanos
dfae7a2ff2 Fixes the "wrapsortjunction", the disposal pipe that sorts wrapped objects. It had a duplicate New() proc.
Gitblame best tool, the award goes to donkie.
2013-06-24 02:46:42 -03:00
Aranclanos
2f3e1eb9e6 Removed a bunch of copy pasted code regarding moving pulled atmos by clicking on turfs or conveyors. Now this is handled by a mob proc, Move_Pulled()
Now all turfs work with this feature. (shuttle shitty turfs didn't because they were not part of /floor)
Added a check on Move_Pulled() to see if the pulled atom is on a turf. This will stop the sleeper exploit and others.
2013-06-21 17:55:32 -03:00
Aranclanos
6887e94852 Only monkeys and humans can shove mobs into disposal units now. 2013-06-21 03:40:34 -03:00
carnie
b84d12d949 *Small tidy-up of various helper procs*
-Turns out there was already a Gaussian PRNG proc already, used by mechs and turrets. I've replaced it with my one as mine has almost half the cost. (currently broken! still waiting for fixes to be pulled!)
-replaced between(min, val, max) with Clamp(val, min, max)
-get_turf(thing) now uses var/list/locs to locate its turf, rather than iterating up through loc of its loc of its loc...etc
-sign(num) moved to maths.dm
-InRange(val, min, max) replaced with IsInRange(val, min, max) (they were identical)
-Removed ismultitool() iswrench() iscoil() iswire() iswelder() iscrowbar() etc
-removed modulus(num) as abs() performs the same task! *roll-eyes*
-removed get_mob_with_client_list() as it is no longer needed (we have var/list/player_list now)
-removed get_turf_or_move() as it simply called get_turf
-removed get_turf_loc() as it was identical to get_turf()

*Additions:*
-The "Declare Ready" link in the lobby will automatically become "Join Game" if the round starts before you declare ready, so you don't have to click it twice
2013-05-27 12:21:43 +01:00
Pete Goodfellow
3496310ec3 Removes /obj/item/weapon/gift from the code, as it was completely unused.
Also removes the smallDelivery loop in /mob/proc/get_contents(). It's amazing that proc worked at all, it really does do what it's described as doing. I'm leaving it for now, as the game seems to have gotten on well enough so far, and it'll probably just increase processing for no gain if I fix it.
2013-03-28 13:02:46 +00:00
petethegoat@gmail.com
3c02e14efd Fixes issue 1179. If gravity is off, can't escape trash chutes
Fixes issue 1219. Cloning Scanner Popping Out Prematurely
Fixes issue 1182. Using wrapping paper on a bodybag
Fixes issue 1238. Reading while blind (fixes paper, photographs, and books)
Fixes issue 1253. Braindead message when converting non braindead people (rev)
Fixes issue 1188. Head revs converting unconscious people

Added is_blind(A) as a helper proc for blindness. It returns 1 if A is a fully blinded carbon mob.

Updated the loot spawner to use a list instead of a text string.

Updated gun reloading to use text styles.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5619 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-27 13:20:59 +00:00
petethegoat@gmail.com
15b88d2192 Fixes issue 1160. Pill names in the attack log are the same as the person who administers the pill
Fixes issue 1172. Janicarts disappear in foam
Foam is now TURF_LAYER + 0.1

Fixes issue 1248. Wirecuterrs disappearing (with gift wrap)
Gift wrap is now applied on top of an already wrapped package, to make it pretty.

Standardised sortingmachinery.dm.

Commented out some areas from the the_station_areas list which are no longer present on the station.

Added the energetic flux (revamped blackhole event) and mass hallucination event. Both are pretty mild.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5611 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-25 20:44:42 +00:00
petethegoat@gmail.com
61098e961b Committing a fix by SuperSayu for emptying plantbags into the smartfridge, and trashbags into disposals.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5498 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-08 22:22:47 +00:00
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
aranclanos@hotmail.com
bd6657ebca Runtime fix for delivery chutes checking the vars of a weapon/dummy before cancelling the proc in Bumped()
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5483 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-07 10:11:48 +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
aranclanos@hotmail.com
d4d4e8a1dd Finishing the runtime fixes started on r5420, the exact same thing, but this time on disposal bins.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5429 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-31 02:58:02 +00:00
aranclanos@hotmail.com
d99e8264e2 Fixes a fuckload of runtimes related to checking the loc var of an atom who was disposaled but it's not moving yet.
With this change, the black screen of the delivery chute is gone. Ya know, when you entered in them you had some 3 seconds of a stupid black screen.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5420 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-30 00:01:20 +00:00
johnsonmt88@gmail.com
08e2733c0c Commit for lpeters:
Prevents you from entering the disposal chute from any direction except that in which it is facing. Fixes issue 918.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5403 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-26 19:32:22 +00:00
giacomand@gmail.com
76151212c7 Committing Malkevin's fix for syndie cakes not having doctor delight in them.
I added a warning log message when a non-existing reagent is trying to be added, to avoid this in the future.

Committing SuperSayu's fix for conveyor belts moving items that were just taken off the belt.



git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5269 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-06 12:21:46 +00:00
petethegoat@gmail.com
0c9195fbe4 Fixes issue 1097. Shaft Miners not getting pda
Fixes issue 1118. duplicating trashbags
Fixes issue 1117. evidence bag issues

Syndie shuttle can now travel to mining and the tcomms sat.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5152 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-21 17:17:00 +00:00
giacomand@gmail.com
f4a559f183 -Added a check for the target's location when drag and dropping someone into a disposal unit.
-Misc stuff with diseases.
-Forgot to add the .dme so the extra symptoms will be ticked now.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5014 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-06 15:02: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
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
baloh.matevz
148b6e5c19 - Moved TAGGERLOCATIONS to setup.dm for easier access and lookup.
- Added an areatest verb to debug verbs. This tests areas for whether they have APCs, air alarms, etc.
- Added an 'autoname' subtype of obj/machinery/camera. Cameras of this type auto-assign their c_tag, based on which area they're in, followed by a number. For example "Male Dorm #1", "Male Dorm #2", etc.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4806 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-04 21:01:42 +00:00
daniel.cf.hultgren@gmail.com
7b6e58969f I'm back with the greatest feature additions ever, as before!
* You can now dispense sort junctions from the disposal dispenser.
* Sort junctions can now properly be unwelded.
* You can now change a sort junctions filter using a package tagger (examining a sort junction shows its current filter).
This also means that you can now construct a disposal and package system entirely from scratch!

* Updated the package tagger with a slightly updated interface, and more user feedback.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4742 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-23 18:53:31 +00:00