From 997f527f3adddbc9693281d630d4f3e12a8b76d9 Mon Sep 17 00:00:00 2001 From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Date: Wed, 28 Oct 2020 11:43:12 -0400 Subject: [PATCH] Adds the emp bomb, and a beacon to summon it. (#14737) * Adds the emp bomb * Allows traitors to buy it, corrects mistake in syndicate uplink Also prevents explosions from setting it off * Update code/game/machinery/syndicatebomb.dm Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> * Update code/game/objects/items/devices/radio/beacon.dm Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> * steels suggestion * Dave's request Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> --- code/datums/uplink_item.dm | 12 +++++- code/game/machinery/syndicatebomb.dm | 35 ++++++++++++++++++ .../objects/items/devices/radio/beacon.dm | 7 +++- icons/obj/assemblies.dmi | Bin 29711 -> 31676 bytes 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 9b90e06acce..f4861e0dfdc 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -997,7 +997,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/explosives/syndicate_bomb name = "Syndicate Bomb" - desc = "The Syndicate Bomb has an adjustable timer with a minimum setting of 60 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \ + desc = "The Syndicate Bomb has an adjustable timer with a minimum setting of 90 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \ You can wrench the bomb down to prevent removal. The crew may attempt to defuse the bomb." reference = "SB" item = /obj/item/radio/beacon/syndicate/bomb @@ -1005,6 +1005,16 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 0 cant_discount = TRUE +/datum/uplink_item/explosives/emp_bomb + name = "EMP bomb" + desc = "The EMP has an adjustable timer with a minimum setting of 90 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \ + You can wrench the bomb down to prevent removal. The crew may attempt to defuse the bomb." + reference = "SBEMP" + item = /obj/item/radio/beacon/syndicate/bomb/emp + cost = 10 + surplus = 0 + cant_discount = TRUE + /datum/uplink_item/explosives/syndicate_minibomb name = "Syndicate Minibomb" desc = "The minibomb is a grenade with a five-second fuse." diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 37dd2c6d439..e6f9f617cff 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -273,6 +273,12 @@ desc = "A salvaged syndicate device gutted of its explosives to be used as a training aid for aspiring bomb defusers." payload = /obj/item/bombcore/training +/obj/machinery/syndicatebomb/emp + name = "emp bomb" + icon_state = "emp-bomb" + desc = "A large bomb, seemingly made to make a large electromagnetic pulse." + payload = /obj/item/bombcore/emp + /obj/machinery/syndicatebomb/badmin name = "generic summoning badmin bomb" desc = "Oh god what is in this thing?" @@ -449,6 +455,35 @@ range_light = 4 range_flame = 2 +/obj/item/bombcore/emp + name = "EMP bomb core" + var/light_emp = 36 + var/heavy_emp = 18 + var/pulse_number = 1 //Since one EMP wont destroy anything other then consoles and IPCS, here is an option to have multiple pulses when dentonating. DO NOT USE THIS WITH REALLY LARGE AREAS + var/adminlogged = FALSE //If it exploded once, don't do it again. + +/obj/item/bombcore/emp/ex_act(severity) //It's an EMP bomb, not a chemical explosive + return + +/obj/item/bombcore/emp/burn() + return + +/obj/item/bombcore/emp/detonate() + if(adminlog && !adminlogged) + message_admins(adminlog) + log_game(adminlog) + adminlogged = TRUE + empulse(src, heavy_emp, light_emp, 1) + if(pulse_number <= 1) + src.visible_message("The bomb's core burns out, and the bomb disintegrates into ash.") + new /obj/effect/decal/cleanable/ash(get_turf(src)) + if(loc && istype(loc, /obj/machinery/syndicatebomb)) + qdel(loc) + qdel(src) + else + pulse_number -= 1 + addtimer(CALLBACK(src, .proc/detonate), 20) // every 2 seconds go off again till pulses run out + /obj/item/bombcore/chemical name = "chemical payload" desc = "An explosive payload designed to spread chemicals, dangerous or otherwise, across a large area. It is able to hold up to four chemical containers, and must be loaded before use." diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index aa123930323..487a582a3ab 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -76,15 +76,20 @@ name = "suspicious beacon" desc = "A label on it reads: Warning: Activating this device will send a high-ordinance explosive to your location." origin_tech = "bluespace=5;syndicate=5" + var/bomb = /obj/machinery/syndicatebomb /obj/item/radio/beacon/syndicate/bomb/attack_self(mob/user) if(user) to_chat(user, "Locked In") - new /obj/machinery/syndicatebomb( user.loc ) + new bomb(user.loc) playsound(src, 'sound/effects/pop.ogg', 100, 1, 1) user.drop_item() qdel(src) +/obj/item/radio/beacon/syndicate/bomb/emp + desc = "A label on it reads: Warning: Activating this device will send a high-ordinance EMP explosive to your location." + bomb = /obj/machinery/syndicatebomb/emp + /obj/item/radio/beacon/engine desc = "A label on it reads: Warning: This device is used for transportation of high-density objects used for high-yield power generation. Stay away!." anchored = 1 //Let's not move these around. Some folk might get the idea to use these for assassinations diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi index 62a1c3143886f47a94005c4ad6679d6f969707e1..b6e458c0e24af9339b31858f31630a237f2e02da 100644 GIT binary patch delta 12972 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 s{0fH(;7$8)jVQKsxTJ|CT13spNy8r+H