mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2026-08-25 13:46:46 +01:00
Merge branch 'SPLURT-Station:master' into spooktober-update
This commit is contained in:
@@ -52,7 +52,20 @@
|
||||
color = "#00FFFF"
|
||||
maxHealth = 75
|
||||
health = 75
|
||||
gold_core_spawnable = NO_SPAWN
|
||||
|
||||
/mob/living/simple_animal/hostile/carp/ranged/chaos/Shoot()
|
||||
projectiletype = pick(allowed_projectile_types)
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/hostile/carp/ranged/xenobiology // these are for the xenobio gold slime pool
|
||||
gold_core_spawnable = HOSTILE_SPAWN
|
||||
allowed_projectile_types = list(/obj/item/projectile/magic/change, /obj/item/projectile/magic/animate, /obj/item/projectile/magic/resurrection,
|
||||
/obj/item/projectile/magic/teleport, /obj/item/projectile/magic/door, /obj/item/projectile/magic/aoe/fireball, /obj/item/projectile/magic/spellblade,
|
||||
/obj/item/projectile/magic/arcane_barrage) //thanks Lett1
|
||||
|
||||
/mob/living/simple_animal/hostile/carp/ranged/chaos/xenobiology
|
||||
gold_core_spawnable = HOSTILE_SPAWN
|
||||
allowed_projectile_types = list(/obj/item/projectile/magic/change, /obj/item/projectile/magic/animate, /obj/item/projectile/magic/resurrection,
|
||||
/obj/item/projectile/magic/teleport, /obj/item/projectile/magic/door, /obj/item/projectile/magic/aoe/fireball, /obj/item/projectile/magic/spellblade,
|
||||
/obj/item/projectile/magic/arcane_barrage)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
GLOBAL_LIST_EMPTY(monkey_recyclers)
|
||||
|
||||
/obj/machinery/monkey_recycler
|
||||
name = "monkey recycler"
|
||||
desc = "A machine used for recycling dead monkeys into monkey cubes." // except it literally never does
|
||||
@@ -9,24 +11,34 @@
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 50
|
||||
circuit = /obj/item/circuitboard/machine/monkey_recycler
|
||||
var/grinded = 0
|
||||
var/required_grind = 5
|
||||
var/cube_production = 1
|
||||
var/stored_matter = 0
|
||||
var/cube_production = 0.2
|
||||
var/list/connected = list() //Keeps track of connected xenobio consoles, for deletion in /Destroy()
|
||||
|
||||
/obj/machinery/monkey_recycler/RefreshParts()
|
||||
var/req_grind = 5
|
||||
var/cubes_made = 1
|
||||
/obj/machinery/monkey_recycler/Initialize(mapload)
|
||||
. = ..()
|
||||
if (mapload)
|
||||
GLOB.monkey_recyclers += src
|
||||
|
||||
/obj/machinery/monkey_recycler/Destroy()
|
||||
GLOB.monkey_recyclers -= src
|
||||
for(var/thing in connected)
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/console = thing
|
||||
console.connected_recycler = null
|
||||
connected.Cut()
|
||||
return ..()
|
||||
|
||||
/obj/machinery/monkey_recycler/RefreshParts() //Ranges from 0.2 to 0.8 per monkey recycled
|
||||
cube_production = 0
|
||||
for(var/obj/item/stock_parts/manipulator/B in component_parts)
|
||||
req_grind -= B.rating
|
||||
cube_production += B.rating * 0.1
|
||||
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
|
||||
cubes_made = M.rating
|
||||
cube_production = cubes_made
|
||||
required_grind = req_grind
|
||||
cube_production += M.rating * 0.1
|
||||
|
||||
/obj/machinery/monkey_recycler/examine(mob/user)
|
||||
. = ..()
|
||||
if(in_range(user, src) || isobserver(user))
|
||||
. += "<span class='notice'>The status display reads: Producing <b>[cube_production]</b> cubes for every monkey inserted.</span>"
|
||||
to_chat(user, "<span class='notice'>The status display reads: Producing <b>[cube_production]</b> cubes for every monkey inserted.<span>")
|
||||
|
||||
/obj/machinery/monkey_recycler/attackby(obj/item/O, mob/user, params)
|
||||
if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", O))
|
||||
@@ -68,17 +80,23 @@
|
||||
var/offset = prob(50) ? -2 : 2
|
||||
animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking
|
||||
use_power(500)
|
||||
grinded++
|
||||
stored_matter += cube_production
|
||||
addtimer(VARSET_CALLBACK(src, pixel_x, initial(pixel_x)))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, user, "<span class='notice'>The machine now has [grinded] monkey\s worth of material stored.</span>"))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, user, "<span class='notice'>The machine now has [stored_matter] monkey\s worth of material stored.</span>"))
|
||||
|
||||
/obj/machinery/monkey_recycler/interact(mob/user)
|
||||
if(grinded >= required_grind)
|
||||
to_chat(user, "<span class='notice'>The machine hisses loudly as it condenses the grinded monkey meat. After a moment, it dispenses a brand new monkey cube.</span>")
|
||||
if(stored_matter >= 1)
|
||||
to_chat(user, "<span class='notice'>The machine hisses loudly as it condenses the ground monkey meat. After a moment, it dispenses a brand new monkey cube.</span>")
|
||||
playsound(src.loc, 'sound/machines/hiss.ogg', 50, 1)
|
||||
grinded -= required_grind
|
||||
for(var/i = 0, i < cube_production, i++)
|
||||
for(var/i in 1 to FLOOR(stored_matter, 1))
|
||||
new /obj/item/reagent_containers/food/snacks/cube/monkey(src.loc)
|
||||
to_chat(user, "<span class='notice'>The machine's display flashes that it has [grinded] monkeys worth of material left.</span>")
|
||||
stored_matter--
|
||||
to_chat(user, "<span class='notice'>The machine's display flashes that it has [stored_matter] monkeys worth of material left.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='danger'>The machine needs at least [required_grind] monkey(s) worth of material to produce a monkey cube. It only has [grinded].</span>")
|
||||
to_chat(user, "<span class='danger'>The machine needs at least 1 monkey worth of material to produce a monkey cube. It currently has [stored_matter].</span>")
|
||||
|
||||
/obj/machinery/monkey_recycler/multitool_act(mob/living/user, obj/item/multitool/I)
|
||||
if(istype(I))
|
||||
to_chat(user, "<span class='notice'>You log [src] in the multitool's buffer.</span>")
|
||||
I.buffer = src
|
||||
return TRUE
|
||||
|
||||
@@ -415,7 +415,8 @@
|
||||
"Meka" = image(icon = 'modular_splurt/icons/mob/robots_32x64.dmi', icon_state = "mekamed"), // SPLURT Addon
|
||||
"Feline" = image(icon = 'modular_splurt/icons/mob/widerobot.dmi', icon_state = "vixmed-b"), // SPLURT Addon (ChompS Port)
|
||||
"Raptor V-4" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "medraptor-b"), // SPLURT Addon (ChompS Port)
|
||||
"Raptor V-4 (alt)" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "traumaraptor-b") // SPLURT Addon (ChompS Port)
|
||||
"Raptor V-4 (alt)" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "traumaraptor-b"), // SPLURT Addon (ChompS Port)
|
||||
"Handy" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "handy_medical") // SPLURT Addon (Fallout 13)
|
||||
)
|
||||
var/list/L = list("Medihound" = "medihound", "Medihound Dark" = "medihounddark", "Vale" = "valemed")
|
||||
for(var/a in L)
|
||||
@@ -495,6 +496,10 @@
|
||||
cyborg_base_icon = "haydeemedical"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Handy") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "handy_medical"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Medihound")
|
||||
cyborg_base_icon = "medihound"
|
||||
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
|
||||
@@ -643,7 +648,8 @@
|
||||
"Assaultron" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "assaultron_engi"), // SPLURT Addon
|
||||
"Haydee" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "haydeeengi"), // SPLURT Addon
|
||||
"Feline" = image(icon = 'modular_splurt/icons/mob/widerobot.dmi', icon_state = "vixengi-b"), // SPLURT Addon (ChompS Port)
|
||||
"Raptor V-4" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "engiraptor-b") // SPLURT Addon (ChompS Port)
|
||||
"Raptor V-4" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "engiraptor-b"), // SPLURT Addon (ChompS Port)
|
||||
"Handy" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "handy_engineer") // SPLURT Addon (Fallout 13)
|
||||
)
|
||||
var/list/L = list("Pup Dozer" = "pupdozer", "Vale" = "valeeng")
|
||||
for(var/a in L)
|
||||
@@ -725,6 +731,10 @@
|
||||
cyborg_base_icon = "bootyengineerS"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Handy") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "handy_engineer"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Pup Dozer")
|
||||
cyborg_base_icon = "pupdozer"
|
||||
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
|
||||
@@ -843,7 +853,10 @@
|
||||
"Assaultron" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "assaultron_sec"), // SPLURT Addon
|
||||
"Haydee" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "haydeesec"), // SPLURT Addon
|
||||
"Feline" = image(icon = 'modular_splurt/icons/mob/widerobot.dmi', icon_state = "vixsec-b"), // SPLURT Addon (ChompS Port)
|
||||
"Raptor V-4" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "secraptor-b") // SPLURT Addon (ChompS Port)
|
||||
"Raptor V-4" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "secraptor-b"), // SPLURT Addon (ChompS Port)
|
||||
"Handy" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "handy_security"), // SPLURT Addon (Fallout 13)
|
||||
"Sentry Bot" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "sentrybot"), // SPLURT Addon (Fallout 13)
|
||||
"Securitron" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "securitron") // SPLURT Addon (Fallout 13)
|
||||
)
|
||||
var/list/L = list("K9" = "k9", "Vale" = "valesec", "K9 Dark" = "k9dark")
|
||||
for(var/a in L)
|
||||
@@ -918,6 +931,18 @@
|
||||
cyborg_base_icon = "bootysecurityS"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Handy") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "handy_security"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Sentry Bot") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "sentrybot"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Securitron") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "securitron"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("K9")
|
||||
cyborg_base_icon = "k9"
|
||||
sleeper_overlay = "ksleeper"
|
||||
@@ -1043,8 +1068,9 @@
|
||||
"Assaultron" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "assaultron_peacekeeper"), // SPLURT Adoon
|
||||
"Haydee" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "haydeepk"), // SPLURT Addon
|
||||
"Meka" = image(icon = 'modular_splurt/icons/mob/robots_32x64.dmi', icon_state = "mekapeace"), // SPLURT Addon
|
||||
"Feline" = image(icon = 'modular_splurt/icons/mob/widerobot.dmi', icon_state = "vixpk-b") // SPLURT Addon (ChompS Port)
|
||||
))
|
||||
"Feline" = image(icon = 'modular_splurt/icons/mob/widerobot.dmi', icon_state = "vixpk-b"), // SPLURT Addon (ChompS Port)
|
||||
"Handy" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "handy_peace") // SPLURT Addon (Fallout 13)
|
||||
))
|
||||
var/peace_borg_icon = show_radial_menu(R, R , peace_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
|
||||
switch(peace_borg_icon)
|
||||
if("Default")
|
||||
@@ -1084,6 +1110,10 @@
|
||||
cyborg_base_icon = "bootypeaceS"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Handy") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "handy_peace"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Borgi")
|
||||
cyborg_base_icon = "borgi"
|
||||
moduleselect_icon = "borgi"
|
||||
@@ -1297,6 +1327,9 @@
|
||||
"(Janitor) Raptor V-4" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "janiraptor-b"), // SPLURT Addon (ChompS Port)
|
||||
"(Janitor Alt) Raptor V-4" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "sciraptor-b"), // SPLURT Addon (ChompS Port)
|
||||
"(Waiter) Meka" = image(icon = 'modular_splurt/icons/mob/robots_32x64.dmi', icon_state = "mekaserve_alt"), // SPLURT Addon
|
||||
"(Service) Handy" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "handy_service"), // SPLURT Addon (Fallout 13)
|
||||
"(Janitor) Handy" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "handy_janitor"), // SPLURT Addon (Fallout 13)
|
||||
"(Pleasure) Handy" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "handy_pleasure") // SPLURT Addon (Fallout 13)
|
||||
)
|
||||
var/list/L = list("(Service) DarkK9" = "k50", "(Service) Vale" = "valeserv", "(Service) ValeDark" = "valeservdark",
|
||||
"(Janitor) Scrubpuppy" = "scrubpup")
|
||||
@@ -1366,6 +1399,10 @@
|
||||
cyborg_base_icon = "bootyserviceS"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("(Service) Handy") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "handy_service"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("(Service) DarkK9")
|
||||
cyborg_base_icon = "k50"
|
||||
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
|
||||
@@ -1472,6 +1509,10 @@
|
||||
cyborg_base_icon = "bootyjanitorS"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("(Janitor) Handy") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "handy_janitor"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("(Janitor) Scrubpuppy")
|
||||
cyborg_base_icon = "scrubpup"
|
||||
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
|
||||
@@ -1532,6 +1573,10 @@
|
||||
cyborg_base_icon = "mekaserve_alt"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots_32x64.dmi'
|
||||
hat_offset = 3
|
||||
if("(Pleasure) Handy") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "handy_pleasure"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
else
|
||||
return FALSE
|
||||
return ..()
|
||||
@@ -1597,7 +1642,8 @@
|
||||
"Haydee" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "haydeeminer"), // SPLURT Addon
|
||||
"Meka" = image(icon = 'modular_splurt/icons/mob/robots_32x64.dmi', icon_state = "mekamine"), // SPLURT Addon
|
||||
"Feline" = image(icon = 'modular_splurt/icons/mob/widerobot.dmi', icon_state = "vixmine-b"), // SPLURT Adoon (ChompS Port)
|
||||
"Raptor V-4" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "mineraptor-b") // SPLURT Adoon (ChompS Port)
|
||||
"Raptor V-4" = image(icon = 'modular_splurt/icons/mob/robots_64x45.dmi', icon_state = "mineraptor-b"), // SPLURT Adoon (ChompS Port)
|
||||
"Handy" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "handy_miner") // SPLURT Addon (Fallout 13)
|
||||
)
|
||||
var/list/L = list("Blade" = "blade", "Vale" = "valemine")
|
||||
for(var/a in L)
|
||||
@@ -1667,6 +1713,10 @@
|
||||
cyborg_base_icon = "bootyminerS"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Handy") // SPLURT Addon (Fallout 13)
|
||||
cyborg_base_icon = "handy_miner"
|
||||
cyborg_icon_override = 'modular_splurt/icons/mob/robots.dmi'
|
||||
hat_offset = 3
|
||||
if("Blade")
|
||||
cyborg_base_icon = "blade"
|
||||
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
|
||||
|
||||
@@ -113,6 +113,10 @@
|
||||
for (var/A in actions)
|
||||
var/datum/action/AC = A
|
||||
AC.Remove(src)
|
||||
Target = null
|
||||
Leader = null
|
||||
Friends.Cut()
|
||||
speech_buffer.Cut()
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/slime/proc/initialize_mutations()
|
||||
|
||||
@@ -140,29 +140,3 @@
|
||||
build_path = /obj/item/drone_shell
|
||||
category = list("Misc")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/xenobio_upgrade
|
||||
name = "owo"
|
||||
desc = "someone's bussin"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 300, /datum/material/glass = 100)
|
||||
category = list("Electronics")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/xenobio_upgrade/xenobiomonkeys
|
||||
name = "Xenobiology console monkey upgrade disk"
|
||||
desc = "This disk will add the ability to remotely recycle monkeys via the Xenobiology console."
|
||||
id = "xenobio_monkeys"
|
||||
build_path = /obj/item/disk/xenobio_console_upgrade/monkey
|
||||
|
||||
/datum/design/xenobio_upgrade/xenobioslimebasic
|
||||
name = "Xenobiology console basic slime upgrade disk"
|
||||
desc = "This disk will add the ability to remotely manipulate slimes via the Xenobiology console."
|
||||
id = "xenobio_slimebasic"
|
||||
build_path = /obj/item/disk/xenobio_console_upgrade/slimebasic
|
||||
|
||||
/datum/design/xenobio_upgrade/xenobioslimeadv
|
||||
name = "Xenobiology console advanced slime upgrade disk"
|
||||
desc = "This disk will add the ability to remotely feed slimes potions via the Xenobiology console, and lift the restrictions on the number of slimes that can be stored inside the Xenobiology console. This includes the contents of the basic slime upgrade disk."
|
||||
id = "xenobio_slimeadv"
|
||||
build_path = /obj/item/disk/xenobio_console_upgrade/slimeadv
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
display_name = "Basic Bluespace Theory"
|
||||
description = "Basic studies into the mysterious alternate dimension known as bluespace."
|
||||
prereq_ids = list("base", "datatheory")
|
||||
design_ids = list("beacon", "xenobioconsole", "telesci_gps", "xenobio_monkeys")
|
||||
design_ids = list("beacon", "xenobioconsole", "telesci_gps")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/practical_bluespace
|
||||
@@ -13,7 +13,7 @@
|
||||
display_name = "Applied Bluespace Research"
|
||||
description = "Using bluespace to make things faster and better."
|
||||
prereq_ids = list("bluespace_basic", "engineering")
|
||||
design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic", "bluespace_tray", "light_replacer_blue")
|
||||
design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "bluespace_tray", "light_replacer_blue")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||
|
||||
/datum/techweb_node/adv_bluespace
|
||||
@@ -21,7 +21,7 @@
|
||||
display_name = "Advanced Bluespace Research"
|
||||
description = "Deeper understanding of how the Bluespace dimension works"
|
||||
prereq_ids = list("practical_bluespace", "high_efficiency")
|
||||
design_ids = list("bluespace_matter_bin", "femto_mani", "triphasic_scanning", "bluespace_crystal", "xenobio_slimeadv")
|
||||
design_ids = list("bluespace_matter_bin", "femto_mani", "triphasic_scanning", "bluespace_crystal")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
|
||||
|
||||
/datum/techweb_node/emp_super
|
||||
|
||||
@@ -30,11 +30,11 @@
|
||||
var/datum/action/innate/feed_potion/potion_action
|
||||
var/datum/action/innate/hotkey_help/hotkey_help
|
||||
|
||||
var/obj/machinery/monkey_recycler/connected_recycler
|
||||
var/list/stored_slimes
|
||||
var/obj/item/slimepotion/slime/current_potion
|
||||
var/max_slimes = 1
|
||||
var/max_slimes = 10
|
||||
var/monkeys = 0
|
||||
var/upgradetier = 0
|
||||
|
||||
icon_screen = "slime_comp"
|
||||
icon_keyboard = "rd_key"
|
||||
@@ -51,15 +51,27 @@
|
||||
potion_action = new
|
||||
hotkey_help = new
|
||||
stored_slimes = list()
|
||||
RegisterSignal(src, COMSIG_ATOM_CONTENTS_DEL, .proc/on_contents_del)
|
||||
for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers)
|
||||
if(get_area(recycler.loc) == get_area(loc))
|
||||
connected_recycler = recycler
|
||||
connected_recycler.connected += src
|
||||
|
||||
/obj/machinery/computer/camera_advanced/xenobio/Destroy()
|
||||
stored_slimes = null
|
||||
QDEL_NULL(current_potion)
|
||||
for(var/i in contents)
|
||||
var/mob/living/simple_animal/slime/S = i
|
||||
if(istype(S))
|
||||
S.forceMove(drop_location())
|
||||
for(var/thing in stored_slimes)
|
||||
var/mob/living/simple_animal/slime/S = thing
|
||||
S.forceMove(drop_location())
|
||||
stored_slimes.Cut()
|
||||
if(connected_recycler)
|
||||
connected_recycler.connected -= src
|
||||
connected_recycler = null
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/xenobio/handle_atom_del(atom/A)
|
||||
if(A == current_potion)
|
||||
current_potion = null
|
||||
if(A in stored_slimes)
|
||||
stored_slimes -= A
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/xenobio/CreateEye()
|
||||
@@ -72,22 +84,22 @@
|
||||
/obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/user)
|
||||
..()
|
||||
|
||||
if(slime_up_action && (upgradetier & XENOBIO_UPGRADE_SLIMEBASIC)) //CIT CHANGE - makes slime-related actions require XENOBIO_UPGRADE_SLIMEBASIC
|
||||
if(slime_up_action)
|
||||
slime_up_action.target = src
|
||||
slime_up_action.Grant(user)
|
||||
actions += slime_up_action
|
||||
|
||||
if(slime_place_action && (upgradetier & XENOBIO_UPGRADE_SLIMEBASIC)) //CIT CHANGE - makes slime-related actions require XENOBIO_UPGRADE_SLIMEBASIC
|
||||
if(slime_place_action)
|
||||
slime_place_action.target = src
|
||||
slime_place_action.Grant(user)
|
||||
actions += slime_place_action
|
||||
|
||||
if(feed_slime_action && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS
|
||||
if(feed_slime_action)
|
||||
feed_slime_action.target = src
|
||||
feed_slime_action.Grant(user)
|
||||
actions += feed_slime_action
|
||||
|
||||
if(monkey_recycle_action && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS
|
||||
if(monkey_recycle_action)
|
||||
monkey_recycle_action.target = src
|
||||
monkey_recycle_action.Grant(user)
|
||||
actions += monkey_recycle_action
|
||||
@@ -97,7 +109,7 @@
|
||||
scan_action.Grant(user)
|
||||
actions += scan_action
|
||||
|
||||
if(potion_action && (upgradetier & XENOBIO_UPGRADE_SLIMEADV)) // CIT CHANGE - makes giving slimes potions via console require XENOBIO_UPGRADE_SLIMEADV
|
||||
if(potion_action)
|
||||
potion_action.target = src
|
||||
potion_action.Grant(user)
|
||||
actions += potion_action
|
||||
@@ -123,35 +135,13 @@
|
||||
UnregisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL)
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/xenobio/proc/on_contents_del(atom/deleted)
|
||||
if(current_potion == deleted)
|
||||
current_potion = null
|
||||
if(deleted in stored_slimes)
|
||||
stored_slimes -= deleted
|
||||
|
||||
/obj/machinery/computer/camera_advanced/xenobio/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, /obj/item/disk/xenobio_console_upgrade))
|
||||
var/obj/item/disk/xenobio_console_upgrade/diskthing = O
|
||||
var/successfulupgrade = FALSE
|
||||
for(var/I in diskthing.upgradetypes)
|
||||
if(upgradetier & I)
|
||||
continue
|
||||
else
|
||||
upgradetier |= I
|
||||
successfulupgrade = TRUE
|
||||
if(I == XENOBIO_UPGRADE_SLIMEADV)
|
||||
max_slimes = 10
|
||||
if(successfulupgrade)
|
||||
to_chat(user, "<span class='notice'>You have successfully upgraded [src] with [O].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] already has the contents of [O] installed!</span>")
|
||||
return
|
||||
if(istype(O, /obj/item/reagent_containers/food/snacks/cube/monkey) && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS
|
||||
if(istype(O, /obj/item/reagent_containers/food/snacks/cube/monkey))
|
||||
monkeys++
|
||||
to_chat(user, "<span class='notice'>You feed [O] to [src]. It now has [monkeys] monkey cubes stored.</span>")
|
||||
qdel(O)
|
||||
return
|
||||
else if(istype(O, /obj/item/storage/bag) && (upgradetier & XENOBIO_UPGRADE_MONKEYS)) //CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS
|
||||
else if(istype(O, /obj/item/storage/bag))
|
||||
var/obj/item/storage/P = O
|
||||
var/loaded = FALSE
|
||||
for(var/obj/G in P.contents)
|
||||
@@ -162,7 +152,7 @@
|
||||
if(loaded)
|
||||
to_chat(user, "<span class='notice'>You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored.</span>")
|
||||
return
|
||||
else if(istype(O, /obj/item/slimepotion/slime) && (upgradetier & XENOBIO_UPGRADE_SLIMEADV)) // CIT CHANGE - makes giving slimes potions via console require XENOBIO_UPGRADE_SLIMEADV
|
||||
else if(istype(O, /obj/item/slimepotion/slime))
|
||||
var/replaced = FALSE
|
||||
if(user && !user.transferItemToLoc(O, src))
|
||||
return
|
||||
@@ -174,6 +164,13 @@
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/xenobio/multitool_act(mob/living/user, obj/item/multitool/I)
|
||||
if (istype(I) && istype(I.buffer,/obj/machinery/monkey_recycler))
|
||||
to_chat(user, "<span class='notice'>You link [src] with [I.buffer] in [I] buffer.</span>")
|
||||
connected_recycler = I.buffer
|
||||
connected_recycler.connected += src
|
||||
return TRUE
|
||||
|
||||
/datum/action/innate/slime_place
|
||||
name = "Place Slimes"
|
||||
icon_icon = 'icons/mob/actions/actions_silicon.dmi'
|
||||
@@ -237,12 +234,13 @@
|
||||
var/mob/living/carbon/monkey/food = new /mob/living/carbon/monkey(remote_eye.loc, TRUE, owner)
|
||||
if (!QDELETED(food))
|
||||
food.LAssailant = WEAKREF(C)
|
||||
X.monkeys --
|
||||
to_chat(owner, "<span class='notice'>[X] now has [X.monkeys] monkey(s) left.</span>")
|
||||
X.monkeys--
|
||||
X.monkeys = round(X.monkeys, 0.1) //Prevents rounding errors
|
||||
to_chat(owner, "[X] now has [X.monkeys] monkeys stored.")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>[X] needs to have at least 1 monkey stored. Currently has [X.monkeys] monkeys stored.</span>")
|
||||
to_chat(owner, "[X] needs to have at least 1 monkey stored. Currently has [X.monkeys] monkeys stored.")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
to_chat(owner, "<span class='notice'>Target is not near a camera. Cannot proceed.</span>")
|
||||
|
||||
|
||||
/datum/action/innate/monkey_recycle
|
||||
@@ -256,13 +254,20 @@
|
||||
var/mob/living/C = owner
|
||||
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = target
|
||||
var/obj/machinery/monkey_recycler/recycler = X.connected_recycler
|
||||
|
||||
if(!recycler)
|
||||
to_chat(owner, "<span class='notice'>There is no connected monkey recycler. Use a multitool to link one.</span>")
|
||||
return
|
||||
if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
|
||||
for(var/mob/living/carbon/monkey/M in remote_eye.loc)
|
||||
if(M.stat)
|
||||
M.visible_message("[M] vanishes as [M.p_theyre()] reclaimed for recycling!")
|
||||
X.monkeys = round(X.monkeys + 0.2,0.1)
|
||||
recycler.use_power(500)
|
||||
X.monkeys += recycler.cube_production
|
||||
X.monkeys = round(X.monkeys, 0.1) //Prevents rounding errors
|
||||
qdel(M)
|
||||
to_chat(owner, "[X] now has [X.monkeys] monkeys available.")
|
||||
else
|
||||
to_chat(owner, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
|
||||
@@ -310,33 +315,6 @@
|
||||
|
||||
//Demodularized Code
|
||||
|
||||
/obj/item/disk/xenobio_console_upgrade
|
||||
name = "Xenobiology console upgrade disk"
|
||||
desc = "Allan please add detail."
|
||||
icon_state = "datadisk5"
|
||||
var/list/upgradetypes = list()
|
||||
|
||||
/obj/item/disk/xenobio_console_upgrade/admin
|
||||
name = "Xenobio all access thing"
|
||||
desc = "'the consoles are literally useless!!!!!!!!!!!!!!!'"
|
||||
upgradetypes = list(XENOBIO_UPGRADE_SLIMEBASIC, XENOBIO_UPGRADE_SLIMEADV, XENOBIO_UPGRADE_MONKEYS)
|
||||
|
||||
/obj/item/disk/xenobio_console_upgrade/monkey
|
||||
name = "Xenobiology console monkey upgrade disk"
|
||||
desc = "This disk will add the ability to remotely recycle monkeys via the Xenobiology console."
|
||||
upgradetypes = list(XENOBIO_UPGRADE_MONKEYS)
|
||||
|
||||
/obj/item/disk/xenobio_console_upgrade/slimebasic
|
||||
name = "Xenobiology console basic slime upgrade disk"
|
||||
desc = "This disk will add the ability to remotely manipulate slimes via the Xenobiology console."
|
||||
upgradetypes = list(XENOBIO_UPGRADE_SLIMEBASIC)
|
||||
|
||||
/obj/item/disk/xenobio_console_upgrade/slimeadv
|
||||
name = "Xenobiology console advanced slime upgrade disk"
|
||||
desc = "This disk will add the ability to remotely feed slimes potions via the Xenobiology console, and lift the restrictions on the number of slimes that can be stored inside the Xenobiology console. This includes the contents of the basic slime upgrade disk."
|
||||
upgradetypes = list(XENOBIO_UPGRADE_SLIMEBASIC, XENOBIO_UPGRADE_SLIMEADV)
|
||||
|
||||
|
||||
//Xenobio Hotkeys Port
|
||||
|
||||
/datum/action/innate/hotkey_help
|
||||
@@ -399,9 +377,6 @@
|
||||
|
||||
//Feeds a potion to slime
|
||||
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickAlt(mob/living/user, mob/living/simple_animal/slime/S)
|
||||
if(!(upgradetier & XENOBIO_UPGRADE_SLIMEADV)) //CIT CHANGE - makes slime-related actions require XENOBIO_UPGRADE_SLIMEADV
|
||||
to_chat(user, "<span class='warning'>This console does not have the advanced slime upgrade.</span>")
|
||||
return
|
||||
if(!GLOB.cameranet.checkTurfVis(S.loc))
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
@@ -417,9 +392,6 @@
|
||||
|
||||
//Picks up slime
|
||||
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickShift(mob/living/user, mob/living/simple_animal/slime/S)
|
||||
if(!(upgradetier & XENOBIO_UPGRADE_SLIMEBASIC)) //CIT CHANGE - makes slime-related actions require XENOBIO_UPGRADE_SLIMEBASIC
|
||||
to_chat(user, "<span class='warning'>This console does not have the basic slime upgrade.</span>")
|
||||
return
|
||||
if(!GLOB.cameranet.checkTurfVis(S.loc))
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
@@ -442,9 +414,6 @@
|
||||
|
||||
//Place slimes
|
||||
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoTurfClickShift(mob/living/user, turf/open/T)
|
||||
if(!(upgradetier & XENOBIO_UPGRADE_SLIMEBASIC)) //CIT CHANGE - makes slime-related actions require XENOBIO_UPGRADE_SLIMEBASIC
|
||||
to_chat(user, "<span class='warning'>This console does not have the basic slime upgrade.</span>")
|
||||
return
|
||||
if(!GLOB.cameranet.checkTurfVis(T))
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
@@ -460,9 +429,6 @@
|
||||
|
||||
//Place monkey
|
||||
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoTurfClickCtrl(mob/living/user, turf/open/T)
|
||||
if(!(upgradetier & XENOBIO_UPGRADE_MONKEYS)) // CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS
|
||||
to_chat(user, "<span class='warning'>This console does not have the monkey upgrade.</span>")
|
||||
return
|
||||
if(!GLOB.cameranet.checkTurfVis(T))
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
@@ -477,15 +443,12 @@
|
||||
food.LAssailant = WEAKREF(C)
|
||||
X.monkeys--
|
||||
X.monkeys = round(X.monkeys, 0.1) //Prevents rounding errors
|
||||
to_chat(C, "<span class='notice'>[X] now has [X.monkeys] monkey(s) stored.</span>")
|
||||
to_chat(C, "[X] now has [X.monkeys] monkeys stored.")
|
||||
else
|
||||
to_chat(C, "<span class='warning'>[X] needs to have at least 1 monkey stored. Currently has [X.monkeys] monkeys stored.</span>")
|
||||
to_chat(C, "[X] needs to have at least 1 monkey stored. Currently has [X.monkeys] monkeys stored.")
|
||||
|
||||
//Pick up monkey
|
||||
/obj/machinery/computer/camera_advanced/xenobio/proc/XenoMonkeyClickCtrl(mob/living/user, mob/living/carbon/monkey/M)
|
||||
if(!(upgradetier & XENOBIO_UPGRADE_MONKEYS)) // CIT CHANGE - makes monkey-related actions require XENOBIO_UPGRADE_MONKEYS
|
||||
to_chat(user, "<span class='warning'>This console does not have the monkey upgrade.</span>")
|
||||
return
|
||||
if(!isturf(M.loc) || !GLOB.cameranet.checkTurfVis(M.loc))
|
||||
to_chat(user, "<span class='warning'>Target is not near a camera. Cannot proceed.</span>")
|
||||
return
|
||||
@@ -493,11 +456,15 @@
|
||||
var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
|
||||
var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
|
||||
var/area/mobarea = get_area(M.loc)
|
||||
if(!X.connected_recycler)
|
||||
to_chat(C, "<span class='notice'>There is no connected monkey recycler. Use a multitool to link one.</span>")
|
||||
return
|
||||
if(mobarea.name == E.allowed_area || mobarea.xenobiology_compatible)
|
||||
if(!M.stat)
|
||||
return
|
||||
M.visible_message("[M] vanishes as [p_theyre()] reclaimed for recycling!")
|
||||
X.monkeys = round(X.monkeys + 0.2,0.1)
|
||||
X.connected_recycler.use_power(500)
|
||||
X.monkeys += connected_recycler.cube_production
|
||||
X.monkeys = round(X.monkeys, 0.1) //Prevents rounding errors
|
||||
qdel(M)
|
||||
if (X.monkeys == (round(X.monkeys,1)))
|
||||
to_chat(C, "<span class='notice'>[X] now has [X.monkeys] monkey(s) available.</span>")
|
||||
to_chat(C, "[X] now has [X.monkeys] monkeys available.")
|
||||
|
||||
@@ -940,6 +940,7 @@
|
||||
|
||||
M.visible_message("<span class='notice'><span class='name'>[M]</span> has a new name, <span class='name'>[new_name]</span>.</span>", "<span class='notice'>Your old name of <span class='name'>[M.real_name]</span> fades away, and your new name <span class='name'>[new_name]</span> anchors itself in your mind.</span>")
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] used [src] on [ADMIN_LOOKUPFLW(M)], letting them rename themselves into [new_name].")
|
||||
log_game("[key_name(user)] used [src] on [key_name(M)], letting them rename themselves into [new_name].")
|
||||
|
||||
// pass null as first arg to not update records or ID/PDA
|
||||
M.fully_replace_character_name(null, new_name)
|
||||
|
||||
@@ -1 +1 @@
|
||||
"5.6.2"
|
||||
"5.7.0"
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
#define DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH 8
|
||||
#define DMAPI5_TOPIC_COMMAND_SEND_CHUNK 9
|
||||
#define DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK 10
|
||||
#define DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST 11
|
||||
|
||||
#define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType"
|
||||
#define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand"
|
||||
@@ -89,6 +90,7 @@
|
||||
#define DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME "newInstanceName"
|
||||
#define DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE "chatUpdate"
|
||||
#define DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION "newServerVersion"
|
||||
#define DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE "broadcastMessage"
|
||||
|
||||
#define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE "commandResponse"
|
||||
#define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage"
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
if(DMAPI5_TOPIC_COMMAND_CHANGE_PORT)
|
||||
var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT]
|
||||
if (!isnum(new_port) || !(new_port > 0))
|
||||
return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]")
|
||||
return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]")
|
||||
|
||||
if(event_handler != null)
|
||||
event_handler.HandleEvent(TGS_EVENT_PORT_SWAP, new_port)
|
||||
@@ -141,7 +141,7 @@
|
||||
if(DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE)
|
||||
var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT]
|
||||
if (!isnum(new_port) || !(new_port > 0))
|
||||
return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]")
|
||||
return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]")
|
||||
|
||||
server_port = new_port
|
||||
return TopicResponse()
|
||||
@@ -157,7 +157,7 @@
|
||||
var/error_message = null
|
||||
if (new_port != null)
|
||||
if (!isnum(new_port) || !(new_port > 0))
|
||||
error_message = "Invalid [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]"
|
||||
error_message = "Invalid [DMAPI5_TOPIC_PARAMETER_NEW_PORT]"
|
||||
else
|
||||
server_port = new_port
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
if (!istext(new_version_string))
|
||||
if(error_message != null)
|
||||
error_message += ", "
|
||||
error_message += "Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]]"
|
||||
error_message += "Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]"
|
||||
else
|
||||
var/datum/tgs_version/new_version = new(new_version_string)
|
||||
if (event_handler)
|
||||
@@ -267,4 +267,16 @@
|
||||
|
||||
return chunk_to_send
|
||||
|
||||
if(DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST)
|
||||
var/message = topic_parameters[DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE]
|
||||
if (!istext(message))
|
||||
return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE]")
|
||||
|
||||
TGS_WORLD_ANNOUNCE(message)
|
||||
return TopicResponse()
|
||||
|
||||
return TopicResponse("Unknown command: [command]")
|
||||
|
||||
/datum/tgs_api/v5/proc/WorldBroadcast(message)
|
||||
set waitfor = FALSE
|
||||
TGS_WORLD_ANNOUNCE(message)
|
||||
|
||||
@@ -78,6 +78,9 @@
|
||||
#undef DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE
|
||||
#undef DMAPI5_TOPIC_COMMAND_HEALTHCHECK
|
||||
#undef DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH
|
||||
#undef DMAPI5_TOPIC_COMMAND_SEND_CHUNK
|
||||
#undef DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK
|
||||
#undef DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST
|
||||
|
||||
#undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE
|
||||
#undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND
|
||||
@@ -87,6 +90,7 @@
|
||||
#undef DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME
|
||||
#undef DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE
|
||||
#undef DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION
|
||||
#undef DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE
|
||||
|
||||
#undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE
|
||||
#undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE
|
||||
|
||||
Reference in New Issue
Block a user