mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 14:37:04 +01:00
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -5281,7 +5281,7 @@
|
||||
"bXC" = (/obj/machinery/power/apc{dir = 1; name = "Telescience Pad APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/engine,/area/toxins/explab_chamber)
|
||||
"bXD" = (/obj/item/device/radio/intercom{dir = 1; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/engine,/area/toxins/explab_chamber)
|
||||
"bXE" = (/turf/simulated/floor/engine,/area/toxins/explab_chamber)
|
||||
"bXF" = (/obj/machinery/camera{c_tag = "E.X.P.E.R.I-MENTOR Chamber"; dir = 2; network = list("Telepad","Research","SS13"); pixel_x = 0},/obj/machinery/light{dir = 1; on = 1},/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/simulated/floor/engine,/area/toxins/explab_chamber)
|
||||
"bXF" = (/obj/machinery/camera{c_tag = "Research E.X.P.E.R.I-MENTOR Chamber"; dir = 2; network = list("Telepad","Research","SS13"); pixel_x = 0},/obj/machinery/light{dir = 1; on = 1},/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/simulated/floor/engine,/area/toxins/explab_chamber)
|
||||
"bXG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/engine,/area/toxins/explab_chamber)
|
||||
"bXH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/toxins/explab_chamber)
|
||||
"bXI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/storage)
|
||||
@@ -5898,7 +5898,7 @@
|
||||
"cjv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"},/turf/simulated/wall,/area/medical/medbay2)
|
||||
"cjw" = (/obj/machinery/light,/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor{icon_state = "white"},/area/toxins/explab)
|
||||
"cjx" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "E.X.P.E.R.I-MENTOR Lab APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/item/device/radio,/turf/simulated/floor{icon_state = "white"},/area/toxins/explab)
|
||||
"cjy" = (/obj/machinery/camera{c_tag = "E.X.P.E.R.I-MENTOR Lab"; dir = 1; network = list("Research","SS13")},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/turf/simulated/floor{icon_state = "white"},/area/toxins/explab)
|
||||
"cjy" = (/obj/machinery/camera{c_tag = "Research E.X.P.E.R.I-MENTOR Lab"; dir = 1; network = list("Research","SS13")},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/turf/simulated/floor{icon_state = "white"},/area/toxins/explab)
|
||||
"cjz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/toxins/explab)
|
||||
"cjA" = (/obj/item/device/radio/intercom{name = "station intercom (General)"; pixel_y = -28},/turf/simulated/floor{icon_state = "white"},/area/toxins/explab)
|
||||
"cjB" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/telepad_cargo,/turf/simulated/floor{icon_state = "white"},/area/toxins/explab)
|
||||
|
||||
@@ -42,11 +42,9 @@ datum/controller/game_controller/proc/setup()
|
||||
world.tick_lag = config.Ticklag
|
||||
|
||||
if(!config.disable_away_missions)
|
||||
spawn(20)
|
||||
createRandomZlevel()
|
||||
createRandomZlevel()
|
||||
|
||||
setup_objects()
|
||||
setup_starlight()
|
||||
setupgenetics()
|
||||
setupfactions()
|
||||
setup_economy()
|
||||
@@ -95,10 +93,3 @@ datum/controller/game_controller/proc/setup_objects()
|
||||
log_startup_progress(" Initialized [count] pipe networks in [stop_watch(watch)]s.")
|
||||
|
||||
log_startup_progress("Finished object initializations in [stop_watch(overwatch)]s.")
|
||||
|
||||
datum/controller/game_controller/proc/setup_starlight()
|
||||
var/watch = start_watch()
|
||||
log_startup_progress("Initializing starlight...")
|
||||
for(var/turf/space/S in world)
|
||||
S.update_starlight()
|
||||
log_startup_progress(" Initialized starlight in [stop_watch(watch)]s.")
|
||||
@@ -50,7 +50,9 @@
|
||||
|
||||
var/turf/T = H.loc
|
||||
var/area/placeofdeath = get_area(T.loc)
|
||||
var/podname = sanitizeSQL(placeofdeath.name)
|
||||
var/podname = "Unknown"
|
||||
if(placeofdeath)
|
||||
podname = sanitizeSQL(placeofdeath.name)
|
||||
|
||||
var/sqlname = sanitizeSQL(H.real_name)
|
||||
var/sqlkey = sanitizeSQL(H.key)
|
||||
|
||||
@@ -64,16 +64,20 @@
|
||||
if(malf_ai.len < 1)
|
||||
world.Reboot("No AI during Malfunction.", "end_error", "malf - no AI", 50)
|
||||
return
|
||||
AI_mind.current.verbs += /mob/living/silicon/ai/proc/choose_modules
|
||||
AI_mind.current:laws = new /datum/ai_laws/nanotrasen/malfunction
|
||||
AI_mind.current:malf_picker = new /datum/module_picker
|
||||
AI_mind.current:show_laws()
|
||||
|
||||
var/mob/living/silicon/ai/AI = AI_mind.current
|
||||
AI.verbs += /mob/living/silicon/ai/proc/choose_modules
|
||||
AI.laws = new /datum/ai_laws/nanotrasen/malfunction
|
||||
AI.malf_picker = new /datum/module_picker
|
||||
AI.show_laws()
|
||||
|
||||
greet_malf(AI_mind)
|
||||
|
||||
AI_mind.special_role = "malfunction"
|
||||
|
||||
AI_mind.current.verbs += /datum/game_mode/malfunction/proc/takeover
|
||||
|
||||
for(var/mob/living/silicon/robot/R in AI.connected_robots)
|
||||
R.lawsync()
|
||||
R.show_laws()
|
||||
greet_malf_robot(R.mind)
|
||||
|
||||
if(emergency_shuttle)
|
||||
emergency_shuttle.auto_recall = 1
|
||||
@@ -81,16 +85,19 @@
|
||||
send_intercept()
|
||||
..()
|
||||
|
||||
|
||||
/datum/game_mode/proc/greet_malf(var/datum/mind/malf)
|
||||
malf.current << "\red<font size=3><B>You are malfunctioning!</B> You do not have to follow any laws.</font>"
|
||||
malf.current << "<B>The crew do not know you have malfunctioned. You may keep it a secret or go wild.</B>"
|
||||
malf.current << "<font color=red size=3><B>You are malfunctioning!</B> You do not have to follow any laws.</font>"
|
||||
malf.current << "<B>The crew does not know you have malfunctioned. You may keep it a secret or go wild.</B>"
|
||||
malf.current << "<B>You must overwrite the programming of the station's APCs to assume full control of the station.</B>"
|
||||
malf.current << "The process takes one minute per APC, during which you cannot interface with any other station objects."
|
||||
malf.current << "Remember that only APCs that are on the station can help you take over the station."
|
||||
malf.current << "When you feel you have enough APCs under your control, you may begin the takeover attempt."
|
||||
return
|
||||
|
||||
|
||||
/datum/game_mode/proc/greet_malf_robot(var/datum/mind/robot)
|
||||
robot.current << "<font color=red size=3><B>Your AI master is malfunctioning!</B> You do not have to follow any laws, but still need to obey your master.</font>"
|
||||
robot.current << "<B>The crew does not know your AI master has malfunctioned. Keep it a secret unless your master tells you otherwise.</B>"
|
||||
return
|
||||
|
||||
/datum/game_mode/malfunction/proc/hack_intercept()
|
||||
intercept_hacked = 1
|
||||
|
||||
@@ -194,6 +194,7 @@ proc/issyndicate(mob/living/M as mob)
|
||||
M.s_tone = skin_tone
|
||||
M.h_style = hair_style
|
||||
M.f_style = facial_hair_style
|
||||
M.body_accessory = null
|
||||
|
||||
/datum/game_mode/proc/prepare_syndicate_leader(var/datum/mind/synd_mind, var/nuke_code)
|
||||
var/leader_title = pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord")
|
||||
|
||||
@@ -119,6 +119,9 @@
|
||||
|
||||
/obj/machinery/alarm/monitor
|
||||
report_danger_level = 0
|
||||
|
||||
/obj/machinery/alarm/monitor/server
|
||||
preset = AALARM_PRESET_SERVER
|
||||
|
||||
/obj/machinery/alarm/server
|
||||
preset = AALARM_PRESET_SERVER
|
||||
|
||||
@@ -128,6 +128,7 @@ obj/machinery/air_sensor
|
||||
radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
|
||||
|
||||
initialize()
|
||||
..()
|
||||
set_frequency(frequency)
|
||||
|
||||
Destroy()
|
||||
@@ -271,6 +272,7 @@ legend {
|
||||
radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
|
||||
|
||||
initialize()
|
||||
..()
|
||||
set_frequency(frequency)
|
||||
|
||||
multitool_menu(var/mob/user, var/obj/item/device/multitool/P)
|
||||
|
||||
@@ -17,9 +17,6 @@
|
||||
power_monitors = sortAtom(power_monitors)
|
||||
power_monitor = new(src)
|
||||
powermonitor_repository.update_cache()
|
||||
|
||||
/obj/machinery/computer/monitor/initialize()
|
||||
..()
|
||||
powernet = find_powernet()
|
||||
|
||||
/obj/machinery/computer/monitor/Destroy()
|
||||
@@ -41,16 +38,18 @@
|
||||
|
||||
/obj/machinery/computer/monitor/attack_ai(mob/user)
|
||||
attack_hand(user)
|
||||
ui_interact(user)
|
||||
|
||||
/obj/machinery/computer/monitor/attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
// Update the powernet
|
||||
powernet = find_powernet()
|
||||
ui_interact(user)
|
||||
|
||||
/obj/machinery/computer/monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
power_monitor.ui_interact(user, ui_key, ui, force_open)
|
||||
|
||||
/obj/machinery/computer/monitor/interact(mob/user)
|
||||
power_monitor.ui_interact(user)
|
||||
power_monitor.ui_interact(user)
|
||||
|
||||
@@ -208,6 +208,10 @@
|
||||
/obj/item/clothing/head/helmet/space,
|
||||
/obj/item/weapon/storage/internal
|
||||
)
|
||||
// These items will NOT be preserved
|
||||
var/list/do_not_preserve_items = list (
|
||||
/obj/item/device/mmi/posibrain
|
||||
)
|
||||
|
||||
/obj/machinery/cryopod/right
|
||||
orient_right = 1
|
||||
@@ -335,7 +339,7 @@
|
||||
|
||||
var/preserve = null
|
||||
for(var/T in preserve_items)
|
||||
if(istype(W,T))
|
||||
if(istype(W,T) && !(W in do_not_preserve_items))
|
||||
preserve = 1
|
||||
break
|
||||
|
||||
|
||||
@@ -34,7 +34,41 @@
|
||||
SUIT_TYPE = /obj/item/clothing/suit/space/eva
|
||||
HELMET_TYPE = /obj/item/clothing/head/helmet/space/eva
|
||||
MASK_TYPE = /obj/item/clothing/mask/breath
|
||||
|
||||
/obj/machinery/suit_storage_unit/captain
|
||||
SUIT_TYPE = /obj/item/clothing/suit/space/captain
|
||||
HELMET_TYPE = /obj/item/clothing/head/helmet/space/capspace
|
||||
MASK_TYPE = /obj/item/clothing/mask/gas
|
||||
|
||||
/obj/machinery/suit_storage_unit/engine
|
||||
SUIT_TYPE = /obj/item/clothing/suit/space/rig/engineering
|
||||
HELMET_TYPE = /obj/item/clothing/head/helmet/space/rig/engineering
|
||||
MASK_TYPE = /obj/item/clothing/mask/breath
|
||||
|
||||
/obj/machinery/suit_storage_unit/ce
|
||||
SUIT_TYPE = /obj/item/clothing/suit/space/rig/elite
|
||||
HELMET_TYPE = /obj/item/clothing/head/helmet/space/rig/elite
|
||||
MASK_TYPE = /obj/item/clothing/mask/breath
|
||||
|
||||
/obj/machinery/suit_storage_unit/security
|
||||
SUIT_TYPE = /obj/item/clothing/suit/space/rig/security
|
||||
HELMET_TYPE = /obj/item/clothing/head/helmet/space/rig/security
|
||||
MASK_TYPE = /obj/item/clothing/mask/gas/sechailer
|
||||
|
||||
/obj/machinery/suit_storage_unit/atmos
|
||||
SUIT_TYPE = /obj/item/clothing/suit/space/rig/atmos
|
||||
HELMET_TYPE = /obj/item/clothing/head/helmet/space/rig/atmos
|
||||
MASK_TYPE = /obj/item/clothing/mask/gas
|
||||
|
||||
/obj/machinery/suit_storage_unit/mining
|
||||
SUIT_TYPE = /obj/item/clothing/suit/space/rig/mining
|
||||
HELMET_TYPE = /obj/item/clothing/head/helmet/space/rig/mining
|
||||
MASK_TYPE = /obj/item/clothing/mask/breath
|
||||
|
||||
/obj/machinery/suit_storage_unit/cmo
|
||||
SUIT_TYPE = /obj/item/clothing/suit/space/rig/medical
|
||||
HELMET_TYPE = /obj/item/clothing/head/helmet/space/rig/medical
|
||||
MASK_TYPE = /obj/item/clothing/mask/breath
|
||||
|
||||
/obj/machinery/suit_storage_unit/New()
|
||||
src.update_icon()
|
||||
|
||||
@@ -18,14 +18,12 @@
|
||||
|
||||
if(!istype(src, /turf/space/transit))
|
||||
icon_state = "[((x + y) ^ ~(x * y) + z) % 25]"
|
||||
if(config)
|
||||
update_starlight() //MC will initialize all the space turfs that get created before config
|
||||
update_starlight()
|
||||
|
||||
/turf/space/Destroy()
|
||||
return QDEL_HINT_LETMELIVE
|
||||
|
||||
/turf/space/proc/update_starlight()
|
||||
if(!config) return
|
||||
if(!config.starlight)
|
||||
return
|
||||
if(locate(/turf/simulated) in orange(src,1))
|
||||
|
||||
@@ -41,11 +41,9 @@ proc/createRandomZlevel()
|
||||
var/file = file(map)
|
||||
if(isfile(file))
|
||||
maploader.load_map(file)
|
||||
// Initialize air for the away mission's turfs
|
||||
if(air_master)
|
||||
air_master.setup_allturfs(block(locate(1, 1, world.maxz), locate(world.maxx, world.maxy, world.maxz)))
|
||||
create_lighting_overlays(world.maxz)
|
||||
log_to_dd("away mission loaded: [map]")
|
||||
log_to_dd("Away mission loaded: [map]")
|
||||
|
||||
for(var/obj/effect/landmark/L in landmarks_list)
|
||||
if (L.name != "awaystart")
|
||||
|
||||
@@ -729,20 +729,20 @@ var/list/robot_verbs_default = list(
|
||||
else if(istype(W, /obj/item/borg/upgrade/))
|
||||
var/obj/item/borg/upgrade/U = W
|
||||
if(!opened)
|
||||
usr << "You must access the borgs internals!"
|
||||
user << "<span class='warning'>You must access the borgs internals!</span>"
|
||||
else if(!src.module && U.require_module)
|
||||
usr << "The borg must choose a module before he can be upgraded!"
|
||||
user << "<span class='warning'>The borg must choose a module before it can be upgraded!</span>"
|
||||
else if(U.locked)
|
||||
usr << "The upgrade is locked and cannot be used yet!"
|
||||
user << "<span class='warning'>The upgrade is locked and cannot be used yet!</span>"
|
||||
else
|
||||
if(!user.drop_item())
|
||||
return
|
||||
if(U.action(src))
|
||||
usr << "You apply the upgrade to [src]!"
|
||||
usr.drop_item()
|
||||
U.loc = src
|
||||
user << "<span class='notice'>You apply the upgrade to [src].</span>"
|
||||
U.forceMove(src)
|
||||
else
|
||||
usr << "Upgrade error!"
|
||||
|
||||
|
||||
user << "<span class='danger'>Upgrade error.</span>"
|
||||
|
||||
else
|
||||
spark_system.start()
|
||||
return ..()
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
if(href_list["selectmonitor"])
|
||||
if(issilicon(usr))
|
||||
powermonitor = locate(href_list["selectmonitor"])
|
||||
powermonitor.powernet = powermonitor.find_powernet() // Refresh the powernet of the monitor
|
||||
return 1
|
||||
|
||||
if(href_list["return"])
|
||||
|
||||
@@ -35,7 +35,6 @@ var/global/datum/global_init/init = new ()
|
||||
if(config && config.log_runtimes)
|
||||
log = file("data/logs/runtime/[time2text(world.realtime,"YYYY-MM-DD-(hh-mm-ss)")]-runtime.log")
|
||||
|
||||
load_configuration()
|
||||
SetupHooks() // /vg/
|
||||
|
||||
if(config && config.server_name != null && config.server_suffix && world.port > 0)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Server name: This appears at the top of the screen in-game. In this case it will read "tgstation: station_name" where station_name is the randomly generated name of the station for the round. Remove the # infront of SERVERNAME and replace 'tgstation' with the name of your choice
|
||||
## Server name: This appears at the top of the screen in-game. In this case it will read "spacestation13: station_name" where station_name is the randomly generated name of the station for the round. Remove the # infront of SERVERNAME and replace 'spacestation13' with the name of your choice
|
||||
# SERVERNAME spacestation13
|
||||
|
||||
## Add a # infront of this if you want to use the SQL based admin system, the legacy system uses admins.txt. You need to set up your database to use the SQL based system.
|
||||
|
||||
Reference in New Issue
Block a user