Hitby refactor (#19624)

Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
This commit is contained in:
Fluffy
2024-07-28 20:52:08 +00:00
committed by GitHub
parent b84acb8e03
commit a3a4d46fa7
510 changed files with 2282 additions and 1584 deletions
+1 -1
View File
@@ -27,5 +27,5 @@ They should also be used for when you want to effect the ENTIRE mob, like having
/obj/aura/bullet_act(obj/projectile/P, def_zone)
return FALSE
/obj/aura/hitby(atom/movable/M, speed)
/obj/aura/hitby(atom/movable/hitting_atom, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
return FALSE
+5 -4
View File
@@ -44,13 +44,14 @@
bound_width = 96
bound_height = 96
/obj/effect/effect/smoke/chem/Crossed(atom/movable/AM)
/obj/effect/effect/smoke/chem/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
..()
if(!istype(AM, /obj/effect/effect/smoke/chem))
if(istype(AM, /obj/item/reagent_containers) && !AM.is_open_container())
if(!istype(arrived, /obj/effect/effect/smoke/chem))
if(istype(arrived, /obj/item/reagent_containers) && !arrived.is_open_container())
return
else
reagents.splash(AM, splash_amount, copy = 1)
reagents.splash(arrived, splash_amount, copy = 1)
/obj/effect/effect/smoke/chem/proc/initial_splash()
for(var/turf/T in view(1, src))
+11 -3
View File
@@ -24,6 +24,12 @@
addtimer(CALLBACK(src, PROC_REF(tick)), 3 + metal * 3)
addtimer(CALLBACK(src, PROC_REF(post)), solid_time)
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
AddElement(/datum/element/connect_loc, loc_connections)
/obj/effect/effect/foam/proc/tick()
process()
checkReagents()
@@ -77,11 +83,13 @@
QDEL_IN(src, 5)
/obj/effect/effect/foam/Crossed(var/atom/movable/AM)
/obj/effect/effect/foam/proc/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
SIGNAL_HANDLER
if(metal)
return
if(istype(AM, /mob/living))
var/mob/living/M = AM
if(istype(arrived, /mob/living))
var/mob/living/M = arrived
M.slip("the foam", 6)
/obj/effect/effect/foam/spray
@@ -59,6 +59,12 @@
if (dries)
animate(src, color = "#000000", time = drytime, loop = 0, flags = ANIMATION_RELATIVE)
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
AddElement(/datum/element/connect_loc, loc_connections)
/obj/effect/decal/cleanable/blood/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
if(dries && world.time > (bleed_time + drytime))
name = dryname
@@ -75,9 +81,14 @@
basecolor = get_random_colour(1)
color = basecolor
/obj/effect/decal/cleanable/blood/Crossed(mob/living/carbon/human/perp)
if (!istype(perp))
/obj/effect/decal/cleanable/blood/proc/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
SIGNAL_HANDLER
if (!istype(arrived, /mob/living/carbon/human))
return
var/mob/living/carbon/human/perp = arrived
if(dries && world.time > (bleed_time + drytime))
amount = 0
if(amount < 1)
+11 -4
View File
@@ -114,16 +114,23 @@ steam.start() -- spawns the effect
time_to_live = duration
addtimer(CALLBACK(src, PROC_REF(kill)), time_to_live)
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
AddElement(/datum/element/connect_loc, loc_connections)
/obj/effect/effect/smoke/proc/kill()
animate(src, alpha = 0, time = 2 SECONDS, easing = QUAD_EASING)
set_opacity(FALSE)
QDEL_IN(src, 2.5 SECONDS)
/obj/effect/effect/smoke/Crossed(mob/living/carbon/M as mob )
..()
if(istype(M))
affect(M)
/obj/effect/effect/smoke/proc/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
SIGNAL_HANDLER
if(istype(arrived, /mob/living/carbon))
affect(arrived)
/obj/effect/effect/smoke/proc/affect(var/mob/living/carbon/M)
if (istype(M))
+10 -2
View File
@@ -51,6 +51,12 @@
precision = precise
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
AddElement(/datum/element/connect_loc, loc_connections)
/obj/effect/portal/Destroy()
if(istype(creator, /obj/item/hand_tele))
var/obj/item/hand_tele/HT = creator
@@ -63,9 +69,11 @@
if(does_teleport)
teleport(bumped_atom)
/obj/effect/portal/Crossed(AM)
/obj/effect/portal/proc/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
SIGNAL_HANDLER
if(does_teleport)
teleport(AM)
teleport(arrived)
/obj/effect/portal/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/bluespace_neutralizer))
+196 -65
View File
@@ -3,82 +3,173 @@
/obj/effect/step_trigger
var/affect_ghosts = 0
var/stopper = 1 // stops throwers
icon = 'icons/mob/screen/generic.dmi'
icon_state = "x2"
invisibility = 101 // nope cant see this shit
anchored = 1
var/mobs_only = FALSE
invisibility = INVISIBILITY_ABSTRACT // nope cant see this shit
anchored = TRUE
/obj/effect/step_trigger/proc/Trigger(var/atom/movable/A)
/obj/effect/step_trigger/Initialize(mapload)
. = ..()
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
AddElement(/datum/element/connect_loc, loc_connections)
/obj/effect/step_trigger/proc/Trigger(atom/movable/A)
return 0
/obj/effect/step_trigger/Crossed(H as mob|obj)
..()
if(!H)
/obj/effect/step_trigger/proc/on_entered(datum/source, H as mob|obj)
SIGNAL_HANDLER
if(!H || H == src)
return
if(istype(H, /mob/abstract/observer) && !affect_ghosts)
if(isobserver(H) && !affect_ghosts)
return
Trigger(H)
if(!ismob(H) && mobs_only)
return
INVOKE_ASYNC(src, PROC_REF(Trigger), H)
/obj/effect/step_trigger/singularity_act()
return
/obj/effect/step_trigger/singularity_pull()
return
/* Sends a message to mob when triggered*/
/obj/effect/step_trigger/message
var/message //the message to give to the mob
var/once = 1
mobs_only = TRUE
/obj/effect/step_trigger/message/Trigger(mob/M)
if(M.client)
to_chat(M, SPAN_INFO("[message]"))
if(once)
qdel(src)
/* Tosses things in a certain direction */
// /obj/effect/step_trigger/thrower
// var/tiles = 3 // if 0: forever until atom hits a stopper
// var/immobilize = 1 // if nonzero: prevents mobs from moving while they're being flung
// var/speed = 1 // delay of movement
// var/facedir = 0 // if 1: atom faces the direction of movement
// var/nostop = 0 // if 1: will only be stopped by teleporters
// var/list/affecting = list()
// /obj/effect/step_trigger/thrower/Trigger(var/atom/A)
// if(!A || !istype(A, /atom/movable))
// return
// var/atom/movable/AM = A
// var/curtiles = 0
// var/stopthrow = 0
// for(var/obj/effect/step_trigger/thrower/T in orange(2, src))
// if(AM in T.affecting)
// return
// if(ismob(AM))
// var/mob/M = AM
// if(immobilize)
// M.canmove = 0
// affecting.Add(AM)
// while(AM && !stopthrow)
// if(tiles)
// if(curtiles >= tiles)
// break
// if(AM.z != src.z)
// break
// curtiles++
// sleep(speed)
// // Calculate if we should stop the process
// if(!nostop)
// for(var/obj/effect/step_trigger/T in get_step(AM, dir))
// if(T.stopper && T != src)
// stopthrow = 1
// else
// for(var/obj/effect/step_trigger/teleporter/T in get_step(AM, dir))
// if(T.stopper)
// stopthrow = 1
// if(AM)
// var/predir = AM.dir
// step(AM, dir)
// if(!facedir)
// AM.set_dir(predir)
// affecting.Remove(AM)
// if(ismob(AM))
// var/mob/M = AM
// if(immobilize)
// M.canmove = 1
/* Tosses things in a certain direction */
/obj/effect/step_trigger/thrower
var/tiles = 3 // if 0: forever until atom hits a stopper
var/direction = SOUTH // the direction of throw
var/tiles = 3 // if 0: forever until atom hits a stopper
var/immobilize = 1 // if nonzero: prevents mobs from moving while they're being flung
var/speed = 1 // delay of movement
var/speed = 1 // delay of movement
var/facedir = 0 // if 1: atom faces the direction of movement
var/nostop = 0 // if 1: will only be stopped by teleporters
///List of moving atoms mapped to their inital direction
var/list/affecting = list()
/obj/effect/step_trigger/thrower/Trigger(var/atom/A)
if(!A || !istype(A, /atom/movable))
/obj/effect/step_trigger/thrower/Trigger(atom/A)
if(!A || !ismovable(A))
return
var/atom/movable/AM = A
var/curtiles = 0
var/stopthrow = 0
for(var/obj/effect/step_trigger/thrower/T in orange(2, src))
if(AM in T.affecting)
return
if(ismob(AM))
var/mob/M = AM
if(immobilize)
M.canmove = 0
if(immobilize)
// ADD_TRAIT(AM, TRAIT_IMMOBILIZED, REF(src))
if(ismob(AM))
var/mob/M = AM
M.canmove = FALSE
affecting.Add(AM)
while(AM && !stopthrow)
if(tiles)
if(curtiles >= tiles)
break
if(AM.z != src.z)
break
affecting[AM] = AM.dir
var/datum/move_loop/loop = GLOB.move_manager.move(AM, direction, speed, tiles ? tiles * speed : INFINITY)
RegisterSignal(loop, COMSIG_MOVELOOP_PREPROCESS_CHECK, PROC_REF(pre_move))
RegisterSignal(loop, COMSIG_MOVELOOP_POSTPROCESS, PROC_REF(post_move))
RegisterSignal(loop, COMSIG_QDELETING, PROC_REF(set_to_normal))
curtiles++
/obj/effect/step_trigger/thrower/proc/pre_move(datum/move_loop/source)
SIGNAL_HANDLER
var/atom/movable/being_moved = source.moving
affecting[being_moved] = being_moved.dir
sleep(speed)
/obj/effect/step_trigger/thrower/proc/post_move(datum/move_loop/source)
SIGNAL_HANDLER
var/atom/movable/being_moved = source.moving
if(!facedir)
being_moved.set_dir(affecting[being_moved])
if(being_moved.z != z)
qdel(source)
return
if(!nostop)
for(var/obj/effect/step_trigger/T in get_turf(being_moved))
if(T.stopper && T != src)
qdel(source)
return
else
for(var/obj/effect/step_trigger/teleporter/T in get_turf(being_moved))
if(T.stopper)
qdel(source)
return
// Calculate if we should stop the process
if(!nostop)
for(var/obj/effect/step_trigger/T in get_step(AM, dir))
if(T.stopper && T != src)
stopthrow = 1
else
for(var/obj/effect/step_trigger/teleporter/T in get_step(AM, dir))
if(T.stopper)
stopthrow = 1
if(AM)
var/predir = AM.dir
step(AM, dir)
if(!facedir)
AM.set_dir(predir)
affecting.Remove(AM)
if(ismob(AM))
var/mob/M = AM
if(immobilize)
M.canmove = 1
/obj/effect/step_trigger/thrower/proc/set_to_normal(datum/move_loop/source)
SIGNAL_HANDLER
var/atom/movable/being_moved = source.moving
affecting -= being_moved
// REMOVE_TRAIT(being_moved, TRAIT_IMMOBILIZED, REF(src))
if(ismob(being_moved))
var/mob/M = being_moved
M.canmove = TRUE
/obj/effect/step_trigger/thrower/shuttle
icon_state = "dir_arrow"
@@ -125,16 +216,15 @@
/* Instant teleporter */
/obj/effect/step_trigger/teleporter
var/teleport_x = 0 // teleportation coordinates (if one is null, then no teleport!)
var/teleport_x = 0 // teleportation coordinates (if one is null, then no teleport!)
var/teleport_y = 0
var/teleport_z = 0
/obj/effect/step_trigger/teleporter/Trigger(var/atom/movable/A)
/obj/effect/step_trigger/teleporter/Trigger(atom/movable/A)
if(teleport_x && teleport_y && teleport_z)
A.x = teleport_x
A.y = teleport_y
A.z = teleport_z
var/turf/T = locate(teleport_x, teleport_y, teleport_z)
A.forceMove(T)
/* Random teleporter, teleports atoms to locations ranging from teleport_x - teleport_x_offset, etc */
@@ -143,15 +233,56 @@
var/teleport_y_offset = 0
var/teleport_z_offset = 0
/obj/effect/step_trigger/teleporter/random/Trigger(var/atom/movable/A)
/obj/effect/step_trigger/teleporter/random/Trigger(atom/movable/A)
if(teleport_x && teleport_y && teleport_z)
if(teleport_x_offset && teleport_y_offset && teleport_z_offset)
if(isliving(A))
var/mob/M = A
M.visible_message(FONT_LARGE(SPAN_WARNING("\The [A] blinks out of reality!")), FONT_LARGE(SPAN_WARNING("You feel your stomach churn as you slip into bluespace!")))
A.x = rand(teleport_x, teleport_x_offset)
A.y = rand(teleport_y, teleport_y_offset)
A.z = rand(teleport_z, teleport_z_offset)
if(isliving(A))
var/mob/M = A
M.visible_message(FONT_LARGE(SPAN_WARNING("\The [A] blinks into reality!")), FONT_LARGE(SPAN_WARNING("You feel your stomach turn as you get thrown out of bluespace!")))
var/turf/T = locate(rand(teleport_x, teleport_x_offset), rand(teleport_y, teleport_y_offset), rand(teleport_z, teleport_z_offset))
if (T)
A.forceMove(T)
/* Teleports atoms directly to an offset, no randomness, looping hallways! */
/obj/effect/step_trigger/teleporter/offset
var/teleport_x_offset = 0
var/teleport_y_offset = 0
/obj/effect/step_trigger/teleporter/offset/on_entered(datum/source, H as mob|obj, atom/old_loc)
if(!old_loc?.Adjacent(loc)) // prevents looping, if we were teleported into this then the old loc is usually not adjacent
return
return ..()
/obj/effect/step_trigger/teleporter/offset/Trigger(atom/movable/poor_soul)
var/turf/destination = locate(x + teleport_x_offset, y + teleport_y_offset, z)
if(!destination)
return
poor_soul.forceMove(destination)
var/mob/living/living_soul = poor_soul
if(istype(living_soul) && living_soul.client)
living_soul.client.move_delay = 0
/* Simple sound player, Mapper friendly! */
/obj/effect/step_trigger/sound_effect
var/sound //eg. path to the sound, inside '' eg: 'growl.ogg'
var/volume = 100
var/freq_vary = 1 //Should the frequency of the sound vary?
var/extra_range = 0 // eg World.view = 7, extra_range = 1, 7+1 = 8, 8 turfs radius
var/happens_once = 0
var/triggerer_only = 0 //Whether the triggerer is the only person who hears this
/obj/effect/step_trigger/sound_effect/Trigger(atom/movable/A)
var/turf/T = get_turf(A)
if(!T)
return
if(triggerer_only && ismob(A))
var/mob/B = A
B.playsound_local(T, sound, volume, freq_vary)
else
playsound(T, sound, volume, freq_vary, extra_range)
if(happens_once)
qdel(src)
+19 -7
View File
@@ -1,7 +1,7 @@
/obj/item
name = "item"
icon = 'icons/obj/items.dmi'
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
blocks_emissive = EMISSIVE_BLOCK_GENERIC
///This saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
@@ -341,15 +341,15 @@
/obj/item/get_examine_text(mob/user, distance, is_adjacent, infix, suffix, get_extended = FALSE)
var/size
switch(src.w_class)
if (ITEMSIZE_HUGE to INFINITY)
if (WEIGHT_CLASS_HUGE to INFINITY)
size = "huge"
if (ITEMSIZE_LARGE to ITEMSIZE_HUGE)
if (WEIGHT_CLASS_BULKY to WEIGHT_CLASS_HUGE)
size = "bulky"
if (ITEMSIZE_NORMAL to ITEMSIZE_LARGE)
if (WEIGHT_CLASS_NORMAL to WEIGHT_CLASS_BULKY)
size = "normal-sized"
if (ITEMSIZE_SMALL to ITEMSIZE_NORMAL)
if (WEIGHT_CLASS_SMALL to WEIGHT_CLASS_NORMAL)
size = "small"
if (0 to ITEMSIZE_SMALL)
if (0 to WEIGHT_CLASS_SMALL)
size = "tiny"
//Changed this switch to ranges instead of tiered values, to cope with granularity and also
//things outside its range ~Nanako
@@ -450,6 +450,13 @@
return 0
/obj/item/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(QDELETED(hit_atom))
return
if(SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_IMPACT, hit_atom, throwingdatum) & COMPONENT_MOVABLE_IMPACT_NEVERMIND)
return
if(SEND_SIGNAL(hit_atom, COMSIG_ATOM_PREHITBY, src, throwingdatum) & COMSIG_HIT_PREVENTED)
return
if(isliving(hit_atom)) //Living mobs handle hit sounds differently.
var/mob/living/L = hit_atom
if(L.in_throw_mode)
@@ -467,7 +474,12 @@
playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1)
else
playsound(src, drop_sound, YEET_SOUND_VOLUME)
return ..()
var/itempush = TRUE
if(w_class < WEIGHT_CLASS_NORMAL)
itempush = FALSE //too light to push anything
return hit_atom.hitby(src, 0, itempush, throwingdatum=throwingdatum)
/**
* Called when an item is removed from a `/mob` inventory (including hands and whatnot),
+2 -2
View File
@@ -4,7 +4,7 @@
desc = "Special air bubble designed to protect people inside of it from decompressed environments. Has an integrated cooling unit to preserve a stable temperature inside. Requires a power cell to operate."
icon = 'icons/obj/airbubble.dmi'
icon_state = "airbubble_fact_folded"
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
var/used = FALSE
var/ripped = FALSE
var/zipped = FALSE
@@ -215,7 +215,7 @@
if(!isnull(internal_tank))
internal_tank.forceMove(bag)
internal_tank = null
bag.w_class = ITEMSIZE_LARGE
bag.w_class = WEIGHT_CLASS_BULKY
bag.desc = "Special air bubble designed to protect people inside of it from decompressed environments. Has an integrated cooling unit to preserve a stable temperature inside. Requires a power cell to operate."
if(syndie)
+1 -1
View File
@@ -4,7 +4,7 @@
icon = 'icons/obj/item/tools/blueprints.dmi'
icon_state = "blueprints"
attack_verb = list("attacked", "bapped", "hit")
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
var/list/valid_z_levels = list()
var/area_prefix
///Will these blueprints display the wire schema?
+1 -1
View File
@@ -5,7 +5,7 @@
desc = "A folded bag designed for the storage and transportation of cadavers."
icon = 'icons/obj/bodybag.dmi'
icon_state = "bodybag_folded"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
drop_sound = 'sound/items/drop/cloth.ogg'
pickup_sound = 'sound/items/pickup/cloth.ogg'
var/deploy_type = /obj/structure/closet/body_bag
+3 -3
View File
@@ -132,7 +132,7 @@
icon_state = "tent"
item_state = "tent"
contained_sprite = TRUE
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
color = "#58a178"
var/width = 2
var/length = 3
@@ -142,7 +142,7 @@
/obj/item/tent/Initialize()
. = ..()
w_class = min(ceil(width * length / 1.5), ITEMSIZE_IMMENSE) // 2x2 = ITEMSIZE_NORMAL
w_class = min(ceil(width * length / 1.5), WEIGHT_CLASS_GIGANTIC) // 2x2 = WEIGHT_CLASS_NORMAL
desc += "\nThis one is [width] x [length] in size."
/obj/item/tent/Destroy()
@@ -307,7 +307,7 @@
icon_state = "sleepingbag"
item_state = "sleepingbag"
contained_sprite = TRUE
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
/obj/item/sleeping_bag/Initialize(mapload, ...)
. = ..()
+1 -1
View File
@@ -121,7 +121,7 @@
item_state = "powder"
amount_per_transfer_from_this = 5
possible_transfer_amounts = 5
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
volume = 50
/obj/item/reagent_containers/powder/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
+4 -4
View File
@@ -11,7 +11,7 @@
contained_sprite = TRUE
force = 11
throwforce = 6
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
origin_tech = list(TECH_BIO = 4, TECH_POWER = 2)
matter = list(MATERIAL_STEEL = 5000, MATERIAL_PLASTIC = 2000, MATERIAL_GLASS = 1500, MATERIAL_ALUMINIUM = 1000)
action_button_name = "Toggle Paddles"
@@ -184,7 +184,7 @@
desc = "A belt-equipped defibrillator that can be rapidly deployed."
icon_state = "defibcompact"
item_state = "defibcompact"
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
slot_flags = SLOT_BELT
origin_tech = list(TECH_BIO = 5, TECH_POWER = 3)
@@ -216,7 +216,7 @@
gender = PLURAL
force = 2
throwforce = 6
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
var/safety = TRUE //if you can zap people with the paddles on harm mode
var/combat = FALSE //If it can be used to revive people wearing thick clothing (e.g. spacesuits)
@@ -593,7 +593,7 @@
Shockpaddles that are linked to a base unit
*/
/obj/item/shockpaddles/linked
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
var/obj/item/defibrillator/base_unit
/obj/item/shockpaddles/linked/Initialize(mapload, obj/item/defibrillator/defib)
+1 -1
View File
@@ -3,7 +3,7 @@
icon = 'icons/obj/pai.dmi'
icon_state = "aicard" // aicard-full
item_state = "electronic"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
slot_flags = SLOT_BELT
origin_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
var/flush = 0
@@ -1,7 +1,7 @@
/obj/item/device/augment_implanter
name = "augment implanter"
desc = "A complex single use injector that is used to implant augments without the need for surgery."
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
origin_tech = list(TECH_BIO = 5, TECH_MATERIAL = 2)
icon = 'icons/obj/guns/decloner.dmi'
icon_state = "decloner"
+1 -1
View File
@@ -13,7 +13,7 @@
icon_state = "med_harness"
item_state = "med_harness"
contained_sprite = TRUE
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
origin_tech = list(TECH_MAGNET = 5, TECH_BIO = 3)
slot_flags = SLOT_OCLOTHING
var/panel_open = FALSE
@@ -6,7 +6,7 @@
obj_flags = OBJ_FLAG_CONDUCTABLE
force = 11
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throwforce = 5.0
throw_range = 15
throw_speed = 3
@@ -9,7 +9,7 @@
throwforce = 5
throw_speed = 1
throw_range = 5
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
origin_tech = list(TECH_ILLEGAL = 4, TECH_MAGNET = 4)
var/can_use = TRUE
var/obj/effect/dummy/chameleon/active_dummy = null
@@ -7,7 +7,7 @@
throwforce = 5
throw_speed = 1
throw_range = 5
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
origin_tech = list(
TECH_ESOTERIC = 3,
TECH_MAGNET = 4
+1 -1
View File
@@ -6,7 +6,7 @@
icon_state = "hacktool-g"
obj_flags = OBJ_FLAG_CONDUCTABLE
force = 11
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throwforce = 5
throw_range = 15
throw_speed = 3
+1 -1
View File
@@ -1,7 +1,7 @@
/obj/item/device/dociler
name = "dociler"
desc = "A complex single use recharging injector that spreads a complex neurological serum that makes animals docile and friendly. Somewhat."
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
origin_tech = list(TECH_BIO = 5, TECH_MATERIAL = 2)
// To-do track down where the hell this sprite went?
icon = 'icons/obj/guns/decloner.dmi'
@@ -5,7 +5,7 @@
icon_state = "drillpointer"
item_state = "binoculars"
slot_flags = SLOT_BELT
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
var/has_dropped = 0 // Counter of how many times the targeter has been used
var/drop_amount = 2 // How many times can this item be used?
+1 -1
View File
@@ -5,7 +5,7 @@
icon_state = "flash"
item_state = "flash"
throwforce = 5
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throw_speed = 4
throw_range = 10
obj_flags = OBJ_FLAG_CONDUCTABLE
+1 -1
View File
@@ -4,7 +4,7 @@
icon = 'icons/obj/geiger_counter.dmi'
icon_state = "geiger_off"
item_state = "multitool"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
action_button_name = "Toggle geiger counter"
matter = list(MATERIAL_PLASTIC = 100, DEFAULT_WALL_MATERIAL = 100, MATERIAL_GLASS = 50)
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
@@ -6,7 +6,7 @@
item_state = "hearing_aid"
contained_sprite = TRUE
slot_flags = SLOT_EARS
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
/obj/item/device/hearing_aid/black
icon_state = "hearing_aid-b"
@@ -6,7 +6,7 @@
icon_state = "holowarrant"
item_state = "holowarrant"
throwforce = 5
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throw_speed = 4
throw_range = 10
obj_flags = OBJ_FLAG_CONDUCTABLE
@@ -8,7 +8,7 @@
item_state = "pen"
var/pointer_icon_state
slot_flags = SLOT_BELT
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
var/turf/pointer_loc
var/obj/item/stock_parts/micro_laser/diode //cant use the laser without it
@@ -2,7 +2,7 @@
name = "flare"
desc = "A red standard-issue flare. There are instructions on the side reading 'twist cap off, make light'."
desc_info = "Use this item in your hand, to turn on the light."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
brightness_on = 3 // Pretty bright.
light_power = 4
light_color = LIGHT_COLOR_FLARE //"#E58775"
@@ -87,7 +87,7 @@
name = "torch"
desc = "A rustic source of light."
desc_info = "Click on a source of flame, to light the torch."
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
brightness_on = 2
light_power = 3
light_color = LIGHT_COLOR_FIRE
@@ -152,7 +152,7 @@
/obj/item/torch
name = "torch handle"
desc = "A torch handle without its head."
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
icon_state = "torch-empty"
item_state = "torch-empty"
icon = 'icons/obj/lighting.dmi'
@@ -9,7 +9,7 @@
)
icon_state = "flashlight"
item_state = "flashlight"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT
light_color = LIGHT_COLOR_HALOGEN
@@ -311,7 +311,7 @@
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_EARS
brightness_on = 2
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
light_wedge = LIGHT_OMNI
/obj/item/device/flashlight/drone
@@ -322,7 +322,7 @@
obj_flags = OBJ_FLAG_CONDUCTABLE
brightness_on = 2
efficiency_modifier = 2
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
/obj/item/device/flashlight/heavy
name = "heavy duty flashlight"
@@ -330,7 +330,7 @@
icon_state = "heavyflashlight"
item_state = "heavyflashlight"
brightness_on = 4
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
uv_intensity = 60
matter = list(MATERIAL_PLASTIC = 100, MATERIAL_GLASS = 70)
light_wedge = LIGHT_SEMI
@@ -346,7 +346,7 @@
force = 9
brightness_on = 5
efficiency_modifier = 0.8
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
uv_intensity = 70
attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed")
matter = list(MATERIAL_ALUMINIUM = 200, MATERIAL_GLASS = 100)
@@ -371,7 +371,7 @@
icon = 'icons/obj/lighting.dmi'
icon_state = "floor1" //not a slime extract sprite but... something close enough!
item_state = "slime"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
brightness_on = 6
uv_intensity = 200
on = TRUE //Bio-luminesence has one setting, on.
@@ -388,7 +388,7 @@
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_HEAD | SLOT_EARS
brightness_on = 2
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
light_wedge = LIGHT_WIDE
body_parts_covered = 0
@@ -1,7 +1,7 @@
/obj/item/device/flashlight/flare/glowstick
name = "green glowstick"
desc = "A green military-grade glowstick."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
brightness_on = 1.2
flashlight_power = 2
light_color = "#49F37C"
@@ -8,7 +8,7 @@
center_of_mass = list("x" = 13,"y" = 11)
brightness_on = 4
flashlight_power = 1.0
w_class = ITEMSIZE_HUGE
w_class = WEIGHT_CLASS_HUGE
obj_flags = OBJ_FLAG_CONDUCTABLE
uv_intensity = 100
power_use = FALSE
@@ -3,7 +3,7 @@
desc = "A marshalling wand, used to direct air or space faring vessels during takeoff and landing."
icon_state = "marshallingwand"
item_state = "marshallingwand"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
light_color = LIGHT_COLOR_RED
light_wedge = LIGHT_OMNI
brightness_on = 2
@@ -9,7 +9,7 @@
// Copied from debugger.dm
obj_flags = OBJ_FLAG_CONDUCTABLE
force = 11
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throwforce = 5.0
throw_range = 15
throw_speed = 3
@@ -62,7 +62,7 @@
desc = "A specialised light replacer which stores more lights, refills faster from boxes, and sucks up broken bulbs. Empty into a disposal or trashbag when full!"
icon_state = "adv_lightreplacer"
item_state = "adv_lightreplacer"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
store_broken = 1
load_interval = 10
max_uses = 30
@@ -11,7 +11,7 @@
icon = 'icons/obj/magnetic_locks.dmi'
icon_state = "inactive_CENTCOM"
//icon_state = "inactive"
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
req_access = list(ACCESS_CENT_SPECOPS)
health = 150
@@ -44,7 +44,7 @@
name = "legion magnetic door lock"
req_access = null
req_one_access = list(ACCESS_LEGION, ACCESS_TCAF_SHIPS)
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
/obj/item/device/magnetic_lock/security/legion/Initialize()
. = ..()
+1 -1
View File
@@ -7,7 +7,7 @@
icon_state = "megaphone"
item_state = "megaphone"
contained_sprite = TRUE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
obj_flags = OBJ_FLAG_CONDUCTABLE
var/spamcheck = 0
+5 -5
View File
@@ -111,7 +111,7 @@
desc_info = "In order to convert a voidsuit simply click on voidsuit or helmet with this item\
The same process can be used to convert the voidsuit back into a regular voidsuit. Make sure not to have a helmet or tank in the suit\
or else it will be deleted."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
var/list/suit_options = list(
/obj/item/clothing/suit/space/void/mining = /obj/item/clothing/suit/space/void/mining/himeo,
/obj/item/clothing/head/helmet/space/void/mining = /obj/item/clothing/head/helmet/space/void/mining/himeo,
@@ -207,7 +207,7 @@
desc_info = "This is an OOC item, don't let anyone see it! In order to convert a voidsuit simply click on voidsuit or helmet with this item \
The same process can be used to convert the voidsuit back into a regular voidsuit. Make sure not to have a helmet or tank in the suit \
or else it will be deleted."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
suit_options = list(
/obj/item/clothing/head/helmet/space/void/dominia = /obj/item/clothing/head/helmet/space/void/dominia/voidsman,
/obj/item/clothing/suit/space/void/dominia = /obj/item/clothing/suit/space/void/dominia/voidsman
@@ -241,7 +241,7 @@
desc_info = "In order to convert a voidsuit simply click on voidsuit or helmet with this item\
The same process can be used to convert the voidsuit back into a regular voidsuit. Make sure not to have a helmet or tank in the suit\
or else it will be deleted."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
var/list/suit_options = list()
var/list/helmet_options = list()
var/list/rig_options = list()
@@ -324,7 +324,7 @@
desc_info = "This is an OOC item, don't let anyone see it! In order to convert a voidsuit simply click on voidsuit or helmet with this item \
The same process can be used to convert the voidsuit back into a regular voidsuit. Make sure not to have a helmet or tank in the suit \
or else it will be deleted."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
suit_options = list(
"Izharshan's Raiders" = /obj/item/clothing/suit/space/void/unathi_pirate,
"Hiskyn's Revanchists" = /obj/item/clothing/suit/space/void/unathi_pirate/hiskyn,
@@ -359,7 +359,7 @@
desc_info = "This is an OOC item, don't let anyone see it! In order to convert a voidsuit simply click on a hardsuit with this item \
The same process can be used to convert the hardsuit back into a regular hardsuit. Make sure not to have any modules in the suit \
or else it will be deleted."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
rig_options = list(
"NanoTrasen Hardsuit" = /obj/item/rig/nanotrasen,
"Corporate Auxiliary Hardsuit" = /obj/item/rig/nanotrasen/corporate_auxiliary,
+1 -1
View File
@@ -14,7 +14,7 @@
contained_sprite = TRUE
obj_flags = OBJ_FLAG_CONDUCTABLE
force = 11
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throwforce = 5.0
throw_range = 15
throw_speed = 3
+1 -1
View File
@@ -4,7 +4,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "oxycandle"
item_state = "oxycandle"
w_class = ITEMSIZE_SMALL // Should fit into internal's box or maybe pocket
w_class = WEIGHT_CLASS_SMALL // Should fit into internal's box or maybe pocket
var/target_pressure = ONE_ATMOSPHERE
var/datum/gas_mixture/air_contents = null
var/volume = 5600 // One tile has 2500 volume of air, so two tiles plus a bit extra
+1 -1
View File
@@ -3,7 +3,7 @@
icon = 'icons/obj/pai.dmi'
icon_state = "pai"
item_state = "electronic"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
slot_flags = SLOT_BELT
origin_tech = list(TECH_DATA = 2)
var/list/installed_encryptionkeys = list()
@@ -6,7 +6,7 @@
item_state = "personal_shield"
contained_sprite = TRUE
slot_flags = SLOT_BELT
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
action_button_name = "Toggle Shield"
var/obj/item/cell/cell
var/charge_per_shot = 200
@@ -4,7 +4,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "pin_extractor"
item_state = "pin_extractor"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
obj_flags = OBJ_FLAG_CONDUCTABLE
action_button_name = "Toggle extractor"
var/on = 0
+1 -1
View File
@@ -5,7 +5,7 @@
desc = "A nulling power sink which drains energy from electrical systems."
icon_state = "powersink0"
item_state = "powersink0"
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
obj_flags = OBJ_FLAG_CONDUCTABLE
throwforce = 5
throw_speed = 1
@@ -5,7 +5,7 @@
item_state = "electropack"
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BACK
w_class = ITEMSIZE_HUGE
w_class = WEIGHT_CLASS_HUGE
matter = list(DEFAULT_WALL_MATERIAL = 10000, MATERIAL_GLASS = 2500)
@@ -4,7 +4,7 @@
icon = 'icons/obj/radio.dmi'
icon_state = "cypherkey"
item_state = ""
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS
var/translate_binary = FALSE
var/translate_hivenet = FALSE
@@ -25,7 +25,7 @@ pixel_x = 8;
layer = ABOVE_WINDOW_LAYER
anchored = TRUE
appearance_flags = TILE_BOUND // prevents people from viewing the overlay through a wall
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
canhear_range = 2
atom_flags = ATOM_FLAG_NO_BLOOD
obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED | OBJ_FLAG_CONDUCTABLE
@@ -46,7 +46,7 @@ var/global/list/default_interrogation_channels = list(
slot_flags = SLOT_BELT
throw_speed = 2
throw_range = 9
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
matter = list(MATERIAL_ALUMINIUM = 75, MATERIAL_GLASS = 25)
suffix = "\[3\]"
var/radio_desc = ""
@@ -22,7 +22,7 @@ var/list/active_radio_jammers = list()
desc_info = "Use in-hand to activate or deactivate, alt-click while adjacent or in-hand to toggle whether it blocks all wireless signals, or just stationbound wireless interfacing."
icon = 'icons/obj/device.dmi'
icon_state = "shield0"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
var/active = JAMMER_OFF
var/radius = 7
var/icon_state_active = "shield1"
+8 -8
View File
@@ -15,7 +15,7 @@ BREATH ANALYZER
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT
throwforce = 3
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throw_speed = 5
throw_range = 10
matter = list(MATERIAL_ALUMINIUM = 200)
@@ -377,7 +377,7 @@ BREATH ANALYZER
icon_state = "analyzer"
item_state = "analyzer"
contained_sprite = TRUE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT
throwforce = 5
@@ -411,7 +411,7 @@ BREATH ANALYZER
desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample."
icon_state = "spectrometer"
item_state = "analyzer"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
atom_flags = ATOM_FLAG_OPEN_CONTAINER
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT
@@ -485,7 +485,7 @@ BREATH ANALYZER
desc = "A hand-held reagent scanner which identifies chemical agents."
icon_state = "reagent_scanner"
item_state = "analyzer"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT
throwforce = 5
@@ -526,7 +526,7 @@ BREATH ANALYZER
icon_state = "adv_spectrometer"
item_state = "analyzer"
origin_tech = list(TECH_BIO = 1)
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
obj_flags = OBJ_FLAG_CONDUCTABLE
throwforce = 0
throw_speed = 3
@@ -571,7 +571,7 @@ BREATH ANALYZER
item_state = "price_scanner"
item_flags = ITEM_FLAG_NO_BLUDGEON
slot_flags = SLOT_BELT
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throwforce = 0
throw_speed = 3
throw_range = 3
@@ -590,7 +590,7 @@ BREATH ANALYZER
desc = "A hand-held breath analyzer that provides a robust amount of information about the subject's respiratory system."
icon_state = "breath_analyzer"
item_state = "analyzer"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT
throwforce = 0
@@ -699,7 +699,7 @@ BREATH ANALYZER
icon_state = "adv-analyzer"
item_state = "adv-analyzer"
slot_flags = SLOT_BELT
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 3)
var/obj/machinery/body_scanconsole/connected = null //this is used to print the date and to deal with extra
@@ -4,7 +4,7 @@
desc_info = "You can use this in hand to open the interface, click-dragging it to you also works. Click anywhere with it in your hand to project at that location. Click dragging it to that location also works."
icon = 'icons/obj/projector.dmi'
icon_state = "projector0"
max_w_class = ITEMSIZE_SMALL
max_w_class = WEIGHT_CLASS_SMALL
max_storage_space = 10
use_sound = 'sound/items/storage/toolbox.ogg'
var/static/list/projection_types = list(
+2 -2
View File
@@ -8,7 +8,7 @@
obj_flags = OBJ_FLAG_CONDUCTABLE
force = 11
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS
throwforce = 5.0
throw_range = 15
@@ -58,7 +58,7 @@
icon_state = "pda"
item_state = "electronic"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1, TECH_ILLEGAL = 3)
@@ -1,7 +1,7 @@
/obj/item/device/suit_cooling_unit
name = "portable suit cooling unit"
desc = "A portable heat sink and liquid cooled radiator that can be hooked up to a space suit's existing temperature controls to provide industrial levels of cooling."
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
icon = 'icons/obj/item/tools/suitcooler.dmi'
icon_state = "suitcooler0"
item_state = "coolingpack"
@@ -166,8 +166,8 @@
if(cell)
to_chat(user, SPAN_WARNING("There is \a [cell] already installed here."))
else
if(attacking_item.w_class != ITEMSIZE_NORMAL)
to_chat(user, SPAN_WARNING("\The [attacking_item] is too [attacking_item.w_class < ITEMSIZE_NORMAL ? "small" : "large"] to fit here."))
if(attacking_item.w_class != WEIGHT_CLASS_NORMAL)
to_chat(user, SPAN_WARNING("\The [attacking_item] is too [attacking_item.w_class < WEIGHT_CLASS_NORMAL ? "small" : "large"] to fit here."))
return
user.drop_from_inventory(attacking_item,src)
cell = attacking_item
+1 -1
View File
@@ -8,7 +8,7 @@
item_state = "t-ray"
contained_sprite = TRUE
slot_flags = SLOT_BELT
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
matter = list(MATERIAL_PLASTIC = 100, MATERIAL_ALUMINIUM = 50)
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
action_button_name = "Toggle T-Ray scanner"
+1 -1
View File
@@ -5,7 +5,7 @@
desc = "Used for tagging animals to be identified by a ear tag."
icon_state = "animal_tagger0"
force = 11
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throwforce = 5.0
throw_range = 15
throw_speed = 3
@@ -3,7 +3,7 @@
desc = "A device that can record up to an hour of dialogue and play it back. It automatically translates the content in playback."
icon_state = "taperecorderidle"
item_state = "analyzer"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
matter = list(MATERIAL_ALUMINIUM = 60, MATERIAL_GLASS = 30)
@@ -19,7 +19,7 @@ effective or pretty fucking useless.
desc = "A strange device with twin antennas."
icon_state = "batterer"
throwforce = 5
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
throw_speed = 4
throw_range = 10
obj_flags = OBJ_FLAG_CONDUCTABLE
+2 -2
View File
@@ -3,7 +3,7 @@
desc = "An Ingi Usang Entertainment Co. livestreaming press camera drone. Weapon of choice for war correspondents and reality show cameramen. It does not appear to have any internal memory storage."
icon_state = "camcorder"
item_state = "camcorder"
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
slot_flags = SLOT_BELT
var/channel = "General News Feed"
var/obj/machinery/camera/network/news/camera
@@ -93,7 +93,7 @@ Using robohead because of restricting to roboticist */
icon_state = "head"
item_state = "head"
var/buildstep = 0
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
/obj/item/tv_assembly/attackby(obj/item/attacking_item, mob/user)
switch(buildstep)
+3 -3
View File
@@ -374,7 +374,7 @@ Then check if it's true, if true return. This will stop the normal menu appearin
icon = 'icons/obj/radio.dmi'
icon_state = "radio"
obj_flags = OBJ_FLAG_CONDUCTABLE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
/obj/item/device/contract_uplink/Initialize(var/mapload, var/mind)
. = ..()
@@ -394,7 +394,7 @@ Then check if it's true, if true return. This will stop the normal menu appearin
icon = 'icons/obj/device.dmi'
icon_state = "locator"
desc_antag = "This device allows you to create a single central command report. It has only one use."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
/obj/item/device/announcer/attack_self(mob/user as mob)
if(!player_is_antag(user.mind))
@@ -419,7 +419,7 @@ Then check if it's true, if true return. This will stop the normal menu appearin
icon = 'icons/obj/radio.dmi'
icon_state = "radio"
obj_flags = OBJ_FLAG_CONDUCTABLE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
///Amount of starting telecrystals. Defaults to default amount if not set.
var/starting_telecrystals
+2 -2
View File
@@ -9,7 +9,7 @@
icon = 'icons/obj/library.dmi'
icon_state = "dominiabook"
item_state = "dominia"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
var/reading = FALSE
drop_sound = 'sound/items/drop/book.ogg'
@@ -158,5 +158,5 @@
desc = "A miniaturized edition of the Luceian Book of Scripture, a collection of historically-backed texts mixed with fables and stories detailing the reasonings, history, and \
beliefs of the Luceism religion of Assunzione. Translated into Basic by the Luceian Monastery on Biesel. This one fits nicely in a pocket or in a bag."
icon_state = "luce_pocket"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
+1 -1
View File
@@ -3,7 +3,7 @@
desc = "Used by obese officers to save their breath for running."
icon_state = "voice0"
item_state = "flashbang" //looks exactly like a flash (and nothing like a flashbang)
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
obj_flags = OBJ_FLAG_CONDUCTABLE
var/use_message = "Halt! Security!"
+1 -1
View File
@@ -5,7 +5,7 @@
icon = 'icons/obj/toy.dmi'
icon_state = "eightball"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
var/shaking = FALSE
var/on_cooldown = FALSE
+2 -2
View File
@@ -17,7 +17,7 @@
desc_info = "Can be used to hold money, small animals, and gumballs. You can remove the lid and use it as a reagent container."
icon = 'icons/obj/item/reagent_containers/glass.dmi'
icon_state = "jar_lid"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
matter = list(MATERIAL_GLASS = 200)
recyclable = TRUE
item_flags = ITEM_FLAG_NO_BLUDGEON
@@ -136,7 +136,7 @@
return TRUE
if(istype(attacking_item, /obj/item/holder))
var/obj/item/holder/H = attacking_item
if(H.w_class <= ITEMSIZE_SMALL)
if(H.w_class <= WEIGHT_CLASS_SMALL)
contains = JAR_HOLDER
user.drop_from_inventory(H)
scoop(H, user)
+3 -3
View File
@@ -3,7 +3,7 @@
desc_extended = "An overloader is a small disposable stick drive, commonly loaded with a program designed to temporarily reconfigure an IPC's priorities or inputs."
icon = 'icons/obj/item/ipc_overloaders.dmi'
icon_state = "classic"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
contained_sprite = TRUE
var/uses = 2
var/effect_time = 30 SECONDS
@@ -258,8 +258,8 @@
icon_state = "box"
update_icon_on_init = TRUE
contained_sprite = TRUE
w_class = ITEMSIZE_SMALL
max_w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_SMALL
max_w_class = WEIGHT_CLASS_TINY
storage_slots = 1
can_hold = list(/obj/item/ipc_overloader)
use_sound = 'sound/items/storage/briefcase.ogg'
+2 -2
View File
@@ -4,7 +4,7 @@
icon = 'icons/obj/item/tools/knitting.dmi'
icon_state = "knittingneedles"
item_state = "knittingneedles"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
contained_sprite = TRUE
var/working = FALSE
var/obj/item/yarn/ball
@@ -121,7 +121,7 @@
desc = "A ball of yarn, this one is white."
icon = 'icons/obj/item/tools/knitting.dmi'
icon_state = "white_ball"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
/obj/item/yarn/red
desc = "A ball of yarn, this one is red."
+1 -1
View File
@@ -3,7 +3,7 @@
desc = "A portable radio capable of receiving radio waves from nearby space systems."
icon = 'icons/obj/radio.dmi'
icon_state = "radio"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
var/receiving = FALSE
var/current_station = null
@@ -5,7 +5,7 @@
icon_state = "recharger_backpack"
item_state = "recharger_backpack"
contained_sprite = TRUE
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
slot_flags = SLOT_BACK
///Power cell used to recharge the gun. Empty by default.
var/obj/item/cell/powersupply
+1 -1
View File
@@ -13,7 +13,7 @@
icon_state = "sampler"
item_state = "sampler"
contained_sprite = TRUE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
/**
* Which attachment we are using
*/
+3 -3
View File
@@ -3,7 +3,7 @@
desc = "An antique and delicate looking instrument used to study the stars."
icon = 'icons/obj/item/skrell/stellascope.dmi'
icon_state = "starscope"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
matter = list(MATERIAL_GLASS = 200)
drop_sound = 'sound/items/drop/glass.ogg'
pickup_sound = 'sound/items/pickup/glass.ogg'
@@ -80,7 +80,7 @@
icon = 'icons/obj/item/skrell/nralakk_projector.dmi'
icon_state = "projector"
light_color = LIGHT_COLOR_HALOGEN
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
matter = list(MATERIAL_GLASS = 200)
drop_sound = 'sound/items/drop/glass.ogg'
pickup_sound = 'sound/items/pickup/glass.ogg'
@@ -231,7 +231,7 @@
/obj/item/nralakktag
name = "\improper Nralakk Federation loyalty ear-tag"
desc = "An ear-tag that shows the wearer is loyal to the Nralakk Federation. A small cable travels into the ear canal..."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
slot_flags = SLOT_EARS
icon = 'icons/obj/item/skrell/jargtag.dmi'
icon_state = "jargtag"
+1 -1
View File
@@ -5,7 +5,7 @@
max_amount = 5
icon = 'icons/obj/barricade_stacks.dmi'
icon_state = "steel-kit"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
matter = list(DEFAULT_WALL_MATERIAL = 650, MATERIAL_PHORON = 100, MATERIAL_PLASTEEL = 150)
var/barricade_name = "steel"
var/barricade_type = /obj/structure/barricade/metal
+1 -1
View File
@@ -17,7 +17,7 @@ Contains:
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
amount = 5
max_amount = 5
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throw_speed = 4
throw_range = 20
surgerysound = 'sound/items/surgery/bonegel.ogg'
+3 -3
View File
@@ -23,7 +23,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list(
singular_name = "metal rod"
icon_state = "rods"
obj_flags = OBJ_FLAG_CONDUCTABLE
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
force = 20
throwforce = 15.0
throw_speed = 5
@@ -102,7 +102,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list(
icon_state = "barbed_wire"
singular_name = "length"
max_amount = 50
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
matter = list(DEFAULT_WALL_MATERIAL = 937.5)
attack_verb = list("hit", "whacked", "sliced")
@@ -119,7 +119,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list(
max_amount = 50
icon = 'icons/obj/barricades.dmi'
icon_state = "liquidbags"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
matter = list(DEFAULT_WALL_MATERIAL = 650, MATERIAL_PHORON = 100, MATERIAL_PLASTEEL = 150)
/obj/item/stack/liquidbags/half_full
@@ -7,7 +7,7 @@
desc_antag = "Crystals can be activated by utilizing them on devices with an actively running uplink. They will not activate on unactivated uplinks."
singular_name = "telecrystal"
icon_state = "telecrystal"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
max_amount = 50
item_flags = ITEM_FLAG_NO_BLUDGEON
origin_tech = list(TECH_MATERIAL = 6, TECH_BLUESPACE = 4)
@@ -12,7 +12,7 @@
name = "tile"
singular_name = "tile"
desc = "A non-descript floor tile."
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
max_amount = 60
recyclable = TRUE
icon = 'icons/obj/item/stacks/tiles.dmi'
+3 -3
View File
@@ -30,7 +30,7 @@
if (!isturf(loc))
to_chat(user, SPAN_WARNING("The paper must be set down for you to wrap a gift!"))
return
if (attacking_item.w_class < ITEMSIZE_LARGE)
if (attacking_item.w_class < WEIGHT_CLASS_BULKY)
var/a_used = 2 * (src.w_class - 1)
if(src.amount < a_used)
to_chat(user, SPAN_WARNING("You need more paper!"))
@@ -102,7 +102,7 @@
desc = "A roll of paper used to enclose an object for delivery."
desc_info = "To package wrap the object for delivery, use the package wrapper on the object."
singular_name = "length"
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
amount = 30
var/wrapping_tag = "Sorting Office"
drop_sound = 'sound/items/drop/wrapper.ogg'
@@ -210,6 +210,6 @@
)
icon_state = "c_tube"
throwforce = 1
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throw_speed = 4
throw_range = 5
+1 -1
View File
@@ -4,7 +4,7 @@
icon = 'icons/obj/sticker.dmi'
icon_state = "sticker"
item_flags = ITEM_FLAG_NO_BLUDGEON
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
vis_flags = VIS_INHERIT_LAYER | VIS_INHERIT_DIR
var/datum/weakref/attached
+1 -1
View File
@@ -41,7 +41,7 @@
icon_state = "tajcig"
drop_sound = 'sound/items/drop/paper.ogg'
pickup_sound = 'sound/items/pickup/paper.ogg'
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
var/list/figures = list("hadii", "tesla", "headmaster", "commissar", "almanq", "yasmin", "andrey", "paratrooper", "scout")
/obj/item/tajcard/Initialize()
+28 -20
View File
@@ -111,7 +111,7 @@
desc_extended = "Thanks to the joint effort of the Research and Atmospherics teams, station enviroments have been set to allow balloons to float without helium. Look, it was the end of the month and we went under budget."
drop_sound = 'sound/items/drop/rubber.ogg'
pickup_sound = 'sound/items/pickup/rubber.ogg'
w_class = ITEMSIZE_HUGE
w_class = WEIGHT_CLASS_HUGE
var/datum/gas_mixture/air_contents = null
var/status = 0 // 0 = normal, 1 = blow, 2 = burst
@@ -293,7 +293,7 @@
/obj/item/toy/comic
name = "comic book"
desc = "A magazine presenting a fictional story through a sequence of images. Perfect for those long, boring shifts."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
icon_state = "comic"
item_state = "comic"
drop_sound = 'sound/items/drop/paper.ogg'
@@ -409,7 +409,7 @@
drop_sound = 'sound/items/drop/gun.ogg'
pickup_sound = 'sound/items/pickup/gun.ogg'
contained_sprite = TRUE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
attack_verb = list("attacked", "struck", "hit")
var/dart_count = 5
@@ -501,7 +501,7 @@
desc = "A foam dart."
icon = 'icons/obj/toy.dmi'
icon_state = "foamdart"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS
drop_sound = 'sound/items/drop/food.ogg'
pickup_sound = 'sound/items/pickup/food.ogg'
@@ -532,7 +532,7 @@
var/active = 0.0
var/colorvar = "blue"
var/last_active = 0
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
attack_verb = list("attacked", "struck", "hit")
/obj/item/toy/sword/attack_self(mob/user as mob)
@@ -544,13 +544,13 @@
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
src.icon_state = "sword[colorvar]"
src.item_state = "sword[colorvar]"
src.w_class = ITEMSIZE_LARGE
src.w_class = WEIGHT_CLASS_BULKY
else
to_chat(user, SPAN_NOTICE("You push the plastic blade back down into the handle."))
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
src.icon_state = "sword0"
src.item_state = "sword0"
src.w_class = ITEMSIZE_SMALL
src.w_class = WEIGHT_CLASS_SMALL
if(istype(user,/mob/living/carbon/human))
var/mob/living/carbon/human/H = user
@@ -579,7 +579,7 @@
slot_flags = SLOT_BELT | SLOT_BACK
force = 11
throwforce = 5
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
attack_verb = list("attacked", "slashed", "stabbed", "sliced")
/*
@@ -590,10 +590,18 @@
desc = "Wow!"
icon = 'icons/obj/toy.dmi'
icon_state = "snappop"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
drop_sound = 'sound/items/drop/food.ogg'
pickup_sound = 'sound/items/pickup/food.ogg'
/obj/item/toy/snappop/Initialize()
. = ..()
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
AddElement(/datum/element/connect_loc, loc_connections)
/obj/item/toy/snappop/attack_self(mob/user)
user.drop_from_inventory(src)
user.visible_message(SPAN_WARNING("\The [user] throws \the [src] at their feet!"), SPAN_NOTICE("You throw \the [src] at your feet."))
@@ -603,9 +611,9 @@
..()
do_pop()
/obj/item/toy/snappop/Crossed(H as mob|obj)
if((ishuman(H))) //i guess carp and shit shouldn't set them off
var/mob/living/carbon/human/M = H
/obj/item/toy/snappop/proc/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
if((ishuman(arrived))) //i guess carp and shit shouldn't set them off
var/mob/living/carbon/human/M = arrived
if(M.shoes?.item_flags & ITEM_FLAG_LIGHT_STEP)
return
if(M.m_intent == M_RUN)
@@ -646,7 +654,7 @@
drop_sound = 'sound/items/drop/card.ogg'
pickup_sound = 'sound/items/pickup/card.ogg'
var/cooldown = 0
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS
/obj/item/toy/bosunwhistle/attack_self(mob/user as mob)
@@ -661,7 +669,7 @@
/obj/item/toy/mech
icon_state = "ripleytoy"
var/cooldown = 0
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
drop_sound = 'sound/mecha/mechstep.ogg'
/obj/item/toy/mech/attack_self(mob/user)
@@ -731,7 +739,7 @@
name = "completely glitched action figure"
desc = "A \"Space Life\" brand... wait, what the hell is this thing? It seems to be requesting the sweet release of death."
icon_state = "glitched"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
drop_sound = 'sound/items/drop/accessory.ogg'
pickup_sound = 'sound/items/pickup/accessory.ogg'
@@ -940,7 +948,7 @@
item_state = "therapyred"
var/active = 0.0
var/colorvar = "red"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
/obj/item/toy/plushie/therapy/Initialize()
. = ..()
@@ -1297,7 +1305,7 @@
icon = 'icons/obj/sword.dmi'
icon_state = "cultblade"
item_state = "cultblade"
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
attack_verb = list("attacked", "slashed", "stabbed", "poked")
contained_sprite = TRUE
@@ -1393,7 +1401,7 @@
name = "party popper"
desc = "Instructions : Aim away from face. Wait for appropriate timing. Pull cord, enjoy confetti."
icon_state = "partypopper"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
drop_sound = 'sound/items/drop/cardboardbox.ogg'
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
@@ -1415,7 +1423,7 @@
desc = "A %NAME% chess piece, this one is worth %POINT% points."
icon = 'icons/obj/item/chess.dmi'
icon_state = "white_pawn"
w_class = ITEMSIZE_HUGE // hugh mungus
w_class = WEIGHT_CLASS_HUGE // hugh mungus
var/piece_worth = 1
/obj/item/chess_piece/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
@@ -1481,7 +1489,7 @@
/obj/item/toy/stressball
name = "stress ball"
desc = "A small, squishy stress ball. This one has a squeaker inside."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
icon_state = "stressball"
drop_sound = 'sound/items/drop/plushie.ogg'
pickup_sound = 'sound/items/pickup/plushie.ogg'
+1 -1
View File
@@ -4,7 +4,7 @@
//Added by Jack Rost
/obj/item/trash
icon = 'icons/obj/trash.dmi'
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
contained_sprite = TRUE
item_state = "candy"
desc = "General waste material, refuse or litter. Dispose responsibly."
+2 -2
View File
@@ -4,7 +4,7 @@
icon = 'icons/obj/item/umbrellas.dmi'
icon_state = "umbrella_yellow_closed"
contained_sprite = TRUE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
matter = list(MATERIAL_PLASTIC = 1000)
force = 5
sharp = TRUE
@@ -29,7 +29,7 @@
if(!is_open)
to_chat(user, SPAN_NOTICE("You unfurl \the [src]."))
item_state = "umbrella_[umbrella_color]_open"
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
is_open = TRUE
force = 1
sharp = FALSE
@@ -14,7 +14,7 @@ AI MODULES
desc = "An AI Module for transmitting encrypted instructions to the AI."
obj_flags = OBJ_FLAG_CONDUCTABLE
force = 11
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throwforce = 5.0
throw_speed = 3
throw_range = 15
+2 -2
View File
@@ -30,7 +30,7 @@
throwforce = 10
throw_speed = 1
throw_range = 5
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
origin_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 2)
matter = list(DEFAULT_WALL_MATERIAL = 50000)
drop_sound = 'sound/items/drop/gun.ogg'
@@ -161,7 +161,7 @@
icon = 'icons/obj/ammo.dmi'
icon_state = "rfd"
item_state = "rfdammo"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
origin_tech = list(TECH_MATERIAL = 2)
matter = list(DEFAULT_WALL_MATERIAL = 2000, MATERIAL_GLASS = 2000)
recyclable = TRUE
+1 -1
View File
@@ -8,7 +8,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "autopsy"
obj_flags = OBJ_FLAG_CONDUCTABLE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
var/list/datum/autopsy_data_scanner/wdata = list()
var/list/datum/autopsy_data_scanner/chemtraces = list()
+1 -1
View File
@@ -6,7 +6,7 @@
item_state = "candle1"
drop_sound = 'sound/items/drop/gloves.ogg'
pickup_sound = 'sound/items/pickup/gloves.ogg'
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
light_color = "#E09D37"
var/wax = 2000
var/start_lit = FALSE
+1 -1
View File
@@ -19,7 +19,7 @@
slot_l_hand_str = 'icons/mob/items/lefthand_card.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_card.dmi',
)
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
var/associated_account_number = 0
var/list/files = list( )
var/last_flash = 0 //Spam limiter.
@@ -15,7 +15,7 @@
throw_speed = 1
throw_range = 4
throwforce = 10
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
var/can_change_form = TRUE // For holodeck check.
var/cooldown = 0 // Floor tap cooldown.
var/list/null_choices = list( //Generic nullrods only here, religion-specific ones should be on the religion datum
@@ -51,7 +51,7 @@
icon_state = "nullstaff"
item_state = "nullstaff"
slot_flags = SLOT_BELT | SLOT_BACK
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
/obj/item/nullrod/orb
name = "null sphere"
@@ -78,7 +78,7 @@
throw_range = 7
throwforce = 2
slot_flags = SLOT_MASK | SLOT_WRISTS | SLOT_EARS | SLOT_TIE
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
/obj/item/nullrod/charm/get_mask_examine_text(mob/user)
return "around [user.get_pronoun("his")] neck"
@@ -91,7 +91,7 @@
item_state = "matake_spear"
contained_sprite = TRUE
slot_flags = SLOT_BELT | SLOT_BACK
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
/obj/item/nullrod/rredouane
name = "\improper Rredouane sword"
@@ -156,7 +156,7 @@
icon_state = "shaman_staff"
item_state = "shaman_staff"
contained_sprite = TRUE
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
slot_flags = null
/obj/item/nullrod/skakh_warrior
@@ -167,7 +167,7 @@
item_state = "skakh_sword"
slot_flags = SLOT_BACK|SLOT_BELT
contained_sprite = TRUE
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
/obj/item/nullrod/skakh_healer
name = "\improper Sk'akh staff"
@@ -176,7 +176,7 @@
icon_state = "skakh_staff"
item_state = "skakh_staff"
contained_sprite = TRUE
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
slot_flags = null
/obj/item/nullrod/skakh_fisher
@@ -213,7 +213,7 @@
contained_sprite = TRUE
force = 25
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
slot_flags = SLOT_BACK
light_range = 4
light_power = 2
@@ -372,7 +372,7 @@
icon = 'icons/obj/urn.dmi'
icon_state = "urn"
applies_material_colour = TRUE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
item_flags = ITEM_FLAG_NO_BLUDGEON
/obj/item/material/urn/afterattack(var/obj/A, var/mob/user, var/proximity)
@@ -412,7 +412,7 @@
light_range = 1.4
light_power = 1.4
light_color = LIGHT_COLOR_BLUE
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
drop_sound = 'sound/items/drop/glass.ogg'
pickup_sound = 'sound/items/pickup/glass.ogg'
+4 -4
View File
@@ -86,7 +86,7 @@
throw_speed = 0.5
icon_state = "chew"
type_butt = /obj/item/trash/spitwad
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
@@ -165,7 +165,7 @@
throw_speed = 0.5
icon_state = "chew"
type_butt = /obj/item/trash/spitwad
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
@@ -178,7 +178,7 @@
throw_speed = 0.5
icon_state = "chew"
type_butt = /obj/item/trash/spitgum
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
@@ -190,7 +190,7 @@
throw_speed = 0.5
icon_state = "chew"
type_butt = /obj/item/trash/spitwad
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
@@ -34,7 +34,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
)
var/smoketime = 5
var/type_burnt = /obj/item/trash/match
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
origin_tech = list(TECH_MATERIAL = 1)
slot_flags = SLOT_EARS | SLOT_MASK
attack_verb = list("burnt", "singed")
@@ -298,7 +298,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "cigoff"
item_state = "cigoff"
throw_speed = 0.5
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
attack_verb = list("burnt", "singed")
icon_on = "cigon"
@@ -535,7 +535,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon = 'icons/obj/smokables.dmi'
icon_state = "cigbutt"
randpixel = 10
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
throwforce = 1
drop_sound = 'sound/items/cigs_lighters/cig_snuff.ogg'
@@ -587,7 +587,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_on = "pipeon"
icon_off = "pipeoff"
burn_rate = 0.015
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
chem_volume = 30
matchmes = SPAN_NOTICE("USER lights their NAME with their FLAME.")
lightermes = SPAN_NOTICE("USER manages to light their NAME with FLAME.")
@@ -703,7 +703,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
slot_l_hand_str = 'icons/mob/items/lefthand_cigs_lighters.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_cigs_lighters.dmi',
)
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
throwforce = 4
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT
@@ -1060,7 +1060,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
desc = "A thin piece of paper used to make smokables."
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "cigpaper_generic"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
can_fold = FALSE
/obj/item/paper/cig/attackby(obj/item/attacking_item, mob/user)
@@ -1081,7 +1081,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
desc = "A small nub like filter for cigarettes."
icon = 'icons/obj/cigs_lighters.dmi'
icon_state = "cigfilter"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
/obj/item/cigarette_filter/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/clothing/mask/smokable/cigarette/rolled))
@@ -1093,7 +1093,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
//tobacco sold seperately if you're too snobby to grow it yourself.
/obj/item/reagent_containers/food/snacks/grown/dried_tobacco
plantname = "tobacco"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
/obj/item/reagent_containers/food/snacks/grown/dried_tobacco/Initialize()
. = ..()
@@ -1113,7 +1113,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
//oracle sold seperately if you're too snobby to grow it yourself.
/obj/item/reagent_containers/food/snacks/grown/dried_oracle
plantname = "oracle"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
/obj/item/reagent_containers/food/snacks/grown/dried_oracle/Initialize()
. = ..()
@@ -11,7 +11,7 @@
icon_state = "id_mod"
item_state = "electronic"
origin_tech = list(TECH_DATA = 2)
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
obj_flags = OBJ_FLAG_CONDUCTABLE
force = 11
throwforce = 5
@@ -14,7 +14,7 @@
throwforce = 10.0
throw_speed = 2
throw_range = 10
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
origin_tech = list(TECH_MAGNET = 3, TECH_ILLEGAL = 4)
var/power_usage = 35000//A high powered cell allows 5 minutes of continuous usage
+3 -3
View File
@@ -7,7 +7,7 @@
item_state = "lipstick"
build_from_parts = TRUE
contained_sprite = TRUE
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS
update_icon_on_init = TRUE
var/lipstick_color = "#DC253A"
@@ -143,7 +143,7 @@
/obj/item/haircomb //sparklysheep's comb
name = "plastic comb"
desc = "A pristine comb made from flexible plastic."
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS
icon = 'icons/obj/cosmetics.dmi'
icon_state = "comb"
@@ -161,7 +161,7 @@
desc = "The latest and greatest power razor born from the science of shaving."
icon = 'icons/obj/weapons.dmi'
icon_state = "razor"
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
/obj/item/razor/proc/shave(mob/living/carbon/human/H, location)
if(location == BP_HEAD)
+1 -1
View File
@@ -3,7 +3,7 @@
desc = "A dice with six sides."
icon = 'icons/obj/dice.dmi'
icon_state = "d66"
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
attack_verb = list("diced")
max_amount = 6
@@ -10,7 +10,7 @@
var/s_time = 10.0
throw_speed = 1
throw_range = 5
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS
var/uses = 1
var/nofail
+2 -2
View File
@@ -12,7 +12,7 @@
var/cell_type = /obj/item/cell/device
var/obj/item/reagent_containers/ecig_cartridge/ec_cartridge
var/cartridge_type = /obj/item/reagent_containers/ecig_cartridge/med_nicotine
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_EARS | SLOT_MASK
attack_verb = list("attacked", "poked", "battered")
body_parts_covered = 0
@@ -241,7 +241,7 @@
/obj/item/reagent_containers/ecig_cartridge
name = "tobacco flavour cartridge"
desc = "A small metal cartridge, used with electronic cigarettes, which contains an atomizing coil and a solution to be atomized."
w_class = ITEMSIZE_TINY
w_class = WEIGHT_CLASS_TINY
icon = 'icons/obj/ecig.dmi'
icon_state = "ecartridge"
matter = list(MATERIAL_STEEL = 50, MATERIAL_GLASS = 10)
@@ -6,7 +6,7 @@
icon_state = "plastic-explosive0"
item_state = "plasticx"
item_flags = ITEM_FLAG_NO_BLUDGEON
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
origin_tech = list(TECH_ILLEGAL = 2)
var/datum/wires/explosive/c4/wires = null
var/detonate_time = 0
@@ -8,7 +8,7 @@
atom_flags = ATOM_FLAG_OPEN_CONTAINER
obj_flags = OBJ_FLAG_CONDUCTABLE
throwforce = 8
w_class = ITEMSIZE_NORMAL
w_class = WEIGHT_CLASS_NORMAL
throw_speed = 2
throw_range = 10
force = 18
@@ -92,7 +92,7 @@
hitsound = 'sound/weapons/smash.ogg'
obj_flags = OBJ_FLAG_CONDUCTABLE
throwforce = 10
w_class = ITEMSIZE_HUGE
w_class = WEIGHT_CLASS_HUGE
throw_speed = 2
throw_range = 10
force = 15
@@ -117,7 +117,7 @@
hitsound = null //it is much lighter, after all.
atom_flags = ATOM_FLAG_OPEN_CONTAINER
throwforce = 2
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
force = 2
max_water = 60
spray_amount = 10
@@ -6,7 +6,7 @@
item_state = "flamethrower_0"
contained_sprite = TRUE
w_class = ITEMSIZE_LARGE
w_class = WEIGHT_CLASS_BULKY
obj_flags = OBJ_FLAG_CONDUCTABLE
force = 3
throwforce = 10
@@ -3,7 +3,7 @@
icon_state = "chemg"
item_state = "chemg"
desc = "A hand made chemical grenade."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
force = 2
det_time = null
unacidable = 1
@@ -1,7 +1,7 @@
/obj/item/grenade
name = "grenade"
desc = "A hand held grenade, with an adjustable timer."
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
icon = 'icons/obj/grenade.dmi'
item_icons = list(
slot_l_hand_str = 'icons/mob/items/weapons/lefthand_grenade.dmi',
+1 -1
View File
@@ -10,7 +10,7 @@
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT
throwforce = 5
w_class = ITEMSIZE_SMALL
w_class = WEIGHT_CLASS_SMALL
throw_speed = 2
throw_range = 5
origin_tech = list(TECH_MATERIAL = 1)

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