Commit Graph

3252 Commits

Author SHA1 Message Date
Pete Goodfellow bbe26823b1 Merge branch 'femoutfits' of github.com:Incoming5643/-tg-station into unifroms
Conflicts:
	code/modules/mob/living/carbon/human/update_icons.dm
2013-09-21 14:33:08 +01:00
Incoming c4579407a9 Only standing icons will have female outfits now, both to avoid one time nudity blinking on laying and because clothes don't pull the same way laying down (yeah lets go with that) 2013-09-18 18:11:37 -04:00
Incoming 952b946eff Aesthetic changes to the code to help unmuddy update_icons.dm a bit:
female_uniform_icons is now defined in global_lists.dm
A generate_uniform proc has been made in clothing.dm to handle icon generation
2013-09-18 15:12:24 -04:00
Aranclanos 1f6852232b Merged the blood trails from VistaPOWA to the latest tg code 2013-09-17 23:54:53 -03:00
Pete Goodfellow 5b3f08de34 Merge pull request #1370 from caelaislinn/speech_bubble_delay
Resolves #1368
2013-09-17 17:12:06 -07:00
Cheridan b8438e65bd Merge pull request #1206 from SuperSayu/newclick
Click code rework
2013-09-17 16:23:27 -07:00
supersayu a3ba991d2f Additional comments, move some code
Should improve documentation of new and old click code
2013-09-17 19:03:22 -04:00
Cheridan 12b1de9875 Merge pull request #1357 from AndroidSFV/AIphotography
AI Photography
2013-09-17 15:30:10 -07: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 4c44e7cd89 Glove update
Integrates gloves into click code.  Gloves now have a proc/Touch(atom, proximity) which is called before humans do an attack_hand().  It can also occur when you click on something at range, so be sure to check the proximity flag.

Adds code to make ninja gloves work properly with this and pulls it out of the various attack_hand() procs.

Other suggested uses: secret society rings, magic/cult gloves, weaponized gloves (chemical, electric, needles, etc), powered exosuit hands (for picking up crates), I dunno, there are options
2013-09-17 18:19:13 -04:00
supersayu 65ba47d872 Fixes #1164 2013-09-17 18:19:12 -04:00
supersayu 1d6c3dfd9f Rebase past 6e83288a78 to fix conflicts 2013-09-17 18:19:11 -04:00
supersayu c172e52dce Adds telekinesis to click code. Fixes issue #1202, #1129, #247.
This adds two atom procs, attack_tk() and attack_self_tk().  attack_tk is used as per attack_hand; attack_self_tk exists on all atoms (not just items) but is similar to the item proc, but without the assumption that it is in the user's hand.

Removes the functionality where entering throw mode would create a tk grab, as it is redundant.

As a default, attack_tk does the following:
* Creates a telekinetic throw for items and un-anchored objects
* Does an attack_hand (paw, animal, etc) for anchored objects
* Does nothing to mobs

As a default, attack_self_tk does nothing.  An attack_self_tk was added to closets to open and close them since that's a common thing.

The following items have added attack_tk procs:
* Fire axe cabinet, extinguisher cabinet, and bedsheet bin will drop into their square instead of putting it in your hand
* Doors only open telekinetically if they require no access
* Chairs will rotate if nobody is buckled to them
* Filing cabinets will remove a paper at random.
* Tables and racks return to prevent telehulk smash

This is INCOMPLETE.  Adding proper TK interaction to everything is something best done in pieces.

In particular, interacting with mobs and items both open up the floodgates for bugs, so we/I need to decide how we want it to go before we commit, and then fix bugs along the way.  Stumbling forward, fixing bugs, and then changing course halfway would be a bad idea.
2013-09-17 18:19:09 -04:00
supersayu 62f7bc11c2 Timing adjustments
attack_self use should be somewhat more standard; previously the activate object verb (and pagedown) had no delay at all.

