diff --git a/code/game/objects/items/weapons/grenades/spawnergrenade.dm b/code/game/objects/items/weapons/grenades/spawnergrenade.dm index a0967c8b97..4b5e6bbc6d 100644 --- a/code/game/objects/items/weapons/grenades/spawnergrenade.dm +++ b/code/game/objects/items/weapons/grenades/spawnergrenade.dm @@ -8,6 +8,7 @@ var/banglet = 0 var/spawner_type = null // must be an object path var/deliveryamt = 1 // amount of type to deliver + var/flash = TRUE //Will the grenade flash on detonation? // Detonate now just handles the two loops that query for people in lockers and people who can see it. /obj/item/grenade/spawnergrenade/detonate() @@ -16,9 +17,10 @@ // Make a quick flash var/turf/T = get_turf(src) playsound(src, 'sound/effects/phasein.ogg', 100, 1) - for(var/mob/living/carbon/human/M in viewers(T, null)) - if(M:eyecheck() <= 0) - M.flash_eyes() + if(flash) + for(var/mob/living/carbon/human/M in viewers(T, null)) + if(M.eyecheck() <= 0) + M.flash_eyes() // Spawn some hostile syndicate critters for(var/i=1, i<=deliveryamt, i++) @@ -77,3 +79,97 @@ throw_range = 4 w_class = ITEMSIZE_LARGE deliveryamt = 6 + +/obj/item/grenade/spawnergrenade/manhacks/station/locked + desc = "It is set to detonate in 5 seconds. It will deploy three weaponized survey drones. This one has a safety interlock that prevents release if used while in proximity to the facility." + req_access = list(ACCESS_ARMORY) //for toggling safety + var/locked = 1 + +/obj/item/grenade/spawnergrenade/manhacks/station/locked/detonate() + if(locked) + var/turf/T = get_turf(src) + if(T.z in using_map.station_levels) + icon_state = initial(icon_state) + active = 0 + return 0 + return ..() + +/obj/item/grenade/spawnergrenade/manhacks/station/locked/attackby(obj/item/I, mob/user) + var/obj/item/card/id/id = I.GetID() + if(istype(id)) + if(check_access(id)) + locked = !locked + to_chat(user, span_warning("You [locked ? "enable" : "disable"] the safety lock on \the [src].")) + else + to_chat(user, span_warning("Access denied.")) + user.visible_message(span_notice("[user] swipes \the [I] against \the [src].")) + else + return ..() + +/obj/item/grenade/spawnergrenade/manhacks/station/locked/emag_act(var/remaining_charges,var/mob/user) + ..() + locked = !locked + to_chat(user, span_warning("You [locked ? "enable" : "disable"] the safety lock on \the [src]!")) + +// Generic creature spawner grenades for loadout. +/obj/item/grenade/spawnergrenade/loadout + name = "Creature Container (Cat)" + desc = "It is set to detonate in 5 seconds. It will release a cat won from the grenade!" + icon = 'icons/obj/casino.dmi' + icon_state = "generic_delivery" + flash = FALSE + +/obj/item/grenade/spawnergrenade/loadout/penguin + desc = "It is set to detonate in 5 seconds. It will release a penguin from the grenade!" + name = "Creature Container (Penguin)" + spawner_type = /mob/living/simple_mob/animal/passive/penguin + +/obj/item/grenade/spawnergrenade/loadout/chicken + desc = "It is set to detonate in 5 seconds. It will release a chicken from the grenade!" + name = "Creature Container (Chicken)" + spawner_type = /mob/living/simple_mob/animal/passive/chicken + +/obj/item/grenade/spawnergrenade/loadout/cow + desc = "It is set to detonate in 5 seconds. It will release a cow from the grenade!" + name = "Creature Container (Cow)" + spawner_type = /mob/living/simple_mob/animal/passive/cow + +/obj/item/grenade/spawnergrenade/loadout/corgi + desc = "It is set to detonate in 5 seconds. It will release a corgi from the grenade!" + name = "Creature Container (Corgi)" + spawner_type = /mob/living/simple_mob/animal/passive/dog/corgi + +/obj/item/grenade/spawnergrenade/loadout/fox + desc = "It is set to detonate in 5 seconds. It will release a fox from the grenade!" + name = "Creature Container (Fox)" + spawner_type = /mob/living/simple_mob/animal/passive/fox + +/obj/item/grenade/spawnergrenade/loadout/fennec + desc = "It is set to detonate in 5 seconds. It will release a fennec from the grenade!" + name = "Creature Container (Fennec)" + spawner_type = /mob/living/simple_mob/vore/fennec + +/obj/item/grenade/spawnergrenade/loadout/snake + desc = "It is set to detonate in 5 seconds. It will release a snake from the grenade!" + name = "Creature Container (Snake)" + spawner_type = /mob/living/simple_mob/animal/passive/snake + +/obj/item/grenade/spawnergrenade/loadout/redpanda + desc = "It is set to detonate in 5 seconds. It will release a red panda from the grenade!" + name = "Creature Container (Red panda)" + spawner_type = /mob/living/simple_mob/vore/redpanda + +/obj/item/grenade/spawnergrenade/loadout/otie + desc = "It is set to detonate in 5 seconds. It will release a otie from the grenade!" + name = "Creature Container (Otie)" + spawner_type = /mob/living/simple_mob/vore/otie/friendly + +/obj/item/grenade/spawnergrenade/loadout/goldcrest + desc = "It is set to detonate in 5 seconds. It will release a bird from the grenade!" + name = "Creature Container (Bird)" + spawner_type = /mob/living/simple_mob/animal/passive/bird/goldcrest + +/obj/item/grenade/spawnergrenade/loadout/teppi + desc = "It is set to detonate in 5 seconds. It will release a teppi from the grenade!" + name = "Creature Container (Teppi)" + spawner_type = /mob/living/simple_mob/vore/alienanimals/teppi diff --git a/code/game/objects/items/weapons/grenades/spawnergrenade_vr.dm b/code/game/objects/items/weapons/grenades/spawnergrenade_vr.dm deleted file mode 100644 index e1069a111c..0000000000 --- a/code/game/objects/items/weapons/grenades/spawnergrenade_vr.dm +++ /dev/null @@ -1,30 +0,0 @@ -/obj/item/grenade/spawnergrenade/manhacks/station/locked - desc = "It is set to detonate in 5 seconds. It will deploy three weaponized survey drones. This one has a safety interlock that prevents release if used while in proximity to the facility." - req_access = list(ACCESS_ARMORY) //for toggling safety - var/locked = 1 - -/obj/item/grenade/spawnergrenade/manhacks/station/locked/detonate() - if(locked) - var/turf/T = get_turf(src) - if(T.z in using_map.station_levels) - icon_state = initial(icon_state) - active = 0 - return 0 - return ..() - -/obj/item/grenade/spawnergrenade/manhacks/station/locked/attackby(obj/item/I, mob/user) - var/obj/item/card/id/id = I.GetID() - if(istype(id)) - if(check_access(id)) - locked = !locked - to_chat(user, span_warning("You [locked ? "enable" : "disable"] the safety lock on \the [src].")) - else - to_chat(user, span_warning("Access denied.")) - user.visible_message(span_notice("[user] swipes \the [I] against \the [src].")) - else - return ..() - -/obj/item/grenade/spawnergrenade/manhacks/station/locked/emag_act(var/remaining_charges,var/mob/user) - ..() - locked = !locked - to_chat(user, span_warning("You [locked ? "enable" : "disable"] the safety lock on \the [src]!")) diff --git a/code/modules/casino/spawnergrenade_casino.dm b/code/modules/casino/spawnergrenade_casino.dm index 5ba2bbc8ee..940fafccf8 100644 --- a/code/modules/casino/spawnergrenade_casino.dm +++ b/code/modules/casino/spawnergrenade_casino.dm @@ -7,21 +7,6 @@ origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 2) spawner_type = /mob/living/simple_mob/animal/passive/cat -// Detonate now just handles the two loops that query for people in lockers and people who can see it. -/obj/item/grenade/spawnergrenade/casino/detonate() - - if(spawner_type && deliveryamt) - var/turf/T = get_turf(src) - playsound(T, 'sound/effects/phasein.ogg', 100, 1) - - for(var/i=1, i<=deliveryamt, i++) - var/atom/movable/x = new spawner_type(T) - if(prob(50)) - for(var/j = 1, j <= rand(1, 3), j++) - step(x, pick(NORTH,SOUTH,EAST,WEST)) - qdel(src) - return - // // Creatures // diff --git a/icons/obj/casino.dmi b/icons/obj/casino.dmi index 4a0731313f..37b7b420d8 100644 Binary files a/icons/obj/casino.dmi and b/icons/obj/casino.dmi differ diff --git a/modular_chomp/code/modules/casino/spawnergrenade.dm b/modular_chomp/code/modules/casino/spawnergrenade.dm index 67c73d95ec..40d3c5176d 100644 --- a/modular_chomp/code/modules/casino/spawnergrenade.dm +++ b/modular_chomp/code/modules/casino/spawnergrenade.dm @@ -1,29 +1,7 @@ -/obj/item/grenade/spawnergrenade/casino - +/obj/item/grenade/spawnergrenade/casino/goose desc = "It is set to detonate in 5 seconds. It will release a goose that has been won from the golden goose casino!" name = "Casino Creature Container (Goose)" - icon = 'icons/obj/grenade_ch.dmi' - icon_state = "casino" - item_state = "casino" - origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 2) spawner_type = /mob/living/simple_mob/animal/space/goose/domesticated - - -// Detonate now just handles the two loops that query for people in lockers and people who can see it. -/obj/item/grenade/spawnergrenade/casino/detonate() - - if(spawner_type && deliveryamt) - var/turf/T = get_turf(src) - playsound(T, 'sound/effects/phasein.ogg', 100, 1) - - for(var/i=1, i<=deliveryamt, i++) - var/atom/movable/x = new spawner_type(T) - if(prob(50)) - for(var/j = 1, j <= rand(1, 3), j++) - step(x, pick(NORTH,SOUTH,EAST,WEST)) - qdel(src) - return - /obj/item/grenade/spawnergrenade/casino/goat desc = "It is set to detonate in 5 seconds. It will release a goat that has been won from the golden goose casino!" name = "Casino Creature Container (Goat)" diff --git a/vorestation.dme b/vorestation.dme index 2c2534fbff..6dd62de474 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1899,7 +1899,6 @@ #include "code\game\objects\items\weapons\grenades\projectile.dm" #include "code\game\objects\items\weapons\grenades\smokebomb.dm" #include "code\game\objects\items\weapons\grenades\spawnergrenade.dm" -#include "code\game\objects\items\weapons\grenades\spawnergrenade_vr.dm" #include "code\game\objects\items\weapons\grenades\supermatter.dm" #include "code\game\objects\items\weapons\id cards\cards.dm" #include "code\game\objects\items\weapons\id cards\cards_vr.dm"