mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 20:47:10 +01:00
Merge-conflict fix + check for null rather than type.
This commit is contained in:
@@ -18,11 +18,11 @@
|
||||
|
||||
var/new_frequency = sanitize_frequency(rand(PUBLIC_LOW_FREQ, PUBLIC_HIGH_FREQ))
|
||||
aSignal.set_frequency(new_frequency)
|
||||
poi_list |= src
|
||||
GLOB.poi_list |= src
|
||||
|
||||
/obj/effect/anomaly/Destroy()
|
||||
QDEL_NULL(aSignal)
|
||||
poi_list.Remove(src)
|
||||
GLOB.poi_list.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/effect/anomaly/proc/anomalyEffect()
|
||||
|
||||
@@ -1,197 +1,203 @@
|
||||
/obj/effect/decal/cleanable/generic
|
||||
name = "clutter"
|
||||
desc = "Someone should clean that up."
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "shards"
|
||||
|
||||
/obj/effect/decal/cleanable/ash
|
||||
name = "ashes"
|
||||
desc = "Ashes to ashes, dust to dust, and into space."
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
anchored = TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/ash/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("ash", 10)
|
||||
|
||||
/obj/effect/decal/cleanable/dirt
|
||||
name = "dirt"
|
||||
desc = "Someone should clean that up."
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "dirt"
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/effect/decal/cleanable/dirt/blackpowder
|
||||
name = "black powder"
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
noscoop = TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/dirt/blackpowder/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("blackpowder", 40) // size 2 explosion when activated
|
||||
|
||||
/obj/effect/decal/cleanable/flour
|
||||
name = "flour"
|
||||
desc = "It's still good. Four second rule!"
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "flour"
|
||||
|
||||
/obj/effect/decal/cleanable/flour/foam
|
||||
name = "Fire fighting foam"
|
||||
desc = "It's foam."
|
||||
color = "#EBEBEB"
|
||||
|
||||
/obj/effect/decal/cleanable/flour/foam/Initialize()
|
||||
. = ..()
|
||||
QDEL_IN(src, 15 SECONDS)
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow
|
||||
name = "glowing goo"
|
||||
desc = "Jeez. I hope that's not for lunch."
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
light_range = 1
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "greenglow"
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow/Initialize(mapload)
|
||||
. = ..()
|
||||
QDEL_IN(src, 2 MINUTES)
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb
|
||||
name = "cobweb"
|
||||
desc = "Somebody should remove that."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = OBJ_LAYER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "cobweb1"
|
||||
burntime = 1
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb/fire_act()
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/cleanable/molten_object
|
||||
name = "gooey grey mass"
|
||||
desc = "It looks like a melted... something."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = OBJ_LAYER
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "molten"
|
||||
|
||||
/obj/effect/decal/cleanable/molten_object/large
|
||||
name = "big gooey grey mass"
|
||||
icon_state = "big_molten"
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb2
|
||||
name = "cobweb"
|
||||
desc = "Somebody should remove that."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = OBJ_LAYER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "cobweb2"
|
||||
|
||||
/obj/effect/decal/cleanable/vomit
|
||||
name = "vomit"
|
||||
desc = "Gosh, how unpleasant."
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "vomit_1"
|
||||
random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4")
|
||||
noclear = TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/vomit/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("vomit", 5)
|
||||
|
||||
/obj/effect/decal/cleanable/vomit/green
|
||||
name = "green vomit"
|
||||
desc = "It's all gummy. Ew."
|
||||
icon_state = "gvomit_1"
|
||||
random_icon_states = list("gvomit_1", "gvomit_2", "gvomit_3", "gvomit_4")
|
||||
|
||||
/obj/effect/decal/cleanable/vomit/green/Initialize()
|
||||
. = ..()
|
||||
reagents.remove_reagent("vomit", 5)
|
||||
reagents.add_reagent("green_vomit", 5)
|
||||
|
||||
/obj/effect/decal/cleanable/tomato_smudge
|
||||
name = "tomato smudge"
|
||||
desc = "It's red."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3")
|
||||
|
||||
/obj/effect/decal/cleanable/plant_smudge
|
||||
name = "plant smudge"
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_plant")
|
||||
|
||||
/obj/effect/decal/cleanable/egg_smudge
|
||||
name = "smashed egg"
|
||||
desc = "Seems like this one won't hatch."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3")
|
||||
|
||||
/obj/effect/decal/cleanable/pie_smudge //honk
|
||||
name = "smashed pie"
|
||||
desc = "It's pie cream from a cream pie."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_pie")
|
||||
|
||||
/obj/effect/decal/cleanable/fungus
|
||||
name = "space fungus"
|
||||
desc = "A fungal growth. Looks pretty nasty."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "flour"
|
||||
color = "#D5820B"
|
||||
|
||||
/obj/effect/decal/cleanable/fungus/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("fungus", 10)
|
||||
|
||||
/obj/effect/decal/cleanable/confetti //PARTY TIME!
|
||||
name = "confetti"
|
||||
desc = "Party time!"
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "confetti1"
|
||||
random_icon_states = list("confetti1", "confetti2", "confetti3")
|
||||
anchored = TRUE
|
||||
/obj/effect/decal/cleanable/generic
|
||||
name = "clutter"
|
||||
desc = "Someone should clean that up."
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "shards"
|
||||
|
||||
/obj/effect/decal/cleanable/ash
|
||||
name = "ashes"
|
||||
desc = "Ashes to ashes, dust to dust, and into space."
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
anchored = TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/ash/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("ash", 10)
|
||||
|
||||
/obj/effect/decal/cleanable/dirt
|
||||
name = "dirt"
|
||||
desc = "Someone should clean that up."
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/dirt.dmi'
|
||||
icon_state = "dirt"
|
||||
canSmoothWith = list(/obj/effect/decal/cleanable/dirt, /turf/simulated/wall, /obj/structure/falsewall)
|
||||
smooth = SMOOTH_MORE
|
||||
mouse_opacity = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/dirt/Initialize()
|
||||
..()
|
||||
icon_state = ""
|
||||
|
||||
/obj/effect/decal/cleanable/dirt/blackpowder
|
||||
name = "black powder"
|
||||
mouse_opacity = TRUE
|
||||
noscoop = TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/dirt/blackpowder/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("blackpowder", 40) // size 2 explosion when activated
|
||||
|
||||
/obj/effect/decal/cleanable/flour
|
||||
name = "flour"
|
||||
desc = "It's still good. Four second rule!"
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "flour"
|
||||
|
||||
/obj/effect/decal/cleanable/flour/foam
|
||||
name = "Fire fighting foam"
|
||||
desc = "It's foam."
|
||||
color = "#EBEBEB"
|
||||
|
||||
/obj/effect/decal/cleanable/flour/foam/Initialize()
|
||||
. = ..()
|
||||
QDEL_IN(src, 15 SECONDS)
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow
|
||||
name = "glowing goo"
|
||||
desc = "Jeez. I hope that's not for lunch."
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
light_range = 1
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "greenglow"
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow/Initialize(mapload)
|
||||
. = ..()
|
||||
QDEL_IN(src, 2 MINUTES)
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb
|
||||
name = "cobweb"
|
||||
desc = "Somebody should remove that."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = OBJ_LAYER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "cobweb1"
|
||||
burntime = 1
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb/fire_act()
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/cleanable/molten_object
|
||||
name = "gooey grey mass"
|
||||
desc = "It looks like a melted... something."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = OBJ_LAYER
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "molten"
|
||||
|
||||
/obj/effect/decal/cleanable/molten_object/large
|
||||
name = "big gooey grey mass"
|
||||
icon_state = "big_molten"
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb2
|
||||
name = "cobweb"
|
||||
desc = "Somebody should remove that."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = OBJ_LAYER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "cobweb2"
|
||||
|
||||
/obj/effect/decal/cleanable/vomit
|
||||
name = "vomit"
|
||||
desc = "Gosh, how unpleasant."
|
||||
gender = PLURAL
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "vomit_1"
|
||||
random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4")
|
||||
noclear = TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/vomit/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("vomit", 5)
|
||||
|
||||
/obj/effect/decal/cleanable/vomit/green
|
||||
name = "green vomit"
|
||||
desc = "It's all gummy. Ew."
|
||||
icon_state = "gvomit_1"
|
||||
random_icon_states = list("gvomit_1", "gvomit_2", "gvomit_3", "gvomit_4")
|
||||
|
||||
/obj/effect/decal/cleanable/vomit/green/Initialize()
|
||||
. = ..()
|
||||
reagents.remove_reagent("vomit", 5)
|
||||
reagents.add_reagent("green_vomit", 5)
|
||||
|
||||
/obj/effect/decal/cleanable/tomato_smudge
|
||||
name = "tomato smudge"
|
||||
desc = "It's red."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3")
|
||||
|
||||
/obj/effect/decal/cleanable/plant_smudge
|
||||
name = "plant smudge"
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_plant")
|
||||
|
||||
/obj/effect/decal/cleanable/egg_smudge
|
||||
name = "smashed egg"
|
||||
desc = "Seems like this one won't hatch."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3")
|
||||
|
||||
/obj/effect/decal/cleanable/pie_smudge //honk
|
||||
name = "smashed pie"
|
||||
desc = "It's pie cream from a cream pie."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_pie")
|
||||
|
||||
/obj/effect/decal/cleanable/fungus
|
||||
name = "space fungus"
|
||||
desc = "A fungal growth. Looks pretty nasty."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = TURF_LAYER
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "flour"
|
||||
color = "#D5820B"
|
||||
|
||||
/obj/effect/decal/cleanable/fungus/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("fungus", 10)
|
||||
|
||||
/obj/effect/decal/cleanable/confetti //PARTY TIME!
|
||||
name = "confetti"
|
||||
desc = "Party time!"
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "confetti1"
|
||||
random_icon_states = list("confetti1", "confetti2", "confetti3")
|
||||
anchored = TRUE
|
||||
|
||||
@@ -11,8 +11,16 @@
|
||||
if(random_icon_states && length(src.random_icon_states) > 0)
|
||||
src.icon_state = pick(src.random_icon_states)
|
||||
create_reagents(100)
|
||||
if(smooth)
|
||||
smooth_icon(src)
|
||||
smooth_icon_neighbors(src)
|
||||
..()
|
||||
|
||||
/obj/effect/decal/cleanable/Destroy()
|
||||
if(smooth)
|
||||
smooth_icon_neighbors(src)
|
||||
return ..()
|
||||
|
||||
/obj/effect/decal/cleanable/attackby(obj/item/W as obj, mob/user as mob,)
|
||||
if(istype(W, /obj/item/reagent_containers/glass) || istype(W, /obj/item/reagent_containers/food/drinks))
|
||||
if(src.reagents && W.reagents && !noscoop)
|
||||
|
||||
@@ -88,11 +88,11 @@
|
||||
emergencyresponseteamspawn += loc
|
||||
qdel(src)
|
||||
|
||||
landmarks_list += src
|
||||
GLOB.landmarks_list += src
|
||||
return 1
|
||||
|
||||
/obj/effect/landmark/Destroy()
|
||||
landmarks_list -= src
|
||||
GLOB.landmarks_list -= src
|
||||
..()
|
||||
return QDEL_HINT_HARDDEL_NOW
|
||||
|
||||
@@ -259,13 +259,13 @@
|
||||
var/datum/map_template/ruin/ruin_template
|
||||
|
||||
/obj/effect/landmark/ruin/New(loc, my_ruin_template)
|
||||
name = "ruin_[ruin_landmarks.len + 1]"
|
||||
name = "ruin_[GLOB.ruin_landmarks.len + 1]"
|
||||
..(loc)
|
||||
ruin_template = my_ruin_template
|
||||
ruin_landmarks |= src
|
||||
GLOB.ruin_landmarks |= src
|
||||
|
||||
/obj/effect/landmark/ruin/Destroy()
|
||||
ruin_landmarks -= src
|
||||
GLOB.ruin_landmarks -= src
|
||||
ruin_template = null
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
/obj/effect/manifest/proc/manifest()
|
||||
var/dat = "<B>Crew Manifest</B>:<BR>"
|
||||
for(var/mob/living/carbon/human/M in mob_list)
|
||||
for(var/mob/living/carbon/human/M in GLOB.mob_list)
|
||||
dat += text(" <B>[]</B> - []<BR>", M.name, M.get_assignment())
|
||||
var/obj/item/paper/P = new /obj/item/paper( src.loc )
|
||||
P.info = dat
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
teleport(M)
|
||||
|
||||
/obj/effect/portal/New(loc, turf/target, creator=null, lifespan=300)
|
||||
portals += src
|
||||
GLOB.portals += src
|
||||
src.loc = loc
|
||||
src.target = target
|
||||
src.creator = creator
|
||||
@@ -26,7 +26,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/portal/Destroy()
|
||||
portals -= src
|
||||
GLOB.portals -= src
|
||||
if(istype(creator, /obj))
|
||||
var/obj/O = creator
|
||||
O.portal_destroyed(src)
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
var/sound/explosion_sound = sound(get_sfx("explosion"))
|
||||
var/sound/global_boom = sound('sound/effects/explosionfar.ogg')
|
||||
|
||||
for(var/P in player_list)
|
||||
for(var/P in GLOB.player_list)
|
||||
var/mob/M = P
|
||||
// Double check for client
|
||||
if(M && M.client)
|
||||
|
||||
@@ -341,6 +341,10 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
/obj/item/proc/on_found(mob/finder as mob)
|
||||
return
|
||||
|
||||
// called when the giver gives it to the receiver
|
||||
/obj/item/proc/on_give(mob/living/carbon/giver, mob/living/carbon/receiver)
|
||||
return
|
||||
|
||||
// called after an item is placed in an equipment slot
|
||||
// user is mob that equipped it
|
||||
// slot uses the slot_X defines found in setup.dm
|
||||
|
||||
@@ -91,15 +91,15 @@
|
||||
color = "#FFD7A7"
|
||||
switch(new_appearance)
|
||||
if("Assistant")
|
||||
name = "[pick(first_names_male)] [pick(last_names)]"
|
||||
name = "[pick(GLOB.first_names_male)] [pick(GLOB.last_names)]"
|
||||
desc = "A cardboard cutout of an assistant."
|
||||
icon_state = "cutout_greytide"
|
||||
if("Clown")
|
||||
name = pick(clown_names)
|
||||
name = pick(GLOB.clown_names)
|
||||
desc = "A cardboard cutout of a clown. You get the feeling that it should be in a corner."
|
||||
icon_state = "cutout_clown"
|
||||
if("Mime")
|
||||
name = pick(mime_names)
|
||||
name = pick(GLOB.mime_names)
|
||||
desc = "...(A cardboard cutout of a mime.)"
|
||||
icon_state = "cutout_mime"
|
||||
if("Traitor")
|
||||
@@ -123,7 +123,7 @@
|
||||
desc = "A cardboard cutout of a revolutionary."
|
||||
icon_state = "cutout_viva"
|
||||
if("Wizard")
|
||||
name = "[pick(wizard_first)], [pick(wizard_second)]"
|
||||
name = "[pick(GLOB.wizard_first)], [pick(GLOB.wizard_second)]"
|
||||
desc = "A cardboard cutout of a wizard."
|
||||
icon_state = "cutout_wizard"
|
||||
if("Shadowling")
|
||||
@@ -145,7 +145,7 @@
|
||||
// desc = "A cardboard cutout of an ash walker."
|
||||
// icon_state = "cutout_free_antag"
|
||||
if("Deathsquad Officer")
|
||||
name = pick(commando_names)
|
||||
name = pick(GLOB.commando_names)
|
||||
desc = "A cardboard cutout of a death commando."
|
||||
icon_state = "cutout_deathsquad"
|
||||
if("Ian")
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
/obj/item/powersink/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
processing_power_items.Remove(src)
|
||||
GLOB.processing_power_items.Remove(src)
|
||||
PN = null
|
||||
attached = null
|
||||
return ..()
|
||||
@@ -54,7 +54,7 @@
|
||||
else
|
||||
if(mode == 2)
|
||||
processing_objects.Remove(src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite
|
||||
processing_power_items.Remove(src)
|
||||
GLOB.processing_power_items.Remove(src)
|
||||
anchored = 0
|
||||
mode = 0
|
||||
src.visible_message("<span class='notice'>[user] detaches [src] from the cable!</span>")
|
||||
@@ -77,14 +77,14 @@
|
||||
mode = 2
|
||||
icon_state = "powersink1"
|
||||
processing_objects.Add(src)
|
||||
processing_power_items.Add(src)
|
||||
GLOB.processing_power_items.Add(src)
|
||||
if(2) //This switch option wasn't originally included. It exists now. --NeoFite
|
||||
src.visible_message("<span class='notice'>[user] deactivates [src]!</span>")
|
||||
mode = 1
|
||||
set_light(0)
|
||||
icon_state = "powersink0"
|
||||
processing_objects.Remove(src)
|
||||
processing_power_items.Remove(src)
|
||||
GLOB.processing_power_items.Remove(src)
|
||||
|
||||
/obj/item/powersink/pwr_drain()
|
||||
if(!attached)
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
/obj/item/radio/beacon/New()
|
||||
..()
|
||||
code = "[code] ([beacons.len + 1])"
|
||||
beacons += src
|
||||
code = "[code] ([GLOB.beacons.len + 1])"
|
||||
GLOB.beacons += src
|
||||
|
||||
/obj/item/radio/beacon/Destroy()
|
||||
beacons -= src
|
||||
GLOB.beacons -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/radio/beacon/emag_act(user as mob)
|
||||
|
||||
@@ -49,11 +49,11 @@
|
||||
/obj/item/radio/headset/handle_message_mode(mob/living/M as mob, message, channel)
|
||||
if(channel == "special")
|
||||
if(translate_binary)
|
||||
var/datum/language/binary = all_languages["Robot Talk"]
|
||||
var/datum/language/binary = GLOB.all_languages["Robot Talk"]
|
||||
binary.broadcast(M, message)
|
||||
return RADIO_CONNECTION_NON_SUBSPACE
|
||||
if(translate_hive)
|
||||
var/datum/language/hivemind = all_languages["Hivemind"]
|
||||
var/datum/language/hivemind = GLOB.all_languages["Hivemind"]
|
||||
hivemind.broadcast(M, message)
|
||||
return RADIO_CONNECTION_NON_SUBSPACE
|
||||
return RADIO_CONNECTION_FAIL
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
dir=ndir
|
||||
b_stat=1
|
||||
on = 0
|
||||
global_intercoms.Add(src)
|
||||
GLOB.global_intercoms.Add(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/radio/intercom/department/medbay/New()
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
/obj/item/radio/intercom/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
global_intercoms.Remove(src)
|
||||
GLOB.global_intercoms.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/item/radio/intercom/attack_ai(mob/user as mob)
|
||||
|
||||
@@ -69,7 +69,7 @@ var/global/list/default_medbay_channels = list(
|
||||
wires = new(src)
|
||||
|
||||
internal_channels = default_internal_channels.Copy()
|
||||
global_radios |= src
|
||||
GLOB.global_radios |= src
|
||||
|
||||
/obj/item/radio/Destroy()
|
||||
QDEL_NULL(wires)
|
||||
@@ -78,7 +78,7 @@ var/global/list/default_medbay_channels = list(
|
||||
for(var/ch_name in channels)
|
||||
radio_controller.remove_object(src, radiochannels[ch_name])
|
||||
radio_connection = null
|
||||
global_radios -= src
|
||||
GLOB.global_radios -= src
|
||||
follow_target = null
|
||||
return ..()
|
||||
|
||||
@@ -250,7 +250,7 @@ var/global/list/default_medbay_channels = list(
|
||||
A.role = role
|
||||
A.message = message
|
||||
var/jammed = FALSE
|
||||
for(var/obj/item/jammer/jammer in active_jammers)
|
||||
for(var/obj/item/jammer/jammer in GLOB.active_jammers)
|
||||
if(get_dist(get_turf(src), get_turf(jammer)) < jammer.range)
|
||||
jammed = TRUE
|
||||
break
|
||||
@@ -342,7 +342,7 @@ var/global/list/default_medbay_channels = list(
|
||||
var/turf/position = get_turf(src)
|
||||
|
||||
var/jammed = FALSE
|
||||
for(var/obj/item/jammer/jammer in active_jammers)
|
||||
for(var/obj/item/jammer/jammer in GLOB.active_jammers)
|
||||
if(get_dist(position, get_turf(jammer)) < jammer.range)
|
||||
jammed = TRUE
|
||||
break
|
||||
|
||||
@@ -228,7 +228,7 @@ REAGENT SCANNER
|
||||
var/blood_percent = round((H.blood_volume / BLOOD_VOLUME_NORMAL)*100)
|
||||
var/blood_type = H.b_type
|
||||
if(blood_id != "blood")//special blood substance
|
||||
var/datum/reagent/R = chemical_reagents_list[blood_id]
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id]
|
||||
if(R)
|
||||
blood_type = R.name
|
||||
else
|
||||
|
||||
@@ -158,13 +158,13 @@ effective or pretty fucking useless.
|
||||
var/range = 12
|
||||
|
||||
/obj/item/jammer/Destroy()
|
||||
active_jammers -= src
|
||||
GLOB.active_jammers -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/jammer/attack_self(mob/user)
|
||||
to_chat(user,"<span class='notice'>You [active ? "deactivate" : "activate"] the [src].</span>")
|
||||
active = !active
|
||||
if(active)
|
||||
active_jammers |= src
|
||||
GLOB.active_jammers |= src
|
||||
else
|
||||
active_jammers -= src
|
||||
GLOB.active_jammers -= src
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/random_reagent/New()
|
||||
..()
|
||||
var/list/possible_chems = chemical_reagents_list.Copy()
|
||||
var/list/possible_chems = GLOB.chemical_reagents_list.Copy()
|
||||
possible_chems -= blocked_chems.Copy()
|
||||
var/datum/reagent/R = pick(possible_chems)
|
||||
if(rare_chemicals.Find(R))
|
||||
@@ -186,7 +186,7 @@
|
||||
var/obj/item/reagent_containers/glass/bottle/B = new(src)
|
||||
B.reagents.add_reagent(chem, B.volume)
|
||||
if(prob(85))
|
||||
var/datum/reagent/r = chemical_reagents_list[chem]
|
||||
var/datum/reagent/r = GLOB.chemical_reagents_list[chem]
|
||||
B.name = "[r.name] bottle"
|
||||
// B.identify_probability = 100
|
||||
else
|
||||
|
||||
@@ -229,12 +229,12 @@
|
||||
if(!M.brainmob.key)
|
||||
var/ghost_can_reenter = 0
|
||||
if(M.brainmob.mind)
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
for(var/mob/dead/observer/G in GLOB.player_list)
|
||||
if(G.can_reenter_corpse && G.mind == M.brainmob.mind)
|
||||
ghost_can_reenter = 1
|
||||
break
|
||||
for(var/mob/living/simple_animal/S in player_list)
|
||||
if(S in respawnable_list)
|
||||
for(var/mob/living/simple_animal/S in GLOB.player_list)
|
||||
if(S in GLOB.respawnable_list)
|
||||
ghost_can_reenter = 1
|
||||
break
|
||||
if(!ghost_can_reenter)
|
||||
|
||||
@@ -90,13 +90,13 @@
|
||||
return 0
|
||||
|
||||
if(!R.key)
|
||||
for(var/mob/dead/observer/ghost in player_list)
|
||||
for(var/mob/dead/observer/ghost in GLOB.player_list)
|
||||
if(ghost.mind && ghost.mind.current == R)
|
||||
R.key = ghost.key
|
||||
|
||||
R.stat = CONSCIOUS
|
||||
dead_mob_list -= R //please never forget this ever kthx
|
||||
living_mob_list += R
|
||||
GLOB.dead_mob_list -= R //please never forget this ever kthx
|
||||
GLOB.living_mob_list += R
|
||||
R.notify_ai(1)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -47,7 +47,6 @@ var/global/list/datum/stack_recipe/rod_recipes = list ( \
|
||||
|
||||
if(WT.remove_fuel(0,user))
|
||||
var/obj/item/stack/sheet/metal/new_item = new(user.loc)
|
||||
new_item.add_to_stacks(user)
|
||||
if(new_item.get_amount() <= 0)
|
||||
// stack was moved into another one on the pile
|
||||
new_item = locate() in user.loc
|
||||
|
||||
@@ -58,7 +58,6 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
|
||||
var/obj/item/stack/rods/V = W
|
||||
var/obj/item/stack/sheet/rglass/RG = new (user.loc)
|
||||
RG.add_fingerprint(user)
|
||||
RG.add_to_stacks(user)
|
||||
V.use(1)
|
||||
var/obj/item/stack/sheet/glass/G = src
|
||||
src = null
|
||||
@@ -124,7 +123,6 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
|
||||
var/obj/item/stack/rods/V = W
|
||||
var/obj/item/stack/sheet/plasmarglass/RG = new (user.loc)
|
||||
RG.add_fingerprint(user)
|
||||
RG.add_to_stacks(user)
|
||||
V.use(1)
|
||||
var/obj/item/stack/sheet/glass/G = src
|
||||
src = null
|
||||
|
||||
@@ -19,7 +19,7 @@ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \
|
||||
null, \
|
||||
new/datum/stack_recipe("Assistant Statue", /obj/structure/statue/sandstone/assistant, 5, one_per_turf = 1, on_floor = 1), \
|
||||
null, \
|
||||
new/datum/stack_recipe("Breakdown into sand", /obj/item/ore/glass, 1, one_per_turf = 0, on_floor = 1), \
|
||||
new/datum/stack_recipe("Breakdown into sand", /obj/item/stack/ore/glass, 1, one_per_turf = 0, on_floor = 1), \
|
||||
)
|
||||
|
||||
var/global/list/datum/stack_recipe/silver_recipes = list ( \
|
||||
|
||||
@@ -14,15 +14,34 @@
|
||||
var/singular_name
|
||||
var/amount = 1
|
||||
var/to_transfer = 0
|
||||
var/max_amount //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount
|
||||
var/max_amount = 50 //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount
|
||||
var/merge_type = null // This path and its children should merge with this stack, defaults to src.type
|
||||
|
||||
/obj/item/stack/New(var/loc, var/amt = null)
|
||||
/obj/item/stack/New(loc, new_amount, merge = TRUE)
|
||||
..()
|
||||
if(amt != null) //Allow for stacks with the amount=0
|
||||
amount = amt
|
||||
if(new_amount != null)
|
||||
amount = new_amount
|
||||
while(amount > max_amount)
|
||||
amount -= max_amount
|
||||
new type(loc, max_amount, FALSE)
|
||||
if(!merge_type)
|
||||
merge_type = type
|
||||
if(merge && !(amount >= max_amount))
|
||||
for(var/obj/item/stack/S in loc)
|
||||
if(S.merge_type == merge_type)
|
||||
merge(S)
|
||||
|
||||
/obj/item/stack/Crossed(obj/O)
|
||||
if(amount >= max_amount || ismob(loc)) // Prevents unnecessary call. Also prevents merging stack automatically in a mob's inventory
|
||||
return
|
||||
if(istype(O, merge_type) && !O.throwing)
|
||||
merge(O)
|
||||
..()
|
||||
|
||||
/obj/item/stack/hitby(atom/movable/AM, skipcatch, hitpush)
|
||||
if(istype(AM, merge_type) && !(amount >= max_amount))
|
||||
merge(AM)
|
||||
..()
|
||||
|
||||
/obj/item/stack/Destroy()
|
||||
if(usr && usr.machine == src)
|
||||
@@ -35,6 +54,11 @@
|
||||
to_chat(user, "There are [amount] [singular_name]\s in the stack.")
|
||||
else
|
||||
to_chat(user, "There are [amount] [name]\s in the stack.")
|
||||
to_chat(user,"<span class='notice'>Alt-click to take a custom amount.</span>")
|
||||
|
||||
/obj/item/stack/proc/add(newamount)
|
||||
amount += newamount
|
||||
update_icon()
|
||||
|
||||
/obj/item/stack/attack_self(mob/user)
|
||||
list_recipes(user)
|
||||
@@ -141,7 +165,6 @@
|
||||
|
||||
var/datum/stack_recipe/R = recipes_list[text2num(href_list["make"])]
|
||||
var/multiplier = text2num(href_list["multiplier"])
|
||||
var/atom/creation_loc = (loc == usr) ? usr.loc : loc
|
||||
if(!multiplier)
|
||||
multiplier = 1
|
||||
|
||||
@@ -156,11 +179,11 @@
|
||||
to_chat(usr, "<span class='warning'>The [R.title] won't fit here!</span>")
|
||||
return FALSE
|
||||
|
||||
if(R.one_per_turf && (locate(R.result_type) in creation_loc))
|
||||
if(R.one_per_turf && (locate(R.result_type) in usr.drop_location()))
|
||||
to_chat(usr, "<span class='warning'>There is another [R.title] here!</span>")
|
||||
return 0
|
||||
|
||||
if(R.on_floor && !istype(creation_loc, /turf/simulated))
|
||||
if(R.on_floor && !istype(usr.drop_location(), /turf/simulated))
|
||||
to_chat(usr, "<span class='warning'>\The [R.title] must be constructed on the floor!</span>")
|
||||
return 0
|
||||
|
||||
@@ -172,16 +195,16 @@
|
||||
if(amount < R.req_amount * multiplier)
|
||||
return
|
||||
|
||||
var/atom/O = new R.result_type(creation_loc)
|
||||
var/atom/O
|
||||
if(R.max_res_amount > 1) //Is it a stack?
|
||||
O = new R.result_type(usr.drop_location(), R.res_amount * multiplier)
|
||||
else
|
||||
O = new R.result_type(usr.drop_location())
|
||||
O.setDir(usr.dir)
|
||||
if(R.max_res_amount > 1)
|
||||
var/obj/item/stack/new_item = O
|
||||
new_item.amount = R.res_amount * multiplier
|
||||
//new_item.add_to_stacks(usr)
|
||||
use(R.req_amount * multiplier)
|
||||
|
||||
R.post_build(src, O)
|
||||
|
||||
amount -= R.req_amount * multiplier
|
||||
if(amount < 1) // Just in case a stack's amount ends up fractional somehow
|
||||
var/oldsrc = src
|
||||
src = null //dont kill proc after del()
|
||||
@@ -202,37 +225,23 @@
|
||||
interact(usr)
|
||||
return
|
||||
|
||||
/obj/item/stack/proc/use(used)
|
||||
/obj/item/stack/proc/use(used, check = TRUE)
|
||||
if(check && zero_amount())
|
||||
return FALSE
|
||||
if(amount < used)
|
||||
return 0
|
||||
return FALSE
|
||||
amount -= used
|
||||
if(amount < 1) // Just in case a stack's amount ends up fractional somehow
|
||||
if(amount < 1)
|
||||
if(isrobot(loc))
|
||||
var/mob/living/silicon/robot/R = loc //Horrifying cyborg snowflake code that allows stacks to GC and cyborgs not to horrendously break
|
||||
var/mob/living/silicon/robot/R = loc
|
||||
if(locate(src) in R.module.modules)
|
||||
R.module.modules -= src
|
||||
if(usr)
|
||||
usr.unEquip(src, TRUE) // this has to be unEquip() over drop_item() or something similar because of cyborgs
|
||||
qdel(src)
|
||||
if(R)
|
||||
R.unEquip(src, TRUE)
|
||||
zero_amount()
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/item/stack/proc/add_to_stacks(mob/usr)
|
||||
var/obj/item/stack/oldsrc = src
|
||||
src = null
|
||||
for(var/obj/item/stack/item in usr.loc)
|
||||
if(item == oldsrc)
|
||||
continue
|
||||
if(!istype(item, oldsrc.type))
|
||||
continue
|
||||
if(item.amount >= item.max_amount)
|
||||
continue
|
||||
oldsrc.attackby(item, usr)
|
||||
to_chat(usr, "You add new [item.singular_name] to the stack. It now contains [item.amount] [item.singular_name]\s.")
|
||||
if(oldsrc.amount <= 0)
|
||||
break
|
||||
oldsrc.update_icon()
|
||||
|
||||
/obj/item/stack/proc/get_amount()
|
||||
return amount
|
||||
|
||||
@@ -252,46 +261,69 @@
|
||||
return F
|
||||
|
||||
/obj/item/stack/attack_hand(mob/user)
|
||||
if(user.is_in_inactive_hand(src))
|
||||
var/obj/item/stack/F = split(user, 1)
|
||||
user.put_in_hands(F)
|
||||
if(user.is_in_inactive_hand(src) && amount > 1)
|
||||
change_stack(user, 1)
|
||||
if(src && usr.machine == src)
|
||||
spawn(0)
|
||||
interact(usr)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/stack/AltClick(mob/living/user)
|
||||
if(!istype(user) || user.incapacitated())
|
||||
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
||||
return
|
||||
if(!in_range(src, user) || issilicon(usr))
|
||||
return
|
||||
if(amount < 1)
|
||||
return
|
||||
//get amount from user
|
||||
var/min = 0
|
||||
var/max = get_amount()
|
||||
var/stackmaterial = round(input(user, "How many sheets do you wish to take out of this stack? (Maximum: [max])") as num)
|
||||
if(stackmaterial == null || stackmaterial <= min || stackmaterial > get_amount())
|
||||
return
|
||||
change_stack(user,stackmaterial)
|
||||
to_chat(user, "<span class='notice'>You take [stackmaterial] sheets out of the stack.</span>")
|
||||
|
||||
/obj/item/stack/proc/change_stack(mob/user,amount)
|
||||
var/obj/item/stack/F = new type(user, amount, FALSE)
|
||||
. = F
|
||||
F.copy_evidences(src)
|
||||
user.put_in_hands(F)
|
||||
add_fingerprint(user)
|
||||
F.add_fingerprint(user)
|
||||
use(amount)
|
||||
|
||||
/obj/item/stack/attackby(obj/item/W, mob/user, params)
|
||||
..()
|
||||
if(istype(W, merge_type))
|
||||
var/obj/item/stack/S = W
|
||||
if(S.amount >= max_amount)
|
||||
return 1
|
||||
|
||||
if(user.is_in_inactive_hand(src))
|
||||
var/desired = input("How much would you like to transfer from this stack?", "How much?", 1) as null|num
|
||||
if(!desired)
|
||||
return
|
||||
desired = round(desired)
|
||||
to_transfer = max(1,min(desired,S.max_amount-S.amount,src.amount))
|
||||
else
|
||||
to_transfer = min(src.amount, S.max_amount-S.amount)
|
||||
|
||||
S.amount += to_transfer
|
||||
if(S && usr.machine == S)
|
||||
spawn(0)
|
||||
S.interact(usr)
|
||||
use(to_transfer)
|
||||
if(src && usr.machine == src)
|
||||
spawn(0)
|
||||
interact(usr)
|
||||
S.update_icon()
|
||||
merge(S)
|
||||
to_chat(user, "<span class='notice'>Your [S.name] stack now contains [S.get_amount()] [S.singular_name]\s.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/proc/zero_amount()
|
||||
if(amount < 1)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/item/stack/proc/merge(obj/item/stack/S) //Merge src into S, as much as possible
|
||||
if(QDELETED(S) || QDELETED(src) || S == src) //amusingly this can cause a stack to consume itself, let's not allow that.
|
||||
return FALSE
|
||||
var/transfer = get_amount()
|
||||
transfer = min(transfer, S.max_amount - S.amount)
|
||||
if(transfer <= 0)
|
||||
return
|
||||
if(pulledby)
|
||||
pulledby.start_pulling(S)
|
||||
S.copy_evidences(src)
|
||||
S.add(transfer)
|
||||
use(transfer)
|
||||
|
||||
/obj/item/stack/proc/copy_evidences(obj/item/stack/from)
|
||||
blood_DNA = from.blood_DNA
|
||||
fingerprints = from.fingerprints
|
||||
fingerprintshidden = from.fingerprintshidden
|
||||
fingerprintslast = from.fingerprintslast
|
||||
//TODO bloody overlay
|
||||
|
||||
@@ -43,7 +43,7 @@ AI MODULES
|
||||
src.transmitInstructions(comp.current, usr)
|
||||
to_chat(comp.current, "These are your laws now:")
|
||||
comp.current.show_laws()
|
||||
for(var/mob/living/silicon/robot/R in mob_list)
|
||||
for(var/mob/living/silicon/robot/R in GLOB.mob_list)
|
||||
if(R.lawupdate && (R.connected_ai == comp.current))
|
||||
to_chat(R, "These are your laws now:")
|
||||
R.show_laws()
|
||||
|
||||
@@ -57,7 +57,7 @@ RCD
|
||||
spark_system = new /datum/effect_system/spark_spread
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
rcd_list += src
|
||||
GLOB.rcd_list += src
|
||||
door_accesses_list = list()
|
||||
for(var/access in get_all_accesses())
|
||||
door_accesses_list[++door_accesses_list.len] = list("name" = get_access_desc(access), "id" = access, "enabled" = (access in door_accesses))
|
||||
@@ -65,7 +65,7 @@ RCD
|
||||
|
||||
/obj/item/rcd/Destroy()
|
||||
QDEL_NULL(spark_system)
|
||||
rcd_list -= src
|
||||
GLOB.rcd_list -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/rcd/attackby(obj/item/W, mob/user, params)
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
/obj/item/implant/abductor/proc/get_team_console(var/team)
|
||||
var/obj/machinery/abductor/console/console
|
||||
for(var/obj/machinery/abductor/console/c in abductor_equipment)
|
||||
for(var/obj/machinery/abductor/console/c in GLOB.abductor_equipment)
|
||||
if(c.team == team)
|
||||
console = c
|
||||
break
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
/obj/item/implant/chem/New()
|
||||
..()
|
||||
create_reagents(50)
|
||||
tracked_implants += src
|
||||
GLOB.tracked_implants += src
|
||||
|
||||
/obj/item/implant/chem/Destroy()
|
||||
tracked_implants -= src
|
||||
GLOB.tracked_implants -= src
|
||||
return ..()
|
||||
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
|
||||
/obj/item/implant/tracking/New()
|
||||
..()
|
||||
tracked_implants += src
|
||||
GLOB.tracked_implants += src
|
||||
|
||||
/obj/item/implant/tracking/Destroy()
|
||||
tracked_implants -= src
|
||||
GLOB.tracked_implants -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/implant/tracking/get_data()
|
||||
|
||||
@@ -183,6 +183,7 @@
|
||||
attack_verb = list("burnt","singed")
|
||||
processing_objects.Add(src)
|
||||
update_icon()
|
||||
return TRUE
|
||||
|
||||
/obj/item/match/proc/matchburnout()
|
||||
if(lit)
|
||||
@@ -196,6 +197,7 @@
|
||||
desc = "A match. This one has seen better days."
|
||||
attack_verb = list("flicked")
|
||||
processing_objects.Remove(src)
|
||||
return TRUE
|
||||
|
||||
/obj/item/match/dropped(mob/user)
|
||||
matchburnout()
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
/obj/item/mop/New()
|
||||
..()
|
||||
create_reagents(mopcap)
|
||||
janitorial_equipment += src
|
||||
GLOB.janitorial_equipment += src
|
||||
|
||||
/obj/item/mop/Destroy()
|
||||
janitorial_equipment -= src
|
||||
GLOB.janitorial_equipment -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/mop/proc/clean(turf/simulated/A)
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
var/datum/robolimb/robohead = all_robolimbs[C.model]
|
||||
if(H.gender == MALE || isvulpkanin(H))
|
||||
if(C.dna.species)
|
||||
for(var/i in facial_hair_styles_list)
|
||||
var/datum/sprite_accessory/facial_hair/tmp_facial = facial_hair_styles_list[i]
|
||||
for(var/i in GLOB.facial_hair_styles_list)
|
||||
var/datum/sprite_accessory/facial_hair/tmp_facial = GLOB.facial_hair_styles_list[i]
|
||||
if(C.dna.species.name in tmp_facial.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human hair styles.
|
||||
if(C.dna.species.bodyflags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list.
|
||||
if(robohead.is_monitor)
|
||||
@@ -53,13 +53,13 @@
|
||||
to_chat(user, "<span class='warning'>You are unable to find anything on [H]'s face worth cutting. How disappointing.</span>")
|
||||
return
|
||||
else
|
||||
species_facial_hair = facial_hair_styles_list
|
||||
species_facial_hair = GLOB.facial_hair_styles_list
|
||||
var/f_new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in species_facial_hair
|
||||
//handle normal hair
|
||||
var/list/species_hair = list()
|
||||
if(C.dna.species)
|
||||
for(var/i in hair_styles_public_list)
|
||||
var/datum/sprite_accessory/hair/tmp_hair = hair_styles_public_list[i]
|
||||
for(var/i in GLOB.hair_styles_public_list)
|
||||
var/datum/sprite_accessory/hair/tmp_hair = GLOB.hair_styles_public_list[i]
|
||||
if(C.dna.species.name in tmp_hair.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human facial hair styles.
|
||||
if(C.dna.species.bodyflags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list.
|
||||
if(robohead.is_monitor)
|
||||
@@ -76,7 +76,7 @@
|
||||
to_chat(user, "<span class='warning'>You are unable to find anything on [H]'s head worth cutting. How disappointing.</span>")
|
||||
return
|
||||
else
|
||||
species_hair = hair_styles_public_list
|
||||
species_hair = GLOB.hair_styles_public_list
|
||||
var/h_new_style = input(user, "Select a hair style", "Grooming") as null|anything in species_hair
|
||||
user.visible_message("<span class='notice'>[user] starts cutting [M]'s hair!</span>", "<span class='notice'>You start cutting [M]'s hair!</span>") //arguments for this are: 1. what others see 2. what the user sees. --Fixed grammar, (TGameCo)
|
||||
playsound(loc, 'sound/goonstation/misc/Scissor.ogg', 100, 1)
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
storage_slots = 50
|
||||
max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
can_hold = list(/obj/item/ore)
|
||||
can_hold = list(/obj/item/stack/ore)
|
||||
|
||||
/obj/item/storage/bag/ore/cyborg
|
||||
name = "cyborg mining satchel"
|
||||
|
||||
@@ -60,12 +60,12 @@
|
||||
new /obj/item/wirecutters(src)
|
||||
new /obj/item/t_scanner(src)
|
||||
new /obj/item/crowbar(src)
|
||||
new /obj/item/stack/cable_coil(src, 30, pickedcolor)
|
||||
new /obj/item/stack/cable_coil(src, 30, pickedcolor)
|
||||
new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor)
|
||||
new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor)
|
||||
if(prob(5))
|
||||
new /obj/item/clothing/gloves/color/yellow(src)
|
||||
else
|
||||
new /obj/item/stack/cable_coil(src, 30, pickedcolor)
|
||||
new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor)
|
||||
|
||||
/obj/item/storage/toolbox/syndicate
|
||||
name = "suspicious looking toolbox"
|
||||
@@ -108,7 +108,7 @@
|
||||
new /obj/item/wrench(src)
|
||||
new /obj/item/weldingtool(src)
|
||||
new /obj/item/crowbar(src)
|
||||
new /obj/item/stack/cable_coil(src, 30, pickedcolor)
|
||||
new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor)
|
||||
new /obj/item/wirecutters(src)
|
||||
new /obj/item/multitool(src)
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
H.forcesay(hit_appends)
|
||||
H.forcesay(GLOB.hit_appends)
|
||||
|
||||
/obj/item/melee/baton/emp_act(severity)
|
||||
if(bcell)
|
||||
|
||||
@@ -59,14 +59,14 @@ Frequency:
|
||||
if(sr)
|
||||
temp += "<B>Located Beacons:</B><BR>"
|
||||
|
||||
for(var/obj/item/radio/beacon/W in beacons)
|
||||
for(var/obj/item/radio/beacon/W in GLOB.beacons)
|
||||
if(W.frequency == frequency && !W.syndicate)
|
||||
if(W && W.z == z)
|
||||
var/turf/TB = get_turf(W)
|
||||
temp += "[W.code]: [TB.x], [TB.y], [TB.z]<BR>"
|
||||
|
||||
temp += "<B>Located Implants:</B><BR>"
|
||||
for(var/obj/item/implant/tracking/T in tracked_implants)
|
||||
for(var/obj/item/implant/tracking/T in GLOB.tracked_implants)
|
||||
if(!T.implanted || !T.imp_in)
|
||||
continue
|
||||
|
||||
|
||||
@@ -147,6 +147,14 @@
|
||||
wield(user)
|
||||
..()
|
||||
|
||||
/obj/item/twohanded/required/on_give(mob/living/carbon/giver, mob/living/carbon/receiver)
|
||||
var/obj/item/twohanded/required/H = receiver.get_inactive_hand()
|
||||
if(H != null) //Check if he can wield it
|
||||
receiver.drop_item() //Can't wear it so drop it
|
||||
to_chat(receiver, "<span class='notice'>[src] is too cumbersome to carry in one hand!</span>")
|
||||
return
|
||||
equipped(receiver,receiver.hand ? slot_l_hand : slot_r_hand)
|
||||
|
||||
/obj/item/twohanded/required/equipped(mob/user, slot)
|
||||
..()
|
||||
if(slot == slot_l_hand || slot == slot_r_hand)
|
||||
@@ -438,7 +446,7 @@
|
||||
if(on)
|
||||
playsound(loc, 'sound/weapons/chainsawstart.ogg', 50, 1)
|
||||
force = on ? force_on : initial(force)
|
||||
throwforce = on ? force_on : initial(force)
|
||||
throwforce = on ? force_on : initial(throwforce)
|
||||
icon_state = "gchainsaw_[on ? "on" : "off"]"
|
||||
|
||||
if(hitsound == "swing_hit")
|
||||
@@ -453,6 +461,16 @@
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/twohanded/required/chainsaw/attack_hand(mob/user)
|
||||
. = ..()
|
||||
force = on ? force_on : initial(force)
|
||||
throwforce = on ? force_on : initial(throwforce)
|
||||
|
||||
/obj/item/twohanded/required/chainsaw/on_give(mob/living/carbon/giver, mob/living/carbon/receiver)
|
||||
. = ..()
|
||||
force = on ? force_on : initial(force)
|
||||
throwforce = on ? force_on : initial(throwforce)
|
||||
|
||||
/obj/item/twohanded/required/chainsaw/doomslayer
|
||||
name = "OOOH BABY"
|
||||
desc = "<span class='warning'>VRRRRRRR!!!</span>"
|
||||
|
||||
@@ -65,9 +65,9 @@
|
||||
// Nada
|
||||
|
||||
/obj/Destroy()
|
||||
machines -= src
|
||||
GLOB.machines -= src
|
||||
processing_objects -= src
|
||||
fast_processing -= src
|
||||
GLOB.fast_processing -= src
|
||||
SSnanoui.close_uis(src)
|
||||
return ..()
|
||||
|
||||
@@ -287,14 +287,14 @@ a {
|
||||
return
|
||||
speed_process = TRUE
|
||||
processing_objects.Remove(src)
|
||||
fast_processing.Add(src)
|
||||
GLOB.fast_processing.Add(src)
|
||||
|
||||
/obj/proc/makeNormalProcess()
|
||||
if(!speed_process)
|
||||
return
|
||||
speed_process = FALSE
|
||||
processing_objects.Add(src)
|
||||
fast_processing.Remove(src)
|
||||
GLOB.fast_processing.Remove(src)
|
||||
|
||||
/obj/vv_get_dropdown()
|
||||
. = ..()
|
||||
|
||||
@@ -91,12 +91,11 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/emag_act(mob/user)
|
||||
if(!broken)
|
||||
broken = 1
|
||||
locked = 0
|
||||
desc = "It appears to be broken."
|
||||
broken = TRUE
|
||||
locked = FALSE
|
||||
icon_state = icon_off
|
||||
flick(icon_broken, src)
|
||||
to_chat(user, "<span class='notice'>You unlock \the [src].</span>")
|
||||
to_chat(user, "<span class='notice'>You break the lock on \the [src].</span>")
|
||||
|
||||
/obj/structure/closet/secure_closet/attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -69,8 +69,8 @@
|
||||
break
|
||||
if(O.density || O.anchored || istype(O,/obj/structure/closet))
|
||||
continue
|
||||
if(istype(O, /obj/structure/stool/bed)) //This is only necessary because of rollerbeds and swivel chairs.
|
||||
var/obj/structure/stool/bed/B = O
|
||||
if(istype(O, /obj/structure/bed)) //This is only necessary because of rollerbeds and swivel chairs.
|
||||
var/obj/structure/bed/B = O
|
||||
if(B.buckled_mob)
|
||||
continue
|
||||
O.forceMove(src)
|
||||
|
||||
@@ -21,33 +21,33 @@
|
||||
switch(choice)
|
||||
if("Underwear")
|
||||
var/list/valid_underwear = list()
|
||||
for(var/underwear in underwear_list)
|
||||
var/datum/sprite_accessory/S = underwear_list[underwear]
|
||||
for(var/underwear in GLOB.underwear_list)
|
||||
var/datum/sprite_accessory/S = GLOB.underwear_list[underwear]
|
||||
if(!(H.dna.species.name in S.species_allowed))
|
||||
continue
|
||||
valid_underwear[underwear] = underwear_list[underwear]
|
||||
valid_underwear[underwear] = GLOB.underwear_list[underwear]
|
||||
var/new_underwear = input(user, "Choose your underwear:", "Changing") as null|anything in valid_underwear
|
||||
if(new_underwear)
|
||||
H.underwear = new_underwear
|
||||
|
||||
if("Undershirt")
|
||||
var/list/valid_undershirts = list()
|
||||
for(var/undershirt in undershirt_list)
|
||||
var/datum/sprite_accessory/S = undershirt_list[undershirt]
|
||||
for(var/undershirt in GLOB.undershirt_list)
|
||||
var/datum/sprite_accessory/S = GLOB.undershirt_list[undershirt]
|
||||
if(!(H.dna.species.name in S.species_allowed))
|
||||
continue
|
||||
valid_undershirts[undershirt] = undershirt_list[undershirt]
|
||||
valid_undershirts[undershirt] = GLOB.undershirt_list[undershirt]
|
||||
var/new_undershirt = input(user, "Choose your undershirt:", "Changing") as null|anything in valid_undershirts
|
||||
if(new_undershirt)
|
||||
H.undershirt = new_undershirt
|
||||
|
||||
if("Socks")
|
||||
var/list/valid_sockstyles = list()
|
||||
for(var/sockstyle in socks_list)
|
||||
var/datum/sprite_accessory/S = socks_list[sockstyle]
|
||||
for(var/sockstyle in GLOB.socks_list)
|
||||
var/datum/sprite_accessory/S = GLOB.socks_list[sockstyle]
|
||||
if(!(H.dna.species.name in S.species_allowed))
|
||||
continue
|
||||
valid_sockstyles[sockstyle] = socks_list[sockstyle]
|
||||
valid_sockstyles[sockstyle] = GLOB.socks_list[sockstyle]
|
||||
var/new_socks = input(user, "Choose your socks:", "Changing") as null|anything in valid_sockstyles
|
||||
if(new_socks)
|
||||
H.socks = new_socks
|
||||
|
||||
@@ -211,6 +211,7 @@
|
||||
layer = 5
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
force = 10
|
||||
force_wielded = 10
|
||||
throwforce = 13
|
||||
throw_speed = 2
|
||||
throw_range = 4
|
||||
@@ -222,9 +223,10 @@
|
||||
icon_state = "plant-36"
|
||||
|
||||
/obj/item/twohanded/required/kirbyplants/equipped(mob/living/user)
|
||||
. = ..()
|
||||
var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user)
|
||||
I.override = 1
|
||||
user.add_alt_appearance("sneaking_mission", I, player_list)
|
||||
user.add_alt_appearance("sneaking_mission", I, GLOB.player_list)
|
||||
|
||||
/obj/item/twohanded/required/kirbyplants/dropped(mob/living/user)
|
||||
..()
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
/obj/structure/janitorialcart/New()
|
||||
..()
|
||||
create_reagents(100)
|
||||
janitorial_equipment += src
|
||||
GLOB.janitorial_equipment += src
|
||||
|
||||
/obj/structure/janitorialcart/Destroy()
|
||||
janitorial_equipment -= src
|
||||
GLOB.janitorial_equipment -= src
|
||||
QDEL_NULL(mybag)
|
||||
QDEL_NULL(mymop)
|
||||
QDEL_NULL(myspray)
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
/obj/structure/mopbucket/New()
|
||||
..()
|
||||
create_reagents(100)
|
||||
janitorial_equipment += src
|
||||
GLOB.janitorial_equipment += src
|
||||
|
||||
/obj/structure/mopbucket/full/New()
|
||||
..()
|
||||
reagents.add_reagent("water", 100)
|
||||
|
||||
/obj/structure/mopbucket/Destroy()
|
||||
janitorial_equipment -= src
|
||||
GLOB.janitorial_equipment -= src
|
||||
return ..()
|
||||
|
||||
/obj/structure/mopbucket/examine(mob/user)
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
if(istype(A) && A.checkpass(PASSGLASS))
|
||||
return prob(60)
|
||||
|
||||
var/obj/structure/stool/bed/B = A
|
||||
if(istype(A, /obj/structure/stool/bed) && B.buckled_mob)//if it's a bed/chair and someone is buckled, it will not pass
|
||||
var/obj/structure/bed/B = A
|
||||
if(istype(A, /obj/structure/bed) && B.buckled_mob)//if it's a bed/chair and someone is buckled, it will not pass
|
||||
return 0
|
||||
|
||||
if(istype(A, /obj/structure/closet/cardboard))
|
||||
@@ -133,4 +133,4 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/plasticflaps/mining/CanAtmosPass(turf/T)
|
||||
return 0
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user