mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-29 19:42:42 +00:00
Merge branch 'bleeding-edge-freeze' of https://github.com/Baystation12/Baystation12
This commit is contained in:
@@ -37,6 +37,9 @@
|
||||
var/list/waypoints = list()
|
||||
for(var/obj/effect/landmark/temple/destination/T in world)
|
||||
waypoints.Add(T)
|
||||
if(!T)
|
||||
return
|
||||
else continue
|
||||
var/obj/effect/landmark/temple/destination/dest_temple = pick(waypoints)
|
||||
dest_temple.init()
|
||||
|
||||
|
||||
@@ -163,42 +163,46 @@ connection
|
||||
|
||||
//If there are more than one connection, decrement the number of connections
|
||||
//Otherwise, remove all connections between the zones.
|
||||
if(zone_1.connected_zones[zone_2] > 1)
|
||||
zone_1.connected_zones[zone_2]--
|
||||
else
|
||||
zone_1.connected_zones -= zone_2
|
||||
//remove the list if it is empty
|
||||
if(!zone_1.connected_zones.len)
|
||||
zone_1.connected_zones = null
|
||||
if(zone_2 in zone_1.connected_zones)
|
||||
if(zone_1.connected_zones[zone_2] > 1)
|
||||
zone_1.connected_zones[zone_2]--
|
||||
else
|
||||
zone_1.connected_zones -= zone_2
|
||||
//remove the list if it is empty
|
||||
if(!zone_1.connected_zones.len)
|
||||
zone_1.connected_zones = null
|
||||
|
||||
//Then do the same for the other zone.
|
||||
if(zone_2.connected_zones[zone_1] > 1)
|
||||
zone_2.connected_zones[zone_1]--
|
||||
else
|
||||
zone_2.connected_zones -= zone_1
|
||||
if(!zone_2.connected_zones.len)
|
||||
zone_2.connected_zones = null
|
||||
if(zone_1 in zone_2.connected_zones)
|
||||
if(zone_2.connected_zones[zone_1] > 1)
|
||||
zone_2.connected_zones[zone_1]--
|
||||
else
|
||||
zone_2.connected_zones -= zone_1
|
||||
if(!zone_2.connected_zones.len)
|
||||
zone_2.connected_zones = null
|
||||
|
||||
//Handle disconnection of closed zones.
|
||||
if( (zone_1 in zone_2.closed_connection_zones) || (zone_2 in zone_1.closed_connection_zones) )
|
||||
|
||||
//If there are more than one connection, decrement the number of connections
|
||||
//Otherwise, remove all connections between the zones.
|
||||
if(zone_1.closed_connection_zones[zone_2] > 1)
|
||||
zone_1.closed_connection_zones[zone_2]--
|
||||
else
|
||||
zone_1.closed_connection_zones -= zone_2
|
||||
//remove the list if it is empty
|
||||
if(!zone_1.closed_connection_zones.len)
|
||||
zone_1.closed_connection_zones = null
|
||||
if(zone_2 in zone_1.connected_zones)
|
||||
if(zone_1.closed_connection_zones[zone_2] > 1)
|
||||
zone_1.closed_connection_zones[zone_2]--
|
||||
else
|
||||
zone_1.closed_connection_zones -= zone_2
|
||||
//remove the list if it is empty
|
||||
if(!zone_1.closed_connection_zones.len)
|
||||
zone_1.closed_connection_zones = null
|
||||
|
||||
//Then do the same for the other zone.
|
||||
if(zone_2.closed_connection_zones[zone_1] > 1)
|
||||
zone_2.closed_connection_zones[zone_1]--
|
||||
else
|
||||
zone_2.closed_connection_zones -= zone_1
|
||||
if(!zone_2.closed_connection_zones.len)
|
||||
zone_2.closed_connection_zones = null
|
||||
if(zone_1 in zone_2.connected_zones)
|
||||
if(zone_2.closed_connection_zones[zone_1] > 1)
|
||||
zone_2.closed_connection_zones[zone_1]--
|
||||
else
|
||||
zone_2.closed_connection_zones -= zone_1
|
||||
if(!zone_2.closed_connection_zones.len)
|
||||
zone_2.closed_connection_zones = null
|
||||
|
||||
|
||||
proc/Cleanup()
|
||||
|
||||
@@ -95,6 +95,10 @@ zone/proc
|
||||
|
||||
for(var/turf/space/S in unsimulated_tiles)
|
||||
S.overlays -= 'debug_space.dmi'
|
||||
|
||||
for(var/connection/C in connections)
|
||||
C.A.overlays -= 'debug_connect.dmi'
|
||||
C.B.overlays -= 'debug_connect.dmi'
|
||||
for(var/zone/Z in zones)
|
||||
if(Z.air == air && Z != src)
|
||||
var/turf/zloc = pick(Z.contents)
|
||||
|
||||
@@ -279,7 +279,7 @@ zone/proc/process()
|
||||
unsimulated_boost += unsimulated_tiles.len
|
||||
if(Z.unsimulated_tiles)
|
||||
unsimulated_boost += Z.unsimulated_tiles.len
|
||||
unsimulated_boost = min(3, unsimulated_boost)
|
||||
unsimulated_boost = max(0, min(3, unsimulated_boost))
|
||||
ShareRatio( air , Z.air , connected_zones[Z] + unsimulated_boost)
|
||||
|
||||
for(var/zone/Z in closed_connection_zones)
|
||||
@@ -364,7 +364,7 @@ proc/ShareRatio(datum/gas_mixture/A, datum/gas_mixture/B, connecting_tiles)
|
||||
if(A.compare(B)) return 1
|
||||
else return 0
|
||||
|
||||
proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles)
|
||||
proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output)
|
||||
//A modified version of ShareRatio for spacing gas at the same rate as if it were going into a large airless room.
|
||||
if(!unsimulated_tiles || !unsimulated_tiles.len)
|
||||
return 0
|
||||
@@ -377,20 +377,6 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles)
|
||||
unsim_heat_capacity = 0
|
||||
unsim_temperature = 0
|
||||
|
||||
for(var/turf/T in unsimulated_tiles)
|
||||
unsim_oxygen += T.oxygen
|
||||
unsim_co2 += T.carbon_dioxide
|
||||
unsim_nitrogen += T.nitrogen
|
||||
unsim_plasma += T.toxins
|
||||
unsim_temperature += T.temperature/unsimulated_tiles.len
|
||||
|
||||
unsim_heat_capacity = HEAT_CAPACITY_CALCULATION(unsim_oxygen,unsim_co2,unsim_nitrogen,unsim_plasma)
|
||||
|
||||
var
|
||||
ratio = sharing_lookup_table[6]
|
||||
|
||||
old_pressure = A.return_pressure()
|
||||
|
||||
size = max(1,A.group_multiplier)
|
||||
|
||||
// We use the same size for the potentially single space tile
|
||||
@@ -399,7 +385,27 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles)
|
||||
// slowly than small rooms, preserving our good old "hollywood-style"
|
||||
// oh-shit effect when large rooms get breached, but still having small
|
||||
// rooms remain pressurized for long enough to make escape possible.
|
||||
share_size = max(1, unsimulated_tiles.len)
|
||||
share_size = max(1, max(size - 5, 1) + unsimulated_tiles.len)
|
||||
correction_ratio = share_size / unsimulated_tiles.len
|
||||
|
||||
for(var/turf/T in unsimulated_tiles)
|
||||
unsim_oxygen += T.oxygen
|
||||
unsim_co2 += T.carbon_dioxide
|
||||
unsim_nitrogen += T.nitrogen
|
||||
unsim_plasma += T.toxins
|
||||
unsim_temperature += T.temperature/unsimulated_tiles.len
|
||||
|
||||
//These values require adjustment in order to properly represent a room of the specified size.
|
||||
unsim_oxygen *= correction_ratio
|
||||
unsim_co2 *= correction_ratio
|
||||
unsim_nitrogen *= correction_ratio
|
||||
unsim_plasma *= correction_ratio
|
||||
unsim_heat_capacity = HEAT_CAPACITY_CALCULATION(unsim_oxygen,unsim_co2,unsim_nitrogen,unsim_plasma)
|
||||
|
||||
var
|
||||
ratio = sharing_lookup_table[6]
|
||||
|
||||
old_pressure = A.return_pressure()
|
||||
|
||||
full_oxy = A.oxygen * size
|
||||
full_nitro = A.nitrogen * size
|
||||
@@ -419,16 +425,16 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles)
|
||||
ratio = sharing_lookup_table[unsimulated_tiles.len]
|
||||
ratio *= 2
|
||||
|
||||
A.oxygen = max(0, (A.oxygen - oxy_avg) * (1-ratio) + oxy_avg )
|
||||
A.nitrogen = max(0, (A.nitrogen - nit_avg) * (1-ratio) + nit_avg )
|
||||
A.carbon_dioxide = max(0, (A.carbon_dioxide - co2_avg) * (1-ratio) + co2_avg )
|
||||
A.toxins = max(0, (A.toxins - plasma_avg) * (1-ratio) + plasma_avg )
|
||||
A.oxygen = max(0, (A.oxygen - oxy_avg) * (1 - ratio) + oxy_avg )
|
||||
A.nitrogen = max(0, (A.nitrogen - nit_avg) * (1 - ratio) + nit_avg )
|
||||
A.carbon_dioxide = max(0, (A.carbon_dioxide - co2_avg) * (1 - ratio) + co2_avg )
|
||||
A.toxins = max(0, (A.toxins - plasma_avg) * (1 - ratio) + plasma_avg )
|
||||
|
||||
A.temperature = max(TCMB, (A.temperature - temp_avg) * (1-ratio) + temp_avg )
|
||||
A.temperature = max(TCMB, (A.temperature - temp_avg) * (1 - ratio) + temp_avg )
|
||||
|
||||
for(var/datum/gas/G in A.trace_gases)
|
||||
var/G_avg = (G.moles*size + 0) / (size+share_size)
|
||||
G.moles = (G.moles - G_avg) * (1-ratio) + G_avg
|
||||
var/G_avg = (G.moles * size) / (size + share_size)
|
||||
G.moles = (G.moles - G_avg) * (1 - ratio) + G_avg
|
||||
|
||||
A.update_values()
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
var/Ticklag = 0.9
|
||||
var/Tickcomp = 0
|
||||
var/socket_talk = 0 // use socket_talk to communicate with other processes
|
||||
var/list/resource_urls = null
|
||||
|
||||
var/list/mode_names = list()
|
||||
var/list/modes = list() // allowed modes
|
||||
@@ -164,6 +165,9 @@
|
||||
|
||||
if(type == "config")
|
||||
switch (name)
|
||||
if ("resource_urls")
|
||||
config.resource_urls = stringsplit(value, " ")
|
||||
|
||||
if ("admin_legacy_system")
|
||||
config.admin_legacy_system = 1
|
||||
|
||||
|
||||
@@ -320,7 +320,7 @@
|
||||
attack_verb = list("stabbed", "slashed", "sliced", "cut")
|
||||
|
||||
suicide_act(mob/user)
|
||||
viewers(user) << pick("/red <b>[user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.</b>", \
|
||||
viewers(user) << pick("\red <b>[user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.</b>", \
|
||||
"\red <b>[user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.</b>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ var/global/list/autolathe_recipes = list( \
|
||||
new /obj/item/device/assembly/igniter(), \
|
||||
new /obj/item/device/assembly/signaler(), \
|
||||
new /obj/item/device/radio/headset(), \
|
||||
new /obj/item/device/radio(), \
|
||||
new /obj/item/device/radio/off(), \
|
||||
new /obj/item/device/assembly/infra(), \
|
||||
new /obj/item/device/assembly/timer(), \
|
||||
new /obj/item/weapon/light/tube(), \
|
||||
|
||||
@@ -2,6 +2,341 @@
|
||||
#define SPECOPS_MOVETIME 600 //Time to station is milliseconds. 60 seconds, enough time for everyone to be on the shuttle before it leaves.
|
||||
#define SPECOPS_STATION_AREATYPE "/area/shuttle/specops/station" //Type of the spec ops shuttle area for station
|
||||
#define SPECOPS_DOCK_AREATYPE "/area/shuttle/specops/centcom" //Type of the spec ops shuttle area for dock
|
||||
#define SPECOPS_RETURN_DELAY 6000 //Time between the shuttle is capable of moving.
|
||||
|
||||
var/specops_shuttle_moving_to_station = 0
|
||||
var/specops_shuttle_moving_to_centcom = 0
|
||||
var/specops_shuttle_at_station = 0
|
||||
var/specops_shuttle_can_send = 1
|
||||
var/specops_shuttle_time = 0
|
||||
var/specops_shuttle_timeleft = 0
|
||||
|
||||
/obj/machinery/computer/specops_shuttle
|
||||
name = "Spec. Ops. Shuttle Console"
|
||||
icon = 'computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
req_access = list(access_cent_specops)
|
||||
// req_access = list(ACCESS_CENT_SPECOPS)
|
||||
var/temp = null
|
||||
var/hacked = 0
|
||||
var/allowedtocall = 0
|
||||
var/specops_shuttle_timereset = 0
|
||||
|
||||
/proc/specops_return()
|
||||
var/obj/item/device/radio/intercom/announcer = new /obj/item/device/radio/intercom(null)//We need a fake AI to announce some stuff below. Otherwise it will be wonky.
|
||||
announcer.config(list("Response Team" = 0))
|
||||
|
||||
var/message_tracker[] = list(0,1,2,3,5,10,30,45)//Create a a list with potential time values.
|
||||
var/message = "\"THE SPECIAL OPERATIONS SHUTTLE IS PREPARING TO RETURN\""//Initial message shown.
|
||||
if(announcer)
|
||||
announcer.autosay(message, "A.L.I.C.E.", "Response Team")
|
||||
|
||||
while(specops_shuttle_time - world.timeofday > 0)
|
||||
var/ticksleft = specops_shuttle_time - world.timeofday
|
||||
|
||||
if(ticksleft > 1e5)
|
||||
specops_shuttle_time = world.timeofday + 10 // midnight rollover
|
||||
specops_shuttle_timeleft = (ticksleft / 10)
|
||||
|
||||
//All this does is announce the time before launch.
|
||||
if(announcer)
|
||||
var/rounded_time_left = round(specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
|
||||
if(rounded_time_left in message_tracker)//If that time is in the list for message announce.
|
||||
message = "\"ALERT: [rounded_time_left] SECOND[(rounded_time_left!=1)?"S":""] REMAIN\""
|
||||
if(rounded_time_left==0)
|
||||
message = "\"ALERT: TAKEOFF\""
|
||||
announcer.autosay(message, "A.L.I.C.E.", "Response Team")
|
||||
message_tracker -= rounded_time_left//Remove the number from the list so it won't be called again next cycle.
|
||||
//Should call all the numbers but lag could mean some issues. Oh well. Not much I can do about that.
|
||||
|
||||
sleep(5)
|
||||
|
||||
specops_shuttle_moving_to_station = 0
|
||||
specops_shuttle_moving_to_centcom = 0
|
||||
|
||||
specops_shuttle_at_station = 1
|
||||
|
||||
var/area/start_location = locate(/area/shuttle/specops/station)
|
||||
var/area/end_location = locate(/area/shuttle/specops/centcom)
|
||||
|
||||
var/list/dstturfs = list()
|
||||
var/throwy = world.maxy
|
||||
|
||||
for(var/turf/T in end_location)
|
||||
dstturfs += T
|
||||
if(T.y < throwy)
|
||||
throwy = T.y
|
||||
|
||||
// hey you, get out of the way!
|
||||
for(var/turf/T in dstturfs)
|
||||
// find the turf to move things to
|
||||
var/turf/D = locate(T.x, throwy - 1, 1)
|
||||
//var/turf/E = get_step(D, SOUTH)
|
||||
for(var/atom/movable/AM as mob|obj in T)
|
||||
AM.Move(D)
|
||||
if(istype(T, /turf/simulated))
|
||||
del(T)
|
||||
|
||||
start_location.move_contents_to(end_location)
|
||||
|
||||
for(var/turf/T in get_area_turfs(end_location) )
|
||||
var/mob/M = locate(/mob) in T
|
||||
M << "\red You have arrived at Central Command. Operation has ended!"
|
||||
|
||||
specops_shuttle_at_station = 0
|
||||
|
||||
for(var/obj/machinery/computer/specops_shuttle/S in world)
|
||||
S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY
|
||||
|
||||
del(announcer)
|
||||
|
||||
/proc/specops_process()
|
||||
var/area/centcom/specops/special_ops = locate()//Where is the specops area located?
|
||||
var/obj/item/device/radio/intercom/announcer = new /obj/item/device/radio/intercom(null)//We need a fake AI to announce some stuff below. Otherwise it will be wonky.
|
||||
announcer.config(list("Response Team" = 0))
|
||||
|
||||
var/message_tracker[] = list(0,1,2,3,5,10,30,45)//Create a a list with potential time values.
|
||||
var/message = "\"THE SPECIAL OPERATIONS SHUTTLE IS PREPARING FOR LAUNCH\""//Initial message shown.
|
||||
if(announcer)
|
||||
announcer.autosay(message, "A.L.I.C.E.", "Response Team")
|
||||
// message = "ARMORED SQUAD TAKE YOUR POSITION ON GRAVITY LAUNCH PAD"
|
||||
// announcer.autosay(message, "A.L.I.C.E.", "Response Team")
|
||||
|
||||
while(specops_shuttle_time - world.timeofday > 0)
|
||||
var/ticksleft = specops_shuttle_time - world.timeofday
|
||||
|
||||
if(ticksleft > 1e5)
|
||||
specops_shuttle_time = world.timeofday + 10 // midnight rollover
|
||||
specops_shuttle_timeleft = (ticksleft / 10)
|
||||
|
||||
//All this does is announce the time before launch.
|
||||
if(announcer)
|
||||
var/rounded_time_left = round(specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
|
||||
if(rounded_time_left in message_tracker)//If that time is in the list for message announce.
|
||||
message = "\"ALERT: [rounded_time_left] SECOND[(rounded_time_left!=1)?"S":""] REMAIN\""
|
||||
if(rounded_time_left==0)
|
||||
message = "\"ALERT: TAKEOFF\""
|
||||
announcer.autosay(message, "A.L.I.C.E.", "Response Team")
|
||||
message_tracker -= rounded_time_left//Remove the number from the list so it won't be called again next cycle.
|
||||
//Should call all the numbers but lag could mean some issues. Oh well. Not much I can do about that.
|
||||
|
||||
sleep(5)
|
||||
|
||||
specops_shuttle_moving_to_station = 0
|
||||
specops_shuttle_moving_to_centcom = 0
|
||||
|
||||
specops_shuttle_at_station = 1
|
||||
if (specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||
|
||||
if (!specops_can_move())
|
||||
usr << "\red The Special Operations shuttle is unable to leave."
|
||||
return
|
||||
|
||||
//Begin Marauder launchpad.
|
||||
spawn(0)//So it parallel processes it.
|
||||
for(var/obj/machinery/door/poddoor/M in special_ops)
|
||||
switch(M.id)
|
||||
if("ASSAULT0")
|
||||
spawn(10)//1 second delay between each.
|
||||
M.open()
|
||||
if("ASSAULT1")
|
||||
spawn(20)
|
||||
M.open()
|
||||
if("ASSAULT2")
|
||||
spawn(30)
|
||||
M.open()
|
||||
if("ASSAULT3")
|
||||
spawn(40)
|
||||
M.open()
|
||||
|
||||
sleep(10)
|
||||
|
||||
var/spawn_marauder[] = new()
|
||||
for(var/obj/effect/landmark/L in world)
|
||||
if(L.name == "Marauder Entry")
|
||||
spawn_marauder.Add(L)
|
||||
for(var/obj/effect/landmark/L in world)
|
||||
if(L.name == "Marauder Exit")
|
||||
var/obj/effect/portal/P = new(L.loc)
|
||||
P.invisibility = 101//So it is not seen by anyone.
|
||||
P.failchance = 0//So it has no fail chance when teleporting.
|
||||
P.target = pick(spawn_marauder)//Where the marauder will arrive.
|
||||
spawn_marauder.Remove(P.target)
|
||||
|
||||
sleep(10)
|
||||
|
||||
for(var/obj/machinery/mass_driver/M in special_ops)
|
||||
switch(M.id)
|
||||
if("ASSAULT0")
|
||||
spawn(10)
|
||||
M.drive()
|
||||
if("ASSAULT1")
|
||||
spawn(20)
|
||||
M.drive()
|
||||
if("ASSAULT2")
|
||||
spawn(30)
|
||||
M.drive()
|
||||
if("ASSAULT3")
|
||||
spawn(40)
|
||||
M.drive()
|
||||
|
||||
sleep(50)//Doors remain open for 5 seconds.
|
||||
|
||||
for(var/obj/machinery/door/poddoor/M in special_ops)
|
||||
switch(M.id)//Doors close at the same time.
|
||||
if("ASSAULT0")
|
||||
spawn(0)
|
||||
M.close()
|
||||
if("ASSAULT1")
|
||||
spawn(0)
|
||||
M.close()
|
||||
if("ASSAULT2")
|
||||
spawn(0)
|
||||
M.close()
|
||||
if("ASSAULT3")
|
||||
spawn(0)
|
||||
M.close()
|
||||
special_ops.readyreset()//Reset firealarm after the team launched.
|
||||
//End Marauder launchpad.
|
||||
|
||||
var/area/start_location = locate(/area/shuttle/specops/centcom)
|
||||
var/area/end_location = locate(/area/shuttle/specops/station)
|
||||
|
||||
var/list/dstturfs = list()
|
||||
var/throwy = world.maxy
|
||||
|
||||
for(var/turf/T in end_location)
|
||||
dstturfs += T
|
||||
if(T.y < throwy)
|
||||
throwy = T.y
|
||||
|
||||
// hey you, get out of the way!
|
||||
for(var/turf/T in dstturfs)
|
||||
// find the turf to move things to
|
||||
var/turf/D = locate(T.x, throwy - 1, 1)
|
||||
//var/turf/E = get_step(D, SOUTH)
|
||||
for(var/atom/movable/AM as mob|obj in T)
|
||||
AM.Move(D)
|
||||
if(istype(T, /turf/simulated))
|
||||
del(T)
|
||||
|
||||
start_location.move_contents_to(end_location)
|
||||
|
||||
for(var/turf/T in get_area_turfs(end_location) )
|
||||
var/mob/M = locate(/mob) in T
|
||||
M << "\red You have arrived to [station_name]. Commence operation!"
|
||||
|
||||
for(var/obj/machinery/computer/specops_shuttle/S in world)
|
||||
S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY
|
||||
|
||||
del(announcer)
|
||||
|
||||
/proc/specops_can_move()
|
||||
if(specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom)
|
||||
return 0
|
||||
for(var/obj/machinery/computer/specops_shuttle/S in world)
|
||||
if(world.timeofday <= S.specops_shuttle_timereset)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/specops_shuttle/attack_ai(var/mob/user as mob)
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/machinery/computer/specops_shuttle/attack_paw(var/mob/user as mob)
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/machinery/computer/specops_shuttle/attackby(I as obj, user as mob)
|
||||
if(istype(I,/obj/item/weapon/card/emag))
|
||||
user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."
|
||||
else
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/machinery/computer/specops_shuttle/attack_hand(var/mob/user as mob)
|
||||
if(!allowed(user))
|
||||
user << "\red Access Denied."
|
||||
return
|
||||
|
||||
if (sent_strike_team == 0 && send_emergency_team == 0)
|
||||
usr << "\red The strike team has not yet deployed."
|
||||
return
|
||||
|
||||
if(..())
|
||||
return
|
||||
|
||||
user.machine = src
|
||||
var/dat
|
||||
if (temp)
|
||||
dat = temp
|
||||
else
|
||||
dat += {"<BR><B>Special Operations Shuttle</B><HR>
|
||||
\nLocation: [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "Departing for [station_name] in ([specops_shuttle_timeleft] seconds.)":specops_shuttle_at_station ? "Station":"Dock"]<BR>
|
||||
[specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.*<BR>\n<BR>":specops_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Shuttle standing by...</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [station_name]</A><BR>\n<BR>"]
|
||||
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
|
||||
|
||||
user << browse(dat, "window=computer;size=575x450")
|
||||
onclose(user, "computer")
|
||||
return
|
||||
|
||||
/obj/machinery/computer/specops_shuttle/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon)))
|
||||
usr.machine = src
|
||||
|
||||
if (href_list["sendtodock"])
|
||||
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||
|
||||
if (!specops_can_move())
|
||||
usr << "\blue Central Command will not allow the Special Operations shuttle to return yet."
|
||||
if(world.timeofday <= specops_shuttle_timereset)
|
||||
if (((world.timeofday - specops_shuttle_timereset)/10) > 60)
|
||||
usr << "\blue [-((world.timeofday - specops_shuttle_timereset)/10)/60] minutes remain!"
|
||||
usr << "\blue [-(world.timeofday - specops_shuttle_timereset)/10] seconds remain!"
|
||||
return
|
||||
|
||||
usr << "\blue The Special Operations shuttle will arrive at Central Command in [(SPECOPS_MOVETIME/10)] seconds."
|
||||
|
||||
temp += "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
||||
updateUsrDialog()
|
||||
|
||||
specops_shuttle_moving_to_centcom = 1
|
||||
specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
|
||||
spawn(0)
|
||||
specops_return()
|
||||
|
||||
else if (href_list["sendtostation"])
|
||||
if(specops_shuttle_at_station || specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||
|
||||
if (!specops_can_move())
|
||||
usr << "\red The Special Operations shuttle is unable to leave."
|
||||
return
|
||||
|
||||
usr << "\blue The Special Operations shuttle will arrive on [station_name] in [(SPECOPS_MOVETIME/10)] seconds."
|
||||
|
||||
temp += "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
||||
updateUsrDialog()
|
||||
|
||||
var/area/centcom/specops/special_ops = locate()
|
||||
if(special_ops)
|
||||
special_ops.readyalert()//Trigger alarm for the spec ops area.
|
||||
specops_shuttle_moving_to_station = 1
|
||||
|
||||
specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
|
||||
spawn(0)
|
||||
specops_process()
|
||||
|
||||
else if (href_list["mainmenu"])
|
||||
temp = null
|
||||
|
||||
add_fingerprint(usr)
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
/*//Config stuff
|
||||
#define SPECOPS_MOVETIME 600 //Time to station is milliseconds. 60 seconds, enough time for everyone to be on the shuttle before it leaves.
|
||||
#define SPECOPS_STATION_AREATYPE "/area/shuttle/specops/station" //Type of the spec ops shuttle area for station
|
||||
#define SPECOPS_DOCK_AREATYPE "/area/shuttle/specops/centcom" //Type of the spec ops shuttle area for dock
|
||||
|
||||
var/specops_shuttle_moving_to_station = 0
|
||||
var/specops_shuttle_moving_to_centcom = 0
|
||||
@@ -179,9 +514,9 @@ var/specops_shuttle_timeleft = 0
|
||||
user << "\red Access Denied."
|
||||
return
|
||||
|
||||
if (sent_strike_team == 0)
|
||||
usr << "\red The strike team has not yet deployed."
|
||||
return
|
||||
// if (sent_strike_team == 0)
|
||||
// usr << "\red The strike team has not yet deployed."
|
||||
// return
|
||||
|
||||
if(..())
|
||||
return
|
||||
@@ -239,4 +574,5 @@ var/specops_shuttle_timeleft = 0
|
||||
|
||||
add_fingerprint(usr)
|
||||
updateUsrDialog()
|
||||
return
|
||||
return
|
||||
*/
|
||||
@@ -808,4 +808,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
|
||||
if(radio_controller)
|
||||
for (var/ch_name in op)
|
||||
secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/device/radio/off
|
||||
listening = 0
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
/obj/item/borg/upgrade/proc/action(var/mob/living/silicon/robot/R)
|
||||
if(R.stat == DEAD)
|
||||
usr << "/red The [src] will not function on a deceased robot."
|
||||
usr << "\red The [src] will not function on a deceased robot."
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
@@ -365,8 +365,8 @@ LOOK FOR SURGERY.DM*/
|
||||
attack_verb = list("drilled")
|
||||
|
||||
suicide_act(mob/user)
|
||||
viewers(user) << pick("/red <b>[user] is pressing the [src.name] to \his temple and activating it! It looks like \he's trying to commit suicide.</b>", \
|
||||
"/red <b>[user] is pressing [src.name] to \his chest and activating it! It looks like \he's trying to commit suicide.</b>")
|
||||
viewers(user) << pick("\red <b>[user] is pressing the [src.name] to \his temple and activating it! It looks like \he's trying to commit suicide.</b>", \
|
||||
"\red <b>[user] is pressing [src.name] to \his chest and activating it! It looks like \he's trying to commit suicide.</b>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/*
|
||||
|
||||
104
code/game/objects/random/random.dm
Normal file
104
code/game/objects/random/random.dm
Normal file
@@ -0,0 +1,104 @@
|
||||
/obj/random
|
||||
name = "Random Object"
|
||||
desc = "This item type is used to spawn random objects at round-start"
|
||||
icon = 'icons/misc/mark.dmi'
|
||||
icon_state = "rup"
|
||||
var/spawn_nothing_percentage = 0 // this variable determines the likelyhood that this random object will not spawn anything
|
||||
|
||||
|
||||
// creates a new object and deletes itself
|
||||
/obj/random/New()
|
||||
..()
|
||||
if (!prob(spawn_nothing_percentage))
|
||||
spawn_item()
|
||||
del src
|
||||
|
||||
|
||||
// this function should return a specific item to spawn
|
||||
/obj/random/proc/item_to_spawn()
|
||||
return 0
|
||||
|
||||
|
||||
// creates the random item
|
||||
/obj/random/proc/spawn_item()
|
||||
var/build_path = item_to_spawn()
|
||||
return (new build_path(src.loc))
|
||||
|
||||
|
||||
/obj/random/tool
|
||||
name = "Random Tool"
|
||||
desc = "This is a random tool"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "welder"
|
||||
item_to_spawn()
|
||||
return pick(/obj/item/weapon/screwdriver,\
|
||||
/obj/item/weapon/wirecutters,\
|
||||
/obj/item/weapon/weldingtool,\
|
||||
/obj/item/weapon/crowbar,\
|
||||
/obj/item/weapon/wrench,\
|
||||
/obj/item/device/flashlight)
|
||||
|
||||
|
||||
/obj/random/technology_scanner
|
||||
name = "Random Scanner"
|
||||
desc = "This is a random technology scanner."
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "atmos"
|
||||
item_to_spawn()
|
||||
return pick(prob(5);/obj/item/device/t_scanner,\
|
||||
prob(2);/obj/item/device/radio/intercom,\
|
||||
prob(5);/obj/item/device/analyzer)
|
||||
|
||||
|
||||
/obj/random/powercell
|
||||
name = "Random Powercell"
|
||||
desc = "This is a random powercell."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "cell"
|
||||
item_to_spawn()
|
||||
return pick(prob(10);/obj/item/weapon/cell/crap,\
|
||||
prob(40);/obj/item/weapon/cell,\
|
||||
prob(40);/obj/item/weapon/cell/high,\
|
||||
prob(9);/obj/item/weapon/cell/super,\
|
||||
prob(1);/obj/item/weapon/cell/hyper)
|
||||
|
||||
|
||||
/obj/random/bomb_supply
|
||||
name = "Bomb Supply"
|
||||
desc = "This is a random bomb supply."
|
||||
icon = 'icons/obj/assemblies/new_assemblies.dmi'
|
||||
icon_state = "signaller"
|
||||
item_to_spawn()
|
||||
return pick(/obj/item/device/assembly/igniter,\
|
||||
/obj/item/device/assembly/prox_sensor,\
|
||||
/obj/item/device/assembly/signaler)
|
||||
|
||||
|
||||
/obj/random/toolbox
|
||||
name = "Random Toolbox"
|
||||
desc = "This is a random toolbox."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "red"
|
||||
item_to_spawn()
|
||||
return pick(prob(3);/obj/item/weapon/storage/toolbox/mechanical,\
|
||||
prob(2);/obj/item/weapon/storage/toolbox/electrical,\
|
||||
prob(1);/obj/item/weapon/storage/toolbox/emergency)
|
||||
|
||||
|
||||
/obj/random/tech_supply
|
||||
name = "Random Tech Supply"
|
||||
desc = "This is a random piece of technology supplies."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "cell"
|
||||
spawn_nothing_percentage = 50
|
||||
item_to_spawn()
|
||||
return pick(prob(3);/obj/random/powercell,\
|
||||
prob(2);/obj/random/technology_scanner,\
|
||||
prob(1);/obj/item/weapon/packageWrap,\
|
||||
prob(2);/obj/random/bomb_supply,\
|
||||
prob(1);/obj/item/weapon/extinguisher,\
|
||||
prob(1);/obj/item/clothing/gloves/fyellow,\
|
||||
prob(3);/obj/item/weapon/cable_coil,\
|
||||
prob(2);/obj/random/toolbox,\
|
||||
prob(2);/obj/item/weapon/storage/belt/utility,\
|
||||
prob(5);/obj/random/tool)
|
||||
@@ -96,15 +96,15 @@ proc/trigger_armed_response_team(var/force = 0)
|
||||
|
||||
/client/proc/create_response_team(obj/spawn_location, leader_selected = 0, commando_name)
|
||||
|
||||
usr << "\red ERT has been temporarily disabled. Talk to a coder."
|
||||
return
|
||||
//usr << "\red ERT has been temporarily disabled. Talk to a coder."
|
||||
//return
|
||||
|
||||
var/mob/living/carbon/human/M = new(null)
|
||||
response_team_members |= M
|
||||
|
||||
//todo: god damn this.
|
||||
//make it a panel, like in character creation
|
||||
/*var/new_facial = input("Please select facial hair color.", "Character Generation") as color
|
||||
var/new_facial = input("Please select facial hair color.", "Character Generation") as color
|
||||
if(new_facial)
|
||||
M.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
M.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
@@ -139,16 +139,25 @@ proc/trigger_armed_response_team(var/force = 0)
|
||||
hairs.Add(H.name) // add hair name to hairs
|
||||
del(H) // delete the hair after it's all done
|
||||
|
||||
var/new_style = input("Please select hair style", "Character Generation") as null|anything in hairs
|
||||
// var/new_style = input("Please select hair style", "Character Generation") as null|anything in hairs
|
||||
//hair
|
||||
var/new_hstyle = input(usr, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
||||
if(new_hstyle)
|
||||
M.h_style = new_hstyle
|
||||
|
||||
// facial hair
|
||||
var/new_fstyle = input(usr, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
||||
if(new_fstyle)
|
||||
M.f_style = new_fstyle
|
||||
|
||||
// if new style selected (not cancel)
|
||||
if (new_style)
|
||||
/* if (new_style)
|
||||
M.h_style = new_style
|
||||
|
||||
for(var/x in all_hairs) // loop through all_hairs again. Might be slightly CPU expensive, but not significantly.
|
||||
var/datum/sprite_accessory/hair/H = new x // create new hair datum
|
||||
if(H.name == new_style)
|
||||
M.hair_style = H // assign the hair_style variable a new hair datum
|
||||
M.h_style = H // assign the hair_style variable a new hair datum
|
||||
break
|
||||
else
|
||||
del(H) // if hair H not used, delete. BYOND can garbage collect, but better safe than sorry
|
||||
@@ -169,19 +178,21 @@ proc/trigger_armed_response_team(var/force = 0)
|
||||
for(var/x in all_fhairs)
|
||||
var/datum/sprite_accessory/facial_hair/H = new x
|
||||
if(H.name == new_style)
|
||||
M.facial_hair_style = H
|
||||
M.f_style = H
|
||||
break
|
||||
else
|
||||
del(H)
|
||||
|
||||
*/
|
||||
var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female")
|
||||
if (new_gender)
|
||||
if(new_gender == "Male")
|
||||
M.gender = MALE
|
||||
else
|
||||
M.gender = FEMALE
|
||||
M.rebuild_appearance()
|
||||
M.update_body()*/
|
||||
//M.rebuild_appearance()
|
||||
M.update_hair()
|
||||
M.update_body()
|
||||
M.check_dna(M)
|
||||
|
||||
M.real_name = commando_name
|
||||
M.name = commando_name
|
||||
@@ -233,21 +244,28 @@ proc/trigger_armed_response_team(var/force = 0)
|
||||
//Backpack
|
||||
equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(src), slot_back)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(src), slot_in_backpack)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(src), slot_in_backpack)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(src), slot_in_backpack)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(src)
|
||||
W.name = "[real_name]'s ID Card (Emergency Response Team)"
|
||||
W.icon_state = "centcom"
|
||||
if(leader_selected)
|
||||
W.name = "[real_name]'s ID Card (Emergency Response Team Leader)"
|
||||
W.access = get_access("Captain")
|
||||
W.access += list(access_cent_teleporter)
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "Emergency Response Team Leader"
|
||||
else
|
||||
W.access = get_access("Head of Personnel")
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "Emergency Response Team"
|
||||
W.access += list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)//Let's add their alloted CentCom access.
|
||||
W.registered_name = real_name
|
||||
equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
return 1
|
||||
|
||||
/*//debug verb
|
||||
client/verb/ResponseTeam()
|
||||
set category = "Admin"
|
||||
if(!send_emergency_team)
|
||||
send_emergency_team = 1*/
|
||||
@@ -39,3 +39,5 @@
|
||||
var/player_age = "Requires database" //So admins know why it isn't working - Used to determine how old the account is - in days.
|
||||
var/related_accounts_ip = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip
|
||||
var/related_accounts_cid = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id
|
||||
|
||||
preload_rsc = 0 // This is 0 so we can set it to an URL once the player logs in and have them download the resources from a different server.
|
||||
|
||||
@@ -103,6 +103,14 @@
|
||||
del(src)
|
||||
return
|
||||
|
||||
// Change the way they should download resources.
|
||||
if(config.resource_urls)
|
||||
src.preload_rsc = pick(config.resource_urls)
|
||||
else src.preload_rsc = 1 // If config.resource_urls is not set, preload like normal.
|
||||
|
||||
src << "\red If the title screen is black, resources are still downloading. Please be patient until the title screen appears."
|
||||
|
||||
|
||||
clients += src
|
||||
directory[ckey] = src
|
||||
|
||||
@@ -278,4 +286,4 @@
|
||||
'icons/xenoarch_icons/chart2.jpg',
|
||||
'icons/xenoarch_icons/chart3.jpg',
|
||||
'icons/xenoarch_icons/chart4.jpg'
|
||||
)
|
||||
)
|
||||
|
||||
@@ -337,6 +337,10 @@ var/list/ai_list = list()
|
||||
else
|
||||
src << "<span class='notice'>Unable to locate the holopad.</span>"
|
||||
|
||||
if(href_list["say_word"])
|
||||
src.announcement(href_list["say_word"])
|
||||
return
|
||||
|
||||
if (href_list["lawc"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite
|
||||
var/L = text2num(href_list["lawc"])
|
||||
switch(lawcheck[L+1])
|
||||
|
||||
@@ -27,3 +27,696 @@
|
||||
return "declares, \"[text]\"";
|
||||
|
||||
return "states, \"[text]\"";
|
||||
|
||||
var/announcing_vox = 0
|
||||
var/const/VOX_CHANNEL = 200
|
||||
var/const/VOX_VOLUME = 75
|
||||
|
||||
/mob/living/silicon/ai/verb/announcement_help()
|
||||
|
||||
set name = "Announcement Help"
|
||||
set desc = "Display a list of vocal words to announce to the crew."
|
||||
set category = "AI Commands"
|
||||
|
||||
|
||||
var/dat = "Here is a list of words you can type into the Announcement button to create sentences to vocally announce.<BR> \
|
||||
Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.<BR>"
|
||||
|
||||
var/index = 0
|
||||
for(var/word in vox_sounds)
|
||||
index++
|
||||
dat += "<A href='?src=\ref[src];say_word=[word]'>[capitalize(word)]</A>"
|
||||
if(index != vox_sounds.len)
|
||||
dat += " / "
|
||||
|
||||
src << browse(dat, "window=announce_help;size=500x400")
|
||||
|
||||
|
||||
/mob/living/silicon/ai/verb/announcement(var/message as text)
|
||||
|
||||
set name = "Announcement"
|
||||
set desc = "Create a vocal announcement by typing in the available words to create a setence. More help is available in 'Announcement Help'"
|
||||
set category = "AI Commands"
|
||||
|
||||
if(!message)
|
||||
return
|
||||
//if(!announcing_vox > world.time)
|
||||
// return
|
||||
|
||||
log_game("[key_name_admin(src)] made a vocal announcement with the following message: [message].")
|
||||
|
||||
announcing_vox = world.time + 30
|
||||
|
||||
var/list/words = stringsplit(trim(message), " ")
|
||||
var/list/incorrect_words = list()
|
||||
|
||||
if(words.len > 32)
|
||||
words.len = 32
|
||||
for(var/word in words)
|
||||
word = trim(word)
|
||||
if(!word)
|
||||
continue
|
||||
if(!play_vox_word(word, src.z)) // If the word isn't speakable
|
||||
incorrect_words += word
|
||||
|
||||
if(incorrect_words.len)
|
||||
src << "<span class='notice'>These words are not available on the announcement system: [english_list(incorrect_words)].</span>"
|
||||
|
||||
/proc/play_vox_word(var/word, var/z_level)
|
||||
|
||||
word = lowertext(word)
|
||||
|
||||
if(vox_sounds[word])
|
||||
|
||||
var/sound_file = vox_sounds[word]
|
||||
var/sound/voice = sound(sound_file, wait = 1, channel = VOX_CHANNEL, volume = VOX_VOLUME)
|
||||
voice.status = SOUND_STREAM
|
||||
|
||||
// Play voice for all mobs in the z level
|
||||
for(var/mob/M in player_list)
|
||||
if(M.client)
|
||||
var/turf/T = get_turf(M)
|
||||
if(T.z == z_level)
|
||||
M << voice
|
||||
return 1
|
||||
return 0
|
||||
|
||||
// List is required to compile the resources into the game when it loads.
|
||||
// Dynamically loading it has bad results with sounds overtaking each other, even with the wait variable.
|
||||
|
||||
var/list/vox_sounds = list("," = 'sound/vox/,.wav',
|
||||
"." = 'sound/vox/..wav',
|
||||
"a" = 'sound/vox/a.wav',
|
||||
"accelerating" = 'sound/vox/accelerating.wav',
|
||||
"accelerator" = 'sound/vox/accelerator.wav',
|
||||
"accepted" = 'sound/vox/accepted.wav',
|
||||
"access" = 'sound/vox/access.wav',
|
||||
"acknowledge" = 'sound/vox/acknowledge.wav',
|
||||
"acknowledged" = 'sound/vox/acknowledged.wav',
|
||||
"acquired" = 'sound/vox/acquired.wav',
|
||||
"acquisition" = 'sound/vox/acquisition.wav',
|
||||
"across" = 'sound/vox/across.wav',
|
||||
"activate" = 'sound/vox/activate.wav',
|
||||
"activated" = 'sound/vox/activated.wav',
|
||||
"activity" = 'sound/vox/activity.wav',
|
||||
"adios" = 'sound/vox/adios.wav',
|
||||
"administration" = 'sound/vox/administration.wav',
|
||||
"advanced" = 'sound/vox/advanced.wav',
|
||||
"after" = 'sound/vox/after.wav',
|
||||
"agent" = 'sound/vox/agent.wav',
|
||||
"alarm" = 'sound/vox/alarm.wav',
|
||||
"alert" = 'sound/vox/alert.wav',
|
||||
"alien" = 'sound/vox/alien.wav',
|
||||
"aligned" = 'sound/vox/aligned.wav',
|
||||
"all" = 'sound/vox/all.wav',
|
||||
"alpha" = 'sound/vox/alpha.wav',
|
||||
"am" = 'sound/vox/am.wav',
|
||||
"amigo" = 'sound/vox/amigo.wav',
|
||||
"ammunition" = 'sound/vox/ammunition.wav',
|
||||
"an" = 'sound/vox/an.wav',
|
||||
"and" = 'sound/vox/and.wav',
|
||||
"announcement" = 'sound/vox/announcement.wav',
|
||||
"anomalous" = 'sound/vox/anomalous.wav',
|
||||
"antenna" = 'sound/vox/antenna.wav',
|
||||
"any" = 'sound/vox/any.wav',
|
||||
"apprehend" = 'sound/vox/apprehend.wav',
|
||||
"approach" = 'sound/vox/approach.wav',
|
||||
"are" = 'sound/vox/are.wav',
|
||||
"area" = 'sound/vox/area.wav',
|
||||
"arm" = 'sound/vox/arm.wav',
|
||||
"armed" = 'sound/vox/armed.wav',
|
||||
"armor" = 'sound/vox/armor.wav',
|
||||
"armory" = 'sound/vox/armory.wav',
|
||||
"arrest" = 'sound/vox/arrest.wav',
|
||||
"ass" = 'sound/vox/ass.wav',
|
||||
"at" = 'sound/vox/at.wav',
|
||||
"atomic" = 'sound/vox/atomic.wav',
|
||||
"attention" = 'sound/vox/attention.wav',
|
||||
"authorize" = 'sound/vox/authorize.wav',
|
||||
"authorized" = 'sound/vox/authorized.wav',
|
||||
"automatic" = 'sound/vox/automatic.wav',
|
||||
"away" = 'sound/vox/away.wav',
|
||||
"b" = 'sound/vox/b.wav',
|
||||
"back" = 'sound/vox/back.wav',
|
||||
"backman" = 'sound/vox/backman.wav',
|
||||
"bad" = 'sound/vox/bad.wav',
|
||||
"bag" = 'sound/vox/bag.wav',
|
||||
"bailey" = 'sound/vox/bailey.wav',
|
||||
"barracks" = 'sound/vox/barracks.wav',
|
||||
"base" = 'sound/vox/base.wav',
|
||||
"bay" = 'sound/vox/bay.wav',
|
||||
"be" = 'sound/vox/be.wav',
|
||||
"been" = 'sound/vox/been.wav',
|
||||
"before" = 'sound/vox/before.wav',
|
||||
"beyond" = 'sound/vox/beyond.wav',
|
||||
"biohazard" = 'sound/vox/biohazard.wav',
|
||||
"biological" = 'sound/vox/biological.wav',
|
||||
"birdwell" = 'sound/vox/birdwell.wav',
|
||||
"bizwarn" = 'sound/vox/bizwarn.wav',
|
||||
"black" = 'sound/vox/black.wav',
|
||||
"blast" = 'sound/vox/blast.wav',
|
||||
"blocked" = 'sound/vox/blocked.wav',
|
||||
"bloop" = 'sound/vox/bloop.wav',
|
||||
"blue" = 'sound/vox/blue.wav',
|
||||
"bottom" = 'sound/vox/bottom.wav',
|
||||
"bravo" = 'sound/vox/bravo.wav',
|
||||
"breach" = 'sound/vox/breach.wav',
|
||||
"breached" = 'sound/vox/breached.wav',
|
||||
"break" = 'sound/vox/break.wav',
|
||||
"bridge" = 'sound/vox/bridge.wav',
|
||||
"bust" = 'sound/vox/bust.wav',
|
||||
"but" = 'sound/vox/but.wav',
|
||||
"button" = 'sound/vox/button.wav',
|
||||
"buzwarn" = 'sound/vox/buzwarn.wav',
|
||||
"bypass" = 'sound/vox/bypass.wav',
|
||||
"c" = 'sound/vox/c.wav',
|
||||
"cable" = 'sound/vox/cable.wav',
|
||||
"call" = 'sound/vox/call.wav',
|
||||
"called" = 'sound/vox/called.wav',
|
||||
"canal" = 'sound/vox/canal.wav',
|
||||
"cap" = 'sound/vox/cap.wav',
|
||||
"captain" = 'sound/vox/captain.wav',
|
||||
"capture" = 'sound/vox/capture.wav',
|
||||
"ceiling" = 'sound/vox/ceiling.wav',
|
||||
"celsius" = 'sound/vox/celsius.wav',
|
||||
"center" = 'sound/vox/center.wav',
|
||||
"centi" = 'sound/vox/centi.wav',
|
||||
"central" = 'sound/vox/central.wav',
|
||||
"chamber" = 'sound/vox/chamber.wav',
|
||||
"charlie" = 'sound/vox/charlie.wav',
|
||||
"check" = 'sound/vox/check.wav',
|
||||
"checkpoint" = 'sound/vox/checkpoint.wav',
|
||||
"chemical" = 'sound/vox/chemical.wav',
|
||||
"cleanup" = 'sound/vox/cleanup.wav',
|
||||
"clear" = 'sound/vox/clear.wav',
|
||||
"clearance" = 'sound/vox/clearance.wav',
|
||||
"close" = 'sound/vox/close.wav',
|
||||
"code" = 'sound/vox/code.wav',
|
||||
"coded" = 'sound/vox/coded.wav',
|
||||
"collider" = 'sound/vox/collider.wav',
|
||||
"command" = 'sound/vox/command.wav',
|
||||
"communication" = 'sound/vox/communication.wav',
|
||||
"complex" = 'sound/vox/complex.wav',
|
||||
"computer" = 'sound/vox/computer.wav',
|
||||
"condition" = 'sound/vox/condition.wav',
|
||||
"containment" = 'sound/vox/containment.wav',
|
||||
"contamination" = 'sound/vox/contamination.wav',
|
||||
"control" = 'sound/vox/control.wav',
|
||||
"coolant" = 'sound/vox/coolant.wav',
|
||||
"coomer" = 'sound/vox/coomer.wav',
|
||||
"core" = 'sound/vox/core.wav',
|
||||
"correct" = 'sound/vox/correct.wav',
|
||||
"corridor" = 'sound/vox/corridor.wav',
|
||||
"crew" = 'sound/vox/crew.wav',
|
||||
"cross" = 'sound/vox/cross.wav',
|
||||
"cryogenic" = 'sound/vox/cryogenic.wav',
|
||||
"d" = 'sound/vox/d.wav',
|
||||
"dadeda" = 'sound/vox/dadeda.wav',
|
||||
"damage" = 'sound/vox/damage.wav',
|
||||
"damaged" = 'sound/vox/damaged.wav',
|
||||
"danger" = 'sound/vox/danger.wav',
|
||||
"day" = 'sound/vox/day.wav',
|
||||
"deactivated" = 'sound/vox/deactivated.wav',
|
||||
"decompression" = 'sound/vox/decompression.wav',
|
||||
"decontamination" = 'sound/vox/decontamination.wav',
|
||||
"deeoo" = 'sound/vox/deeoo.wav',
|
||||
"defense" = 'sound/vox/defense.wav',
|
||||
"degrees" = 'sound/vox/degrees.wav',
|
||||
"delta" = 'sound/vox/delta.wav',
|
||||
"denied" = 'sound/vox/denied.wav',
|
||||
"deploy" = 'sound/vox/deploy.wav',
|
||||
"deployed" = 'sound/vox/deployed.wav',
|
||||
"destroy" = 'sound/vox/destroy.wav',
|
||||
"destroyed" = 'sound/vox/destroyed.wav',
|
||||
"detain" = 'sound/vox/detain.wav',
|
||||
"detected" = 'sound/vox/detected.wav',
|
||||
"detonation" = 'sound/vox/detonation.wav',
|
||||
"device" = 'sound/vox/device.wav',
|
||||
"did" = 'sound/vox/did.wav',
|
||||
"die" = 'sound/vox/die.wav',
|
||||
"dimensional" = 'sound/vox/dimensional.wav',
|
||||
"dirt" = 'sound/vox/dirt.wav',
|
||||
"disengaged" = 'sound/vox/disengaged.wav',
|
||||
"dish" = 'sound/vox/dish.wav',
|
||||
"disposal" = 'sound/vox/disposal.wav',
|
||||
"distance" = 'sound/vox/distance.wav',
|
||||
"distortion" = 'sound/vox/distortion.wav',
|
||||
"do" = 'sound/vox/do.wav',
|
||||
"doctor" = 'sound/vox/doctor.wav',
|
||||
"doop" = 'sound/vox/doop.wav',
|
||||
"door" = 'sound/vox/door.wav',
|
||||
"down" = 'sound/vox/down.wav',
|
||||
"dual" = 'sound/vox/dual.wav',
|
||||
"duct" = 'sound/vox/duct.wav',
|
||||
"e" = 'sound/vox/e.wav',
|
||||
"east" = 'sound/vox/east.wav',
|
||||
"echo" = 'sound/vox/echo.wav',
|
||||
"ed" = 'sound/vox/ed.wav',
|
||||
"effect" = 'sound/vox/effect.wav',
|
||||
"egress" = 'sound/vox/egress.wav',
|
||||
"eight" = 'sound/vox/eight.wav',
|
||||
"eighteen" = 'sound/vox/eighteen.wav',
|
||||
"eighty" = 'sound/vox/eighty.wav',
|
||||
"electric" = 'sound/vox/electric.wav',
|
||||
"electromagnetic" = 'sound/vox/electromagnetic.wav',
|
||||
"elevator" = 'sound/vox/elevator.wav',
|
||||
"eleven" = 'sound/vox/eleven.wav',
|
||||
"eliminate" = 'sound/vox/eliminate.wav',
|
||||
"emergency" = 'sound/vox/emergency.wav',
|
||||
"energy" = 'sound/vox/energy.wav',
|
||||
"engage" = 'sound/vox/engage.wav',
|
||||
"engaged" = 'sound/vox/engaged.wav',
|
||||
"engine" = 'sound/vox/engine.wav',
|
||||
"enter" = 'sound/vox/enter.wav',
|
||||
"entry" = 'sound/vox/entry.wav',
|
||||
"environment" = 'sound/vox/environment.wav',
|
||||
"error" = 'sound/vox/error.wav',
|
||||
"escape" = 'sound/vox/escape.wav',
|
||||
"evacuate" = 'sound/vox/evacuate.wav',
|
||||
"exchange" = 'sound/vox/exchange.wav',
|
||||
"exit" = 'sound/vox/exit.wav',
|
||||
"expect" = 'sound/vox/expect.wav',
|
||||
"experiment" = 'sound/vox/experiment.wav',
|
||||
"experimental" = 'sound/vox/experimental.wav',
|
||||
"explode" = 'sound/vox/explode.wav',
|
||||
"explosion" = 'sound/vox/explosion.wav',
|
||||
"exposure" = 'sound/vox/exposure.wav',
|
||||
"exterminate" = 'sound/vox/exterminate.wav',
|
||||
"extinguish" = 'sound/vox/extinguish.wav',
|
||||
"extinguisher" = 'sound/vox/extinguisher.wav',
|
||||
"extreme" = 'sound/vox/extreme.wav',
|
||||
"f" = 'sound/vox/f.wav',
|
||||
"facility" = 'sound/vox/facility.wav',
|
||||
"fahrenheit" = 'sound/vox/fahrenheit.wav',
|
||||
"failed" = 'sound/vox/failed.wav',
|
||||
"failure" = 'sound/vox/failure.wav',
|
||||
"farthest" = 'sound/vox/farthest.wav',
|
||||
"fast" = 'sound/vox/fast.wav',
|
||||
"feet" = 'sound/vox/feet.wav',
|
||||
"field" = 'sound/vox/field.wav',
|
||||
"fifteen" = 'sound/vox/fifteen.wav',
|
||||
"fifth" = 'sound/vox/fifth.wav',
|
||||
"fifty" = 'sound/vox/fifty.wav',
|
||||
"final" = 'sound/vox/final.wav',
|
||||
"fine" = 'sound/vox/fine.wav',
|
||||
"fire" = 'sound/vox/fire.wav',
|
||||
"first" = 'sound/vox/first.wav',
|
||||
"five" = 'sound/vox/five.wav',
|
||||
"flooding" = 'sound/vox/flooding.wav',
|
||||
"floor" = 'sound/vox/floor.wav',
|
||||
"fool" = 'sound/vox/fool.wav',
|
||||
"for" = 'sound/vox/for.wav',
|
||||
"forbidden" = 'sound/vox/forbidden.wav',
|
||||
"force" = 'sound/vox/force.wav',
|
||||
"forms" = 'sound/vox/forms.wav',
|
||||
"found" = 'sound/vox/found.wav',
|
||||
"four" = 'sound/vox/four.wav',
|
||||
"fourteen" = 'sound/vox/fourteen.wav',
|
||||
"fourth" = 'sound/vox/fourth.wav',
|
||||
"fourty" = 'sound/vox/fourty.wav',
|
||||
"foxtrot" = 'sound/vox/foxtrot.wav',
|
||||
"freeman" = 'sound/vox/freeman.wav',
|
||||
"freezer" = 'sound/vox/freezer.wav',
|
||||
"from" = 'sound/vox/from.wav',
|
||||
"front" = 'sound/vox/front.wav',
|
||||
"fuel" = 'sound/vox/fuel.wav',
|
||||
"g" = 'sound/vox/g.wav',
|
||||
"get" = 'sound/vox/get.wav',
|
||||
"go" = 'sound/vox/go.wav',
|
||||
"going" = 'sound/vox/going.wav',
|
||||
"good" = 'sound/vox/good.wav',
|
||||
"goodbye" = 'sound/vox/goodbye.wav',
|
||||
"gordon" = 'sound/vox/gordon.wav',
|
||||
"got" = 'sound/vox/got.wav',
|
||||
"government" = 'sound/vox/government.wav',
|
||||
"granted" = 'sound/vox/granted.wav',
|
||||
"great" = 'sound/vox/great.wav',
|
||||
"green" = 'sound/vox/green.wav',
|
||||
"grenade" = 'sound/vox/grenade.wav',
|
||||
"guard" = 'sound/vox/guard.wav',
|
||||
"gulf" = 'sound/vox/gulf.wav',
|
||||
"gun" = 'sound/vox/gun.wav',
|
||||
"guthrie" = 'sound/vox/guthrie.wav',
|
||||
"handling" = 'sound/vox/handling.wav',
|
||||
"hangar" = 'sound/vox/hangar.wav',
|
||||
"has" = 'sound/vox/has.wav',
|
||||
"have" = 'sound/vox/have.wav',
|
||||
"hazard" = 'sound/vox/hazard.wav',
|
||||
"head" = 'sound/vox/head.wav',
|
||||
"health" = 'sound/vox/health.wav',
|
||||
"heat" = 'sound/vox/heat.wav',
|
||||
"helicopter" = 'sound/vox/helicopter.wav',
|
||||
"helium" = 'sound/vox/helium.wav',
|
||||
"hello" = 'sound/vox/hello.wav',
|
||||
"help" = 'sound/vox/help.wav',
|
||||
"here" = 'sound/vox/here.wav',
|
||||
"hide" = 'sound/vox/hide.wav',
|
||||
"high" = 'sound/vox/high.wav',
|
||||
"highest" = 'sound/vox/highest.wav',
|
||||
"hit" = 'sound/vox/hit.wav',
|
||||
"hole" = 'sound/vox/hole.wav',
|
||||
"hostile" = 'sound/vox/hostile.wav',
|
||||
"hot" = 'sound/vox/hot.wav',
|
||||
"hotel" = 'sound/vox/hotel.wav',
|
||||
"hour" = 'sound/vox/hour.wav',
|
||||
"hours" = 'sound/vox/hours.wav',
|
||||
"hundred" = 'sound/vox/hundred.wav',
|
||||
"hydro" = 'sound/vox/hydro.wav',
|
||||
"i" = 'sound/vox/i.wav',
|
||||
"idiot" = 'sound/vox/idiot.wav',
|
||||
"illegal" = 'sound/vox/illegal.wav',
|
||||
"immediate" = 'sound/vox/immediate.wav',
|
||||
"immediately" = 'sound/vox/immediately.wav',
|
||||
"in" = 'sound/vox/in.wav',
|
||||
"inches" = 'sound/vox/inches.wav',
|
||||
"india" = 'sound/vox/india.wav',
|
||||
"ing" = 'sound/vox/ing.wav',
|
||||
"inoperative" = 'sound/vox/inoperative.wav',
|
||||
"inside" = 'sound/vox/inside.wav',
|
||||
"inspection" = 'sound/vox/inspection.wav',
|
||||
"inspector" = 'sound/vox/inspector.wav',
|
||||
"interchange" = 'sound/vox/interchange.wav',
|
||||
"intruder" = 'sound/vox/intruder.wav',
|
||||
"invallid" = 'sound/vox/invallid.wav',
|
||||
"invasion" = 'sound/vox/invasion.wav',
|
||||
"is" = 'sound/vox/is.wav',
|
||||
"it" = 'sound/vox/it.wav',
|
||||
"johnson" = 'sound/vox/johnson.wav',
|
||||
"juliet" = 'sound/vox/juliet.wav',
|
||||
"key" = 'sound/vox/key.wav',
|
||||
"kill" = 'sound/vox/kill.wav',
|
||||
"kilo" = 'sound/vox/kilo.wav',
|
||||
"kit" = 'sound/vox/kit.wav',
|
||||
"lab" = 'sound/vox/lab.wav',
|
||||
"lambda" = 'sound/vox/lambda.wav',
|
||||
"laser" = 'sound/vox/laser.wav',
|
||||
"last" = 'sound/vox/last.wav',
|
||||
"launch" = 'sound/vox/launch.wav',
|
||||
"leak" = 'sound/vox/leak.wav',
|
||||
"leave" = 'sound/vox/leave.wav',
|
||||
"left" = 'sound/vox/left.wav',
|
||||
"legal" = 'sound/vox/legal.wav',
|
||||
"level" = 'sound/vox/level.wav',
|
||||
"lever" = 'sound/vox/lever.wav',
|
||||
"lie" = 'sound/vox/lie.wav',
|
||||
"lieutenant" = 'sound/vox/lieutenant.wav',
|
||||
"life" = 'sound/vox/life.wav',
|
||||
"light" = 'sound/vox/light.wav',
|
||||
"lima" = 'sound/vox/lima.wav',
|
||||
"liquid" = 'sound/vox/liquid.wav',
|
||||
"loading" = 'sound/vox/loading.wav',
|
||||
"locate" = 'sound/vox/locate.wav',
|
||||
"located" = 'sound/vox/located.wav',
|
||||
"location" = 'sound/vox/location.wav',
|
||||
"lock" = 'sound/vox/lock.wav',
|
||||
"locked" = 'sound/vox/locked.wav',
|
||||
"locker" = 'sound/vox/locker.wav',
|
||||
"lockout" = 'sound/vox/lockout.wav',
|
||||
"lower" = 'sound/vox/lower.wav',
|
||||
"lowest" = 'sound/vox/lowest.wav',
|
||||
"magnetic" = 'sound/vox/magnetic.wav',
|
||||
"main" = 'sound/vox/main.wav',
|
||||
"maintenance" = 'sound/vox/maintenance.wav',
|
||||
"malfunction" = 'sound/vox/malfunction.wav',
|
||||
"man" = 'sound/vox/man.wav',
|
||||
"mass" = 'sound/vox/mass.wav',
|
||||
"materials" = 'sound/vox/materials.wav',
|
||||
"maximum" = 'sound/vox/maximum.wav',
|
||||
"may" = 'sound/vox/may.wav',
|
||||
"medical" = 'sound/vox/medical.wav',
|
||||
"men" = 'sound/vox/men.wav',
|
||||
"mercy" = 'sound/vox/mercy.wav',
|
||||
"mesa" = 'sound/vox/mesa.wav',
|
||||
"message" = 'sound/vox/message.wav',
|
||||
"meter" = 'sound/vox/meter.wav',
|
||||
"micro" = 'sound/vox/micro.wav',
|
||||
"middle" = 'sound/vox/middle.wav',
|
||||
"mike" = 'sound/vox/mike.wav',
|
||||
"miles" = 'sound/vox/miles.wav',
|
||||
"military" = 'sound/vox/military.wav',
|
||||
"milli" = 'sound/vox/milli.wav',
|
||||
"million" = 'sound/vox/million.wav',
|
||||
"minefield" = 'sound/vox/minefield.wav',
|
||||
"minimum" = 'sound/vox/minimum.wav',
|
||||
"minutes" = 'sound/vox/minutes.wav',
|
||||
"mister" = 'sound/vox/mister.wav',
|
||||
"mode" = 'sound/vox/mode.wav',
|
||||
"motor" = 'sound/vox/motor.wav',
|
||||
"motorpool" = 'sound/vox/motorpool.wav',
|
||||
"move" = 'sound/vox/move.wav',
|
||||
"must" = 'sound/vox/must.wav',
|
||||
"nearest" = 'sound/vox/nearest.wav',
|
||||
"nice" = 'sound/vox/nice.wav',
|
||||
"nine" = 'sound/vox/nine.wav',
|
||||
"nineteen" = 'sound/vox/nineteen.wav',
|
||||
"ninety" = 'sound/vox/ninety.wav',
|
||||
"no" = 'sound/vox/no.wav',
|
||||
"nominal" = 'sound/vox/nominal.wav',
|
||||
"north" = 'sound/vox/north.wav',
|
||||
"not" = 'sound/vox/not.wav',
|
||||
"november" = 'sound/vox/november.wav',
|
||||
"now" = 'sound/vox/now.wav',
|
||||
"number" = 'sound/vox/number.wav',
|
||||
"objective" = 'sound/vox/objective.wav',
|
||||
"observation" = 'sound/vox/observation.wav',
|
||||
"of" = 'sound/vox/of.wav',
|
||||
"officer" = 'sound/vox/officer.wav',
|
||||
"ok" = 'sound/vox/ok.wav',
|
||||
"on" = 'sound/vox/on.wav',
|
||||
"one" = 'sound/vox/one.wav',
|
||||
"open" = 'sound/vox/open.wav',
|
||||
"operating" = 'sound/vox/operating.wav',
|
||||
"operations" = 'sound/vox/operations.wav',
|
||||
"operative" = 'sound/vox/operative.wav',
|
||||
"option" = 'sound/vox/option.wav',
|
||||
"order" = 'sound/vox/order.wav',
|
||||
"organic" = 'sound/vox/organic.wav',
|
||||
"oscar" = 'sound/vox/oscar.wav',
|
||||
"out" = 'sound/vox/out.wav',
|
||||
"outside" = 'sound/vox/outside.wav',
|
||||
"over" = 'sound/vox/over.wav',
|
||||
"overload" = 'sound/vox/overload.wav',
|
||||
"override" = 'sound/vox/override.wav',
|
||||
"pacify" = 'sound/vox/pacify.wav',
|
||||
"pain" = 'sound/vox/pain.wav',
|
||||
"pal" = 'sound/vox/pal.wav',
|
||||
"panel" = 'sound/vox/panel.wav',
|
||||
"percent" = 'sound/vox/percent.wav',
|
||||
"perimeter" = 'sound/vox/perimeter.wav',
|
||||
"permitted" = 'sound/vox/permitted.wav',
|
||||
"personnel" = 'sound/vox/personnel.wav',
|
||||
"pipe" = 'sound/vox/pipe.wav',
|
||||
"plant" = 'sound/vox/plant.wav',
|
||||
"platform" = 'sound/vox/platform.wav',
|
||||
"please" = 'sound/vox/please.wav',
|
||||
"point" = 'sound/vox/point.wav',
|
||||
"portal" = 'sound/vox/portal.wav',
|
||||
"power" = 'sound/vox/power.wav',
|
||||
"presence" = 'sound/vox/presence.wav',
|
||||
"press" = 'sound/vox/press.wav',
|
||||
"primary" = 'sound/vox/primary.wav',
|
||||
"proceed" = 'sound/vox/proceed.wav',
|
||||
"processing" = 'sound/vox/processing.wav',
|
||||
"progress" = 'sound/vox/progress.wav',
|
||||
"proper" = 'sound/vox/proper.wav',
|
||||
"propulsion" = 'sound/vox/propulsion.wav',
|
||||
"prosecute" = 'sound/vox/prosecute.wav',
|
||||
"protective" = 'sound/vox/protective.wav',
|
||||
"push" = 'sound/vox/push.wav',
|
||||
"quantum" = 'sound/vox/quantum.wav',
|
||||
"quebec" = 'sound/vox/quebec.wav',
|
||||
"question" = 'sound/vox/question.wav',
|
||||
"questioning" = 'sound/vox/questioning.wav',
|
||||
"quick" = 'sound/vox/quick.wav',
|
||||
"quit" = 'sound/vox/quit.wav',
|
||||
"radiation" = 'sound/vox/radiation.wav',
|
||||
"radioactive" = 'sound/vox/radioactive.wav',
|
||||
"rads" = 'sound/vox/rads.wav',
|
||||
"rapid" = 'sound/vox/rapid.wav',
|
||||
"reach" = 'sound/vox/reach.wav',
|
||||
"reached" = 'sound/vox/reached.wav',
|
||||
"reactor" = 'sound/vox/reactor.wav',
|
||||
"red" = 'sound/vox/red.wav',
|
||||
"relay" = 'sound/vox/relay.wav',
|
||||
"released" = 'sound/vox/released.wav',
|
||||
"remaining" = 'sound/vox/remaining.wav',
|
||||
"renegade" = 'sound/vox/renegade.wav',
|
||||
"repair" = 'sound/vox/repair.wav',
|
||||
"report" = 'sound/vox/report.wav',
|
||||
"reports" = 'sound/vox/reports.wav',
|
||||
"required" = 'sound/vox/required.wav',
|
||||
"research" = 'sound/vox/research.wav',
|
||||
"resevoir" = 'sound/vox/resevoir.wav',
|
||||
"resistance" = 'sound/vox/resistance.wav',
|
||||
"right" = 'sound/vox/right.wav',
|
||||
"rocket" = 'sound/vox/rocket.wav',
|
||||
"roger" = 'sound/vox/roger.wav',
|
||||
"romeo" = 'sound/vox/romeo.wav',
|
||||
"room" = 'sound/vox/room.wav',
|
||||
"round" = 'sound/vox/round.wav',
|
||||
"run" = 'sound/vox/run.wav',
|
||||
"safe" = 'sound/vox/safe.wav',
|
||||
"safety" = 'sound/vox/safety.wav',
|
||||
"sargeant" = 'sound/vox/sargeant.wav',
|
||||
"satellite" = 'sound/vox/satellite.wav',
|
||||
"save" = 'sound/vox/save.wav',
|
||||
"science" = 'sound/vox/science.wav',
|
||||
"scream" = 'sound/vox/scream.wav',
|
||||
"screen" = 'sound/vox/screen.wav',
|
||||
"search" = 'sound/vox/search.wav',
|
||||
"second" = 'sound/vox/second.wav',
|
||||
"secondary" = 'sound/vox/secondary.wav',
|
||||
"seconds" = 'sound/vox/seconds.wav',
|
||||
"sector" = 'sound/vox/sector.wav',
|
||||
"secure" = 'sound/vox/secure.wav',
|
||||
"secured" = 'sound/vox/secured.wav',
|
||||
"security" = 'sound/vox/security.wav',
|
||||
"select" = 'sound/vox/select.wav',
|
||||
"selected" = 'sound/vox/selected.wav',
|
||||
"service" = 'sound/vox/service.wav',
|
||||
"seven" = 'sound/vox/seven.wav',
|
||||
"seventeen" = 'sound/vox/seventeen.wav',
|
||||
"seventy" = 'sound/vox/seventy.wav',
|
||||
"severe" = 'sound/vox/severe.wav',
|
||||
"sewage" = 'sound/vox/sewage.wav',
|
||||
"sewer" = 'sound/vox/sewer.wav',
|
||||
"shield" = 'sound/vox/shield.wav',
|
||||
"shipment" = 'sound/vox/shipment.wav',
|
||||
"shock" = 'sound/vox/shock.wav',
|
||||
"shoot" = 'sound/vox/shoot.wav',
|
||||
"shower" = 'sound/vox/shower.wav',
|
||||
"shut" = 'sound/vox/shut.wav',
|
||||
"side" = 'sound/vox/side.wav',
|
||||
"sierra" = 'sound/vox/sierra.wav',
|
||||
"sight" = 'sound/vox/sight.wav',
|
||||
"silo" = 'sound/vox/silo.wav',
|
||||
"six" = 'sound/vox/six.wav',
|
||||
"sixteen" = 'sound/vox/sixteen.wav',
|
||||
"sixty" = 'sound/vox/sixty.wav',
|
||||
"slime" = 'sound/vox/slime.wav',
|
||||
"slow" = 'sound/vox/slow.wav',
|
||||
"soldier" = 'sound/vox/soldier.wav',
|
||||
"some" = 'sound/vox/some.wav',
|
||||
"someone" = 'sound/vox/someone.wav',
|
||||
"something" = 'sound/vox/something.wav',
|
||||
"son" = 'sound/vox/son.wav',
|
||||
"sorry" = 'sound/vox/sorry.wav',
|
||||
"south" = 'sound/vox/south.wav',
|
||||
"squad" = 'sound/vox/squad.wav',
|
||||
"square" = 'sound/vox/square.wav',
|
||||
"stairway" = 'sound/vox/stairway.wav',
|
||||
"status" = 'sound/vox/status.wav',
|
||||
"sterile" = 'sound/vox/sterile.wav',
|
||||
"sterilization" = 'sound/vox/sterilization.wav',
|
||||
"storage" = 'sound/vox/storage.wav',
|
||||
"sub" = 'sound/vox/sub.wav',
|
||||
"subsurface" = 'sound/vox/subsurface.wav',
|
||||
"sudden" = 'sound/vox/sudden.wav',
|
||||
"suit" = 'sound/vox/suit.wav',
|
||||
"superconducting" = 'sound/vox/superconducting.wav',
|
||||
"supercooled" = 'sound/vox/supercooled.wav',
|
||||
"supply" = 'sound/vox/supply.wav',
|
||||
"surface" = 'sound/vox/surface.wav',
|
||||
"surrender" = 'sound/vox/surrender.wav',
|
||||
"surround" = 'sound/vox/surround.wav',
|
||||
"surrounded" = 'sound/vox/surrounded.wav',
|
||||
"switch" = 'sound/vox/switch.wav',
|
||||
"system" = 'sound/vox/system.wav',
|
||||
"systems" = 'sound/vox/systems.wav',
|
||||
"tactical" = 'sound/vox/tactical.wav',
|
||||
"take" = 'sound/vox/take.wav',
|
||||
"talk" = 'sound/vox/talk.wav',
|
||||
"tango" = 'sound/vox/tango.wav',
|
||||
"tank" = 'sound/vox/tank.wav',
|
||||
"target" = 'sound/vox/target.wav',
|
||||
"team" = 'sound/vox/team.wav',
|
||||
"temperature" = 'sound/vox/temperature.wav',
|
||||
"temporal" = 'sound/vox/temporal.wav',
|
||||
"ten" = 'sound/vox/ten.wav',
|
||||
"terminal" = 'sound/vox/terminal.wav',
|
||||
"terminated" = 'sound/vox/terminated.wav',
|
||||
"termination" = 'sound/vox/termination.wav',
|
||||
"test" = 'sound/vox/test.wav',
|
||||
"that" = 'sound/vox/that.wav',
|
||||
"the" = 'sound/vox/the.wav',
|
||||
"then" = 'sound/vox/then.wav',
|
||||
"there" = 'sound/vox/there.wav',
|
||||
"third" = 'sound/vox/third.wav',
|
||||
"thirteen" = 'sound/vox/thirteen.wav',
|
||||
"thirty" = 'sound/vox/thirty.wav',
|
||||
"this" = 'sound/vox/this.wav',
|
||||
"those" = 'sound/vox/those.wav',
|
||||
"thousand" = 'sound/vox/thousand.wav',
|
||||
"threat" = 'sound/vox/threat.wav',
|
||||
"three" = 'sound/vox/three.wav',
|
||||
"through" = 'sound/vox/through.wav',
|
||||
"time" = 'sound/vox/time.wav',
|
||||
"to" = 'sound/vox/to.wav',
|
||||
"top" = 'sound/vox/top.wav',
|
||||
"topside" = 'sound/vox/topside.wav',
|
||||
"touch" = 'sound/vox/touch.wav',
|
||||
"towards" = 'sound/vox/towards.wav',
|
||||
"track" = 'sound/vox/track.wav',
|
||||
"train" = 'sound/vox/train.wav',
|
||||
"transportation" = 'sound/vox/transportation.wav',
|
||||
"truck" = 'sound/vox/truck.wav',
|
||||
"tunnel" = 'sound/vox/tunnel.wav',
|
||||
"turn" = 'sound/vox/turn.wav',
|
||||
"turret" = 'sound/vox/turret.wav',
|
||||
"twelve" = 'sound/vox/twelve.wav',
|
||||
"twenty" = 'sound/vox/twenty.wav',
|
||||
"two" = 'sound/vox/two.wav',
|
||||
"unauthorized" = 'sound/vox/unauthorized.wav',
|
||||
"under" = 'sound/vox/under.wav',
|
||||
"uniform" = 'sound/vox/uniform.wav',
|
||||
"unlocked" = 'sound/vox/unlocked.wav',
|
||||
"until" = 'sound/vox/until.wav',
|
||||
"up" = 'sound/vox/up.wav',
|
||||
"upper" = 'sound/vox/upper.wav',
|
||||
"uranium" = 'sound/vox/uranium.wav',
|
||||
"us" = 'sound/vox/us.wav',
|
||||
"usa" = 'sound/vox/usa.wav',
|
||||
"use" = 'sound/vox/use.wav',
|
||||
"used" = 'sound/vox/used.wav',
|
||||
"user" = 'sound/vox/user.wav',
|
||||
"vacate" = 'sound/vox/vacate.wav',
|
||||
"valid" = 'sound/vox/valid.wav',
|
||||
"vapor" = 'sound/vox/vapor.wav',
|
||||
"vent" = 'sound/vox/vent.wav',
|
||||
"ventillation" = 'sound/vox/ventillation.wav',
|
||||
"victor" = 'sound/vox/victor.wav',
|
||||
"violated" = 'sound/vox/violated.wav',
|
||||
"violation" = 'sound/vox/violation.wav',
|
||||
"voltage" = 'sound/vox/voltage.wav',
|
||||
"vox_login" = 'sound/vox/vox_login.wav',
|
||||
"walk" = 'sound/vox/walk.wav',
|
||||
"wall" = 'sound/vox/wall.wav',
|
||||
"want" = 'sound/vox/want.wav',
|
||||
"wanted" = 'sound/vox/wanted.wav',
|
||||
"warm" = 'sound/vox/warm.wav',
|
||||
"warn" = 'sound/vox/warn.wav',
|
||||
"warning" = 'sound/vox/warning.wav',
|
||||
"waste" = 'sound/vox/waste.wav',
|
||||
"water" = 'sound/vox/water.wav',
|
||||
"we" = 'sound/vox/we.wav',
|
||||
"weapon" = 'sound/vox/weapon.wav',
|
||||
"west" = 'sound/vox/west.wav',
|
||||
"whiskey" = 'sound/vox/whiskey.wav',
|
||||
"white" = 'sound/vox/white.wav',
|
||||
"wilco" = 'sound/vox/wilco.wav',
|
||||
"will" = 'sound/vox/will.wav',
|
||||
"with" = 'sound/vox/with.wav',
|
||||
"without" = 'sound/vox/without.wav',
|
||||
"woop" = 'sound/vox/woop.wav',
|
||||
"xeno" = 'sound/vox/xeno.wav',
|
||||
"yankee" = 'sound/vox/yankee.wav',
|
||||
"yards" = 'sound/vox/yards.wav',
|
||||
"year" = 'sound/vox/year.wav',
|
||||
"yellow" = 'sound/vox/yellow.wav',
|
||||
"yes" = 'sound/vox/yes.wav',
|
||||
"you" = 'sound/vox/you.wav',
|
||||
"your" = 'sound/vox/your.wav',
|
||||
"yourself" = 'sound/vox/yourself.wav',
|
||||
"zero" = 'sound/vox/zero.wav',
|
||||
"zone" = 'sound/vox/zone.wav',
|
||||
"zulu" = 'sound/vox/zulu.wav')
|
||||
@@ -290,4 +290,4 @@
|
||||
if (cultist == usr) //just to be sure.
|
||||
return
|
||||
cultist.loc = usr.loc
|
||||
usr.visible_message("/red [cultist] appears in a flash of red light as [usr] glows with power")*/
|
||||
usr.visible_message("\red [cultist] appears in a flash of red light as [usr] glows with power")*/
|
||||
@@ -143,7 +143,7 @@
|
||||
icon_state = "statuette"
|
||||
additional_desc = "It depicts a [pick("small","ferocious","wild","pleasing","hulking")] \
|
||||
[pick("alien figure","rodent-like creature","reptilian alien","primate","unidentifiable object")] \
|
||||
[pick("performing unspeakable acts","posing heroically","in a feotal position","cheering","sobbing","making a plaintive gesture","making a rude gesture")]."
|
||||
[pick("performing unspeakable acts","posing heroically","in a fetal position","cheering","sobbing","making a plaintive gesture","making a rude gesture")]."
|
||||
if(5)
|
||||
item_type = "instrument"
|
||||
icon_state = "instrument"
|
||||
|
||||
Reference in New Issue
Block a user