/mob/vv_modify_name_link()
return "byond://?_src_=vars;rename=TRUE;[VV_HK_TARGET]=[UID()]"
/mob/vv_get_header()
. = ..()
. += "
[ckey ? ckey : "No ckey"] / [real_name ? real_name : "No real name"]"
/mob/vv_get_dropdown()
. = ..()
VV_DROPDOWN_OPTION(VV_HK_MOB_PLAYER_PANEL, "Show player panel")
VV_DROPDOWN_OPTION(VV_HK_GIVE_SPELL, "Give Spell")
VV_DROPDOWN_OPTION(VV_HK_GIVE_DISEASE, "Give Disease")
VV_DROPDOWN_OPTION(VV_HK_GODMODE, "Toggle Godmode")
VV_DROPDOWN_OPTION(VV_HK_BUILD_MODE, "Toggle Build Mode")
VV_DROPDOWN_OPTION(VV_HK_DIRECT_CONTROL, "Assume Direct Control")
VV_DROPDOWN_OPTION(VV_HK_OFFER_CONTROL, "Offer Control to Ghosts")
VV_DROPDOWN_OPTION(VV_HK_DROP_EVERYTHING, "Drop Everything")
VV_DROPDOWN_OPTION(VV_HK_REGENERATEICONS, "Regenerate Icons")
VV_DROPDOWN_OPTION(VV_HK_ADDLANGUAGE, "Add Language")
VV_DROPDOWN_OPTION(VV_HK_REMLANGUAGE, "Remove Language")
VV_DROPDOWN_OPTION(VV_HK_ADDVERB, "Add Verb")
VV_DROPDOWN_OPTION(VV_HK_REMVERB, "Remove Verb")
VV_DROPDOWN_OPTION(VV_HK_GIB, "Gib")
/mob/vv_do_topic(list/href_list)
. = ..()
if(!.)
return
//~CARN: for renaming mobs (updates their name, real_name, mind.name, their ID/PDA and datacore records).
if(href_list["rename"])
if(!check_rights(R_ADMIN))
return
var/new_name = reject_bad_name(sanitize(copytext_char(input(usr, "What would you like to name this mob?", "Input a name", real_name) as text|null, 1, MAX_NAME_LEN)), allow_numbers = TRUE)
if(!new_name || QDELETED(src))
return
message_admins("Admin [key_name_admin(usr)] renamed [key_name_admin(src)] to [new_name].")
rename_character(real_name, new_name)
href_list["datumrefresh"] = UID()
if(href_list[VV_HK_MOB_PLAYER_PANEL])
if(!check_rights(R_ADMIN|R_MOD))
return
usr.client.holder.show_player_panel(src)
href_list["datumrefresh"] = UID()
if(href_list[VV_HK_GIVE_SPELL])
if(!check_rights(R_SERVER|R_EVENT))
return
usr.client.give_spell(src)
href_list["datumrefresh"] = UID()
if(href_list[VV_HK_GIVE_DISEASE])
if(!check_rights(R_SERVER|R_EVENT))
return
usr.client.give_disease(src)
href_list["datumrefresh"] = UID()
if(href_list[VV_HK_GODMODE])
if(!check_rights(R_EVENT))
return
usr.client.cmd_admin_godmode(src)
href_list["datumrefresh"] = UID()
if(href_list[VV_HK_GIB])
if(!check_rights(R_ADMIN|R_EVENT))
return
usr.client.cmd_admin_gib(src)
if(href_list[VV_HK_BUILD_MODE])
if(!check_rights(R_BUILDMODE))
return
togglebuildmode(src)
href_list["datumrefresh"] = UID()
if(href_list[VV_HK_DROP_EVERYTHING])
if(!check_rights(R_DEBUG|R_ADMIN))
return
if(usr.client)
usr.client.cmd_admin_drop_everything(src)
if(href_list[VV_HK_DIRECT_CONTROL])
if(!check_rights(R_DEBUG|R_ADMIN))
return
if(usr.client)
usr.client.cmd_assume_direct_control(src)
if(href_list[VV_HK_OFFER_CONTROL])
if(!check_rights(R_ADMIN))
return
offer_control(src)
if(href_list[VV_HK_REGENERATEICONS])
if(!check_rights(0))
return
regenerate_icons()
if(href_list[VV_HK_ADDLANGUAGE])
if(!check_rights(R_SPAWN))
return
var/new_language = tgui_input_list(usr, "Please choose a language to add.", "Language", GLOB.all_languages)
if(!new_language)
return
if(QDELETED(src))
to_chat(usr, "Mob doesn't exist anymore.")
return
if(add_language(new_language, TRUE))
to_chat(usr, "Added [new_language] to [src].")
message_admins("[key_name_admin(usr)] has given [key_name_admin(src)] the language [new_language]")
log_admin("[key_name(usr)] has given [key_name(src)] the language [new_language]")
else
to_chat(usr, "Mob already knows that language.")
if(href_list[VV_HK_REMLANGUAGE])
if(!check_rights(R_SPAWN))
return
if(!length(languages))
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", src.languages)
if(!rem_language)
return
if(QDELETED(src))
to_chat(usr, "Mob doesn't exist anymore.")
return
if(remove_language(rem_language.name, TRUE))
to_chat(usr, "Removed [rem_language] from [src].")
message_admins("[key_name_admin(usr)] has removed language [rem_language] from [key_name_admin(src)]")
log_admin("[key_name(usr)] has removed language [rem_language] from [key_name(src)]")
else
to_chat(usr, "Mob doesn't know that language.")
if(href_list[VV_HK_ADDVERB])
if(!check_rights(R_DEBUG))
return
var/list/possibleverbs = list()
possibleverbs += "Cancel" // One for the top...
possibleverbs += typesof(/mob/proc, /mob/verb, /mob/living/proc, /mob/living/verb)
switch(type) // Horrid
if(/mob/living/carbon/human)
possibleverbs += typesof(/mob/living/carbon/proc, /mob/living/carbon/verb, /mob/living/carbon/human/verb, /mob/living/carbon/human/proc)
if(/mob/living/silicon/robot)
possibleverbs += typesof(/mob/living/silicon/proc, /mob/living/silicon/robot/proc, /mob/living/silicon/robot/verb)
if(/mob/living/silicon/ai)
possibleverbs += typesof(/mob/living/silicon/proc, /mob/living/silicon/ai/proc, /mob/living/silicon/ai/verb)
possibleverbs -= verbs
possibleverbs += "Cancel" // ...And one for the bottom
var/verb = input("Select a verb!", "Verbs",null) as anything in possibleverbs
if(QDELETED(src))
to_chat(usr, "Mob doesn't exist anymore.")
return
if(!verb || verb == "Cancel")
return
else
add_verb(src, verb)
message_admins("[key_name_admin(usr)] has given [key_name_admin(src)] the verb [verb]")
log_admin("[key_name(usr)] has given [key_name(src)] the verb [verb]")
if(href_list[VV_HK_REMVERB])
if(!check_rights(R_DEBUG))
return
var/verb = tgui_input_list(usr, "Please choose a verb to remove.", "Verbs", src.verbs)
if(QDELETED(src))
to_chat(usr, "Mob doesn't exist anymore.")
return
if(!verb)
return
else
remove_verb(src, verb)
message_admins("[key_name_admin(usr)] has removed verb [verb] from [key_name_admin(src)]")
log_admin("[key_name(usr)] has removed verb [verb] from [key_name(src)]")