mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 05:57:24 +01:00
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user