mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-09 16:12:17 +00:00
[MIRROR] missing VV options (#11180)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
2655eddc8e
commit
668bc1e4e9
@@ -114,6 +114,7 @@
|
||||
|
||||
// /obj
|
||||
#define VV_HK_OSAY "osay"
|
||||
#define VV_HK_FAKE_CONVO "fakepdapropconvo"
|
||||
#define VV_HK_MASS_DEL_TYPE "mass_delete_type"
|
||||
|
||||
// /mob
|
||||
@@ -135,6 +136,12 @@
|
||||
#define VV_HK_VIEW_PLANES "view_planes"
|
||||
#define VV_HK_GIVE_AI "give_ai"
|
||||
#define VV_HK_GIVE_AI_SPEECH "give_ai_speech"
|
||||
#define VV_HK_ADDLANGUAGE "addlanguage"
|
||||
#define VV_HK_REMOVELANGUAGE "remlanguage"
|
||||
#define VV_HK_ADDVERB "addverb"
|
||||
#define VV_HK_REMOVEVERB "remverb"
|
||||
#define VV_HK_ADDORGAN "addorgan"
|
||||
#define VV_HK_REMOVEORGAN "remorgan"
|
||||
|
||||
// /mob/living
|
||||
#define VV_HK_GIVE_SPEECH_IMPEDIMENT "impede_speech"
|
||||
@@ -160,8 +167,14 @@
|
||||
#define VV_HK_PURRBATION "purrbation"
|
||||
#define VV_HK_APPLY_DNA_INFUSION "apply_dna_infusion"
|
||||
#define VV_HK_TURN_INTO_MMI "turn_into_mmi"
|
||||
#define VV_HK_TURN_MONKEY "turn_monkey"
|
||||
#define VV_HK_TURN_ALIEN "turn_alien"
|
||||
#define VK_HK_TURN_SKELETON "turn_skeleton"
|
||||
#define VK_HK_TURN_AI "turn_ai"
|
||||
#define VK_HK_TURN_ROBOT "turn_robot"
|
||||
|
||||
#define VV_HK_WEAKREF_RESOLVE "weakref_resolve"
|
||||
#define VV_HK_DATUM_REFRESH "datumrefresh"
|
||||
|
||||
// Flags for debug_variable() that do little things to what we end up rendering
|
||||
|
||||
|
||||
@@ -41,3 +41,4 @@ var/datum/controller/transfer_controller/transfer_controller
|
||||
|
||||
shift_hard_end = calculated_end
|
||||
shift_last_vote = calculated_end
|
||||
timerbuffer = calculated_end
|
||||
|
||||
@@ -234,7 +234,7 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
. = ..()
|
||||
IF_VV_OPTION("add_track")
|
||||
manual_track_add()
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
IF_VV_OPTION("remove_track")
|
||||
manual_track_remove()
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
|
||||
@@ -350,7 +350,7 @@ GLOBAL_LIST_EMPTY(areas_by_type)
|
||||
if(!check_rights(R_DEBUG))
|
||||
return
|
||||
src.check_static_power(usr)
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
|
||||
// Debugging proc to report if static power is correct or not.
|
||||
/area/proc/check_static_power(var/user)
|
||||
|
||||
@@ -669,7 +669,7 @@ GLOBAL_LIST_EMPTY(dispenser_presets)
|
||||
. = ..()
|
||||
IF_VV_OPTION("admin_add")
|
||||
admin_add()
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
|
||||
/obj/machinery/gear_dispenser/proc/admin_add()
|
||||
if(!check_rights(R_DEBUG|R_FUN))
|
||||
|
||||
@@ -456,7 +456,7 @@
|
||||
. = ..()
|
||||
IF_VV_OPTION("add_track")
|
||||
manual_track_add()
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
IF_VV_OPTION("remove_track")
|
||||
manual_track_remove()
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
|
||||
@@ -236,6 +236,7 @@
|
||||
. = ..()
|
||||
VV_DROPDOWN_OPTION("", "---")
|
||||
VV_DROPDOWN_OPTION(VV_HK_MASS_DEL_TYPE, "Delete all of type")
|
||||
VV_DROPDOWN_OPTION(VV_HK_FAKE_CONVO, "Add Fake Prop Conversation")
|
||||
//VV_DROPDOWN_OPTION(VV_HK_OSAY, "Object Say")
|
||||
|
||||
/obj/vv_do_topic(list/href_list)
|
||||
@@ -283,3 +284,14 @@
|
||||
return
|
||||
log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
|
||||
message_admins(span_notice("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) "))
|
||||
|
||||
if(href_list[VV_HK_FAKE_CONVO])
|
||||
if(!check_rights(R_FUN))
|
||||
return
|
||||
|
||||
var/obj/item/pda/P = src
|
||||
if(!istype(P))
|
||||
to_chat(usr, span_warning("This can only be done to instances of type /pda"))
|
||||
return
|
||||
|
||||
P.createPropFakeConversation_admin(usr)
|
||||
|
||||
@@ -111,7 +111,7 @@ ADMIN_VERB_ONLY_CONTEXT_MENU(show_player_panel, R_HOLDER, "Show Player Panel", m
|
||||
if(issmall(player))
|
||||
body += span_bold("Monkeyized") + " | "
|
||||
else
|
||||
body += "<A href='byond://?_src_=holder;[HrefToken()];monkeyone=\ref[player]'>Monkeyize</A> | "
|
||||
body += "<A href='byond://?_src_=holder;[HrefToken()];turn_monkey=\ref[player]'>Monkeyize</A> | "
|
||||
|
||||
//Corgi
|
||||
if(iscorgi(player))
|
||||
@@ -123,9 +123,9 @@ ADMIN_VERB_ONLY_CONTEXT_MENU(show_player_panel, R_HOLDER, "Show Player Panel", m
|
||||
if(isAI(player))
|
||||
body += span_bold("Is an AI ")
|
||||
else if(ishuman(player))
|
||||
body += {"<A href='byond://?_src_=holder;[HrefToken()];makeai=\ref[player]'>Make AI</A> |
|
||||
<A href='byond://?_src_=holder;[HrefToken()];makerobot=\ref[player]'>Make Robot</A> |
|
||||
<A href='byond://?_src_=holder;[HrefToken()];makealien=\ref[player]'>Make Alien</A>
|
||||
body += {"<A href='byond://?_src_=holder;[HrefToken()];turn_ai=\ref[player]'>Make AI</A> |
|
||||
<A href='byond://?_src_=holder;[HrefToken()];turn_robot=\ref[player]'>Make Robot</A> |
|
||||
<A href='byond://?_src_=holder;[HrefToken()];turn_alien=\ref[player]'>Make Alien</A>
|
||||
"}
|
||||
|
||||
//Simple Animals
|
||||
|
||||
@@ -968,10 +968,10 @@
|
||||
Game() // updates the main game menu
|
||||
.(href, list("f_secret"=1))
|
||||
|
||||
else if(href_list["monkeyone"])
|
||||
else if(href_list[VV_HK_TURN_MONKEY])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["monkeyone"])
|
||||
var/mob/living/carbon/human/H = locate(href_list[VV_HK_TURN_MONKEY])
|
||||
if(!istype(H))
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
@@ -1185,10 +1185,10 @@
|
||||
else
|
||||
to_chat(usr, span_filter_adminlog(span_filter_warning("Admin Rejuvinates have been disabled")))
|
||||
|
||||
else if(href_list["makeai"])
|
||||
else if(href_list[VK_HK_TURN_AI])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["makeai"])
|
||||
var/mob/living/carbon/human/H = locate(href_list[VK_HK_TURN_AI])
|
||||
if(!istype(H))
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
@@ -1197,20 +1197,20 @@
|
||||
log_admin("[key_name(usr)] AIized [key_name(H)]")
|
||||
H.AIize()
|
||||
|
||||
else if(href_list["makealien"])
|
||||
else if(href_list[VV_HK_TURN_ALIEN])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["makealien"])
|
||||
var/mob/living/carbon/human/H = locate(href_list[VV_HK_TURN_ALIEN])
|
||||
if(!istype(H))
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_alienize(H)
|
||||
|
||||
else if(href_list["makerobot"])
|
||||
else if(href_list[VK_HK_TURN_ROBOT])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["makerobot"])
|
||||
var/mob/living/carbon/human/H = locate(href_list[VK_HK_TURN_ROBOT])
|
||||
if(!istype(H))
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob/living/carbon/human"))
|
||||
return
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
vv_update_display(editing, href_list["var_tweak"], istext(new_val) ? uppertext(new_val) : new_val)
|
||||
|
||||
//Finally, refresh if something modified the list.
|
||||
if(href_list["datumrefresh"])
|
||||
var/datum/DAT = locate(href_list["datumrefresh"])
|
||||
if(href_list[VV_HK_DATUM_REFRESH])
|
||||
var/datum/DAT = locate(href_list[VV_HK_DATUM_REFRESH])
|
||||
if(isdatum(DAT) || istype(DAT, /client) || islist(DAT))
|
||||
debug_variables(DAT)
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
return
|
||||
if(snapshot)
|
||||
to_chat(usr, span_warning("Someone (or you) may have started a mass edit on this AI datum already. Refresh the VV window to get the option to end the mass edit instead."))
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
return
|
||||
snapshot = vars.Copy() //'vars' appears to be special in that vars.Copy produces a flat list of keys with no values. It seems that 'vars[key]' is handled somewhere in the byond engine differently than normal lists.
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
|
||||
VARSET_IN(src, snapshot, null, 2 MINUTES) // Safety
|
||||
to_chat(usr, span_notice("Variable snapshot saved. Begin editing the datum, and end the mass edit from the dropdown menu within 2 minutes. Note that editing the contents of lists is not supported."))
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
|
||||
IF_VV_OPTION("mass_edit_finish")
|
||||
if(!check_rights(R_ADMIN))
|
||||
@@ -157,7 +157,7 @@
|
||||
|
||||
if(!diff.len)
|
||||
to_chat(usr, span_warning("You don't appear to have changed anything on the AI datum you were editing."))
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
else
|
||||
var/message = "These differences were detected in your varedit. If you notice any that you didn't change, please redo your edit:<br>"
|
||||
for(var/key in diff)
|
||||
@@ -192,7 +192,7 @@
|
||||
|
||||
var/choice = tgui_input_list(usr,"Based on your AI holder's mob location, we'll edit mobs on Z [levels_working.Join(",")]. What types do you want to alter?", "Types", choices)
|
||||
if(!choice)
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
return
|
||||
var/list/selected = choices[choice]
|
||||
for(var/mob/living/L as anything in selected)
|
||||
@@ -209,7 +209,7 @@
|
||||
to_chat(usr,span_warning("Skipping unavailable var '[newvar]' on: [L] [ADMIN_COORDJMP(L)]"))
|
||||
|
||||
to_chat(usr,span_notice("Mass AI edit done."))
|
||||
href_list["datumrefresh"] = "\ref[src]"
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
|
||||
/datum/ai_holder/New(var/new_holder)
|
||||
ASSERT(new_holder)
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
Invoked by vv topic "fakepdapropconvo" in code\modules\admin\view_variables\topic.dm found in PDA vv dropdown.
|
||||
*/
|
||||
/obj/item/pda/proc/createPropFakeConversation_admin(mob/M)
|
||||
if(!M.client || !check_rights_for(M.client,R_FUN))
|
||||
if(!M.client || !check_rights_for(M.client, R_FUN))
|
||||
return
|
||||
|
||||
var/datum/eventkit/fake_pdaconvos/FPC = M.client.fakeConversations
|
||||
|
||||
@@ -1890,6 +1890,12 @@
|
||||
//VV_DROPDOWN_OPTION(VV_HK_MOD_MUTATIONS, "Add/Remove Mutation")
|
||||
//VV_DROPDOWN_OPTION(VV_HK_MOD_QUIRKS, "Add/Remove Quirks")
|
||||
VV_DROPDOWN_OPTION(VV_HK_SET_SPECIES, "Set Species")
|
||||
VV_DROPDOWN_OPTION(VV_HK_TURN_MONKEY, "Make Monkey")
|
||||
VV_DROPDOWN_OPTION(VV_HK_TURN_ALIEN, "Make Alien")
|
||||
VV_DROPDOWN_OPTION(VK_HK_TURN_SKELETON, "Make Skeleton")
|
||||
VV_DROPDOWN_OPTION(VK_HK_TURN_AI, "Make AI")
|
||||
VV_DROPDOWN_OPTION(VK_HK_TURN_ROBOT, "Make Robot")
|
||||
|
||||
//VV_DROPDOWN_OPTION(VV_HK_PURRBATION, "Toggle Purrbation")
|
||||
//VV_DROPDOWN_OPTION(VV_HK_APPLY_DNA_INFUSION, "Apply DNA Infusion")
|
||||
//VV_DROPDOWN_OPTION(VV_HK_TURN_INTO_MMI, "Turn into MMI")
|
||||
@@ -1953,12 +1959,93 @@
|
||||
if(href_list[VV_HK_SET_SPECIES])
|
||||
if(!check_rights(R_SPAWN))
|
||||
return
|
||||
var/result = tgui_input_list(usr, "Please choose a new species","Species", sortTim(GLOB.all_species, GLOBAL_PROC_REF(cmp_text_asc)))
|
||||
var/result = tgui_input_list(usr, "Please choose a new species", "Species", sortTim(GLOB.all_species, GLOBAL_PROC_REF(cmp_text_asc)))
|
||||
if(result)
|
||||
var/newtype = GLOB.all_species[result]
|
||||
admin_ticket_log("[key_name_admin(usr)] has modified the bodyparts of [src] to [result]")
|
||||
set_species(newtype)
|
||||
|
||||
if(href_list[VV_HK_TURN_MONKEY])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(!istype(H))
|
||||
to_chat(src, "This can only be done to instances of type /mob/living/carbon/human")
|
||||
return
|
||||
|
||||
if(tgui_alert(src, "Confirm mob type change?","Confirm", list("Transform", "Cancel")) != "Transform")
|
||||
return
|
||||
if(!H)
|
||||
to_chat(src, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)]")
|
||||
message_admins(span_blue("[key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)]"), 1)
|
||||
H.monkeyize()
|
||||
|
||||
if(href_list[VV_HK_TURN_ALIEN])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(!istype(H))
|
||||
to_chat(src, "This can only be done to instances of type /mob/living/carbon/human")
|
||||
return
|
||||
|
||||
if(tgui_alert(src, "Confirm mob type change?","Confirm",list("Transform", "Cancel")) != "Transform")
|
||||
return
|
||||
if(!H)
|
||||
to_chat(src, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_alienize(H)
|
||||
|
||||
if(href_list[VK_HK_TURN_SKELETON])
|
||||
if(!check_rights(R_FUN))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
return
|
||||
|
||||
H.ChangeToSkeleton()
|
||||
href_list[VV_HK_DATUM_REFRESH] = "\ref[src]"
|
||||
|
||||
|
||||
if(href_list[VK_HK_TURN_AI])
|
||||
if(!check_rights(R_SPAWN))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
|
||||
return
|
||||
|
||||
if(tgui_alert(usr, "Confirm mob type change?", "Confirm", list("Transform", "Cancel")) != "Transform")
|
||||
return
|
||||
if(!H)
|
||||
to_chat(usr, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
message_admins(span_red("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!"), 1)
|
||||
log_admin("[key_name(usr)] AIized [key_name(H)]")
|
||||
H.AIize()
|
||||
|
||||
if(href_list[VK_HK_TURN_ROBOT])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(!istype(H))
|
||||
to_chat(src, "This can only be done to instances of type /mob/living/carbon/human")
|
||||
return
|
||||
|
||||
if(tgui_alert(src, "Confirm mob type change?", "Confirm", list("Transform", "Cancel")) != "Transform") return
|
||||
if(!H)
|
||||
to_chat(src, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_robotize(H)
|
||||
|
||||
/*
|
||||
if(href_list[VV_HK_PURRBATION])
|
||||
if(!check_rights(R_SPAWN))
|
||||
|
||||
@@ -1350,10 +1350,16 @@ GLOBAL_LIST_EMPTY_TYPED(living_players_by_zlevel, /list)
|
||||
. = ..()
|
||||
VV_DROPDOWN_OPTION("", "---------")
|
||||
VV_DROPDOWN_OPTION(VV_HK_GIB, "Gib")
|
||||
//VV_DROPDOWN_OPTION(VV_HK_GIVE_AI, "Give AI Controller")
|
||||
VV_DROPDOWN_OPTION(VV_HK_GIVE_AI, "Give AI Controller")
|
||||
//VV_DROPDOWN_OPTION(VV_HK_GIVE_AI_SPEECH, "Give Random AI Speech")
|
||||
VV_DROPDOWN_OPTION(VV_HK_GIVE_SPELL, "Give Spell")
|
||||
VV_DROPDOWN_OPTION(VV_HK_REMOVE_SPELL, "Remove Spell")
|
||||
VV_DROPDOWN_OPTION(VV_HK_ADDLANGUAGE, "Add Language")
|
||||
VV_DROPDOWN_OPTION(VV_HK_REMOVELANGUAGE, "Remove Language")
|
||||
VV_DROPDOWN_OPTION(VV_HK_ADDVERB, "Add Verb")
|
||||
VV_DROPDOWN_OPTION(VV_HK_REMOVEVERB, "Remove Verb")
|
||||
VV_DROPDOWN_OPTION(VV_HK_ADDORGAN, "Add Organ")
|
||||
VV_DROPDOWN_OPTION(VV_HK_REMOVEORGAN, "Remove Organ")
|
||||
//VV_DROPDOWN_OPTION(VV_HK_GIVE_MOB_ACTION, "Give Mob Ability")
|
||||
//VV_DROPDOWN_OPTION(VV_HK_REMOVE_MOB_ACTION, "Remove Mob Ability")
|
||||
//VV_DROPDOWN_OPTION(VV_HK_GIVE_DISEASE, "Give Disease")
|
||||
@@ -1393,8 +1399,185 @@ GLOBAL_LIST_EMPTY_TYPED(living_players_by_zlevel, /list)
|
||||
return
|
||||
usr.client.cmd_admin_godmode(src)
|
||||
|
||||
//if(href_list[VV_HK_GIVE_AI])
|
||||
// return SSadmin_verbs.dynamic_invoke_verb(usr, /datum/admin_verb/give_ai_controller, src)
|
||||
if(href_list[VV_HK_ADDLANGUAGE])
|
||||
if(!check_rights(R_SPAWN))
|
||||
return
|
||||
|
||||
var/mob/H = src
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be done to instances of type /mob")
|
||||
return
|
||||
|
||||
var/new_language = tgui_input_list(usr, "Please choose a language to add.", "Language", GLOB.all_languages)
|
||||
if(!new_language)
|
||||
return
|
||||
|
||||
if(!H)
|
||||
to_chat(usr, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
if(H.add_language(new_language))
|
||||
to_chat(usr, "Added [new_language] to [H].")
|
||||
return
|
||||
|
||||
to_chat(usr, "Mob already knows that language.")
|
||||
|
||||
if(href_list[VV_HK_REMOVELANGUAGE])
|
||||
if(!check_rights(R_SPAWN))
|
||||
return
|
||||
|
||||
var/mob/H = src
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be done to instances of type /mob")
|
||||
return
|
||||
|
||||
if(!H.languages.len)
|
||||
to_chat(usr, "This mob knows no languages.")
|
||||
return
|
||||
|
||||
var/datum/language/rem_language = tgui_input_list(usr, "Please choose a language to remove.", "Language", H.languages)
|
||||
|
||||
if(!rem_language)
|
||||
return
|
||||
|
||||
if(!H)
|
||||
to_chat(usr, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
if(H.remove_language(rem_language.name))
|
||||
to_chat(usr, "Removed [rem_language] from [H].")
|
||||
return
|
||||
|
||||
to_chat(usr, "Mob doesn't know that language.")
|
||||
|
||||
if(href_list[VV_HK_ADDVERB])
|
||||
if(!check_rights(R_DEBUG))
|
||||
return
|
||||
|
||||
var/mob/H = src
|
||||
|
||||
if(!ismob(H))
|
||||
to_chat(usr, "This can only be done to instances of type /mob")
|
||||
return
|
||||
var/list/possibleverbs = list()
|
||||
possibleverbs += "Cancel" // One for the top...
|
||||
possibleverbs += typesof(/mob/proc, /mob/verb)
|
||||
if(isobserver(H))
|
||||
possibleverbs += typesof(/mob/observer/dead/proc,/mob/observer/dead/verb)
|
||||
if(isliving(H))
|
||||
possibleverbs += typesof(/mob/living/proc,/mob/living/verb)
|
||||
if(ishuman(H))
|
||||
possibleverbs += typesof(/mob/living/carbon/proc,/mob/living/carbon/verb,/mob/living/carbon/human/verb,/mob/living/carbon/human/proc)
|
||||
if(isrobot(H))
|
||||
possibleverbs += typesof(/mob/living/silicon/proc,/mob/living/silicon/robot/proc,/mob/living/silicon/robot/verb)
|
||||
if(isAI(H))
|
||||
possibleverbs += typesof(/mob/living/silicon/proc,/mob/living/silicon/ai/proc,/mob/living/silicon/ai/verb)
|
||||
if(isanimal(H))
|
||||
possibleverbs += typesof(/mob/living/simple_mob/proc)
|
||||
possibleverbs -= H.verbs
|
||||
possibleverbs += "Cancel" // ...And one for the bottom
|
||||
|
||||
var/verb = tgui_input_list(usr, "Select a verb!", "Verbs", possibleverbs)
|
||||
if(!verb || verb == "Cancel")
|
||||
return
|
||||
|
||||
if(!H)
|
||||
to_chat(usr, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
add_verb(H, verb)
|
||||
|
||||
if(href_list[VV_HK_REMOVEVERB])
|
||||
if(!check_rights(R_DEBUG))
|
||||
return
|
||||
|
||||
var/mob/H = src
|
||||
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be done to instances of type /mob")
|
||||
return
|
||||
var/verb = tgui_input_list(usr, "Please choose a verb to remove.", "Verbs", H.verbs)
|
||||
if(!verb)
|
||||
return
|
||||
|
||||
if(!H)
|
||||
to_chat(usr, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
remove_verb(H, verb)
|
||||
|
||||
if(href_list[VV_HK_ADDORGAN])
|
||||
if(!check_rights(R_SPAWN))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/M = src
|
||||
if(!istype(M))
|
||||
to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
|
||||
return
|
||||
|
||||
var/new_organ = tgui_input_list(usr, "Please choose an organ to add.", "Organ", subtypesof(/obj/item/organ))
|
||||
if(!new_organ)
|
||||
return
|
||||
|
||||
if(!M)
|
||||
to_chat(usr, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
if(locate(new_organ) in M.internal_organs)
|
||||
to_chat(usr, "Mob already has that organ.")
|
||||
return
|
||||
|
||||
new new_organ(M)
|
||||
|
||||
|
||||
if(href_list[VV_HK_REMOVEORGAN])
|
||||
if(!check_rights(R_SPAWN))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/M = src
|
||||
if(!istype(M))
|
||||
to_chat(usr, "This can only be done to instances of type /mob/living/carbon")
|
||||
return
|
||||
|
||||
var/obj/item/organ/rem_organ = tgui_input_list(usr, "Please choose an organ to remove.", "Organ", M.internal_organs)
|
||||
if(!rem_organ)
|
||||
return
|
||||
|
||||
if(!M)
|
||||
to_chat(usr, "Mob doesn't exist anymore")
|
||||
return
|
||||
|
||||
if(!(locate(rem_organ) in M.internal_organs))
|
||||
to_chat(usr, "Mob does not have that organ.")
|
||||
return
|
||||
|
||||
to_chat(usr, "Removed [rem_organ] from [M].")
|
||||
rem_organ.removed()
|
||||
qdel(rem_organ)
|
||||
|
||||
if(href_list[VV_HK_GIVE_AI])
|
||||
if(!check_rights(R_HOLDER))
|
||||
return
|
||||
|
||||
var/mob/M = src
|
||||
if(!isliving(M))
|
||||
to_chat(src, span_notice("This can only be used on instances of type /mob/living"))
|
||||
return
|
||||
var/mob/living/L = M
|
||||
if(L.client || L.teleop)
|
||||
to_chat(src, span_warning("This cannot be used on player mobs!"))
|
||||
return
|
||||
|
||||
if(L.ai_holder) //Cleaning up the original ai
|
||||
var/ai_holder_old = L.ai_holder
|
||||
L.ai_holder = null
|
||||
qdel(ai_holder_old) //Only way I could make #TESTING - Unable to be GC'd to stop. del() logs show it works.
|
||||
L.ai_holder_type = tgui_input_list(usr, "Choose AI holder", "AI Type", typesof(/datum/ai_holder/))
|
||||
L.initialize_ai_holder()
|
||||
L.faction = sanitize(tgui_input_text(usr, "Please input AI faction", "AI faction", "neutral"))
|
||||
L.a_intent = tgui_input_list(usr, "Please choose AI intent", "AI intent", list(I_HURT, I_HELP))
|
||||
if(tgui_alert(usr, "Make mob wake up? This is needed for carbon mobs.", "Wake mob?", list("Yes", "No")) == "Yes")
|
||||
L.AdjustSleeping(-100)
|
||||
|
||||
//if(href_list[VV_HK_GIVE_AI_SPEECH])
|
||||
// return SSadmin_verbs.dynamic_invoke_verb(usr, /datum/admin_verb/give_ai_speech, src)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"scripts": {
|
||||
"tgui:analyze": "rspack --analyze",
|
||||
"tgui:build": "rspack build",
|
||||
"tgui:dev": "bun packages/tgui-dev-server/index.ts",
|
||||
"tgui:dev": "bun --smol packages/tgui-dev-server/index.ts",
|
||||
"tgui:lint": "eslint packages --ext .js,.cjs,.ts,.tsx",
|
||||
"tgui:prettier": "prettier --check .",
|
||||
"tgui:test": "bun test",
|
||||
|
||||
Reference in New Issue
Block a user