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>
This commit is contained in:
Qwertytoforty
2020-10-28 11:43:12 -04:00
committed by GitHub
co-authored by SteelSlayer
parent 8a772acc0b
commit 997f527f3a
4 changed files with 52 additions and 2 deletions
+11 -1
View File
@@ -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."
+35
View File
@@ -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("<span class='warning'>The bomb's core burns out, and the bomb disintegrates into ash.</span>")
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."
@@ -76,15 +76,20 @@
name = "suspicious beacon"
desc = "A label on it reads: <i>Warning: Activating this device will send a high-ordinance explosive to your location</i>."
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, "<span class='notice'>Locked In</span>")
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: <i>Warning: Activating this device will send a high-ordinance EMP explosive to your location</i>."
bomb = /obj/machinery/syndicatebomb/emp
/obj/item/radio/beacon/engine
desc = "A label on it reads: <i>Warning: This device is used for transportation of high-density objects used for high-yield power generation. Stay away!</i>."
anchored = 1 //Let's not move these around. Some folk might get the idea to use these for assassinations
Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 31 KiB