mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-29 18:56:49 +01:00
refactors grenades (#7138)
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# Assembly System
|
||||
|
||||
A simple assembly system made out of connected devices.
|
||||
@@ -118,7 +118,10 @@
|
||||
if(!a_left || !a_right)
|
||||
to_chat(user, "<span class='warning'> BUG:Assembly part missing, please report this!</span>")
|
||||
return
|
||||
if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code
|
||||
// WARNING: DO NOT REMOVE IGNITER TYPECHECKS
|
||||
// If you do, grenades will INSTANTLY BLOW UP ON THE USER WHEN USED
|
||||
// IN HAND!!
|
||||
if(istype(a_left,a_right.type) && !istype(a_left, /obj/item/assembly/igniter))//If they are the same type it causes issues due to window code
|
||||
switch(alert("Which side would you like to use?",,"Left","Right"))
|
||||
if("Left") a_left.attack_self(user)
|
||||
if("Right") a_right.attack_self(user)
|
||||
@@ -160,6 +163,7 @@
|
||||
a_right.hear_talk(M,msg,verb,speaking)
|
||||
if(a_left)
|
||||
a_left.hear_talk(M,msg,verb,speaking)
|
||||
|
||||
/obj/item/assembly_holder/timer_igniter
|
||||
name = "timer-igniter assembly"
|
||||
|
||||
@@ -180,39 +184,3 @@
|
||||
secured = 1
|
||||
update_icon()
|
||||
name = initial(name) + " ([tmr.time] secs)"
|
||||
|
||||
add_obj_verb(src, /obj/item/assembly_holder/timer_igniter/verb/configure)
|
||||
|
||||
/obj/item/assembly_holder/timer_igniter/detached()
|
||||
remove_obj_verb(src, /obj/item/assembly_holder/timer_igniter/verb/configure)
|
||||
..()
|
||||
|
||||
/obj/item/assembly_holder/timer_igniter/verb/configure()
|
||||
set name = "Set Timer"
|
||||
set category = VERB_CATEGORY_OBJECT
|
||||
set src in usr
|
||||
|
||||
if ( !(usr.stat || usr.restrained()) )
|
||||
var/obj/item/assembly_holder/holder
|
||||
if(istype(src,/obj/item/grenade/chem_grenade))
|
||||
var/obj/item/grenade/chem_grenade/gren = src
|
||||
holder=gren.detonator
|
||||
var/obj/item/assembly/timer/tmr = holder.a_left
|
||||
if(!istype(tmr,/obj/item/assembly/timer))
|
||||
tmr = holder.a_right
|
||||
if(!istype(tmr,/obj/item/assembly/timer))
|
||||
to_chat(usr, "<span class='notice'>This detonator has no timer.</span>")
|
||||
return
|
||||
|
||||
if(tmr.timing)
|
||||
to_chat(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)"
|
||||
to_chat(usr, "<span class='notice'>Timer set to [tmr.time] seconds.</span>")
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>Timer can't be [ntime<=0?"negative":"more than 1000 seconds"].</span>")
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>You cannot do this while [usr.stat?"unconscious/dead":"restrained"].</span>")
|
||||
@@ -12,8 +12,8 @@
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
if(holder && istype(holder.loc,/obj/item/grenade/chem_grenade))
|
||||
var/obj/item/grenade/chem_grenade/grenade = holder.loc
|
||||
if(holder && istype(holder.loc,/obj/item/grenade/simple/chemical))
|
||||
var/obj/item/grenade/simple/chemical/grenade = holder.loc
|
||||
grenade.detonate()
|
||||
else
|
||||
var/turf/location = get_turf(loc)
|
||||
@@ -28,16 +28,12 @@
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/item/assembly/igniter/attack_self(mob/user, datum/event_args/actor/actor)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
activate()
|
||||
add_fingerprint(user)
|
||||
return TRUE
|
||||
|
||||
/obj/item/assembly/igniter/is_hot()
|
||||
return TRUE
|
||||
|
||||
@@ -93,9 +93,6 @@
|
||||
LAZYADD(attached_overlays, "prox_scanning")
|
||||
if(holder)
|
||||
holder.update_icon()
|
||||
if(holder && istype(holder.loc,/obj/item/grenade/chem_grenade))
|
||||
var/obj/item/grenade/chem_grenade/grenade = holder.loc
|
||||
grenade.primed(scanning)
|
||||
|
||||
/obj/item/assembly/prox_sensor/Move()
|
||||
..()
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "voice analyzer"
|
||||
desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated."
|
||||
icon_state = "voice"
|
||||
atom_flags = ATOM_HEAR
|
||||
origin_tech = list(TECH_MAGNET = 1)
|
||||
materials_base = list(MAT_STEEL = 500, MAT_GLASS = 50)
|
||||
var/listening = 0
|
||||
@@ -26,11 +27,6 @@
|
||||
|
||||
|
||||
/obj/item/assembly/voice/attack_self(mob/user, datum/event_args/actor/actor)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
if(!user)
|
||||
return FALSE
|
||||
activate()
|
||||
return TRUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user