Commit Graph

50 Commits

Author SHA1 Message Date
MLGTASTICa
ed689a2069 Ports AI/Cyborg QoL updates, Allows AI to examine and adds more QoL features. (#1167)
* Update ai.dm

* Update cyborg.dm

* travis

* Revert

* spacing

* Update ai.dm

* Update cyborg.dm

* Update cyborg.dm

* Create Silicon_QoL

* Add files via upload

* Delete Silicon_QoL

* Update _onclick.dm

* Update _onclick.dm

* Create readme.dm

* Update readme.dm

* Rename readme.dm to readme.md

* Update ai.dm
2020-10-14 00:11:18 +01:00
SkyratBot
9be3a7b8f6 [MIRROR] Moblity refactor: hands blocked and restrained edition. (#1051)
* Moblity refactor: hands blocked and restrained edition.

* Update carbon_defense.dm

* Update emotes.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-29 13:57:02 +02:00
SkyratBot
fd11d35489 [MIRROR] Adds borg tablets, and RoboTact as a borg self-management app (#959)
* tgui: Borg tablets and RoboTact as a borg self-management app (#53373)

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* take one

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* part 2

* Automatic changelog compile [ci skip]

* part 3

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* part three I think

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* who even knows what step I'm on anymore

* and another one

* Automatic changelog compile [ci skip]

* PR time

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Forward Progress

* Automatic changelog compile [ci skip]

* Merge remote-tracking branch 'upstream/master' into SiliScreen

* more foward progress

* RoboTact

* bad tab

* Improvements all around

Plus some changes to vis_overlay to allow for color

* Lights and things

* borg network card

borg tablets lose networking when borg is locked or has no power

* hud changes

not done yet, but getting close

* better modPC screen button

* updoot

* more useful colors

* linter

* Do I finally get a green ✓

* better law sync catching

* hate linters

Co-authored-by: Changelogs <action@ github.com>

* Adds borg tablets, and RoboTact as a borg self-management app

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Changelogs <action@ github.com>
2020-09-24 20:29:31 +02:00
SkyratBot
65b31b16c8 [MIRROR] Adds some user feedback to borgs using modules while buckled to things (#118)
* Adds some user feedback to borgs using modules while buckled to things (#52459)

* user feedback

* c

* Adds some user feedback to borgs using modules while buckled to things

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2020-07-30 00:30:00 +01:00
MrMelbert
169e6ec24b Fixes another borg runtime + middle click cycling for borgs (#52476)
* zoom

* aight then
2020-07-27 22:16:15 -04:00
jdawg1290
62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
Rohesie
b73e2c4b0e Adds a knockedout trait, begins refactoring mobility 2.0 (#51348)
* ko

* change request
2020-06-02 00:14:49 +02:00
nemvar
c38a7a3bb5 Removes a bunch of var/ in procs (#46946)
* Removes a bunch of /var in procs

* reset this

* Why wasn't this already?
2019-10-10 04:20:27 -07:00
nemvar
78af0c7937 Moves ling code out of click code. (#46130)
* Moves ling code out of click code.

* . = ..()

* removesuneededcode
2019-08-31 03:17:39 -07:00
kevinz000
3e7184c975 Combat/Stun (slip) overhaul staging, mobility flags, adds crawling (#39967)
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.

Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove

cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
2018-10-11 11:22:21 +13:00
ShizCalev
ff532a4ca4 Spellchecks TGStation 2018-06-19 18:57:44 -04:00
kevinz000
f300a5c155 Interaction/Attack Hand Refactor (#36405) 2018-03-23 11:20:54 +01:00
AnturK
343d2ab38d Allows traitor AI's to take direct control of turrets. (#36154)
* Allows traitor AI's to take direct control of turrets.

* Adds some icons
2018-03-17 11:30:41 +13:00
AnturK
8552071886 Missing parameters 2017-08-01 14:27:15 +02:00
AnturK
66f316620a Whoops 2017-08-01 14:18:29 +02:00
AnturK
dde9f7f7ac Including the shortcuts 2017-08-01 14:07:53 +02:00
AnturK
d5f0c10ac3 Makes cyborg remote interaction limited. 2017-08-01 13:56:18 +02:00
Joan Lung
deae811756 Unconscious and Knockdown are now status effects (#28696)
* Unconscious and Knockdown are now status effects

* Fixes #28628

* fixes borgs

* the terrifying second argument

* Much better
2017-06-23 12:00:49 -04:00
Joan Lung
58c054acb5 Stun is now a status effect (#28654)
* Stun is now a status effect

* I'D RATHER NOT

* smart

* very smart

* pideyview

* small fixes

* slight fix
2017-06-22 10:50:46 +10:00
Joan Lung
2672d88800 Renames stun effects and changes stun input values as preliminary work for changing stuns to status effects (#28524) 2017-06-18 23:03:51 -03:00
Jordan Brown
69ece91a38 Moves attack chain proc from global to obj/item (#27659) 2017-05-26 13:11:43 -03:00
Davidj361
42f1d4c0aa Fixes #24788, cyborgs point hotkey (#26112)
- Fixed shift+middle-click to work for cyborgs as the functionality wasn't even there
2017-04-12 18:50:57 -06:00
Cyberboss
b11a05785a Fixes #25630 (#25639) 2017-03-31 11:25:21 -04:00
Joan Lung
c386e9c64f Cleans up TK code a bit (#25516) 2017-03-27 15:47:23 -03:00
Joan Lung
e7dff5d3e2 Fixes cyborg proselytizers (#23443)
* Fixes cyborg proselytizers

* wow fuck i'm an idiot
2017-01-31 09:24:22 +13:00
Remie Richards
00738bd2a3 More than 2 hands!? WHAAAAAAT 2016-09-02 16:10:16 +01:00
phil235
4d2c6b8e24 Cyborgs can no longer activate the object in their active module when incapacitated. They also can't change their sensor mode (sechud, etc...) while incapacitated.
Fixes Wizard apprentice not being able to use soulstones.
2016-02-29 23:09:13 +01:00
AnturK
77ee2ded62 Renames click intercept method to avoid collision with ClickOn 2016-02-20 15:39:14 +01:00
AnturK
a1583f24ae Buildmode Refactor
Adds generic click intercept to clients
2016-02-10 16:29:47 +01:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02: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
AndroidSFV
fad2bb1244 Fully implemented AI photography, with HUD! 2014-07-30 15:21:30 -05:00
Miauw
658c753989 Revert "Merge pull request #3218 from AndroidSFV/aiphotoext2"
This reverts commit f2d850ee25, reversing
changes made to 805e2570bf.
2014-04-21 18:59:58 +02:00
AndroidSFV
50cd395c4f Merge branch 'master' of https://github.com/tgstation/-tg-station into aiphotoext2
Conflicts:
	code/datums/wires/robot.dm
	html/changelog.html
2014-04-08 09:28:42 -05:00
Cheridan
302f2ea122 Merge pull request #3215 from MrStonedOne/silicon-macros-and-hotkeys
Gives cyborgs ai click shortcuts, adds some click shortcuts, and gives borgs more meaningful hotkeys
2014-04-01 01:27:39 -05:00
AndroidSFV
40119ada0c AI Photography Extention #2
Gives the ability to take and view photo to Cyborgs

AI's share their photo album with connected Cyborgs, and connected Cyborgs have the pictures they take saved to the AI's album. If a Cyborg is not connected to an AI, photos are saved to the Cyborg's camera object. If a Cyborg has photos in it's album while not connected to an AI, but is subsequently connected to an AI, the photos are added to the AI's album. This is initiated by pulsing the appropriate wire on the borg.

Cyborgs can attach images to newscaster feeds, from the active album available to it (the AI's, or its own if disconnected)

Cyborgs cannot interact with photocopiers, but however have become a moving printer. They are every inefficent at printing, and thus can only print two color pictures before needing to be refilled with toner (simply click on them with toner in active hand).

Added some span classes to the previous AI photography work.

One minor bug fix to photocopier which could result in a photo object ending up in the 'hand' of an AI or cyborg.
2014-03-28 07:31:14 -05:00
Aranclanos
7bcb69ad88 Removes the click cooldown from almost everything, now it should be always be 0.1 seconds.
Ranged weapons and laser eyes have a cooldown of 0.4.
Grilles, windows, windoors, walls and blobs have a cooldown of 0.8.
Hitting mobs will also have a cooldown of 0.8.
Removes the unused USEDELAY flag.
2014-03-28 06:32:47 -03:00
MrStonedOne
5a6082c29f fix small typo stopping compiling. 2014-03-28 00:18:07 -07:00
MrStonedOne
a72f70de25 Gives cyborgs control+shift shortcut for access override
Gives cyborg access override shortcut control+shift click that was given to ais eariler
2014-03-27 23:36:12 -07:00
MrStonedOne
69a5e065e8 AI and cyborgs control/alt click shortcuts for turret controls.
Control click toggles turrets on/off state.
Alt click toggles turrent lethal state.
2014-03-27 23:10:21 -07:00
MrStonedOne
a2e1089c5c Give cyborgs existing ai mouse shortcuts.
Gives cyborgs existing AI control/alt/shift click shortcuts while
allowing for them to be used on non-doors/apc normally. (shift still
inspects, control still drags, etc)
2014-03-27 20:58:55 -07:00
Mloc-Hibernia
8af8a43d6f Initial pass to convert LF to CRLF
Signed-off-by: Mloc-Hibernia <colmohici@gmail.com>
2014-03-24 08:53:40 +00:00
Razharas
1f66ce4b8f Fixes borgs doing anything when dead
Fixes #2382

GODDAMN ARAN WHY YOU FIXED AIS SO FAST I ALREADY NAMED A BRANCH
APPROPRIATELY AND THEN SUGGENLY I NOTICED YOUR PR YOU RUINED EVERYTHING
ARAN OH GOD WHY YOU DO THIS TO ME ARAN WHY WHY WHY
2014-01-16 07:02:07 +04: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
Giacomand
cbb395dc02 * Added the same for the AI and Cyborg click code. 2013-10-07 20:47:55 +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
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
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