mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
Alt click refactor (#82656)
## About The Pull Request Rewrites how alt click works. Based heavily on #82625. What a cool concept, it flows nicely with #82533. Fixes #81242 (tm bugs fixed) Fixes #82668 <details><summary>More info for devs</summary> Handy regex used for alt click s&r: `AltClick\((.*).*\)(\n\t.*\.\.\(\))?` `click_alt($1)` (yes I am aware this only copies the first arg. there are no other args!) ### Obj reskins No reason for obj reskin to check on every single alt click for every object. It applies to only a few items. - Moved to obj/item - Made into signal - Added screentips ### Ventcrawling Every single atmospherics machine checked for ventcrawling capability on alt click despite only 3 objects needing that functionality. This has been moved down to those individual items. </details> ## Why It's Good For The Game For players: - Alt clicking should work more logically, not causing double actions like eject disk and open item window - Added context menus for reskinnable items - Removed adjacency restriction on loot panel For devs: - Makes alt click interactions easier to work with, no more click chain nonsense and redundant guard clauses. - OOP hell reduced - Pascal Case reduced - Glorious snake case ## Changelog 🆑 add: The lootpanel now works at range. add: Screentips for reskinnable items. fix: Alt click interactions have been refactored, which may lead to unintentional changes to gameplay. Report any issues, please. /🆑
This commit is contained in:
@@ -41,6 +41,7 @@ GLOBAL_LIST_INIT(command_strings, list(
|
||||
light_power = 0.6
|
||||
speed = 3
|
||||
req_one_access = list(ACCESS_ROBOTICS)
|
||||
interaction_flags_click = ALLOW_SILICON_REACH
|
||||
///The Robot arm attached to this robot - has a 50% chance to drop on death.
|
||||
var/robot_arm = /obj/item/bodypart/arm/right/robot
|
||||
///The inserted (if any) pAI in this bot.
|
||||
@@ -362,13 +363,9 @@ GLOBAL_LIST_INIT(command_strings, list(
|
||||
ui = new(user, src, "SimpleBot", name)
|
||||
ui.open()
|
||||
|
||||
/mob/living/basic/bot/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(!can_interact(user))
|
||||
return
|
||||
if(!user.can_perform_action(src, ALLOW_SILICON_REACH))
|
||||
return
|
||||
/mob/living/basic/bot/click_alt(mob/user)
|
||||
unlock_with_id(user)
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/mob/living/basic/bot/proc/unlock_with_id(mob/living/user)
|
||||
if(bot_access_flags & BOT_COVER_EMAGGED)
|
||||
|
||||
Reference in New Issue
Block a user