for-God-has-redeemed-us-all

This commit is contained in:
Fox McCloud
2019-09-30 16:49:15 -04:00
parent 2224229fad
commit a469d0fcf2
53 changed files with 485 additions and 406 deletions
@@ -129,6 +129,22 @@
random_icon_states = list("gvomit_1", "gvomit_2", "gvomit_3", "gvomit_4")
scoop_reagents = list("green_vomit" = 5)
/obj/effect/decal/cleanable/shreds
name = "shreds"
desc = "The shredded remains of what appears to be clothing."
icon_state = "shreds"
gender = PLURAL
mergeable_decal = FALSE
/obj/effect/decal/cleanable/shreds/ex_act(severity, target)
if(severity == 1) //so shreds created during an explosion aren't deleted by the explosion.
qdel(src)
/obj/effect/decal/cleanable/shreds/Initialize(mapload)
pixel_x = rand(-10, 10)
pixel_y = rand(-10, 10)
. = ..()
/obj/effect/decal/cleanable/tomato_smudge
name = "tomato smudge"
desc = "It's red."
@@ -124,6 +124,11 @@
if(!(opened ? close() : open()))
to_chat(user, "<span class='notice'>It won't budge!</span>")
/obj/structure/closet/deconstruct(disassembled = TRUE)
if(ispath(material_drop) && material_drop_amount && !(flags & NODECONSTRUCT))
new material_drop(loc, material_drop_amount)
qdel(src)
/obj/structure/closet/ex_act(severity)
switch(severity)
if(1)
@@ -239,9 +244,7 @@
visible_message("<span class='notice'>[user] slices apart \the [src].</span>",
"<span class='notice'>You cut \the [src] apart with \the [WT].</span>",
"<span class='italics'>You hear welding.</span>")
var/turf/T = get_turf(src)
new material_drop(T, material_drop_amount)
qdel(src)
deconstruct(TRUE)
return
if(isrobot(user))
return
+9 -4
View File
@@ -47,7 +47,7 @@
/obj/structure/extinguisher_cabinet/Destroy()
QDEL_NULL(has_extinguisher)
return ..()
/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user, params)
if(isrobot(user) || isalien(user))
return
@@ -82,9 +82,7 @@
visible_message("<span class='notice'>[user] slices apart [src].</span>",
"<span class='notice'>You cut [src] apart with [WT].</span>",
"<span class='italics'>You hear welding.</span>")
var/turf/T = get_turf(src)
new material_drop(T)
qdel(src)
deconstruct(TRUE)
else
playsound(loc, 'sound/machines/click.ogg', 15, TRUE, -3)
opened = !opened
@@ -127,6 +125,13 @@
opened = !opened
update_icon()
/obj/structure/extinguisher_cabinet/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
new /obj/item/stack/sheet/metal(loc)
if(has_extinguisher)
has_extinguisher.forceMove(loc)
has_extinguisher = null
qdel(src)
/obj/structure/extinguisher_cabinet/update_icon()
if(!opened)
+4 -29
View File
@@ -173,32 +173,7 @@
update_icon() //Not really needed without overlays, but keeping just in case
updateUsrDialog()
/*
Overlays for cart_unused
/obj/structure/foodcart/update_icon()
overlays = null
if(food1)
overlays += "cart_food1"
if(food2)
overlays += "cart_food2"
if(food3)
overlays += "cart_food3"
if(food4)
overlays += "cart_food4"
if(food5)
overlays += "cart_food5"
if(food6)
overlays += "cart_food6"
if(drink1)
overlays += "cart_drink1"
if(drink2)
overlays += "cart_drink2"
if(drink3)
overlays += "cart_drink3"
if(drink4)
overlays += "cart_drink4"
if(drink5)
overlays += "cart_drink5"
if(drink6)
overlays += "cart_drink6"
*/
/obj/structure/foodcart/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
new /obj/item/stack/sheet/metal(loc, 4)
qdel(src)
@@ -52,10 +52,7 @@
playsound(loc, G.usesound, 100, 1)
if(do_after(user, 20 * G.toolspeed, target = src))
to_chat(user, "<span class='notice'>You pry the spikes out of the frame.</span>")
new /obj/item/stack/rods(loc, 4)
new /obj/structure/kitchenspike_frame(loc)
add_fingerprint(user)
qdel(src)
deconstruct(TRUE)
else
to_chat(user, "<span class='notice'>You can't do that while something's on the spike!</span>")
return
@@ -37,6 +37,10 @@
user << browse("<HEAD><TITLE>Notices</TITLE></HEAD>[dat]","window=noticeboard")
onclose(user, "noticeboard")
/obj/structure/noticeboard/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
new /obj/item/stack/sheet/metal (loc, 1)
qdel(src)
/obj/structure/noticeboard/Topic(href, href_list)
..()
+36 -94
View File
@@ -5,76 +5,41 @@
icon_state = ""
density = 1
anchored = 0
var/hardness = 1
var/oreAmount = 5
var/material_drop_type = /obj/item/stack/sheet/metal
/obj/structure/statue/attackby(obj/item/W, mob/living/user, params)
add_fingerprint(user)
user.changeNext_move(CLICK_CD_MELEE)
if(iswrench(W))
if(anchored)
playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] is loosening the [name]'s bolts.", \
"<span class='notice'>You are loosening the [name]'s bolts...</span>")
if(do_after(user, 40 * W.toolspeed, target = src))
if(!loc || !anchored)
return
user.visible_message("[user] loosened the [name]'s bolts!", \
"<span class='notice'>You loosen the [name]'s bolts!</span>")
anchored = 0
else
if(!isfloorturf(loc))
user.visible_message("<span class='warning'>A floor must be present to secure the [name]!</span>")
return
playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] is securing the [name]'s bolts...", \
"<span class='notice'>You are securing the [name]'s bolts...</span>")
if(do_after(user, 40 * W.toolspeed, target = src))
if(!loc || anchored)
return
user.visible_message("[user] has secured the [name]'s bolts.", \
"<span class='notice'>You have secured the [name]'s bolts.</span>")
anchored = 1
else if(istype(W, /obj/item/gun/energy/plasmacutter))
playsound(src, W.usesound, 100, 1)
user.visible_message("[user] is slicing apart the [name]...", \
"<span class='notice'>You are slicing apart the [name]...</span>")
if(do_after(user, 40 * W.toolspeed, target = src))
if(!loc)
return
user.visible_message("[user] slices apart the [name].", \
"<span class='notice'>You slice apart the [name].</span>")
Dismantle(TRUE)
else if(istype(W, /obj/item/pickaxe/drill/jackhammer))
var/obj/item/pickaxe/drill/jackhammer/D = W
if(!loc)
if(!(flags & NODECONSTRUCT))
if(default_unfasten_wrench(user, W))
return
user.visible_message("[user] destroys the [name]!", \
"<span class='notice'>You destroy the [name].</span>")
D.playDigSound()
qdel(src)
else if(iswelder(W) && !anchored)
var/obj/item/weldingtool/WT = W
if(WT.remove_fuel(0, user))
playsound(loc, W.usesound, 40, 1)
user.visible_message("[user] is slicing apart the [name].", \
if(istype(W, /obj/item/gun/energy/plasmacutter))
playsound(src, W.usesound, 100, 1)
user.visible_message("[user] is slicing apart the [name]...", \
"<span class='notice'>You are slicing apart the [name]...</span>")
if(do_after(user, 40 * W.toolspeed, target = src))
if(!loc)
return
playsound(loc, W.usesound, 50, 1)
user.visible_message("[user] slices apart the [name].", \
"<span class='notice'>You slice apart the [name]!</span>")
Dismantle(TRUE)
else
hardness -= W.force/100
..()
CheckHardness()
return ..()
"<span class='notice'>You slice apart the [name].</span>")
deconstruct(TRUE)
return
else if(iswelder(W))
var/obj/item/weldingtool/WT = W
if(WT.remove_fuel(0, user))
playsound(loc, W.usesound, 40, 1)
user.visible_message("[user] is slicing apart the [name].", \
"<span class='notice'>You are slicing apart the [name]...</span>")
if(do_after(user, 40 * W.toolspeed, target = src))
if(!loc)
return
playsound(loc, W.usesound, 50, 1)
user.visible_message("[user] slices apart the [name].", \
"<span class='notice'>You slice apart the [name]!</span>")
deconstruct(TRUE)
return
return ..()
/obj/structure/statue/attack_hand(mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
@@ -85,35 +50,17 @@
/obj/structure/statue/CanAtmosPass()
return !density
/obj/structure/statue/proc/CheckHardness()
if(hardness <= 0)
Dismantle(TRUE)
/obj/structure/statue/proc/Dismantle(disassembled = TRUE)
if(material_drop_type)
var/drop_amt = oreAmount
if(!disassembled)
drop_amt -= 2
if(drop_amt > 0)
new material_drop_type(get_turf(src), drop_amt)
/obj/structure/statue/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
if(material_drop_type)
var/drop_amt = oreAmount
if(!disassembled)
drop_amt -= 2
if(drop_amt > 0)
new material_drop_type(get_turf(src), drop_amt)
qdel(src)
/obj/structure/statue/ex_act(severity = 1)
switch(severity)
if(1)
Dismantle(TRUE)
if(2)
if(prob(20))
Dismantle(TRUE)
else
hardness--
CheckHardness()
if(3)
hardness -= 0.1
CheckHardness()
/obj/structure/statue/uranium
hardness = 3
light_range = 2
material_drop_type = /obj/item/stack/sheet/mineral/uranium
var/last_event = 0
@@ -151,7 +98,6 @@
active = null
/obj/structure/statue/plasma
hardness = 2
material_drop_type = /obj/item/stack/sheet/mineral/plasma
desc = "This statue is suitably made from plasma."
@@ -192,14 +138,13 @@
/obj/structure/statue/plasma/proc/PlasmaBurn()
atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 160)
Dismantle(FALSE)
deconstruct(FALSE)
/obj/structure/statue/plasma/proc/ignite(exposed_temperature)
if(exposed_temperature > 300)
PlasmaBurn()
/obj/structure/statue/gold
hardness = 3
material_drop_type = /obj/item/stack/sheet/mineral/gold
desc = "This is a highly valuable statue made from gold."
@@ -224,7 +169,6 @@
icon_state = "rd"
/obj/structure/statue/silver
hardness = 3
material_drop_type = /obj/item/stack/sheet/mineral/silver
desc = "This is a valuable statue made from silver."
@@ -249,7 +193,6 @@
icon_state = "medborg"
/obj/structure/statue/diamond
hardness = 10
material_drop_type = /obj/item/stack/sheet/mineral/diamond
desc = "This is a very expensive diamond statue."
@@ -266,7 +209,6 @@
icon_state = "ai2"
/obj/structure/statue/bananium
hardness = 3
material_drop_type = /obj/item/stack/sheet/mineral/bananium
desc = "A bananium statue with a small engraving:'HOOOOOOONK'."
var/spam_flag = 0
@@ -295,7 +237,6 @@
spam_flag = 0
/obj/structure/statue/sandstone
hardness = 0.5
material_drop_type = /obj/item/stack/sheet/mineral/sandstone
/obj/structure/statue/sandstone/assistant
@@ -310,7 +251,6 @@
icon_state = "venus"
/obj/structure/statue/tranquillite
hardness = 0.5
material_drop_type = /obj/item/stack/sheet/mineral/tranquillite
desc = "..."
@@ -328,7 +268,9 @@
to_chat(user, "It is fastened to the floor!")
return
setDir(turn(dir, 90))
////////////////////////////////
/obj/structure/snowman
name = "snowman"
desc = "Seems someone made a snowman here."
@@ -374,4 +316,4 @@
icon = 'icons/obj/decorations.dmi'
icon_state = "chickenstatue"
anchored = 1
density = 1
density = 1
@@ -40,11 +40,20 @@
/obj/structure/bed/proc/handle_rotation()
return
/obj/structure/bed/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/wrench))
playsound(loc, W.usesound, 50, 1)
new buildstacktype(loc, buildstackamount)
qdel(src)
/obj/structure/bed/attackby(obj/item/W, mob/user, params)
if(iswrench(W) && !(flags & NODECONSTRUCT))
playsound(loc, W.usesound, 50, TRUE)
deconstruct(TRUE)
else
return ..()
/obj/structure/bed/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
if(buildstacktype)
new buildstacktype(loc, buildstackamount)
..()
/*
* Roller beds
*/
@@ -51,10 +51,18 @@
SK.loc = E
SK.master = E
qdel(src)
if(istype(W, /obj/item/wrench))
return
if(iswrench(W) && !(flags & NODECONSTRUCT))
playsound(loc, W.usesound, 50, 1)
deconstruct(TRUE)
return
return ..()
/obj/structure/chair/deconstruct()
// If we have materials, and don't have the NOCONSTRUCT flag
if(buildstacktype && (!(flags & NODECONSTRUCT)))
new buildstacktype(loc, buildstackamount)
qdel(src)
..()
/obj/structure/chair/MouseDrop(over_object, src_location, over_location)
. = ..()
+5 -5
View File
@@ -244,7 +244,7 @@
return ..()
/obj/structure/table/deconstruct(disassembled = TRUE, wrench_disassembly = 0)
if(can_deconstruct)
if(!(flags & NODECONSTRUCT))
var/turf/T = get_turf(src)
new buildstack(T, buildstackamount)
if(!wrench_disassembly)
@@ -422,13 +422,13 @@
qdel(src)
/obj/structure/table/glass/deconstruct(disassembled = TRUE, wrench_disassembly = 0)
if(can_deconstruct)
if(!(flags & NODECONSTRUCT))
if(disassembled)
..()
return
else
var/turf/T = get_turf(src)
playsound(T, "shatter", 50, 1)
playsound(T, "shatter", 50, TRUE)
for(var/X in debris)
var/atom/movable/AM = X
AM.forceMove(T)
@@ -680,7 +680,7 @@
step(O, get_dir(O, src))
/obj/structure/rack/attackby(obj/item/W, mob/user, params)
if(iswrench(W) && can_deconstruct)
if(iswrench(W) && !(flags & NODECONSTRUCT) && user.a_intent != INTENT_HELP)
playsound(loc, W.usesound, 50, 1)
deconstruct(TRUE)
return
@@ -729,7 +729,7 @@
*/
/obj/structure/rack/deconstruct(disassembled = TRUE)
if(can_deconstruct)
if(!(flags & NODECONSTRUCT))
density = FALSE
var/obj/item/rack_parts/newparts = new(loc)
transfer_fingerprints_to(newparts)
@@ -118,3 +118,11 @@
else
SSnanoui.close_user_uis(usr,src)
return 1
/obj/structure/tank_dispenser/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
for(var/X in src)
var/obj/item/I = X
I.forceMove(loc)
new /obj/item/stack/sheet/metal(loc, 2)
qdel(src)
+1 -1
View File
@@ -345,7 +345,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
return
if(!disassembled)
playsound(src, breaksound, 70, 1)
if(can_deconstruct)
if(!(flags & NODECONSTRUCT))
for(var/i in debris)
var/obj/item/I = i
I.forceMove(loc)