Kills off /obj/item/device (#6561)

This commit is contained in:
kevinz000
2018-04-29 22:06:58 -07:00
committed by Poojawa
parent ab3035a4ea
commit 3369c804b2
538 changed files with 6728 additions and 6707 deletions
@@ -16,7 +16,7 @@
armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 15, "bio" = 15, "rad" = 15, "fire" = 70, "acid" = 70)
actions_types = list(/datum/action/item_action/hands_free/activate)
allowed = list(
/obj/item/device/abductor,
/obj/item/abductor,
/obj/item/abductor_baton,
/obj/item/melee/baton,
/obj/item/gun/energy,
@@ -129,16 +129,16 @@
. = ..()
/obj/item/device/abductor
/obj/item/abductor
icon = 'icons/obj/abductor.dmi'
/obj/item/device/abductor/proc/AbductorCheck(user)
/obj/item/abductor/proc/AbductorCheck(user)
if(isabductor(user))
return TRUE
to_chat(user, "<span class='warning'>You can't figure how this works!</span>")
return FALSE
/obj/item/device/abductor/proc/ScientistCheck(user)
/obj/item/abductor/proc/ScientistCheck(user)
if(!AbductorCheck(user))
return FALSE
@@ -149,7 +149,7 @@
to_chat(user, "<span class='warning'>You're not trained to use this!</span>")
return FALSE
/obj/item/device/abductor/gizmo
/obj/item/abductor/gizmo
name = "science tool"
desc = "A dual-mode tool for retrieving specimens and scanning appearances. Scanning can be done through cameras."
icon_state = "gizmo_scan"
@@ -160,7 +160,7 @@
var/mob/living/marked = null
var/obj/machinery/abductor/console/console
/obj/item/device/abductor/gizmo/attack_self(mob/user)
/obj/item/abductor/gizmo/attack_self(mob/user)
if(!ScientistCheck(user))
return
if(!console)
@@ -175,7 +175,7 @@
icon_state = "gizmo_scan"
to_chat(user, "<span class='notice'>You switch the device to [mode==GIZMO_SCAN? "SCAN": "MARK"] MODE</span>")
/obj/item/device/abductor/gizmo/attack(mob/living/M, mob/user)
/obj/item/abductor/gizmo/attack(mob/living/M, mob/user)
if(!ScientistCheck(user))
return
if(!console)
@@ -189,7 +189,7 @@
mark(M, user)
/obj/item/device/abductor/gizmo/afterattack(atom/target, mob/living/user, flag, params)
/obj/item/abductor/gizmo/afterattack(atom/target, mob/living/user, flag, params)
if(flag)
return
if(!ScientistCheck(user))
@@ -204,12 +204,12 @@
if(GIZMO_MARK)
mark(target, user)
/obj/item/device/abductor/gizmo/proc/scan(atom/target, mob/living/user)
/obj/item/abductor/gizmo/proc/scan(atom/target, mob/living/user)
if(ishuman(target))
console.AddSnapshot(target)
to_chat(user, "<span class='notice'>You scan [target] and add them to the database.</span>")
/obj/item/device/abductor/gizmo/proc/mark(atom/target, mob/living/user)
/obj/item/abductor/gizmo/proc/mark(atom/target, mob/living/user)
if(marked == target)
to_chat(user, "<span class='warning'>This specimen is already marked!</span>")
return
@@ -222,7 +222,7 @@
else
prepare(target,user)
/obj/item/device/abductor/gizmo/proc/prepare(atom/target, mob/living/user)
/obj/item/abductor/gizmo/proc/prepare(atom/target, mob/living/user)
if(get_dist(target,user)>1)
to_chat(user, "<span class='warning'>You need to be next to the specimen to prepare it for transport!</span>")
return
@@ -231,13 +231,13 @@
marked = target
to_chat(user, "<span class='notice'>You finish preparing [target] for transport.</span>")
/obj/item/device/abductor/gizmo/Destroy()
/obj/item/abductor/gizmo/Destroy()
if(console)
console.gizmo = null
. = ..()
/obj/item/device/abductor/silencer
/obj/item/abductor/silencer
name = "abductor silencer"
desc = "A compact device used to shut down communications equipment."
icon_state = "silencer"
@@ -245,19 +245,19 @@
lefthand_file = 'icons/mob/inhands/antag/abductor_lefthand.dmi'
righthand_file = 'icons/mob/inhands/antag/abductor_righthand.dmi'
/obj/item/device/abductor/silencer/attack(mob/living/M, mob/user)
/obj/item/abductor/silencer/attack(mob/living/M, mob/user)
if(!AbductorCheck(user))
return
radio_off(M, user)
/obj/item/device/abductor/silencer/afterattack(atom/target, mob/living/user, flag, params)
/obj/item/abductor/silencer/afterattack(atom/target, mob/living/user, flag, params)
if(flag)
return
if(!AbductorCheck(user))
return
radio_off(target, user)
/obj/item/device/abductor/silencer/proc/radio_off(atom/target, mob/living/user)
/obj/item/abductor/silencer/proc/radio_off(atom/target, mob/living/user)
if( !(user in (viewers(7,target))) )
return
@@ -270,17 +270,17 @@
to_chat(user, "<span class='notice'>You silence [M]'s radio devices.</span>")
radio_off_mob(M)
/obj/item/device/abductor/silencer/proc/radio_off_mob(mob/living/carbon/human/M)
/obj/item/abductor/silencer/proc/radio_off_mob(mob/living/carbon/human/M)
var/list/all_items = M.GetAllContents()
for(var/obj/I in all_items)
if(istype(I, /obj/item/device/radio/))
var/obj/item/device/radio/r = I
if(istype(I, /obj/item/radio/))
var/obj/item/radio/r = I
r.listening = 0
if(!istype(I, /obj/item/device/radio/headset))
if(!istype(I, /obj/item/radio/headset))
r.broadcasting = 0 //goddamned headset hacks
/obj/item/device/abductor/mind_device
/obj/item/abductor/mind_device
name = "mental interface device"
desc = "A dual-mode tool for directly communicating with sentient brains. It can be used to send a direct message to a target, \
or to send a command to a test subject with a charged gland."
@@ -290,7 +290,7 @@
righthand_file = 'icons/mob/inhands/antag/abductor_righthand.dmi'
var/mode = MIND_DEVICE_MESSAGE
/obj/item/device/abductor/mind_device/attack_self(mob/user)
/obj/item/abductor/mind_device/attack_self(mob/user)
if(!ScientistCheck(user))
return
@@ -302,7 +302,7 @@
icon_state = "mind_device_message"
to_chat(user, "<span class='notice'>You switch the device to [mode==MIND_DEVICE_MESSAGE? "TRANSMISSION": "COMMAND"] MODE</span>")
/obj/item/device/abductor/mind_device/afterattack(atom/target, mob/living/user, flag, params)
/obj/item/abductor/mind_device/afterattack(atom/target, mob/living/user, flag, params)
if(!ScientistCheck(user))
return
@@ -312,7 +312,7 @@
if(MIND_DEVICE_MESSAGE)
mind_message(target, user)
/obj/item/device/abductor/mind_device/proc/mind_control(atom/target, mob/living/user)
/obj/item/abductor/mind_device/proc/mind_control(atom/target, mob/living/user)
if(iscarbon(target))
var/mob/living/carbon/C = target
var/obj/item/organ/heart/gland/G = C.getorganslot("heart")
@@ -345,7 +345,7 @@
G.mind_control(command, user)
to_chat(user, "<span class='notice'>You send the command to your target.</span>")
/obj/item/device/abductor/mind_device/proc/mind_message(atom/target, mob/living/user)
/obj/item/abductor/mind_device/proc/mind_message(atom/target, mob/living/user)
if(isliving(target))
var/mob/living/L = target
if(L.stat == DEAD)
@@ -362,7 +362,7 @@
log_talk(user,"[key_name(user)] sent an abductor mind message to [L]/[L.ckey]: '[message]'", LOGSAY)
/obj/item/device/firing_pin/abductor
/obj/item/firing_pin/abductor
name = "alien firing pin"
icon_state = "firing_pin_ayy"
desc = "This firing pin is slimy and warm; you can swear you feel it \
@@ -370,14 +370,14 @@
fail_message = "<span class='abductor'>\
Firing error, please contact Command.</span>"
/obj/item/device/firing_pin/abductor/pin_auth(mob/living/user)
/obj/item/firing_pin/abductor/pin_auth(mob/living/user)
. = isabductor(user)
/obj/item/gun/energy/alien
name = "alien pistol"
desc = "A complicated gun that fires bursts of high-intensity radiation."
ammo_type = list(/obj/item/ammo_casing/energy/declone)
pin = /obj/item/device/firing_pin/abductor
pin = /obj/item/firing_pin/abductor
icon_state = "alienpistol"
item_state = "alienpistol"
trigger_guard = TRIGGER_GUARD_ALLOW_ALL
@@ -613,20 +613,20 @@ Congratulations! You are now trained for invasive xenobiology research!"}
if(BATON_PROBE)
to_chat(user, "<span class='warning'>The baton is in probing mode.</span>")
/obj/item/device/radio/headset/abductor
/obj/item/radio/headset/abductor
name = "alien headset"
desc = "An advanced alien headset designed to monitor communications of human space stations. Why does it have a microphone? No one knows."
icon = 'icons/obj/abductor.dmi'
icon_state = "abductor_headset"
item_state = "abductor_headset"
keyslot2 = new /obj/item/device/encryptionkey/heads/captain
keyslot2 = new /obj/item/encryptionkey/heads/captain
flags_2 = BANG_PROTECT_2
/obj/item/device/radio/headset/abductor/Initialize(mapload)
/obj/item/radio/headset/abductor/Initialize(mapload)
. = ..()
make_syndie()
/obj/item/device/radio/headset/abductor/attackby(obj/item/W, mob/user, params)
/obj/item/radio/headset/abductor/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/screwdriver))
return // Stops humans from disassembling abductor headsets.
return ..()
@@ -3,7 +3,7 @@
uniform = /obj/item/clothing/under/color/grey //they're greys gettit
shoes = /obj/item/clothing/shoes/combat
back = /obj/item/storage/backpack
ears = /obj/item/device/radio/headset/abductor
ears = /obj/item/radio/headset/abductor
/datum/outfit/abductor/proc/link_to_console(mob/living/carbon/human/H, team_number)
var/datum/antagonist/abductor/A = H.mind.has_antag_datum(/datum/antagonist/abductor)
@@ -21,7 +21,7 @@
var/obj/item/storage/backpack/B = locate() in H
if(B)
for(var/obj/item/device/abductor/gizmo/G in B.contents)
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)
@@ -39,14 +39,14 @@
backpack_contents = list(
/obj/item/gun/energy/alien = 1,
/obj/item/device/abductor/silencer = 1
/obj/item/abductor/silencer = 1
)
/datum/outfit/abductor/scientist
name = "Abductor Scientist"
backpack_contents = list(
/obj/item/device/abductor/gizmo = 1
/obj/item/abductor/gizmo = 1
)
/datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -18,7 +18,7 @@
icon_state = "console"
density = TRUE
anchored = TRUE
var/obj/item/device/abductor/gizmo/gizmo
var/obj/item/abductor/gizmo/gizmo
var/obj/item/clothing/suit/armor/abductor/vest/vest
var/obj/machinery/abductor/experiment/experiment
var/obj/machinery/abductor/pad/pad
@@ -106,13 +106,13 @@
if("helmet")
Dispense(/obj/item/clothing/head/helmet/abductor)
if("silencer")
Dispense(/obj/item/device/abductor/silencer)
Dispense(/obj/item/abductor/silencer)
if("tool")
Dispense(/obj/item/device/abductor/gizmo)
Dispense(/obj/item/abductor/gizmo)
if("vest")
Dispense(/obj/item/clothing/suit/armor/abductor/vest)
if("mind_device")
Dispense(/obj/item/device/abductor/mind_device,cost=2)
Dispense(/obj/item/abductor/mind_device,cost=2)
updateUsrDialog()
/obj/machinery/abductor/console/proc/TeleporterRetrieve()
@@ -181,7 +181,7 @@
return
disguises[entry.name] = entry
/obj/machinery/abductor/console/proc/AddGizmo(obj/item/device/abductor/gizmo/G)
/obj/machinery/abductor/console/proc/AddGizmo(obj/item/abductor/gizmo/G)
if(G == gizmo && G.console == src)
return FALSE
@@ -205,7 +205,7 @@
return TRUE
/obj/machinery/abductor/console/attackby(obj/O, mob/user, params)
if(istype(O, /obj/item/device/abductor/gizmo) && AddGizmo(O))
if(istype(O, /obj/item/abductor/gizmo) && AddGizmo(O))
to_chat(user, "<span class='notice'>You link the tool to the console.</span>")
else if(istype(O, /obj/item/clothing/suit/armor/abductor/vest) && AddVest(O))
to_chat(user, "<span class='notice'>You link the vest to the console.</span>")
@@ -227,7 +227,7 @@
return 15
/obj/structure/blob/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/device/analyzer))
if(istype(I, /obj/item/analyzer))
user.changeNext_move(CLICK_CD_MELEE)
to_chat(user, "<b>The analyzer beeps once, then reports:</b><br>")
SEND_SOUND(user, sound('sound/machines/ping.ogg'))
@@ -446,7 +446,7 @@
icon_state = "lingspacesuit"
desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel."
flags_1 = STOPSPRESSUREDMAGE_1 | NODROP_1 | DROPDEL_1 //Not THICKMATERIAL_1 because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff)
allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) //No armor at all.
/obj/item/clothing/suit/space/changeling/Initialize()
@@ -72,6 +72,6 @@
var/mob/living/L = AM
L.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static)
L.clear_fullscreen("flash", 5)
var/obj/item/device/transfer_valve/TTV = locate() in L.GetAllContents()
var/obj/item/transfer_valve/TTV = locate() in L.GetAllContents()
if(TTV)
to_chat(L, "<span class='userdanger'>The air resonates with the Ark's presence; your explosives will be significantly dampened here!</span>")
@@ -68,7 +68,7 @@
heat_protection = CHEST|GROIN|LEGS
resistance_flags = FIRE_PROOF | ACID_PROOF
armor = list("melee" = 60, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
allowed = list(/obj/item/clockwork, /obj/item/clothing/glasses/wraith_spectacles, /obj/item/clothing/glasses/judicial_visor, /obj/item/device/mmi/posibrain/soul_vessel)
allowed = list(/obj/item/clockwork, /obj/item/clothing/glasses/wraith_spectacles, /obj/item/clothing/glasses/judicial_visor, /obj/item/mmi/posibrain/soul_vessel)
/obj/item/clothing/suit/armor/clockwork/Initialize()
. = ..()
@@ -1,5 +1,5 @@
//Soul vessel: An ancient positronic brain that serves only Ratvar.
/obj/item/device/mmi/posibrain/soul_vessel
/obj/item/mmi/posibrain/soul_vessel
name = "soul vessel"
desc = "A heavy brass cube, three inches to a side, with a single protruding cogwheel."
var/clockwork_desc = "A soul vessel, an ancient relic that can attract the souls of the damned or simply rip a mind from an unconscious or dead human.\n\
@@ -25,35 +25,35 @@
force_replace_ai_name = TRUE
overrides_aicore_laws = TRUE
/obj/item/device/mmi/posibrain/soul_vessel/Initialize()
/obj/item/mmi/posibrain/soul_vessel/Initialize()
. = ..()
radio.on = FALSE
laws = new /datum/ai_laws/ratvar()
braintype = picked_name
GLOB.all_clockwork_objects += src
/obj/item/device/mmi/posibrain/soul_vessel/Destroy()
/obj/item/mmi/posibrain/soul_vessel/Destroy()
GLOB.all_clockwork_objects -= src
return ..()
/obj/item/device/mmi/posibrain/soul_vessel/examine(mob/user)
/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/device/mmi/posibrain/soul_vessel/transfer_personality(mob/candidate)
/obj/item/mmi/posibrain/soul_vessel/transfer_personality(mob/candidate)
. = ..()
if(.)
add_servant_of_ratvar(brainmob, TRUE)
/obj/item/device/mmi/posibrain/soul_vessel/attack_self(mob/living/user)
/obj/item/mmi/posibrain/soul_vessel/attack_self(mob/living/user)
if(!is_servant_of_ratvar(user))
to_chat(user, "<span class='warning'>You fiddle around with [src], to no avail.</span>")
return FALSE
..()
/obj/item/device/mmi/posibrain/soul_vessel/attack(mob/living/target, mob/living/carbon/human/user)
/obj/item/mmi/posibrain/soul_vessel/attack(mob/living/target, mob/living/carbon/human/user)
if(!is_servant_of_ratvar(user) || !ishuman(target))
..()
return
+2 -2
View File
@@ -178,8 +178,8 @@
playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, 1)
if(B.current != owner)
var/turf/final = pick(destinations)
if(istype(B.current.loc, /obj/item/device/soulstone))
var/obj/item/device/soulstone/S = B.current.loc
if(istype(B.current.loc, /obj/item/soulstone))
var/obj/item/soulstone/S = B.current.loc
S.release_shades(owner)
B.current.setDir(SOUTH)
new /obj/effect/temp_visual/cult/blood(final)
+10 -10
View File
@@ -189,12 +189,12 @@
if(ishuman(target))
var/mob/living/carbon/human/H = target
if(H.stat != CONSCIOUS)
var/obj/item/device/soulstone/SS = new /obj/item/device/soulstone(src)
var/obj/item/soulstone/SS = new /obj/item/soulstone(src)
SS.attack(H, user)
if(!LAZYLEN(SS.contents))
qdel(SS)
if(istype(target, /obj/structure/constructshell) && contents.len)
var/obj/item/device/soulstone/SS = contents[1]
var/obj/item/soulstone/SS = contents[1]
if(istype(SS))
SS.transfer_soul("CONSTRUCT",target,user)
qdel(SS)
@@ -484,14 +484,14 @@
color = "#333333"
list_reagents = list("unholywater" = 50)
/obj/item/device/shuttle_curse
/obj/item/shuttle_curse
name = "cursed orb"
desc = "You peer within this smokey orb and glimpse terrible fates befalling the escape shuttle."
icon = 'icons/obj/cult.dmi'
icon_state ="shuttlecurse"
var/global/curselimit = 0
/obj/item/device/shuttle_curse/attack_self(mob/living/user)
/obj/item/shuttle_curse/attack_self(mob/living/user)
if(!iscultist(user))
user.dropItemToGround(src, TRUE)
user.Knockdown(100)
@@ -538,28 +538,28 @@
priority_announce("[message]", "System Failure", 'sound/misc/notice1.ogg')
curselimit++
/obj/item/device/cult_shift
/obj/item/cult_shift
name = "veil shifter"
desc = "This relic instantly teleports you, and anything you're pulling, forward by a moderate distance."
icon = 'icons/obj/cult.dmi'
icon_state ="shifter"
var/uses = 4
/obj/item/device/cult_shift/examine(mob/user)
/obj/item/cult_shift/examine(mob/user)
..()
if(uses)
to_chat(user, "<span class='cult'>It has [uses] use\s remaining.</span>")
else
to_chat(user, "<span class='cult'>It seems drained.</span>")
/obj/item/device/cult_shift/proc/handle_teleport_grab(turf/T, mob/user)
/obj/item/cult_shift/proc/handle_teleport_grab(turf/T, mob/user)
var/mob/living/carbon/C = user
if(C.pulling)
var/atom/movable/pulled = C.pulling
pulled.forceMove(T)
. = pulled
/obj/item/device/cult_shift/attack_self(mob/user)
/obj/item/cult_shift/attack_self(mob/user)
if(!uses || !iscarbon(user))
to_chat(user, "<span class='warning'>\The [src] is dull and unmoving in your hands.</span>")
return
@@ -592,7 +592,7 @@
else
to_chat(C, "<span class='danger'>The veil cannot be torn here!</span>")
/obj/item/device/flashlight/flare/culttorch
/obj/item/flashlight/flare/culttorch
name = "void torch"
desc = "Used by veteran cultists to instantly transport items to their needful bretheren."
w_class = WEIGHT_CLASS_SMALL
@@ -605,7 +605,7 @@
on = TRUE
var/charges = 5
/obj/item/device/flashlight/flare/culttorch/afterattack(atom/movable/A, mob/user, proximity)
/obj/item/flashlight/flare/culttorch/afterattack(atom/movable/A, mob/user, proximity)
if(!proximity)
return
if(!iscultist(user))
@@ -258,10 +258,10 @@
if("Zealot's Blindfold")
pickedtype += /obj/item/clothing/glasses/hud/health/night/cultblind
if("Shuttle Curse")
pickedtype += /obj/item/device/shuttle_curse
pickedtype += /obj/item/shuttle_curse
if("Veil Walker Set")
pickedtype += /obj/item/device/cult_shift
pickedtype += /obj/item/device/flashlight/flare/culttorch
pickedtype += /obj/item/cult_shift
pickedtype += /obj/item/flashlight/flare/culttorch
if(src && !QDELETED(src) && anchored && pickedtype.len && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)
cooldowntime = world.time + 2400
for(var/N in pickedtype)
+1 -1
View File
@@ -299,7 +299,7 @@ structure_check() searches for nearby cultist structures required for the invoca
else
to_chat(M, "<span class='cultlarge'>\"I accept this meager sacrifice.\"</span>")
var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src))
var/obj/item/soulstone/stone = new /obj/item/soulstone(get_turf(src))
if(sacrificial.mind && !sacrificial.suiciding)
stone.invisibility = INVISIBILITY_MAXIMUM //so it's not picked up during transfer_soul()
stone.transfer_soul("FORCE", sacrificial, usr)
@@ -47,7 +47,7 @@
for(var/obj/item/I in H.held_items)
qdel(I)
H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_ears)
H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), slot_ears)
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), slot_l_store)
@@ -5,7 +5,7 @@
GLOBAL_LIST_EMPTY(jam_on_wardec)
/obj/item/device/nuclear_challenge
/obj/item/nuclear_challenge
name = "Declaration of War (Challenge Mode)"
icon_state = "gangtool-red"
item_state = "radio"
@@ -15,9 +15,9 @@ GLOBAL_LIST_EMPTY(jam_on_wardec)
Such a brazen move will attract the attention of powerful benefactors within the Syndicate, who will supply your team with a massive amount of bonus telecrystals. \
Must be used within five minutes, or your benefactors will lose interest."
var/declaring_war = FALSE
var/uplink_type = /obj/item/device/radio/uplink/nuclear
var/uplink_type = /obj/item/radio/uplink/nuclear
/obj/item/device/nuclear_challenge/attack_self(mob/living/user)
/obj/item/nuclear_challenge/attack_self(mob/living/user)
if(!check_allowed(user))
return
@@ -66,7 +66,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec)
qdel(src)
/obj/item/device/nuclear_challenge/proc/check_allowed(mob/living/user)
/obj/item/nuclear_challenge/proc/check_allowed(mob/living/user)
if(declaring_war)
to_chat(user, "You are already in the process of declaring war! Make your mind up.")
return FALSE
@@ -86,8 +86,8 @@ GLOBAL_LIST_EMPTY(jam_on_wardec)
return FALSE
return TRUE
/obj/item/device/nuclear_challenge/clownops
uplink_type = /obj/item/device/radio/uplink/clownop
/obj/item/nuclear_challenge/clownops
uplink_type = /obj/item/radio/uplink/clownop
#undef CHALLENGE_TELECRYSTALS
#undef CHALLENGE_TIME_LIMIT
@@ -112,7 +112,7 @@
/datum/antagonist/rev/head/proc/admin_take_flash(mob/admin)
var/list/L = owner.current.get_contents()
var/obj/item/device/assembly/flash/flash = locate() in L
var/obj/item/assembly/flash/flash = locate() in L
if (!flash)
to_chat(admin, "<span class='danger'>Deleting flash failed!</span>")
return
@@ -133,7 +133,7 @@
/datum/antagonist/rev/head/proc/admin_repair_flash(mob/admin)
var/list/L = owner.current.get_contents()
var/obj/item/device/assembly/flash/flash = locate() in L
var/obj/item/assembly/flash/flash = locate() in L
if (!flash)
to_chat(admin, "<span class='danger'>Repairing flash failed!</span>")
else
@@ -232,7 +232,7 @@
H.dna.remove_mutation(CLOWNMUT)
if(give_flash)
var/obj/item/device/assembly/flash/T = new(H)
var/obj/item/assembly/flash/T = new(H)
var/list/slots = list (
"backpack" = slot_in_backpack,
"left pocket" = slot_l_store,
+3 -3
View File
@@ -1,5 +1,5 @@
////Deactivated swarmer shell////
/obj/item/device/deactivated_swarmer
/obj/item/deactivated_swarmer
name = "deactivated swarmer"
desc = "A shell of swarmer that was completely powered down. It can no longer activate itself."
icon = 'icons/mob/swarmer.dmi'
@@ -45,7 +45,7 @@
user.visible_message("<span class='warning'>[usr.name] deactivates [src].</span>",
"<span class='notice'>After some fiddling, you find a way to disable [src]'s power source.</span>",
"<span class='italics'>You hear clicking.</span>")
new /obj/item/device/deactivated_swarmer(get_turf(src))
new /obj/item/deactivated_swarmer(get_turf(src))
qdel(src)
else
..()
@@ -399,7 +399,7 @@
to_chat(S, "<span class='warning'>Disrupting the power grid would bring no benefit to us. Aborting.</span>")
return FALSE
/obj/item/device/deactivated_swarmer/IntegrateAmount()
/obj/item/deactivated_swarmer/IntegrateAmount()
return 50
/obj/machinery/hydroponics/soil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
@@ -138,7 +138,7 @@
/////////////////////////////////////////Necromantic Stone///////////////////
/obj/item/device/necromantic_stone
/obj/item/necromantic_stone
name = "necromantic stone"
desc = "A shard capable of resurrecting humans as skeleton thralls."
icon = 'icons/obj/wizard.dmi'
@@ -150,10 +150,10 @@
var/list/spooky_scaries = list()
var/unlimited = 0
/obj/item/device/necromantic_stone/unlimited
/obj/item/necromantic_stone/unlimited
unlimited = 1
/obj/item/device/necromantic_stone/attack(mob/living/carbon/human/M, mob/living/carbon/human/user)
/obj/item/necromantic_stone/attack(mob/living/carbon/human/M, mob/living/carbon/human/user)
if(!istype(M))
return ..()
@@ -183,7 +183,7 @@
desc = "A shard capable of resurrecting humans as skeleton thralls[unlimited ? "." : ", [spooky_scaries.len]/3 active thralls."]"
/obj/item/device/necromantic_stone/proc/check_spooky()
/obj/item/necromantic_stone/proc/check_spooky()
if(unlimited) //no point, the list isn't used.
return
@@ -199,7 +199,7 @@
listclearnulls(spooky_scaries)
//Funny gimmick, skeletons always seem to wear roman/ancient armour
/obj/item/device/necromantic_stone/proc/equip_roman_skeleton(mob/living/carbon/human/H)
/obj/item/necromantic_stone/proc/equip_roman_skeleton(mob/living/carbon/human/H)
for(var/obj/item/I in H)
H.dropItemToGround(I)
@@ -1,4 +1,4 @@
/obj/item/device/soulstone
/obj/item/soulstone
name = "soulstone shard"
icon = 'icons/obj/wizard.dmi'
icon_state = "soulstone"
@@ -14,7 +14,7 @@
var/old_shard = FALSE
var/spent = FALSE
/obj/item/device/soulstone/proc/was_used()
/obj/item/soulstone/proc/was_used()
if(old_shard)
spent = TRUE
name = "dull [name]"
@@ -22,20 +22,20 @@
the 'Soul Stone'. The shard lies still, dull and lifeless; \
whatever spark it once held long extinguished."
/obj/item/device/soulstone/anybody
/obj/item/soulstone/anybody
usability = 1
/obj/item/device/soulstone/anybody/chaplain
/obj/item/soulstone/anybody/chaplain
name = "mysterious old shard"
old_shard = TRUE
/obj/item/device/soulstone/pickup(mob/living/user)
/obj/item/soulstone/pickup(mob/living/user)
..()
if(!iscultist(user) && !iswizard(user) && !usability)
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>")
user.Dizzy(120)
/obj/item/device/soulstone/examine(mob/user)
/obj/item/soulstone/examine(mob/user)
..()
if(usability || iscultist(user) || iswizard(user) || isobserver(user))
if (old_shard)
@@ -46,14 +46,14 @@
if(spent)
to_chat(user, "<span class='cult'>This shard is spent; it is now just a creepy rock.</span>")
/obj/item/device/soulstone/Destroy() //Stops the shade from being qdel'd immediately and their ghost being sent back to the arrival shuttle.
/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)
A.death()
return ..()
//////////////////////////////Capturing////////////////////////////////////////////////////////
/obj/item/device/soulstone/attack(mob/living/carbon/human/M, mob/living/user)
/obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user)
if(!iscultist(user) && !iswizard(user) && !usability)
user.Unconscious(100)
to_chat(user, "<span class='userdanger'>Your body is wracked with debilitating pain!</span>")
@@ -71,7 +71,7 @@
///////////////////Options for using captured souls///////////////////////////////////////
/obj/item/device/soulstone/attack_self(mob/living/user)
/obj/item/soulstone/attack_self(mob/living/user)
if(!in_range(src, user))
return
if(!iscultist(user) && !iswizard(user) && !usability)
@@ -80,7 +80,7 @@
return
release_shades(user)
/obj/item/device/soulstone/proc/release_shades(mob/user)
/obj/item/soulstone/proc/release_shades(mob/user)
for(var/mob/living/simple_animal/shade/A in src)
A.status_flags &= ~GODMODE
A.canmove = 1
@@ -111,8 +111,8 @@
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>")
/obj/structure/constructshell/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/device/soulstone))
var/obj/item/device/soulstone/SS = O
if(istype(O, /obj/item/soulstone))
var/obj/item/soulstone/SS = O
if(!iscultist(user) && !iswizard(user) && !SS.usability)
to_chat(user, "<span class='danger'>An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell. It would be wise to be rid of this quickly.</span>")
user.Dizzy(120)
@@ -125,7 +125,7 @@
////////////////////////////Proc for moving soul in and out off stone//////////////////////////////////////
/obj/item/device/soulstone/proc/transfer_soul(choice as text, target, mob/user)
/obj/item/soulstone/proc/transfer_soul(choice as text, target, mob/user)
switch(choice)
if("FORCE")
if(!iscarbon(target)) //TODO: Add sacrifice stoning for non-organics, just because you have no body doesnt mean you dont have a soul
@@ -233,7 +233,7 @@
newstruct.cancel_camera()
/obj/item/device/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/U, vic = 0)
/obj/item/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/U, vic = 0)
new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton
T.stop_sound_channel(CHANNEL_HEARTBEAT)
T.invisibility = INVISIBILITY_ABSTRACT
@@ -260,7 +260,7 @@
to_chat(U, "<span class='info'><b>Capture successful!</b>:</span> [T.real_name]'s soul has been ripped from their body and stored within the soul stone.")
/obj/item/device/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/U)
/obj/item/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/U)
var/mob/dead/observer/chosen_ghost
for(var/mob/dead/observer/ghost in GLOB.player_list) //We put them back in their body
@@ -337,7 +337,7 @@
/datum/spellbook_entry/item/necrostone
name = "A Necromantic Stone"
desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command."
item_path = /obj/item/device/necromantic_stone
item_path = /obj/item/necromantic_stone
category = "Assistance"
/datum/spellbook_entry/item/wands