From 10d382258f0806e8b2976f78eda309a9ba4aa45b Mon Sep 17 00:00:00 2001 From: "n3ophyt3@gmail.com" Date: Sat, 18 Dec 2010 23:55:20 +0000 Subject: [PATCH] Made some "tactical" explosives for Noize Use it on itself to set the timer length (defaults to 10 seconds) Can be applied to floors, walls, monkeys, whatever Whatever it is applied to suffers a max-severity ex_act()(turf turns to space, objects are destroyed, mobs gib), aside from walls, which are simply busted down to not even girder Minimal damage to everything else in range, as with a PDA bomb Fits in your pocket for convenient carry Replaces the piss-weak syndiebombs for anyone with a syndicate uplink, comes in 2-packs Low-severity explosions do not have a 100% chance of knocking walls down to girders anymore. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@662 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/obj/weapon.dm | 10 ++++++++++ code/game/atom_procs.dm | 2 +- code/game/objects/devices/PDA.dm | 5 +++-- code/game/turf.dm | 8 +++++++- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 1feb8261eed..338fc1923a7 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -1647,3 +1647,13 @@ Total SMES charging rate should not exceed total power generation rate, or an ov w_class = 2.0 m_amt = 50 +/obj/item/weapon/plastique + name = "Plastic Explosives" + desc = "Used to put holes in specific areas without too much extra hole." + icon = 'assemblies.dmi' + icon_state = "timer-igniter-tank0" + item_state = "plasma-c" + flags = FPRINT | TABLEPASS | USEDELAY + w_class = 2.0 + var/timer = 10 + var/atom/target = null \ No newline at end of file diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index 673afdce6af..33d896d7be5 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -40,7 +40,7 @@ if ((O.client && !( O.blinded ))) O << text("\red [src] has been scanned by [user] with the [W]") else - if (!( istype(W, /obj/item/weapon/grab) ) || !(istype(W, /obj/item/weapon/cleaner)) || !(istype(W, /obj/item/weapon/plantbgone)) ) + if (!( istype(W, /obj/item/weapon/grab) ) && !(istype(W, /obj/item/weapon/plastique)) &&!(istype(W, /obj/item/weapon/cleaner)) && !(istype(W, /obj/item/weapon/plantbgone)) ) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O << text("\red [] has been hit by [] with []", src, user, W) diff --git a/code/game/objects/devices/PDA.dm b/code/game/objects/devices/PDA.dm index 50bcdc4e018..a36ed97a9f3 100644 --- a/code/game/objects/devices/PDA.dm +++ b/code/game/objects/devices/PDA.dm @@ -1681,7 +1681,7 @@ Code: src.menu_message += "Sleepy Pen (5)
" src.menu_message += "Cloaking Device (4)
" src.menu_message += "Energy Sword (4)
" - src.menu_message += "Low-Yield Bomb (4)
" + src.menu_message += "Plastic Explosives (4)
" src.menu_message += "Power Sink (5)
" src.menu_message += "Detomatix Cartridge (3)
" src.menu_message += "Syndicate-made Space Suit (inludes a helmet) (3)
" @@ -1766,7 +1766,8 @@ Code: if("bomb") if (src.uses >= 4) src.uses -= 4 - new /obj/spawner/newbomb/timer/syndicate(get_turf(src.hostpda)) + new /obj/item/weapon/plastique(get_turf(src.hostpda)) + new /obj/item/weapon/plastique(get_turf(src.hostpda)) if("powersink") if (src.uses >= 5) src.uses -= 5 diff --git a/code/game/turf.dm b/code/game/turf.dm index c7dc6dc9143..506d2bf356d 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -265,7 +265,13 @@ else dismantle_wall(devastated=1) if(3.0) - dismantle_wall() + var/proba + if (istype(src, /turf/simulated/wall/r_wall)) + proba = 15 + else + proba = 40 + if (prob(proba)) + dismantle_wall() else return