Commit Graph

78 Commits

Author SHA1 Message Date
phil235 44eb9607e0 Some adjustments to wrapping code. I removed my possibility to wrap non-box storage item (that was at the expense of seeing a warning message that the packagewrap doesn't fit in the storage item every time you wrap one). So we're back to only wrapping boxes.
You can now wrap an item that is in your hand, and wrapping an item puts the created package in you hand.
Also, opening a package puts the item in your hand instead of being dropped on the ground.
2016-03-04 17:24:36 +01:00
phil235 15d8e0a96f I refactored how a mob resisting out of a closet that is itself inside something is done.
Fixes not being able to resist out of an unlocked unwelded locker. Now both moving and the resist button  work (except for the cardboard box).
You can no longer spam breakingout message ouf of a closet by moving while inside.
Wrapping and unwrapping a locker no longer unwelds it magically.
I refactored closet/crate/item package wrapping.
You can packagewrap belts and other storage items in which the package wrap item doesn't fit.(it does currently have the unintended side effect of giving you the "doesn't fit in X" message when wrapping there storage items though).
2016-03-03 20:20:34 +01:00
KorPhaeron d8a37204e7 Makes burn_state use defines 2015-12-13 05:36:55 -06:00
bear1ake f697ae90f5 removes a bunch of .0 2015-09-10 20:57:30 +09:00
duncathan 51c09f16bf makes all Destroy()'s return properly 2015-08-31 00:21:01 -06:00
phil235 c853ec49a9 Repathed disposal unit from machinery/disposal to machinery/disposal/bin. Moved some stuff around, split disposal.dm into disposal-structures.dm and disposal-unit.dm , the latter containing both disposal bin and delivery chute. 2015-07-26 16:20:21 +02:00
Firecage 4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
Ikarrus 8759f56f6f Squashed Commits 2015-06-27 00:09:16 -06:00
Iamgoofball a8ec1c76df Merge branch 'master' of https://github.com/tgstation/-tg-station into graphics
Conflicts:
	code/ATMOSPHERICS/atmospherics.dm
	code/game/machinery/computer/computer.dm
	code/game/objects/items/weapons/explosives.dm
	code/game/objects/structures/crates_lockers/closets/fireaxe.dm
	code/game/objects/structures/musician.dm
	code/game/objects/structures/tables_racks.dm
	code/game/objects/structures/window.dm
2015-06-23 12:54:26 -07:00
Iamgoofball c2256d41fc BAR NOW SHOWS UP ON THE OBJECT YOU'RE INTERACTING WITH 2015-06-13 13:58:08 -07:00
Aranclanos 2f36bf4694 Merges the two flush() from the disposal bins and disposals deliveryChutes.
Stops the disposal bin from holding back the machinery controller when flushing.
The mobs clients eye will be instantly moved to the disposal object when the mob is moved into them.
Fixes #1724
2015-06-05 04:58:34 -03:00
Jordie0608 7369992d3d further reorganization, elimination of old defines folder 2015-05-09 23:16:57 +10:00
kingofkosmos de280c72b5 Removed some more spans from visible messages. 2015-04-24 21:06:59 +03:00
kingofkosmos 1d14471d00 Ellipses to waiting messages. Warning-spanclasses to failing messages with an exclamation mark. 2015-04-24 20:50:50 +03:00
pudl 187a6fdd20 resprites forensic scanner, cargo tagger, and rped 2015-03-22 11:54:26 -05:00
Cheridan 096324b93b Merge pull request #7897 from paprka/riiiip
Packages play a ripping noise when you open them
2015-02-24 21:47:52 -06:00
paprka 3572e2c2c5 packages play a ripping noise when you open them 2015-02-22 01:11:03 -08:00
Remie Richards 5fc7af7fbf attackby() now has an argument containing the parameters of the click that called it. Items placed on tables now center their icon where the user clicked. this is NOT true for racks, since racks look organised in their sprite.
Items reset their pixel_x and pixel_y values on pickup.
2015-02-19 13:02:43 +00:00
Menshin b8230e024b * Cleaned the disposals code a bit (making it uses the defines !)
* Disposals constructs are now stored inside disposals instead of having them deleted and a copy created
* Bins, chutes and outlets will now properly clean any connected trunk on qdel()
* You can no longer change the RPD setting by keeping its window opened
* You can no longer use the RPD as a non-dextrous mob
* Reinforced floors will now be broken by ejected items/mobs, instead of stucking them in the void indefinitely
2015-01-19 01:53:19 +01:00
Menshin 8d1ebf3ad1 * Prevent stacking of dense disposal constructs (bin, outlet, chute)
* Some general code cleaning (less snowflaking)
2015-01-15 20:05:15 +01:00
Aranclanos 0e2176c7a0 Added a new proc for movable atoms, disposalEnterTry(). It will be used by disposal chutes to check if the object who bumped them can enter or not.
As for the moment, mechas and projectiles will fail.
2014-11-04 17:23:02 -03:00
phil235 8b6a8f179d little fix 2014-10-23 19:51:12 +02:00
phil235 b971a09bcd Wrapping something with package wrapper now gives a message.
Adding a check so clicking an already giftwrapped item doesn't show the wrapping message.
Adding nobludgeon flag to wrapping paper to remove attack messages
Removing w_class line from package wrapper because already in its parent.
Remove the unnecessary message (box is full/packagewrapper doesn't fit in the box) when wrapping box.
Fixes not being able to wrap box with just one single package wrapper left.
Fixing attack_log (fix issue4180) and only adds log when the wrapping succeeds.
Now using wrapping paper actually uses its amount.
when all used, they will drop cardboard tube like intended.
Fixes issue4207
Fixes not being able to re-add wrapping paper and package wrapper to themselves like proper stacks.
New sprite for both paperwrap and cardboard tube. (from Nienhaus)
2014-10-23 19:30:09 +02:00
paprka d244fd6bbd initial commit 2014-10-15 13:29:19 -07:00
MrPerson 651c3e6db5 Merge to master - sole conflicting file was ninja.dm FUCK NINJAS 2014-10-04 01:45:39 -07:00
Lo6a4evskiy 82f869c9a6 Updated to resolve conflicts 2014-09-06 13:34:43 +04:00
MrPerson a23dbe2357 Merge branch 'master' of https://github.com/tgstation/-tg-station into examinate_the_doctor
Conflicts:
	code/game/objects/items/devices/radio/radio.dm
	code/game/objects/items/toys.dm
	code/game/objects/items/weapons/tanks/tank_types.dm
	code/game/objects/items/weapons/tanks/tanks.dm
	code/modules/events/ninja.dm
	code/modules/power/cell.dm
	code/modules/power/port_gen.dm
	code/modules/reagents/reagent_dispenser.dm
2014-08-29 04:21:15 -07:00
Firecage 6c7af5eb32 SPANCLASSES!!!!! 2014-08-26 09:52:13 +02:00
Firecage 0948391502 Span classes for files in the following Modules folders: Power, Projectiles, Reagents, Recycling, Research 2014-08-23 02:02:46 +02:00
MrPerson 13b03a6d43 Hopefully final pass of object -> mob examine switch 2014-08-20 07:07:30 -07:00
MrPerson d0c97aae72 Merge branch 'master' of https://github.com/tgstation/-tg-station into examinate_the_doctor
Conflicts:
	code/ATMOSPHERICS/components/unary/vent_pump.dm
	code/game/gamemodes/cult/ritual.dm
	code/game/gamemodes/nuclear/pinpointer.dm
	code/game/machinery/spaceheater.dm
	code/game/machinery/status_display.dm
	code/game/objects/effects/decals/crayon.dm
	code/game/objects/items/stacks/stack.dm
	code/game/objects/items/weapons/airlock_painter.dm
	code/game/objects/items/weapons/cigs_lighters.dm
	code/game/objects/items/weapons/storage/secure.dm
	code/game/objects/items/weapons/tanks/tank_types.dm
	code/modules/assembly/assembly.dm
	code/modules/assembly/holder.dm
	code/modules/assembly/mousetrap.dm
	code/modules/mob/living/carbon/alien/special/facehugger.dm
	code/modules/mob/living/carbon/slime/examine.dm
	code/modules/power/cable.dm
	code/modules/reagents/grenade_launcher.dm
	code/modules/reagents/reagent_containers/food/drinks.dm
	code/modules/reagents/reagent_containers/food/snacks.dm
	code/modules/reagents/reagent_containers/glass.dm
	code/modules/recycling/sortingmachinery.dm

Thanks Firecage, this is all your fault
2014-08-20 05:54:20 -07:00
Firecage 6110bd4f04 Absolute paths for recycling folder files 2014-08-17 15:51:15 +02:00
MrPerson 9d9a657acf Change examine() from an atom verb to a mob verb
Just in time for the feature freeze, a big change that will introduce bugs! Yay!
Mob verb is called verb/examinate(target), which just calls target.examine(user) and face_atom(target)
For explanation why, see http://www.byond.com/forum/?post=1326139&page=2#comment8198716
Long story short, mob verbs are much faster than object verbs. The goal is to make right-click menus populate faster.

Also changes a bunch of examine() procs to always, ALWAYS call the parent. Except mobs, but you have 1 guess why I'm not touching them. Mostly this affects obj/item/examine().
And also remove a whole shitload of pointless set src in view(2) kind of crap. Also span classes.
2014-05-01 09:56:39 -07:00
MrPerson 9eee3e5067 First pass at a qdel() garbage collection system for tgstation
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.

New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.

ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
2014-02-23 14:55:12 -08:00
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
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
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
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
AndroidSFV 2fe27c0167 Fixes #636. A wrapped package never ever had a w_class other than 3. 2013-10-27 19:03:51 -05: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
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
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
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