Merge branch 'master' into Projectile_Rework
This commit is contained in:
@@ -25,7 +25,9 @@
|
||||
to_chat(usr, "<span class='warning'>You seem to be selecting a mob that doesn't exist anymore.</span>", confidential = TRUE)
|
||||
return
|
||||
|
||||
var/body = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Options for [M.key]</title></head>"
|
||||
//ambition start
|
||||
var/list/body = list("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Options for [M.key]</title></head>")
|
||||
//ambition end
|
||||
body += "<body>Options panel for <b>[M]</b>"
|
||||
if(M.client)
|
||||
body += " played by <b>[M.client]</b> "
|
||||
@@ -125,6 +127,10 @@
|
||||
body += "<A href='?_src_=holder;[HrefToken()];subtlemessage=[REF(M)]'>Subtle message</A> | "
|
||||
// body += "<A href='?_src_=holder;[HrefToken()];playsoundto=[REF(M)]'>Play sound to</A> | "
|
||||
body += "<A href='?_src_=holder;[HrefToken()];languagemenu=[REF(M)]'>Language Menu</A>"
|
||||
//ambition start
|
||||
if(M.mind)
|
||||
body += " | <A href='?_src_=holder;[HrefToken()];ObjectiveRequest=[REF(M.mind)]'>Objective-Ambition Menu</A>"
|
||||
//ambition end
|
||||
|
||||
if (M.client)
|
||||
if(!isnewplayer(M))
|
||||
@@ -206,7 +212,11 @@
|
||||
body += "<br>"
|
||||
body += "</body></html>"
|
||||
|
||||
usr << browse(body, "window=adminplayeropts-[REF(M)];size=550x515")
|
||||
//ambition start
|
||||
var/datum/browser/popup = new(usr, "adminplayeropts-[REF(M)]", "Player Panel", nwidth = 550, nheight = 515)
|
||||
popup.set_content(body.Join())
|
||||
popup.open()
|
||||
//ambition end
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Player Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
/datum/player_playtime/New(mob/viewer)
|
||||
ui_interact(viewer)
|
||||
|
||||
/datum/player_playtime/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "PlayerPlaytimes", "Player Playtimes")
|
||||
ui.open()
|
||||
|
||||
/datum/player_playtime/ui_state(mob/user)
|
||||
return GLOB.admin_state
|
||||
|
||||
/datum/player_playtime/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
var/list/clients = list()
|
||||
for(var/client/C in GLOB.clients)
|
||||
var/list/client = list()
|
||||
|
||||
client["ckey"] = C.ckey
|
||||
client["playtime"] = C.get_exp_living(TRUE)
|
||||
client["playtime_hours"] = C.get_exp_living()
|
||||
|
||||
var/mob/M = C.mob
|
||||
client["observer"] = isobserver(M)
|
||||
client["ingame"] = !isnewplayer(M)
|
||||
client["name"] = M.real_name
|
||||
var/nnpa = CONFIG_GET(number/notify_new_player_age)
|
||||
if(nnpa >= 0)
|
||||
if(C.account_age >= 0 && (C.account_age < CONFIG_GET(number/notify_new_player_age)))
|
||||
client["new_account"] = "New BYOND account [C.account_age] day[(C.account_age==1?"":"s")] old, created on [C.account_join_date]"
|
||||
|
||||
clients += list(client)
|
||||
|
||||
clients = sortList(clients, /proc/cmp_playtime)
|
||||
data["clients"] = clients
|
||||
return data
|
||||
|
||||
/datum/player_playtime/ui_act(action, params)
|
||||
if(..())
|
||||
return
|
||||
|
||||
switch(action)
|
||||
if("view_playtime")
|
||||
var/mob/target = get_mob_by_ckey(params["ckey"])
|
||||
usr.client.holder.cmd_show_exp_panel(target.client)
|
||||
if("admin_pm")
|
||||
usr.client.cmd_admin_pm(params["ckey"])
|
||||
if("player_panel")
|
||||
var/mob/target = get_mob_by_ckey(params["ckey"])
|
||||
usr.client.holder.show_player_panel(target)
|
||||
if("view_variables")
|
||||
var/mob/target = get_mob_by_ckey(params["ckey"])
|
||||
usr.client.debug_variables(target)
|
||||
if("observe")
|
||||
if(!isobserver(usr) && !check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
var/mob/target = get_mob_by_key(params["ckey"])
|
||||
if(!target)
|
||||
to_chat(usr, "<span class='notice'>Player not found.</span>")
|
||||
return
|
||||
|
||||
var/client/C = usr.client
|
||||
if(!isobserver(usr) && !C.admin_ghost())
|
||||
return
|
||||
var/mob/dead/observer/A = C.mob
|
||||
A.ManualFollow(target)
|
||||
@@ -1686,8 +1686,8 @@
|
||||
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/observer = L
|
||||
observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit/black(observer), SLOT_W_UNIFORM)
|
||||
observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), SLOT_SHOES)
|
||||
observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit/black(observer), ITEM_SLOT_ICLOTHING)
|
||||
observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), ITEM_SLOT_FEET)
|
||||
L.Unconscious(100)
|
||||
sleep(5)
|
||||
L.forceMove(pick(GLOB.tdomeobserve))
|
||||
@@ -2022,6 +2022,18 @@
|
||||
|
||||
var/mob/M = locate(href_list["HeadsetMessage"])
|
||||
usr.client.admin_headset_message(M)
|
||||
//ambition start
|
||||
else if(href_list["ObjectiveRequest"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
var/datum/mind/requesting_mind = locate(href_list["ObjectiveRequest"])
|
||||
if(!istype(requesting_mind) || QDELETED(requesting_mind))
|
||||
to_chat(usr, "<span class='warning'>This mind reference is no longer valid. It has probably since been destroyed.</span>")
|
||||
return
|
||||
requesting_mind.do_edit_objectives_ambitions()
|
||||
return
|
||||
//ambition end
|
||||
|
||||
|
||||
else if(href_list["reject_custom_name"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
id.forceMove(W)
|
||||
W.update_icon()
|
||||
else
|
||||
H.equip_to_slot(id,SLOT_WEAR_ID)
|
||||
H.equip_to_slot(id,ITEM_SLOT_ID)
|
||||
|
||||
else
|
||||
alert("Invalid mob")
|
||||
|
||||
@@ -1557,6 +1557,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
/client/proc/cmd_admin_check_player_exp() //Allows admins to determine who the newer players are.
|
||||
set category = "Admin"
|
||||
set name = "Player Playtime"
|
||||
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
@@ -1564,12 +1565,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
to_chat(usr, "<span class='warning'>Tracking is disabled in the server configuration file.</span>")
|
||||
return
|
||||
|
||||
var/list/msg = list()
|
||||
msg += "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Playtime Report</title></head><body>Playtime:<BR><UL>"
|
||||
for(var/client/C in GLOB.clients)
|
||||
msg += "<LI> - [key_name_admin(C)]: <A href='?_src_=holder;[HrefToken()];getplaytimewindow=[REF(C.mob)]'>" + C.get_exp_living() + "</a></LI>"
|
||||
msg += "</UL></BODY></HTML>"
|
||||
src << browse(msg.Join(), "window=Player_playtime_check")
|
||||
new /datum/player_playtime(usr)
|
||||
|
||||
/obj/effect/temp_visual/fireball
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
|
||||
@@ -50,6 +50,10 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
var/show_name_in_check_antagonists = FALSE
|
||||
/// Should this antagonist be shown as antag to ghosts? Shouldn't be used for stealthy antagonists like traitors
|
||||
var/show_to_ghosts = FALSE
|
||||
//ambition start
|
||||
/// Lazy list for antagonists to request the admins objectives.
|
||||
var/list/requested_objective_changes
|
||||
//ambition end
|
||||
|
||||
/* CIT SPECIFIC */
|
||||
/// Quirks that will be removed upon gaining this antag. Pacifist and mute are default.
|
||||
@@ -78,7 +82,9 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
if(!owner)
|
||||
stack_trace("Destroy()ing antagonist datum when it has no owner.")
|
||||
else
|
||||
LAZYREMOVE(owner.antag_datums, src)
|
||||
//ambition start
|
||||
owner?.do_remove_antag_datum(src)
|
||||
//ambition end
|
||||
owner = null
|
||||
return ..()
|
||||
|
||||
@@ -230,7 +236,7 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
|
||||
remove_innate_effects()
|
||||
clear_antag_moodies()
|
||||
LAZYREMOVE(owner.antag_datums, src)
|
||||
owner.do_remove_antag_datum(src)
|
||||
// cit skill
|
||||
for(var/A in skill_modifiers)
|
||||
owner.remove_skill_modifier(GET_SKILL_MOD_ID(A, type))
|
||||
@@ -524,3 +530,33 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
|
||||
/datum/action/antag_info/IsAvailable()
|
||||
return TRUE
|
||||
|
||||
///Clears change requests from deleted objectives to avoid broken references.
|
||||
/datum/antagonist/proc/clean_request_from_del_objective(datum/objective/source, force)
|
||||
var/objective_reference = REF(source)
|
||||
for(var/uid in requested_objective_changes)
|
||||
var/list/change_request = requested_objective_changes[uid]
|
||||
if(change_request["target"] != objective_reference)
|
||||
continue
|
||||
LAZYREMOVE(requested_objective_changes, uid)
|
||||
|
||||
|
||||
/datum/antagonist/proc/add_objective_change(uid, list/additions)
|
||||
LAZYADD(requested_objective_changes, uid)
|
||||
var/datum/objective/request_target = additions["target"]
|
||||
if(!ispath(request_target))
|
||||
request_target = locate(request_target) in objectives
|
||||
if(istype(request_target))
|
||||
RegisterSignal(request_target, COMSIG_PARENT_QDELETING, .proc/clean_request_from_del_objective)
|
||||
requested_objective_changes[uid] = additions
|
||||
|
||||
|
||||
/datum/antagonist/proc/remove_objective_change(uid)
|
||||
if(!LAZYACCESS(requested_objective_changes, uid))
|
||||
return
|
||||
var/datum/objective/request_target = requested_objective_changes[uid]["target"]
|
||||
if(!ispath(request_target))
|
||||
request_target = locate(request_target) in objectives
|
||||
if(istype(request_target))
|
||||
UnregisterSignal(request_target, COMSIG_PARENT_QDELETING)
|
||||
LAZYREMOVE(requested_objective_changes, uid)
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/suit/armor/abductor/vest/item_action_slot_check(slot, mob/user, datum/action/A)
|
||||
if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to activate the vest if he's actually wearing it.
|
||||
if(slot == ITEM_SLOT_OCLOTHING) //we only give the mob the ability to activate the vest if he's actually wearing it.
|
||||
return TRUE
|
||||
|
||||
/obj/item/clothing/suit/armor/abductor/vest/proc/SetDisguise(datum/icon_snapshot/entry)
|
||||
|
||||
@@ -71,6 +71,11 @@
|
||||
/obj/structure/blob/CanAtmosPass(turf/T)
|
||||
return !atmosblock
|
||||
|
||||
/obj/structure/blob/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller)
|
||||
. = FALSE
|
||||
if(istype(caller))
|
||||
. = . || (caller.pass_flags & PASSBLOB)
|
||||
|
||||
/obj/structure/blob/update_icon() //Updates color based on overmind color if we have an overmind.
|
||||
if(overmind)
|
||||
add_atom_colour(overmind.blobstrain.color, FIXED_COLOUR_PRIORITY)
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
return FALSE
|
||||
if(owner.current.reagents.has_reagent(/datum/reagent/consumable/garlic))
|
||||
return FALSE
|
||||
if(istype(owner.current.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace))
|
||||
if(istype(owner.current.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/garlic_necklace))
|
||||
return FALSE
|
||||
owner.current.adjustStaminaLoss(-1.5 + (actual_regen * -7) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more.
|
||||
owner.current.adjustCloneLoss(-0.1 * (actual_regen * 2) * mult, 0)
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
if(display_error)
|
||||
to_chat(owner, "<span class='warning'>You have a stake in your chest! Your powers are useless.</span>")
|
||||
return FALSE
|
||||
if(istype(owner.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace))
|
||||
if(istype(owner.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/garlic_necklace))
|
||||
if(display_error)
|
||||
to_chat(owner, "<span class='warning'The necklace on your neck is interfering with your powers!</span>")
|
||||
return FALSE
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
var/mob/living/carbon/user_C = owner
|
||||
//message_admins("DEBUG3: attempt_cast() [name] / [user_C.handcuffed] ")
|
||||
if(user_C.handcuffed)
|
||||
var/obj/O = user_C.get_item_by_slot(SLOT_HANDCUFFED)
|
||||
var/obj/O = user_C.get_item_by_slot(ITEM_SLOT_HANDCUFFED)
|
||||
if(istype(O))
|
||||
user_C.clear_cuffs(O,TRUE)
|
||||
playsound(get_turf(usr), 'sound/effects/grillehit.ogg', 80, 1, -1)
|
||||
@@ -124,7 +124,7 @@
|
||||
return TRUE */
|
||||
// Destroy Leg Cuffs
|
||||
if(user_C.legcuffed)
|
||||
var/obj/O = user_C.get_item_by_slot(SLOT_LEGCUFFED)
|
||||
var/obj/O = user_C.get_item_by_slot(ITEM_SLOT_LEGCUFFED)
|
||||
if(istype(O))
|
||||
user_C.clear_cuffs(O,TRUE)
|
||||
playsound(get_turf(usr), 'sound/effects/grillehit.ogg', 80, 1, -1)
|
||||
|
||||
@@ -65,7 +65,9 @@
|
||||
user.copy_languages(target, LANGUAGE_ABSORB)
|
||||
|
||||
if(target.mind && user.mind)//if the victim and user have minds
|
||||
target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes.
|
||||
//ambition start
|
||||
to_chat(user, "<i>[target.mind.show_memory()]</i>") //I can read your mind, kekeke. Output all their notes.
|
||||
//ambition end
|
||||
|
||||
//Some of target's recent speech, so the changeling can attempt to imitate them better.
|
||||
//Recent as opposed to all because rounds tend to have a LOT of text.
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
return FALSE
|
||||
|
||||
if(user.handcuffed)
|
||||
var/obj/O = user.get_item_by_slot(SLOT_HANDCUFFED)
|
||||
var/obj/O = user.get_item_by_slot(ITEM_SLOT_HANDCUFFED)
|
||||
if(!istype(O))
|
||||
return FALSE
|
||||
user.visible_message("<span class='warning'>[user] vomits a glob of acid on [user.p_their()] [O]!</span>", \
|
||||
@@ -27,7 +27,7 @@
|
||||
used = TRUE
|
||||
|
||||
if(user.legcuffed)
|
||||
var/obj/O = user.get_item_by_slot(SLOT_LEGCUFFED)
|
||||
var/obj/O = user.get_item_by_slot(ITEM_SLOT_LEGCUFFED)
|
||||
if(!istype(O))
|
||||
return FALSE
|
||||
user.visible_message("<span class='warning'>[user] vomits a glob of acid on [user.p_their()] [O]!</span>", \
|
||||
@@ -37,7 +37,7 @@
|
||||
used = TRUE
|
||||
|
||||
if(user.wear_suit && user.wear_suit.breakouttime && !used)
|
||||
var/obj/item/clothing/suit/S = user.get_item_by_slot(SLOT_WEAR_SUIT)
|
||||
var/obj/item/clothing/suit/S = user.get_item_by_slot(ITEM_SLOT_OCLOTHING)
|
||||
if(!istype(S))
|
||||
return FALSE
|
||||
user.visible_message("<span class='warning'>[user] vomits a glob of acid across the front of [user.p_their()] [S]!</span>", \
|
||||
|
||||
@@ -130,8 +130,8 @@
|
||||
user.dropItemToGround(user.head)
|
||||
user.dropItemToGround(user.wear_suit)
|
||||
|
||||
user.equip_to_slot_if_possible(new suit_type(user), SLOT_WEAR_SUIT, 1, 1, 1)
|
||||
user.equip_to_slot_if_possible(new helmet_type(user), SLOT_HEAD, 1, 1, 1)
|
||||
user.equip_to_slot_if_possible(new suit_type(user), ITEM_SLOT_OCLOTHING, 1, 1, 1)
|
||||
user.equip_to_slot_if_possible(new helmet_type(user), ITEM_SLOT_HEAD, 1, 1, 1)
|
||||
|
||||
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
changeling.chem_recharge_slowdown += recharge_slowdown
|
||||
@@ -637,7 +637,7 @@
|
||||
|
||||
user.dropItemToGround(user.gloves)
|
||||
|
||||
user.equip_to_slot_if_possible(new glove_type(user), SLOT_GLOVES, 1, 1, 1)
|
||||
user.equip_to_slot_if_possible(new glove_type(user), ITEM_SLOT_GLOVES, 1, 1, 1)
|
||||
playsound(user, 'sound/effects/blobattack.ogg', 30, 1)
|
||||
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
|
||||
changeling.chem_recharge_slowdown += recharge_slowdown
|
||||
@@ -733,7 +733,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/fingerless/pugilist/cling/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(current_equipped_slot == SLOT_GLOVES)
|
||||
if(current_equipped_slot == ITEM_SLOT_GLOVES)
|
||||
to_chat(user, "<span class='notice'>With [src] formed around our arms, we are ready to fight.</span>")
|
||||
|
||||
/obj/item/clothing/gloves/fingerless/pugilist/cling/dropped(mob/user)
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
return
|
||||
if(!isturf(user.loc))
|
||||
return
|
||||
if(!AStar(user, target.loc, /turf/proc/Distance, changeling.sting_range, simulated_only = 0))
|
||||
return
|
||||
if(!length(get_path_to(user, target, max_distance = changeling.sting_range, simulated_only = FALSE)))
|
||||
return // no path within the sting's range is found. what a weird place to use the pathfinding system
|
||||
return 1
|
||||
|
||||
/obj/effect/proc_holder/changeling/sting/sting_feedback(mob/user, mob/target)
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
/obj/item/clothing/head/helmet/clockwork/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(slot == SLOT_HEAD && !is_servant_of_ratvar(user))
|
||||
if(slot == ITEM_SLOT_HEAD && !is_servant_of_ratvar(user))
|
||||
if(!iscultist(user))
|
||||
to_chat(user, "<span class='heavy_brass'>\"Now now, this is for my servants, not you.\"</span>")
|
||||
user.visible_message("<span class='warning'>As [user] puts [src] on, it flickers off [user.p_their()] head!</span>", "<span class='warning'>The helmet flickers off your head, leaving only nausea!</span>")
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
/obj/item/clothing/suit/armor/clockwork/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(slot == SLOT_WEAR_SUIT && !is_servant_of_ratvar(user))
|
||||
if(slot == ITEM_SLOT_OCLOTHING && !is_servant_of_ratvar(user))
|
||||
if(!iscultist(user))
|
||||
to_chat(user, "<span class='heavy_brass'>\"Now now, this is for my servants, not you.\"</span>")
|
||||
user.visible_message("<span class='warning'>As [user] puts [src] on, it flickers off [user.p_their()] body!</span>", "<span class='warning'>The cuirass flickers off your body, leaving only nausea!</span>")
|
||||
@@ -165,7 +165,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/clockwork/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(slot == SLOT_GLOVES && !is_servant_of_ratvar(user))
|
||||
if(slot == ITEM_SLOT_GLOVES && !is_servant_of_ratvar(user))
|
||||
if(!iscultist(user))
|
||||
to_chat(user, "<span class='heavy_brass'>\"Now now, this is for my servants, not you.\"</span>")
|
||||
user.visible_message("<span class='warning'>As [user] puts [src] on, it flickers off [user.p_their()] arms!</span>", "<span class='warning'>The gauntlets flicker off your arms, leaving only nausea!</span>")
|
||||
@@ -215,7 +215,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/clockwork/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(slot == SLOT_SHOES && !is_servant_of_ratvar(user))
|
||||
if(slot == ITEM_SLOT_FEET && !is_servant_of_ratvar(user))
|
||||
if(!iscultist(user))
|
||||
to_chat(user, "<span class='heavy_brass'>\"Now now, this is for my servants, not you.\"</span>")
|
||||
user.visible_message("<span class='warning'>As [user] puts [src] on, it flickers off [user.p_their()] feet!</span>", "<span class='warning'>The treads flicker off your feet, leaving only nausea!</span>")
|
||||
|
||||
@@ -117,4 +117,4 @@
|
||||
S.no_cost = TRUE
|
||||
if(seasonal_hat && seasonal_hat != "none")
|
||||
var/obj/item/hat = new seasonal_hat(construct)
|
||||
construct.equip_to_slot_or_del(hat, SLOT_HEAD)
|
||||
construct.equip_to_slot_or_del(hat, ITEM_SLOT_HEAD)
|
||||
|
||||
@@ -28,13 +28,13 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/glasses/judicial_visor/item_action_slot_check(slot, mob/user, datum/action/A)
|
||||
if(slot != SLOT_GLASSES)
|
||||
if(slot != ITEM_SLOT_EYES)
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/glasses/judicial_visor/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(slot != SLOT_GLASSES)
|
||||
if(slot != ITEM_SLOT_EYES)
|
||||
update_status(FALSE)
|
||||
if(blaster.ranged_ability_user)
|
||||
blaster.remove_ranged_ability()
|
||||
@@ -55,13 +55,13 @@
|
||||
addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later
|
||||
|
||||
/obj/item/clothing/glasses/judicial_visor/proc/check_on_mob(mob/user)
|
||||
if(user && src != user.get_item_by_slot(SLOT_GLASSES)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from
|
||||
if(user && src != user.get_item_by_slot(ITEM_SLOT_EYES)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from
|
||||
update_status(FALSE)
|
||||
if(blaster.ranged_ability_user)
|
||||
blaster.remove_ranged_ability()
|
||||
|
||||
/obj/item/clothing/glasses/judicial_visor/attack_self(mob/user)
|
||||
if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(SLOT_GLASSES))
|
||||
if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(ITEM_SLOT_EYES))
|
||||
blaster.toggle(user)
|
||||
|
||||
/obj/item/clothing/glasses/judicial_visor/proc/update_status(change_to)
|
||||
@@ -89,7 +89,7 @@
|
||||
if(!src)
|
||||
return 0
|
||||
recharging = FALSE
|
||||
if(user && src == user.get_item_by_slot(SLOT_GLASSES))
|
||||
if(user && src == user.get_item_by_slot(ITEM_SLOT_EYES))
|
||||
to_chat(user, "<span class='brass'>Your [name] hums. It is ready.</span>")
|
||||
else
|
||||
active = FALSE
|
||||
@@ -115,7 +115,7 @@
|
||||
/obj/effect/proc_holder/judicial_visor/InterceptClickOn(mob/living/caller, params, atom/target)
|
||||
if(..())
|
||||
return
|
||||
if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(SLOT_GLASSES))
|
||||
if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(ITEM_SLOT_EYES))
|
||||
remove_ranged_ability()
|
||||
return
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
/obj/item/clothing/glasses/wraith_spectacles/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(slot != SLOT_GLASSES || up)
|
||||
if(slot != ITEM_SLOT_EYES || up)
|
||||
return
|
||||
if(HAS_TRAIT(user, TRAIT_BLIND))
|
||||
to_chat(user, "<span class='heavy_brass'>\"You're blind, idiot. Stop embarrassing yourself.\"</span>" )
|
||||
|
||||
@@ -200,18 +200,18 @@
|
||||
|
||||
/datum/action/innate/clockwork_armaments/Activate()
|
||||
var/do_message = 0
|
||||
var/obj/item/I = owner.get_item_by_slot(SLOT_WEAR_SUIT)
|
||||
var/obj/item/I = owner.get_item_by_slot(ITEM_SLOT_OCLOTHING)
|
||||
if(remove_item_if_better(I, owner))
|
||||
do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), SLOT_WEAR_SUIT)
|
||||
I = owner.get_item_by_slot(SLOT_HEAD)
|
||||
do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), ITEM_SLOT_OCLOTHING)
|
||||
I = owner.get_item_by_slot(ITEM_SLOT_HEAD)
|
||||
if(remove_item_if_better(I, owner))
|
||||
do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), SLOT_HEAD)
|
||||
I = owner.get_item_by_slot(SLOT_GLOVES)
|
||||
do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), ITEM_SLOT_HEAD)
|
||||
I = owner.get_item_by_slot(ITEM_SLOT_GLOVES)
|
||||
if(remove_item_if_better(I, owner))
|
||||
do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), SLOT_GLOVES)
|
||||
I = owner.get_item_by_slot(SLOT_SHOES)
|
||||
do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), ITEM_SLOT_GLOVES)
|
||||
I = owner.get_item_by_slot(ITEM_SLOT_FEET)
|
||||
if(remove_item_if_better(I, owner))
|
||||
do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), SLOT_SHOES)
|
||||
do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), ITEM_SLOT_FEET)
|
||||
if(do_message)
|
||||
owner.visible_message("<span class='warning'>Strange armor appears on [owner]!</span>", "<span class='heavy_brass'>A bright shimmer runs down your body, equipping you with Ratvarian armor.</span>")
|
||||
playsound(owner, 'sound/magic/clockwork/fellowship_armory.ogg', 15 * do_message, TRUE) //get sound loudness based on how much we equipped
|
||||
@@ -309,16 +309,16 @@
|
||||
continue
|
||||
T = get_turf(M)
|
||||
var/heal_ticks = 0 //one heal tick for each piece of ratvarian armor worn
|
||||
var/obj/item/I = H.get_item_by_slot(SLOT_WEAR_SUIT)
|
||||
var/obj/item/I = H.get_item_by_slot(ITEM_SLOT_OCLOTHING)
|
||||
if(is_type_in_typecache(I, ratvarian_armor_typecache))
|
||||
heal_ticks++
|
||||
I = H.get_item_by_slot(SLOT_HEAD)
|
||||
I = H.get_item_by_slot(ITEM_SLOT_HEAD)
|
||||
if(is_type_in_typecache(I, ratvarian_armor_typecache))
|
||||
heal_ticks++
|
||||
I = H.get_item_by_slot(SLOT_GLOVES)
|
||||
I = H.get_item_by_slot(ITEM_SLOT_GLOVES)
|
||||
if(is_type_in_typecache(I, ratvarian_armor_typecache))
|
||||
heal_ticks++
|
||||
I = H.get_item_by_slot(SLOT_SHOES)
|
||||
I = H.get_item_by_slot(ITEM_SLOT_FEET)
|
||||
if(is_type_in_typecache(I, ratvarian_armor_typecache))
|
||||
heal_ticks++
|
||||
if(heal_ticks)
|
||||
|
||||
@@ -678,12 +678,12 @@
|
||||
uses--
|
||||
var/mob/living/carbon/C = target
|
||||
C.visible_message("<span class='warning'>Otherworldly armor suddenly appears on [C]!</span>")
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,SLOT_W_UNIFORM)
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), SLOT_HEAD)
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), SLOT_WEAR_SUIT)
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), SLOT_SHOES)
|
||||
C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), SLOT_BACK)
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/gloves/fingerless/pugilist/hungryghost(user), SLOT_GLOVES)
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,ITEM_SLOT_ICLOTHING)
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), ITEM_SLOT_HEAD)
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), ITEM_SLOT_OCLOTHING)
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), ITEM_SLOT_FEET)
|
||||
C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), ITEM_SLOT_BACK)
|
||||
C.equip_to_slot_or_del(new /obj/item/clothing/gloves/fingerless/pugilist/hungryghost(user), ITEM_SLOT_GLOVES)
|
||||
if(C == user)
|
||||
qdel(src) //Clears the hands
|
||||
C.put_in_hands(new /obj/item/melee/cultblade(user))
|
||||
|
||||
@@ -49,7 +49,10 @@
|
||||
cult_team = new_team
|
||||
|
||||
/datum/antagonist/cult/proc/add_objectives()
|
||||
objectives |= cult_team?.objectives
|
||||
//ambition start
|
||||
if(cult_team)
|
||||
objectives |= cult_team.objectives
|
||||
//ambition end
|
||||
|
||||
/datum/antagonist/cult/Destroy()
|
||||
QDEL_NULL(communion)
|
||||
@@ -95,9 +98,9 @@
|
||||
|
||||
/datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob)
|
||||
var/list/slots = list(
|
||||
"backpack" = SLOT_IN_BACKPACK,
|
||||
"left pocket" = SLOT_L_STORE,
|
||||
"right pocket" = SLOT_R_STORE
|
||||
"backpack" = ITEM_SLOT_BACKPACK,
|
||||
"left pocket" = ITEM_SLOT_LPOCKET,
|
||||
"right pocket" = ITEM_SLOT_RPOCKET
|
||||
)
|
||||
|
||||
var/T = new item_path(mob)
|
||||
|
||||
@@ -1090,7 +1090,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
/proc/hudFix(mob/living/carbon/human/target)
|
||||
if(!target || !target.client)
|
||||
return
|
||||
var/obj/O = target.get_item_by_slot(SLOT_GLASSES)
|
||||
var/obj/O = target.get_item_by_slot(ITEM_SLOT_EYES)
|
||||
if(istype(O, /obj/item/clothing/glasses/hud/security))
|
||||
var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
|
||||
AH.add_hud_to(target)
|
||||
|
||||
@@ -460,10 +460,10 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
|
||||
return -1
|
||||
currentMob.change_mob_type( /mob/living/carbon/human, targetturf, null, 1)
|
||||
var/mob/living/carbon/human/H = owner.current
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/civilian/lawyer/black(H), SLOT_W_UNIFORM)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), SLOT_SHOES)
|
||||
H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), SLOT_HANDS)
|
||||
H.equip_to_slot_or_del(new /obj/item/pen(H), SLOT_L_STORE)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/civilian/lawyer/black(H), ITEM_SLOT_ICLOTHING)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), ITEM_SLOT_FEET)
|
||||
H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), ITEM_SLOT_HANDS)
|
||||
H.equip_to_slot_or_del(new /obj/item/pen(H), ITEM_SLOT_LPOCKET)
|
||||
if(SOULVALUE >= BLOOD_THRESHOLD)
|
||||
H.set_species(/datum/species/lizard, 1)
|
||||
H.underwear = "Nude"
|
||||
|
||||
@@ -72,9 +72,9 @@
|
||||
|
||||
/datum/antagonist/heretic/proc/ecult_give_item(obj/item/item_path, mob/living/carbon/human/H)
|
||||
var/list/slots = list(
|
||||
"backpack" = SLOT_IN_BACKPACK,
|
||||
"left pocket" = SLOT_L_STORE,
|
||||
"right pocket" = SLOT_R_STORE
|
||||
"backpack" = ITEM_SLOT_BACKPACK,
|
||||
"left pocket" = ITEM_SLOT_LPOCKET,
|
||||
"right pocket" = ITEM_SLOT_RPOCKET
|
||||
)
|
||||
|
||||
var/T = new item_path(H)
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
|
||||
/obj/item/clothing/neck/eldritch_amulet/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(ishuman(user) && user.mind && slot == SLOT_NECK && (IS_HERETIC(user) || IS_HERETIC_MONSTER(user)))
|
||||
if(ishuman(user) && user.mind && slot == ITEM_SLOT_NECK && (IS_HERETIC(user) || IS_HERETIC_MONSTER(user)))
|
||||
ADD_TRAIT(user, trait, CLOTHING_TRAIT)
|
||||
user.update_sight()
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
|
||||
/obj/item/clothing/mask/void_mask/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(ishuman(user) && user.mind && slot == SLOT_WEAR_MASK)
|
||||
if(ishuman(user) && user.mind && slot == ITEM_SLOT_MASK)
|
||||
local_user = user
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
|
||||
@@ -234,8 +234,8 @@
|
||||
var/obj/O = new C(owner.current)
|
||||
var/list/slots = list (
|
||||
"backpack" = ITEM_SLOT_BACKPACK,
|
||||
"left pocket" = SLOT_L_STORE,
|
||||
"right pocket" = SLOT_R_STORE
|
||||
"left pocket" = ITEM_SLOT_LPOCKET,
|
||||
"right pocket" = ITEM_SLOT_RPOCKET
|
||||
)
|
||||
var/mob/living/carbon/human/H = owner.current
|
||||
var/equipped = H.equip_in_one_of_slots(O, slots)
|
||||
|
||||
@@ -45,11 +45,11 @@
|
||||
qdel(I)
|
||||
for(var/obj/item/I in H.held_items)
|
||||
qdel(I)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/kilt/highlander(H), SLOT_W_UNIFORM)
|
||||
H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), SLOT_EARS)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), SLOT_HEAD)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), SLOT_SHOES)
|
||||
H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), SLOT_L_STORE)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/kilt/highlander(H), ITEM_SLOT_ICLOTHING)
|
||||
H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), ITEM_SLOT_EARS)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), ITEM_SLOT_HEAD)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), ITEM_SLOT_FEET)
|
||||
H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), ITEM_SLOT_LPOCKET)
|
||||
for(var/obj/item/pinpointer/nuke/P in H)
|
||||
P.attack_self(H)
|
||||
var/obj/item/card/id/W = new(H)
|
||||
@@ -60,7 +60,7 @@
|
||||
W.registered_name = H.real_name
|
||||
ADD_TRAIT(W, TRAIT_NODROP, HIGHLANDER)
|
||||
W.update_label(H.real_name)
|
||||
H.equip_to_slot_or_del(W, SLOT_WEAR_ID)
|
||||
H.equip_to_slot_or_del(W, ITEM_SLOT_ID)
|
||||
|
||||
sword = new(H)
|
||||
if(!GLOB.highlander)
|
||||
|
||||
@@ -127,9 +127,9 @@
|
||||
// Give AI hacking board
|
||||
var/obj/item/aiModule/core/full/overthrow/O = new(H)
|
||||
var/list/slots = list (
|
||||
"backpack" = SLOT_IN_BACKPACK,
|
||||
"left pocket" = SLOT_L_STORE,
|
||||
"right pocket" = SLOT_R_STORE
|
||||
"backpack" = ITEM_SLOT_BACKPACK,
|
||||
"left pocket" = ITEM_SLOT_LPOCKET,
|
||||
"right pocket" = ITEM_SLOT_RPOCKET
|
||||
)
|
||||
var/where = H.equip_in_one_of_slots(O, slots, critical = TRUE)
|
||||
if (!where)
|
||||
|
||||
@@ -272,9 +272,9 @@
|
||||
if(give_flash)
|
||||
var/obj/item/assembly/flash/T = new(H)
|
||||
var/list/slots = list (
|
||||
"backpack" = SLOT_IN_BACKPACK,
|
||||
"left pocket" = SLOT_L_STORE,
|
||||
"right pocket" = SLOT_R_STORE
|
||||
"backpack" = ITEM_SLOT_BACKPACK,
|
||||
"left pocket" = ITEM_SLOT_LPOCKET,
|
||||
"right pocket" = ITEM_SLOT_RPOCKET
|
||||
)
|
||||
var/where = H.equip_in_one_of_slots(T, slots, critical = TRUE)
|
||||
if (!where)
|
||||
|
||||
@@ -240,9 +240,9 @@
|
||||
folder = new/obj/item/folder/syndicate/blue(mob.loc)
|
||||
|
||||
var/list/slots = list (
|
||||
"backpack" = SLOT_IN_BACKPACK,
|
||||
"left pocket" = SLOT_L_STORE,
|
||||
"right pocket" = SLOT_R_STORE
|
||||
"backpack" = ITEM_SLOT_BACKPACK,
|
||||
"left pocket" = ITEM_SLOT_LPOCKET,
|
||||
"right pocket" = ITEM_SLOT_RPOCKET
|
||||
)
|
||||
|
||||
var/where = "At your feet"
|
||||
|
||||
@@ -229,12 +229,12 @@
|
||||
H.dropItemToGround(I)
|
||||
|
||||
var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionnaire)
|
||||
H.equip_to_slot_or_del(new hat(H), SLOT_HEAD)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), SLOT_W_UNIFORM)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), SLOT_SHOES)
|
||||
H.equip_to_slot_or_del(new hat(H), ITEM_SLOT_HEAD)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), ITEM_SLOT_ICLOTHING)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), ITEM_SLOT_FEET)
|
||||
H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE)
|
||||
H.put_in_hands(new /obj/item/claymore(H), TRUE)
|
||||
H.equip_to_slot_or_del(new /obj/item/spear(H), SLOT_BACK)
|
||||
H.equip_to_slot_or_del(new /obj/item/spear(H), ITEM_SLOT_BACK)
|
||||
|
||||
|
||||
/obj/item/voodoo
|
||||
|
||||
@@ -208,17 +208,17 @@
|
||||
if(!istype(master_mob) || !istype(H))
|
||||
return
|
||||
if(master_mob.ears)
|
||||
H.equip_to_slot_or_del(new master_mob.ears.type, SLOT_EARS)
|
||||
H.equip_to_slot_or_del(new master_mob.ears.type, ITEM_SLOT_EARS)
|
||||
if(master_mob.w_uniform)
|
||||
H.equip_to_slot_or_del(new master_mob.w_uniform.type, SLOT_W_UNIFORM)
|
||||
H.equip_to_slot_or_del(new master_mob.w_uniform.type, ITEM_SLOT_ICLOTHING)
|
||||
if(master_mob.shoes)
|
||||
H.equip_to_slot_or_del(new master_mob.shoes.type, SLOT_SHOES)
|
||||
H.equip_to_slot_or_del(new master_mob.shoes.type, ITEM_SLOT_FEET)
|
||||
if(master_mob.wear_suit)
|
||||
H.equip_to_slot_or_del(new master_mob.wear_suit.type, SLOT_WEAR_SUIT)
|
||||
H.equip_to_slot_or_del(new master_mob.wear_suit.type, ITEM_SLOT_OCLOTHING)
|
||||
if(master_mob.head)
|
||||
H.equip_to_slot_or_del(new master_mob.head.type, SLOT_HEAD)
|
||||
H.equip_to_slot_or_del(new master_mob.head.type, ITEM_SLOT_HEAD)
|
||||
if(master_mob.back)
|
||||
H.equip_to_slot_or_del(new master_mob.back.type, SLOT_BACK)
|
||||
H.equip_to_slot_or_del(new master_mob.back.type, ITEM_SLOT_BACK)
|
||||
|
||||
//Operation: Fuck off and scare people
|
||||
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null))
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
heat_penalty = 10
|
||||
transmit_modifier = 30
|
||||
fire_products = list(GAS_H2O = 1)
|
||||
enthalpy = 40000
|
||||
enthalpy = 300000
|
||||
fire_burn_rate = 2
|
||||
fire_radiation_released = 50 // arbitrary number, basically 60 moles of trit burning will just barely start to harm you
|
||||
fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - 50
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
/obj/item/clothing/head/rice_hat/cursed/equipped(mob/M, slot)
|
||||
. = ..()
|
||||
if (slot == SLOT_HEAD)
|
||||
if (slot == ITEM_SLOT_HEAD)
|
||||
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
|
||||
else
|
||||
UnregisterSignal(M, COMSIG_MOB_SAY)
|
||||
|
||||
@@ -589,7 +589,7 @@
|
||||
back = /obj/item/storage/backpack
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
|
||||
internals_slot = SLOT_R_STORE
|
||||
internals_slot = ITEM_SLOT_RPOCKET
|
||||
|
||||
/obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive/female
|
||||
mob_gender = FEMALE
|
||||
|
||||
@@ -154,7 +154,15 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
|
||||
var/atom/target = locate(href_list["statpanel_item_target"])
|
||||
if(!target)
|
||||
return
|
||||
Click(target, target.loc, null, "[href_list["statpanel_item_shiftclick"]?"shift=1;":null][href_list["statpanel_item_ctrlclick"]?"ctrl=1;":null]&alt=[href_list["statpanel_item_altclick"]?"alt=1;":null]", FALSE, "statpanel")
|
||||
var/button = "left=1"
|
||||
switch(href_list["statpanel_item_click"])
|
||||
if("middle")
|
||||
button = "middle=1"
|
||||
if("right")
|
||||
button = "right=1"
|
||||
else
|
||||
button = "left=1"
|
||||
Click(target, target.loc, null, "[button];[href_list["statpanel_item_shiftclick"]?"shift=1;":null][href_list["statpanel_item_ctrlclick"]?"ctrl=1;":null]&alt=[href_list["statpanel_item_altclick"]?"alt=1;":null]", FALSE, "statpanel")
|
||||
|
||||
/client/proc/is_content_unlocked()
|
||||
if(!prefs.unlock_content)
|
||||
@@ -1012,6 +1020,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
|
||||
var/list/actualview = getviewsize(view)
|
||||
update_clickcatcher()
|
||||
parallax_holder.Reset()
|
||||
mob.hud_used.screentip_text.update_view()
|
||||
mob.reload_fullscreen()
|
||||
if (isliving(mob))
|
||||
var/mob/living/M = mob
|
||||
|
||||
@@ -62,6 +62,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/UI_style = null
|
||||
var/outline_enabled = TRUE
|
||||
var/outline_color = COLOR_THEME_MIDNIGHT
|
||||
var/screentip_pref = TRUE
|
||||
var/screentip_color = "#ffd391"
|
||||
var/buttons_locked = FALSE
|
||||
var/hotkeys = FALSE
|
||||
|
||||
@@ -788,6 +790,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>UI Style:</b> <a href='?_src_=prefs;task=input;preference=ui'>[UI_style]</a><br>"
|
||||
dat += "<b>Outline:</b> <a href='?_src_=prefs;preference=outline_enabled'>[outline_enabled ? "Enabled" : "Disabled"]</a><br>"
|
||||
dat += "<b>Outline Color:</b> [outline_color ? "<span style='border:1px solid #161616; background-color: [outline_color];'>" : "Theme-based (null)"] </span> <a href='?_src_=prefs;preference=outline_color'>Change</a><BR>"
|
||||
dat += "<b>Screentip:</b> <a href='?_src_=prefs;preference=screentip_pref'>[screentip_pref ? "Enabled" : "Disabled"]</a><br>"
|
||||
dat += "<b>Screentip Color:</b> <span style='border:1px solid #161616; background-color: [screentip_color];'> </span> <a href='?_src_=prefs;preference=screentip_color'>Change</a><BR>"
|
||||
dat += "<b>tgui Monitors:</b> <a href='?_src_=prefs;preference=tgui_lock'>[(tgui_lock) ? "Primary" : "All"]</a><br>"
|
||||
dat += "<b>tgui Style:</b> <a href='?_src_=prefs;preference=tgui_fancy'>[(tgui_fancy) ? "Fancy" : "No Frills"]</a><br>"
|
||||
dat += "<b>Show Runechat Chat Bubbles:</b> <a href='?_src_=prefs;preference=chat_on_map'>[chat_on_map ? "Enabled" : "Disabled"]</a><br>"
|
||||
@@ -2136,6 +2140,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/datum/sprite_accessory/S = instance
|
||||
if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id))
|
||||
continue
|
||||
if(S.ignore)
|
||||
continue
|
||||
if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
|
||||
snowflake_taur_list[S.name] = path
|
||||
var/new_taur
|
||||
@@ -2746,6 +2752,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/pickedOutlineColor = input(user, "Choose your outline color.", "General Preference", outline_color) as color|null
|
||||
if(pickedOutlineColor != pickedOutlineColor)
|
||||
outline_color = pickedOutlineColor // nullable
|
||||
if("screentip_pref")
|
||||
screentip_pref = !screentip_pref
|
||||
if("screentip_color")
|
||||
var/pickedScreentipColor = input(user, "Choose your screentip color.", "General Preference", screentip_color) as color|null
|
||||
if(pickedScreentipColor)
|
||||
screentip_color = pickedScreentipColor
|
||||
if("tgui_lock")
|
||||
tgui_lock = !tgui_lock
|
||||
if("winflash")
|
||||
@@ -3066,6 +3078,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
save_character()
|
||||
|
||||
character.dna.features = features.Copy()
|
||||
|
||||
character.set_species(chosen_species, icon_update = FALSE, pref_load = TRUE)
|
||||
character.dna.species.eye_type = eye_type
|
||||
if(chosen_limb_id && (chosen_limb_id in character.dna.species.allowed_limb_ids))
|
||||
@@ -3224,10 +3237,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/occupied_slots = L[initial(G.category)] ? L[initial(G.category)] + 1 : 1
|
||||
LAZYSET(L, initial(G.category), occupied_slots)
|
||||
switch(slot)
|
||||
if(SLOT_IN_BACKPACK)
|
||||
if(ITEM_SLOT_BACKPACK)
|
||||
if(L[LOADOUT_CATEGORY_BACKPACK] < BACKPACK_SLOT_AMT)
|
||||
return TRUE
|
||||
if(SLOT_HANDS)
|
||||
if(ITEM_SLOT_HANDS)
|
||||
if(L[LOADOUT_CATEGORY_HANDS] < HANDS_SLOT_AMT)
|
||||
return TRUE
|
||||
else
|
||||
|
||||
@@ -385,6 +385,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["UI_style"] >> UI_style
|
||||
S["outline_color"] >> outline_color
|
||||
S["outline_enabled"] >> outline_enabled
|
||||
S["screentip_pref"] >> screentip_pref
|
||||
S["screentip_color"] >> screentip_color
|
||||
S["hotkeys"] >> hotkeys
|
||||
S["chat_on_map"] >> chat_on_map
|
||||
S["max_chat_length"] >> max_chat_length
|
||||
@@ -567,6 +569,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["UI_style"], UI_style)
|
||||
WRITE_FILE(S["outline_enabled"], outline_enabled)
|
||||
WRITE_FILE(S["outline_color"], outline_color)
|
||||
WRITE_FILE(S["screentip_pref"], screentip_pref)
|
||||
WRITE_FILE(S["screentip_color"], screentip_color)
|
||||
WRITE_FILE(S["hotkeys"], hotkeys)
|
||||
WRITE_FILE(S["chat_on_map"], chat_on_map)
|
||||
WRITE_FILE(S["max_chat_length"], max_chat_length)
|
||||
|
||||
@@ -63,8 +63,8 @@
|
||||
// it's TRAIT_NODROP
|
||||
D.dropItemToGround(target, TRUE)
|
||||
qdel(old_headgear)
|
||||
// where is `SLOT_HEAD` defined? WHO KNOWS
|
||||
D.equip_to_slot(new_headgear, SLOT_HEAD)
|
||||
// where is `ITEM_SLOT_HEAD` defined? WHO KNOWS
|
||||
D.equip_to_slot(new_headgear, ITEM_SLOT_HEAD)
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
@@ -219,7 +219,7 @@
|
||||
..()
|
||||
if (!istype(user))
|
||||
return
|
||||
if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item?
|
||||
if(slot_flags & slot) //Was equipped to a valid slot for this item?
|
||||
if(iscarbon(user) && LAZYLEN(zones_disabled))
|
||||
RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/bristle)
|
||||
if(LAZYLEN(user_vars_to_edit))
|
||||
@@ -450,7 +450,7 @@ BLIND // can't see anything
|
||||
return FALSE
|
||||
|
||||
// Skip species restriction checks on non-equipment slots
|
||||
if(slot in list(SLOT_IN_BACKPACK, SLOT_L_STORE, SLOT_R_STORE))
|
||||
if(slot in list(ITEM_SLOT_BACKPACK, ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET))
|
||||
return TRUE
|
||||
|
||||
if(species_restricted && ishuman(M))
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/obj/item/clothing/ears/earmuffs/ComponentInitialize()
|
||||
. = ..()
|
||||
AddElement(/datum/element/earhealing)
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS))
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))
|
||||
|
||||
/obj/item/clothing/ears/headphones
|
||||
name = "headphones"
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
|
||||
|
||||
/obj/item/clothing/glasses/science/item_action_slot_check(slot, mob/user, datum/action/A)
|
||||
if(slot == SLOT_GLASSES)
|
||||
if(slot == ITEM_SLOT_EYES)
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/glasses/night
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
/obj/item/clothing/glasses/eyepatch/syndicate/equipped(mob/living/carbon/human/user, slot)
|
||||
. = ..()
|
||||
if(slot == SLOT_GLASSES)
|
||||
if(slot == ITEM_SLOT_EYES)
|
||||
user.visible_message("<span class='warning'>Circuitry from the eyepatch links itself to your brain as you put on the eyepatch.")
|
||||
if(HAS_TRAIT(user, TRAIT_POOR_AIM))
|
||||
user.visible_message("<span class='warning'>You hear a fizzing noise from the circuit. That can't be good.")
|
||||
@@ -351,7 +351,7 @@
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/blindfold/equipped(mob/living/carbon/human/user, slot)
|
||||
. = ..()
|
||||
if(slot == SLOT_GLASSES)
|
||||
if(slot == ITEM_SLOT_EYES)
|
||||
user.become_blind("blindfold_[REF(src)]")
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/blindfold/dropped(mob/living/carbon/human/user)
|
||||
@@ -372,7 +372,7 @@
|
||||
var/colored_before = FALSE
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/blindfold/white/equipped(mob/living/carbon/human/user, slot)
|
||||
if(ishuman(user) && slot == SLOT_GLASSES)
|
||||
if(ishuman(user) && slot == ITEM_SLOT_EYES)
|
||||
update_icon(user)
|
||||
user.update_inv_glasses() //Color might have been changed by update_icon.
|
||||
..()
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot)
|
||||
..()
|
||||
if(hud_type && slot == SLOT_GLASSES)
|
||||
if(hud_type && slot == ITEM_SLOT_EYES)
|
||||
var/datum/atom_hud/H = GLOB.huds[hud_type]
|
||||
H.add_hud_to(user)
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
/obj/item/clothing/glasses/phantomthief/syndicate/examine(mob/user)
|
||||
. = ..()
|
||||
if(user.get_item_by_slot(SLOT_GLASSES) == src)
|
||||
if(user.get_item_by_slot(ITEM_SLOT_EYES) == src)
|
||||
if(world.time >= nextadrenalinepop)
|
||||
. += "<span class='notice'>The built-in adrenaline injector is ready for use.</span>"
|
||||
else
|
||||
@@ -33,7 +33,7 @@
|
||||
. = ..()
|
||||
if(!istype(user))
|
||||
return
|
||||
if(slot != SLOT_GLASSES)
|
||||
if(slot != ITEM_SLOT_EYES)
|
||||
return
|
||||
RegisterSignal(user, COMSIG_LIVING_COMBAT_ENABLED, .proc/injectadrenaline)
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
C.visible_message("<span class='warning'>[U] sprays glittery rubber on the hands of [C]!</span>")
|
||||
else
|
||||
user.visible_message("<span class='warning'>The rubber fails to stick to [C]'s hands!</span>",
|
||||
"<span class='warning'>The rubber fails to stick to [C]'s [(SLOT_GLOVES in C.check_obscured_slots()) ? "unexposed" : ""] hands!</span>")
|
||||
"<span class='warning'>The rubber fails to stick to [C]'s [(ITEM_SLOT_GLOVES in C.check_obscured_slots()) ? "unexposed" : ""] hands!</span>")
|
||||
|
||||
qdel(src)
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/color/latex/equipped(mob/user, slot)
|
||||
..()
|
||||
if(slot == SLOT_GLOVES)
|
||||
if(slot == ITEM_SLOT_GLOVES)
|
||||
ADD_TRAIT(user, carrytrait, GLOVE_TRAIT)
|
||||
|
||||
/obj/item/clothing/gloves/color/latex/dropped(mob/user)
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
equip_delay_other = 20
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
strip_mod = 0.9
|
||||
custom_price = PRICE_ALMOST_CHEAP
|
||||
|
||||
@@ -36,7 +38,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/fingerless/pugilist/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(slot == SLOT_GLOVES)
|
||||
if(slot == ITEM_SLOT_GLOVES)
|
||||
wornonce = TRUE
|
||||
if((HAS_TRAIT(user, TRAIT_NOPUGILIST)))
|
||||
to_chat(user, "<span class='danger'>What purpose is there to don the weapons of pugilism if you're already well-practiced in martial arts? Mixing arts is blasphemous!</span>")
|
||||
@@ -195,7 +197,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/fingerless/ablative/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(current_equipped_slot == SLOT_GLOVES)
|
||||
if(current_equipped_slot == ITEM_SLOT_GLOVES)
|
||||
RegisterSignal(user, COMSIG_LIVING_ACTIVE_PARRY_START, .proc/get_component_parry_data)
|
||||
wornonce = TRUE
|
||||
|
||||
@@ -262,7 +264,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/fingerless/pugilist/mauler/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(slot == SLOT_GLOVES)
|
||||
if(slot == ITEM_SLOT_GLOVES)
|
||||
wornonce = TRUE
|
||||
if((HAS_TRAIT(user, TRAIT_NOPUGILIST)))
|
||||
return
|
||||
@@ -349,6 +351,8 @@
|
||||
transfer_prints = TRUE
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
strip_mod = 0.9
|
||||
|
||||
/obj/item/clothing/gloves/evening/black
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
//item_color = "white"
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
resistance_flags = NONE
|
||||
|
||||
/obj/item/clothing/gloves/mittens/random
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
transfer_prints = TRUE
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
resistance_flags = NONE
|
||||
//custom_premium_price = PRICE_EXPENSIVE
|
||||
/// For storing our tackler datum so we can remove it after
|
||||
@@ -28,7 +30,7 @@
|
||||
if(!ishuman(user))
|
||||
return
|
||||
switch(slot) // I didn't like how it looked
|
||||
if(SLOT_GLOVES)
|
||||
if(ITEM_SLOT_GLOVES)
|
||||
var/mob/living/carbon/human/H = user
|
||||
tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance)
|
||||
else
|
||||
@@ -103,7 +105,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/tackler/combat/insulated/infiltrator/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(slot == SLOT_GLOVES)
|
||||
if(slot == ITEM_SLOT_GLOVES)
|
||||
ADD_TRAIT(user, carrytrait, GLOVE_TRAIT)
|
||||
|
||||
/obj/item/clothing/gloves/tackler/combat/insulated/infiltrator/dropped(mob/user)
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
var/obj/item/WH = H.head
|
||||
H.visible_message("<span class='warning'>[src] bounces off [H]'s [WH.name]!", "<span class='warning'>[src] bounces off your [WH.name], falling to the floor.</span>")
|
||||
return
|
||||
if(H.equip_to_slot_if_possible(src, SLOT_HEAD, FALSE, TRUE))
|
||||
if(H.equip_to_slot_if_possible(src, ITEM_SLOT_HEAD, FALSE, TRUE))
|
||||
H.visible_message("<span class='notice'>[src] lands neatly on [H]'s head!", "<span class='notice'>[src] lands perfectly onto your head!</span>")
|
||||
return
|
||||
if(iscyborg(hit_atom))
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
/obj/item/clothing/head/helmet/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_HEAD))
|
||||
AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_HEAD))
|
||||
|
||||
/obj/item/clothing/head/helmet/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
|
||||
/obj/item/clothing/head/warden/drill/equipped(mob/M, slot)
|
||||
. = ..()
|
||||
if (slot == SLOT_HEAD)
|
||||
if (slot == ITEM_SLOT_HEAD)
|
||||
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
|
||||
else
|
||||
UnregisterSignal(M, COMSIG_MOB_SAY)
|
||||
|
||||
@@ -264,7 +264,8 @@
|
||||
item_state = "that"
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
dog_fashion = /datum/dog_fashion/head/santa
|
||||
beepsky_fashion = /datum/beepsky_fashion/santa
|
||||
|
||||
@@ -354,7 +355,7 @@
|
||||
|
||||
/obj/item/clothing/head/frenchberet/equipped(mob/M, slot)
|
||||
. = ..()
|
||||
if (slot == SLOT_HEAD)
|
||||
if (slot == ITEM_SLOT_HEAD)
|
||||
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
|
||||
else
|
||||
UnregisterSignal(M, COMSIG_MOB_SAY)
|
||||
|
||||
@@ -93,6 +93,8 @@
|
||||
var/earflaps = TRUE
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
///Sprite visible when the ushanka flaps are folded up.
|
||||
var/upsprite = "ushankaup"
|
||||
///Sprite visible when the ushanka flaps are folded down.
|
||||
@@ -147,7 +149,7 @@
|
||||
beepsky_fashion = /datum/beepsky_fashion/cat
|
||||
|
||||
/obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot)
|
||||
if(ishuman(user) && slot == SLOT_HEAD)
|
||||
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
|
||||
update_icon(user)
|
||||
user.update_inv_head() //Color might have been changed by update_icon.
|
||||
..()
|
||||
@@ -186,7 +188,7 @@
|
||||
|
||||
/obj/item/clothing/head/cardborg/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(ishuman(user) && slot == SLOT_HEAD)
|
||||
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H.wear_suit, /obj/item/clothing/suit/cardborg))
|
||||
var/obj/item/clothing/suit/cardborg/CB = H.wear_suit
|
||||
@@ -265,7 +267,7 @@
|
||||
|
||||
/obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot)
|
||||
. = ..()
|
||||
if(slot != SLOT_HEAD || warped)
|
||||
if(slot != ITEM_SLOT_HEAD || warped)
|
||||
return
|
||||
if(paranoia)
|
||||
QDEL_NULL(paranoia)
|
||||
@@ -295,7 +297,7 @@
|
||||
if(!isliving(loc) || !paranoia)
|
||||
return
|
||||
var/mob/living/target = loc
|
||||
if(target.get_item_by_slot(SLOT_HEAD) != src)
|
||||
if(target.get_item_by_slot(ITEM_SLOT_HEAD) != src)
|
||||
return
|
||||
QDEL_NULL(paranoia)
|
||||
if(!target.IsUnconscious())
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/obj/item/clothing/mask/equipped(mob/M, slot)
|
||||
. = ..()
|
||||
if (slot == SLOT_WEAR_MASK && modifies_speech)
|
||||
if (slot == ITEM_SLOT_MASK && modifies_speech)
|
||||
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
|
||||
else
|
||||
UnregisterSignal(M, COMSIG_MOB_SAY)
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
. = ..()
|
||||
if(!ishuman(user))
|
||||
return
|
||||
if(slot == SLOT_WEAR_MASK)
|
||||
if(slot == ITEM_SLOT_MASK)
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.dna.add_mutation(CLUWNEMUT)
|
||||
return
|
||||
@@ -88,7 +88,7 @@
|
||||
if(!ishuman(user))
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(slot == SLOT_WEAR_MASK)
|
||||
if(slot == ITEM_SLOT_MASK)
|
||||
if(is_cursed && can_cluwne) //logic predetermined
|
||||
log_admin("[key_name(H)] was made into a cluwne by [src]")
|
||||
message_admins("[key_name(H)] got cluwned by [src]")
|
||||
|
||||
@@ -290,7 +290,7 @@
|
||||
. = ..()
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if((C.get_item_by_slot(SLOT_HEAD == src)) || (C.get_item_by_slot(SLOT_WEAR_MASK) == src))
|
||||
if((C.get_item_by_slot(ITEM_SLOT_HEAD == src)) || (C.get_item_by_slot(ITEM_SLOT_MASK) == src))
|
||||
to_chat(user, "<span class='warning'>You can't tie [src] while wearing it!</span>")
|
||||
return
|
||||
if(slot_flags & ITEM_SLOT_HEAD)
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
return
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
if(loc == user && user.get_item_by_slot(SLOT_NECK) && lock != FALSE)
|
||||
if(loc == user && user.get_item_by_slot(ITEM_SLOT_NECK) && lock != FALSE)
|
||||
to_chat(user, "<span class='warning'>The collar is locked! You'll need unlock the collar before you can take it off!</span>")
|
||||
return
|
||||
..()
|
||||
@@ -323,7 +323,7 @@
|
||||
. = ..()
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(C.get_item_by_slot(SLOT_NECK) == src)
|
||||
if(C.get_item_by_slot(ITEM_SLOT_NECK) == src)
|
||||
to_chat(user, "<span class='warning'>You can't untie [src] while wearing it!</span>")
|
||||
return
|
||||
if(user.is_holding(src))
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
. = ..()
|
||||
var/key = H.key ? H.key : preference_source ? preference_source.key : null
|
||||
var/obj/item/uplink/U = new /obj/item/uplink/nuclear_restricted(H, key, 80)
|
||||
H.equip_to_slot_or_del(U, SLOT_IN_BACKPACK)
|
||||
H.equip_to_slot_or_del(U, ITEM_SLOT_BACKPACK)
|
||||
var/obj/item/implant/weapons_auth/W = new
|
||||
W.implant(H)
|
||||
var/obj/item/implant/explosive/E = new
|
||||
|
||||
@@ -10,35 +10,35 @@
|
||||
|
||||
/datum/outfit/varedit/proc/set_equipement_by_slot(slot,item_path)
|
||||
switch(slot)
|
||||
if(SLOT_W_UNIFORM)
|
||||
if(ITEM_SLOT_ICLOTHING)
|
||||
uniform = item_path
|
||||
if(SLOT_BACK)
|
||||
if(ITEM_SLOT_BACK)
|
||||
back = item_path
|
||||
if(SLOT_WEAR_SUIT)
|
||||
if(ITEM_SLOT_OCLOTHING)
|
||||
suit = item_path
|
||||
if(SLOT_BELT)
|
||||
if(ITEM_SLOT_BELT)
|
||||
belt = item_path
|
||||
if(SLOT_GLOVES)
|
||||
if(ITEM_SLOT_GLOVES)
|
||||
gloves = item_path
|
||||
if(SLOT_SHOES)
|
||||
if(ITEM_SLOT_FEET)
|
||||
shoes = item_path
|
||||
if(SLOT_HEAD)
|
||||
if(ITEM_SLOT_HEAD)
|
||||
head = item_path
|
||||
if(SLOT_WEAR_MASK)
|
||||
if(ITEM_SLOT_MASK)
|
||||
mask = item_path
|
||||
if(SLOT_NECK)
|
||||
if(ITEM_SLOT_NECK)
|
||||
neck = item_path
|
||||
if(SLOT_EARS)
|
||||
if(ITEM_SLOT_EARS)
|
||||
ears = item_path
|
||||
if(SLOT_GLASSES)
|
||||
if(ITEM_SLOT_EYES)
|
||||
glasses = item_path
|
||||
if(SLOT_WEAR_ID)
|
||||
if(ITEM_SLOT_ID)
|
||||
id = item_path
|
||||
if(SLOT_S_STORE)
|
||||
if(ITEM_SLOT_SUITSTORE)
|
||||
suit_store = item_path
|
||||
if(SLOT_L_STORE)
|
||||
if(ITEM_SLOT_LPOCKET)
|
||||
l_pocket = item_path
|
||||
if(SLOT_R_STORE)
|
||||
if(ITEM_SLOT_RPOCKET)
|
||||
r_pocket = item_path
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
//Copy equipment
|
||||
var/list/result = list()
|
||||
var/list/slots_to_check = list(SLOT_W_UNIFORM,SLOT_BACK,SLOT_WEAR_SUIT,SLOT_BELT,SLOT_GLOVES,SLOT_SHOES,SLOT_HEAD,SLOT_WEAR_MASK,SLOT_NECK,SLOT_EARS,SLOT_GLASSES,SLOT_WEAR_ID,SLOT_S_STORE,SLOT_L_STORE,SLOT_R_STORE)
|
||||
var/list/slots_to_check = list(ITEM_SLOT_ICLOTHING,ITEM_SLOT_BACK,ITEM_SLOT_OCLOTHING,ITEM_SLOT_BELT,ITEM_SLOT_GLOVES,ITEM_SLOT_FEET,ITEM_SLOT_HEAD,ITEM_SLOT_MASK,ITEM_SLOT_NECK,ITEM_SLOT_EARS,ITEM_SLOT_EYES,ITEM_SLOT_ID,ITEM_SLOT_SUITSTORE,ITEM_SLOT_LPOCKET,ITEM_SLOT_RPOCKET)
|
||||
for(var/s in slots_to_check)
|
||||
var/obj/item/I = get_item_by_slot(s)
|
||||
var/vedits = collect_vv(I)
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
//Copy access
|
||||
O.stored_access = list()
|
||||
var/obj/item/id_slot = get_item_by_slot(SLOT_WEAR_ID)
|
||||
var/obj/item/id_slot = get_item_by_slot(ITEM_SLOT_ID)
|
||||
if(id_slot)
|
||||
O.stored_access |= id_slot.GetAccess()
|
||||
//Copy hands
|
||||
@@ -98,7 +98,7 @@
|
||||
result["RHAND"] = vedits
|
||||
O.vv_values = result
|
||||
//Copy backpack contents if exist.
|
||||
var/obj/item/backpack = get_item_by_slot(SLOT_BACK)
|
||||
var/obj/item/backpack = get_item_by_slot(ITEM_SLOT_BACK)
|
||||
if(istype(backpack) && SEND_SIGNAL(backpack, COMSIG_CONTAINS_STORAGE))
|
||||
var/list/bp_stuff = list()
|
||||
var/list/typecounts = list()
|
||||
@@ -136,7 +136,7 @@
|
||||
for(var/vname in edits)
|
||||
I.vv_edit_var(vname,edits[vname])
|
||||
//Apply access
|
||||
var/obj/item/id_slot = H.get_item_by_slot(SLOT_WEAR_ID)
|
||||
var/obj/item/id_slot = H.get_item_by_slot(ITEM_SLOT_ID)
|
||||
if(id_slot)
|
||||
var/obj/item/card/id/card = id_slot.GetID()
|
||||
if(istype(card))
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
/obj/item/clothing/shoes/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
|
||||
if(offset && slot_flags & slotdefine2slotbit(slot))
|
||||
if(offset && (slot_flags & slot))
|
||||
user.pixel_y += offset
|
||||
worn_y_dimension -= (offset * 2)
|
||||
user.update_inv_shoes()
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
. = ..()
|
||||
if(!ishuman(user))
|
||||
return
|
||||
if(slot == SLOT_SHOES)
|
||||
if(slot == ITEM_SLOT_FEET)
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.dna.add_mutation(CLUWNEMUT)
|
||||
return
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/magboots/crushing/equipped(mob/user,slot)
|
||||
. = ..()
|
||||
if (slot == SLOT_SHOES && magpulse)
|
||||
if (slot == ITEM_SLOT_FEET && magpulse)
|
||||
RegisterSignal(user, COMSIG_MOVABLE_MOVED,.proc/crush)
|
||||
|
||||
/obj/item/clothing/shoes/magboots/crushing/dropped(mob/user)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/combat/sneakboots/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(slot == SLOT_SHOES)
|
||||
if(slot == ITEM_SLOT_FEET)
|
||||
ADD_TRAIT(user, TRAIT_SILENT_STEP, SHOES_TRAIT)
|
||||
|
||||
/obj/item/clothing/shoes/combat/sneakboots/dropped(mob/user)
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(slot == SLOT_SHOES)
|
||||
if(slot == ITEM_SLOT_FEET)
|
||||
if(enabled_waddle)
|
||||
waddle = user.AddComponent(/datum/component/waddling)
|
||||
if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))
|
||||
@@ -340,7 +340,7 @@
|
||||
/obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action)
|
||||
if(!isliving(user))
|
||||
return
|
||||
if(!istype(user.get_item_by_slot(SLOT_SHOES), /obj/item/clothing/shoes/wheelys))
|
||||
if(!istype(user.get_item_by_slot(ITEM_SLOT_FEET), /obj/item/clothing/shoes/wheelys))
|
||||
to_chat(user, "<span class='warning'>You must be wearing the wheely-heels to use them!</span>")
|
||||
return
|
||||
if(!(W.is_occupant(user)))
|
||||
@@ -460,7 +460,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot)
|
||||
. = ..()
|
||||
if(slot == SLOT_SHOES)
|
||||
if(slot == ITEM_SLOT_FEET)
|
||||
RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE,.proc/intercept_user_move)
|
||||
|
||||
/obj/item/clothing/shoes/wallwalkers/dropped(mob/user)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(!(HAS_TRAIT(H, TRAIT_CLUMSY)) && !(H.mind && HAS_TRAIT(H.mind, TRAIT_CLOWN_MENTALITY)))
|
||||
return
|
||||
if(slot == SLOT_SHOES)
|
||||
if(slot == ITEM_SLOT_FEET)
|
||||
spells = new
|
||||
for(var/spell in spelltypes)
|
||||
var/obj/effect/proc_holder/spell/S = new spell
|
||||
@@ -29,7 +29,7 @@
|
||||
if(!ishuman(user))
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_item_by_slot(SLOT_SHOES) == src)
|
||||
if(H.get_item_by_slot(ITEM_SLOT_FEET) == src)
|
||||
for(var/spell in spells)
|
||||
var/obj/effect/proc_holder/spell/S = spell
|
||||
H.mind.spell_list.Remove(S)
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
teleport_now.UpdateButtonIcon()
|
||||
|
||||
var/list/nonsafe_slots = list(SLOT_BELT, SLOT_BACK)
|
||||
var/list/nonsafe_slots = list(ITEM_SLOT_BELT, ITEM_SLOT_BACK)
|
||||
var/list/exposed = list()
|
||||
for(var/slot in nonsafe_slots)
|
||||
var/obj/item/slot_item = user.get_item_by_slot(slot)
|
||||
|
||||
@@ -50,12 +50,12 @@
|
||||
soundloop.stop(user)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot, mob/user, datum/action/A)
|
||||
if(slot == SLOT_HEAD)
|
||||
if(slot == ITEM_SLOT_HEAD)
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot)
|
||||
..()
|
||||
if(slot != SLOT_HEAD)
|
||||
if(slot != ITEM_SLOT_HEAD)
|
||||
if(suit)
|
||||
suit.RemoveHelmet()
|
||||
soundloop.stop(user)
|
||||
@@ -118,7 +118,7 @@
|
||||
if(jetpack)
|
||||
to_chat(user, "<span class='warning'>[src] already has a jetpack installed.</span>")
|
||||
return
|
||||
if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) //Make sure the player is not wearing the suit before applying the upgrade.
|
||||
if(src == user.get_item_by_slot(ITEM_SLOT_OCLOTHING)) //Make sure the player is not wearing the suit before applying the upgrade.
|
||||
to_chat(user, "<span class='warning'>You cannot install the upgrade to [src] while wearing it.</span>")
|
||||
return
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
if(!jetpack)
|
||||
to_chat(user, "<span class='warning'>[src] has no jetpack installed.</span>")
|
||||
return
|
||||
if(src == user.get_item_by_slot(SLOT_WEAR_SUIT))
|
||||
if(src == user.get_item_by_slot(ITEM_SLOT_OCLOTHING))
|
||||
to_chat(user, "<span class='warning'>You cannot remove the jetpack from [src] while wearing it.</span>")
|
||||
return
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
|
||||
..()
|
||||
if(jetpack)
|
||||
if(slot == SLOT_WEAR_SUIT)
|
||||
if(slot == ITEM_SLOT_OCLOTHING)
|
||||
for(var/X in jetpack.actions)
|
||||
var/datum/action/A = X
|
||||
A.Grant(user)
|
||||
@@ -158,7 +158,7 @@
|
||||
A.Remove(user)
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot, mob/user, datum/action/A)
|
||||
if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit.
|
||||
if(slot == ITEM_SLOT_OCLOTHING) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit.
|
||||
return 1
|
||||
|
||||
//Engineering
|
||||
@@ -488,7 +488,7 @@
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/medical/equipped(mob/living/carbon/human/user, slot)
|
||||
..()
|
||||
if (slot == SLOT_HEAD)
|
||||
if (slot == ITEM_SLOT_HEAD)
|
||||
var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
|
||||
DHUD.add_hud_to(user)
|
||||
|
||||
@@ -528,7 +528,7 @@
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot)
|
||||
..()
|
||||
if (slot == SLOT_HEAD)
|
||||
if (slot == ITEM_SLOT_HEAD)
|
||||
var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC]
|
||||
DHUD.add_hud_to(user)
|
||||
|
||||
@@ -702,7 +702,7 @@
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/ancient/mason/equipped(mob/living/carbon/human/user, slot)
|
||||
..()
|
||||
if (slot == SLOT_HEAD)
|
||||
if (slot == ITEM_SLOT_HEAD)
|
||||
var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC]
|
||||
DHUD.add_hud_to(user)
|
||||
ADD_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "mason_hardsuit")
|
||||
@@ -726,7 +726,7 @@
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ancient/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(slot != SLOT_WEAR_SUIT)
|
||||
if(slot != ITEM_SLOT_OCLOTHING)
|
||||
if(listeningTo)
|
||||
UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
|
||||
return
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
|
||||
/obj/item/clothing/suit/cardborg/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(slot == SLOT_WEAR_SUIT)
|
||||
if(slot == ITEM_SLOT_OCLOTHING)
|
||||
disguise(user)
|
||||
|
||||
/obj/item/clothing/suit/cardborg/dropped(mob/living/user)
|
||||
@@ -279,7 +279,9 @@
|
||||
item_state = "labcoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS|LEGS|FEET
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
heat_protection = CHEST|GROIN|ARMS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/gun/ballistic/automatic/speargun, /obj/item/staff/bostaff)
|
||||
hoodtype = /obj/item/clothing/head/hooded/carp_hood
|
||||
|
||||
@@ -289,7 +291,9 @@
|
||||
icon_state = "carp_casual"
|
||||
body_parts_covered = HEAD
|
||||
cold_protection = HEAD
|
||||
heat_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts?
|
||||
@@ -362,7 +366,10 @@
|
||||
item_state = "ran_suit"
|
||||
body_parts_covered = CHEST|GROIN|LEGS
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAUR
|
||||
heat_protection = CHEST|GROIN|LEGS //fluffy tails!
|
||||
cold_protection = CHEST|GROIN|LEGS //fluffy tails!
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Bleh, same as winter coat
|
||||
heat_protection = CHEST|GROIN|LEGS
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
|
||||
|
||||
/obj/item/clothing/head/ran
|
||||
@@ -419,7 +426,9 @@
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
|
||||
body_parts_covered = CHEST|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
heat_protection = CHEST|GROIN|ARMS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
|
||||
|
||||
/obj/item/clothing/suit/jacket/flannel
|
||||
@@ -520,6 +529,7 @@
|
||||
icon_state = "leathercoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS|LEGS
|
||||
cold_protection = CHEST|GROIN|ARMS|LEGS
|
||||
heat_protection = CHEST|GROIN|ARMS|LEGS
|
||||
mutantrace_variation = STYLE_DIGITIGRADE
|
||||
|
||||
/obj/item/clothing/suit/jacket/puffer
|
||||
@@ -537,6 +547,7 @@
|
||||
item_state = "armor"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
cold_protection = CHEST|GROIN
|
||||
heat_protection = CHEST|GROIN
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
|
||||
/obj/item/clothing/suit/jacket/miljacket
|
||||
@@ -655,7 +666,9 @@
|
||||
item_state = "coatwinter"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
heat_protection = CHEST|GROIN|ARMS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
|
||||
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
|
||||
@@ -666,7 +679,9 @@
|
||||
icon_state = "winterhood"
|
||||
body_parts_covered = HEAD
|
||||
cold_protection = HEAD
|
||||
heat_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
rad_flags = RAD_NO_CONTAMINATE
|
||||
|
||||
@@ -1012,7 +1027,7 @@
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/ratvar/equipped(mob/living/user,slot)
|
||||
..()
|
||||
if (slot != SLOT_WEAR_SUIT || !real)
|
||||
if (slot != ITEM_SLOT_OCLOTHING || !real)
|
||||
return
|
||||
if (is_servant_of_ratvar(user))
|
||||
return
|
||||
@@ -1034,7 +1049,7 @@
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/narsie/equipped(mob/living/user,slot)
|
||||
..()
|
||||
if (slot != SLOT_WEAR_SUIT || !real)
|
||||
if (slot != ITEM_SLOT_OCLOTHING || !real)
|
||||
return
|
||||
if (iscultist(user))
|
||||
return
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
icon_state = "reactiveoff"
|
||||
item_state = "reactiveoff"
|
||||
add_fingerprint(user)
|
||||
if(user.get_item_by_slot(SLOT_WEAR_SUIT) == src)
|
||||
if(user.get_item_by_slot(ITEM_SLOT_OCLOTHING) == src)
|
||||
user.update_inv_wear_suit()
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/emp_act(severity)
|
||||
@@ -177,7 +177,7 @@
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/tesla/equipped(mob/user, slot)
|
||||
..()
|
||||
if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item?
|
||||
if(slot_flags & slot) //Was equipped to a valid slot for this item?
|
||||
ADD_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "reactive_tesla_armor")
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/tesla/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
|
||||
|
||||
@@ -31,11 +31,11 @@
|
||||
ToggleHood()
|
||||
|
||||
/obj/item/clothing/suit/hooded/item_action_slot_check(slot, mob/user, datum/action/A)
|
||||
if(slot == SLOT_WEAR_SUIT || slot == SLOT_NECK)
|
||||
if(slot == ITEM_SLOT_OCLOTHING || slot == ITEM_SLOT_NECK)
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/suit/hooded/equipped(mob/user, slot)
|
||||
if(slot != SLOT_WEAR_SUIT && slot != SLOT_NECK)
|
||||
if(slot != ITEM_SLOT_OCLOTHING && slot != ITEM_SLOT_NECK)
|
||||
RemoveHood()
|
||||
..()
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
if(H.head)
|
||||
to_chat(H, "<span class='warning'>You're already wearing something on your head!</span>")
|
||||
return
|
||||
else if(H.equip_to_slot_if_possible(hood,SLOT_HEAD,0,0,1))
|
||||
else if(H.equip_to_slot_if_possible(hood,ITEM_SLOT_HEAD,0,0,1))
|
||||
suittoggled = TRUE
|
||||
update_icon()
|
||||
H.update_inv_wear_suit()
|
||||
@@ -102,7 +102,7 @@
|
||||
|
||||
/obj/item/clothing/head/hooded/equipped(mob/user, slot)
|
||||
..()
|
||||
if(slot != SLOT_HEAD)
|
||||
if(slot != ITEM_SLOT_HEAD)
|
||||
if(suit)
|
||||
suit.RemoveHood()
|
||||
else
|
||||
@@ -177,7 +177,7 @@
|
||||
/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
|
||||
if(!helmettype)
|
||||
return
|
||||
if(slot != SLOT_WEAR_SUIT)
|
||||
if(slot != ITEM_SLOT_OCLOTHING)
|
||||
RemoveHelmet()
|
||||
..()
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
if(message)
|
||||
to_chat(H, "<span class='warning'>You're already wearing something on your head!</span>")
|
||||
return
|
||||
else if(H.equip_to_slot_if_possible(helmet,SLOT_HEAD,0,0,1))
|
||||
else if(H.equip_to_slot_if_possible(helmet,ITEM_SLOT_HEAD,0,0,1))
|
||||
if(message)
|
||||
to_chat(H, "<span class='notice'>You engage the helmet on the hardsuit.</span>")
|
||||
suittoggled = TRUE
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
actions_types = list(/datum/action/item_action/stickmen)
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/paper/item_action_slot_check(slot, mob/user, datum/action/A)
|
||||
if(A.type == /datum/action/item_action/stickmen && slot != SLOT_WEAR_SUIT)
|
||||
if(A.type == /datum/action/item_action/stickmen && slot != ITEM_SLOT_OCLOTHING)
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
if(!alt_covers_chest)
|
||||
body_parts_covered |= CHEST
|
||||
|
||||
if(attached_accessory && slot != SLOT_HANDS && ishuman(user))
|
||||
if(attached_accessory && slot != ITEM_SLOT_HANDS && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
attached_accessory.on_uniform_equip(src, user)
|
||||
if(attached_accessory.above_suit)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
/obj/item/clothing/under/cluwne/equipped(mob/living/carbon/user, slot)
|
||||
if(!ishuman(user))
|
||||
return
|
||||
if(slot == SLOT_W_UNIFORM)
|
||||
if(slot == ITEM_SLOT_ICLOTHING)
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.dna.add_mutation(CLUWNEMUT)
|
||||
return ..()
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM) //or else you end up with naked assistants running around everywhere...
|
||||
H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING) //or else you end up with naked assistants running around everywhere...
|
||||
else
|
||||
new C(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
@@ -30,7 +30,7 @@
|
||||
var/obj/item/clothing/under/color/jumpskirt/C = pick(subtypesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/jumpskirt/random)
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM)
|
||||
H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING)
|
||||
else
|
||||
new C(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -18,23 +18,23 @@
|
||||
|
||||
switch(item_set)
|
||||
if("wizardmimic")
|
||||
loadout[SLOT_WEAR_SUIT] = /obj/item/clothing/suit/wizrobe
|
||||
loadout[SLOT_SHOES] = /obj/item/clothing/shoes/sandal/magic
|
||||
loadout[SLOT_HEAD] = /obj/item/clothing/head/wizard
|
||||
loadout[ITEM_SLOT_OCLOTHING] = /obj/item/clothing/suit/wizrobe
|
||||
loadout[ITEM_SLOT_FEET] = /obj/item/clothing/shoes/sandal/magic
|
||||
loadout[ITEM_SLOT_HEAD] = /obj/item/clothing/head/wizard
|
||||
ruins_spaceworthiness = 1
|
||||
if("swords")
|
||||
loadout[SLOT_HANDS] = /obj/item/katana/cursed
|
||||
loadout[ITEM_SLOT_HANDS] = /obj/item/katana/cursed
|
||||
if("bigfatdoobie")
|
||||
loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/cigarette/rollie/trippy
|
||||
loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/cigarette/rollie/trippy
|
||||
ruins_spaceworthiness = 1
|
||||
if("boxing")
|
||||
loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/luchador
|
||||
loadout[SLOT_GLOVES] = /obj/item/clothing/gloves/boxing
|
||||
loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/luchador
|
||||
loadout[ITEM_SLOT_GLOVES] = /obj/item/clothing/gloves/boxing
|
||||
ruins_spaceworthiness = 1
|
||||
if("voicemodulators")
|
||||
loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/chameleon
|
||||
loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/chameleon
|
||||
if("catgirls2015")
|
||||
loadout[SLOT_HEAD] = /obj/item/clothing/head/kitty
|
||||
loadout[ITEM_SLOT_HEAD] = /obj/item/clothing/head/kitty
|
||||
ruins_spaceworthiness = 1
|
||||
ruins_wizard_loadout = 1
|
||||
|
||||
|
||||
@@ -739,7 +739,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
|
||||
if(close_other) //increase the odds
|
||||
for(var/i in 1 to 5)
|
||||
message_pool.Add("<span class='warning'>You feel a tiny prick!</span>")
|
||||
var/obj/item/storage/equipped_backpack = other.get_item_by_slot(SLOT_BACK)
|
||||
var/obj/item/storage/equipped_backpack = other.get_item_by_slot(ITEM_SLOT_BACK)
|
||||
if(istype(equipped_backpack))
|
||||
for(var/i in 1 to 5) //increase the odds
|
||||
message_pool.Add("<span class='notice'>[other] puts the [pick(\
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
//If they have a hat/helmet and the user is targeting their head.
|
||||
if(affecting == BODY_ZONE_HEAD)
|
||||
var/obj/item/I = target.get_item_by_slot(SLOT_HEAD)
|
||||
var/obj/item/I = target.get_item_by_slot(ITEM_SLOT_HEAD)
|
||||
if(I)
|
||||
headarmor = I.armor.melee
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
/datum/holiday/dynamic
|
||||
name = "Dynamic Day"
|
||||
|
||||
/datum/holiday/dynamic/shouldCelebrate(dd, mm, yy, ww, ddd)
|
||||
var/list/days = CONFIG_GET(keyed_list/dynamic_mode_days)
|
||||
return lowertext(ddd) in days
|
||||
|
||||
/datum/holiday/dynamic/celebrate()
|
||||
GLOB.dynamic_forced_threat_level = rand(90, 100)
|
||||
CONFIG_SET(string/force_gamemode, "dynamic") // prevents the round vote, which prevents extended
|
||||
@@ -432,7 +432,7 @@
|
||||
var/obj/item/W = C.head
|
||||
C.dropItemToGround(W, TRUE)
|
||||
var/jaqc_latern = new /obj/item/clothing/head/hardhat/pumpkinhead/jaqc
|
||||
C.equip_to_slot(jaqc_latern, SLOT_HEAD, 1, 1)
|
||||
C.equip_to_slot(jaqc_latern, ITEM_SLOT_HEAD, 1, 1)
|
||||
if(4)
|
||||
visible_message("<b>[src]</b> waves their arms around, <span class='spooky'>\"In your body there's something amiss, you'll find it's a chem made by my sis!\"</span>")
|
||||
jacqrunes("In your body there's something amiss, you'll find it's a chem made by my sis!", C)
|
||||
@@ -449,7 +449,7 @@
|
||||
var/obj/item/W = H.wear_suit
|
||||
H.dropItemToGround(W, TRUE)
|
||||
var/ghost = new /obj/item/clothing/suit/ghost_sheet/sticky
|
||||
H.equip_to_slot(ghost, SLOT_WEAR_SUIT, 1, 1)
|
||||
H.equip_to_slot(ghost, ITEM_SLOT_OCLOTHING, 1, 1)
|
||||
poof()
|
||||
|
||||
//Blame Fel
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
return
|
||||
idc.access = assembly.access_card.access
|
||||
var/turf/a_loc = get_turf(assembly)
|
||||
var/list/P = cir_get_path_to(assembly, locate(get_pin_data(IC_INPUT, 1),get_pin_data(IC_INPUT, 2),a_loc.z), /turf/proc/Distance_cardinal, 0, 200, id=idc, exclude=get_turf(get_pin_data_as_type(IC_INPUT,3, /atom)), simulated_only = 0)
|
||||
var/list/P = get_path_to(assembly, locate(get_pin_data(IC_INPUT, 1),get_pin_data(IC_INPUT, 2),a_loc.z), 200, id=idc, exclude=get_turf(get_pin_data_as_type(IC_INPUT,3, /atom)), simulated_only = 0)
|
||||
|
||||
if(!P)
|
||||
activate_pin(3)
|
||||
|
||||
@@ -241,7 +241,7 @@
|
||||
var/satchel = /obj/item/storage/backpack/satchel
|
||||
var/duffelbag = /obj/item/storage/backpack/duffelbag
|
||||
|
||||
var/pda_slot = SLOT_BELT
|
||||
var/pda_slot = ITEM_SLOT_BELT
|
||||
|
||||
/datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
var/preference_backpack = preference_source?.prefs.backbag
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
satchel = /obj/item/storage/backpack/satchel/eng
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/engineering
|
||||
box = /obj/item/storage/box/survival/engineer
|
||||
pda_slot = SLOT_L_STORE
|
||||
pda_slot = ITEM_SLOT_LPOCKET
|
||||
backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1)
|
||||
|
||||
/datum/outfit/job/atmos/rig
|
||||
@@ -49,4 +49,4 @@
|
||||
mask = /obj/item/clothing/mask/gas
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
internals_slot = SLOT_S_STORE
|
||||
internals_slot = ITEM_SLOT_SUITSTORE
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
B.icon_state = GLOB.bible_icon_state
|
||||
B.item_state = GLOB.bible_item_state
|
||||
to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [GLOB.deity]. Defer to the Chaplain.")
|
||||
H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK)
|
||||
H.equip_to_slot_or_del(B, ITEM_SLOT_BACKPACK)
|
||||
var/nrt = GLOB.holy_weapon_type || /obj/item/nullrod
|
||||
var/obj/item/nullrod/N = new nrt(H)
|
||||
H.put_in_hands(N)
|
||||
@@ -108,7 +108,7 @@
|
||||
GLOB.bible_name = B.name
|
||||
GLOB.deity = B.deity_name
|
||||
|
||||
H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK)
|
||||
H.equip_to_slot_or_del(B, ITEM_SLOT_BACKPACK)
|
||||
|
||||
SSblackbox.record_feedback("text", "religion_name", 1, "[new_religion]", 1)
|
||||
SSblackbox.record_feedback("text", "religion_deity", 1, "[new_deity]", 1)
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
satchel = /obj/item/storage/backpack/satchel/eng
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/engineering
|
||||
box = /obj/item/storage/box/survival/engineer
|
||||
pda_slot = SLOT_L_STORE
|
||||
pda_slot = ITEM_SLOT_LPOCKET
|
||||
chameleon_extras = /obj/item/stamp/ce
|
||||
|
||||
/datum/outfit/job/ce/rig
|
||||
@@ -68,4 +68,4 @@
|
||||
glasses = /obj/item/clothing/glasses/meson/engine
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
head = null
|
||||
internals_slot = SLOT_S_STORE
|
||||
internals_slot = ITEM_SLOT_SUITSTORE
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
r_pocket = /obj/item/pinpointer/crew
|
||||
l_pocket = /obj/item/pda/medical
|
||||
backpack_contents = list(/obj/item/roller=1)
|
||||
pda_slot = SLOT_L_STORE
|
||||
pda_slot = ITEM_SLOT_LPOCKET
|
||||
|
||||
backpack = /obj/item/storage/backpack/medic
|
||||
satchel = /obj/item/storage/backpack/satchel/med
|
||||
|
||||
@@ -63,4 +63,4 @@
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/rd
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
internals_slot = SLOT_S_STORE
|
||||
internals_slot = ITEM_SLOT_SUITSTORE
|
||||
|
||||
@@ -37,4 +37,4 @@
|
||||
backpack = /obj/item/storage/backpack/science
|
||||
satchel = /obj/item/storage/backpack/satchel/tox
|
||||
|
||||
pda_slot = SLOT_L_STORE
|
||||
pda_slot = ITEM_SLOT_LPOCKET
|
||||
|
||||
@@ -84,7 +84,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S
|
||||
if(ears)
|
||||
if(H.ears)
|
||||
qdel(H.ears)
|
||||
H.equip_to_slot_or_del(new ears(H),SLOT_EARS)
|
||||
H.equip_to_slot_or_del(new ears(H),ITEM_SLOT_EARS)
|
||||
|
||||
var/obj/item/card/id/W = H.wear_id
|
||||
W.access |= dep_access
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
mask = /obj/item/clothing/mask/gas/explorer
|
||||
glasses = /obj/item/clothing/glasses/meson
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
internals_slot = SLOT_S_STORE
|
||||
internals_slot = ITEM_SLOT_SUITSTORE
|
||||
backpack_contents = list(
|
||||
/obj/item/flashlight/seclite=1,\
|
||||
/obj/item/kitchen/knife/combat/survival=1,
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
satchel = /obj/item/storage/backpack/satchel/eng
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/engineering
|
||||
box = /obj/item/storage/box/survival/engineer
|
||||
pda_slot = SLOT_L_STORE
|
||||
pda_slot = ITEM_SLOT_LPOCKET
|
||||
backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1)
|
||||
|
||||
/datum/outfit/job/engineer/gloved
|
||||
@@ -56,6 +56,6 @@
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
head = null
|
||||
internals_slot = SLOT_S_STORE
|
||||
internals_slot = ITEM_SLOT_SUITSTORE
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/obj/item/wormhole_jaunter/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(slot == SLOT_BELT)
|
||||
if(slot == ITEM_SLOT_BELT)
|
||||
RegisterSignal(user, COMSIG_MOVABLE_CHASM_DROP, .proc/chasm_react)
|
||||
|
||||
/obj/item/wormhole_jaunter/dropped(mob/user)
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
var/mob/M = loc
|
||||
if(istype(M))
|
||||
if(M.get_item_by_slot(SLOT_BELT) == src)
|
||||
if(M.get_item_by_slot(ITEM_SLOT_BELT) == src)
|
||||
if(prob(severity))
|
||||
M.visible_message("<span class='warning'>[src] overloads and activates!</span>")
|
||||
SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation
|
||||
|
||||
@@ -307,7 +307,7 @@
|
||||
var/mob/living/carbon/human/active_owner
|
||||
|
||||
/obj/item/clothing/neck/necklace/memento_mori/item_action_slot_check(slot, mob/user, datum/action/A)
|
||||
return slot == SLOT_NECK
|
||||
return slot == ITEM_SLOT_NECK
|
||||
|
||||
/obj/item/clothing/neck/necklace/memento_mori/dropped(mob/user)
|
||||
..()
|
||||
|
||||
@@ -28,10 +28,9 @@
|
||||
for(var/path in typesof(prototype))
|
||||
if(path == prototype && skip_prototype)
|
||||
continue
|
||||
if(roundstart)
|
||||
var/datum/sprite_accessory/P = path
|
||||
if(initial(P.locked))
|
||||
continue
|
||||
var/datum/sprite_accessory/P = path
|
||||
if((roundstart && initial(P.locked)))
|
||||
continue
|
||||
var/datum/sprite_accessory/D = new path()
|
||||
|
||||
if(D.icon_state)
|
||||
@@ -64,6 +63,7 @@
|
||||
var/mutant_part_string //Also used in species.handle_mutant_bodyparts() to generate the overlay icon state.
|
||||
var/alpha_mask_state
|
||||
var/matrixed_sections = MATRIX_NONE //if color_src is MATRIXED, how many sections does it have? 1-3
|
||||
var/ignore = FALSE //NEVER include in customization if set to TRUE
|
||||
|
||||
//Special / holdover traits for Citadel specific sprites.
|
||||
var/extra = FALSE
|
||||
|
||||
@@ -126,6 +126,11 @@
|
||||
hide_legs = USE_SNEK_CLIP_MASK
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/taur/naga/coiled
|
||||
name = "Naga (coiled)"
|
||||
icon_state = "naga_coiled"
|
||||
ignore = TRUE
|
||||
|
||||
/datum/sprite_accessory/taur/otie
|
||||
name = "Otie"
|
||||
icon_state = "otie"
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
held_items[hand_index] = I
|
||||
I.layer = ABOVE_HUD_LAYER
|
||||
I.plane = ABOVE_HUD_PLANE
|
||||
I.equipped(src, SLOT_HANDS)
|
||||
I.equipped(src, ITEM_SLOT_HANDS)
|
||||
if(I.pulledby)
|
||||
I.pulledby.stop_pulling()
|
||||
update_inv_hands()
|
||||
@@ -375,14 +375,14 @@
|
||||
|
||||
if(!slot_priority)
|
||||
slot_priority = list( \
|
||||
SLOT_BACK, SLOT_WEAR_ID,\
|
||||
SLOT_W_UNIFORM, SLOT_WEAR_SUIT,\
|
||||
SLOT_WEAR_MASK, SLOT_HEAD, SLOT_NECK,\
|
||||
SLOT_SHOES, SLOT_GLOVES,\
|
||||
SLOT_EARS, SLOT_GLASSES,\
|
||||
SLOT_BELT, SLOT_S_STORE,\
|
||||
SLOT_L_STORE, SLOT_R_STORE,\
|
||||
SLOT_GENERC_DEXTROUS_STORAGE\
|
||||
ITEM_SLOT_BACK, ITEM_SLOT_ID,\
|
||||
ITEM_SLOT_ICLOTHING, ITEM_SLOT_OCLOTHING,\
|
||||
ITEM_SLOT_MASK, ITEM_SLOT_HEAD, ITEM_SLOT_NECK,\
|
||||
ITEM_SLOT_FEET, ITEM_SLOT_GLOVES,\
|
||||
ITEM_SLOT_EARS, ITEM_SLOT_EYES,\
|
||||
ITEM_SLOT_BELT, ITEM_SLOT_SUITSTORE,\
|
||||
ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET,\
|
||||
ITEM_SLOT_DEX_STORAGE\
|
||||
)
|
||||
|
||||
for(var/slot in slot_priority)
|
||||
@@ -424,7 +424,7 @@
|
||||
if(M.active_storage && M.active_storage.parent && SEND_SIGNAL(M.active_storage.parent, COMSIG_TRY_STORAGE_INSERT, src,M))
|
||||
return TRUE
|
||||
|
||||
var/list/obj/item/possible = list(M.get_inactive_held_item(), M.get_item_by_slot(SLOT_BELT), M.get_item_by_slot(SLOT_GENERC_DEXTROUS_STORAGE), M.get_item_by_slot(SLOT_BACK))
|
||||
var/list/obj/item/possible = list(M.get_inactive_held_item(), M.get_item_by_slot(ITEM_SLOT_BELT), M.get_item_by_slot(ITEM_SLOT_DEX_STORAGE), M.get_item_by_slot(ITEM_SLOT_BACK))
|
||||
for(var/i in possible)
|
||||
if(!i)
|
||||
continue
|
||||
@@ -446,10 +446,10 @@
|
||||
|
||||
//used in code for items usable by both carbon and drones, this gives the proper back slot for each mob.(defibrillator, backpack watertank, ...)
|
||||
/mob/proc/getBackSlot()
|
||||
return SLOT_BACK
|
||||
return ITEM_SLOT_BACK
|
||||
|
||||
/mob/proc/getBeltSlot()
|
||||
return SLOT_BELT
|
||||
return ITEM_SLOT_BELT
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
if(target.dropItemToGround(W))
|
||||
target.visible_message("<span class='danger'>[src] tears [W] off of [target]'s face!</span>", \
|
||||
"<span class='userdanger'>[src] tears [W] off of [target]'s face!</span>")
|
||||
target.equip_to_slot_if_possible(src, SLOT_WEAR_MASK, 0, 1, 1)
|
||||
target.equip_to_slot_if_possible(src, ITEM_SLOT_MASK, 0, 1, 1)
|
||||
return TRUE // time for a smoke
|
||||
|
||||
/obj/item/clothing/mask/facehugger/proc/Attach(mob/living/M)
|
||||
@@ -259,7 +259,7 @@
|
||||
return 1
|
||||
|
||||
var/mob/living/carbon/C = M
|
||||
if(ishuman(C) && !(SLOT_WEAR_MASK in C.dna.species.no_equip))
|
||||
if(ishuman(C) && !(ITEM_SLOT_MASK in C.dna.species.no_equip))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if(H.is_mouth_covered(head_only = 1))
|
||||
return FALSE
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
// too soon.
|
||||
var/buckle_cd = 600
|
||||
if(handcuffed)
|
||||
var/obj/item/restraints/O = src.get_item_by_slot(SLOT_HANDCUFFED)
|
||||
var/obj/item/restraints/O = src.get_item_by_slot(ITEM_SLOT_HANDCUFFED)
|
||||
buckle_cd = O.breakouttime
|
||||
MarkResistTime()
|
||||
visible_message("<span class='warning'>[src] attempts to unbuckle [p_them()]self!</span>", \
|
||||
@@ -1137,15 +1137,15 @@
|
||||
/mob/living/carbon/check_obscured_slots()
|
||||
if(head)
|
||||
if(head.flags_inv & HIDEMASK)
|
||||
LAZYOR(., SLOT_WEAR_MASK)
|
||||
LAZYOR(., ITEM_SLOT_MASK)
|
||||
if(head.flags_inv & HIDEEYES)
|
||||
LAZYOR(., SLOT_GLASSES)
|
||||
LAZYOR(., ITEM_SLOT_EYES)
|
||||
if(head.flags_inv & HIDEEARS)
|
||||
LAZYOR(., SLOT_EARS)
|
||||
LAZYOR(., ITEM_SLOT_EARS)
|
||||
|
||||
if(wear_mask)
|
||||
if(wear_mask.flags_inv & HIDEEYES)
|
||||
LAZYOR(., SLOT_GLASSES)
|
||||
LAZYOR(., ITEM_SLOT_EYES)
|
||||
|
||||
// if any of our bodyparts are bleeding
|
||||
/mob/living/carbon/proc/is_bleeding()
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/datum/strippable_item/mob_item_slot/head
|
||||
key = STRIPPABLE_ITEM_HEAD
|
||||
item_slot = SLOT_HEAD
|
||||
item_slot = ITEM_SLOT_HEAD
|
||||
|
||||
/datum/strippable_item/mob_item_slot/back
|
||||
key = STRIPPABLE_ITEM_BACK
|
||||
item_slot = SLOT_BACK
|
||||
item_slot = ITEM_SLOT_BACK
|
||||
|
||||
/datum/strippable_item/mob_item_slot/back/get_alternate_action(atom/source, mob/user)
|
||||
if(..() == FALSE)
|
||||
@@ -18,15 +18,15 @@
|
||||
|
||||
/datum/strippable_item/mob_item_slot/mask
|
||||
key = STRIPPABLE_ITEM_MASK
|
||||
item_slot = SLOT_WEAR_MASK
|
||||
item_slot = ITEM_SLOT_MASK
|
||||
|
||||
/datum/strippable_item/mob_item_slot/neck
|
||||
key = STRIPPABLE_ITEM_NECK
|
||||
item_slot = SLOT_NECK
|
||||
item_slot = ITEM_SLOT_NECK
|
||||
|
||||
/datum/strippable_item/mob_item_slot/handcuffs
|
||||
key = STRIPPABLE_ITEM_HANDCUFFS
|
||||
item_slot = SLOT_HANDCUFFED
|
||||
item_slot = ITEM_SLOT_HANDCUFFED
|
||||
|
||||
/datum/strippable_item/mob_item_slot/handcuffs/should_show(atom/source, mob/user)
|
||||
if (!iscarbon(source))
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
/datum/strippable_item/mob_item_slot/legcuffs
|
||||
key = STRIPPABLE_ITEM_LEGCUFFS
|
||||
item_slot = SLOT_LEGCUFFED
|
||||
item_slot = ITEM_SLOT_LEGCUFFED
|
||||
|
||||
/datum/strippable_item/mob_item_slot/legcuffs/should_show(atom/source, mob/user)
|
||||
if (!iscarbon(source))
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
. += "[t_He] [t_is] a [spec_trait_examine_font()][dna.custom_species ? dna.custom_species : dna.species.name]</font>!"
|
||||
|
||||
//uniform
|
||||
if(w_uniform && !(SLOT_W_UNIFORM in obscured))
|
||||
if(w_uniform && !(ITEM_SLOT_ICLOTHING in obscured))
|
||||
//accessory
|
||||
var/accessory_msg
|
||||
if(istype(w_uniform, /obj/item/clothing/under))
|
||||
@@ -47,7 +47,7 @@
|
||||
if(wear_suit && !(wear_suit.obj_flags & EXAMINE_SKIP))
|
||||
. += "[t_He] [t_is] wearing [wear_suit.get_examine_string(user)]."
|
||||
//suit/armor storage
|
||||
if(s_store && !(SLOT_S_STORE in obscured))
|
||||
if(s_store && !(ITEM_SLOT_SUITSTORE in obscured))
|
||||
. += "[t_He] [t_is] carrying [s_store.get_examine_string(user)] on [t_his] [wear_suit.name]."
|
||||
//back
|
||||
if(back)
|
||||
@@ -59,7 +59,7 @@
|
||||
. += "[t_He] [t_is] holding [I.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(I))]."
|
||||
|
||||
//gloves
|
||||
if(gloves && !(SLOT_GLOVES in obscured))
|
||||
if(gloves && !(ITEM_SLOT_GLOVES in obscured))
|
||||
. += "[t_He] [t_has] [gloves.get_examine_string(user)] on [t_his] hands."
|
||||
else if(length(blood_DNA))
|
||||
var/hand_number = get_num_arms(FALSE)
|
||||
@@ -78,18 +78,18 @@
|
||||
. += "[t_He] [t_has] [belt.get_examine_string(user)] about [t_his] waist."
|
||||
|
||||
//shoes
|
||||
if(shoes && !(SLOT_SHOES in obscured))
|
||||
if(shoes && !(ITEM_SLOT_FEET in obscured))
|
||||
. += "[t_He] [t_is] wearing [shoes.get_examine_string(user)] on [t_his] feet."
|
||||
|
||||
//mask
|
||||
if(wear_mask && !(SLOT_WEAR_MASK in obscured))
|
||||
if(wear_mask && !(ITEM_SLOT_MASK in obscured))
|
||||
. += "[t_He] [t_has] [wear_mask.get_examine_string(user)] on [t_his] face."
|
||||
|
||||
if(wear_neck && !(SLOT_NECK in obscured))
|
||||
if(wear_neck && !(ITEM_SLOT_NECK in obscured))
|
||||
. += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck."
|
||||
|
||||
//eyes
|
||||
if(!(SLOT_GLASSES in obscured))
|
||||
if(!(ITEM_SLOT_EYES in obscured))
|
||||
if(glasses)
|
||||
. += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes."
|
||||
else if((left_eye_color == BLOODCULT_EYE || right_eye_color == BLOODCULT_EYE) && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES))
|
||||
@@ -100,7 +100,7 @@
|
||||
. += "<b><font color=orange>[t_His] eyes are flickering a bright yellow!</font></b>"
|
||||
|
||||
//ears
|
||||
if(ears && !(SLOT_EARS in obscured))
|
||||
if(ears && !(ITEM_SLOT_EARS in obscured))
|
||||
. += "[t_He] [t_has] [ears.get_examine_string(user)] on [t_his] ears."
|
||||
|
||||
//ID
|
||||
|
||||
@@ -372,11 +372,11 @@
|
||||
. = ..()
|
||||
if(wear_suit)
|
||||
if(wear_suit.flags_inv & HIDEGLOVES)
|
||||
LAZYOR(., SLOT_GLOVES)
|
||||
LAZYOR(., ITEM_SLOT_GLOVES)
|
||||
if(wear_suit.flags_inv & HIDEJUMPSUIT)
|
||||
LAZYOR(., SLOT_W_UNIFORM)
|
||||
LAZYOR(., ITEM_SLOT_ICLOTHING)
|
||||
if(wear_suit.flags_inv & HIDESHOES)
|
||||
LAZYOR(., SLOT_SHOES)
|
||||
LAZYOR(., ITEM_SLOT_FEET)
|
||||
|
||||
/mob/living/carbon/human/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null)
|
||||
if(judgement_criteria & JUDGE_EMAGGED)
|
||||
@@ -942,6 +942,9 @@
|
||||
. += "[t_He] [t_is] a [spec_trait_examine_font()][dna.custom_species ? dna.custom_species : dna.species.name]</font>"
|
||||
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, usr, .)
|
||||
|
||||
/mob/living/carbon/human/chestonly
|
||||
bodyparts = list(/obj/item/bodypart/chest)
|
||||
|
||||
/mob/living/carbon/human/species/abductor
|
||||
race = /datum/species/abductor
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user