mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 21:18:37 +01:00
verb macro system (pr 1/3) (#96720)
## About The Pull Request just macro-izes all the usages of verbs in the codebase as a pre-requisite to my follow up pr that serializes all the verbs arguments so we can tgui-ify the command bar, so we can then put it on the onscreen map. this also basically does the same as #94487 so can easily be integrated into the verb queueing stuff... but does not actually do any verb queueing by itself. basically im just trying to be https://github.com/tgstation/tgstation/labels/Atomic ## Why It's Good For The Game it doesn't really do anything by itself but it does let us do more stuff ## Changelog 🆑 code: the backend to all verbs in the game has been played with, please report any issues to github /🆑 --------- Co-authored-by: harryob <55142896+harryob@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
/**
|
||||
* Defines a game verb with an associated /datum/verb_metadata.
|
||||
*
|
||||
* Usage:
|
||||
* GAME_VERB(/client, ooc, "OOC", "Send a message in OOC.", "OOC", msg as text)
|
||||
* // verb body
|
||||
*/
|
||||
|
||||
#define _GAME_VERB(owner_type, verb_path_name, verb_name, verb_desc, verb_category, show_in_context_menu, is_hidden, is_instant, verb_args...) \
|
||||
/datum/verb_metadata##owner_type/##verb_path_name \
|
||||
{ \
|
||||
name = ##verb_name; \
|
||||
description = ##verb_desc; \
|
||||
category = ##verb_category; \
|
||||
verb_path = ##owner_type/verb/##verb_path_name; \
|
||||
body_path = ##owner_type/proc/__gvb_##verb_path_name; \
|
||||
}; \
|
||||
##owner_type/verb/##verb_path_name(##verb_args) \
|
||||
{ \
|
||||
set name = ##verb_name; \
|
||||
set desc = ##verb_desc; \
|
||||
set hidden = ##is_hidden; \
|
||||
set popup_menu = ##show_in_context_menu; \
|
||||
set category = ##verb_category; \
|
||||
set instant = ##is_instant; \
|
||||
__gvb_##verb_path_name(arglist(args)); \
|
||||
}; \
|
||||
##owner_type/proc/__gvb_##verb_path_name(##verb_args)
|
||||
|
||||
#define GAME_VERB(owner_type, verb_path_name, verb_name, verb_category, verb_args...) \
|
||||
_GAME_VERB(owner_type, verb_path_name, verb_name, "", verb_category, TRUE, FALSE, FALSE, ##verb_args)
|
||||
|
||||
#define GAME_VERB_DESC(owner_type, verb_path_name, verb_name, verb_desc, verb_category, verb_args...) \
|
||||
_GAME_VERB(owner_type, verb_path_name, verb_name, verb_desc, verb_category, TRUE, FALSE, FALSE, ##verb_args)
|
||||
|
||||
#define GAME_VERB_HIDDEN(owner_type, verb_path_name, verb_name, verb_args...) \
|
||||
_GAME_VERB(owner_type, verb_path_name, verb_name, "", null, FALSE, TRUE, FALSE, ##verb_args)
|
||||
|
||||
#define GAME_VERB_HIDDEN_INSTANT(owner_type, verb_path_name, verb_name, verb_args...) \
|
||||
_GAME_VERB(owner_type, verb_path_name, verb_name, "", null, FALSE, TRUE, TRUE, ##verb_args)
|
||||
|
||||
#define _GAME_VERB_PROC(owner_type, verb_path_name, verb_name, verb_desc, verb_category, show_in_context_menu, is_hidden, verb_args...) \
|
||||
/datum/verb_metadata##owner_type/##verb_path_name \
|
||||
{ \
|
||||
name = ##verb_name; \
|
||||
description = ##verb_desc; \
|
||||
category = ##verb_category; \
|
||||
verb_path = ##owner_type/proc/##verb_path_name; \
|
||||
body_path = ##owner_type/proc/__gvb_##verb_path_name; \
|
||||
}; \
|
||||
##owner_type/proc/##verb_path_name(##verb_args) \
|
||||
{ \
|
||||
set name = ##verb_name; \
|
||||
set desc = ##verb_desc; \
|
||||
set hidden = ##is_hidden; \
|
||||
set popup_menu = ##show_in_context_menu; \
|
||||
set category = ##verb_category; \
|
||||
__gvb_##verb_path_name(arglist(args)); \
|
||||
}; \
|
||||
##owner_type/proc/__gvb_##verb_path_name(##verb_args)
|
||||
|
||||
#define GAME_VERB_PROC(owner_type, verb_path_name, verb_name, verb_category, verb_args...) \
|
||||
_GAME_VERB_PROC(owner_type, verb_path_name, verb_name, "", verb_category, TRUE, FALSE, ##verb_args)
|
||||
|
||||
#define GAME_VERB_PROC_DESC(owner_type, verb_path_name, verb_name, verb_desc, verb_category, verb_args...) \
|
||||
_GAME_VERB_PROC(owner_type, verb_path_name, verb_name, verb_desc, verb_category, TRUE, FALSE, ##verb_args)
|
||||
|
||||
#define _GAME_VERB_SRC(owner_type, verb_path_name, src_value, verb_name, verb_desc, verb_category, show_in_context_menu, is_hidden, verb_args...) \
|
||||
/datum/verb_metadata##owner_type/##verb_path_name \
|
||||
{ \
|
||||
name = ##verb_name; \
|
||||
description = ##verb_desc; \
|
||||
category = ##verb_category; \
|
||||
verb_path = ##owner_type/verb/##verb_path_name; \
|
||||
body_path = ##owner_type/proc/__gvb_##verb_path_name; \
|
||||
}; \
|
||||
##owner_type/verb/##verb_path_name(##verb_args) \
|
||||
{ \
|
||||
set name = ##verb_name; \
|
||||
set desc = ##verb_desc; \
|
||||
set hidden = ##is_hidden; \
|
||||
set popup_menu = ##show_in_context_menu; \
|
||||
set category = ##verb_category; \
|
||||
set src in src_value; \
|
||||
__gvb_##verb_path_name(arglist(args)); \
|
||||
}; \
|
||||
##owner_type/proc/__gvb_##verb_path_name(##verb_args)
|
||||
|
||||
#define GAME_VERB_SRC(owner_type, verb_path_name, src_value, verb_name, verb_category, verb_args...) \
|
||||
_GAME_VERB_SRC(owner_type, verb_path_name, src_value, verb_name, "", verb_category, TRUE, FALSE, ##verb_args)
|
||||
|
||||
#define GAME_VERB_SRC_DESC(owner_type, verb_path_name, src_value, verb_name, verb_desc, verb_category, verb_args...) \
|
||||
_GAME_VERB_SRC(owner_type, verb_path_name, src_value, verb_name, verb_desc, verb_category, TRUE, FALSE, ##verb_args)
|
||||
|
||||
#define _GAME_VERB_GLOBAL_PROC(verb_path_name, verb_name, verb_desc, verb_category, is_hidden, verb_args...) \
|
||||
/datum/verb_metadata/##verb_path_name \
|
||||
{ \
|
||||
name = ##verb_name; \
|
||||
description = ##verb_desc; \
|
||||
category = ##verb_category; \
|
||||
verb_path = /proc/##verb_path_name; \
|
||||
body_path = /proc/__gvb_##verb_path_name; \
|
||||
}; \
|
||||
/proc/##verb_path_name(##verb_args) \
|
||||
{ \
|
||||
set name = ##verb_name; \
|
||||
set desc = ##verb_desc; \
|
||||
set hidden = ##is_hidden; \
|
||||
set category = ##verb_category; \
|
||||
__gvb_##verb_path_name(arglist(args)); \
|
||||
}; \
|
||||
/proc/__gvb_##verb_path_name(##verb_args)
|
||||
|
||||
#define GAME_VERB_GLOBAL_PROC(verb_path_name, verb_name, verb_desc, verb_category, verb_args...) \
|
||||
_GAME_VERB_GLOBAL_PROC(verb_path_name, verb_name, verb_desc, verb_category, FALSE, ##verb_args)
|
||||
|
||||
#define INVOKE_GAME_VERB(target, owner_type, verb_path_name, args...) SSverbs.invoke(target, /datum/verb_metadata##owner_type/##verb_path_name, ##args)
|
||||
#define ASSIGN_GAME_VERB(target, owner_type, verb_path_name) SSverbs.assign_verb(target, /datum/verb_metadata##owner_type/##verb_path_name)
|
||||
#define UNASSIGN_GAME_VERB(target, owner_type, verb_path_name) SSverbs.unassign_verb(target, /datum/verb_metadata##owner_type/##verb_path_name)
|
||||
@@ -477,17 +477,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
continue
|
||||
show_to.client?.screen += reuse
|
||||
|
||||
//Triggered when F12 is pressed (Unless someone changed something in the DMF)
|
||||
/mob/verb/button_pressed_F12()
|
||||
set name = "F12"
|
||||
set hidden = TRUE
|
||||
|
||||
if(hud_used && client)
|
||||
hud_used.show_hud() //Shows the next hud preset
|
||||
to_chat(usr, span_info("Switched HUD mode. Press F12 to toggle."))
|
||||
else
|
||||
to_chat(usr, span_warning("This mob type does not use a HUD."))
|
||||
|
||||
/// Rebuilds our mob's hand slot screen elements
|
||||
/datum/hud/proc/build_hand_slots(update_hud = FALSE)
|
||||
|
||||
|
||||
@@ -71,10 +71,7 @@
|
||||
continue
|
||||
inv.alpha = (blocked_slots & inv.slot_id) ? 128 : initial(inv.alpha)
|
||||
|
||||
/mob/living/carbon/human/verb/toggle_hotkey_verbs()
|
||||
set category = "OOC"
|
||||
set name = "Toggle hotkey buttons"
|
||||
set desc = "This disables or enables the user interface buttons which can be used with hotkeys."
|
||||
GAME_VERB_DESC(/mob/living/carbon/human, toggle_hotkey_verbs, "Toggle hotkey buttons", "This disables or enables the user interface buttons which can be used with hotkeys.", "OOC")
|
||||
|
||||
if(hud_used.hotkey_ui_hidden)
|
||||
client.screen += hud_used.screen_groups[HUD_GROUP_HOTKEYS]
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/icon/credits_icon = new(CREDITS_PATH)
|
||||
LAZYINITLIST(credits)
|
||||
var/list/_credits = credits
|
||||
add_verb(src, /client/proc/ClearCredits)
|
||||
ASSIGN_GAME_VERB(src, /client, ClearCredits)
|
||||
var/static/list/credit_order_for_this_round
|
||||
if(isnull(credit_order_for_this_round))
|
||||
credit_order_for_this_round = list("Thanks for playing!") + (shuffle(icon_states(credits_icon)) - "Thanks for playing!")
|
||||
@@ -21,13 +21,11 @@
|
||||
_credits += new /atom/movable/screen/credit(null, null, I, src, credits_icon)
|
||||
sleep(CREDIT_SPAWN_SPEED)
|
||||
sleep(CREDIT_ROLL_SPEED - CREDIT_SPAWN_SPEED)
|
||||
remove_verb(src, /client/proc/ClearCredits)
|
||||
UNASSIGN_GAME_VERB(src, /client, ClearCredits)
|
||||
qdel(credits_icon)
|
||||
|
||||
/client/proc/ClearCredits()
|
||||
set name = "Hide Credits"
|
||||
set category = "OOC"
|
||||
remove_verb(src, /client/proc/ClearCredits)
|
||||
GAME_VERB_PROC(/client, ClearCredits, "Hide Credits", "OOC")
|
||||
UNASSIGN_GAME_VERB(src, /client, ClearCredits)
|
||||
QDEL_LIST(credits)
|
||||
credits = null
|
||||
|
||||
|
||||
@@ -128,7 +128,6 @@
|
||||
/**
|
||||
* When the popup closes in any way (player or proc call) it calls this.
|
||||
*/
|
||||
/client/verb/handle_popup_close(window_id as text)
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, handle_popup_close, "handle popup close", window_id as text)
|
||||
clear_map("[window_id]_map")
|
||||
SEND_SIGNAL(src, COMSIG_POPUP_CLEARED, window_id)
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
SUBSYSTEM_DEF(verbs)
|
||||
name = "Verbs"
|
||||
ss_flags = SS_NO_FIRE
|
||||
init_stage = INITSTAGE_EARLY
|
||||
var/list/datum/verb_metadata/verbs_by_type = list()
|
||||
|
||||
/datum/controller/subsystem/verbs/Initialize()
|
||||
for(var/datum/verb_metadata/verb_type as anything in subtypesof(/datum/verb_metadata))
|
||||
verbs_by_type[verb_type] = new verb_type
|
||||
return SS_INIT_SUCCESS
|
||||
|
||||
/datum/controller/subsystem/verbs/proc/invoke(target, datum/verb_metadata/verb_type, ...)
|
||||
var/datum/verb_metadata/meta = verbs_by_type[verb_type]
|
||||
if(isnull(meta))
|
||||
CRASH("Attempted to invoke unknown verb '[verb_type]'.")
|
||||
var/list/invoke_args = args.Copy(3)
|
||||
call(target, meta.body_path)(arglist(invoke_args))
|
||||
|
||||
/datum/controller/subsystem/verbs/proc/assign_verb(target, datum/verb_metadata/verb_type)
|
||||
var/datum/verb_metadata/meta = verbs_by_type[verb_type]
|
||||
if(isnull(meta))
|
||||
CRASH("Attempted to assign unknown verb '[verb_type]'.")
|
||||
meta.assign_to(target)
|
||||
|
||||
/datum/controller/subsystem/verbs/proc/unassign_verb(target, datum/verb_metadata/verb_type)
|
||||
var/datum/verb_metadata/meta = verbs_by_type[verb_type]
|
||||
if(isnull(meta))
|
||||
CRASH("Attempted to unassign unknown verb '[verb_type]'.")
|
||||
meta.unassign_from(target)
|
||||
@@ -441,9 +441,7 @@ SUBSYSTEM_DEF(vote)
|
||||
voting -= user.client?.ckey
|
||||
|
||||
/// Mob level verb that allows players to vote on the current vote.
|
||||
/mob/verb/vote()
|
||||
set category = "OOC"
|
||||
set name = "Vote"
|
||||
GAME_VERB(/mob, vote, "Vote", "OOC")
|
||||
|
||||
if(!SSvote.initialized)
|
||||
to_chat(usr, span_notice("<i>Voting is not set up yet!</i>"))
|
||||
|
||||
@@ -129,9 +129,6 @@
|
||||
continue
|
||||
.["highscores"] += list(list("name" = score.name, "scores" = score.high_scores))
|
||||
|
||||
/client/verb/checkachievements()
|
||||
set category = "OOC"
|
||||
set name = "Check achievements"
|
||||
set desc = "See all of your achievements!"
|
||||
GAME_VERB_DESC(/client, checkachievements, "Check achievements", "See all of your achievements!", "OOC")
|
||||
|
||||
persistent_client.achievements.ui_interact(usr)
|
||||
|
||||
@@ -484,9 +484,7 @@
|
||||
/// called when a browser popup window is closed after registering with proc/onclose()
|
||||
/// if a valid atom reference is supplied, call the atom's Topic() with "close=1"
|
||||
/// otherwise, just reset the client mob's machine var.
|
||||
/client/verb/windowclose(atomref as text)
|
||||
set hidden = TRUE // hide this verb from the user's panel
|
||||
set name = ".windowclose" // no autocomplete on cmd line
|
||||
GAME_VERB_HIDDEN(/client, windowclose, ".windowclose", atomref as text)
|
||||
|
||||
if(atomref == "null")
|
||||
return
|
||||
|
||||
@@ -71,10 +71,7 @@
|
||||
var/details = ": '" + html_encode(tm.title) + "' by " + html_encode(tm.author) + " at commit " + html_encode(copytext_char(cm, 1, 11))
|
||||
. += "<a href=\"[CONFIG_GET(string/githuburl)]/pull/[tm.number]\">#[tm.number][details]</a><br>"
|
||||
|
||||
/client/verb/showrevinfo()
|
||||
set category = "OOC"
|
||||
set name = "Show Server Revision"
|
||||
set desc = "Check the current server code revision"
|
||||
GAME_VERB_DESC(/client, showrevinfo, "Show Server Revision", "Check the current server code revision", "OOC")
|
||||
|
||||
var/list/msg = list()
|
||||
// Round ID
|
||||
|
||||
@@ -76,7 +76,13 @@
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
user.mob.button_pressed_F12()
|
||||
|
||||
if(user.mob.hud_used)
|
||||
user.mob.hud_used.show_hud() //Shows the next hud preset
|
||||
to_chat(user, span_info("Switched HUD mode. Press F12 to toggle."))
|
||||
else
|
||||
to_chat(user, span_warning("This mob type does not use a HUD."))
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/keybinding/client/close_every_ui
|
||||
|
||||
@@ -5,16 +5,6 @@ The original authors are: cogwerks, pistoleer, spyguy, angriestibm, marquesas, a
|
||||
If you make a derivative work from this code, you must include this notification header alongside it.
|
||||
*/
|
||||
|
||||
/mob/living/proc/wrestling_help()
|
||||
set name = "Recall Teachings"
|
||||
set desc = "Remember how to wrestle."
|
||||
set category = "Wrestling"
|
||||
|
||||
to_chat(usr, "<b><i>You flex your muscles and have a revelation...</i></b>")
|
||||
to_chat(usr, "[span_notice("Clinch")]: Grab. Passively gives you a chance to immediately aggressively grab someone. Not always successful.")
|
||||
to_chat(usr, "[span_notice("Suplex")]: Shove someone you are grabbing. Suplexes your target to the floor. Greatly injures them and leaves both you and your target on the floor.")
|
||||
to_chat(usr, "[span_notice("Advanced grab")]: Grab. Passively causes stamina damage when grabbing someone.")
|
||||
|
||||
/datum/martial_art/wrestling
|
||||
name = "Wrestling"
|
||||
id = MARTIALART_WRESTLING
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/datum/verb_metadata
|
||||
var/name
|
||||
var/description
|
||||
var/category
|
||||
var/verb_path
|
||||
var/body_path
|
||||
|
||||
/datum/verb_metadata/proc/assign_to(target)
|
||||
add_verb(target, verb_path)
|
||||
|
||||
/datum/verb_metadata/proc/unassign_from(target)
|
||||
remove_verb(target, verb_path)
|
||||
@@ -323,9 +323,7 @@
|
||||
/obj/machinery/iv_drip/proc/get_reagents()
|
||||
return use_internal_storage ? reagents : reagent_container?.reagents
|
||||
|
||||
/obj/machinery/iv_drip/verb/eject_beaker()
|
||||
set name = "Remove IV Container"
|
||||
set src in view(1)
|
||||
GAME_VERB_SRC(/obj/machinery/iv_drip, eject_beaker, view(1), "Remove IV Container", null)
|
||||
|
||||
if(!isliving(usr))
|
||||
to_chat(usr, span_warning("You can't do that!"))
|
||||
@@ -342,9 +340,7 @@
|
||||
reagent_container = null
|
||||
update_appearance(UPDATE_ICON)
|
||||
|
||||
/obj/machinery/iv_drip/verb/toggle_mode()
|
||||
set name = "Toggle Mode"
|
||||
set src in view(1)
|
||||
GAME_VERB_SRC(/obj/machinery/iv_drip, toggle_mode, view(1), "Toggle Mode", null)
|
||||
|
||||
if(!isliving(usr))
|
||||
to_chat(usr, span_warning("You can't do that!"))
|
||||
|
||||
@@ -217,9 +217,7 @@ Buildable meters
|
||||
if(ispath(pipe_type,/obj/machinery/atmospherics/pipe/heat_exchanging))
|
||||
resistance_flags |= FIRE_PROOF | LAVA_PROOF
|
||||
|
||||
/obj/item/pipe/verb/flip()
|
||||
set name = "Invert Pipe"
|
||||
set src in view(1)
|
||||
GAME_VERB_SRC(/obj/item/pipe, flip, view(1), "Invert Pipe", null)
|
||||
|
||||
if ( usr.incapacitated )
|
||||
return
|
||||
|
||||
@@ -401,9 +401,7 @@
|
||||
if(greyscale_config_inhand_right)
|
||||
righthand_file = SSgreyscale.GetColoredIconByType(greyscale_config_inhand_right, greyscale_colors)
|
||||
|
||||
/obj/item/verb/move_to_top()
|
||||
set name = "Move To Top"
|
||||
set src in oview(1)
|
||||
GAME_VERB_SRC(/obj/item, move_to_top, oview(1), "Move To Top", null)
|
||||
|
||||
if(!isturf(loc) || usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED) || anchored)
|
||||
return
|
||||
@@ -822,9 +820,7 @@
|
||||
|
||||
return M.can_equip(src, slot, disable_warning, bypass_equip_delay_self, ignore_equipped, indirect_action = indirect_action)
|
||||
|
||||
/obj/item/verb/verb_pickup()
|
||||
set src in oview(1)
|
||||
set name = "Pick up"
|
||||
GAME_VERB_SRC(/obj/item, verb_pickup, oview(1), "Pick up", null)
|
||||
|
||||
if(usr.incapacitated || !Adjacent(usr))
|
||||
return
|
||||
|
||||
@@ -126,8 +126,7 @@
|
||||
return FALSE
|
||||
|
||||
|
||||
/obj/item/taperecorder/verb/ejectverb()
|
||||
set name = "Eject Tape"
|
||||
GAME_VERB(/obj/item/taperecorder, ejectverb, "Eject Tape", null)
|
||||
|
||||
if(!can_use(usr))
|
||||
balloon_alert(usr, "can't use!")
|
||||
@@ -161,8 +160,7 @@
|
||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity,"mm:ss", NO_TIMEZONE)]\] [speaker.get_voice()]: [raw_message]"
|
||||
|
||||
|
||||
/obj/item/taperecorder/verb/record()
|
||||
set name = "Start Recording"
|
||||
GAME_VERB(/obj/item/taperecorder, record, "Start Recording", null)
|
||||
|
||||
if(!can_use(usr))
|
||||
balloon_alert(usr, "can't use!")
|
||||
@@ -203,8 +201,7 @@
|
||||
playsound(src, 'sound/items/taperecorder/taperecorder_stop.ogg', 50, FALSE)
|
||||
|
||||
|
||||
/obj/item/taperecorder/verb/stop()
|
||||
set name = "Stop"
|
||||
GAME_VERB(/obj/item/taperecorder, stop, "Stop", null)
|
||||
|
||||
if(!can_use(usr))
|
||||
balloon_alert(usr, "can't use!")
|
||||
@@ -223,8 +220,7 @@
|
||||
update_appearance()
|
||||
update_sound()
|
||||
|
||||
/obj/item/taperecorder/verb/play()
|
||||
set name = "Play Tape"
|
||||
GAME_VERB(/obj/item/taperecorder, play, "Play Tape", null)
|
||||
|
||||
if(!can_use(usr))
|
||||
balloon_alert(usr, "can't use!")
|
||||
@@ -295,8 +291,7 @@
|
||||
if("Eject")
|
||||
eject(user)
|
||||
|
||||
/obj/item/taperecorder/verb/print_transcript()
|
||||
set name = "Print Transcript"
|
||||
GAME_VERB(/obj/item/taperecorder, print_transcript, "Print Transcript", null)
|
||||
|
||||
var/list/transcribed_info = mytape.storedinfo
|
||||
if(!length(transcribed_info))
|
||||
|
||||
@@ -32,8 +32,7 @@
|
||||
return ..()
|
||||
|
||||
///A right-click verb, for those not using hotkey mode.
|
||||
/obj/item/borg/apparatus/verb/verb_dropHeld()
|
||||
set name = "Drop"
|
||||
GAME_VERB(/obj/item/borg/apparatus, verb_dropHeld, "Drop", null)
|
||||
|
||||
if(usr != loc || !stored)
|
||||
return
|
||||
|
||||
@@ -59,8 +59,7 @@
|
||||
//Remove from their hands and put back "into" the tank
|
||||
remove_noz()
|
||||
|
||||
/obj/item/watertank/verb/toggle_mister_verb()
|
||||
set name = "Toggle Mister"
|
||||
GAME_VERB(/obj/item/watertank, toggle_mister_verb, "Toggle Mister", null)
|
||||
toggle_mister(usr)
|
||||
|
||||
/obj/item/watertank/proc/make_noz()
|
||||
|
||||
@@ -1025,9 +1025,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
|
||||
if(attack_hand(user))
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
/obj/structure/closet/verb/verb_toggleopen()
|
||||
set name = "Toggle Open"
|
||||
set src in view(1)
|
||||
GAME_VERB_SRC(/obj/structure/closet, verb_toggleopen, view(1), "Toggle Open", null)
|
||||
|
||||
if(!usr.can_perform_action(src) || !isturf(loc))
|
||||
return
|
||||
|
||||
@@ -336,9 +336,8 @@
|
||||
|
||||
|
||||
//Flips the windoor assembly, determines whather the door opens to the left or the right
|
||||
/obj/structure/windoor_assembly/verb/flip()
|
||||
set name = "Flip Windoor Assembly"
|
||||
set src in oview(1)
|
||||
GAME_VERB_SRC(/obj/structure/windoor_assembly, flip, oview(1), "Flip Windoor Assembly", null)
|
||||
|
||||
if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED))
|
||||
return
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
ADMIN_VERB(hide_verbs, R_NONE, "Adminverbs - Hide All", "Hide most of your admin verbs.", ADMIN_CATEGORY_MAIN)
|
||||
user.remove_admin_verbs()
|
||||
add_verb(user, /client/proc/show_verbs)
|
||||
ASSIGN_GAME_VERB(user, /client, show_verbs)
|
||||
|
||||
to_chat(user, span_interface("Almost all of your adminverbs have been hidden."), confidential = TRUE)
|
||||
BLACKBOX_LOG_ADMIN_VERB("Hide All Adminverbs")
|
||||
|
||||
@@ -119,7 +119,7 @@ GLOBAL_PROTECT(href_token)
|
||||
|
||||
if (!isnull(client))
|
||||
disassociate()
|
||||
add_verb(client, /client/proc/readmin)
|
||||
ASSIGN_GAME_VERB(client, /client, readmin)
|
||||
client.disable_combo_hud()
|
||||
client.update_special_keybinds()
|
||||
client.set_stat_panel()
|
||||
@@ -154,12 +154,12 @@ GLOBAL_PROTECT(href_token)
|
||||
if (deadmined)
|
||||
activate()
|
||||
|
||||
remove_verb(client, /client/proc/admin_2fa_verify)
|
||||
UNASSIGN_GAME_VERB(client, /client, admin_2fa_verify)
|
||||
|
||||
owner = client
|
||||
owner.holder = src
|
||||
owner.add_admin_verbs()
|
||||
remove_verb(owner, /client/proc/readmin)
|
||||
UNASSIGN_GAME_VERB(owner, /client, readmin)
|
||||
owner.init_verbs() //re-initialize the verb list
|
||||
owner.update_special_keybinds()
|
||||
GLOB.admins |= client
|
||||
@@ -284,7 +284,7 @@ GLOBAL_PROTECT(href_token)
|
||||
#define ERROR_2FA_REQUEST_PERMISSIONS "<h1><b class='danger'>You could not be verified, and a DB connection couldn't be established. Please contact an admin with +PERMISSIONS to grant you permission.</b></h1>"
|
||||
|
||||
/datum/admins/proc/start_2fa_process(client/client, id)
|
||||
add_verb(client, /client/proc/admin_2fa_verify)
|
||||
ASSIGN_GAME_VERB(client, /client, admin_2fa_verify)
|
||||
client?.init_verbs()
|
||||
|
||||
var/admin_2fa_url = CONFIG_GET(string/admin_2fa_url)
|
||||
|
||||
@@ -221,9 +221,7 @@ ADMIN_VERB_ONLY_CONTEXT_MENU(show_occupants_player_panel, R_ADMIN, "Show Occupan
|
||||
SSadmin_verbs.dynamic_invoke_verb(user, /datum/admin_verb/show_player_panel, selected_mob)
|
||||
return
|
||||
|
||||
/client/proc/cmd_admin_godmode(mob/mob in GLOB.mob_list)
|
||||
set category = "Admin.Game"
|
||||
set name = "Godmode"
|
||||
GAME_VERB_PROC(/client, cmd_admin_godmode, "Godmode", "Admin.Game", mob/mob in GLOB.mob_list)
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
|
||||
@@ -792,10 +792,7 @@ GLOBAL_DATUM_INIT(admin_help_ui_handler, /datum/admin_help_ui_handler, new)
|
||||
|
||||
new /datum/admin_help(message, user_client, FALSE, urgent)
|
||||
|
||||
/client/verb/no_tgui_adminhelp(message as message)
|
||||
set name = "NoTguiAdminhelp"
|
||||
set hidden = TRUE
|
||||
|
||||
GAME_VERB_HIDDEN(/client, no_tgui_adminhelp, "NoTguiAdminhelp", message as message)
|
||||
if(adminhelptimerid)
|
||||
return
|
||||
|
||||
@@ -803,16 +800,11 @@ GLOBAL_DATUM_INIT(admin_help_ui_handler, /datum/admin_help_ui_handler, new)
|
||||
|
||||
GLOB.admin_help_ui_handler.perform_adminhelp(src, message, FALSE)
|
||||
|
||||
/client/verb/adminhelp()
|
||||
set category = "Admin"
|
||||
set name = "Adminhelp"
|
||||
GAME_VERB(/client, adminhelp, "Adminhelp", "Admin")
|
||||
GLOB.admin_help_ui_handler.ui_interact(mob)
|
||||
to_chat(src, span_boldnotice("Adminhelp failing to open or work? <a href='byond://?src=[REF(src)];tguiless_adminhelp=1'>Click here</a>"))
|
||||
|
||||
/client/verb/view_latest_ticket()
|
||||
set category = "Admin"
|
||||
set name = "View Latest Ticket"
|
||||
|
||||
GAME_VERB(/client, view_latest_ticket, "View Latest Ticket", "Admin")
|
||||
if(!current_ticket)
|
||||
// Check if the client had previous tickets, and show the latest one
|
||||
var/list/prev_tickets = list()
|
||||
|
||||
@@ -28,9 +28,7 @@ GLOBAL_DATUM(triple_ai_controller, /datum/triple_ai_controller)
|
||||
GLOB.triple_ai_controller = null
|
||||
. = ..()
|
||||
|
||||
/client/proc/triple_ai()
|
||||
set category = "Admin.Events"
|
||||
set name = "Toggle AI Triumvirate"
|
||||
GAME_VERB_PROC(/client, triple_ai, "Toggle AI Triumvirate", "Admin.Events")
|
||||
|
||||
if(SSticker.current_state > GAME_STATE_PREGAME)
|
||||
to_chat(usr, "This option is currently only usable during pregame. This may change at a later date.", confidential = TRUE)
|
||||
|
||||
@@ -7,9 +7,7 @@ GLOBAL_DATUM(current_anonymous_theme, /datum/anonymous_theme)
|
||||
|
||||
this is the setup, it handles announcing crew and other settings for the mode and then creating the datum singleton
|
||||
*/
|
||||
/client/proc/anon_names()
|
||||
set category = "Admin.Events"
|
||||
set name = "Setup Anonymous Names"
|
||||
GAME_VERB_PROC(/client, anon_names, "Setup Anonymous Names", "Admin.Events")
|
||||
|
||||
if(GLOB.current_anonymous_theme)
|
||||
var/response = tgui_alert(usr, "Anon mode is currently enabled. Disable?", "cold feet", list("Disable Anon Names", "Keep it Enabled"))
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
* Returns the entry if all organs were successfully replaced.
|
||||
* If no infusion was picked, the infusion had no organs, or if one or more organs could not be granted, returns FALSE
|
||||
*/
|
||||
/client/proc/grant_dna_infusion(mob/living/carbon/human/target in world)
|
||||
set name = "Apply DNA Infusion"
|
||||
set category = "Debug"
|
||||
GAME_VERB_PROC(/client, grant_dna_infusion, "Apply DNA Infusion", "Debug", mob/living/carbon/human/target in world)
|
||||
|
||||
var/list/infusions = list()
|
||||
for(var/datum/infuser_entry/path as anything in sort_list(subtypesof(/datum/infuser_entry), GLOBAL_PROC_REF(cmp_typepaths_asc)))
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/mob/verb/pray(message as text)
|
||||
set name = VERB_PRAY
|
||||
|
||||
GAME_VERB(/mob, pray, VERB_PRAY, null, message as text)
|
||||
if(GLOB.say_disabled) //This is here to try to identify lag problems
|
||||
to_chat(src, span_danger("Speech is currently admin-disabled."), confidential = TRUE)
|
||||
return
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/verb/request_internet_sound()
|
||||
set category = "OOC"
|
||||
set name = "Request Internet Sound"
|
||||
|
||||
GAME_VERB(/mob, request_internet_sound, "Request Internet Sound", "OOC")
|
||||
if(!CONFIG_GET(flag/request_internet_sound))
|
||||
to_chat(usr, span_danger("This server has disabled internet sound requests."), confidential = TRUE)
|
||||
return
|
||||
|
||||
@@ -1,19 +1,14 @@
|
||||
// Admin Verbs in this file are special and cannot use the AVD system for some reason or another.
|
||||
|
||||
/client/proc/show_verbs()
|
||||
set name = "Adminverbs - Show"
|
||||
set category = ADMIN_CATEGORY_MAIN
|
||||
GAME_VERB_PROC(/client, show_verbs, "Adminverbs - Show", ADMIN_CATEGORY_MAIN)
|
||||
|
||||
remove_verb(src, /client/proc/show_verbs)
|
||||
UNASSIGN_GAME_VERB(src, /client, show_verbs)
|
||||
add_admin_verbs()
|
||||
|
||||
to_chat(src, span_interface("All of your adminverbs are now visible."), confidential = TRUE)
|
||||
BLACKBOX_LOG_ADMIN_VERB("Show Adminverbs")
|
||||
|
||||
/client/proc/readmin()
|
||||
set name = "Readmin"
|
||||
set category = "Admin"
|
||||
set desc = "Regain your admin powers."
|
||||
GAME_VERB_PROC_DESC(/client, readmin, "Readmin", "Regain your admin powers.", "Admin")
|
||||
|
||||
var/datum/admins/A = GLOB.deadmins[ckey]
|
||||
|
||||
@@ -35,9 +30,7 @@
|
||||
log_admin("[src] re-adminned themselves.")
|
||||
BLACKBOX_LOG_ADMIN_VERB("Readmin")
|
||||
|
||||
/client/proc/admin_2fa_verify()
|
||||
set name = "Verify Admin"
|
||||
set category = "Admin"
|
||||
GAME_VERB_PROC(/client, admin_2fa_verify, "Verify Admin", "Admin")
|
||||
|
||||
var/datum/admins/admin = GLOB.admin_datums[ckey]
|
||||
admin?.associate(src)
|
||||
|
||||
@@ -170,9 +170,7 @@
|
||||
mode.handle_click(user.client, params, object)
|
||||
return TRUE // no doing underlying actions
|
||||
|
||||
/proc/togglebuildmode(mob/M as mob in GLOB.player_list)
|
||||
set name = "Toggle Build Mode"
|
||||
set category = "Event"
|
||||
GAME_VERB_GLOBAL_PROC(togglebuildmode, "Toggle Build Mode", "", "Event", mob/M as mob in GLOB.player_list)
|
||||
|
||||
if(M.client)
|
||||
if(istype(M.client.click_intercept,/datum/buildmode))
|
||||
|
||||
@@ -301,10 +301,10 @@ GLOBAL_LIST_INIT(unrecommended_builds, list(
|
||||
prefs.last_id = computer_id //these are gonna be used for banning
|
||||
|
||||
if(fexists(roundend_report_file()))
|
||||
add_verb(src, /client/proc/show_previous_roundend_report)
|
||||
ASSIGN_GAME_VERB(src, /client, show_previous_roundend_report)
|
||||
|
||||
if(fexists("data/server_last_roundend_report.html"))
|
||||
add_verb(src, /client/proc/show_servers_last_roundend_report)
|
||||
ASSIGN_GAME_VERB(src, /client, show_servers_last_roundend_report)
|
||||
|
||||
var/full_version = "[byond_version].[byond_build ? byond_build : "xxx"]"
|
||||
log_access("Login: [key_name(src)] from [address ? address : "localhost"]-[computer_id] || BYOND v[full_version]")
|
||||
@@ -376,7 +376,7 @@ GLOBAL_LIST_INIT(unrecommended_builds, list(
|
||||
admin_datum.associate(src)
|
||||
connecting_admin = TRUE
|
||||
else if(GLOB.deadmins[ckey])
|
||||
add_verb(src, /client/proc/readmin)
|
||||
ASSIGN_GAME_VERB(src, /client, readmin)
|
||||
connecting_admin = TRUE
|
||||
if(CONFIG_GET(flag/autoadmin))
|
||||
if(!GLOB.admin_datums[ckey])
|
||||
@@ -946,11 +946,11 @@ GLOBAL_LIST_INIT(unrecommended_builds, list(
|
||||
if (interviewee)
|
||||
return
|
||||
if(CONFIG_GET(flag/see_own_notes))
|
||||
add_verb(src, /client/proc/self_notes)
|
||||
ASSIGN_GAME_VERB(src, /client, self_notes)
|
||||
if(CONFIG_GET(flag/use_exp_tracking))
|
||||
add_verb(src, /client/proc/self_playtime)
|
||||
ASSIGN_GAME_VERB(src, /client, self_playtime)
|
||||
if(!CONFIG_GET(flag/forbid_preferences_export))
|
||||
add_verb(src, /client/proc/export_preferences)
|
||||
ASSIGN_GAME_VERB(src, /client, export_preferences)
|
||||
|
||||
|
||||
//checks if a client is afk
|
||||
@@ -1198,17 +1198,12 @@ GLOBAL_LIST_INIT(unrecommended_builds, list(
|
||||
var/mob/dead/observer/observer = mob
|
||||
observer.ManualFollow(target)
|
||||
|
||||
/client/verb/stop_client_sounds()
|
||||
set name = "Stop Sounds"
|
||||
set category = "OOC"
|
||||
set desc = "Stop Current Sounds"
|
||||
GAME_VERB_DESC(/client, stop_client_sounds, "Stop Sounds", "Stop Current Sounds", "OOC")
|
||||
SEND_SOUND(usr, sound(null))
|
||||
tgui_panel?.stop_music()
|
||||
SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Stop Self Sounds"))
|
||||
|
||||
/client/verb/toggle_fullscreen()
|
||||
set name = "Toggle Fullscreen"
|
||||
set category = "OOC"
|
||||
GAME_VERB(/client, toggle_fullscreen, "Toggle Fullscreen", "OOC")
|
||||
|
||||
var/is_on = prefs.read_preference(/datum/preference/toggle/fullscreen_mode)
|
||||
prefs.write_preference(GLOB.preference_entries[/datum/preference/toggle/fullscreen_mode], !is_on)
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/client/verb/open_character_preferences()
|
||||
set category = "OOC"
|
||||
set name = "Open Character Preferences"
|
||||
set desc = "Open Character Preferences"
|
||||
GAME_VERB_DESC(/client, open_character_preferences, "Open Character Preferences", "Open Character Preferences", "OOC")
|
||||
|
||||
if(!prefs)
|
||||
return
|
||||
@@ -9,10 +6,7 @@
|
||||
prefs.update_static_data(usr)
|
||||
prefs.ui_interact(usr)
|
||||
|
||||
/client/verb/open_game_preferences()
|
||||
set category = "OOC"
|
||||
set name = "Open Game Preferences"
|
||||
set desc = "Open Game Preferences"
|
||||
GAME_VERB_DESC(/client, open_game_preferences, "Open Game Preferences", "Open Game Preferences", "OOC")
|
||||
|
||||
if(!prefs)
|
||||
return
|
||||
|
||||
@@ -2,9 +2,7 @@ GLOBAL_VAR_INIT(OOC_COLOR, null)//If this is null, use the CSS for OOC. Otherwis
|
||||
GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
|
||||
|
||||
///talking in OOC uses this
|
||||
/client/verb/ooc(msg as text)
|
||||
set name = VERB_OOC
|
||||
|
||||
GAME_VERB(/client, ooc, VERB_OOC, null, msg as text)
|
||||
if(GLOB.say_disabled) //This is here to try to identify lag problems
|
||||
to_chat(usr, span_danger("Speech is currently admin-disabled."))
|
||||
return
|
||||
@@ -148,13 +146,6 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
|
||||
else
|
||||
GLOB.dooc_allowed = !GLOB.dooc_allowed
|
||||
|
||||
/client/proc/set_ooc()
|
||||
set name = "Set Player OOC Color"
|
||||
set desc = "Modifies player OOC Color"
|
||||
set category = "Server"
|
||||
if(IsAdminAdvancedProcCall())
|
||||
return
|
||||
|
||||
ADMIN_VERB(set_ooc_color, R_FUN, "Set Player OOC Color", "Modifies the global OOC color.", ADMIN_CATEGORY_SERVER)
|
||||
var/newColor = tgui_color_picker(user, "Please select the new player OOC color.", "OOC color")
|
||||
if(isnull(newColor))
|
||||
@@ -164,13 +155,6 @@ ADMIN_VERB(set_ooc_color, R_FUN, "Set Player OOC Color", "Modifies the global OO
|
||||
log_admin("[key_name_admin(user)] has set the player ooc color to [new_color].")
|
||||
GLOB.OOC_COLOR = new_color
|
||||
|
||||
/client/proc/reset_ooc()
|
||||
set name = "Reset Player OOC Color"
|
||||
set desc = "Returns player OOC Color to default"
|
||||
set category = "Server"
|
||||
if(IsAdminAdvancedProcCall())
|
||||
return
|
||||
|
||||
ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC color to default.", ADMIN_CATEGORY_SERVER)
|
||||
if(tgui_alert(user, "Are you sure you want to reset the OOC color of all players?", "Reset Player OOC Color", list("Yes", "No")) != "Yes")
|
||||
return
|
||||
@@ -179,31 +163,20 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC
|
||||
GLOB.OOC_COLOR = null
|
||||
|
||||
//Checks admin notice
|
||||
/client/verb/admin_notice()
|
||||
set name = "Adminnotice"
|
||||
set category = "Admin"
|
||||
set desc = "Check the admin notice if it has been set"
|
||||
|
||||
GAME_VERB_DESC(/client, admin_notice, "Adminnotice", "Check the admin notice if it has been set", "Admin")
|
||||
if(GLOB.admin_notice)
|
||||
to_chat(src, "[span_boldnotice("Admin Notice:")]\n \t [GLOB.admin_notice]")
|
||||
else
|
||||
to_chat(src, span_notice("There are no admin notices at the moment."))
|
||||
|
||||
/client/verb/motd()
|
||||
set name = "MOTD"
|
||||
set category = "OOC"
|
||||
set desc ="Check the Message of the Day"
|
||||
|
||||
GAME_VERB_DESC(/client, motd, "MOTD", "Check the Message of the Day", "OOC")
|
||||
var/motd = global.config.motd
|
||||
if(motd)
|
||||
to_chat(src, "<span class='infoplain'><div class=\"motd\">[motd]</div></span>", handle_whitespace=FALSE)
|
||||
else
|
||||
to_chat(src, span_notice("The Message of the Day has not been set."))
|
||||
|
||||
/client/proc/self_notes()
|
||||
set name = "View Admin Remarks"
|
||||
set category = "OOC"
|
||||
set desc = "View the notes that admins have written about you"
|
||||
GAME_VERB_PROC_DESC(/client, self_notes, "View Admin Remarks", "View the notes that admins have written about you", "OOC")
|
||||
|
||||
if(!CONFIG_GET(flag/see_own_notes))
|
||||
to_chat(usr, span_notice("Sorry, that function is not enabled on this server."))
|
||||
@@ -211,10 +184,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC
|
||||
|
||||
browse_messages(null, usr.ckey, null, TRUE)
|
||||
|
||||
/client/proc/self_playtime()
|
||||
set name = "View tracked playtime"
|
||||
set category = "OOC"
|
||||
set desc = "View the amount of playtime for roles the server has tracked."
|
||||
GAME_VERB_PROC_DESC(/client, self_playtime, "View tracked playtime", "View the amount of playtime for roles the server has tracked.", "OOC")
|
||||
|
||||
if(!CONFIG_GET(flag/use_exp_tracking))
|
||||
to_chat(usr, span_notice("Sorry, tracking is currently disabled."))
|
||||
@@ -223,11 +193,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC
|
||||
new /datum/job_report_menu(src, usr)
|
||||
|
||||
// Ignore verb
|
||||
/client/verb/select_ignore()
|
||||
set name = "Ignore"
|
||||
set category = "OOC"
|
||||
set desc ="Ignore a player's messages on the OOC channel"
|
||||
|
||||
GAME_VERB_DESC(/client, select_ignore, "Ignore", "Ignore a player's messages on the OOC channel", "OOC")
|
||||
// Make a list to choose players from
|
||||
var/list/players = list()
|
||||
|
||||
@@ -305,11 +271,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC
|
||||
to_chat(src, span_infoplain("You are now ignoring [selection] on the OOC channel."))
|
||||
|
||||
// Unignore verb
|
||||
/client/verb/select_unignore()
|
||||
set name = "Unignore"
|
||||
set category = "OOC"
|
||||
set desc = "Stop ignoring a player's messages on the OOC channel"
|
||||
|
||||
GAME_VERB_DESC(/client, select_unignore, "Unignore", "Stop ignoring a player's messages on the OOC channel", "OOC")
|
||||
// Check if we've ignored any players
|
||||
if(!length(prefs.ignoring))
|
||||
// Express that we haven't ignored any players in chat
|
||||
@@ -342,25 +304,15 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC
|
||||
// Express that we've unignored the selected player in chat
|
||||
to_chat(src, span_infoplain("You are no longer ignoring [selection] on the OOC channel."))
|
||||
|
||||
/client/proc/show_previous_roundend_report()
|
||||
set name = "Your Last Round"
|
||||
set category = "OOC"
|
||||
set desc = "View the last round end report you've seen"
|
||||
GAME_VERB_PROC_DESC(/client, show_previous_roundend_report, "Your Last Round", "View the last round end report you've seen", "OOC")
|
||||
|
||||
SSticker.show_roundend_report(src, report_type = PERSONAL_LAST_ROUND)
|
||||
|
||||
/client/proc/show_servers_last_roundend_report()
|
||||
set name = "Server's Last Round"
|
||||
set category = "OOC"
|
||||
set desc = "View the last round end report from this server"
|
||||
GAME_VERB_PROC_DESC(/client, show_servers_last_roundend_report, "Server's Last Round", "View the last round end report from this server", "OOC")
|
||||
|
||||
SSticker.show_roundend_report(src, report_type = SERVER_LAST_ROUND)
|
||||
|
||||
/client/verb/fit_viewport()
|
||||
set name = "Fit Viewport"
|
||||
set category = "OOC"
|
||||
set desc = "Fit the width of the map window to match the viewport"
|
||||
|
||||
GAME_VERB_DESC(/client, fit_viewport, "Fit Viewport", "Fit the width of the map window to match the viewport", "OOC")
|
||||
// Fetch aspect ratio
|
||||
var/view_size = getviewsize(view)
|
||||
var/aspect_ratio = view_size[1] / view_size[2]
|
||||
@@ -439,11 +391,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC
|
||||
if(fully_created)
|
||||
INVOKE_ASYNC(src, VERB_REF(fit_viewport))
|
||||
|
||||
/client/verb/policy()
|
||||
set name = "Show Policy"
|
||||
set desc = "Show special server rules related to your current character."
|
||||
set category = "OOC"
|
||||
|
||||
GAME_VERB_DESC(/client, policy, "Show Policy", "Show special server rules related to your current character.", "OOC")
|
||||
//Collect keywords
|
||||
var/list/keywords = mob.get_policy_keywords()
|
||||
var/header = get_policy(POLICY_VERB_HEADER)
|
||||
@@ -462,33 +410,20 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC
|
||||
browser.set_content(policytext.Join(""))
|
||||
browser.open()
|
||||
|
||||
/client/verb/fix_stat_panel()
|
||||
set name = "Fix Stat Panel"
|
||||
set hidden = TRUE
|
||||
|
||||
GAME_VERB_HIDDEN(/client, fix_stat_panel, "Fix Stat Panel")
|
||||
init_verbs()
|
||||
|
||||
/client/proc/export_preferences()
|
||||
set name = "Export Preferences"
|
||||
set desc = "Export your current preferences to a file."
|
||||
set category = "OOC"
|
||||
GAME_VERB_PROC_DESC(/client, export_preferences, "Export Preferences", "Export your current preferences to a file.", "OOC")
|
||||
|
||||
ASSERT(prefs, "User attempted to export preferences while preferences were null!") // what the fuck
|
||||
|
||||
prefs.savefile.export_json_to_client(usr, ckey)
|
||||
|
||||
/client/verb/map_vote_tally_count()
|
||||
set name = "Show Map Vote Tallies"
|
||||
set desc = "View the current map vote tally counts."
|
||||
set category = "OOC"
|
||||
GAME_VERB_DESC(/client, map_vote_tally_count, "Show Map Vote Tallies", "View the current map vote tally counts.", "OOC")
|
||||
to_chat(mob, SSmap_vote.tally_printout)
|
||||
|
||||
|
||||
/client/verb/linkforumaccount()
|
||||
set category = "OOC"
|
||||
set name = "Link Forum Account"
|
||||
set desc = "Validates your byond account to your forum account. Required to post on the forums."
|
||||
|
||||
GAME_VERB_DESC(/client, linkforumaccount, "Link Forum Account", "Validates your byond account to your forum account. Required to post on the forums.", "OOC")
|
||||
var/uri = CONFIG_GET(string/forum_link_uri)
|
||||
if(!uri)
|
||||
to_chat(src, span_warning("This feature is disabled."))
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/client/verb/toggle_stat_panel()
|
||||
set name = "Toggle Stat Panel"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, toggle_stat_panel, "Toggle Stat Panel")
|
||||
|
||||
//Flip it
|
||||
prefs.write_preference(GLOB.preference_entries[/datum/preference/toggle/statpanel], !prefs.read_preference(/datum/preference/toggle/statpanel))
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/// Verb to simply kill yourself (in a very visual way to all players) in game! How family-friendly. Can be governed by a series of multiple checks (i.e. confirmation, is it allowed in this area, etc.) which are
|
||||
/// handled and called by the proc this verb invokes. It's okay to block this, because we typically always give mobs in-game the ability to Ghost out of their current mob irregardless of context. This, in contrast,
|
||||
/// can have as many different checks as you desire to prevent people from doing the deed to themselves.
|
||||
/mob/living/verb/suicide()
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/mob/living, suicide, "suicide")
|
||||
handle_suicide()
|
||||
|
||||
/// Actually handles the bare basics of the suicide process. Message type is the message we want to dispatch in the world regarding the suicide, using the defines in this file.
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
#define DEFAULT_WHO_CELLS_PER_ROW 4
|
||||
#define NO_ADMINS_ONLINE_MESSAGE "Adminhelps are also sent through TGS to services like IRC and Discord. If no admins are available in game, sending an adminhelp might still be noticed and responded to."
|
||||
|
||||
/client/verb/who()
|
||||
set name = "Who"
|
||||
set category = "OOC"
|
||||
GAME_VERB(/client, who, "Who", "OOC")
|
||||
|
||||
var/msg = ""
|
||||
|
||||
@@ -69,9 +67,7 @@
|
||||
msg += "<b>Total Players: [length(Lines)]</b>"
|
||||
to_chat(src, fieldset_block(span_bold("Current Players"), span_infoplain(msg), "boxed_message"), type = MESSAGE_TYPE_INFO)
|
||||
|
||||
/client/verb/adminwho()
|
||||
set category = "Admin"
|
||||
set name = "Adminwho"
|
||||
GAME_VERB(/client, adminwho, "Adminwho", "Admin")
|
||||
|
||||
var/list/lines = list()
|
||||
var/payload_string = generate_adminwho_string()
|
||||
|
||||
@@ -20,8 +20,7 @@
|
||||
flipped = FALSE
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/soft/verb/flipcap()
|
||||
set name = "Flip cap"
|
||||
GAME_VERB(/obj/item/clothing/head/soft, flipcap, "Flip cap", null)
|
||||
|
||||
flip(usr)
|
||||
|
||||
|
||||
@@ -134,9 +134,8 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/verb/halt()
|
||||
set name = "HALT"
|
||||
set src in usr
|
||||
GAME_VERB_SRC(/obj/item/clothing/mask/gas/sechailer, halt, usr, "HALT", null)
|
||||
|
||||
if(!isliving(usr) || !can_use(usr) || !COOLDOWN_FINISHED(src, hailer_cooldown))
|
||||
return
|
||||
if(broken_hailer)
|
||||
|
||||
@@ -45,9 +45,7 @@
|
||||
AddElement(/datum/element/adjust_fishing_difficulty, fishing_modifier)
|
||||
magpulse_fishing_modifier = fishing_modifier
|
||||
|
||||
/obj/item/clothing/shoes/magboots/verb/toggle()
|
||||
set name = "Toggle Magboots"
|
||||
set src in usr
|
||||
GAME_VERB_SRC(/obj/item/clothing/shoes/magboots, toggle, usr, "Toggle Magboots", null)
|
||||
|
||||
if(!can_use(usr))
|
||||
return
|
||||
|
||||
@@ -462,9 +462,7 @@
|
||||
|
||||
return all_accessories
|
||||
|
||||
/obj/item/clothing/under/verb/toggle()
|
||||
set name = "Adjust Suit Sensors"
|
||||
set src in usr
|
||||
GAME_VERB_SRC(/obj/item/clothing/under, toggle, usr, "Adjust Suit Sensors", null)
|
||||
var/mob/user_mob = usr
|
||||
if(!can_toggle_sensors(user_mob))
|
||||
return
|
||||
@@ -532,10 +530,7 @@
|
||||
return
|
||||
pop_accessory(user)
|
||||
|
||||
/obj/item/clothing/under/verb/jumpsuit_adjust()
|
||||
set name = "Adjust Jumpsuit Style"
|
||||
set category = null
|
||||
set src in usr
|
||||
GAME_VERB_SRC(/obj/item/clothing/under, jumpsuit_adjust, usr, "Adjust Jumpsuit Style", null)
|
||||
|
||||
if(!can_adjust)
|
||||
balloon_alert(usr, "can't be adjusted!")
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
// IF you have linked your account, this will trigger a verify of the user
|
||||
/client/verb/verify_in_discord()
|
||||
set category = "OOC"
|
||||
set name = "Verify Discord Account"
|
||||
set desc = "Verify your discord account with your BYOND account"
|
||||
GAME_VERB_DESC(/client, verify_in_discord, "Verify Discord Account", "Verify your discord account with your BYOND account", "OOC")
|
||||
|
||||
// Safety checks
|
||||
if(!CONFIG_GET(flag/sql_enabled))
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
// Verb to toggle restart notifications
|
||||
/client/verb/notify_restart()
|
||||
set category = "OOC"
|
||||
set name = "Notify Restart"
|
||||
set desc = "Notifies you on Discord when the server restarts."
|
||||
GAME_VERB_DESC(/client, notify_restart, "Notify Restart", "Notifies you on Discord when the server restarts.", "OOC")
|
||||
|
||||
// Safety checks
|
||||
if(!CONFIG_GET(flag/sql_enabled))
|
||||
|
||||
@@ -2,10 +2,7 @@ GLOBAL_LIST_EMPTY(escape_menus)
|
||||
|
||||
/// Opens the escape menu.
|
||||
/// Verb, hardcoded to Escape, set in the client skin.
|
||||
/client/verb/open_escape_menu()
|
||||
set name = "Open Escape Menu"
|
||||
set hidden = TRUE
|
||||
|
||||
GAME_VERB_HIDDEN(/client, open_escape_menu, "Open Escape Menu")
|
||||
var/current_escape_menu = GLOB.escape_menus[ckey]
|
||||
if (!isnull(current_escape_menu))
|
||||
qdel(current_escape_menu)
|
||||
|
||||
@@ -145,9 +145,8 @@
|
||||
. = ..()
|
||||
icon_state = panel_open ? "[base_icon_state]_open" : base_icon_state
|
||||
|
||||
/obj/machinery/gibber/verb/eject()
|
||||
set name = "Empty gibber"
|
||||
set src in oview(1)
|
||||
GAME_VERB_SRC(/obj/machinery/gibber, eject, oview(1), "Empty gibber", null)
|
||||
|
||||
if (usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED))
|
||||
return
|
||||
if(!usr.can_perform_action(src))
|
||||
|
||||
@@ -198,9 +198,8 @@
|
||||
processing = FALSE
|
||||
visible_message(span_notice("\The [src] finishes processing."))
|
||||
|
||||
/obj/machinery/processor/verb/eject()
|
||||
set name = "Eject Contents"
|
||||
set src in oview(1)
|
||||
GAME_VERB_SRC(/obj/machinery/processor, eject, oview(1), "Eject Contents", null)
|
||||
|
||||
if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED))
|
||||
return
|
||||
if(!usr.can_perform_action(src))
|
||||
|
||||
@@ -91,9 +91,7 @@
|
||||
/**
|
||||
* Verb for opening the existing interview, or if relevant creating a new interview if possible.
|
||||
*/
|
||||
/mob/dead/new_player/proc/open_interview()
|
||||
set name = "Open Interview"
|
||||
set category = "Interview"
|
||||
GAME_VERB_PROC(/mob/dead/new_player, open_interview, "Open Interview", "Interview")
|
||||
var/mob/dead/new_player/M = usr
|
||||
if (M?.client?.interviewee)
|
||||
var/datum/interview/I = GLOB.interviews.interview_for_client(M.client)
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// Clients aren't datums so we have to define these procs indpendently.
|
||||
// These verbs are called for all key press and release events
|
||||
/client/verb/keyDown(_key as text, mousepos_x as num, mousepos_y as num, sizex as num, sizey as num)
|
||||
set instant = TRUE
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN_INSTANT(/client, keyDown, "keyDown", _key as text, mousepos_x as num, mousepos_y as num, sizex as num, sizey as num)
|
||||
|
||||
client_keysend_amount += 1
|
||||
|
||||
@@ -82,9 +80,7 @@
|
||||
mob.focus?.key_down(_key, src, full_key)
|
||||
mob.update_mouse_pointer()
|
||||
|
||||
/client/verb/keyUp(_key as text, mousepos_x as num, mousepos_y as num, sizex as num, sizey as num)
|
||||
set instant = TRUE
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN_INSTANT(/client, keyUp, "keyUp", _key as text, mousepos_x as num, mousepos_y as num, sizex as num, sizey as num)
|
||||
|
||||
var/key_combo = key_combos_held[_key]
|
||||
if(key_combo)
|
||||
|
||||
@@ -22,7 +22,7 @@ INITIALIZE_IMMEDIATE(/mob/dead)
|
||||
prepare_huds()
|
||||
|
||||
if(length(CONFIG_GET(keyed_list/cross_server)))
|
||||
add_verb(src, /mob/dead/proc/server_hop)
|
||||
ASSIGN_GAME_VERB(src, /mob/dead, server_hop)
|
||||
set_focus(src)
|
||||
become_hearing_sensitive()
|
||||
log_mob_tag("TAG: [tag] CREATED: [key_name(src)] \[[src.type]\]")
|
||||
@@ -33,10 +33,7 @@ INITIALIZE_IMMEDIATE(/mob/dead)
|
||||
|
||||
#define SERVER_HOPPER_TRAIT "server_hopper"
|
||||
|
||||
/mob/dead/proc/server_hop()
|
||||
set category = "OOC"
|
||||
set name = "Server Hop"
|
||||
set desc= "Jump to the other server"
|
||||
GAME_VERB_PROC_DESC(/mob/dead, server_hop, "Server Hop", "Jump to the other server", "OOC")
|
||||
if(HAS_TRAIT(src, TRAIT_NO_TRANSFORM)) // in case the round is ending and a cinematic is already playing we don't wanna clash with that (yes i know)
|
||||
return
|
||||
var/list/our_id = CONFIG_GET(string/cross_comms_name)
|
||||
@@ -44,7 +41,7 @@ INITIALIZE_IMMEDIATE(/mob/dead)
|
||||
var/pick
|
||||
switch(length(csa))
|
||||
if(0)
|
||||
remove_verb(src, /mob/dead/proc/server_hop)
|
||||
UNASSIGN_GAME_VERB(src, /mob/dead, server_hop)
|
||||
to_chat(src, span_notice("Server Hop has been disabled."))
|
||||
if(1)
|
||||
pick = csa[1]
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
. = ..()
|
||||
|
||||
GLOB.new_player_list += src
|
||||
add_verb(src, /mob/dead/new_player/proc/reset_menu_hud)
|
||||
ASSIGN_GAME_VERB(src, /mob/dead/new_player, reset_menu_hud)
|
||||
|
||||
/mob/dead/new_player/Destroy()
|
||||
GLOB.new_player_list -= src
|
||||
@@ -356,13 +356,11 @@
|
||||
I.ui_interact(src)
|
||||
|
||||
// Add verb for re-opening the interview panel, fixing chat and re-init the verbs for the stat panel
|
||||
add_verb(src, /mob/dead/new_player/proc/open_interview)
|
||||
ASSIGN_GAME_VERB(src, /mob/dead/new_player, open_interview)
|
||||
add_verb(client, /client/verb/fix_tgui_panel)
|
||||
|
||||
///Resets the Lobby Menu HUD, recreating and reassigning it to the new player
|
||||
/mob/dead/new_player/proc/reset_menu_hud()
|
||||
set name = "Reset Lobby Menu HUD"
|
||||
set category = "OOC"
|
||||
GAME_VERB_PROC(/mob/dead/new_player, reset_menu_hud, "Reset Lobby Menu HUD", "OOC")
|
||||
var/mob/dead/new_player/new_player = usr
|
||||
if(!COOLDOWN_FINISHED(new_player, reset_hud_cooldown))
|
||||
to_chat(new_player, span_warning("You must wait <b>[DisplayTimeText(COOLDOWN_TIMELEFT(new_player, reset_hud_cooldown))]</b> before resetting the Lobby Menu HUD again!"))
|
||||
|
||||
@@ -306,10 +306,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
|
||||
/*
|
||||
This is the proc mobs get to turn into a ghost. Forked from ghostize due to compatibility issues.
|
||||
*/
|
||||
/mob/living/verb/ghost()
|
||||
set category = "OOC"
|
||||
set name = "Ghost"
|
||||
set desc = "Relinquish your life and enter the land of the dead."
|
||||
GAME_VERB_DESC(/mob/living, ghost, "Ghost", "Relinquish your life and enter the land of the dead.", "OOC")
|
||||
|
||||
if(stat != CONSCIOUS && stat != DEAD)
|
||||
succumb()
|
||||
@@ -323,10 +320,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
ghostize(FALSE) // FALSE parameter is so we can never re-enter our body. U ded.
|
||||
return TRUE
|
||||
|
||||
/mob/eye/verb/ghost()
|
||||
set category = "OOC"
|
||||
set name = "Ghost"
|
||||
set desc = "Relinquish your life and enter the land of the dead."
|
||||
GAME_VERB_DESC(/mob/eye, ghost, "Ghost", "Relinquish your life and enter the land of the dead.", "OOC")
|
||||
|
||||
var/response = tgui_alert(usr, "Are you sure you want to ghost? If you ghost whilst still alive you cannot re-enter your body!", "Confirm Ghost Observe", list("Ghost", "Stay in Body"))
|
||||
if(response != "Ghost")
|
||||
@@ -368,8 +362,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
if(new_area != ambience_tracked_area)
|
||||
update_ambience_area(new_area)
|
||||
|
||||
/mob/dead/observer/verb/reenter_corpse()
|
||||
set name = "Re-enter Corpse"
|
||||
GAME_VERB(/mob/dead/observer, reenter_corpse, "Re-enter Corpse", null)
|
||||
|
||||
if(!client)
|
||||
return
|
||||
@@ -390,8 +383,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
mind.current.client.init_verbs()
|
||||
return TRUE
|
||||
|
||||
/mob/dead/observer/verb/do_not_resuscitate()
|
||||
set name = "Do Not Resuscitate"
|
||||
GAME_VERB(/mob/dead/observer, do_not_resuscitate, "Do Not Resuscitate", null)
|
||||
|
||||
if(!can_reenter_corpse)
|
||||
to_chat(usr, span_warning("You're already stuck out of your body!"))
|
||||
@@ -445,8 +437,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
if(sound)
|
||||
SEND_SOUND(src, sound(sound))
|
||||
|
||||
/mob/dead/observer/verb/dead_tele()
|
||||
set name = "Teleport"
|
||||
GAME_VERB(/mob/dead/observer, dead_tele, "Teleport", null)
|
||||
|
||||
if(!isobserver(usr))
|
||||
to_chat(usr, span_warning("Not when you're not dead!"))
|
||||
@@ -473,13 +464,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
usr.abstract_move(pick(L))
|
||||
|
||||
/mob/dead/observer/verb/follow()
|
||||
set name = "Orbit"
|
||||
GAME_VERB(/mob/dead/observer, follow, "Orbit", null)
|
||||
|
||||
GLOB.orbit_menu.show(src)
|
||||
|
||||
/mob/dead/observer/verb/jumptomob() //Moves the ghost instead of just changing the ghosts's eye -Nodrak
|
||||
set name = "Jump to Mob"
|
||||
GAME_VERB(/mob/dead/observer, jumptomob, "Jump to Mob", null) //Moves the ghost instead of just changing the ghosts's eye -Nodrak
|
||||
|
||||
if(!isobserver(usr)) //Make sure they're an observer!
|
||||
return
|
||||
@@ -507,8 +496,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
else
|
||||
to_chat(source_mob, span_danger("This mob is not located in the game world."))
|
||||
|
||||
/mob/dead/observer/verb/change_view_range()
|
||||
set name = "View Range"
|
||||
GAME_VERB(/mob/dead/observer, change_view_range, "View Range", null)
|
||||
|
||||
if(SSlag_switch.measures[DISABLE_GHOST_ZOOM_TRAY] && !client?.holder)
|
||||
to_chat(usr, span_notice("That verb is currently globally disabled."))
|
||||
@@ -525,15 +513,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
else
|
||||
client.view_size.resetToDefault()
|
||||
|
||||
/mob/dead/observer/verb/toggle_ghostsee()
|
||||
set name = "Toggle Ghost Vision"
|
||||
GAME_VERB(/mob/dead/observer, toggle_ghostsee, "Toggle Ghost Vision", null)
|
||||
|
||||
toggle_ghost_hud_flag(GHOST_VISION)
|
||||
update_sight()
|
||||
to_chat(usr, span_boldnotice("You [(ghost_hud_flags & GHOST_VISION) ? "now" : "no longer"] have ghost vision."))
|
||||
|
||||
/mob/dead/observer/verb/toggle_darkness()
|
||||
set name = "Toggle Darkness"
|
||||
GAME_VERB(/mob/dead/observer, toggle_darkness, "Toggle Darkness", null)
|
||||
|
||||
switch(lighting_cutoff)
|
||||
if (LIGHTING_CUTOFF_VISIBLE)
|
||||
@@ -547,13 +533,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
update_sight()
|
||||
|
||||
/mob/dead/observer/verb/view_manifest()
|
||||
set name = "View Crew Manifest"
|
||||
GAME_VERB(/mob/dead/observer, view_manifest, "View Crew Manifest", null)
|
||||
|
||||
GLOB.manifest.ui_interact(src)
|
||||
|
||||
/mob/dead/observer/verb/observe()
|
||||
set name = "Observe"
|
||||
GAME_VERB(/mob/dead/observer, observe, "Observe", null)
|
||||
|
||||
if(!isobserver(usr) || HAS_TRAIT(src, TRAIT_NO_OBSERVE)) //Make sure they're an observer!
|
||||
return
|
||||
@@ -582,8 +566,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
do_observe(chosen_target)
|
||||
|
||||
/mob/dead/observer/verb/tray_view()
|
||||
set name = "T-ray scan"
|
||||
GAME_VERB(/mob/dead/observer, tray_view, "T-ray scan", null)
|
||||
|
||||
if(SSlag_switch.measures[DISABLE_GHOST_ZOOM_TRAY] && !client?.holder)
|
||||
to_chat(usr, span_notice("That verb is currently globally disabled."))
|
||||
@@ -591,8 +574,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
t_ray_scan(src)
|
||||
|
||||
/mob/dead/observer/verb/toggle_data_huds()
|
||||
set name = "Toggle Sec/Med/Diag HUD"
|
||||
GAME_VERB(/mob/dead/observer, toggle_data_huds, "Toggle Sec/Med/Diag HUD", null)
|
||||
|
||||
toggle_ghost_hud_flag(GHOST_DATA_HUDS)
|
||||
if(ghost_hud_flags & GHOST_DATA_HUDS)
|
||||
@@ -600,8 +582,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
else
|
||||
to_chat(src, span_notice("Data HUDs disabled."))
|
||||
|
||||
/mob/dead/observer/verb/toggle_health_scan()
|
||||
set name = "Toggle Health Scan"
|
||||
GAME_VERB(/mob/dead/observer, toggle_health_scan, "Toggle Health Scan", null)
|
||||
|
||||
toggle_ghost_hud_flag(GHOST_HEALTH)
|
||||
if(ghost_hud_flags & GHOST_HEALTH)
|
||||
@@ -609,8 +590,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
else
|
||||
to_chat(src, span_notice("Health scan disabled."))
|
||||
|
||||
/mob/dead/observer/verb/toggle_chem_scan()
|
||||
set name = "Toggle Chem Scan"
|
||||
GAME_VERB(/mob/dead/observer, toggle_chem_scan, "Toggle Chem Scan", null)
|
||||
|
||||
toggle_ghost_hud_flag(GHOST_CHEM)
|
||||
if(ghost_hud_flags & GHOST_CHEM)
|
||||
@@ -618,8 +598,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
else
|
||||
to_chat(src, span_notice("Chem scan disabled."))
|
||||
|
||||
/mob/dead/observer/verb/toggle_gas_scan()
|
||||
set name = "Toggle Gas Scan"
|
||||
GAME_VERB(/mob/dead/observer, toggle_gas_scan, "Toggle Gas Scan", null)
|
||||
|
||||
toggle_ghost_hud_flag(GHOST_GAS)
|
||||
if(ghost_hud_flags & GHOST_GAS)
|
||||
@@ -627,8 +606,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
else
|
||||
to_chat(src, span_notice("Gas scan disabled."))
|
||||
|
||||
/mob/dead/observer/verb/restore_ghost_appearance()
|
||||
set name = "Restore Ghost Character"
|
||||
GAME_VERB(/mob/dead/observer, restore_ghost_appearance, "Restore Ghost Character", null)
|
||||
|
||||
set_ghost_appearance()
|
||||
if(client?.prefs)
|
||||
@@ -688,9 +666,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
if (!isnull(client) && !isnull(client.eye))
|
||||
reset_perspective(null)
|
||||
|
||||
/mob/dead/observer/verb/add_view_range(input as num)
|
||||
set name = "Add View Range"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/mob/dead/observer, add_view_range, "Add View Range", input as num)
|
||||
|
||||
if(SSlag_switch.measures[DISABLE_GHOST_ZOOM_TRAY] && !client?.holder)
|
||||
to_chat(usr, span_notice("That verb is currently globally disabled."))
|
||||
@@ -989,15 +965,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
to_chat(G, message)
|
||||
GLOB.observer_default_invisibility = amount
|
||||
|
||||
/mob/dead/observer/proc/open_spawners_menu()
|
||||
set name = "Spawners Menu"
|
||||
GAME_VERB_PROC(/mob/dead/observer, open_spawners_menu, "Spawners Menu", null)
|
||||
if(!spawners_menu)
|
||||
spawners_menu = new(src)
|
||||
|
||||
spawners_menu.ui_interact(src)
|
||||
|
||||
/mob/dead/observer/proc/open_minigames_menu()
|
||||
set name = "Minigames Menu"
|
||||
GAME_VERB_PROC(/mob/dead/observer, open_minigames_menu, "Minigames Menu", null)
|
||||
if(!client)
|
||||
return
|
||||
if(!isobserver(src))
|
||||
|
||||
@@ -644,9 +644,7 @@
|
||||
qdel(item)
|
||||
return FALSE
|
||||
|
||||
/mob/verb/quick_equip()
|
||||
set name = "quick-equip"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/mob, quick_equip, "quick-equip")
|
||||
|
||||
DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(execute_quick_equip)))
|
||||
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
*
|
||||
* See [/mob/living/basic/drone/var/laws]
|
||||
*/
|
||||
/mob/living/basic/drone/verb/check_laws()
|
||||
set category = "Drone"
|
||||
set name = "Check Laws"
|
||||
GAME_VERB(/mob/living/basic/drone, check_laws, "Check Laws", "Drone")
|
||||
|
||||
to_chat(src, "<b>Drone Laws</b>")
|
||||
to_chat(src, laws)
|
||||
@@ -21,9 +19,7 @@
|
||||
*
|
||||
* Attaches area name to message
|
||||
*/
|
||||
/mob/living/basic/drone/verb/drone_ping()
|
||||
set category = "Drone"
|
||||
set name = "Drone ping"
|
||||
GAME_VERB(/mob/living/basic/drone, drone_ping, "Drone ping", "Drone")
|
||||
|
||||
var/alert_s = input(src,"Alert severity level","Drone ping",null) as null|anything in list("Low","Medium","High","Critical")
|
||||
|
||||
|
||||
@@ -259,12 +259,7 @@
|
||||
/obj/item/mmi/proc/replacement_ai_name()
|
||||
return brainmob.name
|
||||
|
||||
/obj/item/mmi/verb/Toggle_Listening()
|
||||
set name = "Toggle Listening"
|
||||
set desc = "Toggle listening channel on or off."
|
||||
set category = "MMI"
|
||||
set src = usr.loc
|
||||
set popup_menu = FALSE
|
||||
GAME_VERB_SRC_DESC(/obj/item/mmi, Toggle_Listening, usr.loc, "Toggle Listening", "Toggle listening channel on or off.", "MMI")
|
||||
|
||||
if(brainmob.stat)
|
||||
to_chat(brainmob, span_warning("Can't do that while incapacitated or dead!"))
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
)
|
||||
|
||||
/mob/living/carbon/alien/Initialize(mapload)
|
||||
add_verb(src, /mob/living/proc/mob_sleep)
|
||||
ASSIGN_GAME_VERB(src, /mob/living, mob_sleep)
|
||||
add_verb(src, /mob/living/proc/toggle_resting)
|
||||
|
||||
create_bodyparts() //initialize bodyparts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/carbon/human/Initialize(mapload)
|
||||
add_verb(src, /mob/living/proc/mob_sleep)
|
||||
ASSIGN_GAME_VERB(src, /mob/living, mob_sleep)
|
||||
add_verb(src, /mob/living/proc/toggle_resting)
|
||||
|
||||
icon_state = "" //Remove the inherent human icon that is visible on the map editor. We're rendering ourselves limb by limb, having it still be there results in a bug where the basic human icon appears below as south in all directions and generally looks nasty.
|
||||
|
||||
@@ -515,9 +515,7 @@
|
||||
|
||||
//mob verbs are a lot faster than object verbs
|
||||
//for more info on why this is not atom/pull, see examinate() in mob.dm
|
||||
/mob/living/verb/pulled(atom/movable/thing_pulled as mob|obj in oview(1))
|
||||
set name = "Pull"
|
||||
|
||||
GAME_VERB(/mob/living, pulled, "Pull", null, atom/movable/thing_pulled as mob|obj in oview(1))
|
||||
if(istype(thing_pulled) && Adjacent(thing_pulled))
|
||||
start_pulling(thing_pulled)
|
||||
|
||||
@@ -541,8 +539,7 @@
|
||||
log_message("points at [pointing_at]", LOG_EMOTE)
|
||||
visible_message(span_infoplain("[span_name("[src]")] points at [pointing_at]."), span_notice("You point at [pointing_at]."))
|
||||
|
||||
/mob/living/verb/succumb(whispered as num|null)
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/mob/living, succumb, "succumb", whispered as num|null)
|
||||
if (!CAN_SUCCUMB(src))
|
||||
if(HAS_TRAIT(src, TRAIT_SUCCUMB_OVERRIDE))
|
||||
if(whispered)
|
||||
@@ -600,9 +597,7 @@
|
||||
|
||||
// MOB PROCS //END
|
||||
|
||||
/mob/living/proc/mob_sleep()
|
||||
set name = "Sleep"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_PROC(/mob/living, mob_sleep, "Sleep", null)
|
||||
|
||||
if(IsSleeping())
|
||||
to_chat(src, span_warning("You are already sleeping!"))
|
||||
|
||||
@@ -8,9 +8,7 @@
|
||||
/// Images of the path created by navigate().
|
||||
var/list/navigation_images = list()
|
||||
|
||||
/mob/living/verb/navigate()
|
||||
set name = "Navigate"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/mob/living, navigate, "Navigate")
|
||||
|
||||
if(incapacitated)
|
||||
return
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
spark_system = new /datum/effect_system/basic/spark_spread(src, 5, FALSE)
|
||||
spark_system.attach(src)
|
||||
|
||||
add_verb(src, /mob/living/silicon/ai/proc/show_laws_verb)
|
||||
ASSIGN_GAME_VERB(src, /mob/living/silicon/ai, show_laws_verb)
|
||||
|
||||
aiMulti = new(src)
|
||||
aicamera = new/obj/item/camera/siliconcam/ai_camera(src)
|
||||
@@ -68,13 +68,11 @@
|
||||
deploy_action.Grant(src)
|
||||
|
||||
if(isturf(loc))
|
||||
add_verb(src, list(
|
||||
/mob/living/silicon/ai/proc/ai_network_change,
|
||||
/mob/living/silicon/ai/proc/ai_hologram_change,
|
||||
/mob/living/silicon/ai/proc/botcall,
|
||||
/mob/living/silicon/ai/proc/control_integrated_radio,
|
||||
/mob/living/silicon/ai/proc/set_automatic_say_channel,
|
||||
))
|
||||
ASSIGN_GAME_VERB(src, /mob/living/silicon/ai, ai_network_change)
|
||||
ASSIGN_GAME_VERB(src, /mob/living/silicon/ai, ai_hologram_change)
|
||||
ASSIGN_GAME_VERB(src, /mob/living/silicon/ai, botcall)
|
||||
ASSIGN_GAME_VERB(src, /mob/living/silicon/ai, control_integrated_radio)
|
||||
ASSIGN_GAME_VERB(src, /mob/living/silicon/ai, set_automatic_say_channel)
|
||||
|
||||
GLOB.ai_list += src
|
||||
GLOB.shuttle_caller_list += src
|
||||
@@ -224,10 +222,7 @@
|
||||
ai_display.emotion = emote
|
||||
ai_display.update()
|
||||
|
||||
/mob/living/silicon/ai/verb/pick_icon()
|
||||
set category = "AI Commands"
|
||||
set name = "Set AI Core Display"
|
||||
set desc = "Choose what appears on your AI core display"
|
||||
GAME_VERB_DESC(/mob/living/silicon/ai, pick_icon, "Set AI Core Display", "Choose what appears on your AI core display", "AI Commands")
|
||||
|
||||
if(incapacitated)
|
||||
to_chat(src, span_warning("You cannot access the core display controls in your current state."))
|
||||
@@ -241,10 +236,7 @@
|
||||
var/obj/item/aicard/card = loc
|
||||
card.update_appearance()
|
||||
|
||||
/mob/living/silicon/ai/verb/pick_status_display()
|
||||
set category = "AI Commands"
|
||||
set name = "Set AI Status Display"
|
||||
set desc = "Choose what appears on status displays around the station"
|
||||
GAME_VERB_DESC(/mob/living/silicon/ai, pick_status_display, "Set AI Status Display", "Choose what appears on status displays around the station", "AI Commands")
|
||||
|
||||
if(incapacitated)
|
||||
to_chat(src, span_warning("You cannot access the status display controls in your current state."))
|
||||
@@ -335,9 +327,7 @@
|
||||
/mob/living/silicon/ai/cancel_camera()
|
||||
view_core()
|
||||
|
||||
/mob/living/silicon/ai/verb/ai_camera_track()
|
||||
set name = "track"
|
||||
set hidden = TRUE //Don't display it on the verb lists. This verb exists purely so you can type "track Oldman Robustin" and follow his ass
|
||||
GAME_VERB_HIDDEN(/mob/living/silicon/ai, ai_camera_track, "track") //Don't display it on the verb lists. This verb exists purely so you can type "track Oldman Robustin" and follow his ass
|
||||
|
||||
ai_tracking_tool.track_input(src)
|
||||
|
||||
@@ -355,9 +345,7 @@
|
||||
if(eyeobj)
|
||||
eyeobj.glide_size = new_glide_size
|
||||
|
||||
/mob/living/silicon/ai/verb/toggle_anchor()
|
||||
set category = "AI Commands"
|
||||
set name = "Toggle Floor Bolts"
|
||||
GAME_VERB(/mob/living/silicon/ai, toggle_anchor, "Toggle Floor Bolts", "AI Commands")
|
||||
if(!isturf(loc)) // if their location isn't a turf
|
||||
return // stop
|
||||
if(stat == DEAD)
|
||||
@@ -517,10 +505,7 @@
|
||||
eyeobj.setLoc(get_turf(C))
|
||||
return TRUE
|
||||
|
||||
/mob/living/silicon/ai/proc/botcall()
|
||||
set category = "AI Commands"
|
||||
set name = "Access Robot Control"
|
||||
set desc = "Wirelessly control various automatic robots."
|
||||
GAME_VERB_PROC_DESC(/mob/living/silicon/ai, botcall, "Access Robot Control", "Wirelessly control various automatic robots.", "AI Commands")
|
||||
|
||||
if(!robot_control)
|
||||
robot_control = new(src)
|
||||
@@ -574,9 +559,7 @@
|
||||
//Replaces /mob/living/silicon/ai/verb/change_network() in ai.dm & camera.dm
|
||||
//Adds in /mob/living/silicon/ai/proc/ai_network_change() instead
|
||||
//Addition by Mord_Sith to define AI's network change ability
|
||||
/mob/living/silicon/ai/proc/ai_network_change()
|
||||
set category = "AI Commands"
|
||||
set name = "Jump To Network"
|
||||
GAME_VERB_PROC(/mob/living/silicon/ai, ai_network_change, "Jump To Network", "AI Commands")
|
||||
ai_tracking_tool.reset_tracking()
|
||||
var/cameralist[0]
|
||||
|
||||
@@ -617,10 +600,7 @@
|
||||
//End of code by Mord_Sith
|
||||
|
||||
//I am the icon meister. Bow fefore me. //>fefore
|
||||
/mob/living/silicon/ai/proc/ai_hologram_change()
|
||||
set name = "Change Hologram"
|
||||
set desc = "Change the default hologram available to AI to something else."
|
||||
set category = "AI Commands"
|
||||
GAME_VERB_PROC_DESC(/mob/living/silicon/ai, ai_hologram_change, "Change Hologram", "Change the default hologram available to AI to something else.", "AI Commands")
|
||||
|
||||
if(incapacitated)
|
||||
return
|
||||
@@ -764,10 +744,7 @@
|
||||
C.Togglelight(1)
|
||||
lit_cameras |= C
|
||||
|
||||
/mob/living/silicon/ai/proc/control_integrated_radio()
|
||||
set name = "Transceiver Settings"
|
||||
set desc = "Allows you to change settings of your radio."
|
||||
set category = "AI Commands"
|
||||
GAME_VERB_PROC_DESC(/mob/living/silicon/ai, control_integrated_radio, "Transceiver Settings", "Allows you to change settings of your radio.", "AI Commands")
|
||||
|
||||
if(incapacitated)
|
||||
return
|
||||
@@ -780,10 +757,7 @@
|
||||
if(radio)
|
||||
radio.make_syndie()
|
||||
|
||||
/mob/living/silicon/ai/proc/set_automatic_say_channel()
|
||||
set name = "Set Auto Announce Mode"
|
||||
set desc = "Modify the default radio setting for your automatic announcements."
|
||||
set category = "AI Commands"
|
||||
GAME_VERB_PROC_DESC(/mob/living/silicon/ai, set_automatic_say_channel, "Set Auto Announce Mode", "Modify the default radio setting for your automatic announcements.", "AI Commands")
|
||||
|
||||
if(incapacitated)
|
||||
return
|
||||
@@ -981,10 +955,7 @@
|
||||
playsound(get_turf(src), 'sound/machines/ding.ogg', 50, TRUE, ignore_walls = FALSE)
|
||||
to_chat(src, "Hack complete. [apc] is now under your exclusive control.")
|
||||
|
||||
/mob/living/silicon/ai/verb/deploy_to_shell()
|
||||
set category = "AI Commands"
|
||||
set desc = "Transfer to an available remote body."
|
||||
set name = "Deploy to Shell"
|
||||
GAME_VERB_DESC(/mob/living/silicon/ai, deploy_to_shell, "Deploy to Shell", "Transfer to an available remote body.", "AI Commands")
|
||||
|
||||
select_shell()
|
||||
|
||||
|
||||
@@ -68,11 +68,7 @@
|
||||
// Make sure that the code compiles with AI_VOX undefined
|
||||
#ifdef AI_VOX
|
||||
#define VOX_DELAY 600
|
||||
/mob/living/silicon/ai/verb/announcement_help()
|
||||
|
||||
set name = "Announcement Help"
|
||||
set desc = "Display a list of vocal words to announce to the crew."
|
||||
set category = "AI Commands"
|
||||
GAME_VERB_DESC(/mob/living/silicon/ai, announcement_help, "Announcement Help", "Display a list of vocal words to announce to the crew.", "AI Commands")
|
||||
|
||||
if(incapacitated)
|
||||
return
|
||||
|
||||
@@ -211,9 +211,7 @@
|
||||
else
|
||||
eyeobj.RemoveInvisibility(type)
|
||||
|
||||
/mob/living/silicon/ai/verb/toggle_acceleration()
|
||||
set category = "AI Commands"
|
||||
set name = "Toggle Camera Acceleration"
|
||||
GAME_VERB(/mob/living/silicon/ai, toggle_acceleration, "Toggle Camera Acceleration", "AI Commands")
|
||||
|
||||
if(incapacitated)
|
||||
return
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
|
||||
/mob/living/silicon/ai/proc/show_laws_verb()
|
||||
set category = "AI Commands"
|
||||
set name = "Show Laws"
|
||||
set desc = "Check what your laws are privately. \
|
||||
Also ensures all synced cyborgs are up to date with your laws, reminds them of your laws."
|
||||
GAME_VERB_PROC_DESC(/mob/living/silicon/ai, show_laws_verb, "Show Laws", "Check what your laws are privately. Also ensures all synced cyborgs are up to date with your laws, reminds them of your laws.", "AI Commands")
|
||||
if(usr.stat == DEAD)
|
||||
return //won't work if dead
|
||||
src.show_laws()
|
||||
|
||||
+7
-22
@@ -199,9 +199,7 @@
|
||||
/**
|
||||
* Some kind of debug verb that gives atmosphere environment details
|
||||
*/
|
||||
/mob/proc/Cell()
|
||||
set category = "Admin"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_PROC(/mob, Cell, "Cell", "Admin")
|
||||
|
||||
if(!loc)
|
||||
return
|
||||
@@ -545,8 +543,7 @@
|
||||
* [this byond forum post](https://secure.byond.com/forum/?post=1326139&page=2#comment8198716)
|
||||
* for why this isn't atom/verb/examine()
|
||||
*/
|
||||
/mob/verb/examinate(atom/examinify as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why
|
||||
set name = "Examine"
|
||||
GAME_VERB(/mob, examinate, "Examine", null, atom/examinify as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why
|
||||
|
||||
DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(run_examinate), examinify))
|
||||
|
||||
@@ -808,9 +805,7 @@
|
||||
*
|
||||
* Only works if flag/allow_respawn is allowed in config
|
||||
*/
|
||||
/mob/verb/abandon_mob()
|
||||
set name = "Respawn"
|
||||
set category = "OOC"
|
||||
GAME_VERB(/mob, abandon_mob, "Respawn", "OOC")
|
||||
|
||||
switch(CONFIG_GET(flag/allow_respawn))
|
||||
if(RESPAWN_FLAG_NEW_CHARACTER)
|
||||
@@ -876,31 +871,21 @@
|
||||
/**
|
||||
* Sometimes helps if the user is stuck in another perspective or camera
|
||||
*/
|
||||
/mob/verb/cancel_camera()
|
||||
set name = "Cancel Camera View"
|
||||
set category = "OOC"
|
||||
GAME_VERB(/mob, cancel_camera, "Cancel Camera View", "OOC")
|
||||
reset_perspective(null)
|
||||
|
||||
/**
|
||||
* Helpful for when a players uplink window gets glitched to above their screen.
|
||||
* preventing them from moving the UPLINK window.
|
||||
*/
|
||||
/mob/verb/reset_ui_positions_for_mob()
|
||||
set name = "Reset UI Positions"
|
||||
set category = "OOC"
|
||||
GAME_VERB(/mob, reset_ui_positions_for_mob, "Reset UI Positions", "OOC")
|
||||
SStgui.reset_ui_position(src)
|
||||
|
||||
//suppress the .click/dblclick macros so people can't use them to identify the location of items or aimbot
|
||||
/mob/verb/DisClick(argu = null as anything, sec = "" as text, number1 = 0 as num , number2 = 0 as num)
|
||||
set name = ".click"
|
||||
set hidden = TRUE
|
||||
set category = null
|
||||
GAME_VERB_HIDDEN(/mob, DisClick, ".click", argu = null as anything, sec = "" as text, number1 = 0 as num , number2 = 0 as num)
|
||||
return
|
||||
|
||||
/mob/verb/DisDblClick(argu = null as anything, sec = "" as text, number1 = 0 as num , number2 = 0 as num)
|
||||
set name = ".dblclick"
|
||||
set hidden = TRUE
|
||||
set category = null
|
||||
GAME_VERB_HIDDEN(/mob, DisDblClick, ".dblclick", argu = null as anything, sec = "" as text, number1 = 0 as num , number2 = 0 as num)
|
||||
return
|
||||
|
||||
/// Adds this list to the output to the stat browser
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
*
|
||||
* This is a hidden verb, likely for binding with winset for hotkeys
|
||||
*/
|
||||
/client/verb/drop_item()
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, drop_item, "drop item")
|
||||
if(!iscyborg(mob) && mob.stat == CONSCIOUS)
|
||||
mob.dropItemToGround(mob.get_active_held_item())
|
||||
return
|
||||
@@ -403,9 +402,7 @@
|
||||
*/
|
||||
|
||||
///Hidden verb to cycle through head zone with repeated presses, head - eyes - mouth. Bound to 8
|
||||
/client/verb/body_toggle_head()
|
||||
set name = "body-toggle-head"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_toggle_head, "body-toggle-head")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -423,9 +420,7 @@
|
||||
selector.set_selected_zone(next_in_line, mob)
|
||||
|
||||
///Hidden verb to target the head, unbound by default.
|
||||
/client/verb/body_head()
|
||||
set name = "body-head"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_head, "body-head")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -434,9 +429,7 @@
|
||||
selector.set_selected_zone(BODY_ZONE_HEAD, mob)
|
||||
|
||||
///Hidden verb to target the eyes, bound to 7
|
||||
/client/verb/body_eyes()
|
||||
set name = "body-eyes"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_eyes, "body-eyes")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -445,9 +438,7 @@
|
||||
selector.set_selected_zone(BODY_ZONE_PRECISE_EYES, mob)
|
||||
|
||||
///Hidden verb to target the mouth, bound to 9
|
||||
/client/verb/body_mouth()
|
||||
set name = "body-mouth"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_mouth, "body-mouth")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -456,9 +447,7 @@
|
||||
selector.set_selected_zone(BODY_ZONE_PRECISE_MOUTH, mob)
|
||||
|
||||
///Hidden verb to target the right arm, bound to 4
|
||||
/client/verb/body_r_arm()
|
||||
set name = "body-r-arm"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_r_arm, "body-r-arm")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -467,9 +456,7 @@
|
||||
selector.set_selected_zone(BODY_ZONE_R_ARM, mob)
|
||||
|
||||
///Hidden verb to target the chest, bound to 5
|
||||
/client/verb/body_chest()
|
||||
set name = "body-chest"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_chest, "body-chest")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -478,9 +465,7 @@
|
||||
selector.set_selected_zone(BODY_ZONE_CHEST, mob)
|
||||
|
||||
///Hidden verb to target the left arm, bound to 6
|
||||
/client/verb/body_l_arm()
|
||||
set name = "body-l-arm"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_l_arm, "body-l-arm")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -489,9 +474,7 @@
|
||||
selector.set_selected_zone(BODY_ZONE_L_ARM, mob)
|
||||
|
||||
///Hidden verb to target the right leg, bound to 1
|
||||
/client/verb/body_r_leg()
|
||||
set name = "body-r-leg"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_r_leg, "body-r-leg")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -500,9 +483,7 @@
|
||||
selector.set_selected_zone(BODY_ZONE_R_LEG, mob)
|
||||
|
||||
///Hidden verb to target the groin, bound to 2
|
||||
/client/verb/body_groin()
|
||||
set name = "body-groin"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_groin, "body-groin")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -511,9 +492,7 @@
|
||||
selector.set_selected_zone(BODY_ZONE_PRECISE_GROIN, mob)
|
||||
|
||||
///Hidden verb to target the left leg, bound to 3
|
||||
/client/verb/body_l_leg()
|
||||
set name = "body-l-leg"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, body_l_leg, "body-l-leg")
|
||||
|
||||
if(!check_has_body_select())
|
||||
return
|
||||
@@ -522,10 +501,7 @@
|
||||
selector.set_selected_zone(BODY_ZONE_L_LEG, mob)
|
||||
|
||||
///Verb to toggle the walk or run status
|
||||
/client/verb/toggle_walk_run()
|
||||
set name = "toggle-walk-run"
|
||||
set hidden = TRUE
|
||||
set instant = TRUE
|
||||
GAME_VERB_HIDDEN_INSTANT(/client, toggle_walk_run, "toggle-walk-run")
|
||||
if(isliving(mob))
|
||||
var/mob/living/user_mob = mob
|
||||
user_mob.toggle_move_intent()
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
//Speech verbs.
|
||||
|
||||
///what clients use to speak. when you type a message into the chat bar in say mode, this is the first thing that goes off serverside.
|
||||
/mob/verb/say_verb(message as text)
|
||||
set name = VERB_SAY
|
||||
GAME_VERB(/mob, say_verb, VERB_SAY, null, message as text)
|
||||
|
||||
if(GLOB.say_disabled) //This is here to try to identify lag problems
|
||||
to_chat(usr, span_danger("Speech is currently admin-disabled."))
|
||||
@@ -14,8 +13,7 @@
|
||||
QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, TYPE_PROC_REF(/atom/movable, say), message), SSspeech_controller)
|
||||
|
||||
///Whisper verb
|
||||
/mob/verb/whisper_verb(message as text)
|
||||
set name = VERB_WHISPER
|
||||
GAME_VERB(/mob, whisper_verb, VERB_WHISPER, null, message as text)
|
||||
|
||||
if(GLOB.say_disabled) //This is here to try to identify lag problems
|
||||
to_chat(usr, span_danger("Speech is currently admin-disabled."))
|
||||
@@ -35,8 +33,7 @@
|
||||
say(message, language = language)
|
||||
|
||||
///The me emote verb
|
||||
/mob/verb/me_verb(message as text)
|
||||
set name = VERB_ME
|
||||
GAME_VERB(/mob, me_verb, VERB_ME, null, message as text)
|
||||
|
||||
if(GLOB.say_disabled) //This is here to try to identify lag problems
|
||||
to_chat(usr, span_danger("Speech is currently admin-disabled."))
|
||||
|
||||
@@ -70,9 +70,7 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/modular_computer/laptop/verb/open_computer()
|
||||
set name = "Toggle Open"
|
||||
set src in view(1)
|
||||
GAME_VERB_SRC(/obj/item/modular_computer/laptop, open_computer, view(1), "Toggle Open", null)
|
||||
|
||||
try_toggle_open(usr)
|
||||
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
/client/proc/makepAI(turf/target in GLOB.mob_list)
|
||||
set category = "Admin.Fun"
|
||||
set name = "Make pAI"
|
||||
set desc = "Specify a location to spawn a pAI device, then specify a key to play that pAI"
|
||||
|
||||
ADMIN_VERB(makepAI, R_FUN, "Make pAI", "Specify a location to spawn a pAI device, then specify a key to play that pAI", ADMIN_CATEGORY_FUN, turf/target in GLOB.mob_list)
|
||||
var/list/available = list()
|
||||
for(var/mob/player as anything in GLOB.player_list)
|
||||
if(player.client && player.key)
|
||||
available.Add(player)
|
||||
var/mob/choice = tgui_input_list(usr, "Choose a player to play the pAI", "Spawn pAI", sort_names(available))
|
||||
var/mob/choice = tgui_input_list(user, "Choose a player to play the pAI", "Spawn pAI", sort_names(available))
|
||||
if(isnull(choice))
|
||||
return
|
||||
|
||||
@@ -16,7 +12,7 @@
|
||||
return
|
||||
|
||||
if(!isobserver(choice))
|
||||
var/confirm = tgui_alert(usr, "[choice.key] isn't ghosting right now. Are you sure you want to yank them out of their body and place them in this pAI?", "Spawn pAI Confirmation", list("Yes", "No"))
|
||||
var/confirm = tgui_alert(user, "[choice.key] isn't ghosting right now. Are you sure you want to yank them out of their body and place them in this pAI?", "Spawn pAI Confirmation", list("Yes", "No"))
|
||||
if(confirm != "Yes")
|
||||
return
|
||||
var/obj/item/pai_card/card = new(target)
|
||||
@@ -26,8 +22,8 @@
|
||||
pai.real_name = pai.name
|
||||
pai.PossessByPlayer(choice.key)
|
||||
card.set_personality(pai)
|
||||
if(SSpai.candidates[key])
|
||||
SSpai.candidates -= key
|
||||
if(SSpai.candidates[user.key])
|
||||
SSpai.candidates -= user.key
|
||||
BLACKBOX_LOG_ADMIN_VERB("Make pAI")
|
||||
|
||||
/**
|
||||
|
||||
@@ -325,9 +325,7 @@
|
||||
icon_state = initial(icon_state)
|
||||
return ..()
|
||||
|
||||
/obj/item/paper/verb/rename()
|
||||
set name = "Rename paper"
|
||||
set src in usr
|
||||
GAME_VERB_SRC(/obj/item/paper, rename, usr, "Rename paper", null)
|
||||
|
||||
if(!usr.can_read(src) || usr.is_blind() || INCAPACITATED_IGNORING(usr, INCAPABLE_RESTRAINTS|INCAPABLE_GRAB) || (isobserver(usr) && !isAdminGhostAI(usr)))
|
||||
return
|
||||
|
||||
@@ -114,9 +114,7 @@
|
||||
+ "</body></html>", "window=photo_showing;size=[scribble ? "480x580" : "480x480"]")
|
||||
onclose(user, "[name]")
|
||||
|
||||
/obj/item/photo/verb/rename()
|
||||
set name = "Rename photo"
|
||||
set src in usr
|
||||
GAME_VERB_SRC(/obj/item/photo, rename, usr, "Rename photo", null)
|
||||
|
||||
var/n_name = tgui_input_text(usr, "What would you like to label the photo?", "Photo Labelling", max_length = MAX_NAME_LEN)
|
||||
//loc.loc check is for making possible renaming photos in clipboards
|
||||
|
||||
@@ -106,8 +106,7 @@
|
||||
*
|
||||
* overridden here and in /mob/dead/observer for different point span classes and sanity checks
|
||||
*/
|
||||
/mob/verb/pointed(atom/A as mob|obj|turf in view(client.view, src))
|
||||
set name = "Point To"
|
||||
GAME_VERB(/mob, pointed, "Point To", null, atom/A as mob|obj|turf in view(client.view, src))
|
||||
|
||||
if(isnull(A) || istype(A, /obj/effect/temp_visual/point) || isarea(A))
|
||||
return FALSE
|
||||
|
||||
@@ -57,8 +57,7 @@
|
||||
if(play_click)
|
||||
playsound(src, 'sound/items/weapons/gun/general/ballistic_click.ogg', fire_sound_volume, vary_fire_sound, frequency = click_frequency_to_use)
|
||||
|
||||
/obj/item/gun/ballistic/revolver/verb/spin()
|
||||
set name = "Spin Chamber"
|
||||
GAME_VERB(/obj/item/gun/ballistic/revolver, spin, "Spin Chamber", null)
|
||||
var/mob/user = usr
|
||||
|
||||
if(user.stat || !in_range(user, src))
|
||||
|
||||
@@ -137,9 +137,8 @@
|
||||
current_range = spray_range
|
||||
to_chat(user, span_notice("You switch the nozzle setting to [stream_mode ? "\"stream\"":"\"spray\""]."))
|
||||
|
||||
/obj/item/reagent_containers/spray/verb/empty()
|
||||
set name = "Empty Spray Bottle"
|
||||
set src in usr
|
||||
GAME_VERB_SRC(/obj/item/reagent_containers/spray, empty, usr, "Empty Spray Bottle", null)
|
||||
|
||||
if(usr.incapacitated)
|
||||
return
|
||||
if (tgui_alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", list("Yes", "No")) != "Yes")
|
||||
|
||||
@@ -168,10 +168,7 @@
|
||||
return
|
||||
|
||||
// The IC tab was removed recently as of commenting. This should probably be adjusted.
|
||||
/mob/eye/imaginary_friend/dream_projection/verb/stop_projection()
|
||||
set category = "IC"
|
||||
set name = "Stop Projection"
|
||||
set desc = "Stop astrally projecting and return to your body."
|
||||
GAME_VERB_DESC(/mob/eye/imaginary_friend/dream_projection, stop_projection, "Stop Projection", "Stop astrally projecting and return to your body.", "IC")
|
||||
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -183,10 +183,7 @@
|
||||
*
|
||||
* required uiref ref The UI that was closed.
|
||||
*/
|
||||
/client/verb/uiclose(window_id as text)
|
||||
// Name the verb, and hide it from the user panel.
|
||||
set name = "uiclose"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, uiclose, "uiclose", window_id as text)
|
||||
var/mob/user = src?.mob
|
||||
if(!user)
|
||||
return
|
||||
|
||||
@@ -8,9 +8,7 @@
|
||||
/**
|
||||
* tgui panel / chat troubleshooting verb
|
||||
*/
|
||||
/client/verb/fix_tgui_panel()
|
||||
set name = "Fix chat"
|
||||
set category = "OOC"
|
||||
GAME_VERB(/client, fix_tgui_panel, "Fix chat", "OOC")
|
||||
var/action
|
||||
log_tgui(src, "Started fixing.", context = "verb/fix_tgui_panel")
|
||||
|
||||
@@ -33,9 +31,7 @@
|
||||
// Force show the panel to see if there are any errors
|
||||
winset(src, OUTPUT_SELECTOR_LEGACY_OUTPUT_SELECTOR, "left=output_browser")
|
||||
|
||||
/client/verb/refresh_tgui()
|
||||
set name = "Refresh TGUI"
|
||||
set category = "OOC"
|
||||
GAME_VERB(/client, refresh_tgui, "Refresh TGUI", "OOC")
|
||||
|
||||
for(var/window_id in tgui_windows)
|
||||
var/datum/tgui_window/window = tgui_windows[window_id]
|
||||
|
||||
+9
-32
@@ -1,8 +1,5 @@
|
||||
//Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs.
|
||||
/client/verb/wiki()
|
||||
set name = "wiki"
|
||||
set desc = "Brings you to the Wiki"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, wiki, "wiki")
|
||||
|
||||
var/wikiurl = CONFIG_GET(string/wikiurl)
|
||||
if(!wikiurl)
|
||||
@@ -21,10 +18,7 @@
|
||||
output += "?title=Special%3ASearch&profile=default&search=[query]"
|
||||
DIRECT_OUTPUT(src, link(output))
|
||||
|
||||
/client/verb/forum()
|
||||
set name = "forum"
|
||||
set desc = "Visit the forum."
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, forum, "forum")
|
||||
|
||||
var/forumurl = CONFIG_GET(string/forumurl)
|
||||
if(!forumurl)
|
||||
@@ -32,10 +26,7 @@
|
||||
return
|
||||
DIRECT_OUTPUT(src, link(forumurl))
|
||||
|
||||
/client/verb/rules()
|
||||
set name = "rules"
|
||||
set desc = "Show Server Rules."
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, rules, "rules")
|
||||
|
||||
var/rulesurl = CONFIG_GET(string/rulesurl)
|
||||
if(!rulesurl)
|
||||
@@ -43,10 +34,7 @@
|
||||
return
|
||||
DIRECT_OUTPUT(src, link(rulesurl))
|
||||
|
||||
/client/verb/github()
|
||||
set name = "github"
|
||||
set desc = "Visit Github"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, github, "github")
|
||||
|
||||
var/githuburl = CONFIG_GET(string/githuburl)
|
||||
if(!githuburl)
|
||||
@@ -54,10 +42,7 @@
|
||||
return
|
||||
DIRECT_OUTPUT(src, link(githuburl))
|
||||
|
||||
/client/verb/config()
|
||||
set name = "config"
|
||||
set desc = "View the server configuration files."
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, config, "config")
|
||||
|
||||
var/configurl = CONFIG_GET(string/configurl)
|
||||
if(!configurl)
|
||||
@@ -65,9 +50,7 @@
|
||||
return
|
||||
DIRECT_OUTPUT(src, link(configurl))
|
||||
|
||||
/client/verb/reportissue()
|
||||
set name = "report-issue"
|
||||
set desc = "Report an issue"
|
||||
GAME_VERB_DESC(/client, reportissue, "report-issue", "Report an issue", null)
|
||||
|
||||
var/githuburl = CONFIG_GET(string/githuburl)
|
||||
if(!githuburl)
|
||||
@@ -109,9 +92,7 @@
|
||||
|
||||
DIRECT_OUTPUT(src, link(jointext(concatable, "")))
|
||||
|
||||
/client/verb/changelog()
|
||||
set name = "Changelog"
|
||||
set category = "OOC"
|
||||
GAME_VERB(/client, changelog, "Changelog", "OOC")
|
||||
|
||||
if(!GLOB.changelog_tgui)
|
||||
GLOB.changelog_tgui = new /datum/changelog()
|
||||
@@ -121,18 +102,14 @@
|
||||
prefs.lastchangelog = GLOB.changelog_hash
|
||||
prefs.save_preferences()
|
||||
|
||||
/client/verb/hotkeys_help()
|
||||
set name = "Hotkeys Help"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, hotkeys_help, "Hotkeys Help")
|
||||
|
||||
if(!GLOB.hotkeys_tgui)
|
||||
GLOB.hotkeys_tgui = new /datum/hotkeys_help()
|
||||
|
||||
GLOB.hotkeys_tgui.ui_interact(mob)
|
||||
|
||||
/client/verb/emote_panel()
|
||||
set name = "Emote Panel"
|
||||
set hidden = TRUE
|
||||
GAME_VERB_HIDDEN(/client, emote_panel, "Emote Panel")
|
||||
|
||||
if(!isliving(mob))
|
||||
to_chat(mob, span_notice("You can only use this while you're alive!"))
|
||||
|
||||
@@ -275,6 +275,7 @@
|
||||
#include "code\__DEFINES\unit_tests.dm"
|
||||
#include "code\__DEFINES\uplink.dm"
|
||||
#include "code\__DEFINES\vehicles.dm"
|
||||
#include "code\__DEFINES\verb.dm"
|
||||
#include "code\__DEFINES\verb_manager.dm"
|
||||
#include "code\__DEFINES\visual_helpers.dm"
|
||||
#include "code\__DEFINES\vv.dm"
|
||||
@@ -782,6 +783,7 @@
|
||||
#include "code\controllers\subsystem\unplanned_ai_idle_controllers.dm"
|
||||
#include "code\controllers\subsystem\unplanned_controllers.dm"
|
||||
#include "code\controllers\subsystem\verb_manager.dm"
|
||||
#include "code\controllers\subsystem\verbs.dm"
|
||||
#include "code\controllers\subsystem\vis_overlays.dm"
|
||||
#include "code\controllers\subsystem\vote.dm"
|
||||
#include "code\controllers\subsystem\wardrobe.dm"
|
||||
@@ -901,6 +903,7 @@
|
||||
#include "code\datums\stock_market_events.dm"
|
||||
#include "code\datums\tgs_event_handler.dm"
|
||||
#include "code\datums\verb_callbacks.dm"
|
||||
#include "code\datums\verb_metadata.dm"
|
||||
#include "code\datums\view.dm"
|
||||
#include "code\datums\visual_data.dm"
|
||||
#include "code\datums\voice_of_god_command.dm"
|
||||
|
||||
@@ -158,6 +158,13 @@ if $grep '^/[\w/]\S+\(.*(var/|, ?var/.*).*\)' "${code_files[@]}"; then
|
||||
st=1
|
||||
fi;
|
||||
|
||||
part "manual verb definition"
|
||||
if $grep '\tset\s*(name|desc|category|hidden|popup_menu|instant)\s*=\s*(.*)\s' "${code_files[@]}" -g '!code/__DEFINES/**' -g '!code/__HELPERS/**' -g '!tools/**'; then
|
||||
echo
|
||||
echo -e "${RED}ERROR: Found a manual verb attribute set. Use GAME_VERB() or ADMIN_VERB() instead.${NC}"
|
||||
st=1
|
||||
fi;
|
||||
|
||||
part "improperly pathed static lists"
|
||||
if $grep -i 'var/list/static/.*' "${code_files[@]}"; then
|
||||
echo
|
||||
|
||||
Reference in New Issue
Block a user