Ports "examine-code refactor"... part 1...
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
+11
-11
@@ -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>")
|
||||
to_chat(user, "<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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -632,11 +632,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()
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user