| "
diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm
index 2b83017d1d..aaeee27985 100644
--- a/code/game/gamemodes/miniantags/borer/borer.dm
+++ b/code/game/gamemodes/miniantags/borer/borer.dm
@@ -1093,7 +1093,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 10)
/datum/action/innate/borer/jumpstart_host
name = "Jumpstart Host"
desc = "Bring your host back to life."
- icon_icon = 'icons/obj/weapons.dmi'
+ icon_icon = 'icons/obj/items_and_weapons.dmi'
button_icon_state = "defibpaddles0"
/datum/action/innate/borer/jumpstart_host/Activate()
diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
index c24ab53ef5..bbd78ff76a 100644
--- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
+++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
@@ -38,8 +38,8 @@
/obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user)
to_chat(user, "Picking up the swarmer may cause it to activate. You should be careful about this.")
-/obj/effect/mob_spawn/swarmer/attackby(obj/item/weapon/W, mob/user, params)
- if(istype(W, /obj/item/weapon/screwdriver) && user.a_intent != INTENT_HARM)
+/obj/effect/mob_spawn/swarmer/attackby(obj/item/W, mob/user, params)
+ if(istype(W, /obj/item/screwdriver) && user.a_intent != INTENT_HARM)
user.visible_message("[usr.name] deactivates [src].",
"After some fiddling, you find a way to disable [src]'s power source.",
"You hear clicking.")
@@ -91,7 +91,7 @@
projectiletype = /obj/item/projectile/beam/disabler
ranged_cooldown_time = 20
projectilesound = 'sound/weapons/taser2.ogg'
- loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/weapon/ore/bluespace_crystal)
+ loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/ore/bluespace_crystal)
del_on_death = 1
deathmessage = "explodes with a sharp pop!"
light_color = LIGHT_COLOR_CYAN
@@ -191,7 +191,7 @@
return 1
return ..()
-/obj/item/weapon/gun/swarmer_act()//Stops you from eating the entire armory
+/obj/item/gun/swarmer_act()//Stops you from eating the entire armory
return FALSE
/obj/item/clockwork/alloy_shards/IntegrateAmount()
@@ -469,7 +469,7 @@
var/mob/living/carbon/human/H = target
if(ishuman(target) && (!H.handcuffed))
- H.handcuffed = new /obj/item/weapon/restraints/handcuffs/energy/used(H)
+ H.handcuffed = new /obj/item/restraints/handcuffs/energy/used(H)
H.update_handcuffed()
add_logs(src, H, "handcuffed")
diff --git a/code/game/gamemodes/miniantags/hades/hades.dm b/code/game/gamemodes/miniantags/hades/hades.dm
index 9b9f1cbf80..948aaeb422 100644
--- a/code/game/gamemodes/miniantags/hades/hades.dm
+++ b/code/game/gamemodes/miniantags/hades/hades.dm
@@ -136,7 +136,7 @@
src.visible_message("[src]'s Staff is flung free as their body explodes.")
var/obj/structure/ladder/unbreakable/hades/churchLadder = new/obj/structure/ladder/unbreakable/hades(T)
var/obj/structure/ladder/unbreakable/hades/bodyLadder = new/obj/structure/ladder/unbreakable/hades(get_turf(src))
- var/obj/item/weapon/hades_staff/HS = new/obj/item/weapon/hades_staff(get_turf(src))
+ var/obj/item/hades_staff/HS = new/obj/item/hades_staff(get_turf(src))
HS.throw_at_fast(pick(orange(src,7)),10,1)
churchLadder.up = bodyLadder
bodyLadder.down = churchLadder
@@ -447,8 +447,8 @@
if(isIndulged)
sinPerson << "Your stomach growls, you feel hungry."
var/list/allTypes = list()
- for(var/A in typesof(/obj/item/weapon/reagent_containers/food/snacks))
- var/obj/item/weapon/reagent_containers/food/snacks/O = A
+ for(var/A in typesof(/obj/item/reagent_containers/food/snacks))
+ var/obj/item/reagent_containers/food/snacks/O = A
if(initial(O.cooked_type))
allTypes += A
for(var/i in 1 to 10)
@@ -461,12 +461,12 @@
/proc/sin_Pride(var/mob/living/carbon/human/sinPerson, var/isIndulged)
if(isIndulged)
sinPerson << "You feel strong enough to take on the world."
- var/obj/item/weapon/twohanded/sin_pride/good = new/obj/item/weapon/twohanded/sin_pride(get_turf(sinPerson))
+ var/obj/item/twohanded/sin_pride/good = new/obj/item/twohanded/sin_pride(get_turf(sinPerson))
good.name = "Indulged [good.name]"
good.pride_direction = FALSE
else
sinPerson << "You feel small and weak, like the entire world is against you."
- var/obj/item/weapon/twohanded/sin_pride/bad = new/obj/item/weapon/twohanded/sin_pride(get_turf(sinPerson))
+ var/obj/item/twohanded/sin_pride/bad = new/obj/item/twohanded/sin_pride(get_turf(sinPerson))
bad.name = "Punished [bad.name]"
bad.pride_direction = TRUE
@@ -550,7 +550,7 @@
icon = 'icons/effects/224x224.dmi'
-/obj/item/weapon/twohanded/sin_pride
+/obj/item/twohanded/sin_pride
icon_state = "mjollnir0"
name = "Pride-struck Hammer"
desc = "It resonates an aura of Pride."
@@ -564,11 +564,11 @@
hitsound = 'sound/weapons/blade1.ogg'
var/pride_direction = FALSE
-/obj/item/weapon/twohanded/sin_pride/update_icon()
+/obj/item/twohanded/sin_pride/update_icon()
icon_state = "mjollnir[wielded]"
return
-/obj/item/weapon/twohanded/sin_pride/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity)
+/obj/item/twohanded/sin_pride/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity)
if(!proximity) return
if(wielded)
if(istype(A,/mob/living/carbon/human))
@@ -655,7 +655,7 @@
attacktext = "strikes at"
attack_sound = 'sound/weapons/bladeslice.ogg'
- butcher_results = list(/obj/item/clothing/mask/gas/cyborg/hades = 1,/obj/item/clothing/suit/hooded/chaplain_hoodie/hades = 1,/obj/item/weapon/hades_staff/fake = 1)
+ butcher_results = list(/obj/item/clothing/mask/gas/cyborg/hades = 1,/obj/item/clothing/suit/hooded/chaplain_hoodie/hades = 1,/obj/item/hades_staff/fake = 1)
unsuitable_atmos_damage = 0
del_on_death = 0
diff --git a/code/game/gamemodes/miniantags/hades/hades_chapel.dm b/code/game/gamemodes/miniantags/hades/hades_chapel.dm
index 6b1f781fe0..df8a2efafd 100644
--- a/code/game/gamemodes/miniantags/hades/hades_chapel.dm
+++ b/code/game/gamemodes/miniantags/hades/hades_chapel.dm
@@ -16,7 +16,7 @@
/obj/structure/chair/hades/New()
..()
- flags |= NODECONSTRUCT
+ flags_1 |= NODECONSTRUCT_1
for(var/obj/structure/kitchenspike/KS in range(12))
watchedSpikes += KS
@@ -39,14 +39,14 @@
playsound(get_turf(src), 'sound/effects/pope_entry.ogg', 100, 1)
sleep(100)
playsound(get_turf(src), 'sound/effects/hyperspace_end.ogg', 100, 1)
- new/obj/item/weapon/hades_staff/imbued(get_turf(src))
+ new/obj/item/hades_staff/imbued(get_turf(src))
src.visible_message("[src] shatters into a thousand shards, a staff falling from it.")
qdel(src)
-/obj/structure/chair/hades/attackby(obj/item/weapon/W, mob/user, params)
+/obj/structure/chair/hades/attackby(obj/item/W, mob/user, params)
..()
- if(istype(W, /obj/item/weapon/hades_staff))
- var/obj/item/weapon/hades_staff/HS = W
+ if(istype(W, /obj/item/hades_staff))
+ var/obj/item/hades_staff/HS = W
if(!HS.isKey)
return
src.visible_message("[user] inserts the [W] into the [src], giving it a quick turn.")
@@ -74,11 +74,11 @@
/obj/structure/ladder/unbreakable/hades/update_icon()
return
-/obj/item/weapon/paper/hades_instructions
+/obj/item/paper/hades_instructions
name = "paper- 'Hastily Scrawled Letter'"
info = "The Master has instructed us to collect corpses for the ritual, and told us to deposity them in the Ritual Room, behind a bookcase in the library. The Master has locked the device to only work with his key, so no more accidents happen."
-/obj/item/weapon/hades_staff
+/obj/item/hades_staff
name = "Staff of Hades"
desc = "A large, dark staff, with a set of key-like prongs on the end."
icon_state = "staffofchange"
@@ -93,12 +93,12 @@
block_chance = 25
var/isKey = 1
-/obj/item/weapon/hades_staff/fake
+/obj/item/hades_staff/fake
name = "Inert Staff of Hades"
desc = "A large, dark staff."
isKey = 0
-/obj/item/weapon/hades_staff/imbued
+/obj/item/hades_staff/imbued
name = "Imbued Staff of Hades"
desc = " Bestowed with the power of wayward souls, this Staff allows the wielder to judge a target."
force = 75
@@ -107,7 +107,7 @@
var/lastJudge = 0
var/judgeCooldown = 150
-/obj/item/weapon/hades_staff/imbued/attack(mob/living/carbon/human/M, mob/living/carbon/human/user)
+/obj/item/hades_staff/imbued/attack(mob/living/carbon/human/M, mob/living/carbon/human/user)
if(!istype(M))
return ..()
diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm
index af27833d15..f763f742f7 100644
--- a/code/game/gamemodes/miniantags/morph/morph.dm
+++ b/code/game/gamemodes/miniantags/morph/morph.dm
@@ -30,9 +30,9 @@
wander = 0
attacktext = "glomps"
attack_sound = 'sound/effects/blobattack.ogg'
- butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2)
+ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2)
- var/morphed = 0
+ var/morphed = FALSE
var/atom/movable/form = null
var/morph_time = 0
var/static/list/blacklist_typecache = typecacheof(list(
@@ -93,7 +93,10 @@
..()
/mob/living/simple_animal/hostile/morph/proc/assume(atom/movable/target)
- morphed = 1
+ if(morphed)
+ to_chat(src, "You must restore to your original form first!")
+ return
+ morphed = TRUE
form = target
visible_message("[src] suddenly twists and changes shape, becoming a copy of [target]!", \
@@ -117,8 +120,9 @@
/mob/living/simple_animal/hostile/morph/proc/restore()
if(!morphed)
+ to_chat(src, "You're already in your normal form!")
return
- morphed = 0
+ morphed = FALSE
form = null
alpha = initial(alpha)
color = initial(color)
diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm
index e16c21e2e2..5e1d80e175 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant.dm
@@ -174,7 +174,7 @@
//damage, gibbing, and dying
/mob/living/simple_animal/revenant/attackby(obj/item/W, mob/living/user, params)
. = ..()
- if(istype(W, /obj/item/weapon/nullrod))
+ if(istype(W, /obj/item/nullrod))
visible_message("[src] violently flinches!", \
"As \the [W] passes through you, you feel your essence draining away!")
adjustBruteLoss(25) //hella effective
@@ -218,7 +218,7 @@
alpha = i
visible_message("[src]'s body breaks apart into a fine pile of blue dust.")
var/reforming_essence = essence_regen_cap //retain the gained essence capacity
- var/obj/item/weapon/ectoplasm/revenant/R = new(get_turf(src))
+ var/obj/item/ectoplasm/revenant/R = new(get_turf(src))
R.essence = max(reforming_essence - 15 * perfectsouls, 75) //minus any perfect souls
R.client_to_revive = client //If the essence reforms, the old revenant is put back in the body
R.revenant = src
@@ -321,7 +321,7 @@
//reforming
-/obj/item/weapon/ectoplasm/revenant
+/obj/item/ectoplasm/revenant
name = "glimmering residue"
desc = "A pile of fine blue dust. Small tendrils of violet mist swirl around it."
icon = 'icons/effects/effects.dmi'
@@ -333,14 +333,14 @@
var/client/client_to_revive
var/mob/living/simple_animal/revenant/revenant
-/obj/item/weapon/ectoplasm/revenant/New()
+/obj/item/ectoplasm/revenant/New()
..()
addtimer(CALLBACK(src, .proc/try_reform), 600)
-/obj/item/weapon/ectoplasm/revenant/proc/scatter()
+/obj/item/ectoplasm/revenant/proc/scatter()
qdel(src)
-/obj/item/weapon/ectoplasm/revenant/proc/try_reform()
+/obj/item/ectoplasm/revenant/proc/try_reform()
if(reforming)
reforming = FALSE
reform()
@@ -348,7 +348,7 @@
inert = TRUE
visible_message("[src] settles down and seems lifeless.")
-/obj/item/weapon/ectoplasm/revenant/attack_self(mob/user)
+/obj/item/ectoplasm/revenant/attack_self(mob/user)
if(!reforming || inert)
return ..()
user.visible_message("[user] scatters [src] in all directions.", \
@@ -356,21 +356,21 @@
user.drop_item()
scatter()
-/obj/item/weapon/ectoplasm/revenant/throw_impact(atom/hit_atom)
+/obj/item/ectoplasm/revenant/throw_impact(atom/hit_atom)
..()
if(inert)
return
visible_message("[src] breaks into particles upon impact, which fade away to nothingness.")
scatter()
-/obj/item/weapon/ectoplasm/revenant/examine(mob/user)
+/obj/item/ectoplasm/revenant/examine(mob/user)
..()
if(inert)
to_chat(user, "It seems inert.")
else if(reforming)
to_chat(user, "It is shifting and distorted. It would be wise to destroy this.")
-/obj/item/weapon/ectoplasm/revenant/proc/reform()
+/obj/item/ectoplasm/revenant/proc/reform()
if(QDELETED(src) || QDELETED(revenant) || inert)
return
var/key_of_revenant
@@ -412,7 +412,7 @@
revenant = null
qdel(src)
-/obj/item/weapon/ectoplasm/revenant/Destroy()
+/obj/item/ectoplasm/revenant/Destroy()
if(!QDELETED(revenant))
qdel(revenant)
..()
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
index 184564b024..98102984ee 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
@@ -238,8 +238,8 @@
INVOKE_ASYNC(src, .proc/defile, T)
/obj/effect/proc_holder/spell/aoe_turf/revenant/defile/proc/defile(turf/T)
- if(T.flags & NOJAUNT)
- T.flags -= NOJAUNT
+ if(T.flags_1 & NOJAUNT_1)
+ T.flags_1 &= ~NOJAUNT_1
new /obj/effect/temp_visual/revenant(T)
if(!istype(T, /turf/open/floor/plating) && !istype(T, /turf/open/floor/engine/cult) && isfloorturf(T) && prob(15))
var/turf/open/floor/floor = T
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 16fb1f601d..59650561a6 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -114,9 +114,9 @@
var/obj/item/device/nuclear_challenge/challenge = new /obj/item/device/nuclear_challenge
synd_mind.current.put_in_hands_or_del(challenge)
- var/list/foundIDs = synd_mind.current.search_contents_for(/obj/item/weapon/card/id)
+ var/list/foundIDs = synd_mind.current.search_contents_for(/obj/item/card/id)
if(foundIDs.len)
- for(var/obj/item/weapon/card/id/ID in foundIDs)
+ for(var/obj/item/card/id/ID in foundIDs)
ID.name = "lead agent card"
ID.access += ACCESS_SYNDICATE_LEADER
else
@@ -127,7 +127,7 @@
A.command = TRUE
if(nuke_code)
- var/obj/item/weapon/paper/P = new
+ var/obj/item/paper/P = new
P.info = "The nuclear authorization code is: [nuke_code]"
P.name = "nuclear bomb code"
var/mob/living/carbon/human/H = synd_mind.current
@@ -186,7 +186,7 @@
/datum/game_mode/nuclear/declare_completion()
var/disk_rescued = 1
- for(var/obj/item/weapon/disk/nuclear/D in GLOB.poi_list)
+ for(var/obj/item/disk/nuclear/D in GLOB.poi_list)
if(!D.onCentCom())
disk_rescued = 0
break
@@ -323,12 +323,12 @@
uniform = /obj/item/clothing/under/syndicate
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/combat
- back = /obj/item/weapon/storage/backpack
+ back = /obj/item/storage/backpack
ears = /obj/item/device/radio/headset/syndicate/alt
- l_pocket = /obj/item/weapon/pinpointer/syndicate
- id = /obj/item/weapon/card/id/syndicate
- belt = /obj/item/weapon/gun/ballistic/automatic/pistol
- backpack_contents = list(/obj/item/weapon/storage/box/syndie=1)
+ l_pocket = /obj/item/pinpointer/syndicate
+ id = /obj/item/card/id/syndicate
+ belt = /obj/item/gun/ballistic/automatic/pistol
+ backpack_contents = list(/obj/item/storage/box/syndie=1)
var/tc = 25
@@ -347,9 +347,9 @@
U.hidden_uplink.telecrystals = tc
H.equip_to_slot_or_del(U, slot_in_backpack)
- var/obj/item/weapon/implant/weapons_auth/W = new/obj/item/weapon/implant/weapons_auth(H)
+ var/obj/item/implant/weapons_auth/W = new/obj/item/implant/weapons_auth(H)
W.implant(H)
- var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(H)
+ var/obj/item/implant/explosive/E = new/obj/item/implant/explosive(H)
E.implant(H)
H.faction |= "syndicate"
H.update_icons()
@@ -360,10 +360,10 @@
glasses = /obj/item/clothing/glasses/night
mask = /obj/item/clothing/mask/gas/syndicate
suit = /obj/item/clothing/suit/space/hardsuit/syndi
- r_pocket = /obj/item/weapon/tank/internals/emergency_oxygen/engi
+ r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
internals_slot = slot_r_store
- belt = /obj/item/weapon/storage/belt/military
- r_hand = /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog
- backpack_contents = list(/obj/item/weapon/storage/box/syndie=1,\
- /obj/item/weapon/tank/jetpack/oxygen/harness=1,\
- /obj/item/weapon/gun/ballistic/automatic/pistol=1)
+ belt = /obj/item/storage/belt/military
+ r_hand = /obj/item/gun/ballistic/automatic/shotgun/bulldog
+ backpack_contents = list(/obj/item/storage/box/syndie=1,\
+ /obj/item/tank/jetpack/oxygen/harness=1,\
+ /obj/item/gun/ballistic/automatic/pistol=1)
diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm
index f275db3b0b..f671d38395 100644
--- a/code/game/gamemodes/nuclear/nuclear_challenge.dm
+++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm
@@ -49,7 +49,7 @@
to_chat(user, "You've attracted the attention of powerful forces within the syndicate. A bonus bundle of telecrystals has been granted to your team. Great things await you if you complete the mission.")
for(var/V in GLOB.syndicate_shuttle_boards)
- var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = V
+ var/obj/item/circuitboard/computer/syndicate_shuttle/board = V
board.challenge = TRUE
var/obj/item/device/radio/uplink/nuclear/U = new(get_turf(user))
@@ -74,7 +74,7 @@
to_chat(user, "It's too late to declare hostilities. Your benefactors are already busy with other schemes. You'll have to make do with what you have on hand.")
return 0
for(var/V in GLOB.syndicate_shuttle_boards)
- var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = V
+ var/obj/item/circuitboard/computer/syndicate_shuttle/board = V
if(board.moved)
to_chat(user, "The shuttle has already been moved! You have forfeit the right to declare war.")
return 0
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index d36cab4881..ee611349f8 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -32,7 +32,7 @@
var/r_code = "ADMIN"
var/yes_code = FALSE
var/safety = TRUE
- var/obj/item/weapon/disk/nuclear/auth = null
+ var/obj/item/disk/nuclear/auth = null
use_power = NO_POWER_USE
var/previous_level = ""
var/obj/item/nuke_core/core = null
@@ -85,13 +85,12 @@
. = ..()
var/obj/machinery/nuclearbomb/existing = locate("syndienuke") in GLOB.nuke_list
if(existing)
- qdel(src)
- throw EXCEPTION("Attempted to spawn a syndicate nuke while one already exists at [existing.loc.x],[existing.loc.y],[existing.loc.z]")
- return 0
+ stack_trace("Attempted to spawn a syndicate nuke while one already exists at [existing.loc.x],[existing.loc.y],[existing.loc.z]")
+ return INITIALIZE_HINT_QDEL
tag = "syndienuke"
/obj/machinery/nuclearbomb/attackby(obj/item/I, mob/user, params)
- if (istype(I, /obj/item/weapon/disk/nuclear))
+ if (istype(I, /obj/item/disk/nuclear))
if(!user.drop_item())
return
I.forceMove(src)
@@ -101,7 +100,7 @@
switch(deconstruction_state)
if(NUKESTATE_INTACT)
- if(istype(I, /obj/item/weapon/screwdriver/nuke))
+ if(istype(I, /obj/item/screwdriver/nuke))
playsound(loc, I.usesound, 100, 1)
to_chat(user, "You start removing [src]'s front panel's screws...")
if(do_after(user, 60*I.toolspeed,target=src))
@@ -110,7 +109,7 @@
update_icon()
return
if(NUKESTATE_UNSCREWED)
- if(istype(I, /obj/item/weapon/crowbar))
+ if(istype(I, /obj/item/crowbar))
to_chat(user, "You start removing [src]'s front panel...")
playsound(loc, I.usesound, 100, 1)
if(do_after(user,30*I.toolspeed,target=src))
@@ -119,8 +118,8 @@
update_icon()
return
if(NUKESTATE_PANEL_REMOVED)
- if(istype(I, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/welder = I
+ if(istype(I, /obj/item/weldingtool))
+ var/obj/item/weldingtool/welder = I
playsound(loc, I.usesound, 100, 1)
to_chat(user, "You start cutting [src]'s inner plate...")
if(welder.remove_fuel(1,user))
@@ -130,7 +129,7 @@
update_icon()
return
if(NUKESTATE_WELDED)
- if(istype(I, /obj/item/weapon/crowbar))
+ if(istype(I, /obj/item/crowbar))
to_chat(user, "You start prying off [src]'s inner plate...")
playsound(loc, I.usesound, 100, 1)
if(do_after(user,50*I.toolspeed,target=src))
@@ -297,7 +296,7 @@
if("insert_disk")
if(!auth)
var/obj/item/I = usr.get_active_held_item()
- if(istype(I, /obj/item/weapon/disk/nuclear))
+ if(istype(I, /obj/item/disk/nuclear))
usr.drop_item()
I.forceMove(src)
auth = I
@@ -363,7 +362,7 @@
if(safety)
if(timing)
set_security_level(previous_level)
- for(var/obj/item/weapon/pinpointer/syndicate/S in GLOB.pinpointer_list)
+ for(var/obj/item/pinpointer/syndicate/S in GLOB.pinpointer_list)
S.switch_mode_to(initial(S.mode))
S.nuke_warning = FALSE
timing = FALSE
@@ -382,14 +381,14 @@
bomb_set = TRUE
set_security_level("delta")
detonation_timer = world.time + (timer_set * 10)
- for(var/obj/item/weapon/pinpointer/syndicate/S in GLOB.pinpointer_list)
+ for(var/obj/item/pinpointer/syndicate/S in GLOB.pinpointer_list)
S.switch_mode_to(TRACK_INFILTRATOR)
countdown.start()
else
bomb_set = FALSE
detonation_timer = null
set_security_level(previous_level)
- for(var/obj/item/weapon/pinpointer/syndicate/S in GLOB.pinpointer_list)
+ for(var/obj/item/pinpointer/syndicate/S in GLOB.pinpointer_list)
S.switch_mode_to(initial(S.mode))
S.nuke_warning = FALSE
countdown.stop()
@@ -483,7 +482,7 @@ This is here to make the tiles around the station mininuke change when it's arme
SSmapping.remove_nuke_threat(src)
//==========DAT FUKKEN DISK===============
-/obj/item/weapon/disk
+/obj/item/disk
icon = 'icons/obj/module.dmi'
w_class = WEIGHT_CLASS_TINY
item_state = "card-id"
@@ -491,23 +490,23 @@ This is here to make the tiles around the station mininuke change when it's arme
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
icon_state = "datadisk0"
-/obj/item/weapon/disk/nuclear
+/obj/item/disk/nuclear
name = "nuclear authentication disk"
desc = "Better keep this safe."
icon_state = "nucleardisk"
- persistence_replacement = /obj/item/weapon/disk/fakenucleardisk
+ persistence_replacement = /obj/item/disk/fakenucleardisk
max_integrity = 250
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
-/obj/item/weapon/disk/nuclear/New()
+/obj/item/disk/nuclear/New()
..()
GLOB.poi_list |= src
set_stationloving(TRUE, inform_admins=TRUE)
-/obj/item/weapon/disk/nuclear/attackby(obj/item/I, mob/living/user, params)
- if(istype(I, /obj/item/weapon/claymore/highlander))
- var/obj/item/weapon/claymore/highlander/H = I
+/obj/item/disk/nuclear/attackby(obj/item/I, mob/living/user, params)
+ if(istype(I, /obj/item/claymore/highlander))
+ var/obj/item/claymore/highlander/H = I
if(H.nuke_disk)
to_chat(user, "Wait... what?")
qdel(H.nuke_disk)
@@ -519,13 +518,13 @@ This is here to make the tiles around the station mininuke change when it's arme
return 1
return ..()
-/obj/item/weapon/disk/nuclear/Destroy(force=FALSE)
+/obj/item/disk/nuclear/Destroy(force=FALSE)
// respawning is handled in /obj/Destroy()
if(force)
GLOB.poi_list -= src
. = ..()
-/obj/item/weapon/disk/nuclear/suicide_act(mob/user)
+/obj/item/disk/nuclear/suicide_act(mob/user)
user.visible_message("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(user.loc, 'sound/machines/alarm.ogg', 50, -1, 1)
var/end_time = world.time + 100
@@ -543,7 +542,7 @@ This is here to make the tiles around the station mininuke change when it's arme
user.visible_message("[user] was destroyed by the nuclear blast!")
return OXYLOSS
-/obj/item/weapon/disk/fakenucleardisk
+/obj/item/disk/fakenucleardisk
name = "cheap plastic imitation of the nuclear authentication disk"
desc = "Broken dreams and a faint odor of cheese."
icon_state = "nucleardisk"
diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm
index d926cf2a9f..9f63309643 100644
--- a/code/game/gamemodes/nuclear/pinpointer.dm
+++ b/code/game/gamemodes/nuclear/pinpointer.dm
@@ -1,10 +1,10 @@
//Pinpointers are used to track atoms from a distance as long as they're on the same z-level. The captain and nuke ops have ones that track the nuclear authentication disk.
-/obj/item/weapon/pinpointer
+/obj/item/pinpointer
name = "pinpointer"
desc = "A handheld tracking device that locks onto certain signals."
icon = 'icons/obj/device.dmi'
icon_state = "pinoff"
- flags = CONDUCT
+ flags_1 = CONDUCT_1
slot_flags = SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
item_state = "electronic"
@@ -23,16 +23,16 @@
var/nuke_warning = FALSE // If we've set off a miniature alarm about an armed nuke
var/mode = TRACK_NUKE_DISK //What are we looking for?
-/obj/item/weapon/pinpointer/New()
+/obj/item/pinpointer/New()
..()
GLOB.pinpointer_list += src
-/obj/item/weapon/pinpointer/Destroy()
+/obj/item/pinpointer/Destroy()
STOP_PROCESSING(SSfastprocess, src)
GLOB.pinpointer_list -= src
return ..()
-/obj/item/weapon/pinpointer/attack_self(mob/living/user)
+/obj/item/pinpointer/attack_self(mob/living/user)
active = !active
user.visible_message("[user] [active ? "" : "de"]activates their pinpointer.", "You [active ? "" : "de"]activate your pinpointer.")
playsound(user, 'sound/items/screwdriver2.ogg', 50, 1)
@@ -43,14 +43,14 @@
target = null //Restarting the pinpointer forces a target reset
STOP_PROCESSING(SSfastprocess, src)
-/obj/item/weapon/pinpointer/attackby(obj/item/I, mob/living/user, params)
+/obj/item/pinpointer/attackby(obj/item/I, mob/living/user, params)
if(mode != TRACK_ATOM)
return ..()
user.visible_message("[user] tunes [src] to [I].", "You fine-tune [src]'s tracking to track [I].")
playsound(src, 'sound/machines/click.ogg', 50, 1)
constant_target = I
-/obj/item/weapon/pinpointer/examine(mob/user)
+/obj/item/pinpointer/examine(mob/user)
..()
var/msg = "Its tracking indicator reads "
switch(mode)
@@ -73,7 +73,7 @@
if(bomb.timing)
to_chat(user, "Extreme danger. Arming signal detected. Time remaining: [bomb.get_time_left()]")
-/obj/item/weapon/pinpointer/process()
+/obj/item/pinpointer/process()
if(!active)
STOP_PROCESSING(SSfastprocess, src)
return
@@ -82,7 +82,7 @@
my_god_jc_a_bomb()
addtimer(CALLBACK(src, .proc/refresh_target), 50, TIMER_UNIQUE)
-/obj/item/weapon/pinpointer/proc/scan_for_target() //Looks for whatever it's tracking
+/obj/item/pinpointer/proc/scan_for_target() //Looks for whatever it's tracking
if(target)
if(isliving(target))
var/mob/living/L = target
@@ -91,7 +91,7 @@
return
switch(mode)
if(TRACK_NUKE_DISK)
- var/obj/item/weapon/disk/nuclear/N = locate() in GLOB.poi_list
+ var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list
target = N
if(TRACK_MALF_AI)
for(var/V in GLOB.ai_list)
@@ -121,7 +121,7 @@
var/turf/T = get_turf(src)
target = locate(target_x, target_y, T.z)
-/obj/item/weapon/pinpointer/proc/point_to_target() //If we found what we're looking for, show the distance and direction
+/obj/item/pinpointer/proc/point_to_target() //If we found what we're looking for, show the distance and direction
if(!active)
return
if(!target || (mode == TRACK_ATOM && !constant_target))
@@ -144,7 +144,7 @@
if(16 to INFINITY)
icon_state = "pinon[nuke_warning ? "alert" : "far"]"
-/obj/item/weapon/pinpointer/proc/my_god_jc_a_bomb() //If we should get the hell back to the ship
+/obj/item/pinpointer/proc/my_god_jc_a_bomb() //If we should get the hell back to the ship
for(var/obj/machinery/nuclearbomb/bomb in GLOB.nuke_list)
if(bomb.timing)
if(!nuke_warning)
@@ -154,7 +154,7 @@
var/mob/living/L = loc
to_chat(L, "Your [name] vibrates and lets out a tinny alarm. Uh oh.")
-/obj/item/weapon/pinpointer/proc/switch_mode_to(new_mode) //If we shouldn't be tracking what we are
+/obj/item/pinpointer/proc/switch_mode_to(new_mode) //If we shouldn't be tracking what we are
if(isliving(loc))
var/mob/living/L = loc
to_chat(L, "Your [name] beeps as it reconfigures its tracking algorithms.")
@@ -162,18 +162,18 @@
mode = new_mode
target = null //Switch modes so we can find the new target
-/obj/item/weapon/pinpointer/proc/refresh_target() //Periodically removes the target to allow the pinpointer to update (i.e. malf AI shunts, an operative dies)
+/obj/item/pinpointer/proc/refresh_target() //Periodically removes the target to allow the pinpointer to update (i.e. malf AI shunts, an operative dies)
target = null
-/obj/item/weapon/pinpointer/syndicate //Syndicate pinpointers automatically point towards the infiltrator once the nuke is active.
+/obj/item/pinpointer/syndicate //Syndicate pinpointers automatically point towards the infiltrator once the nuke is active.
name = "syndicate pinpointer"
desc = "A handheld tracking device that locks onto certain signals. It's configured to switch tracking modes once it detects the activation signal of a nuclear device."
-/obj/item/weapon/pinpointer/syndicate/cyborg //Cyborg pinpointers just look for a random operative.
+/obj/item/pinpointer/syndicate/cyborg //Cyborg pinpointers just look for a random operative.
name = "cyborg syndicate pinpointer"
desc = "An integrated tracking device, jury-rigged to search for living Syndicate operatives."
mode = TRACK_OPERATIVES
- flags = NODROP
+ flags_1 = NODROP_1
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index e6a22cf3d5..b33500db22 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -42,7 +42,6 @@
return target
/datum/objective/proc/find_target_by_role(role, role_type=0, invert=0)//Option sets either to check assigned role or special role. Default to assigned., invert inverts the check, eg: "Don't choose a Ling"
- var/list/candidates = list() //Let's compile a list and THEN pick one randomly, not just first come first serve...
for(var/datum/mind/possible_target in get_crewmember_minds())
if((possible_target != owner) && ishuman(possible_target.current))
var/is_role = 0
@@ -56,11 +55,12 @@
if(invert)
if(is_role)
continue
- candidates += possible_target
+ target = possible_target
+ break
else if(is_role)
- candidates += possible_target
- if(candidates)
- target = pick(candidates)
+ target = possible_target
+ break
+
update_explanation_text()
/datum/objective/proc/update_explanation_text()
@@ -442,7 +442,8 @@ GLOBAL_LIST_EMPTY(possible_items)
/datum/objective/steal/New()
..()
if(!GLOB.possible_items.len)//Only need to fill the list when it's needed.
- init_subtypes(/datum/objective_item/steal,GLOB.possible_items)
+ for(var/I in subtypesof(/datum/objective_item/steal))
+ new I
/datum/objective/steal/find_target()
var/approved_targets = list()
@@ -507,8 +508,8 @@ GLOBAL_LIST_EMPTY(possible_items_special)
/datum/objective/steal/special/New()
..()
if(!GLOB.possible_items_special.len)
- init_subtypes(/datum/objective_item/special,GLOB.possible_items_special)
- init_subtypes(/datum/objective_item/stack,GLOB.possible_items_special)
+ for(var/I in subtypesof(/datum/objective_item/special) + subtypesof(/datum/objective_item/stack))
+ new I
/datum/objective/steal/special/find_target()
return set_target(pick(GLOB.possible_items_special))
@@ -682,11 +683,11 @@ GLOBAL_LIST_EMPTY(possible_items_special)
/datum/objective/steal_five_of_type/summon_guns
explanation_text = "Steal at least five guns!"
- wanted_items = list(/obj/item/weapon/gun)
+ wanted_items = list(/obj/item/gun)
/datum/objective/steal_five_of_type/summon_magic
explanation_text = "Steal at least five magical artefacts!"
- wanted_items = list(/obj/item/weapon/spellbook, /obj/item/weapon/gun/magic, /obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/weapon/scrying, /obj/item/weapon/antag_spawner/contract, /obj/item/device/necromantic_stone)
+ wanted_items = list(/obj/item/spellbook, /obj/item/gun/magic, /obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/scrying, /obj/item/antag_spawner/contract, /obj/item/device/necromantic_stone)
/datum/objective/steal_five_of_type/check_completion()
if(!isliving(owner.current))
diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm
index 43067d4c22..3cfede5f93 100644
--- a/code/game/gamemodes/objective_items.dm
+++ b/code/game/gamemodes/objective_items.dm
@@ -2,7 +2,7 @@
/datum/objective_item
var/name = "A silly bike horn! Honk!"
- var/targetitem = /obj/item/weapon/bikehorn //typepath of the objective item
+ var/targetitem = /obj/item/bikehorn //typepath of the objective item
var/difficulty = 9001 //vaguely how hard it is to do this objective
var/list/excludefromjob = list() //If you don't want a job to get a certain objective (no captain stealing his own medal, etcetc)
var/list/altitems = list() //Items which can serve as an alternative to the objective (darn you blueprints)
@@ -11,27 +11,41 @@
/datum/objective_item/proc/check_special_completion() //for objectives with special checks (is that slime extract unused? does that intellicard have an ai in it? etcetc)
return 1
+/datum/objective_item/proc/TargetExists()
+ return TRUE
+
+/datum/objective_item/steal/New()
+ ..()
+ if(TargetExists())
+ GLOB.possible_items += src
+ else
+ qdel(src)
+
+/datum/objective_item/steal/Destroy()
+ GLOB.possible_items -= src
+ return ..()
+
/datum/objective_item/steal/caplaser
name = "the captain's antique laser gun."
- targetitem = /obj/item/weapon/gun/energy/laser/captain
+ targetitem = /obj/item/gun/energy/laser/captain
difficulty = 5
excludefromjob = list("Captain")
/datum/objective_item/steal/hoslaser
name = "the head of security's personal laser gun."
- targetitem = /obj/item/weapon/gun/energy/e_gun/hos
+ targetitem = /obj/item/gun/energy/e_gun/hos
difficulty = 10
excludefromjob = list("Head Of Security")
/datum/objective_item/steal/handtele
name = "a hand teleporter."
- targetitem = /obj/item/weapon/hand_tele
+ targetitem = /obj/item/hand_tele
difficulty = 5
excludefromjob = list("Captain")
/datum/objective_item/steal/jetpack
name = "the Captain's jetpack."
- targetitem = /obj/item/weapon/tank/jetpack/oxygen/captain
+ targetitem = /obj/item/tank/jetpack/oxygen/captain
difficulty = 5
excludefromjob = list("Captain")
@@ -49,13 +63,13 @@
/datum/objective_item/steal/hypo
name = "the hypospray."
- targetitem = /obj/item/weapon/reagent_containers/hypospray/CMO
+ targetitem = /obj/item/reagent_containers/hypospray/CMO
difficulty = 5
excludefromjob = list("Chief Medical Officer")
/datum/objective_item/steal/nukedisc
name = "the nuclear authentication disk."
- targetitem = /obj/item/weapon/disk/nuclear
+ targetitem = /obj/item/disk/nuclear
difficulty = 5
excludefromjob = list("Captain")
@@ -82,7 +96,7 @@
difficulty = 15
/datum/objective_item/steal/nuke_core/New()
- special_equipment += /obj/item/weapon/storage/box/syndie_kit/nuke
+ special_equipment += /obj/item/storage/box/syndie_kit/nuke
..()
/datum/objective_item/steal/supermatter
@@ -91,17 +105,20 @@
difficulty = 15
/datum/objective_item/steal/supermatter/New()
- special_equipment += /obj/item/weapon/storage/box/syndie_kit/supermatter
+ special_equipment += /obj/item/storage/box/syndie_kit/supermatter
..()
+/datum/objective_item/steal/supermatter/TargetExists()
+ return GLOB.main_supermatter_engine != null
+
//Items with special checks!
/datum/objective_item/steal/plasma
name = "28 moles of plasma (full tank)."
- targetitem = /obj/item/weapon/tank
+ targetitem = /obj/item/tank
difficulty = 3
excludefromjob = list("Chief Engineer","Research Director","Station Engineer","Scientist","Atmospheric Technician")
-/datum/objective_item/steal/plasma/check_special_completion(obj/item/weapon/tank/T)
+/datum/objective_item/steal/plasma/check_special_completion(obj/item/tank/T)
var/target_amount = text2num(name)
var/found_amount = 0
found_amount += T.air_contents.gases["plasma"] ? T.air_contents.gases["plasma"][MOLES] : 0
@@ -124,13 +141,13 @@
targetitem = /obj/item/areaeditor/blueprints
difficulty = 10
excludefromjob = list("Chief Engineer")
- altitems = list(/obj/item/weapon/photo)
+ altitems = list(/obj/item/photo)
/datum/objective_item/steal/blueprints/check_special_completion(obj/item/I)
if(istype(I, /obj/item/areaeditor/blueprints))
return 1
- if(istype(I, /obj/item/weapon/photo))
- var/obj/item/weapon/photo/P = I
+ if(istype(I, /obj/item/photo))
+ var/obj/item/photo/P = I
if(P.blueprints) //if the blueprints are in frame
return 1
return 0
@@ -157,30 +174,41 @@
targetitem = /obj/item/documents/syndicate/blue
difficulty = 10
+/datum/objective_item/special/New()
+ ..()
+ if(TargetExists())
+ GLOB.possible_items_special += src
+ else
+ qdel(src)
+
+/datum/objective_item/special/Destroy()
+ GLOB.possible_items_special -= src
+ return ..()
+
//Old ninja objectives.
/datum/objective_item/special/pinpointer
name = "the captain's pinpointer."
- targetitem = /obj/item/weapon/pinpointer
+ targetitem = /obj/item/pinpointer
difficulty = 10
/datum/objective_item/special/aegun
name = "an advanced energy gun."
- targetitem = /obj/item/weapon/gun/energy/e_gun/nuclear
+ targetitem = /obj/item/gun/energy/e_gun/nuclear
difficulty = 10
/datum/objective_item/special/ddrill
name = "a diamond drill."
- targetitem = /obj/item/weapon/pickaxe/drill/diamonddrill
+ targetitem = /obj/item/pickaxe/drill/diamonddrill
difficulty = 10
/datum/objective_item/special/boh
name = "a bag of holding."
- targetitem = /obj/item/weapon/storage/backpack/holding
+ targetitem = /obj/item/storage/backpack/holding
difficulty = 10
/datum/objective_item/special/hypercell
name = "a hyper-capacity power cell."
- targetitem = /obj/item/weapon/stock_parts/cell/hyper
+ targetitem = /obj/item/stock_parts/cell/hyper
difficulty = 5
/datum/objective_item/special/laserpointer
@@ -190,9 +218,20 @@
/datum/objective_item/special/corgimeat
name = "a piece of corgi meat."
- targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi
+ targetitem = /obj/item/reagent_containers/food/snacks/meat/slab/corgi
difficulty = 5
+/datum/objective_item/stack/New()
+ ..()
+ if(TargetExists())
+ GLOB.possible_items_special += src
+ else
+ qdel(src)
+
+/datum/objective_item/stack/Destroy()
+ GLOB.possible_items_special -= src
+ return ..()
+
//Stack objectives get their own subtype
/datum/objective_item/stack
name = "5 cardboard."
diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm
index 1586cc43b1..7a17d54b4c 100644
--- a/code/game/gamemodes/sandbox/h_sandbox.dm
+++ b/code/game/gamemodes/sandbox/h_sandbox.dm
@@ -26,23 +26,23 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
var/hsbinfo = null
//items that shouldn't spawn on the floor because they would bug or act weird
var/global/list/spawn_forbidden = list(
- /obj/item/tk_grab, /obj/item/weapon/implant, // not implanter, the actual thing that is inside you
+ /obj/item/tk_grab, /obj/item/implant, // not implanter, the actual thing that is inside you
/obj/item/assembly, /obj/item/device/onetankbomb, /obj/item/radio, /obj/item/device/pda/ai,
/obj/item/device/uplink, /obj/item/smallDelivery, /obj/item/projectile,
- /obj/item/borg/sight, /obj/item/borg/stun, /obj/item/weapon/robot_module)
+ /obj/item/borg/sight, /obj/item/borg/stun, /obj/item/robot_module)
/datum/hSB/proc/update()
var/global/list/hrefs = list(
"Space Gear",
"Suit Up (Space Travel Gear)" = "hsbsuit",
"Spawn Gas Mask" = "hsbspawn&path=[/obj/item/clothing/mask/gas]",
- "Spawn Emergency Air Tank" = "hsbspawn&path=[/obj/item/weapon/tank/internals/emergency_oxygen/double]",
+ "Spawn Emergency Air Tank" = "hsbspawn&path=[/obj/item/tank/internals/emergency_oxygen/double]",
"Standard Tools",
"Spawn Flashlight" = "hsbspawn&path=[/obj/item/device/flashlight]",
- "Spawn Toolbox" = "hsbspawn&path=[/obj/item/weapon/storage/toolbox/mechanical]",
+ "Spawn Toolbox" = "hsbspawn&path=[/obj/item/storage/toolbox/mechanical]",
"Spawn Light Replacer" = "hsbspawn&path=[/obj/item/device/lightreplacer]",
- "Spawn Medical Kit" = "hsbspawn&path=[/obj/item/weapon/storage/firstaid/regular]",
+ "Spawn Medical Kit" = "hsbspawn&path=[/obj/item/storage/firstaid/regular]",
"Spawn All-Access ID" = "hsbaaid",
"Building Supplies",
@@ -52,10 +52,10 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
"Spawn 50 Reinforced Glass" = "hsbrglass",
"Spawn 50 Glass" = "hsbglass",
"Spawn Full Cable Coil" = "hsbspawn&path=[/obj/item/stack/cable_coil]",
- "Spawn Hyper Capacity Power Cell" = "hsbspawn&path=[/obj/item/weapon/stock_parts/cell/hyper]",
- "Spawn Inf. Capacity Power Cell" = "hsbspawn&path=[/obj/item/weapon/stock_parts/cell/infinite]",
+ "Spawn Hyper Capacity Power Cell" = "hsbspawn&path=[/obj/item/stock_parts/cell/hyper]",
+ "Spawn Inf. Capacity Power Cell" = "hsbspawn&path=[/obj/item/stock_parts/cell/infinite]",
"Spawn Rapid Construction Device" = "hsbrcd",
- "Spawn RCD Ammo" = "hsb_safespawn&path=[/obj/item/weapon/rcd_ammo]",
+ "Spawn RCD Ammo" = "hsb_safespawn&path=[/obj/item/rcd_ammo]",
"Spawn Airlock" = "hsbairlock",
"Miscellaneous",
@@ -171,7 +171,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
P.back.layer = initial(P.back.layer)
P.back.plane = initial(P.back.plane)
P.back = null
- P.back = new/obj/item/weapon/tank/jetpack/oxygen(P)
+ P.back = new/obj/item/tank/jetpack/oxygen(P)
P.back.layer = ABOVE_HUD_LAYER
P.back.plane = ABOVE_HUD_PLANE
P.update_inv_back()
@@ -205,7 +205,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
// All access ID
//
if("hsbaaid")
- var/obj/item/weapon/card/id/gold/ID = new(usr.loc)
+ var/obj/item/card/id/gold/ID = new(usr.loc)
ID.registered_name = usr.real_name
ID.assignment = "Sandbox"
ID.access = get_all_accesses()
@@ -218,7 +218,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
if("hsbrcd")
if(!GLOB.hsboxspawn) return
- new/obj/item/weapon/construction/rcd/combat(usr.loc)
+ new/obj/item/construction/rcd/combat(usr.loc)
//
// New sandbox airlock maker
@@ -250,7 +250,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
if(!reaginfo)
reaginfo = "Reagent Containers (Clothing) (Other Items) " - var/list/all_items = subtypesof(/obj/item/weapon/reagent_containers) + var/list/all_items = subtypesof(/obj/item/reagent_containers) for(var/typekey in spawn_forbidden) all_items -= typesof(typekey) for(var/O in reverseRange(all_items)) @@ -264,7 +264,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE) if(!objinfo) objinfo = "Other Items (Clothing) (Reagent Containers) " - var/list/all_items = subtypesof(/obj/item/) - typesof(/obj/item/clothing) - typesof(/obj/item/weapon/reagent_containers) + var/list/all_items = subtypesof(/obj/item/) - typesof(/obj/item/clothing) - typesof(/obj/item/reagent_containers) for(var/typekey in spawn_forbidden) all_items -= typesof(typekey) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 6f1ae8e1dd..59e4db9893 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -3,7 +3,7 @@ ///////////////////////////Veil Render////////////////////// -/obj/item/weapon/veilrender +/obj/item/veilrender name = "veil render" desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast city." icon = 'icons/obj/wizard.dmi' @@ -20,7 +20,7 @@ var/rend_desc = "You should run now." var/spawn_fast = 0 //if 1, ignores checking for mobs on loc before spawning -/obj/item/weapon/veilrender/attack_self(mob/user) +/obj/item/veilrender/attack_self(mob/user) if(charges > 0) new /obj/effect/rend(get_turf(user), spawn_type, spawn_amt, rend_desc, spawn_fast) charges-- @@ -57,14 +57,14 @@ qdel(src) /obj/effect/rend/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/nullrod)) + if(istype(I, /obj/item/nullrod)) user.visible_message("[user] seals \the [src] with \the [I].") qdel(src) return else return ..() -/obj/item/weapon/veilrender/vealrender +/obj/item/veilrender/vealrender name = "veal render" desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast farm." spawn_type = /mob/living/simple_animal/cow @@ -72,7 +72,7 @@ activate_descriptor = "hunger" rend_desc = "Reverberates with the sound of ten thousand moos." -/obj/item/weapon/veilrender/honkrender +/obj/item/veilrender/honkrender name = "honk render" desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast circus." spawn_type = /mob/living/simple_animal/hostile/retaliate/clown @@ -101,7 +101,7 @@ return /////////////////////////////////////////Scrying/////////////////// -/obj/item/weapon/scrying +/obj/item/scrying name = "scrying orb" desc = "An incandescent orb of otherworldly energy, staring into it gives you vision beyond mortal means." icon = 'icons/obj/projectiles.dmi' @@ -113,7 +113,7 @@ force = 15 hitsound = 'sound/items/welder2.ogg' -/obj/item/weapon/scrying/attack_self(mob/user) +/obj/item/scrying/attack_self(mob/user) to_chat(user, "You can see...everything!") visible_message("[user] stares into [src], their eyes glazing over.") user.ghostize(1) @@ -191,24 +191,24 @@ H.equip_to_slot_or_del(new hat(H), slot_head) H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), slot_shoes) - H.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(H)) - H.put_in_hands_or_del(new /obj/item/weapon/claymore(H)) - H.equip_to_slot_or_del(new /obj/item/weapon/twohanded/spear(H), slot_back) + H.put_in_hands_or_del(new /obj/item/shield/riot/roman(H)) + H.put_in_hands_or_del(new /obj/item/claymore(H)) + H.equip_to_slot_or_del(new /obj/item/twohanded/spear(H), slot_back) /////////////////////Multiverse Blade//////////////////// -/obj/item/weapon/multisword +/obj/item/multisword name = "multiverse sword" desc = "A weapon capable of conquering the universe and beyond. Activate it to summon copies of yourself from others dimensions to fight by your side." - icon = 'icons/obj/weapons.dmi' + icon = 'icons/obj/items_and_weapons.dmi' icon_state = "multiverse" item_state = "multiverse" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' hitsound = 'sound/weapons/bladeslice.ogg' - flags = CONDUCT + flags_1 = CONDUCT_1 slot_flags = SLOT_BELT sharpness = IS_SHARP force = 20 @@ -220,16 +220,16 @@ var/assigned = "unassigned" var/static/list/multiverse = list() -/obj/item/weapon/multisword/New() +/obj/item/multisword/New() ..() multiverse += src -/obj/item/weapon/multisword/Destroy() +/obj/item/multisword/Destroy() multiverse.Remove(src) return ..() -/obj/item/weapon/multisword/attack_self(mob/user) +/obj/item/multisword/attack_self(mob/user) if(user.mind.special_role == "apprentice") to_chat(user, "You know better than to touch your teacher's stuff.") return @@ -265,7 +265,7 @@ spawn_copy(C, get_turf(user.loc), user) to_chat(user, "The sword flashes, and you find yourself face to face with...you!") cooldown = world.time + 400 - for(var/obj/item/weapon/multisword/M in multiverse) + for(var/obj/item/multisword/M in multiverse) if(M.assigned == assigned) M.cooldown = cooldown @@ -275,7 +275,7 @@ to_chat(user, "[src] is recharging! Keep in mind it shares a cooldown with the swords wielded by your copies.") -/obj/item/weapon/multisword/proc/spawn_copy(var/client/C, var/turf/T, mob/user) +/obj/item/multisword/proc/spawn_copy(var/client/C, var/turf/T, mob/user) var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) C.prefs.copy_to(M, icon_updates=0) M.key = C.key @@ -298,9 +298,9 @@ M.dna.update_dna_identity() equip_copy(M) -/obj/item/weapon/multisword/proc/equip_copy(var/mob/living/carbon/human/M) +/obj/item/multisword/proc/equip_copy(var/mob/living/carbon/human/M) - var/obj/item/weapon/multisword/sword = new /obj/item/weapon/multisword + var/obj/item/multisword/sword = new /obj/item/multisword sword.assigned = assigned sword.faction = list("[assigned]") @@ -321,7 +321,7 @@ M.equip_to_slot_or_del(new hat(M), slot_head) M.equip_to_slot_or_del(new /obj/item/clothing/under/roman(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(M), slot_shoes) - M.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(M)) + M.put_in_hands_or_del(new /obj/item/shield/riot/roman(M)) M.put_in_hands_or_del(sword) if("wizard") @@ -380,7 +380,7 @@ M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask) - M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_l_store) + M.equip_to_slot_or_del(new /obj/item/bikehorn(M), slot_l_store) M.put_in_hands_or_del(sword) if("killer") @@ -391,8 +391,8 @@ M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_store) - M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store) + M.equip_to_slot_or_del(new /obj/item/kitchen/knife(M), slot_l_store) + M.equip_to_slot_or_del(new /obj/item/scalpel(M), slot_r_store) M.put_in_hands_or_del(sword) for(var/obj/item/carried_item in M.get_equipped_items()) carried_item.add_mob_blood(M) @@ -439,7 +439,7 @@ M.update_body_parts() - var/obj/item/weapon/card/id/W = new /obj/item/weapon/card/id + var/obj/item/card/id/W = new /obj/item/card/id W.icon_state = "centcom" W.access += ACCESS_MAINT_TUNNELS W.assignment = "Multiverse Traveller" @@ -474,7 +474,7 @@ to_chat(target, "You feel a stabbing pain in [parse_zone(user.zone_selected)]!") target.Knockdown(40) GiveHint(target) - else if(istype(I, /obj/item/weapon/bikehorn)) + else if(istype(I, /obj/item/bikehorn)) to_chat(target, "HONK") SEND_SOUND(target, 'sound/items/airhorn.ogg') target.adjustEarDamage(0,3) diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 69c26cdb43..2d18c1f9e9 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -19,7 +19,7 @@ /datum/spellbook_entry/proc/IsAvailible() // For config prefs / gamemode restrictions - these are round applied return 1 -/datum/spellbook_entry/proc/CanBuy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) // Specific circumstances +/datum/spellbook_entry/proc/CanBuy(mob/living/carbon/human/user,obj/item/spellbook/book) // Specific circumstances if(book.uses " return . -/obj/item/weapon/spellbook +/obj/item/spellbook name = "spell book" desc = "An unearthly tome that glows with power." icon = 'icons/obj/library.dmi' @@ -537,7 +537,7 @@ throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_TINY - persistence_replacement = /obj/item/weapon/spellbook/oneuse/random + persistence_replacement = /obj/item/spellbook/oneuse/random var/uses = 10 var/temp = null var/tab = null @@ -545,18 +545,18 @@ var/list/datum/spellbook_entry/entries = list() var/list/categories = list() -/obj/item/weapon/spellbook/examine(mob/user) +/obj/item/spellbook/examine(mob/user) ..() if(owner) to_chat(user, "There is a small signature on the front cover: \"[owner]\".") else to_chat(user, "It appears to have no author.") -/obj/item/weapon/spellbook/Initialize() +/obj/item/spellbook/Initialize() ..() prepare_spells() -/obj/item/weapon/spellbook/proc/prepare_spells() +/obj/item/spellbook/proc/prepare_spells() var/entry_types = subtypesof(/datum/spellbook_entry) - /datum/spellbook_entry/item - /datum/spellbook_entry/summon for(var/T in entry_types) var/datum/spellbook_entry/E = new T @@ -567,9 +567,9 @@ qdel(E) tab = categories[1] -/obj/item/weapon/spellbook/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/antag_spawner/contract)) - var/obj/item/weapon/antag_spawner/contract/contract = O +/obj/item/spellbook/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/antag_spawner/contract)) + var/obj/item/antag_spawner/contract/contract = O if(contract.used) to_chat(user, "The contract has been used, you can't get your points back now!") else @@ -579,7 +579,7 @@ if(!isnull(CT.limit)) CT.limit++ qdel(O) - else if(istype(O, /obj/item/weapon/antag_spawner/slaughter_demon)) + else if(istype(O, /obj/item/antag_spawner/slaughter_demon)) to_chat(user, "On second thought, maybe summoning a demon is a bad idea. You refund your points.") uses++ for(var/datum/spellbook_entry/item/bloodbottle/BB in entries) @@ -587,7 +587,7 @@ BB.limit++ qdel(O) -/obj/item/weapon/spellbook/proc/GetCategoryHeader(category) +/obj/item/spellbook/proc/GetCategoryHeader(category) var/dat = "" switch(category) if("Offensive") @@ -617,7 +617,7 @@ dat += "These powerful spells change the very fabric of reality. Not always in your favour. " return dat -/obj/item/weapon/spellbook/proc/wrap(content) +/obj/item/spellbook/proc/wrap(content) var/dat = "" dat +=" |