Lowers the time taken when interacting with things on your person or in your square.
2013-09-17 18:18:34 -04:00
supersayu 1ab2a61a76 Reverts a change made redundant by #1217
rebasing accidentally made two copies of the function in living.dm, removes the ones I added.
2013-09-17 18:18:33 -04:00
supersayu 50583dfa72 Adds an alt-click to vents for mobs that can ventcrawl.
Reorganizes the ventcrawl code to be a little flatter.

Removes the attack_animal default from slime attacks.  Apparently some code had assumptions about animals and I don't want to get into what that all is yet.
2013-09-17 18:18:32 -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 5a2bb3fbf7 Finalizing blood trails
Makes trail_holder a child of cleanables instead of blood (this is to
allow add_blood turf proc to spawn blood splatter on blood trails, also
other kinds of blood effects), also cleaned up the blood code a bit.

Big props to Aranclanos, Cheridan, Pewtershmitz and all other coders on
#coderbus for making this happen.
2013-09-17 00:57:37 +02:00
Aranclanos 04394bca4e Merge pull request #1377 from Petethegoat/surgeryfix
Fixes #1144.
2013-09-16 13:28:33 -07:00
Pete Goodfellow cf77991370 Fixes #1144. The ability to surgically implant the nuclear disk into a crewmember 2013-09-15 13:14:59 +01:00
Aranclanos 640ebef2a0 Merge pull request #1341 from Incoming5643/sliming
Transformation Diseases Standardization/Black Slime Extract Changes
2013-09-15 02:53:54 -07:00
Cael_Aislinn 58471ba155 resolves #1368
Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
2013-09-15 07:34:24 +10:00
AndroidSFV 8a0802611e Uncommented pixel_x and pixel_y 2013-09-14 15:49:38 -05:00
Cael Aislinn e5aaa51396 Merge pull request #1342 from Faerdan/master
Nano UI Framework
2013-09-14 00:11:22 -07:00
Aranclanos 6b6e104686 Merge pull request #1338 from Malkevin/reflectivejugs
Juggernaut Adjustments
2013-09-13 02:12:46 -07:00
AndroidSFV 5ab48a3ac6 Removes bad WIP I had commented out 2013-09-12 23:31:42 -05:00
AndroidSFV 7cae71206d AI Photography, with extensions 2013-09-12 23:27:30 -05:00
Ergovisavi 439aec7b50 Merge remote-tracking branch 'remotes/upstream/master' into dualsaberreflectmerge
Conflicts:
	code/game/objects/items/weapons/twohanded.dm
2013-09-12 18:02:15 -07:00
Incoming b9586d621c Merge branch 'master' of https://github.com/tgstation/-tg-station into sliming
Conflicts:
	code/datums/diseases/robotic_transformation.dm
	code/datums/diseases/xeno_transformation.dm
	code/modules/reagents/Chemistry-Reagents.dm
2013-09-12 19:59:53 -04:00
Incoming 23c0942e71 Updated Chemistry-Reagents.dm to hopefully resolve the conflict 2013-09-12 19:10:04 -04:00
MrPerson 8f7649346e Merge pull request #1346 from d3athrow/identbans
Fixes identity bans, no longer will it cause everybody to have a random ...
2013-09-12 15:39:08 -07:00
VistaPOWA 1da8b659ff blood trails now stack
--DO NOT MERGE STILL WIP--
Makes blood trails use overlays, the overlays are contained in a holder
object. DNA is now properly added to them.

todo: redo light, xeno light and xeno heavy trails. help of spriters is
welcome.
2013-09-12 19:25:21 +02:00
Aranclanos 95bfb86226 Merge pull request #1280 from Ergovisavi/improvexplosive
Adds createable Improvised Explosives!
2013-09-12 02:30:04 -07:00
Incoming d515bd8d93 forgot to update the disease paths for their respective reagents 2013-09-11 23:01:02 -04:00
Cael_Aislinn 5ea4807d50 Merge branch 'torban' of https://github.com/Carn/-tg-station
Conflicts:
	code/modules/admin/IsBanned.dm

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
2013-09-12 11:49:40 +10:00
Mark Aherne (Faerdan) 83b419decb Added documentation for the ui_interact proc.
Moved the client nanoclose verb into nanoexternal.dm.

