Adding fingerprints to actions:

-breaking windoors
-wrenching/unwrenching pipe dispensers
-locking/unlocking crates
-breaking grilles
-smashing windows
-deconning walls
This commit is contained in:
ikarrus
2014-06-04 22:30:46 -06:00
parent 40800b79e0
commit b1f050e63a
7 changed files with 42 additions and 20 deletions
+12 -7
View File
@@ -150,10 +150,14 @@
/obj/machinery/door/window/proc/take_damage(var/damage)
src.health = max(0, src.health - damage)
if (src.health <= 0)
new /obj/item/weapon/shard(src.loc)
new /obj/item/weapon/shard(src.loc)
new /obj/item/stack/rods(src.loc, 2)
new /obj/item/stack/cable_coil(src.loc, 2)
var/debris = list(
new /obj/item/weapon/shard(src.loc),
new /obj/item/weapon/shard(src.loc),
new /obj/item/stack/rods(src.loc, 2),
new /obj/item/stack/cable_coil(src.loc, 2)
)
for(var/obj/fragment in debris)
transfer_fingerprints_to(fragment)
src.density = 0
qdel(src)
return
@@ -223,6 +227,8 @@
if (src.operating)
return
add_fingerprint(user)
//Emags and ninja swords? You may pass.
if (src.density && (istype(I, /obj/item/weapon/card/emag)||istype(I, /obj/item/weapon/melee/energy/blade)))
src.operating = -1
@@ -241,7 +247,7 @@
open()
emagged = 1
return 1
//If windoor is unpowered, crowbar, fireaxe and armblade can force it.
if(istype(I, /obj/item/weapon/crowbar) || istype(I, /obj/item/weapon/twohanded/fireaxe) || istype(I, /obj/item/weapon/melee/arm_blade) )
if(stat & NOPOWER)
@@ -260,8 +266,7 @@
if(I.damtype == BURN || I.damtype == BRUTE)
take_damage(aforce)
return
src.add_fingerprint(user)
if (!src.requiresID())
//don't care who they are or what they have, act as if they're NOTHING
user = null
@@ -82,6 +82,7 @@
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "<span class='notice'>You begin to fasten \the [src] to the floor...</span>"
if (do_after(user, 40))
add_fingerprint(user)
user.visible_message( \
"[user] fastens \the [src].", \
"<span class='notice'>You have fastened \the [src]. Now it can dispense pipes.</span>", \
@@ -94,6 +95,7 @@
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "<span class='notice'>You begin to unfasten \the [src] from the floor...</span>"
if (do_after(user, 20))
add_fingerprint(user)
user.visible_message( \
"[user] unfastens \the [src].", \
"<span class='notice'>You have unfastened \the [src]. Now it can be pulled somewhere else.</span>", \
@@ -43,6 +43,7 @@
/obj/structure/closet/secure_closet/proc/togglelock(mob/user as mob)
if(src.allowed(user))
src.locked = !src.locked
add_fingerprint(user)
for(var/mob/O in viewers(user, 3))
if((O.client && !( O.blinded )))
O << "<span class='notice'>The locker has been [locked ? null : "un"]locked by [user].</span>"
@@ -290,6 +290,7 @@
src.locked = 0
overlays.Cut()
overlays += greenlight
add_fingerprint(user)
return
else
user << "<span class='notice'>[src] is locked.</span>"
@@ -303,6 +304,7 @@
src.locked = 1
overlays.Cut()
overlays += redlight
add_fingerprint(user)
return
else if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && locked &&!broken)
overlays.Cut()
@@ -313,6 +315,7 @@
src.locked = 0
src.broken = 1
user << "<span class='notice'>You unlock \the [src].</span>"
add_fingerprint(user)
return
return ..()
+8 -7
View File
@@ -101,14 +101,14 @@
/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob)
user.changeNext_move(8)
add_fingerprint(user)
if(istype(W, /obj/item/weapon/wirecutters))
if(!shock(user, 100))
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
if(destroyed)
new /obj/item/stack/rods(loc)
else
new /obj/item/stack/rods(loc)
new /obj/item/stack/rods(loc)
var/obj/item/stack/rods/newrods = new(loc)
transfer_fingerprints_to(newrods)
if(!destroyed)
newrods.amount = 2
qdel(src)
else if((istype(W, /obj/item/weapon/screwdriver)) && (istype(loc, /turf/simulated) || anchored))
if(!shock(user, 90))
@@ -181,15 +181,16 @@
/obj/structure/grille/proc/healthcheck()
if(health <= 0)
var/obj/item/stack/rods/newrods = new(loc)
transfer_fingerprints_to(newrods)
if(!destroyed)
icon_state = "brokengrille"
density = 0
destroyed = 1
new /obj/item/stack/rods(loc)
else
if(health <= -6)
new /obj/item/stack/rods(loc)
qdel(src)
return
return
+8 -4
View File
@@ -220,15 +220,19 @@
var/index = null
index = 0
while(index < 2)
new /obj/item/weapon/shard(loc)
if(reinf) new /obj/item/stack/rods(loc)
spawnfragments()
index++
else
new /obj/item/weapon/shard(loc)
if(reinf) new /obj/item/stack/rods(loc)
spawnfragments()
qdel(src)
return
/obj/structure/window/proc/spawnfragments()
var/newshard = new /obj/item/weapon/shard(loc)
transfer_fingerprints_to(newshard)
if(reinf)
var/newrods = new /obj/item/stack/rods(loc)
transfer_fingerprints_to(newrods)
/obj/structure/window/verb/rotate()
set name = "Rotate Window Counter-Clockwise"
+8 -2
View File
@@ -14,10 +14,11 @@
var/hardness = 40 //lower numbers are harder. Used to determine the probability of a hulk smashing through.
/turf/simulated/wall/proc/dismantle_wall(devastated=0, explode=0)
var/newgirder = null
if(istype(src,/turf/simulated/wall/r_wall))
if(!devastated)
playsound(src, 'sound/items/Welder.ogg', 100, 1)
new /obj/structure/girder/reinforced(src)
newgirder = new /obj/structure/girder/reinforced(src)
new /obj/item/stack/sheet/plasteel( src )
else
new /obj/item/stack/sheet/metal( src )
@@ -35,7 +36,7 @@
else
if(!devastated)
playsound(src, 'sound/items/Welder.ogg', 100, 1)
new /obj/structure/girder(src)
newgirder = new /obj/structure/girder(src)
if (mineral == "metal")
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
@@ -54,6 +55,9 @@
new M( src )
new /obj/item/stack/sheet/metal( src )
if(newgirder)
transfer_fingerprints_to(newgirder)
for(var/obj/O in src.contents) //Eject contents!
if(istype(O,/obj/structure/sign/poster))
var/obj/structure/sign/poster/P = O
@@ -175,6 +179,8 @@
var/turf/T = user.loc //get user's location for delay checks
//DECONSTRUCTION
add_fingerprint(user)
if( istype(W, /obj/item/weapon/weldingtool) )
var/obj/item/weapon/weldingtool/WT = W
if( WT.remove_fuel(0,user) )