You can now hide grenades in plushies

This commit is contained in:
Ashe Higgs
2017-10-30 15:32:52 -04:00
committed by CitadelStationBot
parent 241d2d88e6
commit 0c4c4dc1f2
2 changed files with 68 additions and 2 deletions
+15 -1
View File
@@ -52,8 +52,9 @@
message_admins(message)
log_game("[key_name(user)] has primed \a [src] for detonation at [A.name] [COORD(T)].")
/obj/item/grenade/proc/preprime(mob/user, delayoverride, msg = TRUE)
/obj/item/grenade/proc/preprime(mob/user, delayoverride, msg = TRUE, volume = 60)
var/turf/T = get_turf(src)
<<<<<<< HEAD
log_grenade(user, T)
if(iscarbon(user))
var/mob/living/carbon/C = user
@@ -64,6 +65,19 @@
active = TRUE
icon_state = initial(icon_state) + "_active"
add_fingerprint(user)
=======
log_grenade(user, T) //Inbuilt admin procs already handle null users
if(user)
add_fingerprint(user)
if(iscarbon(user))
var/mob/living/carbon/C = user
C.throw_mode_on()
if(msg)
to_chat(user, "<span class='warning'>You prime \the [src]! [det_time/10] seconds!</span>")
playsound(src, 'sound/weapons/armbomb.ogg', volume, 1)
active = TRUE
icon_state = initial(icon_state) + "_active"
>>>>>>> 695fa5f... You can now hide grenades in plushies (#31986)
addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride)
/obj/item/grenade/proc/prime()
+53 -1
View File
@@ -7,14 +7,66 @@
w_class = WEIGHT_CLASS_SMALL
resistance_flags = FLAMMABLE
var/list/squeak_override //Weighted list; If you want your plush to have different squeak sounds use this
var/stuffed = TRUE //If the plushie has stuffing in it
var/obj/item/grenade/grenade //You can remove the stuffing from a plushie and add a grenade to it for *nefarious uses*
/obj/item/toy/plush/Initialize()
. = ..()
AddComponent(/datum/component/squeak, squeak_override)
/obj/item/toy/plush/Destroy()
QDEL_NULL(grenade)
return ..()
/obj/item/toy/plush/handle_atom_del(atom/A)
if(A == grenade)
grenade = null
..()
/obj/item/toy/plush/attack_self(mob/user)
. = ..()
to_chat(user, "<span class='notice'>You pet [src]. D'awww.</span>")
if(stuffed || grenade)
to_chat(user, "<span class='notice'>You pet [src]. D'awww.</span>")
if(grenade && !grenade.active)
if(istype(grenade, /obj/item/grenade/chem_grenade))
var/obj/item/grenade/chem_grenade/G = grenade
if(G.nadeassembly) //We're activated through different methods
return
log_game("[key_name(user)] activated a hidden grenade in [src].")
grenade.preprime(user, msg = FALSE, volume = 10)
else
to_chat(user, "<span class='notice'>You try to pet [src], but it has no stuffing. Aww...</span>")
/obj/item/toy/plush/attackby(obj/item/I, mob/living/user, params)
if(I.is_sharp())
if(!grenade)
if(!stuffed)
to_chat(user, "<span class='warning'>You already murdered it!</span>")
return
user.visible_message("<span class='notice'>[user] tears out the stuffing from [src]!</span>", "<span class='notice'>You rip a bunch of the stuffing from [src]. Murderer.</span>")
playsound(I, I.usesound, 50, TRUE)
stuffed = FALSE
else
to_chat(user, "<span class='notice'>You remove the grenade from [src].</span>")
user.put_in_hands(grenade)
grenade = null
return
if(istype(I, /obj/item/grenade))
if(stuffed)
to_chat(user, "<span class='warning'>You need to remove some stuffing first!</span>")
return
if(grenade)
to_chat(user, "<span class='warning'>[src] already has a grenade!</span>")
return
if(!user.transferItemToLoc(I, src))
return
user.visible_message("<span class='warning'>[user] slides [grenade] into [src].</span>", \
"<span class='danger'>You slide [I] into [src].</span>")
grenade = I
var/turf/T = get_turf(user)
log_game("[key_name(user)] added a grenade ([I.name]) to [src] at [COORD(T)].")
return
return ..()
/obj/item/toy/plush/carpplushie
name = "space carp plushie"