Removed debug comments.
2013-09-11 22:18:11 +01:00
Mark Aherne (Faerdan) 0915afda20 Minor fixes. 2013-09-11 21:24:06 +01:00
Mark Aherne (Faerdan) 5acde09bdf Merge branch 'master' of https://github.com/tgstation/-tg-station 2013-09-11 20:45:40 +01:00
d3athrow 33b90b805f Fixes identity bans, no longer will it cause everybody to have a random name and appearance 2013-09-11 00:58:49 -05:00
Incoming eb79461e92 Black slime extract now inflicts a disease that turns the victim into a slime after a short while instead of immediately turning them through the chem itself. This gives people a chance to call out over radio about what happened if they were the victim of a drive-by sliming. Likewise it gives them a faint hope of reversing the process with the cure, frost oil (in the code frost oil is hilariously toxic to slimes). Source of frost oil are botany and (irony) xenobio. The disease is fast spreading, and infected are likely to only have 30 seconds to a minute to find frost oil, but it's highly effective once taken.
On the plus side for xenobiologists this allows for them to place black slime extract in things (medibots, food) without it becoming immediately apparent to victims what's been sabotaged.

This disease cannot be spread in any fashion besides black slime extract. (Because that would be so hideously broken if it was transmittable)

The flavor texts for the stages are an allusion to nethack, where the process of getting slimed is much the same (http://nethack.wikia.com/wiki/Sliming)

One other feature of note: mutant slime people retain the old black slime extract behavior, getting slimed almost immediately after exposure. This means that you can replicate pre-pull black extract by creating a mixture of equal parts black and green extract.
2013-09-10 19:12:18 -04:00
d3athrow 31bfe2f146 Some reason it pushed the old one...? 2013-09-10 16:24:57 -05:00
d3athrow f717f00797 Fixes href exploit in borgs, now improved because the last one was kinda silly 2013-09-10 16:23:33 -05:00
Malkevin dbe84f454b Juggernaut Adjustments
After finally seeing Juggernauts in action (seeing two of them rape a full escape shuttle) I've realised their laser reflection is a bit much.

-Raised the reflection chance to 80% from 65% -BUT-
-Instead of the reflection nullifying the damage entirely the juggernaut takes half the projectile damage
-Adjusted the weighting on the reflection trajectory, the intention was meant to be more "ooo sparkley light show, oops sorry dude over there" than "I shoot you, I die"
2013-09-10 21:02:27 +01:00
Mark Aherne (Faerdan) faf368af88 Documented Nano code. 2013-09-10 20:40:15 +01:00
Mark Aherne (Faerdan) ff5f4867c2 Merge branch 'master' of https://github.com/tgstation/-tg-station 2013-09-10 20:39:00 +01:00
Incoming 607db32e26 Created female uniforms are now cached for everyone upon creation, so the blending process can only happen once per uniform type.
The blending process itself has been optimized and no longer relies on SwapColor.

In order to avoid image "blinking" upon laying down/standing up for the first time upon initial icon creation the uniform layers will momentarily be swapped. This swapping allows both blended sprites to be momentarily "seen" (which allows the blend proc to generate them) removing the blink effect. The swap occurs as quickly as possible, and should never actually appear swapped on the client screen. This effect is only required by and used for initial icon creation, and is not used for the loading of cached blended icons, which makes up the bulk of uniform operations.
2013-09-10 01:22:17 -04:00
Ergovisavi a5456181d8 Ablative armor no longer provides reflection if you are shot in a location that isn't covered by ablative armor (Chest, groin) as per Number's request. Shout out to Zelacks for doing this for me. 2013-09-09 19:23:47 -07:00
Zelacks eef9c5fed4 Remove debug message
oops
2013-09-09 17:02:47 +08:00
Zelacks 1e0c23a736 Fix for laserproof vest
Passes the hit zone down to the reflect check
Creates a check for where the projectile hit in laserproof vest
If does not target the chest or groin the reflect chance is halved
2013-09-09 16:58:49 +08:00
Cael_Aislinn 9974149b55 adds human, cyborg and alien speech bubbles
Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
2013-09-09 11:20:32 +10:00