mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
Merge branch 'master' of https://github.com/tgstation/-tg-station into hold_it
# Conflicts: # code/modules/clothing/under/ties.dm
This commit is contained in:
@@ -61,7 +61,7 @@
|
||||
/obj/buckle_mob(mob/living/M, force = 0)
|
||||
. = ..()
|
||||
if(.)
|
||||
if(burn_state == ON_FIRE) //Sets the mob on fire if you buckle them to a burning atom/movableect
|
||||
if(resistance_flags & ON_FIRE) //Sets the mob on fire if you buckle them to a burning atom/movableect
|
||||
M.adjust_fire_stacks(1)
|
||||
M.IgniteMob()
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
density = 0
|
||||
opacity = 0
|
||||
anchored = 1
|
||||
unacidable = 1
|
||||
resistance_flags = FIRE_PROOF | UNACIDABLE
|
||||
var/atom/target
|
||||
var/ticks = 0
|
||||
var/target_strength = 0
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
name = "anomaly"
|
||||
desc = "A mysterious anomaly, seen commonly only in the region of space that the station orbits..."
|
||||
icon_state = "bhole3"
|
||||
unacidable = 1
|
||||
density = 0
|
||||
anchored = 1
|
||||
luminosity = 3
|
||||
|
||||
@@ -103,7 +103,7 @@ list(name = "- Carbon Dioxide", desc = " This informational poster teaches the v
|
||||
desc = "You probably shouldn't be holding this."
|
||||
icon = 'icons/obj/contraband.dmi'
|
||||
force = 0
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
var/serial_number = 0
|
||||
var/obj/structure/sign/poster/resulting_poster = null //The poster that will be created is initialised and stored through contraband/poster's constructor
|
||||
var/official = 0
|
||||
|
||||
@@ -17,6 +17,18 @@
|
||||
viruses = null
|
||||
return ..()
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xsplatter
|
||||
random_icon_states = list("xgibbl1", "xgibbl2", "xgibbl3", "xgibbl4", "xgibbl5")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs
|
||||
name = "xeno gibs"
|
||||
desc = "Gnarly..."
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "xgib1"
|
||||
layer = LOW_OBJ_LAYER
|
||||
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6")
|
||||
mergeable_decal = 0
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
@@ -31,20 +43,6 @@
|
||||
if (!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/replace_decal(obj/effect/decal/cleanable/C)
|
||||
return //gibs can stack, so gibspawner can work properly
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xsplatter
|
||||
random_icon_states = list("xgibbl1", "xgibbl2", "xgibbl3", "xgibbl4", "xgibbl5")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs
|
||||
name = "xeno gibs"
|
||||
desc = "Gnarly..."
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "xgib1"
|
||||
layer = LOW_OBJ_LAYER
|
||||
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/ex_act()
|
||||
return
|
||||
|
||||
|
||||
@@ -48,17 +48,29 @@
|
||||
icon_state = "gibbl5"
|
||||
layer = LOW_OBJ_LAYER
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6")
|
||||
mergeable_decal = 0
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/New()
|
||||
..()
|
||||
reagents.add_reagent("liquidgibs", 5)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/replace_decal(obj/effect/decal/cleanable/C)
|
||||
return
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
|
||||
return
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++)
|
||||
sleep(2)
|
||||
if (i > 0)
|
||||
var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc)
|
||||
for(var/datum/disease/D in src.viruses)
|
||||
var/datum/disease/ND = D.Copy(1)
|
||||
b.viruses += ND
|
||||
ND.holder = b
|
||||
if (!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
|
||||
|
||||
@@ -79,23 +91,6 @@
|
||||
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++)
|
||||
sleep(2)
|
||||
if (i > 0)
|
||||
var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc)
|
||||
for(var/datum/disease/D in src.viruses)
|
||||
var/datum/disease/ND = D.Copy(1)
|
||||
b.viruses += ND
|
||||
ND.holder = b
|
||||
if (!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/replace_decal(obj/effect/decal/cleanable/C)
|
||||
return //gibs can stack, so gibspawner can work properly
|
||||
|
||||
/obj/effect/decal/cleanable/blood/drip
|
||||
name = "drips of blood"
|
||||
desc = "It's red."
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
desc = "Ashes to ashes, dust to dust, and into space."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
mergeable_decal = 0
|
||||
|
||||
/obj/effect/decal/cleanable/ash/New()
|
||||
..()
|
||||
@@ -16,6 +17,15 @@
|
||||
pixel_x = rand(-5, 5)
|
||||
pixel_y = rand(-5, 5)
|
||||
|
||||
/obj/effect/decal/cleanable/ash/large
|
||||
name = "large pile of ashes"
|
||||
icon_state = "big_ash"
|
||||
|
||||
/obj/effect/decal/cleanable/ash/large/New()
|
||||
..()
|
||||
reagents.add_reagent("ash", 30) //double the amount of ash.
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/dirt
|
||||
name = "dirt"
|
||||
desc = "Someone should clean that up."
|
||||
@@ -62,6 +72,11 @@
|
||||
gender = NEUTER
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "molten"
|
||||
mergeable_decal = 0
|
||||
|
||||
/obj/effect/decal/cleanable/molten_object/large
|
||||
name = "big gooey grey mass"
|
||||
icon_state = "big_molten"
|
||||
|
||||
//Vomit (sorry)
|
||||
/obj/effect/decal/cleanable/vomit
|
||||
@@ -133,6 +148,7 @@
|
||||
desc = "The shredded remains of what appears to be clothing."
|
||||
icon_state = "shreds"
|
||||
gender = PLURAL
|
||||
mergeable_decal = 0
|
||||
|
||||
/obj/effect/decal/cleanable/shreds/New()
|
||||
pixel_x = rand(-5, 5)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7")
|
||||
blood_state = BLOOD_STATE_OIL
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
mergeable_decal = 0
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
@@ -25,9 +26,6 @@
|
||||
if (!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/replace_decal(obj/effect/decal/cleanable/C)
|
||||
return //robot debris can stack, so gibspawner can work properly
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/ex_act()
|
||||
return
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
var/list/random_icon_states = list()
|
||||
var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA
|
||||
var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints
|
||||
var/mergeable_decal = 1 //when two of these are on a same tile or do we need to merge them into just one?
|
||||
|
||||
/obj/effect/decal/cleanable/New()
|
||||
if (random_icon_states && length(src.random_icon_states) > 0)
|
||||
@@ -18,7 +19,8 @@
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C)
|
||||
qdel(C)
|
||||
if(mergeable_decal)
|
||||
qdel(C)
|
||||
|
||||
/obj/effect/decal/cleanable/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/reagent_containers/glass) || istype(W, /obj/item/weapon/reagent_containers/food/drinks))
|
||||
|
||||
@@ -9,7 +9,6 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
||||
/obj/effect/particle_effect
|
||||
name = "particle effect"
|
||||
mouse_opacity = 0
|
||||
unacidable = 1//So effects are not targeted by alien acid.
|
||||
pass_flags = PASSTABLE | PASSGRILLE
|
||||
|
||||
/obj/effect/particle_effect/New()
|
||||
|
||||
@@ -39,10 +39,11 @@
|
||||
|
||||
/obj/effect/particle_effect/foam/proc/kill_foam()
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
if(metal)
|
||||
var/obj/structure/foamedmetal/M = new(src.loc)
|
||||
M.metal = metal
|
||||
M.updateicon()
|
||||
switch(metal)
|
||||
if(1)
|
||||
new /obj/structure/foamedmetal(src.loc)
|
||||
if(2)
|
||||
new /obj/structure/foamedmetal/iron(src.loc)
|
||||
flick("[icon_state]-disolve", src)
|
||||
QDEL_IN(src, 5)
|
||||
|
||||
@@ -172,7 +173,7 @@
|
||||
density = 1
|
||||
opacity = 1 // changed in New()
|
||||
anchored = 1
|
||||
unacidable = 1
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
name = "foamed metal"
|
||||
desc = "A lightweight foamed metal wall."
|
||||
gender = PLURAL
|
||||
@@ -206,7 +207,7 @@
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/structure/foamedmetal/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/foamedmetal/blob_act(obj/structure/blob/B)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -281,3 +282,8 @@
|
||||
|
||||
/obj/structure/foamedmetal/CanAtmosPass()
|
||||
return !density
|
||||
|
||||
|
||||
/obj/structure/foamedmetal/iron
|
||||
icon_state = "ironfoam"
|
||||
metal = 2
|
||||
@@ -287,10 +287,10 @@
|
||||
var/more = ""
|
||||
if(M)
|
||||
more = "(<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>?</a>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[M]'>FLW</A>) "
|
||||
message_admins("A chemical smoke reaction has taken place in ([whereLink])[contained]. Last associated key is [carry.my_atom.fingerprintslast][more].", 0, 1)
|
||||
message_admins("Smoke: ([whereLink])[contained]. Key: [carry.my_atom.fingerprintslast][more].", 0, 1)
|
||||
log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].")
|
||||
else
|
||||
message_admins("A chemical smoke reaction has taken place in ([whereLink]). No associated key.", 0, 1)
|
||||
message_admins("Smoke: ([whereLink])[contained]. No associated key.", 0, 1)
|
||||
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.")
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
//objects in /obj/effect should never be things that are attackable, use obj/structure instead.
|
||||
//Effects are mostly temporary visual effects like sparks, smoke, as well as decals, etc...
|
||||
|
||||
/obj/effect
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
anchored = 1
|
||||
opacity = 0
|
||||
density = 1
|
||||
unacidable = 1
|
||||
|
||||
/obj/effect/forcefield/CanAtmosPass(turf/T)
|
||||
return !density
|
||||
|
||||
@@ -4,7 +4,7 @@ var/list/blacklisted_glowshroom_turfs = typecacheof(list(
|
||||
/turf/open/floor/plating/lava,
|
||||
/turf/open/floor/plating/beach/water))
|
||||
|
||||
/obj/effect/glowshroom
|
||||
/obj/structure/glowshroom
|
||||
name = "glowshroom"
|
||||
desc = "Mycena Bregprox, a species of mushroom that glows in the dark."
|
||||
anchored = 1
|
||||
@@ -21,18 +21,18 @@ var/list/blacklisted_glowshroom_turfs = typecacheof(list(
|
||||
var/generation = 1
|
||||
var/spreadIntoAdjacentChance = 60
|
||||
|
||||
obj/effect/glowshroom/glowcap
|
||||
obj/structure/glowshroom/glowcap
|
||||
name = "glowcap"
|
||||
icon_state = "glowcap"
|
||||
|
||||
/obj/effect/glowshroom/single
|
||||
/obj/structure/glowshroom/single
|
||||
yield = 0
|
||||
|
||||
/obj/effect/glowshroom/examine(mob/user)
|
||||
/obj/structure/glowshroom/examine(mob/user)
|
||||
. = ..()
|
||||
user << "This is a [generation]\th generation [name]!"
|
||||
|
||||
/obj/effect/glowshroom/New()
|
||||
/obj/structure/glowshroom/New()
|
||||
..()
|
||||
SetLuminosity(round(potency/10))
|
||||
setDir(CalcDir())
|
||||
@@ -53,7 +53,7 @@ obj/effect/glowshroom/glowcap
|
||||
|
||||
addtimer(src, "Spread", delay)
|
||||
|
||||
/obj/effect/glowshroom/proc/Spread()
|
||||
/obj/structure/glowshroom/proc/Spread()
|
||||
for(var/i = 1 to yield)
|
||||
if(prob(1/(generation * generation) * 100))//This formula gives you diminishing returns based on generation. 100% with 1st gen, decreasing to 25%, 11%, 6, 4, 2...
|
||||
var/list/possibleLocs = list()
|
||||
@@ -65,7 +65,7 @@ obj/effect/glowshroom/glowcap
|
||||
for(var/turf/open/floor/earth in view(3,src))
|
||||
if(is_type_in_typecache(earth, blacklisted_glowshroom_turfs))
|
||||
continue
|
||||
if(spreadsIntoAdjacent || !locate(/obj/effect/glowshroom) in view(1,earth))
|
||||
if(spreadsIntoAdjacent || !locate(/obj/structure/glowshroom) in view(1,earth))
|
||||
possibleLocs += earth
|
||||
CHECK_TICK
|
||||
|
||||
@@ -76,7 +76,7 @@ obj/effect/glowshroom/glowcap
|
||||
|
||||
var/shroomCount = 0 //hacky
|
||||
var/placeCount = 1
|
||||
for(var/obj/effect/glowshroom/shroom in newLoc)
|
||||
for(var/obj/structure/glowshroom/shroom in newLoc)
|
||||
shroomCount++
|
||||
for(var/wallDir in cardinal)
|
||||
var/turf/isWall = get_step(newLoc,wallDir)
|
||||
@@ -85,7 +85,7 @@ obj/effect/glowshroom/glowcap
|
||||
if(shroomCount >= placeCount)
|
||||
continue
|
||||
|
||||
var/obj/effect/glowshroom/child = new type(newLoc)//The baby mushrooms have different stats :3
|
||||
var/obj/structure/glowshroom/child = new type(newLoc)//The baby mushrooms have different stats :3
|
||||
child.potency = max(potency + rand(-3,6), 0)
|
||||
child.yield = max(yield + rand(-1,2), 0)
|
||||
child.delay = max(delay + rand(-30,60), 0)
|
||||
@@ -94,7 +94,7 @@ obj/effect/glowshroom/glowcap
|
||||
|
||||
CHECK_TICK
|
||||
|
||||
/obj/effect/glowshroom/proc/CalcDir(turf/location = loc)
|
||||
/obj/structure/glowshroom/proc/CalcDir(turf/location = loc)
|
||||
var/direction = 16
|
||||
|
||||
for(var/wallDir in cardinal)
|
||||
@@ -102,7 +102,7 @@ obj/effect/glowshroom/glowcap
|
||||
if(newTurf.density)
|
||||
direction |= wallDir
|
||||
|
||||
for(var/obj/effect/glowshroom/shroom in location)
|
||||
for(var/obj/structure/glowshroom/shroom in location)
|
||||
if(shroom == src)
|
||||
continue
|
||||
if(shroom.floor) //special
|
||||
@@ -126,13 +126,13 @@ obj/effect/glowshroom/glowcap
|
||||
floor = 1
|
||||
return 1
|
||||
|
||||
/obj/effect/glowshroom/attacked_by(obj/item/I, mob/user)
|
||||
/obj/structure/glowshroom/attacked_by(obj/item/I, mob/user)
|
||||
..()
|
||||
if(I.damtype != STAMINA)
|
||||
endurance -= I.force
|
||||
CheckEndurance()
|
||||
|
||||
/obj/effect/glowshroom/ex_act(severity, target)
|
||||
/obj/structure/glowshroom/ex_act(severity, target)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
@@ -143,16 +143,16 @@ obj/effect/glowshroom/glowcap
|
||||
if(prob(5))
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/glowshroom/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
/obj/structure/glowshroom/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(exposed_temperature > 300)
|
||||
endurance -= 5
|
||||
CheckEndurance()
|
||||
|
||||
/obj/effect/glowshroom/proc/CheckEndurance()
|
||||
/obj/structure/glowshroom/proc/CheckEndurance()
|
||||
if(endurance <= 0)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/glowshroom/acid_act(acidpwr, toxpwr, acid_volume)
|
||||
/obj/structure/glowshroom/acid_act(acidpwr, toxpwr, acid_volume)
|
||||
visible_message("<span class='danger'>[src] melts away!</span>")
|
||||
var/obj/effect/decal/cleanable/molten_item/I = new (get_turf(src))
|
||||
I.desc = "Looks like this was \an [src] some time ago."
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "x2"
|
||||
anchored = 1
|
||||
unacidable = 1
|
||||
invisibility = INVISIBILITY_ABSTRACT
|
||||
|
||||
/obj/effect/landmark/New()
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
name = "manifest"
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "x"
|
||||
unacidable = 1//Just to be sure.
|
||||
|
||||
/obj/effect/manifest/New()
|
||||
src.invisibility = INVISIBILITY_ABSTRACT
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
/obj/effect/beam
|
||||
name = "beam"
|
||||
unacidable = 1//Just to be sure.
|
||||
var/def_zone
|
||||
pass_flags = PASSTABLE
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/obj/effect/overlay
|
||||
name = "overlay"
|
||||
unacidable = 1
|
||||
var/i_attached//Added for possible image attachments to objects. For hallucinations and the like.
|
||||
|
||||
/obj/effect/overlay/singularity_act()
|
||||
@@ -23,7 +22,7 @@
|
||||
icon_state = "nothing"
|
||||
anchored = 1
|
||||
layer = ABOVE_MOB_LAYER
|
||||
burn_state = LAVA_PROOF
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE
|
||||
mouse_opacity = 0
|
||||
var/duration = 10 //in deciseconds
|
||||
var/randomdir = TRUE
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
|
||||
/obj/effect
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
|
||||
/obj/effect/portal
|
||||
name = "portal"
|
||||
desc = "Looks unstable. Best to test it with the clown."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "portal"
|
||||
density = 1
|
||||
unacidable = 1//Can't destroy energy portals.
|
||||
var/obj/item/target = null
|
||||
var/creator = null
|
||||
anchored = 1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//generic procs copied from obj/effect/alien
|
||||
/obj/effect/spider
|
||||
/obj/structure/spider
|
||||
name = "web"
|
||||
desc = "it's stringy and sticky"
|
||||
anchored = 1
|
||||
@@ -7,7 +7,7 @@
|
||||
var/health = 15
|
||||
|
||||
//similar to weeds, but only barfed out by nurses manually
|
||||
/obj/effect/spider/ex_act(severity, target)
|
||||
/obj/structure/spider/ex_act(severity, target)
|
||||
switch(severity)
|
||||
if(1)
|
||||
qdel(src)
|
||||
@@ -18,16 +18,16 @@
|
||||
if (prob(5))
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/spider/attacked_by(obj/item/I, mob/user)
|
||||
/obj/structure/spider/attacked_by(obj/item/I, mob/user)
|
||||
..()
|
||||
var/damage = I.force
|
||||
take_damage(damage, I.damtype, 1)
|
||||
|
||||
/obj/effect/spider/bullet_act(obj/item/projectile/P)
|
||||
/obj/structure/spider/bullet_act(obj/item/projectile/P)
|
||||
. = ..()
|
||||
take_damage(P.damage, P.damage_type, 0)
|
||||
|
||||
/obj/effect/spider/proc/take_damage(damage, damage_type = BRUTE, sound_effect = 1)
|
||||
/obj/structure/spider/proc/take_damage(damage, damage_type = BRUTE, sound_effect = 1)
|
||||
switch(damage_type)
|
||||
if(BURN)
|
||||
damage *= 2
|
||||
@@ -41,18 +41,18 @@
|
||||
if(health <= 0)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/spider/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
/obj/structure/spider/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(exposed_temperature > 300)
|
||||
take_damage(5, BURN, 0)
|
||||
|
||||
/obj/effect/spider/stickyweb
|
||||
/obj/structure/spider/stickyweb
|
||||
icon_state = "stickyweb1"
|
||||
|
||||
/obj/effect/spider/stickyweb/New()
|
||||
/obj/structure/spider/stickyweb/New()
|
||||
if(prob(50))
|
||||
icon_state = "stickyweb2"
|
||||
|
||||
/obj/effect/spider/stickyweb/CanPass(atom/movable/mover, turf/target, height=0)
|
||||
/obj/structure/spider/stickyweb/CanPass(atom/movable/mover, turf/target, height=0)
|
||||
if(height==0) return 1
|
||||
if(istype(mover, /mob/living/simple_animal/hostile/poison/giant_spider))
|
||||
return 1
|
||||
@@ -64,7 +64,7 @@
|
||||
return prob(30)
|
||||
return 1
|
||||
|
||||
/obj/effect/spider/eggcluster
|
||||
/obj/structure/spider/eggcluster
|
||||
name = "egg cluster"
|
||||
desc = "They seem to pulse slightly with an inner life"
|
||||
icon_state = "eggs"
|
||||
@@ -74,17 +74,17 @@
|
||||
var/poison_per_bite = 5
|
||||
var/list/faction = list("spiders")
|
||||
|
||||
/obj/effect/spider/eggcluster/New()
|
||||
/obj/structure/spider/eggcluster/New()
|
||||
pixel_x = rand(3,-3)
|
||||
pixel_y = rand(3,-3)
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/effect/spider/eggcluster/process()
|
||||
/obj/structure/spider/eggcluster/process()
|
||||
amount_grown += rand(0,2)
|
||||
if(amount_grown >= 100)
|
||||
var/num = rand(3,12)
|
||||
for(var/i=0, i<num, i++)
|
||||
var/obj/effect/spider/spiderling/S = new /obj/effect/spider/spiderling(src.loc)
|
||||
var/obj/structure/spider/spiderling/S = new /obj/structure/spider/spiderling(src.loc)
|
||||
S.poison_type = poison_type
|
||||
S.poison_per_bite = poison_per_bite
|
||||
S.faction = faction.Copy()
|
||||
@@ -92,7 +92,7 @@
|
||||
S.player_spiders = 1
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/spider/spiderling
|
||||
/obj/structure/spider/spiderling
|
||||
name = "spiderling"
|
||||
desc = "It never stays still for long."
|
||||
icon_state = "spiderling"
|
||||
@@ -108,18 +108,18 @@
|
||||
var/poison_per_bite = 5
|
||||
var/list/faction = list("spiders")
|
||||
|
||||
/obj/effect/spider/spiderling/New()
|
||||
/obj/structure/spider/spiderling/New()
|
||||
pixel_x = rand(6,-6)
|
||||
pixel_y = rand(6,-6)
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/effect/spider/spiderling/Bump(atom/user)
|
||||
/obj/structure/spider/spiderling/Bump(atom/user)
|
||||
if(istype(user, /obj/structure/table))
|
||||
src.loc = user.loc
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/effect/spider/spiderling/process()
|
||||
/obj/structure/spider/spiderling/process()
|
||||
if(travelling_in_vent)
|
||||
if(istype(src.loc, /turf))
|
||||
travelling_in_vent = 0
|
||||
@@ -193,16 +193,16 @@
|
||||
|
||||
|
||||
|
||||
/obj/effect/spider/cocoon
|
||||
/obj/structure/spider/cocoon
|
||||
name = "cocoon"
|
||||
desc = "Something wrapped in silky spider web"
|
||||
icon_state = "cocoon1"
|
||||
health = 60
|
||||
|
||||
/obj/effect/spider/cocoon/New()
|
||||
icon_state = pick("cocoon1","cocoon2","cocoon3")
|
||||
/obj/structure/spider/cocoon/New()
|
||||
icon_state = pick("cocoon1","cocoon2","cocoon3")
|
||||
|
||||
/obj/effect/spider/cocoon/container_resist()
|
||||
/obj/structure/spider/cocoon/container_resist()
|
||||
var/mob/living/user = usr
|
||||
var/breakout_time = 2
|
||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||
@@ -216,7 +216,7 @@
|
||||
|
||||
|
||||
|
||||
/obj/effect/spider/cocoon/Destroy()
|
||||
/obj/structure/spider/cocoon/Destroy()
|
||||
src.visible_message("<span class='warning'>\The [src] splits open.</span>")
|
||||
for(var/atom/movable/A in contents)
|
||||
A.loc = src.loc
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
if(W.reinf && W.fulltile)
|
||||
cached_exp_block[T] += W.explosion_block
|
||||
|
||||
for(var/obj/effect/blob/B in T)
|
||||
for(var/obj/structure/blob/B in T)
|
||||
cached_exp_block[T] += B.explosion_block
|
||||
CHECK_TICK
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
if(W.explosion_block && W.fulltile)
|
||||
dist += W.explosion_block
|
||||
|
||||
for(var/obj/effect/blob/B in T)
|
||||
for(var/obj/structure/blob/B in T)
|
||||
dist += B.explosion_block
|
||||
|
||||
if(dist < dev)
|
||||
|
||||
@@ -47,7 +47,6 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
|
||||
var/permeability_coefficient = 1 // for chemicals/diseases
|
||||
var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit)
|
||||
var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up
|
||||
var/list/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
var/armour_penetration = 0 //percentage of armour effectiveness to remove
|
||||
var/list/allowed = null //suit storage stuff.
|
||||
var/obj/item/device/uplink/hidden_uplink = null
|
||||
@@ -117,7 +116,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
|
||||
qdel(X)
|
||||
return ..()
|
||||
|
||||
/obj/item/blob_act(obj/effect/blob/B)
|
||||
/obj/item/blob_act(obj/structure/blob/B)
|
||||
if(B && B.loc == loc)
|
||||
qdel(src)
|
||||
|
||||
@@ -220,7 +219,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
|
||||
if(anchored)
|
||||
return
|
||||
|
||||
if(burn_state == ON_FIRE)
|
||||
if(resistance_flags & ON_FIRE)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
if(H.gloves && (H.gloves.max_heat_protection_temperature > 360))
|
||||
@@ -504,7 +503,7 @@ obj/item/proc/item_action_slot_check(slot, mob/user)
|
||||
|
||||
/obj/item/acid_act(acidpwr, acid_volume)
|
||||
. = 1
|
||||
if(unacidable)
|
||||
if(resistance_flags & UNACIDABLE)
|
||||
return
|
||||
|
||||
var/meltingpwr = acid_volume*acidpwr
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon = 'icons/obj/cardboard_cutout.dmi'
|
||||
icon_state = "cutout_basic"
|
||||
w_class = 4
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
// Possible restyles for the cutout;
|
||||
// add an entry in change_appearance() if you add to here
|
||||
var/list/possible_appearances = list("Assistant", "Clown", "Mime",
|
||||
|
||||
@@ -36,6 +36,8 @@
|
||||
flick("carp_swell", src)
|
||||
//Wait for animation to end
|
||||
sleep(6)
|
||||
if(!src || qdeleted(src))//we got toasted while animating
|
||||
return
|
||||
//Make space carp
|
||||
var/mob/living/M = new mobtype(get_turf(src))
|
||||
//Make carp non-hostile to user, and their allies
|
||||
@@ -49,4 +51,4 @@
|
||||
visible_message("<span class='warning'>You have a bad feeling about this.</span>") //welcome to the hostile carp enjoy your die
|
||||
else
|
||||
visible_message("<span class='notice'>The newly grown [M.name] looks up at you with friendly eyes.</span>")
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -883,6 +883,9 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
/obj/item/device/pda/Destroy()
|
||||
PDAs -= src
|
||||
if(inserted_item)
|
||||
qdel(inserted_item)
|
||||
inserted_item = null
|
||||
return ..()
|
||||
|
||||
//AI verb and proc for sending PDA messages.
|
||||
|
||||
@@ -136,11 +136,16 @@
|
||||
return .(cameras)
|
||||
return html
|
||||
|
||||
/obj/item/device/camera_bug/proc/get_seens()
|
||||
if(current && current.can_use())
|
||||
var/list/seen = current.can_see()
|
||||
return seen
|
||||
|
||||
/obj/item/device/camera_bug/proc/camera_report()
|
||||
// this should only be called if current exists
|
||||
var/dat = ""
|
||||
if(current && current.can_use())
|
||||
var/list/seen = current.can_see()
|
||||
var/list/seen = get_seens()
|
||||
if(seen && seen.len >= 1)
|
||||
var/list/names = list()
|
||||
for(var/obj/singularity/S in seen) // god help you if you see more than one
|
||||
if(S.name in names)
|
||||
@@ -190,23 +195,29 @@
|
||||
if("mode" in href_list)
|
||||
track_mode = text2num(href_list["mode"])
|
||||
if("monitor" in href_list)
|
||||
var/obj/machinery/camera/C = locate(href_list["monitor"])
|
||||
if(C)
|
||||
//You can't locate on a list with keys
|
||||
var/list/cameras = flatten_list(bugged_cameras)
|
||||
var/obj/machinery/camera/C = locate(href_list["monitor"]) in cameras
|
||||
if(C && istype(C))
|
||||
track_mode = BUGMODE_MONITOR
|
||||
current = C
|
||||
usr.reset_perspective(null)
|
||||
interact()
|
||||
if("track" in href_list)
|
||||
var/atom/A = locate(href_list["track"])
|
||||
if(A)
|
||||
tracking = A
|
||||
tracked_name = A.name
|
||||
last_found = current.c_tag
|
||||
last_seen = world.time
|
||||
track_mode = BUGMODE_TRACK
|
||||
var/list/seen = get_seens()
|
||||
if(seen && seen.len >= 1)
|
||||
var/atom/A = locate(href_list["track"]) in seen
|
||||
if(A && istype(A))
|
||||
tracking = A
|
||||
tracked_name = A.name
|
||||
last_found = current.c_tag
|
||||
last_seen = world.time
|
||||
track_mode = BUGMODE_TRACK
|
||||
if("emp" in href_list)
|
||||
var/obj/machinery/camera/C = locate(href_list["emp"])
|
||||
if(istype(C) && C.bug == src)
|
||||
//You can't locate on a list with keys
|
||||
var/list/cameras = flatten_list(bugged_cameras)
|
||||
var/obj/machinery/camera/C = locate(href_list["emp"]) in cameras
|
||||
if(C && istype(C) && C.bug == src)
|
||||
C.emp_act(1)
|
||||
C.bug = null
|
||||
bugged_cameras -= C.c_tag
|
||||
@@ -217,8 +228,10 @@
|
||||
current = null
|
||||
return
|
||||
if("view" in href_list)
|
||||
var/obj/machinery/camera/C = locate(href_list["view"])
|
||||
if(istype(C))
|
||||
//You can't locate on a list with keys
|
||||
var/list/cameras = flatten_list(bugged_cameras)
|
||||
var/obj/machinery/camera/C = locate(href_list["view"]) in cameras
|
||||
if(C && istype(C))
|
||||
if(!C.can_use())
|
||||
usr << "<span class='warning'>Something's wrong with that camera! You can't get a feed.</span>"
|
||||
return
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//copy pasta of the space piano, don't hurt me -Pete
|
||||
/obj/item/device/instrument
|
||||
name = "generic instrument"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
var/datum/song/handheld/song
|
||||
var/instrumentId = "generic"
|
||||
|
||||
@@ -213,11 +213,10 @@
|
||||
O.make_laws()
|
||||
|
||||
ticker.mode.remove_antag_for_borging(BM.mind)
|
||||
if(!M.clockwork)
|
||||
remove_servant_of_ratvar(BM, TRUE)
|
||||
BM.mind.transfer_to(O)
|
||||
|
||||
if(M.clockwork)
|
||||
add_servant_of_ratvar(O)
|
||||
|
||||
if(O.mind && O.mind.special_role)
|
||||
O.mind.store_memory("As a cyborg, you must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.")
|
||||
O << "<span class='userdanger'>You have been robotized!</span>"
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
name = "mining cyborg lavaproof tracks"
|
||||
desc = "An upgrade kit to apply specialized coolant systems and insulation layers to mining cyborg tracks, enabling them to withstand exposure to molten rock."
|
||||
icon_state = "ash_plating"
|
||||
burn_state = LAVA_PROOF
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF
|
||||
require_module = 1
|
||||
module_type = /obj/item/weapon/robot_module/miner
|
||||
origin_tech = "engineering=4;materials=4;plasmatech=4"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
throw_speed = 2
|
||||
throw_range = 2
|
||||
w_class = 1
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
var/value = 1
|
||||
|
||||
/obj/item/stack/spacecash/c10
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
w_class = 1
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 5
|
||||
var/heal_brute = 0
|
||||
var/heal_burn = 0
|
||||
|
||||
@@ -135,7 +135,7 @@ var/global/list/datum/stack_recipe/uranium_recipes = list ( \
|
||||
singular_name = "plasma sheet"
|
||||
origin_tech = "plasmatech=2;materials=2"
|
||||
sheettype = "plasma"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 5
|
||||
materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
|
||||
icon = 'icons/obj/items.dmi'
|
||||
origin_tech = "materials=1;biotech=1"
|
||||
sheettype = "wood"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/stack/sheet/mineral/wood/New(var/loc, var/amount=null)
|
||||
recipes = wood_recipes
|
||||
@@ -183,7 +183,7 @@ var/global/list/datum/stack_recipe/cloth_recipes = list ( \
|
||||
singular_name = "cloth roll"
|
||||
icon_state = "sheet-cloth"
|
||||
origin_tech = "materials=2"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
force = 0
|
||||
throwforce = 0
|
||||
|
||||
@@ -216,7 +216,7 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \
|
||||
singular_name = "cardboard sheet"
|
||||
icon_state = "sheet-card"
|
||||
origin_tech = "materials=1"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/stack/sheet/cardboard/New(var/loc, var/amount=null)
|
||||
recipes = cardboard_recipes
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
icon_state = "tile_grass"
|
||||
origin_tech = "biotech=1"
|
||||
turf_type = /turf/open/floor/grass
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
|
||||
//Wood
|
||||
@@ -90,7 +90,7 @@
|
||||
icon_state = "tile-wood"
|
||||
origin_tech = "biotech=1"
|
||||
turf_type = /turf/open/floor/wood
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
|
||||
//Carpets
|
||||
@@ -100,7 +100,7 @@
|
||||
desc = "A piece of carpet. It is the same size as a floor tile."
|
||||
icon_state = "tile-carpet"
|
||||
turf_type = /turf/open/floor/carpet
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
|
||||
/obj/item/stack/tile/fakespace
|
||||
@@ -109,7 +109,7 @@
|
||||
desc = "A piece of carpet with a convincing star pattern."
|
||||
icon_state = "tile_space"
|
||||
turf_type = /turf/open/floor/fakespace
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/stack/tile/fakespace/loaded
|
||||
amount = 30
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
flags = NOBLUDGEON
|
||||
amount = 25
|
||||
max_amount = 25
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/stack/wrapping_paper/Destroy()
|
||||
if(!amount)
|
||||
@@ -32,7 +32,7 @@
|
||||
flags = NOBLUDGEON
|
||||
amount = 25
|
||||
max_amount = 25
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/proc/can_be_package_wrapped() //can the item be wrapped with package wrapper into a delivery package
|
||||
return 1
|
||||
|
||||
@@ -277,7 +277,7 @@
|
||||
item_state = "arm_blade"
|
||||
attack_verb = list("pricked", "absorbed", "gored")
|
||||
w_class = 2
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
|
||||
/*
|
||||
@@ -638,7 +638,7 @@
|
||||
|
||||
|
||||
/obj/item/toy/cards
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 5
|
||||
var/parentdeck = null
|
||||
var/deckstyle = "nanotrasen"
|
||||
@@ -873,8 +873,8 @@
|
||||
newobj.card_throw_speed = sourceobj.card_throw_speed
|
||||
newobj.card_throw_range = sourceobj.card_throw_range
|
||||
newobj.card_attack_verb = sourceobj.card_attack_verb
|
||||
if(sourceobj.burn_state == FIRE_PROOF)
|
||||
newobj.burn_state = FIRE_PROOF
|
||||
if(sourceobj.resistance_flags & FIRE_PROOF)
|
||||
newobj.resistance_flags |= FIRE_PROOF
|
||||
|
||||
/obj/item/toy/cards/singlecard
|
||||
name = "card"
|
||||
@@ -991,7 +991,7 @@
|
||||
card_throw_speed = 3
|
||||
card_throw_range = 7
|
||||
card_attack_verb = list("attacked", "sliced", "diced", "slashed", "cut")
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/*
|
||||
* Fake nuke
|
||||
@@ -1051,7 +1051,7 @@
|
||||
item_state = "carp_plushie"
|
||||
w_class = 2
|
||||
attack_verb = list("bitten", "eaten", "fin slapped")
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
var/bitesound = 'sound/weapons/bite.ogg'
|
||||
|
||||
//Attack mob
|
||||
@@ -1161,7 +1161,7 @@
|
||||
icon_state = "toy_mouse"
|
||||
w_class = 2.0
|
||||
var/cooldown = 0
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
desc = "This is rubbish."
|
||||
w_class = 1
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/trash/raisins
|
||||
name = "\improper 4no raisins"
|
||||
@@ -40,7 +40,7 @@
|
||||
/obj/item/trash/plate
|
||||
name = "plate"
|
||||
icon_state = "plate"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/trash/pistachios
|
||||
name = "pistachios pack"
|
||||
@@ -53,7 +53,7 @@
|
||||
/obj/item/trash/tray
|
||||
name = "tray"
|
||||
icon_state = "tray"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/trash/candle
|
||||
name = "candle"
|
||||
@@ -63,7 +63,7 @@
|
||||
/obj/item/trash/can
|
||||
name = "crushed can"
|
||||
icon_state = "cola"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/trash/attack(mob/M, mob/living/user)
|
||||
return
|
||||
|
||||
@@ -152,7 +152,6 @@
|
||||
icon_state = "chronofield"
|
||||
density = 0
|
||||
anchored = 1
|
||||
unacidable = 1
|
||||
blend_mode = BLEND_MULTIPLY
|
||||
var/mob/living/captured = null
|
||||
var/obj/item/weapon/gun/energy/chrono_gun/gun = null
|
||||
@@ -255,7 +254,7 @@
|
||||
/obj/effect/chrono_field/ex_act()
|
||||
return
|
||||
|
||||
/obj/effect/chrono_field/blob_act(obj/effect/blob/B)
|
||||
/obj/effect/chrono_field/blob_act(obj/structure/blob/B)
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -641,7 +641,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
super = 0
|
||||
user << "<span class='notice'>You decrease the voltage in the [src]</span>"
|
||||
add_overlay(image(icon, "vapeopen_low"))
|
||||
|
||||
|
||||
if(screw && emagged)
|
||||
user << "<span class='notice'>The [name] can't be modified!</span>"
|
||||
|
||||
@@ -725,13 +725,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
if(super && vapetime > 3)//Time to start puffing those fat vapes, yo.
|
||||
var/datum/effect_system/smoke_spread/chem/s = new
|
||||
s.set_up(reagents, 1, loc)
|
||||
s.set_up(reagents, 1, loc, silent=TRUE)
|
||||
s.start()
|
||||
vapetime = 0
|
||||
|
||||
if(emagged && vapetime > 3)
|
||||
var/datum/effect_system/smoke_spread/chem/s = new
|
||||
s.set_up(reagents, 4, loc)
|
||||
s.set_up(reagents, 4, loc, silent=TRUE)
|
||||
s.start()
|
||||
vapetime = 0
|
||||
if(prob(5))//small chance for the vape to break and deal damage if it's emagged
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
throwforce = 6
|
||||
w_class = 2
|
||||
attack_verb = list("bashed", "battered", "judged", "whacked")
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/gavelhammer/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] has sentenced \himself to death with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
@@ -26,7 +26,7 @@
|
||||
force = 2
|
||||
throwforce = 2
|
||||
w_class = 1
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/gavelblock/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/gavelhammer))
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "giftdeliverypackage3"
|
||||
item_state = "gift1"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/a_gift/New()
|
||||
..()
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
for(var/mob/living/M in get_hearers_in_view(7, flashbang_turf))
|
||||
bang(get_turf(M), M)
|
||||
|
||||
for(var/obj/effect/blob/B in get_hear(8,flashbang_turf)) //Blob damage here
|
||||
for(var/obj/structure/blob/B in get_hear(8,flashbang_turf)) //Blob damage here
|
||||
var/distance = get_dist(B, get_turf(src))
|
||||
var/damage = round(100/(distance*distance)+1)
|
||||
B.take_damage(damage, BURN)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
throw_range = 7
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 5
|
||||
var/active = 0
|
||||
var/det_time = 50
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
smoke.start()
|
||||
|
||||
|
||||
for(var/obj/effect/blob/B in view(8,src))
|
||||
for(var/obj/structure/blob/B in view(8,src))
|
||||
var/damage = round(30/(get_dist(B,src)+1))
|
||||
B.health -= damage
|
||||
B.update_icon()
|
||||
|
||||
@@ -118,6 +118,7 @@
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
anchored = 1
|
||||
var/holo_integrity = 1
|
||||
armor = list(melee = 0, bullet = 50, laser = 50, energy = 50, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
var/obj/item/weapon/holosign_creator/projector
|
||||
|
||||
/obj/effect/overlay/holograph/New(loc, source_projector)
|
||||
@@ -136,7 +137,7 @@
|
||||
..()
|
||||
take_damage(I.force * 0.5, I.damtype)
|
||||
|
||||
/obj/effect/overlay/holograph/blob_act(obj/effect/blob/B)
|
||||
/obj/effect/overlay/holograph/blob_act(obj/structure/blob/B)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/overlay/holograph/attack_animal(mob/living/simple_animal/M)
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
/obj/item/weapon/implant/chem/New()
|
||||
..()
|
||||
create_reagents(50)
|
||||
tracked_implants += src
|
||||
tracked_chem_implants += src
|
||||
|
||||
/obj/item/weapon/implant/chem/Destroy()
|
||||
..()
|
||||
tracked_implants -= src
|
||||
tracked_chem_implants -= src
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
throw_range = 7
|
||||
w_class = 3
|
||||
attack_verb = list("mopped", "bashed", "bludgeoned", "whacked")
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
var/mopping = 0
|
||||
var/mopcount = 0
|
||||
var/mopcap = 5
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
item_color = "FFFFFF"
|
||||
item_state = "paintcan"
|
||||
w_class = 3
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 5
|
||||
var/paintleft = 10
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
origin_tech = "bluespace=6"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/teleportation_scroll/apprentice
|
||||
name = "lesser scroll of teleportation"
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
item_state = "buckler"
|
||||
materials = list()
|
||||
origin_tech = "materials=1;combat=3;biotech=2"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
block_chance = 30
|
||||
|
||||
/obj/item/weapon/shield/energy
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
force = 5
|
||||
w_class = 4
|
||||
attack_verb = list("bashed","smacked")
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
var/label = ""
|
||||
var/last_wave = 0
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 21
|
||||
storage_slots = 21
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
|
||||
/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W, mob/user, params)
|
||||
@@ -37,7 +37,7 @@
|
||||
icon_state = "holdingpack"
|
||||
max_w_class = 6
|
||||
max_combined_w_class = 35
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
var/pshoom = 'sound/items/PSHOOM.ogg'
|
||||
var/alt_sound = 'sound/items/PSHOOM_2.ogg'
|
||||
|
||||
@@ -141,14 +141,14 @@
|
||||
desc = "It's a special backpack made exclusively for Nanotrasen officers."
|
||||
icon_state = "captainpack"
|
||||
item_state = "captainpack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/industrial
|
||||
name = "industrial backpack"
|
||||
desc = "It's a tough backpack for the daily grind of station life."
|
||||
icon_state = "engiepack"
|
||||
item_state = "engiepack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/botany
|
||||
name = "botany backpack"
|
||||
@@ -173,7 +173,7 @@
|
||||
desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma."
|
||||
icon_state = "toxpack"
|
||||
item_state = "toxpack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/virology
|
||||
name = "virology backpack"
|
||||
@@ -196,7 +196,7 @@
|
||||
name = "leather satchel"
|
||||
desc = "It's a very fancy satchel made with fine leather."
|
||||
icon_state = "satchel"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/leather/withwallet/New()
|
||||
..()
|
||||
@@ -207,7 +207,7 @@
|
||||
desc = "A tough satchel with extra pockets."
|
||||
icon_state = "satchel-eng"
|
||||
item_state = "engiepack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/med
|
||||
name = "medical satchel"
|
||||
@@ -238,7 +238,7 @@
|
||||
desc = "Useful for holding research materials."
|
||||
icon_state = "satchel-tox"
|
||||
item_state = "satchel-tox"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/hyd
|
||||
name = "botanist satchel"
|
||||
@@ -263,7 +263,7 @@
|
||||
desc = "An exclusive satchel for Nanotrasen officers."
|
||||
icon_state = "satchel-cap"
|
||||
item_state = "captainpack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/flat
|
||||
name = "smuggler's satchel"
|
||||
@@ -328,7 +328,7 @@
|
||||
desc = "A large dufflebag for holding extra captainly goods."
|
||||
icon_state = "duffle-captain"
|
||||
item_state = "duffle-captain"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/med
|
||||
name = "medical dufflebag"
|
||||
@@ -347,14 +347,14 @@
|
||||
desc = "A large dufflebag for holding extra tools and supplies."
|
||||
icon_state = "duffle-eng"
|
||||
item_state = "duffle-eng"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/drone
|
||||
name = "drone dufflebag"
|
||||
desc = "A large dufflebag for holding tools and hats."
|
||||
icon_state = "duffle-drone"
|
||||
item_state = "duffle-drone"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/drone/New()
|
||||
..()
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
max_w_class = 3
|
||||
w_class = 1
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown)
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
////////
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
max_w_class = 3
|
||||
w_class = 4 //Bigger than a book because physics
|
||||
can_hold = list(/obj/item/weapon/book, /obj/item/weapon/storage/book, /obj/item/weapon/spellbook)
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/*
|
||||
* Trays - Agouri
|
||||
@@ -364,7 +364,7 @@
|
||||
w_class = 1
|
||||
preposition = "in"
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/pill, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle)
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/*
|
||||
* Biowaste bag (mostly for xenobiologists)
|
||||
@@ -380,4 +380,4 @@
|
||||
w_class = 1
|
||||
preposition = "in"
|
||||
can_hold = list(/obj/item/slime_extract, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/blood, /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/trash/deadmouse)
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
w_class = 3
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
var/title = "book"
|
||||
/obj/item/weapon/storage/book/attack_self(mob/user)
|
||||
user << "<span class='notice'>The pages of [title] have been cut out!</span>"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
desc = "It's just an ordinary box."
|
||||
icon_state = "box"
|
||||
item_state = "syringe_kit"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
var/foldable = /obj/item/stack/sheet/cardboard
|
||||
|
||||
|
||||
@@ -634,7 +634,7 @@
|
||||
desc = "A sack neatly crafted out of paper."
|
||||
icon_state = "paperbag_None"
|
||||
item_state = "paperbag_None"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
foldable = null
|
||||
var/design = NODESIGN
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 21
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
var/folder_path = /obj/item/weapon/folder //this is the path of the folder that gets spawned in New()
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 21
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
|
||||
/obj/item/weapon/storage/briefcase/sniperbundle/New()
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
icon = 'icons/obj/food/containers.dmi'
|
||||
icon_state = "donutbox6"
|
||||
name = "donut box"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
var/icon_type = "donut"
|
||||
var/spawn_type = null
|
||||
var/fancy_open = FALSE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
storage_slots = 4
|
||||
icon_state = "wallet"
|
||||
w_class = 2
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
can_hold = list(
|
||||
/obj/item/stack/spacecash,
|
||||
/obj/item/weapon/card,
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
user << "<span class='notice'>It feels [descriptive].</span>"
|
||||
|
||||
/obj/item/weapon/tank/blob_act(obj/effect/blob/B)
|
||||
/obj/item/weapon/tank/blob_act(obj/structure/blob/B)
|
||||
if(B && B.loc == loc)
|
||||
var/turf/location = get_turf(src)
|
||||
if(!location)
|
||||
|
||||
@@ -393,14 +393,14 @@ var/highlander_claymores = 0
|
||||
w_class = 2
|
||||
armour_penetration = 100
|
||||
attack_verb = list("bludgeoned", "whacked", "disciplined")
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/staff/broom
|
||||
name = "broom"
|
||||
desc = "Used for sweeping, and flying into the night while cackling. Black cat not included."
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "broom"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/staff/stick
|
||||
name = "stick"
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
languages_spoken = HUMAN
|
||||
languages_understood = HUMAN
|
||||
var/crit_fail = 0
|
||||
var/unacidable = 0 //universal "unacidabliness" var, here so you can use it in any obj.
|
||||
animate_movement = 2
|
||||
var/throwforce = 0
|
||||
var/in_use = 0 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
|
||||
@@ -10,7 +9,9 @@
|
||||
var/damtype = "brute"
|
||||
var/force = 0
|
||||
|
||||
var/burn_state = FIRE_PROOF // LAVA_PROOF | FIRE_PROOF | FLAMMABLE | ON_FIRE
|
||||
var/list/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
var/resistance_flags = FIRE_PROOF // INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ON_FIRE | UNACIDABLE | ACID_PROOF
|
||||
|
||||
var/burntime = 10 //How long it takes to burn to ashes, in seconds
|
||||
var/burn_world_time //What world time the object will burn up completely
|
||||
var/being_shocked = 0
|
||||
@@ -189,8 +190,8 @@
|
||||
return T.storage_contents_dump_act(src_object, user)
|
||||
|
||||
/obj/fire_act(global_overlay=1)
|
||||
if(!burn_state)
|
||||
burn_state = ON_FIRE
|
||||
if(!(resistance_flags & (FIRE_PROOF|ON_FIRE)))
|
||||
resistance_flags |= ON_FIRE
|
||||
SSobj.burning += src
|
||||
burn_world_time = world.time + burntime*rand(10,20)
|
||||
if(global_overlay)
|
||||
@@ -205,8 +206,8 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/proc/extinguish()
|
||||
if(burn_state == ON_FIRE)
|
||||
burn_state = FLAMMABLE
|
||||
if(resistance_flags & ON_FIRE)
|
||||
resistance_flags &= ~ON_FIRE
|
||||
overlays -= fire_overlay
|
||||
SSobj.burning -= src
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
if(ticker)
|
||||
cameranet.updateVisibility(src)
|
||||
|
||||
/obj/structure/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/blob_act(obj/structure/blob/B)
|
||||
if(density && prob(50))
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -156,6 +156,7 @@
|
||||
return
|
||||
|
||||
ticker.mode.remove_antag_for_borging(M.brainmob.mind)
|
||||
remove_servant_of_ratvar(M, TRUE)
|
||||
M.loc = src
|
||||
brain = M
|
||||
user << "<span class='notice'>Added a brain.</span>"
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
if(3)
|
||||
take_damage(50, BRUTE, 0)
|
||||
|
||||
/obj/structure/alien/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/alien/blob_act(obj/structure/blob/B)
|
||||
take_damage(50, BRUTE, 0)
|
||||
|
||||
/obj/structure/alien/resin/hitby(atom/movable/AM)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
icon = 'icons/obj/artstuff.dmi'
|
||||
icon_state = "easel"
|
||||
density = 1
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 15
|
||||
var/obj/item/weapon/canvas/painting = null
|
||||
|
||||
@@ -51,7 +51,7 @@ var/global/list/globalBlankCanvases[AMT_OF_CANVASES]
|
||||
desc = "draw out your soul on this canvas!"
|
||||
icon = 'icons/obj/artstuff.dmi'
|
||||
icon_state = "11x11"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
var/whichGlobalBackup = 1 //List index
|
||||
|
||||
/obj/item/weapon/canvas/nineteenXnineteen
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
anchored = 1
|
||||
can_buckle = 1
|
||||
buckle_lying = 1
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 30
|
||||
var/buildstacktype = /obj/item/stack/sheet/metal
|
||||
var/buildstackamount = 2
|
||||
@@ -61,7 +61,7 @@
|
||||
icon = 'icons/obj/rollerbed.dmi'
|
||||
icon_state = "down"
|
||||
anchored = 0
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
var/foldabletype = /obj/item/roller
|
||||
|
||||
/obj/structure/bed/roller/MouseDrop(over_object, src_location, over_location)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
anchored = 1
|
||||
can_buckle = 1
|
||||
buckle_lying = 0 //you sit in a chair, not lay
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
var/buildstacktype = /obj/item/stack/sheet/metal
|
||||
var/buildstackamount = 1
|
||||
var/item_chair = /obj/item/chair // if null it can't be picked up
|
||||
@@ -118,7 +118,7 @@
|
||||
icon_state = "wooden_chair"
|
||||
name = "wooden chair"
|
||||
desc = "Old is never too old to not be in fashion."
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
buildstacktype = /obj/item/stack/sheet/mineral/wood
|
||||
buildstackamount = 3
|
||||
@@ -139,7 +139,7 @@
|
||||
desc = "It looks comfy.\n<span class='notice'>Alt-click to rotate it clockwise.</span>"
|
||||
icon_state = "comfychair"
|
||||
color = rgb(255,255,255)
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 30
|
||||
buildstackamount = 2
|
||||
var/image/armrest = null
|
||||
@@ -308,7 +308,7 @@
|
||||
name = "wooden chair"
|
||||
icon_state = "wooden_chair_toppled"
|
||||
item_state = "woodenchair"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
hitsound = 'sound/weapons/genhit1.ogg'
|
||||
origin_type = /obj/structure/chair/wood
|
||||
|
||||
@@ -17,7 +17,7 @@ LINEN BINS
|
||||
throw_range = 2
|
||||
w_class = 1
|
||||
item_color = "white"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/ghost
|
||||
|
||||
@@ -205,7 +205,7 @@ LINEN BINS
|
||||
icon = 'icons/obj/structures.dmi'
|
||||
icon_state = "linenbin-full"
|
||||
anchored = 1
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
var/amount = 10
|
||||
var/list/sheets = list()
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "cardboard"
|
||||
health = 10
|
||||
mob_storage_capacity = 1
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
can_weld_shut = 0
|
||||
cutting_tool = /obj/item/weapon/wirecutters
|
||||
@@ -61,7 +61,7 @@
|
||||
icon_state = "metalbox"
|
||||
health = 500
|
||||
mob_storage_capacity = 5
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
move_speed_multiplier = 2
|
||||
cutting_tool = /obj/item/weapon/weldingtool
|
||||
open_sound = 'sound/machines/click.ogg'
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "cabinet"
|
||||
desc = "Old will forever be in fashion."
|
||||
icon_state = "cabinet"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/closet/acloset
|
||||
@@ -72,7 +72,7 @@
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
|
||||
|
||||
/obj/structure/closet/thunderdome/tdgreen
|
||||
name = "green-team Thunderdome closet"
|
||||
icon_door = "green"
|
||||
@@ -91,7 +91,7 @@
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
|
||||
|
||||
/obj/structure/closet/malf/suits
|
||||
desc = "It's a storage unit for operational gear."
|
||||
icon_state = "syndicate"
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
name = "coffin"
|
||||
desc = "It's a burial receptacle for the dearly departed."
|
||||
icon_state = "coffin"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/closet/wardrobe/red
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "booze storage"
|
||||
req_access = list(access_bar)
|
||||
icon_state = "cabinet"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/closet/secure_closet/bar/New()
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/cabinet
|
||||
icon_state = "cabinet"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/cabinet/New()
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
name = "\proper detective's cabinet"
|
||||
req_access = list(access_forensics_lockers)
|
||||
icon_state = "cabinet"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/closet/secure_closet/detective/New()
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
if(user.environment_smash)
|
||||
shatter()
|
||||
|
||||
/obj/structure/closet/statue/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/closet/statue/blob_act(obj/structure/blob/B)
|
||||
shatter()
|
||||
|
||||
/obj/structure/closet/statue/attacked_by(obj/item/I, mob/living/user)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
desc = "A display case for prized possessions."
|
||||
density = 1
|
||||
anchored = 1
|
||||
unacidable = 1//Dissolving the case would also delete the gun.
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
var/health = 30
|
||||
var/destroyed = 0
|
||||
var/obj/item/showpiece = null
|
||||
@@ -48,7 +48,7 @@
|
||||
showpiece.loc = src.loc
|
||||
showpiece = null
|
||||
|
||||
/obj/structure/displaycase/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/displaycase/blob_act(obj/structure/blob/B)
|
||||
take_damage(30)
|
||||
|
||||
/obj/structure/displaycase/hitby(atom/movable/AM)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
icon_state = "fireaxe"
|
||||
anchored = 1
|
||||
density = 0
|
||||
armor = list(melee = 50, bullet = 20, laser = 0, energy = 100, bomb = 10, bio = 100, rad = 100, fire = 0, acid = 0)
|
||||
var/locked = 1
|
||||
var/open = 0
|
||||
var/health = 60
|
||||
@@ -82,7 +83,7 @@
|
||||
take_damage(P.damage, P.damage_type, 0)
|
||||
|
||||
|
||||
/obj/structure/fireaxecabinet/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/fireaxecabinet/blob_act(obj/structure/blob/B)
|
||||
if(fireaxe)
|
||||
fireaxe.forceMove(loc)
|
||||
qdel(src)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
pixel_x = -16
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
var/lit = FALSE
|
||||
|
||||
var/fuel_added = 0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/structure/flora
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 30
|
||||
anchored = 1
|
||||
|
||||
@@ -290,7 +290,7 @@
|
||||
icon_state = "basalt"
|
||||
desc = "A volcanic rock"
|
||||
icon = 'icons/obj/flora/rocks.dmi'
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
density = 1
|
||||
|
||||
/obj/structure/flora/rock/New()
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/structure/girder/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/girder/blob_act(obj/structure/blob/B)
|
||||
if(prob(40))
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
pressure_resistance = 5*ONE_ATMOSPHERE
|
||||
layer = BELOW_OBJ_LAYER
|
||||
var/health = 10
|
||||
armor = list(melee = 50, bullet = 70, laser = 70, energy = 100, bomb = 10, bio = 100, rad = 100, fire = 0, acid = 0)
|
||||
var/destroyed = 0
|
||||
var/obj/item/stack/rods/stored
|
||||
|
||||
@@ -31,7 +32,7 @@
|
||||
new /obj/structure/grille/ratvar(src.loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/grille/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/grille/blob_act(obj/structure/blob/B)
|
||||
if(!destroyed)
|
||||
Break()
|
||||
|
||||
|
||||
@@ -76,7 +76,9 @@
|
||||
|
||||
/obj/structure/guncase/Topic(href, href_list)
|
||||
if(href_list["retrieve"])
|
||||
var/obj/item/O = locate(href_list["retrieve"])
|
||||
var/obj/item/O = locate(href_list["retrieve"]) in contents
|
||||
if(!O || !istype(O))
|
||||
return
|
||||
if(!usr.canUseTopic(src))
|
||||
return
|
||||
if(ishuman(usr))
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon_state = "lattice"
|
||||
density = 0
|
||||
anchored = 1
|
||||
armor = list(melee = 100, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
layer = LATTICE_LAYER //under pipes
|
||||
var/obj/item/stack/rods/stored
|
||||
canSmoothWith = list(/obj/structure/lattice,
|
||||
@@ -26,7 +27,7 @@
|
||||
stored = null
|
||||
return ..()
|
||||
|
||||
/obj/structure/lattice/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/lattice/blob_act(obj/structure/blob/B)
|
||||
return
|
||||
|
||||
/obj/structure/lattice/ex_act(severity, target)
|
||||
|
||||
@@ -243,5 +243,5 @@
|
||||
openSound = 'sound/effects/doorcreaky.ogg'
|
||||
closeSound = 'sound/effects/doorcreaky.ogg'
|
||||
sheetType = /obj/item/stack/sheet/mineral/wood
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 30
|
||||
|
||||
@@ -164,7 +164,7 @@ FLOOR SAFES
|
||||
return ..()
|
||||
|
||||
|
||||
obj/structure/safe/blob_act(obj/effect/blob/B)
|
||||
obj/structure/safe/blob_act(obj/structure/blob/B)
|
||||
return
|
||||
|
||||
obj/structure/safe/ex_act(severity, target)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/obj/structure/sign/ex_act(severity, target)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/sign/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/sign/blob_act(obj/structure/blob/B)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/sign/attackby(obj/item/O, mob/user, params)
|
||||
@@ -87,7 +87,7 @@
|
||||
icon = 'icons/obj/decals.dmi'
|
||||
icon_state = "backing"
|
||||
w_class = 3
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
var/sign_path = /obj/structure/sign/basic //the type of sign that will be created when placed on a turf
|
||||
|
||||
/obj/item/sign_backing/afterattack(atom/target, mob/user, proximity)
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
icon_state = "wood_frame"
|
||||
framestack = /obj/item/stack/sheet/mineral/wood
|
||||
framestackamount = 2
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/structure/table_frame/wood/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/stack/sheet/mineral/wood))
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
if(3)
|
||||
take_damage(rand(40,80), BRUTE, 0)
|
||||
|
||||
/obj/structure/table/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/table/blob_act(obj/structure/blob/B)
|
||||
take_damage(rand(75,150), BRUTE, 0)
|
||||
|
||||
/obj/structure/table/narsie_act()
|
||||
@@ -315,7 +315,7 @@
|
||||
frame = /obj/structure/table_frame/wood
|
||||
framestack = /obj/item/stack/sheet/mineral/wood
|
||||
buildstack = /obj/item/stack/sheet/mineral/wood
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = 0
|
||||
burntime = 20
|
||||
canSmoothWith = list(/obj/structure/table/wood,
|
||||
/obj/structure/table/wood/poker,
|
||||
@@ -364,6 +364,7 @@
|
||||
buildstack = /obj/item/stack/sheet/plasteel
|
||||
canSmoothWith = list(/obj/structure/table/reinforced, /obj/structure/table)
|
||||
health = 200
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 100, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 70)
|
||||
|
||||
/obj/structure/table/reinforced/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
@@ -476,7 +477,7 @@
|
||||
if(3)
|
||||
take_damage(rand(5,25), BRUTE, 0)
|
||||
|
||||
/obj/structure/rack/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/rack/blob_act(obj/structure/blob/B)
|
||||
rack_destroy()
|
||||
|
||||
|
||||
|
||||
@@ -332,7 +332,7 @@
|
||||
if(H.w_uniform.clean_blood())
|
||||
H.update_inv_w_uniform()
|
||||
if(washgloves)
|
||||
clean_blood()
|
||||
H.clean_blood()
|
||||
if(H.shoes && washshoes)
|
||||
if(H.shoes.clean_blood())
|
||||
H.update_inv_shoes()
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
if(3)
|
||||
take_damage(rand(25,75), BRUTE, 0)
|
||||
|
||||
/obj/structure/window/blob_act(obj/effect/blob/B)
|
||||
/obj/structure/window/blob_act(obj/structure/blob/B)
|
||||
take_damage(rand(75,150), BRUTE, 0)
|
||||
|
||||
/obj/structure/window/narsie_act()
|
||||
@@ -434,6 +434,7 @@
|
||||
name = "reinforced window"
|
||||
icon_state = "rwindow"
|
||||
reinf = 1
|
||||
armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 25, bio = 100, rad = 100, fire = 0, acid = 0)
|
||||
maxhealth = 50
|
||||
explosion_block = 1
|
||||
|
||||
@@ -494,6 +495,7 @@
|
||||
wtype = "shuttle"
|
||||
fulltile = 1
|
||||
reinf = 1
|
||||
armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 25, bio = 100, rad = 100, fire = 0, acid = 0)
|
||||
smooth = SMOOTH_TRUE
|
||||
canSmoothWith = null
|
||||
explosion_block = 1
|
||||
|
||||
Reference in New Issue
Block a user