Revert "12/21 modernizations from TG live"
This commit is contained in:
@@ -9,10 +9,10 @@
|
||||
|
||||
var/power_type
|
||||
|
||||
/datum/AI_Module/large
|
||||
/datum/AI_Module/large/
|
||||
uses = 1
|
||||
|
||||
/datum/AI_Module/small
|
||||
/datum/AI_Module/small/
|
||||
uses = 5
|
||||
|
||||
/datum/AI_Module/large/nuke_station
|
||||
@@ -35,13 +35,15 @@
|
||||
src << "<span class='notice'>Nuclear device armed.</span>"
|
||||
priority_announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg')
|
||||
set_security_level("delta")
|
||||
SSshuttle.emergencyNoEscape = 1
|
||||
nuking = 1
|
||||
var/obj/machinery/doomsday_device/DOOM = new /obj/machinery/doomsday_device(src)
|
||||
doomsday_device = DOOM
|
||||
doomsday_device.start()
|
||||
verbs -= /mob/living/silicon/ai/proc/nuke_station
|
||||
for(var/obj/item/weapon/pinpointer/P in pinpointer_list)
|
||||
P.switch_mode_to(TRACK_MALF_AI) //Pinpointers start tracking the AI wherever it goes
|
||||
for(var/obj/item/weapon/pinpointer/point in pinpointer_list)
|
||||
for(var/mob/living/silicon/ai/A in ai_list)
|
||||
if((A.stat != DEAD) && A.nuking)
|
||||
point.the_disk = A //The pinpointer now tracks the AI core
|
||||
|
||||
/obj/machinery/doomsday_device
|
||||
icon = 'icons/obj/machines/nuke_terminal.dmi'
|
||||
@@ -51,57 +53,29 @@
|
||||
anchored = 1
|
||||
density = 1
|
||||
verb_exclaim = "blares"
|
||||
var/timing = FALSE
|
||||
var/default_timer = 4500
|
||||
var/obj/effect/countdown/doomsday/countdown
|
||||
var/detonation_timer
|
||||
var/list/milestones = list()
|
||||
|
||||
/obj/machinery/doomsday_device/New()
|
||||
..()
|
||||
countdown = new(src)
|
||||
|
||||
/obj/machinery/doomsday_device/Destroy()
|
||||
if(countdown)
|
||||
qdel(countdown)
|
||||
countdown = null
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
SSshuttle.clearHostileEnvironment(src)
|
||||
for(var/A in ai_list)
|
||||
var/mob/living/silicon/ai/Mlf = A
|
||||
if(Mlf.doomsday_device == src)
|
||||
Mlf.doomsday_device = null
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/doomsday_device/proc/start()
|
||||
detonation_timer = world.time + default_timer
|
||||
timing = TRUE
|
||||
countdown.start()
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
SSshuttle.registerHostileEnvironment(src)
|
||||
|
||||
/obj/machinery/doomsday_device/proc/seconds_remaining()
|
||||
. = max(0, (round((detonation_timer - world.time) / 10)))
|
||||
var/timing = 1
|
||||
var/timer = 450
|
||||
|
||||
/obj/machinery/doomsday_device/process()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T || T.z != ZLEVEL_STATION)
|
||||
minor_announce("DOOMSDAY DEVICE OUT OF STATION RANGE, ABORTING", "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", 1)
|
||||
SSshuttle.clearHostileEnvironment(src)
|
||||
SSshuttle.emergencyNoEscape = 0
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_STRANDED)
|
||||
SSshuttle.emergency.mode = SHUTTLE_DOCKED
|
||||
SSshuttle.emergency.timer = world.time
|
||||
priority_announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority")
|
||||
qdel(src)
|
||||
if(!timing)
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
return
|
||||
var/sec_left = seconds_remaining()
|
||||
if(sec_left <= 0)
|
||||
timing = FALSE
|
||||
if(timer <= 0)
|
||||
timing = 0
|
||||
detonate(T.z)
|
||||
qdel(src)
|
||||
else
|
||||
var/key = num2text(sec_left)
|
||||
if(!(sec_left % 60) && !(key in milestones))
|
||||
milestones[key] = TRUE
|
||||
var/message = "[key] SECONDS UNTIL DOOMSDAY DEVICE ACTIVATION!"
|
||||
timer--
|
||||
if(!(timer%60))
|
||||
var/message = "[timer] SECONDS UNTIL DOOMSDAY DEVICE ACTIVATION!"
|
||||
minor_announce(message, "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", 1)
|
||||
|
||||
/obj/machinery/doomsday_device/proc/detonate(z_level = 1)
|
||||
@@ -110,7 +84,7 @@
|
||||
sleep(100)
|
||||
for(var/mob/living/L in mob_list)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T || T.z != z_level)
|
||||
if(T.z != z_level)
|
||||
continue
|
||||
if(issilicon(L))
|
||||
continue
|
||||
@@ -119,6 +93,23 @@
|
||||
world << "<B>The AI cleansed the station of life with the doomsday device!</B>"
|
||||
ticker.force_ending = 1
|
||||
|
||||
/datum/AI_Module/large/fireproof_core
|
||||
module_name = "Core Upgrade"
|
||||
mod_pick_name = "coreup"
|
||||
description = "An upgrade to improve core resistance, making it immune to fire and heat. This effect is permanent."
|
||||
cost = 50
|
||||
one_time = 1
|
||||
|
||||
power_type = /mob/living/silicon/ai/proc/fireproof_core
|
||||
|
||||
/mob/living/silicon/ai/proc/fireproof_core()
|
||||
set category = "Malfunction"
|
||||
set name = "Fireproof Core"
|
||||
for(var/mob/living/silicon/ai/ai in player_list)
|
||||
ai.fire_res_on_core = 1
|
||||
src.verbs -= /mob/living/silicon/ai/proc/fireproof_core
|
||||
src << "<span class='notice'>Core fireproofed.</span>"
|
||||
|
||||
/datum/AI_Module/large/upgrade_turrets
|
||||
module_name = "AI Turret Upgrade"
|
||||
mod_pick_name = "turret"
|
||||
@@ -138,9 +129,9 @@
|
||||
src.verbs -= /mob/living/silicon/ai/proc/upgrade_turrets
|
||||
//Upgrade AI turrets around the world
|
||||
for(var/obj/machinery/porta_turret/ai/turret in machines)
|
||||
turret.obj_integrity += 30
|
||||
turret.lethal_projectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR.
|
||||
turret.lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
|
||||
turret.health += 30
|
||||
turret.eprojectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR.
|
||||
turret.eshot_sound = 'sound/weapons/lasercannonfire.ogg'
|
||||
src << "<span class='notice'>Turrets upgraded.</span>"
|
||||
|
||||
/datum/AI_Module/large/lockdown
|
||||
@@ -162,7 +153,7 @@
|
||||
for(var/obj/machinery/door/D in airlocks)
|
||||
if(D.z != ZLEVEL_STATION)
|
||||
continue
|
||||
addtimer(D, "hostile_lockdown", 0, TIMER_NORMAL, src)
|
||||
addtimer(D, "hostile_lockdown", 0, FALSE, src)
|
||||
addtimer(D, "disable_lockdown", 900)
|
||||
|
||||
var/obj/machinery/computer/communications/C = locate() in machines
|
||||
@@ -172,7 +163,7 @@
|
||||
verbs -= /mob/living/silicon/ai/proc/lockdown
|
||||
minor_announce("Hostile runtime detected in door controllers. Isolation Lockdown protocols are now in effect. Please remain calm.","Network Alert:", 1)
|
||||
src << "<span class = 'warning'>Lockdown Initiated. Network reset in 90 seconds.</span>"
|
||||
addtimer(GLOBAL_PROC, "minor_announce", 900, TIMER_NORMAL,
|
||||
addtimer(GLOBAL_PROC, "minor_announce", 900, FALSE,
|
||||
"Automatic system reboot complete. Have a secure day.",
|
||||
"Network reset:")
|
||||
|
||||
@@ -291,11 +282,11 @@
|
||||
for(var/datum/AI_Module/small/overload_machine/overload in current_modules)
|
||||
if(overload.uses > 0)
|
||||
overload.uses --
|
||||
audible_message("<span class='userdanger'>You hear a loud electrical buzzing sound coming from [M]!</span>")
|
||||
audible_message("<span class='italics'>You hear a loud electrical buzzing sound!</span>")
|
||||
src << "<span class='warning'>Overloading machine circuitry...</span>"
|
||||
spawn(50)
|
||||
if(M)
|
||||
explosion(get_turf(M), 0,2,3,0)
|
||||
explosion(get_turf(M), 0,1,1,0)
|
||||
qdel(M)
|
||||
else src << "<span class='notice'>Out of uses.</span>"
|
||||
else src << "<span class='notice'>That's not a machine.</span>"
|
||||
@@ -377,7 +368,7 @@
|
||||
for(var/n=1;n<4,n++)
|
||||
var/fail
|
||||
var/turf/T = turfs[n]
|
||||
if(!isfloorturf(T))
|
||||
if(!istype(T, /turf/open/floor))
|
||||
fail = 1
|
||||
var/datum/camerachunk/C = cameranet.getCameraChunk(T.x, T.y, T.z)
|
||||
if(!C.visibleTurfs[T])
|
||||
|
||||
Reference in New Issue
Block a user