mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 11:13:16 +00:00
@@ -22,6 +22,7 @@
|
|||||||
if(!stage || stage==1)
|
if(!stage || stage==1)
|
||||||
if(detonator)
|
if(detonator)
|
||||||
// detonator.loc=src.loc
|
// detonator.loc=src.loc
|
||||||
|
detonator.detached()
|
||||||
usr.put_in_hands(detonator)
|
usr.put_in_hands(detonator)
|
||||||
detonator=null
|
detonator=null
|
||||||
stage=0
|
stage=0
|
||||||
@@ -69,17 +70,14 @@
|
|||||||
path = 1
|
path = 1
|
||||||
if(beakers.len)
|
if(beakers.len)
|
||||||
user << "\blue You lock the assembly."
|
user << "\blue You lock the assembly."
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, -3)
|
|
||||||
name = "grenade"
|
name = "grenade"
|
||||||
icon_state = initial(icon_state) +"_locked"
|
|
||||||
stage = 2
|
|
||||||
else
|
else
|
||||||
// user << "\red You need to add at least one beaker before locking the assembly."
|
// user << "\red You need to add at least one beaker before locking the assembly."
|
||||||
user << "\blue You lock the empty assembly."
|
user << "\blue You lock the empty assembly."
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, -3)
|
|
||||||
name = "fake grenade"
|
name = "fake grenade"
|
||||||
icon_state = initial(icon_state) +"_locked"
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, -3)
|
||||||
stage = 2
|
icon_state = initial(icon_state) +"_locked"
|
||||||
|
stage = 2
|
||||||
else if(stage == 2)
|
else if(stage == 2)
|
||||||
if(active && prob(95))
|
if(active && prob(95))
|
||||||
user << "\red You trigger the assembly!"
|
user << "\red You trigger the assembly!"
|
||||||
@@ -114,8 +112,9 @@
|
|||||||
if(detonator)
|
if(detonator)
|
||||||
usr << "With attached [detonator.name]"
|
usr << "With attached [detonator.name]"
|
||||||
|
|
||||||
activate()
|
activate(mob/user as mob)
|
||||||
if(active) return
|
if(active) return
|
||||||
|
|
||||||
if(detonator)
|
if(detonator)
|
||||||
if(!isigniter(detonator.a_left))
|
if(!isigniter(detonator.a_left))
|
||||||
detonator.a_left.activate()
|
detonator.a_left.activate()
|
||||||
@@ -126,6 +125,11 @@
|
|||||||
if(active)
|
if(active)
|
||||||
icon_state = initial(icon_state) + "_active"
|
icon_state = initial(icon_state) + "_active"
|
||||||
|
|
||||||
|
if(user)
|
||||||
|
log_attack("<font color='red'>[user.name] ([user.ckey]) primed \a [src]</font>")
|
||||||
|
log_admin("ATTACK: [user] ([user.ckey]) primed \a [src]")
|
||||||
|
message_admins("ATTACK: [user] ([user.ckey]) primed \a [src]")
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
proc/primed(var/primed = 1)
|
proc/primed(var/primed = 1)
|
||||||
@@ -195,9 +199,11 @@
|
|||||||
B2.reagents.add_reagent("foaming_agent", 10)
|
B2.reagents.add_reagent("foaming_agent", 10)
|
||||||
B2.reagents.add_reagent("pacid", 10)
|
B2.reagents.add_reagent("pacid", 10)
|
||||||
|
|
||||||
|
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
|
||||||
|
|
||||||
beakers += B1
|
beakers += B1
|
||||||
beakers += B2
|
beakers += B2
|
||||||
icon_state = "grenade"
|
icon_state = initial(icon_state) +"_locked"
|
||||||
|
|
||||||
/obj/item/weapon/grenade/chem_grenade/incendiary
|
/obj/item/weapon/grenade/chem_grenade/incendiary
|
||||||
name = "Incendiary Grenade"
|
name = "Incendiary Grenade"
|
||||||
@@ -214,9 +220,11 @@
|
|||||||
B2.reagents.add_reagent("plasma", 25)
|
B2.reagents.add_reagent("plasma", 25)
|
||||||
B2.reagents.add_reagent("sacid", 25)
|
B2.reagents.add_reagent("sacid", 25)
|
||||||
|
|
||||||
|
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
|
||||||
|
|
||||||
beakers += B1
|
beakers += B1
|
||||||
beakers += B2
|
beakers += B2
|
||||||
icon_state = "grenade"
|
icon_state = initial(icon_state) +"_locked"
|
||||||
|
|
||||||
/obj/item/weapon/grenade/chem_grenade/cleaner
|
/obj/item/weapon/grenade/chem_grenade/cleaner
|
||||||
name = "Cleaner Grenade"
|
name = "Cleaner Grenade"
|
||||||
@@ -233,6 +241,8 @@
|
|||||||
B2.reagents.add_reagent("water", 40)
|
B2.reagents.add_reagent("water", 40)
|
||||||
B2.reagents.add_reagent("cleaner", 10)
|
B2.reagents.add_reagent("cleaner", 10)
|
||||||
|
|
||||||
|
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
|
||||||
|
|
||||||
beakers += B1
|
beakers += B1
|
||||||
beakers += B2
|
beakers += B2
|
||||||
icon_state = "grenade"
|
icon_state = initial(icon_state) +"_locked"
|
||||||
|
|||||||
@@ -16,11 +16,7 @@
|
|||||||
if((CLUMSY in user.mutations) && prob(50))
|
if((CLUMSY in user.mutations) && prob(50))
|
||||||
user << "<span class='warning'>Huh? How does this thing work?</span>"
|
user << "<span class='warning'>Huh? How does this thing work?</span>"
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) clumsily primed \a [src]</font>")
|
activate(user)
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) clumsily primed \a [src]")
|
|
||||||
message_admins("ATTACK: [user] ([user.ckey]) clumsily primed \a [src]")
|
|
||||||
|
|
||||||
activate()
|
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
spawn(5)
|
spawn(5)
|
||||||
prime()
|
prime()
|
||||||
@@ -60,11 +56,7 @@
|
|||||||
if(clown_check(user))
|
if(clown_check(user))
|
||||||
user << "<span class='warning'>You prime \the [name]! [det_time/10] seconds!</span>"
|
user << "<span class='warning'>You prime \the [name]! [det_time/10] seconds!</span>"
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) primed \a [src].</font>")
|
activate(user)
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) primed \a [src].")
|
|
||||||
message_admins("ATTACK: [user] ([user.ckey]) primed \a [src].")
|
|
||||||
|
|
||||||
activate()
|
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
if(iscarbon(user))
|
if(iscarbon(user))
|
||||||
var/mob/living/carbon/C = user
|
var/mob/living/carbon/C = user
|
||||||
@@ -72,10 +64,15 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/grenade/proc/activate()
|
/obj/item/weapon/grenade/proc/activate(mob/user as mob)
|
||||||
if(active)
|
if(active)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if(user)
|
||||||
|
log_attack("<font color='red'>[user.name] ([user.ckey]) primed \a [src]</font>")
|
||||||
|
log_admin("ATTACK: [user] ([user.ckey]) primed \a [src]")
|
||||||
|
message_admins("ATTACK: [user] ([user.ckey]) primed \a [src]")
|
||||||
|
|
||||||
icon_state = initial(icon_state) + "_active"
|
icon_state = initial(icon_state) + "_active"
|
||||||
active = 1
|
active = 1
|
||||||
playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
proc/process_activation(var/obj/item/device/D)
|
proc/process_activation(var/obj/item/device/D)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
proc/detached()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
IsAssemblyHolder()
|
IsAssemblyHolder()
|
||||||
@@ -196,6 +198,58 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/device/assembly_holder/timer_igniter
|
||||||
|
name = "timer-igniter assembly"
|
||||||
|
|
||||||
|
New()
|
||||||
|
..()
|
||||||
|
|
||||||
|
var/obj/item/device/assembly/igniter/ign = new(src)
|
||||||
|
ign.secured = 1
|
||||||
|
ign.holder = src
|
||||||
|
var/obj/item/device/assembly/timer/tmr = new(src)
|
||||||
|
tmr.time=5
|
||||||
|
tmr.secured = 1
|
||||||
|
tmr.holder = src
|
||||||
|
processing_objects.Add(tmr)
|
||||||
|
a_left = tmr
|
||||||
|
a_right = ign
|
||||||
|
secured = 1
|
||||||
|
update_icon()
|
||||||
|
name = initial(name) + " ([tmr.time] secs)"
|
||||||
|
|
||||||
|
loc.verbs += /obj/item/device/assembly_holder/timer_igniter/verb/configure
|
||||||
|
|
||||||
|
detached()
|
||||||
|
loc.verbs -= /obj/item/device/assembly_holder/timer_igniter/verb/configure
|
||||||
|
..()
|
||||||
|
|
||||||
|
verb/configure()
|
||||||
|
set name = "Set Timer"
|
||||||
|
set category = "Object"
|
||||||
|
set src in usr
|
||||||
|
|
||||||
|
if ( !(usr.stat || usr.restrained()) )
|
||||||
|
var/obj/item/device/assembly_holder/holder
|
||||||
|
if(istype(src,/obj/item/weapon/grenade/chem_grenade))
|
||||||
|
var/obj/item/weapon/grenade/chem_grenade/gren = src
|
||||||
|
holder=gren.detonator
|
||||||
|
var/obj/item/device/assembly/timer/tmr = holder.a_left
|
||||||
|
if(!istype(tmr,/obj/item/device/assembly/timer))
|
||||||
|
tmr = holder.a_right
|
||||||
|
if(!istype(tmr,/obj/item/device/assembly/timer))
|
||||||
|
usr << "<span class='notice'>This detonator has no timer.</span>"
|
||||||
|
return
|
||||||
|
|
||||||
|
if(tmr.timing)
|
||||||
|
usr << "<span class='notice'>Clock is ticking already.</span>"
|
||||||
|
else
|
||||||
|
var/ntime = input("Enter desired time in seconds", "Time", "5") as num
|
||||||
|
if (ntime>0 && ntime<1000)
|
||||||
|
tmr.time = ntime
|
||||||
|
name = initial(name) + "([tmr.time] secs)"
|
||||||
|
usr << "<span class='notice'>Timer set to [tmr.time] seconds.</span>"
|
||||||
|
else
|
||||||
|
usr << "<span class='notice'>Timer can't be [ntime<=0?"negative":"more than 1000 seconds"].</span>"
|
||||||
|
else
|
||||||
|
usr << "<span class='notice'>You cannot do this while [usr.stat?"unconscious/dead":"restrained"].</span>"
|
||||||
|
|||||||
@@ -48,8 +48,7 @@
|
|||||||
|
|
||||||
|
|
||||||
sense()
|
sense()
|
||||||
var/obj/mainloc = loc
|
var/turf/mainloc = get_turf(src)
|
||||||
if(holder) mainloc=holder.loc
|
|
||||||
// if(scanning && cooldown <= 0)
|
// if(scanning && cooldown <= 0)
|
||||||
// mainloc.visible_message("\icon[src] *boop* *boop*", "*boop* *boop*")
|
// mainloc.visible_message("\icon[src] *boop* *boop*", "*boop* *boop*")
|
||||||
if((!holder && !secured)||(!scanning)||(cooldown > 0)) return 0
|
if((!holder && !secured)||(!scanning)||(cooldown > 0)) return 0
|
||||||
@@ -64,8 +63,7 @@
|
|||||||
|
|
||||||
process()
|
process()
|
||||||
if(scanning)
|
if(scanning)
|
||||||
var/obj/mainloc = loc
|
var/turf/mainloc = get_turf(src)
|
||||||
if(holder) mainloc=holder.loc
|
|
||||||
for(var/mob/living/A in range(range,mainloc))
|
for(var/mob/living/A in range(range,mainloc))
|
||||||
if (A.move_speed < 12)
|
if (A.move_speed < 12)
|
||||||
sense()
|
sense()
|
||||||
|
|||||||
@@ -20,7 +20,9 @@
|
|||||||
|
|
||||||
activate()
|
activate()
|
||||||
if(!..()) return 0//Cooldown check
|
if(!..()) return 0//Cooldown check
|
||||||
|
|
||||||
timing = !timing
|
timing = !timing
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@@ -37,7 +39,7 @@
|
|||||||
|
|
||||||
|
|
||||||
timer_end()
|
timer_end()
|
||||||
if((!secured)||(cooldown > 0)) return 0
|
if(!secured) return 0
|
||||||
pulse(0)
|
pulse(0)
|
||||||
if(!holder)
|
if(!holder)
|
||||||
visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
|
visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
|
||||||
|
|||||||
Reference in New Issue
Block a user