mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
destruction proc, cable deconstruction
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
obj/structure
|
||||
/obj/structure
|
||||
icon = 'icons/obj/structures.dmi'
|
||||
|
||||
obj/structure/blob_act()
|
||||
/obj/structure/blob_act()
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
|
||||
obj/structure/ex_act(severity)
|
||||
/obj/structure/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
@@ -17,7 +17,10 @@ obj/structure/ex_act(severity)
|
||||
if(3.0)
|
||||
return
|
||||
|
||||
obj/structure/Destroy()
|
||||
/obj/structure/Destroy()
|
||||
if(opacity)
|
||||
UpdateAffectingLights()
|
||||
..()
|
||||
..()
|
||||
|
||||
/obj/structure/proc/Deconstruct()
|
||||
qdel(src)
|
||||
+20
-28
@@ -34,6 +34,7 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
var/d2 = 1 // cable direction 2 (see above)
|
||||
layer = 2.44 //Just below unary stuff, which is at 2.45 and above pipes, which are at 2.4
|
||||
var/cable_color = "red"
|
||||
var/obj/item/stack/cable_coil/stored
|
||||
|
||||
/obj/structure/cable/yellow
|
||||
cable_color = "yellow"
|
||||
@@ -81,6 +82,9 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
if(level==1) hide(T.intact)
|
||||
cable_list += src //add it to the global cable list
|
||||
|
||||
if(d1)
|
||||
stored = new/obj/item/stack/cable_coil(src,2,cable_color)
|
||||
else stored = new/obj/item/stack/cable_coil(src,1,cable_color)
|
||||
|
||||
/obj/structure/cable/Destroy() // called when a cable is deleted
|
||||
if(powernet)
|
||||
@@ -88,6 +92,11 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
cable_list -= src //remove it from global cable list
|
||||
..() // then go ahead and delete the cable
|
||||
|
||||
/obj/structure/cable/Deconstruct()
|
||||
var/turf/T = loc
|
||||
stored.loc = T
|
||||
..()
|
||||
|
||||
///////////////////////////////////
|
||||
// General procedures
|
||||
///////////////////////////////////
|
||||
@@ -120,31 +129,18 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
// - Multitool : get the power currently passing through the cable
|
||||
//
|
||||
/obj/structure/cable/attackby(obj/item/W, mob/user)
|
||||
|
||||
var/turf/T = src.loc
|
||||
if(T.intact)
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/wirecutters))
|
||||
|
||||
if (shock(user, 50))
|
||||
return
|
||||
|
||||
var/obj/newcable
|
||||
if(src.d1) // 0-X cables are 1 unit, X-X cables are 2 units long
|
||||
newcable = new/obj/item/stack/cable_coil(T, 2, cable_color)
|
||||
else
|
||||
newcable = new/obj/item/stack/cable_coil(T, 1, cable_color)
|
||||
|
||||
visible_message("<span class='warning'>[user] cuts the cable.</span>")
|
||||
|
||||
newcable.add_fingerprint(user)
|
||||
stored.add_fingerprint(user)
|
||||
investigate_log("was cut by [key_name(usr, usr.client)] in [user.loc.loc]","wires")
|
||||
|
||||
qdel(src)
|
||||
Deconstruct()
|
||||
return
|
||||
|
||||
|
||||
else if(istype(W, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/coil = W
|
||||
if (coil.get_amount() < 1)
|
||||
@@ -153,13 +149,10 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
coil.cable_join(src, user)
|
||||
|
||||
else if(istype(W, /obj/item/device/multitool))
|
||||
|
||||
if(powernet && (powernet.avail > 0)) // is it powered?
|
||||
user << "<span class='danger'>[powernet.avail]W in power network.</span>"
|
||||
|
||||
else
|
||||
user << "<span class='danger'>The cable is not powered.</span>"
|
||||
|
||||
shock(user, 5, 0.2)
|
||||
|
||||
else
|
||||
@@ -187,15 +180,17 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
qdel(src)
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
new/obj/item/stack/cable_coil(src.loc, src.d1 ? 2 : 1, cable_color)
|
||||
qdel(src)
|
||||
Deconstruct()
|
||||
|
||||
if(3.0)
|
||||
if (prob(25))
|
||||
new/obj/item/stack/cable_coil(src.loc, src.d1 ? 2 : 1, cable_color)
|
||||
qdel(src)
|
||||
Deconstruct()
|
||||
return
|
||||
|
||||
/obj/structure/cable/singularity_pull(S, current_size)
|
||||
if(current_size >= 9)
|
||||
Deconstruct()
|
||||
|
||||
obj/structure/cable/proc/cableColor(var/colorC)
|
||||
var/color_n = "red"
|
||||
if(colorC)
|
||||
@@ -676,8 +671,7 @@ obj/structure/cable/proc/avail()
|
||||
|
||||
if (C.shock(user, 50))
|
||||
if (prob(50)) //fail
|
||||
new/obj/item/stack/cable_coil(C.loc, 1, C.cable_color)
|
||||
qdel(C)
|
||||
C.Deconstruct()
|
||||
|
||||
// called when cable_coil is click on an installed obj/cable
|
||||
// or click on a turf that already contains a "node" cable
|
||||
@@ -740,8 +734,7 @@ obj/structure/cable/proc/avail()
|
||||
|
||||
if (NC.shock(user, 50))
|
||||
if (prob(50)) //fail
|
||||
new/obj/item/stack/cable_coil(NC.loc, 1, NC.cable_color)
|
||||
qdel(NC)
|
||||
NC.Deconstruct()
|
||||
|
||||
return
|
||||
|
||||
@@ -788,8 +781,7 @@ obj/structure/cable/proc/avail()
|
||||
|
||||
if (C.shock(user, 50))
|
||||
if (prob(50)) //fail
|
||||
new/obj/item/stack/cable_coil(C.loc, 2, C.cable_color)
|
||||
qdel(C)
|
||||
C.Deconstruct()
|
||||
return
|
||||
|
||||
C.denode()// this call may have disconnected some cables that terminated on the centre of the turf, if so split the powernets.
|
||||
|
||||
Reference in New Issue
Block a user