Commit Graph

846 Commits

Author SHA1 Message Date
Razharas
5045069899 More logging and fingerprints
Added helper proc for general logging, replaced some logging with this
proc
Pulling now leaves fingerprints
Judging by the opinions in the thread will add some more
logging/fingerprints
2013-12-15 05:23:50 +04:00
Aranclanos
f6f9f0f050 Removed a leftlover in click code and fixed changeling stings because they weren't working why aren't they working why don't they work, I keep asking that, it's a PR about changelings stings, but they don't work, why they don't work little black ball of destiny, I just want to know why they don't work on the PR that says that they will work, why why why 2013-12-05 07:35:29 -03:00
Aranclanos
a4a13681f3 Merge branch 'master' of https://github.com/Razharas/-tg-station into ImGonnaStingYa
Conflicts:
	code/game/gamemodes/changeling/changeling_powers.dm
2013-12-05 07:01:09 -03:00
Razharas
eb8b23b873 Fixed some issues
Removed all item stings legacy
Removed game balance changes
Moved stings handling to AltClickOn, added the dead check i forgot to
add
Reverted monkeyizing keeping items from previous form
Fixed the grammar in the comments
2013-12-03 00:45:05 +04:00
Giacom
6757f8d248 Merge pull request #1878 from Zelacks/remove_original_atom
Removes unused variables
2013-11-26 12:12:27 -08:00
Zelacks
c3e8fceefe Removes several more unused variables 2013-11-24 05:11:15 +08:00
Aranclanos
3e68d5ac70 Ghosts won't runtime if they click on the portal while the teleporter computer is gone 2013-11-22 00:00:24 -03:00
Razharas
f37b32a18f Further sting improvements
Now to sting someone with active sting you alt+click them
In usual mode active sting do nothing
Clicking sting icon will deactivate the sting(hasnt removed the verb
however)
Now all monkifying will grant the monkeys what they can wear from their
previous form
Now all humanizing autoequips things from under you
(Done by Gia's suggestion, the quality is meh)
One more little change in icons
2013-11-21 23:10:56 +04:00
Razharas
e6eab9b7e9 Rewrote stings
Stings are now special cases of carbons' clicks
All the problems with stings-items were solved automatically by this
Clicking the ability sets your active sting
Currently active sting is shown on the UI
Changed sting icons to fit the UI
Clicking other ability will reset the active sting to the new one
Added "retract stinger" ability so you can get rid of any active sting
Added autoequip of items below you if you go from monkey to human form
as ling
Added commented-out greater form, just because
Monkeys now have chem counter in their UI just like humans
Monkeys have active sting icon in UI as well
Hope its not too much commits for one pull request
Also changed some of the previous additiong to ABSTRACT items in
show_inv
2013-11-21 20:36:08 +04:00
Razharas
b7b45881b2 Made abstract a flag and other stuff
Everything that had abstract var now has ABSTRACT flag
Everything that checked abstract var now checks ABSTRACT flag
Fixed some runtimes
Fixed click code and face direction changing while cuffed
Added del to all attack_* of the proboscis in case shit goes real
AStar is still weird so added  a simple sanity check
2013-11-18 03:53:50 +04:00
Razharas
6d0bbc8b24 Further improvement of ling code
Yadda yadda
2013-11-17 02:09:43 +04:00
Razharas
453da53560 Ling changes and some click additiong to items 2013-11-16 23:10:55 +04:00
MrPerson
c197201d46 Basic usage of blend_mode
Areas - fire and party alarms look better
Druggy 420 blazeit screen looks better
The whiteness of a flash looks nicer. Mob code makes me hesitant to really change this.
The nearsighted/welding mask dither looks better

If you want screenshots just ask.
2013-11-08 16:48:20 -08:00
Giacom
00621f7817 Merge pull request #1671 from Neerti/hud_addition_01
Adds a plasma storage HUD for aliens.
2013-11-07 04:25:28 -08:00
Neerti
1e0fb790fa Moved plasma counter to right. Flipped sprite for it, named Power Display2 in screen_gen.dmi 2013-11-07 00:08:48 -05:00
Neerti
a1053c2b56 Adds a plasma counter hud for aliens that works similar to the changeling's chem storage and blob's resource storage counters. 2013-10-28 03:03:33 -04:00
Aranclanos
a2981e5f9c Merge pull request #1589 from SuperSayu/clickstuff3
Mecha, hud, and click fixes
2013-10-25 09:16:54 -07:00
Aranclanos
dd281bb6b2 Merge pull request #1561 from RobRichards1997/11/10/2013-Limbs-are-Objects
Changes Limbs into Objects [Merge/Give Feedback]
2013-10-22 00:41:09 -07:00
supersayu
fff7c61d10 More correct fix for #1164 that does not introduce new bugs (oops)
Re-adds the ability for mobs to turn when clicking on a wall object in their square (APC, etc)
Re-adds ghost shift- and alt-clicking, sorry about that.
2013-10-16 01:36:43 -04:00
supersayu
0764cac389 Mecha HUD hiding
Hides the user's inventory (as per F12) when they enter a mecha, since it is essentially unusable.  Pressing F12 will reveal it, as will exiting the mecha.  If your inventory is hidden before you enter the mech, it will remain hidden when you leave.
2013-10-16 01:33:41 -04:00
supersayu
a7398c2205 Mecha fixes
Prevents mech actions from acting on the user's inventory.  Fixes #1487.
(Almost) fully prevents inventory use from within a mech, to be more consistent.  The internals GUI button still works on the theory that it's emergency equipment.
2013-10-16 01:30:00 -04:00
Giacomand
1bf07a3065 * The AI can now use alt click to get a list of objects and the turf for easy access.
* The AI can interact with all the items in the list.
* The AI can use this for several things:
 * Since the list will not dissappear for the AI, until there's no camera coverage, they can use it to bookmark a single tile to interact while not having to look at it.
 * They can also use this to quickly jump to the listed turf.
 * They can interact with objects under other objects.
* Made the CTRL Click on the APC directly use the toggle_breaker() proc.
2013-10-14 17:23:53 +01:00
Cheridan
7a51f6d70d Merge pull request #1519 from Giacom/blob_features
Blob Features [CHANGELOG]
2013-10-12 12:16:20 -07:00
Robson Richards
1c70008d0c Changes Limbs into Obj's
Reworked all the paths for it
Reworked all the procs for it
2013-10-11 19:11:55 +01:00
Giacomand
96f34fa1a4 Merge branch 'master' of https://github.com/tgstation/-tg-station into blob_skfaj;sf
Conflicts:
	html/changelog.html
2013-10-09 08:18:03 +01:00
Giacomand
bf81256e3e Merge branch 'master' of https://github.com/Giacomand/-tg-station into blob_skfaj;sf 2013-10-09 08:15:29 +01:00
Mloc-Argent
d2e8531ee5 Made cyborg middle-clicks cycle through the list of selected modules, and added some new helper procs for selected modules.
New procs:
* module_selected(module) - Checks whether the module slot specified by "module" is currently selected.
* module_active(module) - Checks whether there is a module active in the slot specified by "module".
* get_selected_module() - Returns the slot number of the currently selected module.  Returns 0 if no modules are selected.
* select_module(module) - Selects the module slot specified by "module"
* deselect_module(module) - Deselects the module slot specified by "module"
* toggle_module(module) - Toggles the selection of the module slot specified by "module".
* cycle_modules() - Cycles through the list of selected modules.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
2013-10-08 20:15:57 +01:00
Mloc-Argent
db0a908038 Make energy weapons not get a bloody overlay and fixed alt-gr not calling AltClick()
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
2013-10-08 20:15:56 +01:00
MrPerson
5347cac68a Merge pull request #1494 from Giacomand/clickmobopt
Hostile Mobs Attacking Through Window Fix
2013-10-07 12:55:04 -07:00
Giacomand
cbb395dc02 * Added the same for the AI and Cyborg click code. 2013-10-07 20:47:55 +01:00
Giacomand
b4b0cfaf54 Merge pull request #1402 from Petethegoat/sayustat
Ported and improved Sayu's awesome alt-click stat panel.
2013-10-06 15:42:49 -07:00
Giacomand
d5f96002be Blob Features!
A blob tile will light up when it is being pulsed by a core/node, adds crucial visual feedback when placing resources/factories.
New shortcuts for the blob. Expand = CTRL Click - Rally = Middle Mouse Click - Create Shield = Alt Click
Blobs can now talk to each other and ghosts can hear them. Thanks to /vg/ for this code.
Removed the unnecessary AI quarantine code.
Formated the blob code to use the standard.
2013-10-06 22:56:22 +01:00
Giacomand
0bb72fcb66 * Fixed hostile mobs being able to attach through windows (thanks to the new click code's Adjacent proc)
* Made the shift examine turn your mob again.
 * Slightly optimized getting the modifier params, in the click code.
2013-10-04 14:44:53 +01:00
AndroidSFV
93497b4c3f Expansion of AI Photography. AI can now target which turf is the center of the picture taken. Other fixes included. 2013-10-01 23:10:38 -05:00
Pete Goodfellow
65909d0a33 Merge branch 'master' of github.com:tgstation/-tg-station into sayustat
Conflicts:
	code/modules/mob/mob_defines.dm
2013-09-29 22:27:35 +01:00
supersayu
61c7595489 Re-adds buildmode to ghosts
Also makes buildmode more consistent for AI
2013-09-22 20:06:52 -04:00
Pete Goodfellow
0195caad16 Ported and improved Sayu's awesome alt-click stat panel. Alt-clicking a tile will bring up a list of the objects on it in a stat panel- these can be interacted with normally, with both left and right clicks. This is particularly useful for getting specific items from lockers. 2013-09-18 23:04:08 +01: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
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
0aa3ce39e4 Bugfixen
Modifies Adjacent() for items, to allow items to be accessed properly inside each other and the user.  This fixes a few bugs seen in testing.
Sets a maximum telekinesis range (in case you were using cameras).

The telekinetic grab now does nothing at all in melee combat.  This prevents double messages where you attack them with the object telekinetically, and then also attack them with the telekinetic grab.

Crayons had a bug where they were drawing at all distances.  This is because in old click code, afterattack() only happened at range when you had the USE_DELAY flag, which is no longer true.  Proper behavior is to use parameter 3 (proximity_flag), which is 1 when adjacent or 0 if inaccessible.
2013-09-17 18:19:10 -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
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
0e25cc9b30 Adds click delay to item quick buttons. Updates changelog. 2013-09-17 18:18:30 -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