Merge branch 'master' into xantholne-berets02

This commit is contained in:
Unknown
2019-11-25 20:16:15 -07:00
521 changed files with 3130 additions and 1877 deletions
+6 -6
View File
@@ -34,15 +34,15 @@
return
/obj/effect/sound_emitter/examine(mob/user)
..()
. = ..()
if(!isobserver(user))
return
to_chat(user, "<span class='boldnotice'>Sound File:</span> [sound_file ? sound_file : "None chosen"]")
to_chat(user, "<span class='boldnotice'>Mode:</span> [motus_operandi]</span>")
to_chat(user, "<span class='boldnotice'>Range:</span> [emitter_range]</span>")
to_chat(user, "<b>Sound is playing at [sound_volume]% volume.</b>")
. += "<span class='boldnotice'>Sound File:</span> [sound_file ? sound_file : "None chosen"]"
. += "<span class='boldnotice'>Mode:</span> [motus_operandi]</span>"
. += "<span class='boldnotice'>Range:</span> [emitter_range]</span>"
. += "<b>Sound is playing at [sound_volume]% volume.</b>"
if(user.client.holder)
to_chat(user, "<b>Alt-click it to quickly activate it!</b>")
. += "<b>Alt-click it to quickly activate it!</b>"
//ATTACK GHOST IGNORING PARENT RETURN VALUE
/obj/effect/sound_emitter/attack_ghost(mob/user)
@@ -611,16 +611,16 @@
. = ..()
/obj/item/abductor_baton/examine(mob/user)
..()
. = ..()
switch(mode)
if(BATON_STUN)
to_chat(user, "<span class='warning'>The baton is in stun mode.</span>")
. += "<span class='warning'>The baton is in stun mode.</span>"
if(BATON_SLEEP)
to_chat(user, "<span class='warning'>The baton is in sleep inducement mode.</span>")
. += "<span class='warning'>The baton is in sleep inducement mode.</span>"
if(BATON_CUFF)
to_chat(user, "<span class='warning'>The baton is in restraining mode.</span>")
. += "<span class='warning'>The baton is in restraining mode.</span>"
if(BATON_PROBE)
to_chat(user, "<span class='warning'>The baton is in probing mode.</span>")
. += "<span class='warning'>The baton is in probing mode.</span>"
/obj/item/radio/headset/abductor
name = "alien headset"
@@ -24,7 +24,7 @@
for(var/obj/item/abductor/gizmo/G in B.contents)
console.AddGizmo(G)
/datum/outfit/abductor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/abductor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
if(!visualsOnly)
link_to_console(H)
@@ -49,7 +49,7 @@
/obj/item/abductor/gizmo = 1
)
/datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
if(!visualsOnly)
var/obj/item/implant/abductor/beamplant = new
@@ -20,7 +20,7 @@
/obj/item/organ/heart/gland/examine(mob/user)
. = ..()
if((user.mind && HAS_TRAIT(user.mind, TRAIT_ABDUCTOR_SCIENTIST_TRAINING)) || isobserver(user))
to_chat(user, "<span class='notice'>It is \a [true_name].</span>")
. += "<span class='notice'>It is \a [true_name].</span>"
/obj/item/organ/heart/gland/proc/ownerCheck()
if(ishuman(owner))
@@ -170,9 +170,9 @@ GLOBAL_LIST_EMPTY(blob_nodes)
add_points(0)
/mob/camera/blob/examine(mob/user)
..()
. = ..()
if(blob_reagent_datum)
to_chat(user, "Its chemical is <font color=\"[blob_reagent_datum.color]\">[blob_reagent_datum.name]</font>.")
. += "Its chemical is <font color=\"[blob_reagent_datum.color]\">[blob_reagent_datum.name]</font>."
/mob/camera/blob/update_health_hud()
if(blob_core)
+18 -17
View File
@@ -243,18 +243,19 @@
else
return ..()
/obj/structure/blob/proc/chemeffectreport(mob/user)
/obj/structure/blob/proc/chemeffectreport()
. = list()
if(overmind)
to_chat(user, "<b>Material: <font color=\"[overmind.blob_reagent_datum.color]\">[overmind.blob_reagent_datum.name]</font><span class='notice'>.</span></b>")
to_chat(user, "<b>Material Effects:</b> <span class='notice'>[overmind.blob_reagent_datum.analyzerdescdamage]</span>")
to_chat(user, "<b>Material Properties:</b> <span class='notice'>[overmind.blob_reagent_datum.analyzerdesceffect]</span><br>")
. += "<b>Material: <font color=\"[overmind.blob_reagent_datum.color]\">[overmind.blob_reagent_datum.name]</font><span class='notice'>.</span></b>"
. += "<b>Material Effects:</b> <span class='notice'>[overmind.blob_reagent_datum.analyzerdescdamage]</span>"
. += "<b>Material Properties:</b> <span class='notice'>[overmind.blob_reagent_datum.analyzerdesceffect]</span><br>"
else
to_chat(user, "<b>No Material Detected!</b><br>")
. += "<b>No Material Detected!</b><br>"
/obj/structure/blob/proc/typereport(mob/user)
to_chat(user, "<b>Blob Type:</b> <span class='notice'>[uppertext(initial(name))]</span>")
to_chat(user, "<b>Health:</b> <span class='notice'>[obj_integrity]/[max_integrity]</span>")
to_chat(user, "<b>Effects:</b> <span class='notice'>[scannerreport()]</span>")
/obj/structure/blob/proc/typereport()
. = list("<b>Blob Type:</b> <span class='notice'>[uppertext(initial(name))]</span>")
. += "<b>Health:</b> <span class='notice'>[obj_integrity]/[max_integrity]</span>"
. += "<b>Effects:</b> <span class='notice'>[scannerreport()]</span>"
/obj/structure/blob/attack_animal(mob/living/simple_animal/M)
if(ROLE_BLOB in M.faction) //sorry, but you can't kill the blob as a blobbernaut
@@ -310,20 +311,20 @@
return B
/obj/structure/blob/examine(mob/user)
..()
. = ..()
var/datum/atom_hud/hud_to_check = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
if(user.research_scanner || hud_to_check.hudusers[user])
to_chat(user, "<b>Your HUD displays an extensive report...</b><br>")
. += "<b>Your HUD displays an extensive report...</b><br>"
if(overmind)
to_chat(user, "<b>Progress to Critical Mass:</b> <span class='notice'>[overmind.blobs_legit.len]/[overmind.blobwincount].</span>")
. += "<b>Progress to Critical Mass:</b> <span class='notice'>[overmind.blobs_legit.len]/[overmind.blobwincount].</span>"
else
to_chat(user, "<b>Core neutralized. Critical mass no longer attainable.</b>")
chemeffectreport(user)
typereport(user)
. += "<b>Core neutralized. Critical mass no longer attainable.</b>"
. += chemeffectreport()
. += typereport()
else
if(isobserver(user) && overmind)
to_chat(user, "<b>Progress to Critical Mass:</b> <span class='notice'>[overmind.blobs_legit.len]/[overmind.blobwincount].</span>")
to_chat(user, "It seems to be made of [get_chem_name()].")
. += "<b>Progress to Critical Mass:</b> <span class='notice'>[overmind.blobs_legit.len]/[overmind.blobwincount].</span>"
. += "It seems to be made of [get_chem_name()]."
/obj/structure/blob/proc/scannerreport()
return "A generic blob. Looks like someone forgot to override this proc, adminhelp this."
@@ -21,5 +21,5 @@
/obj/effect/clockwork/examine(mob/user)
if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc)
desc = clockwork_desc
..()
. = ..()
desc = initial(desc)
@@ -6,6 +6,7 @@
/obj/effect/clockwork/overlay/examine(mob/user)
if(linked)
linked.examine(user)
return ..()
/obj/effect/clockwork/overlay/ex_act()
return FALSE
@@ -196,15 +196,15 @@
..()
/obj/effect/clockwork/sigil/transmission/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
var/structure_number = 0
for(var/obj/structure/destructible/clockwork/powered/P in range(SIGIL_ACCESS_RANGE, src))
structure_number++
to_chat(user, "<span class='[get_clockwork_power() ? "brass":"alloy"]'>It is storing <b>[DisplayPower(get_clockwork_power())]</b> of shared power, \
and <b>[structure_number]</b> clockwork structure[structure_number == 1 ? " is":"s are"] in range.</span>")
. += "<span class='[get_clockwork_power() ? "brass":"alloy"]'>It is storing <b>[DisplayPower(get_clockwork_power())]</b> of shared power, \
and <b>[structure_number]</b> clockwork structure[structure_number == 1 ? " is":"s are"] in range.</span>"
if(iscyborg(user))
to_chat(user, "<span class='brass'>You can recharge from the [sigil_name] by crossing it.</span>")
. += "<span class='brass'>You can recharge from the [sigil_name] by crossing it.</span>"
/obj/effect/clockwork/sigil/transmission/sigil_effects(mob/living/L)
if(is_servant_of_ratvar(L))
@@ -279,13 +279,13 @@
var/static/list/damage_heal_order = list(CLONE, TOX, BURN, BRUTE, OXY) //we heal damage in this order
/obj/effect/clockwork/sigil/vitality/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='[GLOB.clockwork_vitality ? "inathneq_small":"alloy"]'>It has access to <b>[GLOB.ratvar_awakens ? "INFINITE":GLOB.clockwork_vitality]</b> units of vitality.</span>")
. += "<span class='[GLOB.clockwork_vitality ? "inathneq_small":"alloy"]'>It has access to <b>[GLOB.ratvar_awakens ? "INFINITE":GLOB.clockwork_vitality]</b> units of vitality.</span>"
if(GLOB.ratvar_awakens)
to_chat(user, "<span class='inathneq_small'>It can revive Servants at no cost!</span>")
. += "<span class='inathneq_small'>It can revive Servants at no cost!</span>"
else
to_chat(user, "<span class='inathneq_small'>It can revive Servants at a cost of <b>[revive_cost]</b> vitality.</span>")
. += "<span class='inathneq_small'>It can revive Servants at a cost of <b>[revive_cost]</b> vitality.</span>"
/obj/effect/clockwork/sigil/vitality/sigil_effects(mob/living/L)
if((is_servant_of_ratvar(L) && L.suiciding) || sigil_active)
@@ -53,9 +53,9 @@
return TRUE
/obj/effect/clockwork/spatial_gateway/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='brass'>It has [uses] use\s remaining.</span>")
. += "<span class='brass'>It has [uses] use\s remaining.</span>"
//ATTACK GHOST IGNORING PARENT RETURN VALUE
/obj/effect/clockwork/spatial_gateway/attack_ghost(mob/user)
@@ -20,5 +20,5 @@
/obj/item/clockwork/examine(mob/user)
if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc)
desc = clockwork_desc
..()
. = ..()
desc = initial(desc)
@@ -12,7 +12,7 @@
/obj/item/clockwork/component/examine(mob/user)
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='[get_component_span(component_id)]'>You can activate this in your hand to break it down for power.</span>")
. += "<span class='[get_component_span(component_id)]'>You can activate this in your hand to break it down for power.</span>"
/obj/item/clockwork/component/attack_self(mob/living/user)
if(is_servant_of_ratvar(user))
@@ -181,9 +181,9 @@
pixel_y = rand(-sprite_shift, sprite_shift)
/obj/item/clockwork/alloy_shards/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='brass'>Can be consumed by a replica fabricator as a source of power.</span>")
. += "<span class='brass'>Can be consumed by a replica fabricator as a source of power.</span>"
/obj/item/clockwork/alloy_shards/proc/replace_name_desc()
name = "replicant alloy shard"
@@ -27,11 +27,11 @@
armour_penetration = initial(armour_penetration)
/obj/item/clockwork/weapon/ratvarian_spear/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='inathneq_small'>Attacks on living non-Servants will generate <b>[bonus_burn]</b> units of vitality.</span>")
. += "<span class='inathneq_small'>Attacks on living non-Servants will generate <b>[bonus_burn]</b> units of vitality.</span>"
if(!iscyborg(user))
to_chat(user, "<span class='brass'>Throwing the spear will do massive damage, break the spear, and knock down the target.</span>")
. += "<span class='brass'>Throwing the spear will do massive damage, break the spear, and knock down the target.</span>"
/obj/item/clockwork/weapon/ratvarian_spear/attack(mob/living/target, mob/living/carbon/human/user)
. = ..()
@@ -121,15 +121,15 @@
adjust_clockwork_power(0.1) //Slabs serve as very weak power generators on their own (no, not enough to justify spamming them)
/obj/item/clockwork/slab/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
if(LAZYLEN(quickbound))
for(var/i in 1 to quickbound.len)
if(!quickbound[i])
continue
var/datum/clockwork_scripture/quickbind_slot = quickbound[i]
to_chat(user, "<b>Quickbind</b> button: <span class='[get_component_span(initial(quickbind_slot.primary_component))]'>[initial(quickbind_slot.name)]</span>.")
to_chat(user, "<b>Available power:</b> <span class='bold brass'>[DisplayPower(get_clockwork_power())].</span>")
. += "<b>Quickbind</b> button: <span class='[get_component_span(initial(quickbind_slot.primary_component))]'>[initial(quickbind_slot.name)]</span>."
. += "<b>Available power:</b> <span class='bold brass'>[DisplayPower(get_clockwork_power())].</span>"
//Slab actions; Hierophant, Quickbind
/obj/item/clockwork/slab/ui_action_click(mob/user, action)
@@ -28,7 +28,7 @@
/obj/item/clockwork/construct_chassis/examine(mob/user)
clockwork_desc = "[clockwork_desc]<br>[construct_desc]"
..()
. = ..()
clockwork_desc = initial(clockwork_desc)
//ATTACK HAND IGNORING PARENT RETURN VALUE
@@ -44,16 +44,16 @@
speed_multiplier = initial(speed_multiplier)
/obj/item/clockwork/replica_fabricator/examine(mob/living/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='brass'>Can be used to replace walls, floors, tables, windows, windoors, and airlocks with Clockwork variants.</span>")
to_chat(user, "<span class='brass'>Can construct Clockwork Walls on Clockwork Floors and deconstruct Clockwork Walls to Clockwork Floors.</span>")
. += "<span class='brass'>Can be used to replace walls, floors, tables, windows, windoors, and airlocks with Clockwork variants.</span>"
. += "<span class='brass'>Can construct Clockwork Walls on Clockwork Floors and deconstruct Clockwork Walls to Clockwork Floors.</span>"
if(uses_power)
to_chat(user, "<span class='alloy'>It can consume floor tiles, rods, metal, and plasteel for power at rates of <b>2:[DisplayPower(POWER_ROD)]</b>, <b>1:[DisplayPower(POWER_ROD)]</b>, <b>1:[DisplayPower(POWER_METAL)]</b>, \
and <b>1:[DisplayPower(POWER_PLASTEEL)]</b>, respectively.</span>")
to_chat(user, "<span class='alloy'>It can also consume brass sheets for power at a rate of <b>1:[DisplayPower(POWER_FLOOR)]</b>.</span>")
to_chat(user, "<span class='alloy'>Use it in-hand to produce <b>5</b> brass sheets at a cost of <b>[DisplayPower(POWER_WALL_TOTAL)]</b> power.</span>")
to_chat(user, "<span class='alloy'>It has access to <b>[DisplayPower(get_clockwork_power())]</b> of power.</span>")
. += "<span class='alloy'>It can consume floor tiles, rods, metal, and plasteel for power at rates of <b>2:[DisplayPower(POWER_ROD)]</b>, <b>1:[DisplayPower(POWER_ROD)]</b>, <b>1:[DisplayPower(POWER_METAL)]</b>, \
and <b>1:[DisplayPower(POWER_PLASTEEL)]</b>, respectively.</span>"
. += "<span class='alloy'>It can also consume brass sheets for power at a rate of <b>1:[DisplayPower(POWER_FLOOR)]</b>.</span>"
. += "<span class='alloy'>Use it in-hand to produce <b>5</b> brass sheets at a cost of <b>[DisplayPower(POWER_WALL_TOTAL)]</b> power.</span>"
. += "<span class='alloy'>It has access to <b>[DisplayPower(get_clockwork_power())]</b> of power.</span>"
/obj/item/clockwork/replica_fabricator/attack_self(mob/living/user)
if(is_servant_of_ratvar(user))
@@ -39,7 +39,7 @@
/obj/item/mmi/posibrain/soul_vessel/examine(mob/user)
if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc)
desc = clockwork_desc
..()
. = ..()
desc = initial(desc)
/obj/item/mmi/posibrain/soul_vessel/transfer_personality(mob/candidate)
@@ -57,7 +57,7 @@
msg += "[addendum]\n"
msg += "*---------*</span>"
to_chat(user, msg)
return list(msg)
/mob/living/simple_animal/hostile/clockwork/proc/examine_info() //Override this on a by-mob basis to have unique examine info
return
@@ -43,10 +43,10 @@
var/can_see_clockwork = is_servant_of_ratvar(user) || isobserver(user)
if(can_see_clockwork && clockwork_desc)
desc = clockwork_desc
..()
. = ..()
desc = initial(desc)
if(unanchored_icon)
to_chat(user, "<span class='notice'>[src] is [anchored ? "":"not "]secured to the floor.</span>")
. += "<span class='notice'>[src] is [anchored ? "":"not "]secured to the floor.</span>"
/obj/structure/destructible/clockwork/examine_status(mob/user)
if(is_servant_of_ratvar(user) || isobserver(user))
@@ -155,12 +155,12 @@
var/inactive_icon = null //icon_state while process() isn't being called
/obj/structure/destructible/clockwork/powered/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
if(!can_access_clockwork_power(src))
to_chat(user, "<span class='alloy'>It has no access to the power network! Create a sigil of transmission nearby.</span>")
. += "<span class='alloy'>It has no access to the power network! Create a sigil of transmission nearby.</span>"
else
to_chat(user, "<span class='brass'>It has access to <b>[DisplayPower(get_clockwork_power())]</b> of power.</span>")
. += "<span class='brass'>It has access to <b>[DisplayPower(get_clockwork_power())]</b> of power.</span>"
/obj/structure/destructible/clockwork/powered/Destroy()
SSfastprocess.processing -= src
@@ -16,16 +16,16 @@
return ..()
/obj/structure/destructible/clockwork/trap/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "It's wired to:")
. += "It's wired to:"
if(!wired_to.len)
to_chat(user, "Nothing.")
. += "Nothing."
else
for(var/V in wired_to)
var/obj/O = V
var/distance = get_dist(src, O)
to_chat(user, "[O] ([distance == 0 ? "same tile" : "[distance] tiles [dir2text(get_dir(src, O))]"])")
. += "[O] ([distance == 0 ? "same tile" : "[distance] tiles [dir2text(get_dir(src, O))]"])"
/obj/structure/destructible/clockwork/trap/wrench_act(mob/living/user, obj/item/I)
if(!is_servant_of_ratvar(user))
@@ -223,34 +223,34 @@
/obj/structure/destructible/clockwork/massive/celestial_gateway/examine(mob/user)
icon_state = "spatial_gateway" //cheat wildly by pretending to have an icon
..()
. = ..()
icon_state = initial(icon_state)
if(is_servant_of_ratvar(user) || isobserver(user))
if(!active)
to_chat(user, "<span class='big'><b>Time until the Ark's activation:</b> [DisplayTimeText(get_arrival_time())]</span>")
. += "<span class='big'><b>Time until the Ark's activation:</b> [DisplayTimeText(get_arrival_time())]</span>"
else
if(grace_period)
to_chat(user, "<span class='big'><b>Crew grace period time remaining:</b> [DisplayTimeText(get_arrival_time())]</span>")
. += "<span class='big'><b>Crew grace period time remaining:</b> [DisplayTimeText(get_arrival_time())]</span>"
else
to_chat(user, "<span class='big'><b>Time until Ratvar's arrival:</b> [DisplayTimeText(get_arrival_time())]</span>")
. += "<span class='big'><b>Time until Ratvar's arrival:</b> [DisplayTimeText(get_arrival_time())]</span>"
switch(progress_in_seconds)
if(-INFINITY to GATEWAY_REEBE_FOUND)
to_chat(user, "<span class='heavy_brass'>The Ark is feeding power into the bluespace field.</span>")
. += "<span class='heavy_brass'>The Ark is feeding power into the bluespace field.</span>"
if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING)
to_chat(user, "<span class='heavy_brass'>The field is ripping open a copy of itself in Ratvar's prison.</span>")
. += "<span class='heavy_brass'>The field is ripping open a copy of itself in Ratvar's prison.</span>"
if(GATEWAY_RATVAR_COMING to INFINITY)
to_chat(user, "<span class='heavy_brass'>With the bluespace field established, Ratvar is preparing to come through!</span>")
. += "<span class='heavy_brass'>With the bluespace field established, Ratvar is preparing to come through!</span>"
else
if(!active)
to_chat(user, "<span class='warning'>Whatever it is, it doesn't seem to be active.</span>")
. += "<span class='warning'>Whatever it is, it doesn't seem to be active.</span>"
else
switch(progress_in_seconds)
if(-INFINITY to GATEWAY_REEBE_FOUND)
to_chat(user, "<span class='warning'>You see a swirling bluespace anomaly steadily growing in intensity.</span>")
. += "<span class='warning'>You see a swirling bluespace anomaly steadily growing in intensity.</span>"
if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING)
to_chat(user, "<span class='warning'>The anomaly is stable, and you can see flashes of something from it.</span>")
. += "<span class='warning'>The anomaly is stable, and you can see flashes of something from it.</span>"
if(GATEWAY_RATVAR_COMING to INFINITY)
to_chat(user, "<span class='boldwarning'>The anomaly is stable! Something is coming through!</span>")
. += "<span class='boldwarning'>The anomaly is stable! Something is coming through!</span>"
/obj/structure/destructible/clockwork/massive/celestial_gateway/process()
if(seconds_until_activation == -1) //we never do anything
@@ -21,9 +21,9 @@
toggle(1)
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='nzcrentr_small'>It requires <b>[DisplayPower(hierophant_cost)]</b> to broadcast over the Hierophant Network, and <b>[DisplayPower(gateway_cost)]</b> to open a Spatial Gateway.</span>")
. += "<span class='nzcrentr_small'>It requires <b>[DisplayPower(hierophant_cost)]</b> to broadcast over the Hierophant Network, and <b>[DisplayPower(gateway_cost)]</b> to open a Spatial Gateway.</span>"
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/can_be_unfasten_wrench(mob/user, silent)
if(active)
@@ -47,16 +47,16 @@
STOP_PROCESSING(SSprocessing, src)
/obj/structure/destructible/clockwork/heralds_beacon/examine(mob/user)
..()
. = ..()
if(isobserver(user) || is_servant_of_ratvar(user))
if(!available)
if(!GLOB.ratvar_approaches)
to_chat(user, "<span class='bold alloy'>It can no longer be activated.</span>")
. += "<span class='bold alloy'>It can no longer be activated.</span>"
else
to_chat(user, "<span class='bold neovgre_small'>It has been activated!</span>")
. += "<span class='bold neovgre_small'>It has been activated!</span>"
else
to_chat(user, "<span class='brass'>There are <b>[time_remaining]</b> second[time_remaining != 1 ? "s" : ""] remaining to vote.</span>")
to_chat(user, "<span class='big brass'>There are <b>[voters.len]/[votes_needed]</b> votes to activate the beacon!</span>")
. += "<span class='brass'>There are <b>[time_remaining]</b> second[time_remaining != 1 ? "s" : ""] remaining to vote.</span>"
. += "<span class='big brass'>There are <b>[voters.len]/[votes_needed]</b> votes to activate the beacon!</span>"
/obj/structure/destructible/clockwork/heralds_beacon/attack_hand(mob/living/user)
. = ..()
@@ -17,9 +17,9 @@
var/mania_cost = 150
/obj/structure/destructible/clockwork/powered/mania_motor/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='sevtug_small'>It requires <b>[DisplayPower(mania_cost)]</b> to run.</span>")
. += "<span class='sevtug_small'>It requires <b>[DisplayPower(mania_cost)]</b> to run.</span>"
/obj/structure/destructible/clockwork/powered/mania_motor/forced_disable(bad_effects)
if(active)
@@ -25,8 +25,8 @@
return ..()
/obj/structure/destructible/clockwork/ocular_warden/examine(mob/user)
..()
to_chat(user, "<span class='brass'>[target ? "<b>It's fixated on [target]!</b>" : "Its gaze is wandering aimlessly."]</span>")
. = ..()
. += "<span class='brass'>[target ? "<b>It's fixated on [target]!</b>" : "Its gaze is wandering aimlessly."]</span>"
/obj/structure/destructible/clockwork/ocular_warden/hulk_damage()
return 25
@@ -25,11 +25,11 @@
. = ..()
/obj/structure/destructible/clockwork/stargazer/examine(mob/user)
..()
. = ..()
if(is_servant_of_ratvar(user))
to_chat(user, "<span class='nzcrentr_small'>Generates <b>[DisplayPower(STARGAZER_POWER)]</b> per second while viewing starlight within [STARGAZER_RANGE] tiles.</span>")
. += "<span class='nzcrentr_small'>Generates <b>[DisplayPower(STARGAZER_POWER)]</b> per second while viewing starlight within [STARGAZER_RANGE] tiles.</span>"
if(star_light_star_bright)
to_chat(user, "[is_servant_of_ratvar(user) ? "<span class='nzcrentr_small'>It can see starlight!</span>" : "It's shining brilliantly!"]")
. += "[is_servant_of_ratvar(user) ? "<span class='nzcrentr_small'>It can see starlight!</span>" : "It's shining brilliantly!"]"
/obj/structure/destructible/clockwork/stargazer/process()
star_light_star_bright = check_starlight()
@@ -113,7 +113,7 @@
"<span class='danger'>You start tenderly lifting [skewee] off of [src]...</span>")
if(!do_after(user, 60, target = skewee))
skewee.visible_message("<span class='warning'>[skewee] painfully slides back down [src].</span>")
skewee.emote("moan")
skewee.say("Oof, ouch owwie!!", forced = "fail brass skewer removal")
return
skewee.visible_message("<span class='danger'>[skewee] comes free of [src] with a squelching pop!</span>", \
"<span class='boldannounce'>You come free of [src]!</span>")
+1 -1
View File
@@ -651,7 +651,7 @@
/obj/item/melee/blood_magic/manipulator/examine(mob/user)
. = ..()
if(iscultist(user))
to_chat(user, "<span class='cultitalic'>The [name] currently has <b>[uses]</b> blood charges left.</span>")
. += "<span class='cultitalic'>The [name] currently has <b>[uses]</b> blood charges left.</span>"
/obj/item/melee/blood_magic/manipulator/afterattack(atom/target, mob/living/carbon/human/user, proximity)
if(proximity)
+6 -5
View File
@@ -119,10 +119,11 @@
AddComponent(/datum/component/butchering, 50, 80)
/obj/item/twohanded/required/cult_bastard/examine(mob/user)
. = ..()
if(contents.len)
desc+="<br><b>There are [contents.len] souls trapped within the sword's core.</b>"
. += "<br><b>There are [contents.len] souls trapped within the sword's core.</b>"
else
desc+="<br>The sword appears to be quite lifeless."
. += "<br>The sword appears to be quite lifeless."
/obj/item/twohanded/required/cult_bastard/can_be_pulled(user)
return FALSE
@@ -557,11 +558,11 @@
var/uses = 4
/obj/item/cult_shift/examine(mob/user)
..()
. = ..()
if(uses)
to_chat(user, "<span class='cult'>It has [uses] use\s remaining.</span>")
. += "<span class='cult'>It has [uses] use\s remaining.</span>"
else
to_chat(user, "<span class='cult'>It seems drained.</span>")
. += "<span class='cult'>It seems drained.</span>"
/obj/item/cult_shift/proc/handle_teleport_grab(turf/T, mob/user)
var/mob/living/carbon/C = user
@@ -29,10 +29,10 @@
/obj/structure/destructible/cult/examine(mob/user)
..()
to_chat(user, "<span class='notice'>\The [src] is [anchored ? "":"not "]secured to the floor.</span>")
. = ..()
. += "<span class='notice'>\The [src] is [anchored ? "":"not "]secured to the floor.</span>"
if((iscultist(user) || isobserver(user)) && cooldowntime > world.time)
to_chat(user, "<span class='cult italic'>The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
. += "<span class='cult italic'>The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>"
/obj/structure/destructible/cult/examine_status(mob/user)
if(iscultist(user) || isobserver(user))
+5 -5
View File
@@ -15,12 +15,12 @@ This file contains the cult dagger and rune list code
GLOB.rune_types[initial(R.cultist_name)] = R //Uses the cultist name for displaying purposes
/obj/item/melee/cultblade/dagger/examine(mob/user)
..()
. = ..()
if(iscultist(user) || isobserver(user))
to_chat(user, "<span class='cult'>The scriptures of the Geometer. Allows the scribing of runes and access to the knowledge archives of the cult of Nar'Sie.</span>")
to_chat(user, "<span class='cult'>Striking a cult structure will unanchor or reanchor it.</span>")
to_chat(user, "<span class='cult'>Striking another cultist with it will purge holy water from them.</span>")
to_chat(user, "<span class='cult'>Striking a noncultist, however, will tear their flesh.</span>")
. += "<span class='cult'>The scriptures of the Geometer. Allows the scribing of runes and access to the knowledge archives of the cult of Nar'Sie.</span>"
. += "<span class='cult'>Striking a cult structure will unanchor or reanchor it.</span>"
. += "<span class='cult'>Striking another cultist with it will purge holy water from them.</span>"
. += "<span class='cult'>Striking a noncultist, however, will tear their flesh.</span>"
/obj/item/melee/cultblade/dagger/attack(mob/living/M, mob/living/user)
if(iscultist(M))
+9 -9
View File
@@ -47,13 +47,13 @@ Runes can either be invoked by one's self or with many different cultists. Each
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "cult_runes", I)
/obj/effect/rune/examine(mob/user)
..()
. = ..()
if(iscultist(user) || user.stat == DEAD) //If they're a cultist or a ghost, tell them the effects
to_chat(user, "<b>Name:</b> [cultist_name]")
to_chat(user, "<b>Effects:</b> [capitalize(cultist_desc)]")
to_chat(user, "<b>Required Acolytes:</b> [req_cultists_text ? "[req_cultists_text]":"[req_cultists]"]")
. += "<b>Name:</b> [cultist_name]"
. += "<b>Effects:</b> [capitalize(cultist_desc)]"
. += "<b>Required Acolytes:</b> [req_cultists_text ? "[req_cultists_text]":"[req_cultists]"]"
if(req_keyword && keyword)
to_chat(user, "<b>Keyword:</b> [keyword]")
. += "<b>Keyword:</b> [keyword]"
/obj/effect/rune/attackby(obj/I, mob/user, params)
if(istype(I, /obj/item/melee/cultblade/dagger) && iscultist(user))
@@ -525,10 +525,10 @@ structure_check() searches for nearby cultist structures required for the invoca
var/static/revives_used = -SOULS_TO_REVIVE // Cultists get one "free" revive
/obj/effect/rune/raise_dead/examine(mob/user)
..()
. = ..()
if(iscultist(user) || user.stat == DEAD)
var/revive_number = LAZYLEN(GLOB.sacrificed) - revives_used
to_chat(user, "<b>Revives Remaining:</b> [revive_number]")
. += "<b>Revives Remaining:</b> [revive_number]"
/obj/effect/rune/raise_dead/invoke(var/list/invokers)
var/turf/T = get_turf(src)
@@ -622,11 +622,11 @@ structure_check() searches for nearby cultist structures required for the invoca
GLOB.wall_runes += src
/obj/effect/rune/wall/examine(mob/user)
..()
. = ..()
if(density && iscultist(user))
var/datum/timedevent/TMR = active_timers[1]
if(TMR)
to_chat(user, "<span class='cultitalic'>The air above this rune has hardened into a barrier that will last [DisplayTimeText(TMR.timeToRun - world.time)].</span>")
. += "<span class='cultitalic'>The air above this rune has hardened into a barrier that will last [DisplayTimeText(TMR.timeToRun - world.time)].</span>"
/obj/effect/rune/wall/Destroy()
GLOB.wall_runes -= src
@@ -64,26 +64,25 @@
/mob/living/carbon/true_devil/examine(mob/user)
var/msg = "<span class='info'>*---------*\nThis is [icon2html(src, user)] <b>[src]</b>!\n"
. = list("<span class='info'>*---------*\nThis is [icon2html(src, user)] <b>[src]</b>!")
//Left hand items
for(var/obj/item/I in held_items)
if(!(I.item_flags & ABSTRACT))
msg += "It is holding [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))].\n"
. += "It is holding [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))]."
//Braindead
if(!client && stat != DEAD)
msg += "The devil seems to be in deep contemplation.\n"
. += "The devil seems to be in deep contemplation."
//Damaged
if(stat == DEAD)
msg += "<span class='deadsay'>The hellfire seems to have been extinguished, for now at least.</span>\n"
. += "<span class='deadsay'>The hellfire seems to have been extinguished, for now at least.</span>"
else if(health < (maxHealth/10))
msg += "<span class='warning'>You can see hellfire inside its gaping wounds.</span>\n"
. += "<span class='warning'>You can see hellfire inside its gaping wounds.</span>"
else if(health < (maxHealth/2))
msg += "<span class='warning'>You can see hellfire inside its wounds.</span>\n"
msg += "*---------*</span>"
to_chat(user, msg)
. += "<span class='warning'>You can see hellfire inside its wounds.</span>"
. += "*---------*</span>"
/mob/living/carbon/true_devil/IsAdvancedToolUser()
return 1
@@ -97,14 +97,14 @@ the new instance inside the host to be updated to the template's stats.
/mob/camera/disease/examine(mob/user)
..()
. = ..()
if(isobserver(user))
to_chat(user, "<span class='notice'>[src] has [points]/[total_points] adaptation points.</span>")
to_chat(user, "<span class='notice'>[src] has the following unlocked:</span>")
. += "<span class='notice'>[src] has [points]/[total_points] adaptation points.</span>"
. += "<span class='notice'>[src] has the following unlocked:</span>"
for(var/A in purchased_abilities)
var/datum/disease_ability/B = A
if(istype(B))
to_chat(user, "<span class='notice'>[B.name]</span>")
. += "<span class='notice'>[B.name]</span>"
/mob/camera/disease/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
return
+3 -4
View File
@@ -52,12 +52,11 @@
/mob/living/simple_animal/hostile/morph/examine(mob/user)
if(morphed)
form.examine(user) // Refactor examine to return desc so it's static? Not sure if worth it
. = form.examine(user)
if(get_dist(user,src)<=3)
to_chat(user, "<span class='warning'>It doesn't look quite right...</span>")
. += "<span class='warning'>It doesn't look quite right...</span>"
else
..()
return
. = ..()
/mob/living/simple_animal/hostile/morph/med_hud_set_health()
if(morphed && !isliving(form))
@@ -55,9 +55,9 @@
/obj/machinery/nuclearbomb/examine(mob/user)
. = ..()
if(exploding)
to_chat(user, "It is in the process of exploding. Perhaps reviewing your affairs is in order.")
. += "It is in the process of exploding. Perhaps reviewing your affairs is in order."
if(timing)
to_chat(user, "There are [get_time_left()] seconds until detonation.")
. += "There are [get_time_left()] seconds until detonation."
/obj/machinery/nuclearbomb/selfdestruct
name = "station self-destruct terminal"
@@ -472,9 +472,9 @@
/obj/machinery/nuclearbomb/beer/examine(mob/user)
. = ..()
if(keg.reagents.total_volume)
to_chat(user, "<span class='notice'>It has [keg.reagents.total_volume] unit\s left.</span>")
. += "<span class='notice'>It has [keg.reagents.total_volume] unit\s left.</span>"
else
to_chat(user, "<span class='danger'>It's empty.</span>")
. += "<span class='danger'>It's empty.</span>"
/obj/machinery/nuclearbomb/beer/attackby(obj/item/W, mob/user, params)
if(W.is_refillable())
@@ -615,7 +615,7 @@ This is here to make the tiles around the station mininuke change when it's arme
var/captain = user.mind && user.mind.assigned_role == "Captain"
var/nukie = user.mind && user.mind.has_antag_datum(/datum/antagonist/nukeop)
if(ghost || captain || nukie)
to_chat(user, "<span class='warning'>The serial numbers on [src] are incorrect.</span>")
. += "<span class='warning'>The serial numbers on [src] are incorrect.</span>"
/obj/item/disk/nuclear/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/claymore/highlander) && !fake)
@@ -2,7 +2,7 @@
var/mode = TRACK_NUKE_DISK
/obj/item/pinpointer/nuke/examine(mob/user)
..()
. = ..()
var/msg = "Its tracking indicator reads "
switch(mode)
if(TRACK_NUKE_DISK)
@@ -13,10 +13,10 @@
msg += "\"vasvygengbefuvc\"."
else
msg = "Its tracking indicator is blank."
to_chat(user, msg)
. += msg
for(var/obj/machinery/nuclearbomb/bomb in GLOB.machines)
if(bomb.timing)
to_chat(user, "Extreme danger. Arming signal detected. Time remaining: [bomb.get_time_left()].")
. += "Extreme danger. Arming signal detected. Time remaining: [bomb.get_time_left()]."
/obj/item/pinpointer/nuke/process()
..()
@@ -368,11 +368,11 @@
scatter()
/obj/item/ectoplasm/revenant/examine(mob/user)
..()
. = ..()
if(inert)
to_chat(user, "<span class='revennotice'>It seems inert.</span>")
. += "<span class='revennotice'>It seems inert.</span>"
else if(reforming)
to_chat(user, "<span class='revenwarning'>It is shifting and distorted. It would be wise to destroy this.</span>")
. += "<span class='revenwarning'>It is shifting and distorted. It would be wise to destroy this.</span>"
/obj/item/ectoplasm/revenant/proc/reform()
if(QDELETED(src) || QDELETED(revenant) || inert)
@@ -49,6 +49,12 @@
A.malf_picker.remove_malf_verbs(A)
qdel(A.malf_picker)
/datum/antagonist/traitor/proc/handle_hearing(datum/source, list/hearing_args)
var/message = hearing_args[HEARING_MESSAGE]
message = GLOB.syndicate_code_phrase_regex.Replace(message, "<span class='blue'>$1</span>")
message = GLOB.syndicate_code_response_regex.Replace(message, "<span class='red'>$1</span>")
hearing_args[HEARING_MESSAGE] = message
SSticker.mode.traitors -= owner
if(!silent && owner.current)
to_chat(owner.current,"<span class='userdanger'> You are no longer the [special_role]! </span>")
@@ -35,15 +35,15 @@
to_chat(user, "<span class='danger'>An overwhelming feeling of dread comes over you as you pick up the soulstone. It would be wise to be rid of this quickly.</span>")
/obj/item/soulstone/examine(mob/user)
..()
. = ..()
if(usability || iscultist(user) || iswizard(user) || isobserver(user))
if (old_shard)
to_chat(user, "<span class='cult'>A soulstone, used to capture a soul, either from dead humans or from freed shades.</span>")
. += "<span class='cult'>A soulstone, used to capture a soul, either from dead humans or from freed shades.</span>"
else
to_chat(user, "<span class='cult'>A soulstone, used to capture souls, either from unconscious or sleeping humans or from freed shades.</span>")
to_chat(user, "<span class='cult'>The captured soul can be placed into a construct shell to produce a construct, or released from the stone as a shade.</span>")
. += "<span class='cult'>A soulstone, used to capture souls, either from unconscious or sleeping humans or from freed shades.</span>"
. += "<span class='cult'>The captured soul can be placed into a construct shell to produce a construct, or released from the stone as a shade.</span>"
if(spent)
to_chat(user, "<span class='cult'>This shard is spent; it is now just a creepy rock.</span>")
. += "<span class='cult'>This shard is spent; it is now just a creepy rock.</span>"
/obj/item/soulstone/Destroy() //Stops the shade from being qdel'd immediately and their ghost being sent back to the arrival shuttle.
for(var/mob/living/simple_animal/shade/A in src)
@@ -102,13 +102,13 @@
desc = "A wicked machine used by those skilled in magical arts. It is inactive."
/obj/structure/constructshell/examine(mob/user)
..()
. = ..()
if(iscultist(user) || iswizard(user) || user.stat == DEAD)
to_chat(user, "<span class='cult'>A construct shell, used to house bound souls from a soulstone.</span>")
to_chat(user, "<span class='cult'>Placing a soulstone with a soul into this shell allows you to produce your choice of the following:</span>")
to_chat(user, "<span class='cult'>An <b>Artificer</b>, which can produce <b>more shells and soulstones</b>, as well as fortifications.</span>")
to_chat(user, "<span class='cult'>A <b>Wraith</b>, which does high damage and can jaunt through walls, though it is quite fragile.</span>")
to_chat(user, "<span class='cult'>A <b>Juggernaut</b>, which is very hard to kill and can produce temporary walls, but is slow.</span>")
. += "<span class='cult'>A construct shell, used to house bound souls from a soulstone.</span>"
. += "<span class='cult'>Placing a soulstone with a soul into this shell allows you to produce your choice of the following:</span>"
. += "<span class='cult'>An <b>Artificer</b>, which can produce <b>more shells and soulstones</b>, as well as fortifications.</span>"
. += "<span class='cult'>A <b>Wraith</b>, which does high damage and can jaunt through walls, though it is quite fragile.</span>"
. += "<span class='cult'>A <b>Juggernaut</b>, which is very hard to kill and can produce temporary walls, but is slow.</span>"
/obj/structure/constructshell/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/soulstone))
@@ -602,11 +602,11 @@
var/list/categories = list()
/obj/item/spellbook/examine(mob/user)
..()
. = ..()
if(owner)
to_chat(user, "There is a small signature on the front cover: \"[owner]\".")
. += "There is a small signature on the front cover: \"[owner]\"."
else
to_chat(user, "It appears to have no author.")
. += "It appears to have no author."
/obj/item/spellbook/Initialize()
. = ..()
+2 -2
View File
@@ -112,8 +112,8 @@
return TRUE
/obj/item/assembly/examine(mob/user)
..()
to_chat(user, "<span class='notice'>\The [src] [secured? "is secured and ready to be used!" : "can be attached to other things."]</span>")
. = ..()
. += "<span class='notice'>\The [src] [secured? "is secured and ready to be used!" : "can be attached to other things."]</span>"
/obj/item/assembly/attack_self(mob/user)
+2 -2
View File
@@ -8,9 +8,9 @@
var/cooldown = FALSE //Door cooldowns
/obj/item/assembly/control/examine(mob/user)
..()
. = ..()
if(id)
to_chat(user, "<span class='notice'>Its channel ID is '[id]'.</span>")
. += "<span class='notice'>Its channel ID is '[id]'.</span>"
/obj/item/assembly/control/activate()
cooldown = TRUE
+2 -2
View File
@@ -11,8 +11,8 @@
var/alarm_health = HEALTH_THRESHOLD_CRIT
/obj/item/assembly/health/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Use a multitool to swap between \"detect death\" mode and \"detect critical state\" mode.</span>")
. = ..()
. += "<span class='notice'>Use a multitool to swap between \"detect death\" mode and \"detect critical state\" mode.</span>"
/obj/item/assembly/health/activate()
if(!..())
+2 -2
View File
@@ -38,8 +38,8 @@
. = ..()
/obj/item/assembly/infra/examine(mob/user)
..()
to_chat(user, "<span class='notice'>The infrared trigger is [on?"on":"off"].</span>")
. = ..()
. += "<span class='notice'>The infrared trigger is [on?"on":"off"].</span>"
/obj/item/assembly/infra/activate()
if(!..())
+2 -2
View File
@@ -9,8 +9,8 @@
/obj/item/assembly/mousetrap/examine(mob/user)
..()
to_chat(user, "<span class='notice'>The pressure plate is [armed?"primed":"safe"].</span>")
. = ..()
. += "<span class='notice'>The pressure plate is [armed?"primed":"safe"].</span>"
/obj/item/assembly/mousetrap/activate()
if(..())
+2 -2
View File
@@ -21,8 +21,8 @@
. = ..()
/obj/item/assembly/prox_sensor/examine(mob/user)
..()
to_chat(user, "<span class='notice'>The proximity sensor is [timing ? "arming" : (scanning ? "armed" : "disarmed")].</span>")
. = ..()
. += "<span class='notice'>The proximity sensor is [timing ? "arming" : (scanning ? "armed" : "disarmed")].</span>"
/obj/item/assembly/prox_sensor/activate()
if(!..())
+2 -2
View File
@@ -169,8 +169,8 @@ Code:
return TRUE
/obj/item/assembly/signaler/receiver/examine(mob/user)
..()
to_chat(user, "<span class='notice'>The radio receiver is [on?"on":"off"].</span>")
. = ..()
. += "<span class='notice'>The radio receiver is [on?"on":"off"].</span>"
/obj/item/assembly/signaler/receiver/receive_signal(datum/signal/signal)
if(!on)
+2 -2
View File
@@ -31,8 +31,8 @@
. = ..()
/obj/item/assembly/timer/examine(mob/user)
..()
to_chat(user, "<span class='notice'>The timer is [timing ? "counting down from [time]":"set for [time] seconds"].</span>")
. = ..()
. += "<span class='notice'>The timer is [timing ? "counting down from [time]":"set for [time] seconds"].</span>"
/obj/item/assembly/timer/activate()
if(!..())
+2 -2
View File
@@ -22,8 +22,8 @@
"voice sensor")
/obj/item/assembly/voice/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Use a multitool to swap between \"inclusive\", \"exclusive\", \"recognizer\", and \"voice sensor\" mode.</span>")
. = ..()
. += "<span class='notice'>Use a multitool to swap between \"inclusive\", \"exclusive\", \"recognizer\", and \"voice sensor\" mode.</span>"
/obj/item/assembly/voice/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode)
. = ..()
@@ -222,11 +222,11 @@
. = ..()
switch(buildstage)
if(0)
to_chat(user, "<span class='notice'>It is missing air alarm electronics.</span>")
. += "<span class='notice'>It is missing air alarm electronics.</span>"
if(1)
to_chat(user, "<span class='notice'>It is missing wiring.</span>")
. += "<span class='notice'>It is missing wiring.</span>"
if(2)
to_chat(user, "<span class='notice'>Alt-click to [locked ? "unlock" : "lock"] the interface.</span>")
. += "<span class='notice'>Alt-click to [locked ? "unlock" : "lock"] the interface.</span>"
/obj/machinery/airalarm/ui_status(mob/user)
if(user.has_unlimited_silicon_privilege && aidisabled)
@@ -41,11 +41,11 @@ Pipelines + Other Objects -> Pipe network
var/on = FALSE
/obj/machinery/atmospherics/examine(mob/user)
..()
. = ..()
if(is_type_in_list(src, GLOB.ventcrawl_machinery) && isliving(user))
var/mob/living/L = user
if(L.ventcrawler)
to_chat(L, "<span class='notice'>Alt-click to crawl through it.</span>")
. += "<span class='notice'>Alt-click to crawl through it.</span>"
/obj/machinery/atmospherics/New(loc, process = TRUE, setdir)
if(!isnull(setdir))
@@ -30,8 +30,8 @@ Thus, the two variables affect pump operation are set in New():
/obj/machinery/atmospherics/components/binary/pump/examine(mob/user)
. = ..()
to_chat(user,"<span class='notice'>You can hold <b>Ctrl</b> and click on it to toggle it on and off.</span>")
to_chat(user,"<span class='notice'>You can hold <b>Alt</b> and click on it to maximize its pressure.</span>")
. += "<span class='notice'>You can hold <b>Ctrl</b> and click on it to toggle it on and off.</span>"
. += "<span class='notice'>You can hold <b>Alt</b> and click on it to maximize its pressure.</span>"
/obj/machinery/atmospherics/components/binary/pump/CtrlClick(mob/user)
var/area/A = get_area(src)
@@ -30,8 +30,8 @@ Thus, the two variables affect pump operation are set in New():
/obj/machinery/atmospherics/components/binary/volume_pump/examine(mob/user)
. = ..()
to_chat(user,"<span class='notice'>You can hold <b>Ctrl</b> and click on it to toggle it on and off.</span>")
to_chat(user,"<span class='notice'>You can hold <b>Alt</b> and click on it to maximize its pressure.</span>")
. += "<span class='notice'>You can hold <b>Ctrl</b> and click on it to toggle it on and off.</span>"
. += "<span class='notice'>You can hold <b>Alt</b> and click on it to maximize its pressure.</span>"
/obj/machinery/atmospherics/components/binary/volume_pump/CtrlClick(mob/user)
var/area/A = get_area(src)
@@ -14,8 +14,8 @@
/obj/machinery/atmospherics/components/trinary/filter/examine(mob/user)
. = ..()
to_chat(user,"<span class='notice'>You can hold <b>Ctrl</b> and click on it to toggle it on and off.</span>")
to_chat(user,"<span class='notice'>You can hold <b>Alt</b> and click on it to maximize its pressure.</span>")
. += "<span class='notice'>You can hold <b>Ctrl</b> and click on it to toggle it on and off.</span>"
. += "<span class='notice'>You can hold <b>Alt</b> and click on it to maximize its pressure.</span>"
/obj/machinery/atmospherics/components/trinary/filter/CtrlClick(mob/user)
var/area/A = get_area(src)
@@ -16,8 +16,8 @@
//node 3 is the outlet, nodes 1 & 2 are intakes
/obj/machinery/atmospherics/components/trinary/mixer/examine(mob/user)
. = ..()
to_chat(user,"<span class='notice'>You can hold <b>Ctrl</b> and click on it to toggle it on and off.</span>")
to_chat(user,"<span class='notice'>You can hold <b>Alt</b> and click on it to maximize its pressure.</span>")
. += "<span class='notice'>You can hold <b>Ctrl</b> and click on it to toggle it on and off.</span>"
. += "<span class='notice'>You can hold <b>Alt</b> and click on it to maximize its pressure.</span>"
/obj/machinery/atmospherics/components/trinary/mixer/CtrlClick(mob/user)
var/area/A = get_area(src)
@@ -262,14 +262,14 @@
open_machine()
/obj/machinery/atmospherics/components/unary/cryo_cell/examine(mob/user)
..()
. = ..()
if(occupant)
if(on)
to_chat(user, "Someone's inside [src]!")
. += "Someone's inside [src]!"
else
to_chat(user, "You can barely make out a form floating in [src].")
. += "You can barely make out a form floating in [src]."
else
to_chat(user, "[src] seems empty.")
. += "[src] seems empty."
/obj/machinery/atmospherics/components/unary/cryo_cell/MouseDrop_T(mob/target, mob/user)
if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser())
@@ -424,9 +424,9 @@
return FALSE
/obj/machinery/atmospherics/components/unary/vent_pump/examine(mob/user)
..()
. = ..()
if(welded)
to_chat(user, "It seems welded shut.")
. += "It seems welded shut."
/obj/machinery/atmospherics/components/unary/vent_pump/power_change()
..()
@@ -118,7 +118,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/proc/broadcast_status()
if(!radio_connection)
return FALSE
var/list/f_types = list()
for(var/path in GLOB.meta_gas_ids)
f_types += list(list("gas_id" = GLOB.meta_gas_ids[path], "gas_name" = GLOB.meta_gas_names[path], "enabled" = (path in filter_types)))
@@ -205,7 +205,7 @@
air_contents.merge(filtered_out)
tile.assume_air(removed)
tile.air_update_turf()
else //Just siphoning all air
var/transfer_moles = environment.total_moles()*(volume_rate/environment.volume)
@@ -303,11 +303,11 @@
if(. && on && is_operational())
to_chat(user, "<span class='warning'>You cannot unwrench [src], turn it off first!</span>")
return FALSE
/obj/machinery/atmospherics/components/unary/vent_scrubber/examine(mob/user)
..()
. = ..()
if(welded)
to_chat(user, "It seems welded shut.")
. += "It seems welded shut."
/obj/machinery/atmospherics/components/unary/vent_scrubber/can_crawl_through()
return !welded
@@ -111,8 +111,8 @@
. = "The connect error light is blinking."
/obj/machinery/meter/examine(mob/user)
..()
to_chat(user, status())
. = ..()
. += status()
/obj/machinery/meter/wrench_act(mob/user, obj/item/I)
to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
@@ -33,9 +33,9 @@
set_active(active) //Force overlay update.
/obj/machinery/atmospherics/miner/examine(mob/user)
..()
. = ..()
if(broken)
to_chat(user, "Its debug output is printing \"[broken_message]\".")
. += "Its debug output is printing \"[broken_message]\"."
/obj/machinery/atmospherics/miner/proc/check_operation()
if(!active)
@@ -88,10 +88,10 @@
replace_tank(user, TRUE)
/obj/machinery/portable_atmospherics/examine(mob/user)
..()
. = ..()
if(holding)
to_chat(user, "<span class='notice'>\The [src] contains [holding]. Alt-click [src] to remove it.</span>")
to_chat(user, "<span class='notice'>Click [src] with another gas tank to hot swap [holding].</span>")
. += "<span class='notice'>\The [src] contains [holding]. Alt-click [src] to remove it.</span>"
. += "<span class='notice'>Click [src] with another gas tank to hot swap [holding].</span>"
/obj/machinery/portable_atmospherics/proc/replace_tank(mob/living/user, close_valve, obj/item/tank/new_tank)
if(holding)
@@ -487,7 +487,7 @@
r_pocket = /obj/item/ammo_box/magazine/recharge/ctf
r_hand = /obj/item/gun/ballistic/automatic/laser/ctf
/datum/outfit/ctf/post_equip(mob/living/carbon/human/H, visualsOnly=FALSE)
/datum/outfit/ctf/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
var/list/no_drops = list()
@@ -529,7 +529,7 @@
r_hand = /obj/item/gun/energy/laser/instakill/blue
shoes = /obj/item/clothing/shoes/jackboots/fast
/datum/outfit/ctf/red/post_equip(mob/living/carbon/human/H)
/datum/outfit/ctf/red/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
var/obj/item/radio/R = H.ears
R.set_frequency(FREQ_CTF_RED)
@@ -537,7 +537,7 @@
R.independent = TRUE
H.dna.species.stunmod = 0
/datum/outfit/ctf/blue/post_equip(mob/living/carbon/human/H)
/datum/outfit/ctf/blue/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
var/obj/item/radio/R = H.ears
R.set_frequency(FREQ_CTF_BLUE)
+1 -1
View File
@@ -440,7 +440,7 @@
uniform = /obj/item/clothing/under/pants/youngfolksjeans
id = /obj/item/card/id
/datum/outfit/beachbum/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/beachbum/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
if(visualsOnly)
return
+2 -2
View File
@@ -12,9 +12,9 @@
var/obj/machinery/computer/cargo/cargo_console = null
/obj/item/export_scanner/examine(user)
..()
. = ..()
if(!cargo_console)
to_chat(user, "<span class='notice'>[src] is not currently linked to a cargo console.</span>")
. += "<span class='notice'>[src] is not currently linked to a cargo console.</span>"
/obj/item/export_scanner/afterattack(obj/O, mob/user, proximity)
. = ..()
+5 -5
View File
@@ -45,11 +45,11 @@
update_status()
/obj/item/supplypod_beacon/examine(user)
..()
. = ..()
if(!express_console)
to_chat(user, "<span class='notice'>[src] is not currently linked to a Express Supply console.</span>")
. += "<span class='notice'>[src] is not currently linked to a Express Supply console.</span>"
else
to_chat(user, "<span class='notice'>Alt-click to unlink it from the Express Supply console.</span>")
. += "<span class='notice'>Alt-click to unlink it from the Express Supply console.</span>"
/obj/item/supplypod_beacon/Destroy()
if(express_console)
@@ -61,7 +61,7 @@
express_console.beacon = null
express_console = null
update_status(SP_UNLINK)
update_status(SP_UNREADY)
update_status(SP_UNREADY)
/obj/item/supplypod_beacon/proc/link_console(obj/machinery/computer/cargo/express/C, mob/living/user)
if (C.beacon)//if new console has a beacon, then...
@@ -91,5 +91,5 @@
if(new_beacon_name)
name += " ([tag])"
return
else
else
return ..()
+3
View File
@@ -111,3 +111,6 @@
/datum/client_colour/monochrome
colour = list(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
priority = INFINITY //we can't see colors anyway!
/datum/client_colour/monochrome/trance
priority = 1
-4
View File
@@ -2299,10 +2299,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
character.shirt_color = shirt_color
character.socks_color = socks_color
character.backbag = backbag
character.jumpsuit_style = jumpsuit_style
var/datum/species/chosen_species
if(!roundstart_checks || (pref_species.id in GLOB.roundstart_races))
chosen_species = pref_species.type
+1 -1
View File
@@ -49,7 +49,7 @@
if(!(damagetype & (BRUTELOSS | FIRELOSS | TOXLOSS | OXYLOSS) ))
adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
death(FALSE, penalize = TRUE)
death(FALSE)
return
+3 -3
View File
@@ -120,9 +120,9 @@
user.vv_edit_var(variable, user_vars_to_edit[variable])
/obj/item/clothing/examine(mob/user)
..()
. = ..()
if(damaged_clothes)
to_chat(user, "<span class='warning'>It looks damaged!</span>")
. += "<span class='warning'>It looks damaged!</span>"
var/datum/component/storage/pockets = GetComponent(/datum/component/storage)
if(pockets)
var/list/how_cool_are_your_threads = list("<span class='notice'>")
@@ -137,7 +137,7 @@
if(pockets.silent)
how_cool_are_your_threads += "Adding or removing items from [src] makes no noise.\n"
how_cool_are_your_threads += "</span>"
to_chat(user, how_cool_are_your_threads.Join())
. += how_cool_are_your_threads.Join()
/obj/item/clothing/obj_break(damage_flag)
if(!damaged_clothes)
+3 -3
View File
@@ -23,9 +23,9 @@
return BRUTELOSS
/obj/item/clothing/glasses/examine(mob/user)
..()
. = ..()
if(glass_colour_type && ishuman(user))
to_chat(user, "<span class='notice'>Alt-click to toggle its colors.</span>")
. += "<span class='notice'>Alt-click to toggle its colors.</span>"
/obj/item/clothing/glasses/visor_toggling()
..()
@@ -362,7 +362,7 @@
desc = replacetext(desc, "person", "man")
else if(user.gender == FEMALE)
desc = replacetext(desc, "person", "woman")
..()
. = ..()
desc = desk
/obj/item/clothing/glasses/thermal/eyepatch
+2 -2
View File
@@ -100,8 +100,8 @@
new /obj/item/reagent_containers/food/drinks/flask/det(src)
/obj/item/clothing/head/fedora/det_hat/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Alt-click to take a candy corn.</span>")
. = ..()
. += "<span class='notice'>Alt-click to take a candy corn.</span>"
/obj/item/clothing/head/fedora/det_hat/AltClick(mob/user)
if(user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+2 -2
View File
@@ -41,8 +41,8 @@
usr.update_inv_head() //so our mob-overlays update
/obj/item/clothing/head/soft/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Alt-click the cap to flip it [flipped ? "forwards" : "backwards"].</span>")
. = ..()
. += "<span class='notice'>Alt-click the cap to flip it [flipped ? "forwards" : "backwards"].</span>"
/obj/item/clothing/head/soft/red
name = "red cap"
+2 -2
View File
@@ -30,8 +30,8 @@
adjustmask(user)
/obj/item/clothing/mask/breath/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Alt-click [src] to adjust it.</span>")
. = ..()
. += "<span class='notice'>Alt-click [src] to adjust it.</span>"
/obj/item/clothing/mask/breath/medical
desc = "A close-fitting sterile mask that can be connected to an air supply."
+10 -10
View File
@@ -6,7 +6,7 @@
gloves = /obj/item/clothing/gloves/combat
ears = /obj/item/radio/headset/headset_cent/alt
/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
@@ -35,7 +35,7 @@
/obj/item/gun/energy/e_gun=1)
l_pocket = /obj/item/switchblade
/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
if(visualsOnly)
@@ -46,7 +46,7 @@
/datum/outfit/ert/commander/alert
name = "ERT Commander - Amber Alert"
suit = /obj/item/clothing/suit/space/hardsuit/ert/alert
glasses = /obj/item/clothing/glasses/thermal/eyepatch
backpack_contents = list(/obj/item/storage/box/engineer=1,\
@@ -76,7 +76,7 @@
/obj/item/gun/energy/e_gun/stun=1,\
/obj/item/melee/baton/loaded=1)
/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
if(visualsOnly)
@@ -88,7 +88,7 @@
/datum/outfit/ert/security/alert
name = "ERT Security - Amber Alert"
suit = /obj/item/clothing/suit/space/hardsuit/ert/alert/sec
backpack_contents = list(/obj/item/storage/box/engineer=1,\
/obj/item/storage/box/handcuffs=1,\
@@ -120,7 +120,7 @@
/obj/item/reagent_containers/hypospray/combat=1,\
/obj/item/gun/medbeam=1)
/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
if(visualsOnly)
@@ -166,7 +166,7 @@
/obj/item/gun/energy/e_gun=1,\
/obj/item/construction/rcd/loaded=1)
/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
if(visualsOnly)
@@ -214,7 +214,7 @@
l_hand = /obj/item/storage/toolbox/plastitanium
gloves = /obj/item/clothing/gloves/color/yellow
/datum/outfit/ert/greybois/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/ert/greybois/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
var/obj/item/card/id/W = H.wear_id
@@ -238,7 +238,7 @@
l_hand = /obj/item/clipboard
id = /obj/item/card/id
/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
@@ -288,7 +288,7 @@
/obj/item/reagent_containers/hypospray/combat/heresypurge=1,
/obj/item/gun/medbeam=1)
/datum/outfit/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
if(visualsOnly)
+1 -1
View File
@@ -12,7 +12,7 @@
belt = /obj/item/tank/internals/emergency_oxygen/double
id = /obj/item/card/id/gold
/datum/outfit/santa/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/santa/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
H.fully_replace_character_name(H.real_name, "Santa Claus")
+11 -11
View File
@@ -48,7 +48,7 @@
l_pocket = /obj/item/grenade/chem_grenade/cleaner
backpack_contents = list(/obj/item/stack/tile/plasteel=6)
/datum/outfit/tournament/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/tournament/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
@@ -97,7 +97,7 @@
/datum/outfit/pirate/space/captain
head = /obj/item/clothing/head/helmet/space/pirate
/datum/outfit/pirate/post_equip(mob/living/carbon/human/H)
/datum/outfit/pirate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
H.faction |= "pirate"
var/obj/item/radio/R = H.ears
@@ -125,7 +125,7 @@
id = /obj/item/card/id
r_hand = /obj/item/twohanded/fireaxe
/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
@@ -150,7 +150,7 @@
r_pocket = /obj/item/scalpel
r_hand = /obj/item/twohanded/fireaxe
/datum/outfit/psycho/post_equip(mob/living/carbon/human/H)
/datum/outfit/psycho/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
for(var/obj/item/carried_item in H.get_equipped_items(TRUE))
carried_item.add_mob_blood(H)//Oh yes, there will be blood...
for(var/obj/item/I in H.held_items)
@@ -170,7 +170,7 @@
id = /obj/item/card/id/syndicate
belt = /obj/item/pda/heads
/datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
var/obj/item/clothing/under/U = H.w_uniform
U.attach_accessory(new /obj/item/clothing/accessory/waistcoat(H))
@@ -216,7 +216,7 @@
back = /obj/item/storage/backpack/satchel/leather
id = /obj/item/card/id
/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
@@ -244,7 +244,7 @@
back = /obj/item/storage/backpack/satchel/leather
id = /obj/item/card/id
/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
@@ -283,7 +283,7 @@
back = /obj/item/storage/backpack
backpack_contents = list(/obj/item/storage/box=1)
/datum/outfit/wizard/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/wizard/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
@@ -325,7 +325,7 @@
id = /obj/item/card/id
/datum/outfit/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
@@ -349,7 +349,7 @@
r_hand = /obj/item/gun/ballistic/automatic/tommygun
id = /obj/item/card/id
/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
@@ -391,7 +391,7 @@
/obj/item/flashlight=1,\
/obj/item/grenade/plastic/x4=1)
/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
if(visualsOnly)
return
+5 -4
View File
@@ -5,10 +5,10 @@
ears = /obj/item/radio/headset
id = /obj/item/card/id
/datum/outfit/vr/pre_equip(mob/living/carbon/human/H)
/datum/outfit/vr/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
H.dna.species.before_equip_job(null, H)
/datum/outfit/vr/post_equip(mob/living/carbon/human/H)
/datum/outfit/vr/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
var/obj/item/card/id/id = H.wear_id
if (istype(id))
id.access |= get_all_accesses()
@@ -25,9 +25,10 @@
backpack_contents = list(/obj/item/storage/box/syndie=1,\
/obj/item/kitchen/knife/combat/survival)
/datum/outfit/vr/syndicate/post_equip(mob/living/carbon/human/H)
/datum/outfit/vr/syndicate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
. = ..()
var/obj/item/uplink/U = new /obj/item/uplink/nuclear_restricted(H, H.key, 80)
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)
var/obj/item/implant/weapons_auth/W = new
W.implant(H)
+2 -2
View File
@@ -4,7 +4,7 @@
var/list/vv_values
var/list/stored_access
/datum/outfit/varedit/pre_equip(mob/living/carbon/human/H, visualsOnly)
/datum/outfit/varedit/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
H.delete_equipment() //Applying VV to wrong objects is not reccomended.
. = ..()
@@ -120,7 +120,7 @@
GLOB.custom_outfits += O
to_chat(usr,"Outfit registered, use select equipment to equip it.")
/datum/outfit/varedit/post_equip(mob/living/carbon/human/H, visualsOnly)
/datum/outfit/varedit/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
. = ..()
//Apply VV
for(var/slot in vv_values)
+1 -1
View File
@@ -66,7 +66,7 @@
if(adjusted == NORMAL_STYLE)
. += mutable_appearance('icons/effects/blood.dmi', "shoeblood", color = blood_DNA_to_color())
else
. += mutable_appearance('modular_citadel/icons/mob/digishoes.dmi', "shoeblood", color = blood_DNA_to_color())
. += mutable_appearance('icons/mob/feet_digi.dmi', "shoeblood", color = blood_DNA_to_color())
/obj/item/clothing/shoes/equipped(mob/user, slot)
. = ..()
+2 -2
View File
@@ -38,8 +38,8 @@
to_chat(user, "<span class='notice'>You cannot retrieve any bananium from the prototype shoes.</span>")
/obj/item/clothing/shoes/clown_shoes/banana_shoes/examine(mob/user)
..()
to_chat(user, "<span class='notice'>The shoes are [on ? "enabled" : "disabled"].</span>")
. = ..()
. += "<span class='notice'>The shoes are [on ? "enabled" : "disabled"].</span>"
/obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user)
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
+2 -2
View File
@@ -40,8 +40,8 @@
return clothing_flags & NOSLIP
/obj/item/clothing/shoes/magboots/examine(mob/user)
..()
to_chat(user, "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"].")
. = ..()
. += "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"]."
/obj/item/clothing/shoes/magboots/advance
@@ -799,10 +799,10 @@
to_chat(targ, "[icon2html(src, targ)]<span class='[span]'>|[message]</span>")
/obj/item/clothing/suit/space/hardsuit/flightsuit/examine(mob/user)
..()
to_chat(user, "<span class='boldnotice'>SUIT: [locked ? "LOCKED" : "UNLOCKED"]</span>")
to_chat(user, "<span class='boldnotice'>FLIGHTPACK: [deployedpack ? "ENGAGED" : "DISENGAGED"] FLIGHTSHOES : [deployedshoes ? "ENGAGED" : "DISENGAGED"] HELMET : [suittoggled ? "ENGAGED" : "DISENGAGED"]</span>")
to_chat(user, "<span class='boldnotice'>Its maintainence panel is [maint_panel ? "OPEN" : "CLOSED"]</span>")
. = ..()
. += "<span class='boldnotice'>SUIT: [locked ? "LOCKED" : "UNLOCKED"]</span>"
. += "<span class='boldnotice'>FLIGHTPACK: [deployedpack ? "ENGAGED" : "DISENGAGED"] FLIGHTSHOES : [deployedshoes ? "ENGAGED" : "DISENGAGED"] HELMET : [suittoggled ? "ENGAGED" : "DISENGAGED"]</span>"
. += "<span class='boldnotice'>Its maintainence panel is [maint_panel ? "OPEN" : "CLOSED"]</span>"
/obj/item/clothing/suit/space/hardsuit/flightsuit/Destroy()
dropped()
+3 -10
View File
@@ -958,14 +958,7 @@
/obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file)
. = ..()
if(!isinhands)
var/mutable_appearance/energy_overlay
if(taurmode == SNEK_TAURIC)
energy_overlay = mutable_appearance('modular_citadel/icons/mob/taur_naga.dmi', "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER)
else if(taurmode == PAW_TAURIC)
energy_overlay = mutable_appearance('modular_citadel/icons/mob/taur_canine.dmi', "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER)
else
energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER)
var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER)
energy_overlay.plane = ABOVE_LIGHTING_LAYER
energy_overlay.color = energy_color
. += energy_overlay
@@ -995,5 +988,5 @@
update_light()
/obj/item/clothing/suit/space/hardsuit/lavaknight/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>")
. = ..()
. += "<span class='notice'>Alt-click to recolor it.</span>"
@@ -15,8 +15,8 @@
mutantrace_variation = NO_MUTANTRACE_VARIATION
/obj/item/clothing/suit/space/eva/plasmaman/examine(mob/user)
..()
to_chat(user, "<span class='notice'>There [extinguishes_left == 1 ? "is" : "are"] [extinguishes_left] extinguisher charge\s left in this suit.</span>")
. = ..()
. += "<span class='notice'>There [extinguishes_left == 1 ? "is" : "are"] [extinguishes_left] extinguisher charge\s left in this suit.</span>"
/obj/item/clothing/suit/space/eva/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
@@ -519,6 +519,16 @@
/obj/item/clothing/head/hooded/winterhood/captain
icon_state = "winterhood_captain"
/obj/item/clothing/suit/hooded/wintercoat/hop
name = "head of personnel's winter coat"
icon_state = "coathop"
item_state = "coathop"
armor = list("melee" = 5, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 5, "bio" = 5, "rad" = 0, "fire" = 0, "acid" = 5)
hoodtype = /obj/item/clothing/head/hooded/winterhood/hop
/obj/item/clothing/head/hooded/winterhood/hop
icon_state = "winterhood_hop"
/obj/item/clothing/suit/hooded/wintercoat/security
name = "security winter coat"
icon_state = "coatsecurity"
@@ -533,6 +543,20 @@
/obj/item/clothing/head/hooded/winterhood/security
icon_state = "winterhood_security"
/obj/item/clothing/suit/hooded/wintercoat/hos
name = "head of security's winter coat"
icon_state = "coathos"
item_state = "coathos"
armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 15, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 55)
hoodtype = /obj/item/clothing/head/hooded/winterhood/hos
/obj/item/clothing/suit/hooded/wintercoat/hos/Initialize()
. = ..()
allowed = GLOB.security_wintercoat_allowed
/obj/item/clothing/head/hooded/winterhood/hos
icon_state = "winterhood_hos"
/obj/item/clothing/suit/hooded/wintercoat/medical
name = "medical winter coat"
icon_state = "coatmedical"
@@ -544,6 +568,39 @@
/obj/item/clothing/head/hooded/winterhood/medical
icon_state = "winterhood_medical"
/obj/item/clothing/suit/hooded/wintercoat/cmo
name = "chief medical officer's winter coat"
icon_state = "coatcmo"
item_state = "coatcmo"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/cmo
/obj/item/clothing/head/hooded/winterhood/cmo
icon_state = "winterhood_cmo"
/obj/item/clothing/suit/hooded/wintercoat/chemistry
name = "chemistry winter coat"
icon_state = "coatchemistry"
item_state = "coatchemistry"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 30, "acid" = 45)
hoodtype = /obj/item/clothing/head/hooded/winterhood/chemistry
/obj/item/clothing/head/hooded/winterhood/chemistry
icon_state = "winterhood_chemistry"
/obj/item/clothing/suit/hooded/wintercoat/viro
name = "virology winter coat"
icon_state = "coatviro"
item_state = "coatviro"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/viro
/obj/item/clothing/head/hooded/winterhood/viro
icon_state = "winterhood_viro"
/obj/item/clothing/suit/hooded/wintercoat/science
name = "science winter coat"
icon_state = "coatscience"
@@ -555,6 +612,49 @@
/obj/item/clothing/head/hooded/winterhood/science
icon_state = "winterhood_science"
/obj/item/clothing/suit/hooded/wintercoat/robotics
name = "robotics winter coat"
icon_state = "coatrobotics"
item_state = "coatrobotics"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/screwdriver, /obj/item/crowbar, /obj/item/wrench, /obj/item/stack/cable_coil, /obj/item/weldingtool, /obj/item/multitool)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/robotics
/obj/item/clothing/head/hooded/winterhood/robotics
icon_state = "winterhood_robotics"
/obj/item/clothing/suit/hooded/wintercoat/genetics
name = "genetics winter coat"
icon_state = "coatgenetics"
item_state = "coatgenetics"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
hoodtype = /obj/item/clothing/head/hooded/winterhood/genetics
/obj/item/clothing/head/hooded/winterhood/genetics
icon_state = "winterhood_genetics"
/obj/item/clothing/suit/hooded/wintercoat/rd
name = "research director's winter coat"
icon_state = "coatrd"
item_state = "coatrd"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
armor = list("melee" = 0, "bullet" = 0, "laser" = 5,"energy" = 0, "bomb" = 15, "bio" = 5, "rad" = 5, "fire" = 0, "acid" = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/rd
/obj/item/clothing/head/hooded/winterhood/rd
icon_state = "winterhood_rd"
/obj/item/clothing/suit/hooded/wintercoat/ce
name = "chief engineer's winter coat"
icon_state = "coatce"
item_state = "coatce"
armor = list("melee" = 0, "bullet" = 0, "laser" = 5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 30, "fire" = 35, "acid" = 45)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter)
hoodtype = /obj/item/clothing/head/hooded/winterhood/ce
/obj/item/clothing/head/hooded/winterhood/ce
icon_state = "winterhood_ce"
/obj/item/clothing/suit/hooded/wintercoat/engineering
name = "engineering winter coat"
icon_state = "coatengineer"
@@ -585,6 +685,26 @@
/obj/item/clothing/head/hooded/winterhood/hydro
icon_state = "winterhood_hydro"
/obj/item/clothing/suit/hooded/wintercoat/cosmic
name = "cosmic winter coat"
icon_state = "coatcosmic"
item_state = "coatcosmic"
allowed = list(/obj/item/flashlight)
hoodtype = /obj/item/clothing/head/hooded/winterhood/cosmic
/obj/item/clothing/head/hooded/winterhood/cosmic
icon_state = "winterhood_cosmic"
/obj/item/clothing/suit/hooded/wintercoat/janitor
name = "janitors winter coat"
icon_state = "coatjanitor"
item_state = "coatjanitor"
allowed = list(/obj/item/toy, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/storage/fancy/cigarettes, /obj/item/lighter,/obj/item/grenade/chem_grenade,/obj/item/lightreplacer,/obj/item/flashlight,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/spray,/obj/item/soap,/obj/item/holosign_creator,/obj/item/key/janitor,/obj/item/melee/flyswatter,/obj/item/paint/paint_remover,/obj/item/storage/bag/trash,/obj/item/reagent_containers/glass/bucket)
hoodtype = /obj/item/clothing/head/hooded/winterhood/janitor
/obj/item/clothing/head/hooded/winterhood/janitor
icon_state = "winterhood_janitor"
/obj/item/clothing/suit/hooded/wintercoat/cargo
name = "cargo winter coat"
icon_state = "coatcargo"
@@ -594,6 +714,15 @@
/obj/item/clothing/head/hooded/winterhood/cargo
icon_state = "winterhood_cargo"
/obj/item/clothing/suit/hooded/wintercoat/qm
name = "quartermaster's winter coat"
icon_state = "coatqm"
item_state = "coatqm"
hoodtype = /obj/item/clothing/head/hooded/winterhood/qm
/obj/item/clothing/head/hooded/winterhood/qm
icon_state = "winterhood_qm"
/obj/item/clothing/suit/hooded/wintercoat/miner
name = "mining winter coat"
icon_state = "coatminer"
+2 -2
View File
@@ -120,8 +120,8 @@
A.UpdateButtonIcon()
/obj/item/clothing/suit/toggle/examine(mob/user)
..()
to_chat(user, "Alt-click on [src] to toggle the [togglename].")
. = ..()
. += "Alt-click on [src] to toggle the [togglename]."
//Hardsuit toggle code
/obj/item/clothing/suit/space/hardsuit/Initialize()
+9 -9
View File
@@ -137,23 +137,23 @@
/obj/item/clothing/under/examine(mob/user)
..()
. = ..()
if(can_adjust)
if(adjusted == ALT_STYLE)
to_chat(user, "Alt-click on [src] to wear it normally.")
. += "Alt-click on [src] to wear it normally."
else
to_chat(user, "Alt-click on [src] to wear it casually.")
. += "Alt-click on [src] to wear it casually."
if (has_sensor == BROKEN_SENSORS)
to_chat(user, "Its sensors appear to be shorted out.")
. += "Its sensors appear to be shorted out."
else if(has_sensor > NO_SENSORS)
switch(sensor_mode)
if(SENSOR_OFF)
to_chat(user, "Its sensors appear to be disabled.")
. += "Its sensors appear to be disabled."
if(SENSOR_LIVING)
to_chat(user, "Its binary life sensors appear to be enabled.")
. += "Its binary life sensors appear to be enabled."
if(SENSOR_VITALS)
to_chat(user, "Its vital tracker appears to be enabled.")
. += "Its vital tracker appears to be enabled."
if(SENSOR_COORDS)
to_chat(user, "Its vital tracker and tracking beacon appear to be enabled.")
. += "Its vital tracker and tracking beacon appear to be enabled."
if(attached_accessory)
to_chat(user, "\A [attached_accessory] is attached to it.")
. += "\A [attached_accessory] is attached to it."
+3 -3
View File
@@ -73,10 +73,10 @@
to_chat(user, "[src] will be worn [above_suit ? "above" : "below"] your suit.")
/obj/item/clothing/accessory/examine(mob/user)
..()
to_chat(user, "<span class='notice'>\The [src] can be attached to a uniform. Alt-click to remove it once attached.</span>")
. = ..()
. += "<span class='notice'>\The [src] can be attached to a uniform. Alt-click to remove it once attached.</span>"
if(initial(above_suit))
to_chat(user, "<span class='notice'>\The [src] can be worn above or below your suit. Alt-click to toggle.</span>")
. += "<span class='notice'>\The [src] can be worn above or below your suit. Alt-click to toggle.</span>"
/obj/item/clothing/accessory/waistcoat
name = "waistcoat"
+3 -2
View File
@@ -607,8 +607,9 @@
var/extinguishes_left = 5
/obj/item/clothing/under/plasmaman/examine(mob/user)
..()
to_chat(user, "<span class='notice'>There are [extinguishes_left] extinguisher charges left in this suit.</span>")
. = ..()
. += "<span class='notice'>There are [extinguishes_left] extinguisher charges left in this suit.</span>"
/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
if(!istype(H))
return
@@ -158,3 +158,31 @@
time = 50
always_availible = TRUE
category = CAT_CLOTHING
/datum/crafting_recipe/wintercoat_cosmic
name = "Cosmic Winter Coat"
result = /obj/item/clothing/suit/hooded/wintercoat/cosmic
reqs = list(/obj/item/clothing/suit/hooded/wintercoat = 1,
/obj/item/clothing/suit/hooded/wintercoat/captain = 1,
/obj/item/clothing/suit/hooded/wintercoat/hop = 1,
/obj/item/clothing/suit/hooded/wintercoat/hos = 1,
/obj/item/clothing/suit/hooded/wintercoat/rd = 1,
/obj/item/clothing/suit/hooded/wintercoat/ce = 1,
/obj/item/clothing/suit/hooded/wintercoat/cmo = 1,
/obj/item/clothing/suit/hooded/wintercoat/qm = 1,
/obj/item/clothing/suit/hooded/wintercoat/robotics = 1,
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos = 1,
/obj/item/clothing/suit/hooded/wintercoat/engineering = 1,
/obj/item/clothing/suit/hooded/wintercoat/science = 1,
/obj/item/clothing/suit/hooded/wintercoat/genetics = 1,
/obj/item/clothing/suit/hooded/wintercoat/chemistry = 1,
/obj/item/clothing/suit/hooded/wintercoat/medical = 1,
/obj/item/clothing/suit/hooded/wintercoat/viro = 1,
/obj/item/clothing/suit/hooded/wintercoat/janitor = 1,
/obj/item/clothing/suit/hooded/wintercoat/security = 1,
/obj/item/clothing/suit/hooded/wintercoat/cargo = 1,
/obj/item/clothing/suit/hooded/wintercoat/hydro = 1,
/obj/item/clothing/suit/hooded/wintercoat/miner = 1)
time = 60
always_availible = TRUE
category = CAT_CLOTHING
+2 -2
View File
@@ -200,9 +200,9 @@
log = list()
/obj/item/detective_scanner/examine(mob/user)
..()
. = ..()
if(LAZYLEN(log) && !scanning)
to_chat(user, "<span class='notice'>Alt-click to clear scanner logs.</span>")
. += "<span class='notice'>Alt-click to clear scanner logs.</span>"
/obj/item/detective_scanner/proc/displayDetectiveScanResults(mob/living/user)
// No need for can-use checks since the action button should do proper checks
+1 -1
View File
@@ -57,7 +57,7 @@
/datum/round_event_control/wizard/canSpawnEvent(var/players_amt, var/gamemode)
if(istype(SSticker.mode, /datum/game_mode/dynamic))
var/var/datum/game_mode/dynamic/mode = SSticker.mode
var/datum/game_mode/dynamic/mode = SSticker.mode
if (locate(/datum/dynamic_ruleset/midround/from_ghosts/wizard) in mode.executed_rules)
return can_be_midround_wizard && ..()
return ..()
+2 -1
View File
@@ -138,6 +138,7 @@
name = "valentine - To: [recipient] From: [sender]"
/obj/item/valentine/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
if( !(ishuman(user) || isobserver(user) || issilicon(user)) )
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(message)]</BODY></HTML>", "window=[name]")
@@ -146,7 +147,7 @@
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[message]</BODY></HTML>", "window=[name]")
onclose(user, "[name]")
else
to_chat(user, "<span class='notice'>It is too far away.</span>")
. += "<span class='notice'>It is too far away.</span>"
/obj/item/valentine/attack_self(mob/user)
user.examinate(src)
+2 -2
View File
@@ -292,7 +292,7 @@
add_atom_colour("#ffffff", FIXED_COLOUR_PRIORITY)
/obj/structure/spacevine/examine(mob/user)
..()
. = ..()
var/text = "This one is a"
if(mutations.len)
for(var/A in mutations)
@@ -301,7 +301,7 @@
else
text += " normal"
text += " vine."
to_chat(user, text)
. += text
/obj/structure/spacevine/Destroy()
for(var/datum/spacevine_mutation/SM in mutations)
@@ -22,7 +22,7 @@
var/customname = "custom"
/obj/item/reagent_containers/food/snacks/customizable/examine(mob/user)
..()
. = ..()
var/ingredients_listed = ""
for(var/obj/item/reagent_containers/food/snacks/ING in ingredients)
ingredients_listed += "[ING.name], "
@@ -33,7 +33,7 @@
size = "big"
if(ingredients.len>8)
size = "monster"
to_chat(user, "It contains [ingredients.len?"[ingredients_listed]":"no ingredient, "]making a [size]-sized [initial(name)].")
. += "It contains [ingredients.len?"[ingredients_listed]":"no ingredient, "]making a [size]-sized [initial(name)]."
/obj/item/reagent_containers/food/snacks/customizable/attackby(obj/item/I, mob/user, params)
if(!istype(I, /obj/item/reagent_containers/food/snacks/customizable) && istype(I, /obj/item/reagent_containers/food/snacks))
+4 -4
View File
@@ -151,15 +151,15 @@ All foods are distributed among various categories. Use common sense.
return 0
/obj/item/reagent_containers/food/snacks/examine(mob/user)
..()
. = ..()
if(bitecount == 0)
return
else if(bitecount == 1)
to_chat(user, "[src] was bitten by someone!")
. += "[src] was bitten by someone!"
else if(bitecount <= 3)
to_chat(user, "[src] was bitten [bitecount] times!")
. += "[src] was bitten [bitecount] times!"
else
to_chat(user, "[src] was bitten multiple times!")
. += "[src] was bitten multiple times!"
/obj/item/reagent_containers/food/snacks/attackby(obj/item/W, mob/user, params)
@@ -447,11 +447,11 @@
if (pancakeCount)
var/obj/item/reagent_containers/food/snacks/S = contents[pancakeCount]
bitecount = S.bitecount
..()
. = ..()
if (pancakeCount)
for(var/obj/item/reagent_containers/food/snacks/pancakes/ING in contents)
ingredients_listed += "[ING.name], "
to_chat(user, "It contains [contents.len?"[ingredients_listed]":"no ingredient, "]on top of a [initial(name)].")
. += "It contains [contents.len?"[ingredients_listed]":"no ingredient, "]on top of a [initial(name)]."
bitecount = originalBites
/obj/item/reagent_containers/food/snacks/pancakes/attackby(obj/item/I, mob/living/user, params)
@@ -67,9 +67,9 @@ God bless America.
fry_speed = oil_efficiency
/obj/machinery/deepfryer/examine()
..()
. = ..()
if(frying)
to_chat(usr, "You can make out \a [frying] in the oil.")
. += "You can make out \a [frying] in the oil."
/obj/machinery/deepfryer/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/reagent_containers/pill))
@@ -53,20 +53,20 @@
/obj/machinery/microwave/examine(mob/user)
. = ..()
if(!operating)
to_chat(user, "<span class='notice'>Alt-click [src] to turn it on.</span>")
. += "<span class='notice'>Alt-click [src] to turn it on.</span>"
if(!in_range(user, src) && !issilicon(user) && !isobserver(user))
to_chat(user, "<span class='warning'>You're too far away to examine [src]'s contents and display!</span>")
. += "<span class='warning'>You're too far away to examine [src]'s contents and display!</span>"
return
if(operating)
to_chat(user, "<span class='notice'>\The [src] is operating.</span>")
. += "<span class='notice'>\The [src] is operating.</span>"
return
if(length(ingredients))
if(issilicon(user))
to_chat(user, "<span class='notice'>\The [src] camera shows:</span>")
. += "<span class='notice'>\The [src] camera shows:</span>"
else
to_chat(user, "<span class='notice'>\The [src] contains:</span>")
. += "<span class='notice'>\The [src] contains:</span>"
var/list/items_counts = new
for(var/i in ingredients)
if(istype(i, /obj/item/stack))
@@ -76,14 +76,14 @@
var/atom/movable/AM = i
items_counts[AM.name]++
for(var/O in items_counts)
to_chat(user, "<span class='notice'>- [items_counts[O]]x [O].</span>")
. += "<span class='notice'>- [items_counts[O]]x [O].</span>"
else
to_chat(user, "<span class='notice'>\The [src] is empty.</span>")
. += "<span class='notice'>\The [src] is empty.</span>"
if(!(stat & (NOPOWER|BROKEN)))
to_chat(user, "<span class='notice'>The status display reads:</span>")
to_chat(user, "<span class='notice'>- Capacity: <b>[max_n_of_items]</b> items.<span>")
to_chat(user, "<span class='notice'>- Cook time reduced by <b>[(efficiency - 1) * 25]%</b>.<span>")
. += "<span class='notice'>The status display reads:</span>"
. += "<span class='notice'>- Capacity: <b>[max_n_of_items]</b> items.<span>"
. += "<span class='notice'>- Cook time reduced by <b>[(efficiency - 1) * 25]%</b>.<span>"
/obj/machinery/microwave/update_icon()
if(broken)

Some files were not shown because too many files have changed in this diff Show More