Commit Graph

111 Commits

Author SHA1 Message Date
Aranclanos
ad3d3c92ac Removes the deliverychute entirely from the machinery ticker and updates his flush() proc with his parent that I fixed long time ago. Because someone though that copypasting was the best idea to make new machines.
Anyways I'm not planning to keep touching this for a while, if you want to remove the copypasta, please, do it.
If there's a wall on top of the exit of a disposal pipe, the disposal pipe will now shoot the stuff to the wall anyways because being stuck in the holder inside of pipe sucks.
2014-01-10 04:59:24 -03:00
Giacom
70a4d8e9af Merge pull request #2192 from Cheridan/iDidThisByHand
Obsoletes flags = FPRINT | TABLEPASS*
2014-01-02 10:31:46 -08:00
Cheridan
bb9c09df46 Obsoletes flags = FPRINT | TABLEPASS*
*TABLEPASS was already totally obsolete.
FPRINT was used, but it was on virtually everything anyway.

Removes those flags from every instance where they were used. Also assigned and removed other flags where it made sense.

If it is desired, I can revive the flag as NOFPRINT, which would retain the original functionality, though inverted. That way it would be be used only  where it was intentional (holodeck items could use this for example).
2013-12-30 15:03:17 -06:00
Miauw
a47342d68b Fix for the disposals fix. 2013-12-22 21:24:16 +01:00
Miauw
773372fc1c Fixed #1101 Disposals will no longer create invisible floor tiles. 2013-12-22 17:16:27 +01:00
Razharas
1a2553dc33 This wasnt supposed to be deleted 2013-12-19 00:46:10 +04:00
Razharas
691ea75b45 Fixes trunks being unwelded while under machinery 2013-12-19 00:38:14 +04:00
Razharas
358a85eb3d Completed the transition to a new proc
All the logging i have found in the code was changed to use the
proc(maybe i missed something)
Killed all runtimes found so far
Proc now handles all the checks, no need to add checks in the body of
object
2013-12-17 22:56:04 +04:00
Giacomand
7d52fe8875 * Modified the disposals room to have a crusher and a stacking machine. It will allow the crew to recycle trash items.
* Made conveyor belts invertable, to allow you to use corner pieces that are only intended for going backwards or forwards.
 * Added a new variable for disposal outlets which let you change their throw range. Default is 2 now.
 * The crusher can now be used by a screwdriver to de-emag it.
2013-11-24 17:54:58 +00:00
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