Files
PollardTheDragon 87c2a19ecd Adds Mafia Boss Syndicate Kit (#31701)
* Adds mafia boss syndicate kit

* Comment update

* Update code/modules/projectiles/guns/projectile/automatic.dm

Co-authored-by: Miles <116982774+Burzah@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

---------

Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Co-authored-by: Miles <116982774+Burzah@users.noreply.github.com>
2026-03-29 02:17:15 +00:00

191 lines
6.5 KiB
Plaintext

/obj/item/beacon
name = "tracking beacon"
desc = "A beacon used by a teleporter."
icon = 'icons/obj/radio.dmi'
icon_state = "beacon"
inhand_icon_state = "signaler"
origin_tech = "bluespace=1"
materials = list(MAT_METAL = 300, MAT_GLASS = 200)
flags = CONDUCT
slot_flags = ITEM_SLOT_BELT
throw_range = 9
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_METAL = 200, MAT_GLASS = 100)
var/syndicate = FALSE
var/area_bypass = FALSE
var/cc_beacon = FALSE //set if allowed to teleport to even if on zlevel2
var/wormhole_weaver = FALSE // special beacons for wormwhole weaver
var/broadcast_to_teleport_hubs = TRUE
/obj/item/beacon/Initialize(mapload)
. = ..()
GLOB.beacons |= src
/obj/item/beacon/Destroy()
GLOB.beacons -= src
return ..()
/obj/item/beacon/emag_act(user)
if(!emagged)
emagged = TRUE
syndicate = TRUE
to_chat(user, SPAN_NOTICE("The This beacon now only be locked on to by emagged teleporters!"))
return TRUE
/// Probably a better way of doing this, I'm lazy.
/obj/item/beacon/bacon
/obj/item/beacon/bacon/proc/digest_delay()
QDEL_IN(src, 60 SECONDS)
/obj/item/beacon/emagged
syndicate = TRUE
emagged = TRUE
// Spawns a spider fuel rod for ninja objectives
/obj/item/beacon/ninja_rod_spawner
name = "spider clan beacon"
desc = "A label on it reads: <i>Activate to have a spider clan brand fuel rod teleported to your location</i>."
origin_tech = "bluespace=6;syndicate=3"
/obj/item/beacon/ninja_rod_spawner/attack_self__legacy__attackchain(mob/user)
if(!user)
return
var/obj/item/nuclear_rod/fuel/uranium_238/spiders/new_rod = new(user.loc)
qdel(src)
user.put_in_hands(new_rod)
// SINGULO BEACON SPAWNER
/obj/item/beacon/syndicate
name = "suspicious beacon"
desc = "A label on it reads: <i>Activate to have a singularity beacon teleported to your location</i>."
origin_tech = "bluespace=6;syndicate=5"
syndicate = TRUE
var/obj/machinery/computer/syndicate_depot/teleporter/mycomputer
/obj/item/beacon/syndicate/Destroy()
if(mycomputer)
mycomputer.mybeacon = null
return ..()
/obj/item/beacon/syndicate/attack_self__legacy__attackchain(mob/user)
if(user)
to_chat(user, SPAN_NOTICE("Locked In"))
new /obj/machinery/power/singularity_beacon/syndicate( user.loc )
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, 1)
user.drop_item()
qdel(src)
/obj/item/beacon/syndicate/bundle
desc = "A label on it reads: <i>Activate to select a bundle</i>."
var/list/static/bundles = list(
"Spy" = /obj/item/storage/box/syndie_kit/bundle/spy,
"Agent 13" = /obj/item/storage/box/syndie_kit/bundle/agent13,
"Thief" = /obj/item/storage/box/syndie_kit/bundle/thief,
"Agent 007" = /obj/item/storage/box/syndie_kit/bundle/bond,
"Infiltrator" = /obj/item/storage/box/syndie_kit/bundle/infiltrator,
"Bank Robber" = /obj/item/storage/box/syndie_kit/bundle/payday,
"Implanter" = /obj/item/storage/box/syndie_kit/bundle/implant,
"Hacker" = /obj/item/storage/box/syndie_kit/bundle/hacker,
"Dark Lord" = /obj/item/storage/box/syndie_kit/bundle/darklord,
"Sniper" = /obj/item/storage/box/syndie_kit/bundle/professional,
"Mob Boss" = /obj/item/storage/box/syndie_kit/bundle/gangster,
"Grenadier" = /obj/item/storage/box/syndie_kit/bundle/grenadier,
"Augmented" = /obj/item/storage/box/syndie_kit/bundle/metroid,
"Ocelot" = /obj/item/storage/box/syndie_kit/bundle/ocelot,
"Nuclear Wannabe" = /obj/item/storage/box/syndie_kit/bundle/operative,
"Big Spender" = /obj/item/storage/box/syndie_kit/bundle/rich,
"Maintenance Collector" = /obj/item/storage/box/syndie_kit/bundle/maint_loot)
var/list/selected = list()
var/list/unselected = list()
/obj/item/beacon/syndicate/bundle/attack_self__legacy__attackchain(mob/user)
if(!user)
return
if(!length(selected))
unselected = bundles.Copy()
for(var/i in 1 to 3)
selected += pick_n_take(unselected)
selected += "Random"
var/bundle_name = tgui_input_list(user, "Available Bundles", "Bundle Selection", selected)
if(!bundle_name || QDELETED(src))
return
if(bundle_name == "Random")
bundle_name = pick(unselected)
var/bundle = bundles[bundle_name]
bundle = new bundle(user.loc)
to_chat(user, SPAN_NOTICE("Welcome to [station_name()], [bundle_name]!"))
user.drop_item()
SSblackbox.record_feedback("tally", "syndicate_bundle_pick", 1, "[bundle]")
qdel(src)
user.put_in_hands(bundle)
/obj/item/beacon/syndicate/power_sink
desc = "A label on it reads: <i>Warning: Activating this device will send a power sink to your location</i>."
/obj/item/beacon/syndicate/power_sink/attack_self__legacy__attackchain(mob/user)
if(user)
to_chat(user, SPAN_NOTICE("Locked In"))
new /obj/item/powersink(user.loc)
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, 1)
user.drop_item()
qdel(src)
/obj/item/beacon/syndicate/bomb
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/beacon/syndicate/bomb/attack_self__legacy__attackchain(mob/user)
if(user)
to_chat(user, SPAN_NOTICE("Locked In"))
new bomb(user.loc)
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, 1)
user.drop_item()
qdel(src)
/obj/item/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/beacon/syndicate/bomb/grey_autocloner
desc = "A label on it reads: <i>Warning: Activating this device will send an expensive cloner to your location</i>."
origin_tech = "bluespace=2;syndicate=2"
bomb = /obj/machinery/grey_autocloner
/obj/item/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 = TRUE //Let's not move these around. Some folk might get the idea to use these for assassinations
var/list/enginetype = list()
/obj/item/beacon/engine/Initialize(mapload)
LAZYADD(GLOB.engine_beacon_list, src)
return ..()
/obj/item/beacon/engine/Destroy()
GLOB.engine_beacon_list -= src
return ..()
/obj/item/beacon/engine/tesling
name = "Engine Beacon for Tesla and Singularity"
enginetype = list(ENGTYPE_TESLA, ENGTYPE_SING)
/obj/item/beacon/engine/tesla
name = "Engine Beacon for Tesla"
enginetype = list(ENGTYPE_TESLA)
/obj/item/beacon/engine/sing
name = "Engine Beacon for Singularity"
enginetype = list(ENGTYPE_SING)
/obj/item/beacon/wormhole_weaver
name = "prototype beacon"
desc = "A beacon used by a prototype wormhole device."
wormhole_weaver = TRUE
icon_state = "beacon_wormhole_weaver"