mirror of
https://github.com/Yawn-Wider/YWPolarisVore.git
synced 2026-08-24 21:47:21 +01:00
Merge branch 'release' of https://github.com/VOREStation/VOREStation into voreupdate
This commit is contained in:
@@ -51,7 +51,7 @@ var/global/floorIsLava = 0
|
||||
body += " played by <b>[M.client]</b> "
|
||||
body += "\[<A href='byond://?src=\ref[src];[HrefToken()];editrights=show'>[M.client.holder ? M.client.holder.rank : "Player"]</A>\]"
|
||||
|
||||
if(istype(M, /mob/new_player))
|
||||
if(isnewplayer(M))
|
||||
body += " <B>Hasn't Entered Game</B> "
|
||||
else
|
||||
body += " \[<A href='byond://?src=\ref[src];[HrefToken()];revive=\ref[M]'>Heal</A>\] "
|
||||
@@ -105,7 +105,7 @@ var/global/floorIsLava = 0
|
||||
"}
|
||||
|
||||
if (M.client)
|
||||
if(!istype(M, /mob/new_player))
|
||||
if(!isnewplayer(M))
|
||||
body += "<br><br>"
|
||||
body += span_bold("Transformation:")
|
||||
body += "<br>"
|
||||
|
||||
@@ -35,7 +35,6 @@ var/list/admin_verbs_admin = list(
|
||||
/datum/admins/proc/announce, //priority announce something to all clients.,
|
||||
/datum/admins/proc/intercom, //send a fake intercom message, like an arrivals announcement,
|
||||
/datum/admins/proc/intercom_convo, //send a fake intercom conversation, like an ATC exchange,
|
||||
/client/proc/colorooc, //allows us to set a custom colour for everythign we say in ooc,
|
||||
/client/proc/admin_ghost, //allows us to ghost/reenter body at will,
|
||||
/datum/admins/proc/show_player_panel, //shows an interface for individual players, with various links (links require additional flags, //VOREStation Add,
|
||||
/client/proc/player_panel_new, //shows an interface for all players, with links to various panels, //VOREStation Add,
|
||||
@@ -317,7 +316,6 @@ var/list/admin_verbs_hideable = list(
|
||||
/datum/admins/proc/toggleenter,
|
||||
/datum/admins/proc/toggleguests,
|
||||
/datum/admins/proc/announce,
|
||||
/client/proc/colorooc,
|
||||
/client/proc/admin_ghost,
|
||||
/client/proc/toggle_view_range,
|
||||
/datum/admins/proc/view_txt_log,
|
||||
@@ -407,7 +405,6 @@ var/list/admin_verbs_mod = list(
|
||||
/client/proc/cmd_event_say,
|
||||
/datum/admins/proc/show_player_info,
|
||||
/datum/admins/proc/show_traitor_panel,
|
||||
/client/proc/colorooc,
|
||||
/client/proc/player_panel_new,
|
||||
/client/proc/dsay,
|
||||
/datum/admins/proc/show_player_panel,
|
||||
@@ -501,7 +498,6 @@ var/list/admin_verbs_event_manager = list(
|
||||
/datum/admins/proc/announce, //priority announce something to all clients.,
|
||||
/datum/admins/proc/intercom, //send a fake intercom message, like an arrivals announcement,
|
||||
/datum/admins/proc/intercom_convo, //send a fake intercom conversation, like an ATC exchange,
|
||||
/client/proc/colorooc, //allows us to set a custom colour for everythign we say in ooc,
|
||||
/client/proc/admin_ghost, //allows us to ghost/reenter body at will,
|
||||
/client/proc/toggle_view_range, //changes how far we can see,
|
||||
/client/proc/cmd_admin_pm_context, //right-click adminPM interface,
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
if(build_mode != "Yes")
|
||||
to_chat(src, "Will not re-enter buildmode after switch.")
|
||||
|
||||
if(istype(mob,/mob/observer/dead))
|
||||
if(isobserver(mob))
|
||||
//re-enter
|
||||
var/mob/observer/dead/ghost = mob
|
||||
if(ghost.can_reenter_corpse)
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
else if(istype(mob,/mob/new_player))
|
||||
else if(isnewplayer(mob))
|
||||
to_chat(src, span_filter_system(span_warning("Error: Aghost: Can't admin-ghost whilst in the lobby. Join or Observe first.")))
|
||||
else
|
||||
//ghostize
|
||||
@@ -157,20 +157,6 @@
|
||||
feedback_add_details("admin_verb","S") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
/client/proc/colorooc()
|
||||
set category = "Admin.Misc"
|
||||
set name = "OOC Text Color"
|
||||
if(!holder) return
|
||||
var/response = tgui_alert(src, "Please choose a distinct color that is easy to read and doesn't mix with all the other chat and radio frequency colors.", "Change own OOC color", list("Pick new color", "Reset to default", "Cancel"))
|
||||
if(response == "Pick new color")
|
||||
prefs.ooccolor = input(src, "Please select your OOC colour.", "OOC colour") as color
|
||||
else if(response == "Reset to default")
|
||||
prefs.ooccolor = initial(prefs.ooccolor)
|
||||
SScharacter_setup.queue_preferences_save(prefs)
|
||||
|
||||
feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
/client/proc/findStealthKey(txt)
|
||||
if(txt)
|
||||
for(var/P in GLOB.stealthminID)
|
||||
@@ -196,7 +182,7 @@
|
||||
if(holder)
|
||||
if(holder.fakekey)
|
||||
holder.fakekey = null
|
||||
if(istype(src.mob, /mob/new_player))
|
||||
if(isnewplayer(src.mob))
|
||||
mob.name = capitalize(ckey)
|
||||
else
|
||||
var/new_key = ckeyEx(tgui_input_text(usr, "Enter your desired display name.", "Fake Key", key))
|
||||
@@ -206,7 +192,7 @@
|
||||
new_key = copytext(new_key, 1, 26)
|
||||
holder.fakekey = new_key
|
||||
createStealthKey()
|
||||
if(istype(mob, /mob/new_player))
|
||||
if(isnewplayer(mob))
|
||||
mob.name = new_key
|
||||
log_and_message_admins("[key_name(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]")
|
||||
feedback_add_details("admin_verb","SM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
if(A)
|
||||
var/icon/img = getFlatIcon(A)
|
||||
if(istype(img, /icon))
|
||||
if(istype(A, /mob/living) && A:lying)
|
||||
if(isliving(A) && A:lying)
|
||||
img.BecomeLying()
|
||||
var/xoff = (A.x - tx) * 32
|
||||
var/yoff = (A.y - ty) * 32
|
||||
|
||||
@@ -45,13 +45,13 @@
|
||||
|
||||
/datum/eventkit/modify_robot/ui_assets(mob/user)
|
||||
return list(
|
||||
get_asset_datum(/datum/asset/spritesheet/robot_icons)
|
||||
get_asset_datum(/datum/asset/spritesheet_batched/robot_icons)
|
||||
)
|
||||
|
||||
/datum/eventkit/modify_robot/tgui_data(mob/user)
|
||||
. = list()
|
||||
// Target section for general data
|
||||
var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons)
|
||||
var/datum/asset/spritesheet_batched/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet_batched/robot_icons)
|
||||
|
||||
if(target)
|
||||
.["target"] = list()
|
||||
@@ -349,8 +349,8 @@
|
||||
target.radio.keyslot = new /obj/item/encryptionkey/syndicate(target)
|
||||
target.radio.syndie = 1
|
||||
target.module.channels += list("[selected_radio_channel]" = 1)
|
||||
target.radio.channels[selected_radio_channel] += target.module.channels[selected_radio_channel]
|
||||
target.radio.secure_radio_connections[selected_radio_channel] += radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
|
||||
target.radio.channels[selected_radio_channel] = target.module.channels[selected_radio_channel]
|
||||
target.radio.secure_radio_connections[selected_radio_channel] = radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
|
||||
return TRUE
|
||||
if("rem_channel")
|
||||
var/selected_radio_channel = params["channel"]
|
||||
@@ -363,7 +363,7 @@
|
||||
target.radio.syndie = 0
|
||||
target.radio.channels = list()
|
||||
for(var/n_chan in target.module.channels)
|
||||
target.radio.channels[n_chan] -= target.module.channels[n_chan]
|
||||
target.radio.channels[n_chan] = target.module.channels[n_chan]
|
||||
radio_controller.remove_object(target.radio, radiochannels[selected_radio_channel])
|
||||
target.radio.secure_radio_connections -= selected_radio_channel
|
||||
return TRUE
|
||||
@@ -589,7 +589,7 @@
|
||||
target_items += list(list("name" = item.name, "ref" = "\ref[item]", "icon" = icon2html(item, user, sourceonly=TRUE), "desc" = item.desc))
|
||||
return target_items
|
||||
|
||||
/datum/eventkit/modify_robot/proc/get_module_source(var/mob/user, var/datum/asset/spritesheet/robot_icons/spritesheet)
|
||||
/datum/eventkit/modify_robot/proc/get_module_source(var/mob/user, var/datum/asset/spritesheet_batched/robot_icons/spritesheet)
|
||||
var/list/source_list = list()
|
||||
source_list["model"] = source.module
|
||||
source_list["sprite"] = sanitize_css_class_name("[source.sprite_datum.type]")
|
||||
|
||||
@@ -776,7 +776,7 @@
|
||||
X.orbit(target)
|
||||
|
||||
if("ai")
|
||||
if(!istype(target, /mob/living))
|
||||
if(!isliving(target))
|
||||
to_chat(ui.user, span_notice("This can only be used on instances of type /mob/living"))
|
||||
return
|
||||
var/mob/living/L = target
|
||||
|
||||
@@ -257,7 +257,7 @@
|
||||
else
|
||||
M_job = JOB_LIVING
|
||||
|
||||
else if(istype(M,/mob/new_player))
|
||||
else if(isnewplayer(M))
|
||||
M_job = JOB_NEW_PLAYER
|
||||
|
||||
else if(isobserver(M))
|
||||
@@ -336,9 +336,9 @@
|
||||
dat += "<td>Cyborg</td>"
|
||||
else if(ishuman(M))
|
||||
dat += "<td>[M.real_name]</td>"
|
||||
else if(istype(M, /mob/living/silicon/pai))
|
||||
else if(ispAI(M))
|
||||
dat += "<td>pAI</td>"
|
||||
else if(istype(M, /mob/new_player))
|
||||
else if(isnewplayer(M))
|
||||
dat += "<td>New Player</td>"
|
||||
else if(isobserver(M))
|
||||
dat += "<td>Ghost</td>"
|
||||
@@ -350,7 +350,7 @@
|
||||
dat += "<td>Unknown</td>"
|
||||
|
||||
|
||||
if(istype(M,/mob/living/carbon/human))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.mind && H.mind.assigned_role)
|
||||
dat += "<td>[H.mind.assigned_role]</td>"
|
||||
|
||||
@@ -1091,7 +1091,7 @@
|
||||
if(!ismob(M))
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
if(isAI(M))
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
@@ -1112,7 +1112,7 @@
|
||||
if(!M) return
|
||||
|
||||
M.loc = prison_cell
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/prisoner = M
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/under/color/prison(prisoner), slot_w_uniform)
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
|
||||
@@ -1154,7 +1154,7 @@
|
||||
if(!ismob(M))
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
if(isAI(M))
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
@@ -1179,7 +1179,7 @@
|
||||
if(!ismob(M))
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
if(isAI(M))
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
@@ -1204,7 +1204,7 @@
|
||||
if(!ismob(M))
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
if(isAI(M))
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
@@ -1226,14 +1226,14 @@
|
||||
if(!ismob(M))
|
||||
to_chat(usr, span_filter_adminlog("This can only be used on instances of type /mob"))
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
if(isAI(M))
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/living/silicon/ai"))
|
||||
return
|
||||
|
||||
for(var/obj/item/I in M)
|
||||
M.drop_from_inventory(I)
|
||||
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/observer = M
|
||||
observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), slot_w_uniform)
|
||||
observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(observer), slot_shoes)
|
||||
@@ -1296,7 +1296,7 @@
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/M = locate(href_list["makeanimal"])
|
||||
if(istype(M, /mob/new_player))
|
||||
if(isnewplayer(M))
|
||||
to_chat(usr, span_filter_adminlog("This cannot be used on instances of type /mob/new_player"))
|
||||
return
|
||||
|
||||
|
||||
@@ -20,8 +20,7 @@
|
||||
if(areaname)
|
||||
A = return_sorted_areas()[areaname]
|
||||
else
|
||||
var/newareaname = tgui_input_list(usr, "Pick an area:", "Jump to Area", return_sorted_areas())
|
||||
A = return_sorted_areas()[newareaname] // YW EDIT - tgui_input_list returns strings even if var is area... Get area from name with this
|
||||
A = return_sorted_areas()[tgui_input_list(usr, "Pick an area:", "Jump to Area", return_sorted_areas())]
|
||||
|
||||
if(!A)
|
||||
return
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
var/mob/living/carbon/human/M = tgui_input_list(usr, "Select mob.", "Edit Appearance", human_mob_list)
|
||||
|
||||
if(!istype(M, /mob/living/carbon/human))
|
||||
if(!ishuman(M))
|
||||
to_chat(usr, span_warning("You can only do this to humans!"))
|
||||
return
|
||||
if(tgui_alert(usr, "Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Tajaran can result in unintended consequences.","Danger!",list("Yes","No")) != "Yes")
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
if(!ticker)
|
||||
tgui_alert_async(usr, "Wait until the game starts")
|
||||
return
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
if(ishuman(M))
|
||||
log_admin("[key_name(src)] has robotized [M.key].")
|
||||
spawn(10)
|
||||
M:Robotize()
|
||||
@@ -120,7 +120,7 @@
|
||||
tgui_alert_async(usr, "That mob doesn't seem to exist, close the panel and try again.")
|
||||
return
|
||||
|
||||
if(istype(M, /mob/new_player))
|
||||
if(isnewplayer(M))
|
||||
tgui_alert_async(usr, "The mob must not be a new_player.")
|
||||
return
|
||||
|
||||
@@ -279,7 +279,7 @@
|
||||
if (!ticker)
|
||||
tgui_alert_async(usr, "Wait until the game starts")
|
||||
return
|
||||
if (istype(M, /mob/living/carbon/human))
|
||||
if (ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if (H.wear_id)
|
||||
var/obj/item/card/id/id = H.wear_id
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
to_chat(usr, span_notice("Ghosts shouldn't be narrated! If you want a ghost, make it a subtype of mob/living!"))
|
||||
return
|
||||
//We require a static mob/living type to check for .client and also later on, to use the unique .say mechanics for stuttering and language
|
||||
if(istype(E, /mob/living))
|
||||
if(isliving(E))
|
||||
var/mob/living/L = E
|
||||
if(L.client)
|
||||
to_chat(usr, span_notice("[L.name] is a player. All attempts to speak through them \
|
||||
@@ -170,7 +170,7 @@
|
||||
to_chat(usr, span_notice("[name] has invalid reference, deleting"))
|
||||
holder.entity_names -= name
|
||||
holder.entity_refs -= name
|
||||
if(istype(selection, /mob/living))
|
||||
if(isliving(selection))
|
||||
var/mob/living/our_entity = selection
|
||||
if(our_entity.client) //Making sure we can't speak for players
|
||||
log_and_message_admins("used entity-narrate to speak through [our_entity.ckey]'s mob", usr)
|
||||
@@ -267,7 +267,7 @@
|
||||
tgui_selected_type = ""
|
||||
tgui_selected_name = ""
|
||||
tgui_selected_refs = null
|
||||
if(istype(tgui_selected_refs, /mob/living))
|
||||
if(isliving(tgui_selected_refs))
|
||||
var/mob/living/L = tgui_selected_refs
|
||||
if(L.client)
|
||||
tgui_selected_type = "!!!!PLAYER!!!!"
|
||||
@@ -296,7 +296,7 @@
|
||||
entity_refs -= entity
|
||||
tgui_selected_id_multi -= entity
|
||||
continue
|
||||
if(istype(ref, /mob/living))
|
||||
if(isliving(ref))
|
||||
var/mob/living/L = ref
|
||||
if(L.client)
|
||||
log_and_message_admins("used entity-narrate to speak through [L.ckey]'s mob", ui.user)
|
||||
@@ -316,7 +316,7 @@
|
||||
tgui_selected_name = ""
|
||||
tgui_selected_refs = null
|
||||
return
|
||||
if(istype(ref, /mob/living))
|
||||
if(isliving(ref))
|
||||
var/mob/living/L = ref
|
||||
if(L.client)
|
||||
log_and_message_admins("used entity-narrate to speak through [L.ckey]'s mob", ui.user)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
//Initializing our working list
|
||||
for(var/player in player_list_local)
|
||||
|
||||
if(!istype(player, /mob/living)) continue //We only care for living players
|
||||
if(!isliving(player)) continue //We only care for living players
|
||||
var/mob/living/L = player
|
||||
players += 1
|
||||
if(L.client.inactivity > INACTIVITY_CAP)
|
||||
|
||||
@@ -240,8 +240,8 @@
|
||||
target.radio.keyslot = new /obj/item/encryptionkey/syndicate(target)
|
||||
target.radio.syndie = 1
|
||||
target.module.channels += list("[selected_radio_channel]" = 1)
|
||||
target.radio.channels[selected_radio_channel] += target.module.channels[selected_radio_channel]
|
||||
target.radio.secure_radio_connections[selected_radio_channel] += radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
|
||||
target.radio.channels[selected_radio_channel] = target.module.channels[selected_radio_channel]
|
||||
target.radio.secure_radio_connections[selected_radio_channel] = radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
|
||||
available_channels -= selected_radio_channel
|
||||
to_chat(usr, span_danger("You added \"[selected_radio_channel]\" channel to [target]."))
|
||||
if(MODIFIY_ROBOT_RADIOC_REMOVE)
|
||||
@@ -258,7 +258,7 @@
|
||||
target.radio.syndie = 0
|
||||
target.radio.channels = list()
|
||||
for(var/n_chan in target.module.channels)
|
||||
target.radio.channels[n_chan] -= target.module.channels[n_chan]
|
||||
target.radio.channels[n_chan] = target.module.channels[n_chan]
|
||||
radio_controller.remove_object(target.radio, radiochannels[selected_radio_channel])
|
||||
target.radio.secure_radio_connections -= selected_radio_channel
|
||||
to_chat(usr, span_danger("You removed \"[selected_radio_channel]\" channel from [target]."))
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
return
|
||||
|
||||
if (ismob(M))
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
if(isAI(M))
|
||||
tgui_alert_async(usr, "The AI can't be sent to prison you jerk!")
|
||||
return
|
||||
//strip their stuff before they teleport into a cell :downs:
|
||||
@@ -34,7 +34,7 @@
|
||||
M.Paralyse(5)
|
||||
sleep(5) //so they black out before warping
|
||||
M.loc = pick(prisonwarp)
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/prisoner = M
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/under/color/prison(prisoner), slot_w_uniform)
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
|
||||
@@ -764,7 +764,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
log_admin("[key_name(usr)] has gibbed [key_name(M)]")
|
||||
message_admins("[key_name_admin(usr)] has gibbed [key_name_admin(M)]", 1)
|
||||
|
||||
if(istype(M, /mob/observer/dead))
|
||||
if(isobserver(M))
|
||||
gibs(M.loc)
|
||||
return
|
||||
|
||||
@@ -782,7 +782,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(!confirm)
|
||||
return
|
||||
if(confirm == "Yes")
|
||||
if (istype(mob, /mob/observer/dead)) // so they don't spam gibs everywhere
|
||||
if (isobserver(mob)) // so they don't spam gibs everywhere
|
||||
return
|
||||
else
|
||||
mob.gib()
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
if(!check_rights(0)) return
|
||||
|
||||
var/mob/M = locate(href_list["give_ai"])
|
||||
if(!istype(M, /mob/living))
|
||||
if(!isliving(M))
|
||||
to_chat(usr, span_notice("This can only be used on instances of type /mob/living"))
|
||||
return
|
||||
var/mob/living/L = M
|
||||
@@ -419,17 +419,17 @@
|
||||
var/list/possibleverbs = list()
|
||||
possibleverbs += "Cancel" // One for the top...
|
||||
possibleverbs += typesof(/mob/proc, /mob/verb)
|
||||
if(istype(H,/mob/observer/dead))
|
||||
if(isobserver(H))
|
||||
possibleverbs += typesof(/mob/observer/dead/proc,/mob/observer/dead/verb)
|
||||
if(istype(H,/mob/living))
|
||||
if(isliving(H))
|
||||
possibleverbs += typesof(/mob/living/proc,/mob/living/verb)
|
||||
if(istype(H,/mob/living/carbon/human))
|
||||
if(ishuman(H))
|
||||
possibleverbs += typesof(/mob/living/carbon/proc,/mob/living/carbon/verb,/mob/living/carbon/human/verb,/mob/living/carbon/human/proc)
|
||||
if(istype(H,/mob/living/silicon/robot))
|
||||
if(isrobot(H))
|
||||
possibleverbs += typesof(/mob/living/silicon/proc,/mob/living/silicon/robot/proc,/mob/living/silicon/robot/verb)
|
||||
if(istype(H,/mob/living/silicon/ai))
|
||||
if(isAI(H))
|
||||
possibleverbs += typesof(/mob/living/silicon/proc,/mob/living/silicon/ai/proc,/mob/living/silicon/ai/verb)
|
||||
if(istype(H,/mob/living/simple_mob))
|
||||
if(isanimal(H))
|
||||
possibleverbs += typesof(/mob/living/simple_mob/proc)
|
||||
possibleverbs -= H.verbs
|
||||
possibleverbs += "Cancel" // ...And one for the bottom
|
||||
|
||||
Reference in New Issue
Block a user