updated grenades, now with remote control, proximity control and timer control for your choosing

This commit is contained in:
Ater Ignis
2012-10-25 19:56:32 +04:00
parent 71d3154f26
commit 6337048aad
8 changed files with 160 additions and 38 deletions

View File

@@ -44,6 +44,8 @@
a_right = D2
name = "[D.name]-[D2.name] assembly"
update_icon()
usr.put_in_hands(src)
return 1
@@ -154,8 +156,10 @@
if("Right") a_right.attack_self(user)
return
else
a_left.attack_self(user)
a_right.attack_self(user)
if(!istype(a_left,/obj/item/device/assembly/igniter))
a_left.attack_self(user)
if(!istype(a_right,/obj/item/device/assembly/igniter))
a_right.attack_self(user)
else
var/turf/T = get_turf(src)
if(!T) return 0
@@ -172,6 +176,8 @@
process_activation(var/obj/D, var/normal = 1, var/special = 1)
if(!D) return 0
if(!secured)
visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
if((normal) && (a_right) && (a_left))
if(a_right != D)
a_right.pulsed(0)

View File

@@ -7,23 +7,31 @@
w_amt = 10
origin_tech = "magnets=1"
wires = WIRE_RECEIVE
secured = 1
activate()
if(!..()) return 0//Cooldown check
var/turf/location = get_turf(loc)
if(location)
location.hotspot_expose(1000,1000)
if (istype(src.loc,/obj/item/device/assembly_holder))
if (istype(src.loc.loc, /obj/structure/reagent_dispensers/fueltank/))
var/obj/structure/reagent_dispensers/fueltank/tank = src.loc.loc
if (tank && tank.modded)
tank.explode()
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
if(holder && istype(holder.loc,/obj/item/weapon/grenade/chem_grenade))
var/obj/item/weapon/grenade/chem_grenade/grenade = holder.loc
grenade.prime()
else
var/turf/location = get_turf(loc)
if(location)
location.hotspot_expose(1000,1000)
if (istype(src.loc,/obj/item/device/assembly_holder))
if (istype(src.loc.loc, /obj/structure/reagent_dispensers/fueltank/))
var/obj/structure/reagent_dispensers/fueltank/tank = src.loc.loc
if (tank && tank.modded)
tank.explode()
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
return 1

View File

@@ -9,6 +9,8 @@
w_amt = 100
origin_tech = "magnets=2"
wires = WIRE_PULSE
secured = 0
var/on = 0
@@ -100,7 +102,8 @@
trigger_beam()
if((!secured)||(!on)||(cooldown > 0)) return 0
pulse(0)
visible_message("\icon[src] *beep* *beep*")
if(!holder)
visible_message("\icon[src] *beep* *beep*")
cooldown = 2
spawn(10)
process_cooldown()

View File

@@ -7,12 +7,16 @@
w_amt = 50
origin_tech = "magnets=1"
wires = WIRE_PULSE
secured = 0
var/scanning = 0
var/timing = 0
var/time = 10
var/range = 1
proc
toggle_scan()
sense()
@@ -44,9 +48,14 @@
sense()
if((!secured)||(!scanning)||(cooldown > 0)) return 0
var/obj/mainloc = loc
if(holder) mainloc=holder.loc
// if(scanning && cooldown <= 0)
// mainloc.visible_message("\icon[src] *boop* *boop*", "*boop* *boop*")
if((!holder && !secured)||(!scanning)||(cooldown > 0)) return 0
pulse(0)
visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
if(!holder)
mainloc.visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
cooldown = 2
spawn(10)
process_cooldown()
@@ -54,6 +63,13 @@
process()
if(scanning)
var/obj/mainloc = loc
if(holder) mainloc=holder.loc
for(var/mob/living/A in range(range,mainloc))
if (A.move_speed < 12)
sense()
if(timing && (time >= 0))
time--
if(timing && time <= 0)
@@ -88,6 +104,9 @@
attached_overlays += "prox_scanning"
if(holder)
holder.update_icon()
if(holder && istype(holder.loc,/obj/item/weapon/grenade/chem_grenade))
var/obj/item/weapon/grenade/chem_grenade/grenade = holder.loc
grenade.primed(scanning)
return
@@ -104,6 +123,7 @@
var/second = time % 60
var/minute = (time - second) / 60
var/dat = text("<TT><B>Proximity Sensor</B>\n[] []:[]\n<A href='?src=\ref[];tp=-30'>-</A> <A href='?src=\ref[];tp=-1'>-</A> <A href='?src=\ref[];tp=1'>+</A> <A href='?src=\ref[];tp=30'>+</A>\n</TT>", (timing ? text("<A href='?src=\ref[];time=0'>Arming</A>", src) : text("<A href='?src=\ref[];time=1'>Not Arming</A>", src)), minute, second, src, src, src, src)
dat += text("<BR>Range: <A href='?src=\ref[];range=-1'>-</A> [] <A href='?src=\ref[];range=1'>+</A>", src, range, src)
dat += "<BR><A href='?src=\ref[src];scanning=1'>[scanning?"Armed":"Unarmed"]</A> (Movement sensor active when armed!)"
dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
@@ -131,6 +151,11 @@
time += tp
time = min(max(round(time), 0), 600)
if(href_list["range"])
var/r = text2num(href_list["range"])
range += r
range = min(max(range, 1), 5)
if(href_list["close"])
usr << browse(null, "window=prox")
return

View File

@@ -31,7 +31,7 @@
spawn(10)
process_cooldown()
signal()
// signal()
return 1
update_icon()
@@ -126,7 +126,7 @@
else if(holder)
holder.process_activation(src, 1, 0)
else
..()
..(radio)
return 1
@@ -136,8 +136,9 @@
if(!(src.wires & WIRE_RADIO_RECEIVE)) return 0
pulse(1)
for(var/mob/O in hearers(1, src.loc))
O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2)
if(!holder)
for(var/mob/O in hearers(1, src.loc))
O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2)
return

View File

@@ -7,6 +7,8 @@
w_amt = 10
origin_tech = "magnets=1"
wires = WIRE_PULSE
secured = 0
var/timing = 0
@@ -37,7 +39,8 @@
timer_end()
if((!secured)||(cooldown > 0)) return 0
pulse(0)
visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
if(!holder)
visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
cooldown = 2
spawn(10)
process_cooldown()