Merge branch 'upMaster' into updates
@@ -66,6 +66,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
|
||||
// If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child)
|
||||
#define FIRE_PRIORITY_SHUTTLES 5
|
||||
#define FIRE_PRIORITY_ORBIT 8
|
||||
#define FIRE_PRIORITY_VOTE 9
|
||||
#define FIRE_PRIORITY_GARBAGE 15
|
||||
#define FIRE_PRIORITY_AIRFLOW 30
|
||||
#define FIRE_PRIORITY_AIR 35
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#define VOTE_RESTART "restart"
|
||||
#define VOTE_GAMEMODE "gamemode"
|
||||
#define VOTE_CREW_TRANSFER "crew_transfer"
|
||||
#define VOTE_ADD_ANTAGONIST "add_antagonist"
|
||||
#define VOTE_CUSTOM "custom"
|
||||
@@ -1,6 +0,0 @@
|
||||
/datum/controller/process/vote/setup()
|
||||
name = "vote"
|
||||
schedule_interval = 10 // every second
|
||||
|
||||
/datum/controller/process/vote/doWork()
|
||||
vote.process()
|
||||
@@ -16,13 +16,15 @@ datum/controller/transfer_controller/Destroy()
|
||||
|
||||
datum/controller/transfer_controller/proc/process()
|
||||
currenttick = currenttick + 1
|
||||
if (round_duration_in_ticks >= shift_last_vote - 2 MINUTES) //VOREStation Edit START
|
||||
//VOREStation Edit START
|
||||
if (round_duration_in_ticks >= shift_last_vote - 2 MINUTES)
|
||||
shift_last_vote = 999999999999 //Setting to a stupidly high number since it'll be not used again.
|
||||
world << "Warning: This upcoming round-extend vote will be your ONLY extend vote. Wrap up your scenes in the next 4 fuckin hours if the round is extended." //YAWN EDIT NIGGA VOREStation Edit
|
||||
if (round_duration_in_ticks >= shift_hard_end - 1 MINUTE)
|
||||
init_shift_change(null, 1)
|
||||
shift_hard_end = timerbuffer + config.vote_autotransfer_interval //If shuttle somehow gets recalled, let's force it to call again next time a vote would occur.
|
||||
timerbuffer = timerbuffer + config.vote_autotransfer_interval //Just to make sure a vote doesn't occur immediately afterwords.
|
||||
else if (round_duration_in_ticks >= timerbuffer - 1 MINUTE) //VOREStation Edit END
|
||||
vote.autotransfer()
|
||||
else if (round_duration_in_ticks >= timerbuffer - 1 MINUTE)
|
||||
SSvote.autotransfer()
|
||||
//VOREStation Edit END
|
||||
timerbuffer = timerbuffer + config.vote_autotransfer_interval
|
||||
|
||||
@@ -1,388 +1,373 @@
|
||||
var/datum/controller/vote/vote = new()
|
||||
|
||||
var/global/list/round_voters = list() // Keeps track of the individuals voting for a given round, for use in forcedrafting.
|
||||
|
||||
#define VOTE_RESTART "restart"
|
||||
#define VOTE_GAMEMODE "gamemode"
|
||||
#define VOTE_CREW_TRANSFER "crew_transfer"
|
||||
#define VOTE_ADD_ANTAGONIST "add_antagonist"
|
||||
#define VOTE_CUSTOM "custom"
|
||||
|
||||
/datum/controller/vote
|
||||
var/initiator = null // Key of the one who started the vote or "the server"
|
||||
var/started_time = null
|
||||
var/time_remaining = 0
|
||||
var/mode = null
|
||||
var/question = null
|
||||
var/list/choices = list()
|
||||
var/list/gamemode_names = list()
|
||||
var/list/voted = list()
|
||||
var/list/current_votes = list()
|
||||
var/list/additional_text = list()
|
||||
|
||||
/datum/controller/vote/New()
|
||||
if(vote != src)
|
||||
if(istype(vote))
|
||||
Recover()
|
||||
qdel(vote)
|
||||
vote = src
|
||||
|
||||
/datum/controller/vote/Destroy()
|
||||
..()
|
||||
// Tell qdel() to Del() this object.
|
||||
return QDEL_HINT_HARDDEL_NOW
|
||||
|
||||
/datum/controller/vote/proc/process() //called by master_controller
|
||||
if(mode)
|
||||
// No more change mode votes after the game has started.
|
||||
if(mode == VOTE_GAMEMODE && ticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
world << "<b>Voting aborted due to game start.</b>"
|
||||
src.reset()
|
||||
return
|
||||
|
||||
// Calculate how much time is remaining by comparing current time, to time of vote start,
|
||||
// plus vote duration
|
||||
time_remaining = round((started_time + config.vote_period - world.time)/10)
|
||||
|
||||
if(time_remaining < 0)
|
||||
result()
|
||||
reset()
|
||||
|
||||
/datum/controller/vote/proc/autotransfer()
|
||||
initiate_vote(VOTE_CREW_TRANSFER, "the server", 1)
|
||||
log_debug("The server has called a crew transfer vote")
|
||||
|
||||
/datum/controller/vote/proc/autogamemode()
|
||||
initiate_vote(VOTE_GAMEMODE, "the server", 1)
|
||||
log_debug("The server has called a gamemode vote")
|
||||
|
||||
/datum/controller/vote/proc/reset()
|
||||
initiator = null
|
||||
time_remaining = 0
|
||||
mode = null
|
||||
question = null
|
||||
choices.Cut()
|
||||
voted.Cut()
|
||||
current_votes.Cut()
|
||||
additional_text.Cut()
|
||||
|
||||
/datum/controller/vote/proc/get_result() // Get the highest number of votes
|
||||
var/greatest_votes = 0
|
||||
var/total_votes = 0
|
||||
|
||||
for(var/option in choices)
|
||||
var/votes = choices[option]
|
||||
total_votes += votes
|
||||
if(votes > greatest_votes)
|
||||
greatest_votes = votes
|
||||
|
||||
if(!config.vote_no_default && choices.len) // Default-vote for everyone who didn't vote
|
||||
var/non_voters = (clients.len - total_votes)
|
||||
if(non_voters > 0)
|
||||
if(mode == VOTE_RESTART)
|
||||
choices["Continue Playing"] += non_voters
|
||||
if(choices["Continue Playing"] >= greatest_votes)
|
||||
greatest_votes = choices["Continue Playing"]
|
||||
else if(mode == VOTE_GAMEMODE)
|
||||
if(master_mode in choices)
|
||||
choices[master_mode] += non_voters
|
||||
if(choices[master_mode] >= greatest_votes)
|
||||
greatest_votes = choices[master_mode]
|
||||
else if(mode == VOTE_CREW_TRANSFER)
|
||||
var/factor = 0.5
|
||||
switch(world.time / (10 * 60)) // minutes
|
||||
if(0 to 60)
|
||||
factor = 0.5
|
||||
if(61 to 120)
|
||||
factor = 0.8
|
||||
if(121 to 240)
|
||||
factor = 1
|
||||
if(241 to 300)
|
||||
factor = 1.2
|
||||
else
|
||||
factor = 1.4
|
||||
choices["Initiate Crew Transfer"] = round(choices["Initiate Crew Transfer"] * factor)
|
||||
world << "<font color='purple'>Crew Transfer Factor: [factor]</font>"
|
||||
greatest_votes = max(choices["Initiate Crew Transfer"], choices["Continue The Round"])
|
||||
|
||||
. = list() // Get all options with that many votes and return them in a list
|
||||
if(greatest_votes)
|
||||
for(var/option in choices)
|
||||
if(choices[option] == greatest_votes)
|
||||
. += option
|
||||
|
||||
/datum/controller/vote/proc/announce_result()
|
||||
var/list/winners = get_result()
|
||||
var/text
|
||||
if(winners.len > 0)
|
||||
if(winners.len > 1)
|
||||
if(mode != VOTE_GAMEMODE || ticker.hide_mode == 0) // Here we are making sure we don't announce potential game modes
|
||||
text = "<b>Vote Tied Between:</b>\n"
|
||||
for(var/option in winners)
|
||||
text += "\t[option]\n"
|
||||
. = pick(winners)
|
||||
|
||||
for(var/key in current_votes)
|
||||
if(choices[current_votes[key]] == .)
|
||||
round_voters += key // Keep track of who voted for the winning round.
|
||||
if(mode != VOTE_GAMEMODE || . == "Extended" || ticker.hide_mode == 0) // Announce Extended gamemode, but not other gamemodes
|
||||
text += "<b>Vote Result: [mode == VOTE_GAMEMODE ? gamemode_names[.] : .]</b>"
|
||||
else
|
||||
text += "<b>The vote has ended.</b>"
|
||||
|
||||
else
|
||||
text += "<b>Vote Result: Inconclusive - No Votes!</b>"
|
||||
if(mode == VOTE_ADD_ANTAGONIST)
|
||||
antag_add_failed = 1
|
||||
log_vote(text)
|
||||
world << "<font color='purple'>[text]</font>"
|
||||
|
||||
/datum/controller/vote/proc/result()
|
||||
. = announce_result()
|
||||
var/restart = 0
|
||||
if(.)
|
||||
switch(mode)
|
||||
if(VOTE_RESTART)
|
||||
if(. == "Restart Round")
|
||||
restart = 1
|
||||
if(VOTE_GAMEMODE)
|
||||
if(master_mode != .)
|
||||
world.save_mode(.)
|
||||
if(ticker && ticker.mode)
|
||||
restart = 1
|
||||
else
|
||||
master_mode = .
|
||||
if(VOTE_CREW_TRANSFER)
|
||||
if(. == "Initiate Crew Transfer")
|
||||
init_shift_change(null, 1)
|
||||
if(VOTE_ADD_ANTAGONIST)
|
||||
if(isnull(.) || . == "None")
|
||||
antag_add_failed = 1
|
||||
else
|
||||
additional_antag_types |= antag_names_to_ids[.]
|
||||
|
||||
if(mode == VOTE_GAMEMODE) //fire this even if the vote fails.
|
||||
if(!round_progressing)
|
||||
round_progressing = 1
|
||||
world << "<font color='red'><b>The round will start soon.</b></font>"
|
||||
|
||||
if(restart)
|
||||
world << "World restarting due to vote..."
|
||||
feedback_set_details("end_error", "restart vote")
|
||||
if(blackbox)
|
||||
blackbox.save_all_data_to_sql()
|
||||
sleep(50)
|
||||
log_game("Rebooting due to restart vote")
|
||||
world.Reboot()
|
||||
|
||||
/datum/controller/vote/proc/submit_vote(var/ckey, var/newVote)
|
||||
if(mode)
|
||||
if(config.vote_no_dead && usr.stat == DEAD && !usr.client.holder)
|
||||
return
|
||||
if(current_votes[ckey])
|
||||
choices[choices[current_votes[ckey]]]--
|
||||
if(newVote && newVote >= 1 && newVote <= choices.len)
|
||||
choices[choices[newVote]]++
|
||||
current_votes[ckey] = newVote
|
||||
else
|
||||
current_votes[ckey] = null
|
||||
|
||||
/datum/controller/vote/proc/initiate_vote(var/vote_type, var/initiator_key, var/automatic = 0)
|
||||
if(!mode)
|
||||
if(started_time != null && !(check_rights(R_ADMIN) || automatic))
|
||||
var/next_allowed_time = (started_time + config.vote_delay)
|
||||
if(next_allowed_time > world.time)
|
||||
return 0
|
||||
|
||||
reset()
|
||||
|
||||
switch(vote_type)
|
||||
if(VOTE_RESTART)
|
||||
choices.Add("Restart Round", "Continue Playing")
|
||||
if(VOTE_GAMEMODE)
|
||||
if(ticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
return 0
|
||||
choices.Add(config.votable_modes)
|
||||
for(var/F in choices)
|
||||
var/datum/game_mode/M = gamemode_cache[F]
|
||||
if(!M)
|
||||
continue
|
||||
gamemode_names[M.config_tag] = capitalize(M.name) //It's ugly to put this here but it works
|
||||
additional_text.Add("<td align = 'center'>[M.required_players]</td>")
|
||||
gamemode_names["secret"] = "Secret"
|
||||
if(VOTE_CREW_TRANSFER)
|
||||
if(!check_rights(R_ADMIN|R_MOD, 0)) // The gods care not for the affairs of the mortals
|
||||
if(get_security_level() == "red" || get_security_level() == "delta")
|
||||
initiator_key << "The current alert status is too high to call for a crew transfer!"
|
||||
return 0
|
||||
if(ticker.current_state <= GAME_STATE_SETTING_UP)
|
||||
initiator_key << "The crew transfer button has been disabled!"
|
||||
return 0
|
||||
question = "End the shift?"
|
||||
choices.Add("Initiate Crew Transfer", "Continue The Round")
|
||||
if(VOTE_ADD_ANTAGONIST)
|
||||
if(!config.allow_extra_antags || ticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
return 0
|
||||
for(var/antag_type in all_antag_types)
|
||||
var/datum/antagonist/antag = all_antag_types[antag_type]
|
||||
if(!(antag.id in additional_antag_types) && antag.is_votable())
|
||||
choices.Add(antag.role_text)
|
||||
choices.Add("None")
|
||||
if(VOTE_CUSTOM)
|
||||
question = sanitizeSafe(input(usr, "What is the vote for?") as text|null)
|
||||
if(!question)
|
||||
return 0
|
||||
for(var/i = 1 to 10)
|
||||
var/option = capitalize(sanitize(input(usr, "Please enter an option or hit cancel to finish") as text|null))
|
||||
if(!option || mode || !usr.client)
|
||||
break
|
||||
choices.Add(option)
|
||||
else
|
||||
return 0
|
||||
|
||||
mode = vote_type
|
||||
initiator = initiator_key
|
||||
started_time = world.time
|
||||
var/text = "[capitalize(mode)] vote started by [initiator]."
|
||||
if(mode == VOTE_CUSTOM)
|
||||
text += "\n[question]"
|
||||
|
||||
log_vote(text)
|
||||
|
||||
world << "<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=\ref[src]'>here</a> to place your votes.\nYou have [config.vote_period / 10] seconds to vote.</font>"
|
||||
if(vote_type == VOTE_CREW_TRANSFER || vote_type == VOTE_GAMEMODE || vote_type == VOTE_CUSTOM)
|
||||
world << sound('sound/misc/notice1.ogg', repeat = 0, wait = 0, volume = 50, channel = 3)
|
||||
|
||||
if(mode == VOTE_GAMEMODE && round_progressing)
|
||||
round_progressing = 0
|
||||
world << "<font color='red'><b>Round start has been delayed.</b></font>"
|
||||
|
||||
time_remaining = round(config.vote_period / 10)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/controller/vote/proc/interface(var/client/C)
|
||||
if(!istype(C))
|
||||
return
|
||||
var/admin = 0
|
||||
if(C.holder)
|
||||
if(C.holder.rights & R_ADMIN)
|
||||
admin = 1
|
||||
|
||||
. = "<html><head><title>Voting Panel</title></head><body>"
|
||||
if(mode)
|
||||
if(question)
|
||||
. += "<h2>Vote: '[question]'</h2>"
|
||||
else
|
||||
. += "<h2>Vote: [capitalize(mode)]</h2>"
|
||||
. += "Time Left: [time_remaining] s<hr>"
|
||||
. += "<table width = '100%'><tr><td align = 'center'><b>Choices</b></td><td align = 'center'><b>Votes</b></td>"
|
||||
if(mode == VOTE_GAMEMODE)
|
||||
.+= "<td align = 'center'><b>Minimum Players</b></td></tr>"
|
||||
|
||||
for(var/i = 1 to choices.len)
|
||||
var/votes = choices[choices[i]]
|
||||
if(!votes)
|
||||
votes = 0
|
||||
. += "<tr>"
|
||||
var/thisVote = (current_votes[C.ckey] == i)
|
||||
if(mode == VOTE_GAMEMODE)
|
||||
. += "<td>[thisVote ? "<b>" : ""]<a href='?src=\ref[src];vote=[i]'>[gamemode_names[choices[i]]]</a>[thisVote ? "</b>" : ""]</td><td align = 'center'>[votes]</td>"
|
||||
else
|
||||
. += "<td>[thisVote ? "<b>" : ""]<a href='?src=\ref[src];vote=[i]'>[choices[i]]</a>[thisVote ? "</b>" : ""]</td><td align = 'center'>[votes]</td>"
|
||||
if (additional_text.len >= i)
|
||||
. += additional_text[i]
|
||||
. += "</tr>"
|
||||
|
||||
. += "<tr><td><a href='?src=\ref[src];vote=unvote'>Unvote</a></td></tr>"
|
||||
|
||||
. += "</table><hr>"
|
||||
if(admin)
|
||||
. += "(<a href='?src=\ref[src];vote=cancel'>Cancel Vote</a>) "
|
||||
else
|
||||
. += "<h2>Start a vote:</h2><hr><ul><li>"
|
||||
if(admin || config.allow_vote_restart)
|
||||
. += "<a href='?src=\ref[src];vote=restart'>Restart</a>"
|
||||
else
|
||||
. += "<font color='grey'>Restart (Disallowed)</font>"
|
||||
. += "</li><li>"
|
||||
|
||||
if(admin || config.allow_vote_restart)
|
||||
. += "<a href='?src=\ref[src];vote=crew_transfer'>Crew Transfer</a>"
|
||||
else
|
||||
. += "<font color='grey'>Crew Transfer (Disallowed)</font>"
|
||||
|
||||
if(admin)
|
||||
. += "\t(<a href='?src=\ref[src];vote=toggle_restart'>[config.allow_vote_restart ? "Allowed" : "Disallowed"]</a>)"
|
||||
. += "</li><li>"
|
||||
|
||||
if(admin || config.allow_vote_mode)
|
||||
. += "<a href='?src=\ref[src];vote=gamemode'>GameMode</a>"
|
||||
else
|
||||
. += "<font color='grey'>GameMode (Disallowed)</font>"
|
||||
|
||||
if(admin)
|
||||
. += "\t(<a href='?src=\ref[src];vote=toggle_gamemode'>[config.allow_vote_mode ? "Allowed" : "Disallowed"]</a>)"
|
||||
. += "</li><li>"
|
||||
|
||||
if(!antag_add_failed && config.allow_extra_antags)
|
||||
. += "<a href='?src=\ref[src];vote=add_antagonist'>Add Antagonist Type</a>"
|
||||
else
|
||||
. += "<font color='grey'>Add Antagonist (Disallowed)</font>"
|
||||
. += "</li>"
|
||||
|
||||
if(admin)
|
||||
. += "<li><a href='?src=\ref[src];vote=custom'>Custom</a></li>"
|
||||
. += "</ul><hr>"
|
||||
|
||||
. += "<a href='?src=\ref[src];vote=close' style='position:absolute;right:50px'>Close</a></body></html>"
|
||||
|
||||
/datum/controller/vote/Topic(href, href_list[])
|
||||
if(!usr || !usr.client)
|
||||
return
|
||||
switch(href_list["vote"])
|
||||
if("close")
|
||||
usr << browse(null, "window=vote")
|
||||
return
|
||||
|
||||
if("cancel")
|
||||
if(usr.client.holder)
|
||||
reset()
|
||||
if("toggle_restart")
|
||||
if(usr.client.holder)
|
||||
config.allow_vote_restart = !config.allow_vote_restart
|
||||
if("toggle_gamemode")
|
||||
if(usr.client.holder)
|
||||
config.allow_vote_mode = !config.allow_vote_mode
|
||||
|
||||
if(VOTE_RESTART)
|
||||
if(config.allow_vote_restart || usr.client.holder)
|
||||
initiate_vote(VOTE_RESTART, usr.key)
|
||||
if(VOTE_GAMEMODE)
|
||||
if(config.allow_vote_mode || usr.client.holder)
|
||||
initiate_vote(VOTE_GAMEMODE, usr.key)
|
||||
if(VOTE_CREW_TRANSFER)
|
||||
if(config.allow_vote_restart || usr.client.holder)
|
||||
initiate_vote(VOTE_CREW_TRANSFER, usr.key)
|
||||
if(VOTE_ADD_ANTAGONIST)
|
||||
if(config.allow_extra_antags || usr.client.holder)
|
||||
initiate_vote(VOTE_ADD_ANTAGONIST, usr.key)
|
||||
if(VOTE_CUSTOM)
|
||||
if(usr.client.holder)
|
||||
initiate_vote(VOTE_CUSTOM, usr.key)
|
||||
|
||||
if("unvote")
|
||||
submit_vote(usr.ckey, null)
|
||||
|
||||
else
|
||||
var/t = round(text2num(href_list["vote"]))
|
||||
if(t) // It starts from 1, so there's no problem
|
||||
submit_vote(usr.ckey, t)
|
||||
usr.client.vote()
|
||||
|
||||
/client/verb/vote()
|
||||
set category = "OOC"
|
||||
set name = "Vote"
|
||||
|
||||
if(vote)
|
||||
src << browse(vote.interface(src), "window=vote;size=500x[300 + vote.choices.len * 25]")
|
||||
SUBSYSTEM_DEF(vote)
|
||||
name = "Vote"
|
||||
wait = 10
|
||||
priority = FIRE_PRIORITY_VOTE
|
||||
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
|
||||
flags = SS_KEEP_TIMING | SS_NO_INIT
|
||||
var/list/round_voters = list()
|
||||
|
||||
//Current vote
|
||||
var/initiator
|
||||
var/started_time
|
||||
var/time_remaining
|
||||
var/duration
|
||||
var/mode
|
||||
var/question
|
||||
var/list/choices = list()
|
||||
var/list/gamemode_names = list()
|
||||
var/list/voted = list()
|
||||
var/list/current_votes = list()
|
||||
var/list/additional_text = list()
|
||||
|
||||
/datum/controller/subsystem/vote/fire(resumed)
|
||||
if(mode)
|
||||
time_remaining = round((started_time + duration - world.time)/10)
|
||||
if(mode == VOTE_GAMEMODE && ticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
to_chat(world, "<b>Gamemode vote aborted: Game has alread ystarted.</b>")
|
||||
reset()
|
||||
return
|
||||
if(time_remaining <= 0)
|
||||
result()
|
||||
reset()
|
||||
|
||||
/datum/controller/subsystem/vote/proc/autotransfer()
|
||||
initiate_vote(VOTE_CREW_TRANSFER, "the server", 1)
|
||||
log_debug("The server has called a crew transfer vote.")
|
||||
|
||||
/datum/controller/subsystem/vote/proc/autogamemode()
|
||||
initiate_vote(VOTE_GAMEMODE, "the server", 1)
|
||||
log_debug("The server has called a gamemode vote.")
|
||||
|
||||
/datum/controller/subsystem/vote/proc/reset()
|
||||
initiator = null
|
||||
started_time = null
|
||||
duration = null
|
||||
time_remaining = null
|
||||
mode = null
|
||||
question = null
|
||||
choices.Cut()
|
||||
voted.Cut()
|
||||
current_votes.Cut()
|
||||
additional_text.Cut()
|
||||
|
||||
/datum/controller/subsystem/vote/proc/get_result() // Get the highest number of votes
|
||||
var/greatest_votes = 0
|
||||
var/total_votes = 0
|
||||
|
||||
for(var/option in choices)
|
||||
var/votes = choices[option]
|
||||
total_votes += votes
|
||||
if(votes > greatest_votes)
|
||||
greatest_votes = votes
|
||||
|
||||
if(!config.vote_no_default && choices.len) // Default-vote for everyone who didn't vote
|
||||
var/non_voters = (clients.len - total_votes)
|
||||
if(non_voters > 0)
|
||||
if(mode == VOTE_RESTART)
|
||||
choices["Continue Playing"] += non_voters
|
||||
if(choices["Continue Playing"] >= greatest_votes)
|
||||
greatest_votes = choices["Continue Playing"]
|
||||
else if(mode == VOTE_GAMEMODE)
|
||||
if(master_mode in choices)
|
||||
choices[master_mode] += non_voters
|
||||
if(choices[master_mode] >= greatest_votes)
|
||||
greatest_votes = choices[master_mode]
|
||||
else if(mode == VOTE_CREW_TRANSFER)
|
||||
var/factor = 0.5
|
||||
switch(world.time / (10 * 60)) // minutes
|
||||
if(0 to 60)
|
||||
factor = 0.5
|
||||
if(61 to 120)
|
||||
factor = 0.8
|
||||
if(121 to 240)
|
||||
factor = 1
|
||||
if(241 to 300)
|
||||
factor = 1.2
|
||||
else
|
||||
factor = 1.4
|
||||
choices["Initiate Crew Transfer"] = round(choices["Initiate Crew Transfer"] * factor)
|
||||
world << "<font color='purple'>Crew Transfer Factor: [factor]</font>"
|
||||
greatest_votes = max(choices["Initiate Crew Transfer"], choices["Continue The Round"])
|
||||
|
||||
. = list() // Get all options with that many votes and return them in a list
|
||||
if(greatest_votes)
|
||||
for(var/option in choices)
|
||||
if(choices[option] == greatest_votes)
|
||||
. += option
|
||||
|
||||
/datum/controller/subsystem/vote/proc/announce_result()
|
||||
var/list/winners = get_result()
|
||||
var/text
|
||||
if(winners.len > 0)
|
||||
if(winners.len > 1)
|
||||
if(mode != VOTE_GAMEMODE || ticker.hide_mode == 0) // Here we are making sure we don't announce potential game modes
|
||||
text = "<b>Vote Tied Between:</b>\n"
|
||||
for(var/option in winners)
|
||||
text += "\t[option]\n"
|
||||
. = pick(winners)
|
||||
|
||||
for(var/key in current_votes)
|
||||
if(choices[current_votes[key]] == .)
|
||||
round_voters += key // Keep track of who voted for the winning round.
|
||||
if(mode != VOTE_GAMEMODE || . == "Extended" || ticker.hide_mode == 0) // Announce Extended gamemode, but not other gamemodes
|
||||
text += "<b>Vote Result: [mode == VOTE_GAMEMODE ? gamemode_names[.] : .]</b>"
|
||||
else
|
||||
text += "<b>The vote has ended.</b>"
|
||||
|
||||
else
|
||||
text += "<b>Vote Result: Inconclusive - No Votes!</b>"
|
||||
if(mode == VOTE_ADD_ANTAGONIST)
|
||||
antag_add_failed = 1
|
||||
log_vote(text)
|
||||
to_chat(world, "<font color='purple'>[text]</font>")
|
||||
|
||||
/datum/controller/subsystem/vote/proc/result()
|
||||
. = announce_result()
|
||||
var/restart = 0
|
||||
if(.)
|
||||
switch(mode)
|
||||
if(VOTE_RESTART)
|
||||
if(. == "Restart Round")
|
||||
restart = 1
|
||||
if(VOTE_GAMEMODE)
|
||||
if(master_mode != .)
|
||||
world.save_mode(.)
|
||||
if(ticker && ticker.mode)
|
||||
restart = 1
|
||||
else
|
||||
master_mode = .
|
||||
if(VOTE_CREW_TRANSFER)
|
||||
if(. == "Initiate Crew Transfer")
|
||||
init_shift_change(null, 1)
|
||||
if(VOTE_ADD_ANTAGONIST)
|
||||
if(isnull(.) || . == "None")
|
||||
antag_add_failed = 1
|
||||
else
|
||||
additional_antag_types |= antag_names_to_ids[.]
|
||||
|
||||
if(mode == VOTE_GAMEMODE) //fire this even if the vote fails.
|
||||
if(!round_progressing)
|
||||
round_progressing = 1
|
||||
world << "<font color='red'><b>The round will start soon.</b></font>"
|
||||
|
||||
if(restart)
|
||||
world << "World restarting due to vote..."
|
||||
feedback_set_details("end_error", "restart vote")
|
||||
if(blackbox)
|
||||
blackbox.save_all_data_to_sql()
|
||||
sleep(50)
|
||||
log_game("Rebooting due to restart vote")
|
||||
world.Reboot()
|
||||
|
||||
/datum/controller/subsystem/vote/proc/submit_vote(ckey, newVote)
|
||||
if(mode)
|
||||
if(config.vote_no_dead && usr.stat == DEAD && !usr.client.holder)
|
||||
return
|
||||
if(current_votes[ckey])
|
||||
choices[choices[current_votes[ckey]]]--
|
||||
if(newVote && newVote >= 1 && newVote <= choices.len)
|
||||
choices[choices[newVote]]++
|
||||
current_votes[ckey] = newVote
|
||||
else
|
||||
current_votes[ckey] = null
|
||||
|
||||
/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, automatic = FALSE, time = config.vote_period)
|
||||
if(!mode)
|
||||
if(started_time != null && !(check_rights(R_ADMIN) || automatic))
|
||||
var/next_allowed_time = (started_time + config.vote_delay)
|
||||
if(next_allowed_time > world.time)
|
||||
return 0
|
||||
|
||||
reset()
|
||||
|
||||
switch(vote_type)
|
||||
if(VOTE_RESTART)
|
||||
choices.Add("Restart Round", "Continue Playing")
|
||||
if(VOTE_GAMEMODE)
|
||||
if(ticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
return 0
|
||||
choices.Add(config.votable_modes)
|
||||
for(var/F in choices)
|
||||
var/datum/game_mode/M = gamemode_cache[F]
|
||||
if(!M)
|
||||
continue
|
||||
gamemode_names[M.config_tag] = capitalize(M.name) //It's ugly to put this here but it works
|
||||
additional_text.Add("<td align = 'center'>[M.required_players]</td>")
|
||||
gamemode_names["secret"] = "Secret"
|
||||
if(VOTE_CREW_TRANSFER)
|
||||
if(!check_rights(R_ADMIN|R_MOD, 0)) // The gods care not for the affairs of the mortals
|
||||
if(get_security_level() == "red" || get_security_level() == "delta")
|
||||
initiator_key << "The current alert status is too high to call for a crew transfer!"
|
||||
return 0
|
||||
if(ticker.current_state <= GAME_STATE_SETTING_UP)
|
||||
initiator_key << "The crew transfer button has been disabled!"
|
||||
return 0
|
||||
question = "End the shift?"
|
||||
choices.Add("Initiate Crew Transfer", "Continue The Round")
|
||||
if(VOTE_ADD_ANTAGONIST)
|
||||
if(!config.allow_extra_antags || ticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
return 0
|
||||
for(var/antag_type in all_antag_types)
|
||||
var/datum/antagonist/antag = all_antag_types[antag_type]
|
||||
if(!(antag.id in additional_antag_types) && antag.is_votable())
|
||||
choices.Add(antag.role_text)
|
||||
choices.Add("None")
|
||||
if(VOTE_CUSTOM)
|
||||
question = sanitizeSafe(input(usr, "What is the vote for?") as text|null)
|
||||
if(!question)
|
||||
return 0
|
||||
for(var/i = 1 to 10)
|
||||
var/option = capitalize(sanitize(input(usr, "Please enter an option or hit cancel to finish") as text|null))
|
||||
if(!option || mode || !usr.client)
|
||||
break
|
||||
choices.Add(option)
|
||||
else
|
||||
return 0
|
||||
|
||||
mode = vote_type
|
||||
initiator = initiator_key
|
||||
started_time = world.time
|
||||
duration = time
|
||||
var/text = "[capitalize(mode)] vote started by [initiator]."
|
||||
if(mode == VOTE_CUSTOM)
|
||||
text += "\n[question]"
|
||||
|
||||
log_vote(text)
|
||||
|
||||
world << "<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=\ref[src]'>here</a> to place your votes.\nYou have [config.vote_period / 10] seconds to vote.</font>"
|
||||
if(vote_type == VOTE_CREW_TRANSFER || vote_type == VOTE_GAMEMODE || vote_type == VOTE_CUSTOM)
|
||||
world << sound('sound/ambience/alarm4.ogg', repeat = 0, wait = 0, volume = 50, channel = 3)
|
||||
|
||||
if(mode == VOTE_GAMEMODE && round_progressing)
|
||||
round_progressing = 0
|
||||
world << "<font color='red'><b>Round start has been delayed.</b></font>"
|
||||
|
||||
time_remaining = round(config.vote_period / 10)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/controller/subsystem/vote/proc/interface(var/client/C)
|
||||
if(!istype(C))
|
||||
return
|
||||
var/admin = FALSE
|
||||
if(C.holder)
|
||||
if(C.holder.rights & R_ADMIN)
|
||||
admin = TRUE
|
||||
|
||||
. = "<html><head><title>Voting Panel</title></head><body>"
|
||||
if(mode)
|
||||
if(question)
|
||||
. += "<h2>Vote: '[question]'</h2>"
|
||||
else
|
||||
. += "<h2>Vote: [capitalize(mode)]</h2>"
|
||||
. += "Time Left: [time_remaining] s<hr>"
|
||||
. += "<table width = '100%'><tr><td align = 'center'><b>Choices</b></td><td align = 'center'><b>Votes</b></td>"
|
||||
if(mode == VOTE_GAMEMODE)
|
||||
.+= "<td align = 'center'><b>Minimum Players</b></td></tr>"
|
||||
|
||||
for(var/i = 1 to choices.len)
|
||||
var/votes = choices[choices[i]]
|
||||
if(!votes)
|
||||
votes = 0
|
||||
. += "<tr>"
|
||||
var/thisVote = (current_votes[C.ckey] == i)
|
||||
if(mode == VOTE_GAMEMODE)
|
||||
. += "<td>[thisVote ? "<b>" : ""]<a href='?src=\ref[src];vote=[i]'>[gamemode_names[choices[i]]]</a>[thisVote ? "</b>" : ""]</td><td align = 'center'>[votes]</td>"
|
||||
else
|
||||
. += "<td>[thisVote ? "<b>" : ""]<a href='?src=\ref[src];vote=[i]'>[choices[i]]</a>[thisVote ? "</b>" : ""]</td><td align = 'center'>[votes]</td>"
|
||||
if (additional_text.len >= i)
|
||||
. += additional_text[i]
|
||||
. += "</tr>"
|
||||
|
||||
. += "<tr><td><a href='?src=\ref[src];vote=unvote'>Unvote</a></td></tr>"
|
||||
|
||||
. += "</table><hr>"
|
||||
if(admin)
|
||||
. += "(<a href='?src=\ref[src];vote=cancel'>Cancel Vote</a>) "
|
||||
else
|
||||
. += "<h2>Start a vote:</h2><hr><ul><li>"
|
||||
if(admin || config.allow_vote_restart)
|
||||
. += "<a href='?src=\ref[src];vote=restart'>Restart</a>"
|
||||
else
|
||||
. += "<font color='grey'>Restart (Disallowed)</font>"
|
||||
. += "</li><li>"
|
||||
|
||||
if(admin || config.allow_vote_restart)
|
||||
. += "<a href='?src=\ref[src];vote=crew_transfer'>Crew Transfer</a>"
|
||||
else
|
||||
. += "<font color='grey'>Crew Transfer (Disallowed)</font>"
|
||||
|
||||
if(admin)
|
||||
. += "\t(<a href='?src=\ref[src];vote=toggle_restart'>[config.allow_vote_restart ? "Allowed" : "Disallowed"]</a>)"
|
||||
. += "</li><li>"
|
||||
|
||||
if(admin || config.allow_vote_mode)
|
||||
. += "<a href='?src=\ref[src];vote=gamemode'>GameMode</a>"
|
||||
else
|
||||
. += "<font color='grey'>GameMode (Disallowed)</font>"
|
||||
|
||||
if(admin)
|
||||
. += "\t(<a href='?src=\ref[src];vote=toggle_gamemode'>[config.allow_vote_mode ? "Allowed" : "Disallowed"]</a>)"
|
||||
. += "</li><li>"
|
||||
|
||||
if(!antag_add_failed && config.allow_extra_antags)
|
||||
. += "<a href='?src=\ref[src];vote=add_antagonist'>Add Antagonist Type</a>"
|
||||
else
|
||||
. += "<font color='grey'>Add Antagonist (Disallowed)</font>"
|
||||
. += "</li>"
|
||||
|
||||
if(admin)
|
||||
. += "<li><a href='?src=\ref[src];vote=custom'>Custom</a></li>"
|
||||
. += "</ul><hr>"
|
||||
|
||||
. += "<a href='?src=\ref[src];vote=close' style='position:absolute;right:50px'>Close</a></body></html>"
|
||||
|
||||
/datum/controller/subsystem/vote/Topic(href, href_list[])
|
||||
if(!usr || !usr.client)
|
||||
return
|
||||
switch(href_list["vote"])
|
||||
if("close")
|
||||
usr << browse(null, "window=vote")
|
||||
return
|
||||
|
||||
if("cancel")
|
||||
if(usr.client.holder)
|
||||
reset()
|
||||
if("toggle_restart")
|
||||
if(usr.client.holder)
|
||||
config.allow_vote_restart = !config.allow_vote_restart
|
||||
if("toggle_gamemode")
|
||||
if(usr.client.holder)
|
||||
config.allow_vote_mode = !config.allow_vote_mode
|
||||
|
||||
if(VOTE_RESTART)
|
||||
if(config.allow_vote_restart || usr.client.holder)
|
||||
initiate_vote(VOTE_RESTART, usr.key)
|
||||
if(VOTE_GAMEMODE)
|
||||
if(config.allow_vote_mode || usr.client.holder)
|
||||
initiate_vote(VOTE_GAMEMODE, usr.key)
|
||||
if(VOTE_CREW_TRANSFER)
|
||||
if(config.allow_vote_restart || usr.client.holder)
|
||||
initiate_vote(VOTE_CREW_TRANSFER, usr.key)
|
||||
if(VOTE_ADD_ANTAGONIST)
|
||||
if(config.allow_extra_antags || usr.client.holder)
|
||||
initiate_vote(VOTE_ADD_ANTAGONIST, usr.key)
|
||||
if(VOTE_CUSTOM)
|
||||
if(usr.client.holder)
|
||||
initiate_vote(VOTE_CUSTOM, usr.key)
|
||||
|
||||
if("unvote")
|
||||
submit_vote(usr.ckey, null)
|
||||
|
||||
else
|
||||
var/t = round(text2num(href_list["vote"]))
|
||||
if(t) // It starts from 1, so there's no problem
|
||||
submit_vote(usr.ckey, t)
|
||||
usr.client.vote()
|
||||
|
||||
/client/verb/vote()
|
||||
set category = "OOC"
|
||||
set name = "Vote"
|
||||
|
||||
if(SSvote)
|
||||
src << browse(SSvote.interface(src), "window=vote;size=500x[300 + SSvote.choices.len * 25]")
|
||||
@@ -130,9 +130,6 @@
|
||||
if("Chemistry")
|
||||
debug_variables(chemistryProcess)
|
||||
feedback_add_details("admin_verb", "DChem")
|
||||
if("Vote")
|
||||
debug_variables(vote)
|
||||
feedback_add_details("admin_verb", "DVote")
|
||||
message_admins("Admin [key_name_admin(usr)] is debugging the [controller] controller.")
|
||||
return
|
||||
|
||||
|
||||
@@ -262,6 +262,9 @@
|
||||
var/icon/charicon = cached_character_icon(H)
|
||||
front = icon(charicon, dir = SOUTH)
|
||||
side = icon(charicon, dir = WEST)
|
||||
else // Sending null things through browse_rsc() makes a runtime and breaks the console trying to view the record.
|
||||
front = icon('html/images/no_image32.png')
|
||||
side = icon('html/images/no_image32.png')
|
||||
|
||||
if(!id)
|
||||
id = text("[]", add_zero(num2hex(rand(1, 65536)), 4))
|
||||
|
||||
@@ -30,11 +30,11 @@
|
||||
/datum/supply_pack/recreation/wolfgirl_cosplay_crate
|
||||
name = "Wolfgirl Cosplay Crate"
|
||||
contains = list(
|
||||
/obj/item/clothing/head/fluff/awoo = 1,
|
||||
/obj/item/clothing/shoes/fluff/awoo = 1,
|
||||
/obj/item/clothing/under/fluff/awoo = 1,
|
||||
/obj/item/weapon/melee/fluffstuff/awoosword = 1,
|
||||
/obj/item/weapon/shield/fluff/awooshield = 1
|
||||
/obj/item/clothing/head/fluff/wolfgirl = 1,
|
||||
/obj/item/clothing/shoes/fluff/wolfgirl = 1,
|
||||
/obj/item/clothing/under/fluff/wolfgirl = 1,
|
||||
/obj/item/weapon/melee/fluffstuff/wolfgirlsword = 1,
|
||||
/obj/item/weapon/shield/fluff/wolfgirlshield = 1
|
||||
)
|
||||
cost = 50
|
||||
containertype = /obj/structure/closet/crate
|
||||
|
||||
@@ -44,7 +44,7 @@ var/global/datum/controller/gameticker/ticker
|
||||
'sound/music/title2.ogg',\
|
||||
'sound/music/clouds.s3m',\
|
||||
'sound/music/space_oddity.ogg') //Ground Control to Major Tom, this song is cool, what's going on?
|
||||
*/
|
||||
*/ //VOREStation Edit End
|
||||
|
||||
send2mainirc("Server lobby is loaded and open at byond://[config.serverurl ? config.serverurl : (config.server ? config.server : "[world.address]:[world.port]")]")
|
||||
|
||||
@@ -53,21 +53,17 @@ var/global/datum/controller/gameticker/ticker
|
||||
to_chat(world, "<B><FONT color='blue'>Welcome to the pregame lobby!</FONT></B>")
|
||||
to_chat(world, "Please set up your character and select ready. The round will start in [pregame_timeleft] seconds.")
|
||||
while(current_state == GAME_STATE_PREGAME)
|
||||
for(var/i=0, i<10, i++)
|
||||
sleep(1)
|
||||
vote.process()
|
||||
if(round_progressing)
|
||||
pregame_timeleft--
|
||||
if(pregame_timeleft == config.vote_autogamemode_timeleft)
|
||||
if(!vote.time_remaining)
|
||||
vote.autogamemode() //Quit calling this over and over and over and over.
|
||||
while(vote.time_remaining)
|
||||
for(var/i=0, i<10, i++)
|
||||
sleep(1)
|
||||
vote.process()
|
||||
if(!SSvote.time_remaining)
|
||||
SSvote.autogamemode() //Quit calling this over and over and over and over.
|
||||
while(SSvote.time_remaining)
|
||||
sleep(1)
|
||||
if(pregame_timeleft <= 0)
|
||||
current_state = GAME_STATE_SETTING_UP
|
||||
Master.SetRunLevel(RUNLEVEL_SETUP)
|
||||
sleep(10)
|
||||
while (!setup())
|
||||
|
||||
|
||||
@@ -377,7 +373,7 @@ var/global/datum/controller/gameticker/ticker
|
||||
if(!round_end_announced) // Spam Prevention. Now it should announce only once.
|
||||
to_chat(world, "<span class='danger'>The round has ended!</span>")
|
||||
round_end_announced = 1
|
||||
vote.autotransfer()
|
||||
SSvote.autotransfer()
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
icon_state = "eshield0" // eshield1 for expanded
|
||||
item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_melee_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_melee_vr.dmi')
|
||||
|
||||
/obj/item/weapon/shield/fluff/awooshield
|
||||
/obj/item/weapon/shield/fluff/wolfgirlshield
|
||||
name = "Autumn Shield"
|
||||
desc = "A shiny silvery shield with a large red leaf symbol in the center."
|
||||
icon = 'icons/obj/weapons_vr.dmi'
|
||||
icon_state = "awooshield"
|
||||
icon_state = "wolfgirlshield"
|
||||
slot_flags = SLOT_BACK | SLOT_OCLOTHING
|
||||
force = 5.0
|
||||
throwforce = 5.0
|
||||
@@ -18,4 +18,4 @@
|
||||
item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_melee_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_melee_vr.dmi', slot_back_str = 'icons/vore/custom_items_vr.dmi', slot_wear_suit_str = 'icons/vore/custom_items_vr.dmi')
|
||||
attack_verb = list("shoved", "bashed")
|
||||
var/cooldown = 0 //shield bash cooldown. based on world.time
|
||||
allowed = list(/obj/item/weapon/melee/fluffstuff/awoosword)
|
||||
allowed = list(/obj/item/weapon/melee/fluffstuff/wolfgirlsword)
|
||||
@@ -0,0 +1,4 @@
|
||||
/obj/item/weapon/storage/pill_bottle/nutriment
|
||||
name = "bottle of Nutriment pills"
|
||||
desc = "Contains pills used to feed people."
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/nutriment = 7)
|
||||
@@ -122,7 +122,7 @@
|
||||
/obj/structure/largecrate/animal/wolfgirl
|
||||
name = "Wolfgirl Crate"
|
||||
desc = "A sketchy looking crate with airholes that shakes and thuds every now and then. Someone seems to be demanding they be let out."
|
||||
starts_with = list(/mob/living/simple_animal/retaliate/awoo)
|
||||
starts_with = list(/mob/living/simple_animal/retaliate/wolfgirl)
|
||||
|
||||
/obj/structure/largecrate/animal/fennec
|
||||
name = "Fennec Crate"
|
||||
|
||||
@@ -34,9 +34,11 @@
|
||||
log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]")
|
||||
message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]")
|
||||
return
|
||||
if(vote && vote.mode)
|
||||
src << "<span class='danger'>OOC is not allowed during voting.</span>"
|
||||
//VOREStation Add - No talking during voting
|
||||
if(SSvote && SSvote.mode)
|
||||
to_chat(src,"<span class='danger'>OOC is not allowed during voting.</span>")
|
||||
return
|
||||
//VOREStation Add End
|
||||
|
||||
log_ooc(msg, src)
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ var/list/admin_verbs_admin = list(
|
||||
/datum/admins/proc/set_tcrystals,
|
||||
/datum/admins/proc/add_tcrystals,
|
||||
/client/proc/invisimin, //allows our mob to go invisible/visible,
|
||||
// /datum/admins/proc/show_traitor_panel, //interface which shows a mob's mind -Removed due to rare practical use. Moved to debug verbs ~Errorage,
|
||||
/datum/admins/proc/show_traitor_panel, //interface which shows a mob's mind.,
|
||||
/datum/admins/proc/show_game_mode, //Configuration window for the current game mode.,
|
||||
/datum/admins/proc/force_mode_latespawn, //Force the mode to try a latespawn proc,
|
||||
/datum/admins/proc/force_antag_latespawn, //Force a specific template to try a latespawn proc,
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
var/quick_create_object_html = null
|
||||
var/pathtext = null
|
||||
|
||||
pathtext = input("Select the path of the object you wish to create.", "Path", "/obj") as null|anything in list("/obj","/obj/structure","/obj/item","/obj/item/weapon","/obj/item/clothing","/obj/machinery","/obj/mecha","/obj/item/weapon/storage/box/fluff") //VOREStation Edit
|
||||
pathtext = input("Select the path of the object you wish to create.", "Path", "/obj") as null|anything in list("/obj","/obj/structure","/obj/item","/obj/item/device","/obj/item/weapon","/obj/item/weapon/gun","/obj/item/weapon/reagent_containers","/obj/item/weapon/reagent_containers/food","/obj/item/clothing","/obj/machinery","/obj/mecha","/obj/item/mecha_parts/part","/obj/mecha_parts/mecha_equipement","/obj/item/weapon/storage/box/fluff") //VOREStation Edit - Added fluff boxes
|
||||
if(!pathtext)
|
||||
return
|
||||
var path = text2path(pathtext)
|
||||
@@ -26,4 +26,4 @@
|
||||
quick_create_object_html = file2text('html/create_object.html')
|
||||
quick_create_object_html = replacetext(quick_create_object_html, "null /* object types */", "\"[objectjs]\"")
|
||||
|
||||
user << browse(replacetext(quick_create_object_html, "/* ref src */", "\ref[src]"), "window=quick_create_object;size=425x475")
|
||||
user << browse(replacetext(quick_create_object_html, "/* ref src */", "\ref[src]"), "window=quick_create_object;size=425x475")
|
||||
|
||||
@@ -332,6 +332,7 @@
|
||||
'html/images/sglogo.png',
|
||||
'html/images/talisman.png',
|
||||
'html/images/paper_bg.png',
|
||||
'html/images/no_image32.png',
|
||||
'icons/pda_icons/pda_atmos.png',
|
||||
'icons/pda_icons/pda_back.png',
|
||||
'icons/pda_icons/pda_bell.png',
|
||||
|
||||
@@ -168,4 +168,19 @@
|
||||
icon_state = "eyepatch"
|
||||
item_state_slots = list(slot_r_hand_str = "blindfold", slot_l_hand_str = "blindfold")
|
||||
body_parts_covered = 0
|
||||
enables_planes = list(VIS_CH_ID,VIS_CH_WANTED,VIS_CH_IMPTRACK,VIS_CH_IMPLOYAL,VIS_CH_IMPCHEM)
|
||||
enables_planes = list(VIS_CH_ID,VIS_CH_WANTED,VIS_CH_IMPTRACK,VIS_CH_IMPLOYAL,VIS_CH_IMPCHEM)
|
||||
var/eye = null
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/eyepatch/verb/switcheye()
|
||||
set name = "Switch Eyepatch"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
if(!istype(usr, /mob/living)) return
|
||||
if(usr.stat) return
|
||||
|
||||
eye = !eye
|
||||
if(eye)
|
||||
icon_state = "[icon_state]_1"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
update_clothing_icon()
|
||||
|
||||
@@ -155,7 +155,21 @@
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/accessory/stethoscope/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
if(ishuman(M) && isliving(user))
|
||||
if(isliving(user))
|
||||
//Vorestation edit start
|
||||
var/message_holder //Holds pervy message
|
||||
var/message_holder2 //Hods the nutrition related message.
|
||||
var/beat_size = "" //Small prey = quiet
|
||||
for(var/belly in M.vore_organs) //Pervy edit.
|
||||
var/obj/belly/B = belly
|
||||
for(var/mob/living/carbon/human/H in B)
|
||||
if(H.size_multiplier < 0.5)
|
||||
beat_size = pick("quiet ", "hushed " ,"low " ,"hushed ")
|
||||
message_holder = pick("You can hear disparate heartbeats as well.", "You can hear a different [beat_size]heartbeat too.", "It sounds like there is more than one heartbeat." ,"You can pick up a [beat_size]heatbeat along with everything else.")
|
||||
if(M.nutrition > 900) //dead
|
||||
message_holder2 = pick("Your listening is troubled by the occasional deep groan of their body.", "There is some moderate bubbling in the background.", "They seem to have a healthy metabolism as well.")
|
||||
//Vorestation edit end
|
||||
|
||||
if(user.a_intent == I_HELP)
|
||||
var/body_part = parse_zone(user.zone_sel.selecting)
|
||||
if(body_part)
|
||||
@@ -182,7 +196,7 @@
|
||||
if(heart.is_bruised() || M.getOxyLoss() > 50)
|
||||
sound = "[pick("odd noises in","weak")] heartbeat"
|
||||
else
|
||||
sound = "healthy heartbeat"
|
||||
sound = "a healthy heartbeat" //Vorestation edit
|
||||
|
||||
var/obj/item/organ/internal/heart/L = M.internal_organs_by_name[O_LUNGS]
|
||||
if(!L || M.losebreath)
|
||||
@@ -199,8 +213,9 @@
|
||||
sound_strength = "hear a weak"
|
||||
sound = "pulse"
|
||||
|
||||
user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].")
|
||||
user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound]. [message_holder][message_holder2]") //Vorestation edit. ([message holder] & [message_holder2])
|
||||
return
|
||||
|
||||
return ..(M,user)
|
||||
|
||||
//Medals
|
||||
|
||||
@@ -240,11 +240,19 @@
|
||||
desc = "Soft substance produced by bees. Used to make candles."
|
||||
icon = 'icons/obj/beekeeping.dmi'
|
||||
icon_state = "wax"
|
||||
default_type = "wax"
|
||||
|
||||
/obj/item/stack/material/wax/New()
|
||||
..()
|
||||
recipes = wax_recipes
|
||||
|
||||
/material/wax
|
||||
name = "wax"
|
||||
stack_type = /obj/item/stack/material/wax
|
||||
icon_colour = "#fff343"
|
||||
melting_point = T0C+300
|
||||
weight = 1
|
||||
|
||||
var/global/list/datum/stack_recipe/wax_recipes = list( \
|
||||
new/datum/stack_recipe("candle", /obj/item/weapon/flame/candle) \
|
||||
)
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
primitive_form = SPECIES_MONKEY_UNATHI
|
||||
darksight = 3
|
||||
ambiguous_genders = TRUE
|
||||
//gluttonous = 1 //VOREStation Edit - Redundant
|
||||
gluttonous = 1
|
||||
slowdown = 0.5
|
||||
total_health = 125
|
||||
brute_mod = 0.85
|
||||
@@ -67,7 +67,7 @@
|
||||
planet, they mostly hold ideals of honesty, virtue, proficiency and bravery above all \
|
||||
else, frequently even their own lives. They prefer warmer temperatures than most species and \
|
||||
their native tongue is a heavy hissing laungage called Sinta'Unathi."
|
||||
/* VOREStation Removal
|
||||
|
||||
cold_level_1 = 280 //Default 260 - Lower is better
|
||||
cold_level_2 = 220 //Default 200
|
||||
cold_level_3 = 130 //Default 120
|
||||
@@ -79,12 +79,13 @@
|
||||
heat_level_1 = 420 //Default 360 - Higher is better
|
||||
heat_level_2 = 480 //Default 400
|
||||
heat_level_3 = 1100 //Default 1000
|
||||
|
||||
breath_heat_level_1 = 450 //Default 380 - Higher is better
|
||||
breath_heat_level_2 = 530 //Default 450
|
||||
breath_heat_level_3 = 1400 //Default 1250
|
||||
|
||||
minimum_breath_pressure = 18 //Bigger, means they need more air
|
||||
*/
|
||||
|
||||
body_temperature = T20C
|
||||
|
||||
spawn_flags = SPECIES_CAN_JOIN
|
||||
@@ -94,7 +95,7 @@
|
||||
blood_color = "#b3cbc3"
|
||||
base_color = "#066000"
|
||||
|
||||
//reagent_tag = IS_UNATHI //VOREStation Edit
|
||||
reagent_tag = IS_UNATHI
|
||||
|
||||
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
|
||||
|
||||
@@ -122,14 +123,14 @@
|
||||
)
|
||||
|
||||
|
||||
//heat_discomfort_level = 295 //VOREStation Edit
|
||||
heat_discomfort_level = 295
|
||||
heat_discomfort_strings = list(
|
||||
"You feel soothingly warm.",
|
||||
"You feel the heat sink into your bones.",
|
||||
"You feel warm enough to take a nap."
|
||||
)
|
||||
|
||||
//cold_discomfort_level = 292 //VOREStation Removal
|
||||
cold_discomfort_level = 292
|
||||
cold_discomfort_strings = list(
|
||||
"You feel chilly.",
|
||||
"You feel sluggish and cold.",
|
||||
@@ -183,11 +184,6 @@
|
||||
cold_level_1 = 200 //Default 260
|
||||
cold_level_2 = 140 //Default 200
|
||||
cold_level_3 = 80 //Default 120
|
||||
/* VOREStation Removal
|
||||
heat_level_1 = 330 //Default 360
|
||||
heat_level_2 = 380 //Default 400
|
||||
heat_level_3 = 800 //Default 1000
|
||||
|
||||
|
||||
breath_cold_level_1 = 180 //Default 240 - Lower is better
|
||||
breath_cold_level_2 = 100 //Default 180
|
||||
@@ -200,7 +196,7 @@
|
||||
breath_heat_level_1 = 360 //Default 380 - Higher is better
|
||||
breath_heat_level_2 = 430 //Default 450
|
||||
breath_heat_level_3 = 1000 //Default 1250
|
||||
*/
|
||||
|
||||
primitive_form = SPECIES_MONKEY_TAJ
|
||||
|
||||
spawn_flags = SPECIES_CAN_JOIN
|
||||
@@ -209,16 +205,18 @@
|
||||
flesh_color = "#AFA59E"
|
||||
base_color = "#333333"
|
||||
|
||||
//reagent_tag = IS_TAJARA //VOREStation Removal
|
||||
reagent_tag = IS_TAJARA
|
||||
|
||||
//heat_discomfort_level = 292 //VOREStation Removal
|
||||
move_trail = /obj/effect/decal/cleanable/blood/tracks/paw
|
||||
|
||||
heat_discomfort_level = 292
|
||||
heat_discomfort_strings = list(
|
||||
"Your fur prickles in the heat.",
|
||||
"You feel uncomfortably warm.",
|
||||
"Your overheated skin itches."
|
||||
)
|
||||
//cold_discomfort_level = 275 //VOREStation Removal
|
||||
|
||||
cold_discomfort_level = 275
|
||||
|
||||
has_organ = list( //No appendix.
|
||||
O_HEART = /obj/item/organ/internal/heart,
|
||||
@@ -287,12 +285,12 @@
|
||||
heat_level_2 = 480 //Default 400
|
||||
heat_level_3 = 1100 //Default 1000
|
||||
|
||||
//reagent_tag = IS_SKRELL //VOREStation Edit
|
||||
|
||||
breath_heat_level_1 = 400 //Default 380 - Higher is better
|
||||
breath_heat_level_2 = 500 //Default 450
|
||||
breath_heat_level_3 = 1350 //Default 1250
|
||||
|
||||
reagent_tag = IS_SKRELL
|
||||
|
||||
has_limbs = list(
|
||||
BP_TORSO = list("path" = /obj/item/organ/external/chest),
|
||||
BP_GROIN = list("path" = /obj/item/organ/external/groin),
|
||||
|
||||
@@ -307,6 +307,7 @@
|
||||
tail_animation = 'icons/mob/species/unathi/tail_vr.dmi'
|
||||
color_mult = 1
|
||||
min_age = 18
|
||||
gluttonous = 0
|
||||
inherent_verbs = list(/mob/living/proc/shred_limb)
|
||||
|
||||
/datum/species/tajaran
|
||||
@@ -318,6 +319,7 @@
|
||||
min_age = 18
|
||||
gluttonous = 0 //Moving this here so I don't have to fix this conflict every time polaris glances at station.dm
|
||||
inherent_verbs = list(/mob/living/proc/shred_limb)
|
||||
heat_discomfort_level = 294 //Prevents heat discomfort spam at 20c
|
||||
|
||||
/datum/species/skrell
|
||||
spawn_flags = SPECIES_CAN_JOIN
|
||||
@@ -325,6 +327,7 @@
|
||||
deform = 'icons/mob/human_races/r_def_skrell_vr.dmi'
|
||||
color_mult = 1
|
||||
min_age = 18
|
||||
reagent_tag = null
|
||||
|
||||
/datum/species/diona
|
||||
spawn_flags = SPECIES_CAN_JOIN
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/mob/living/simple_animal/retaliate/awoo
|
||||
/mob/living/simple_animal/retaliate/wolfgirl
|
||||
name = "wolfgirl"
|
||||
desc = "AwooOOOOoooo!"
|
||||
tt_desc = "Homo lupus"
|
||||
icon = 'icons/mob/vore.dmi'
|
||||
icon_state = "awoo"
|
||||
icon_living = "awoo"
|
||||
icon_dead = "awoo-dead"
|
||||
icon_state = "wolfgirl"
|
||||
icon_living = "wolfgirl"
|
||||
icon_dead = "wolfgirl-dead"
|
||||
|
||||
faction = "awoo"
|
||||
faction = "wolfgirl"
|
||||
maxHealth = 30
|
||||
health = 30
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
var/loopstop = 0 //To prevent circular awoooos.
|
||||
|
||||
/mob/living/simple_animal/retaliate/awoo/hear_say()
|
||||
/mob/living/simple_animal/retaliate/wolfgirl/hear_say()
|
||||
if(world.time - loopstop < 5 SECONDS)
|
||||
return
|
||||
else
|
||||
@@ -55,7 +55,7 @@
|
||||
..()
|
||||
|
||||
// Activate Noms!
|
||||
/mob/living/simple_animal/retaliate/awoo
|
||||
/mob/living/simple_animal/retaliate/wolfgirl
|
||||
vore_active = 1
|
||||
vore_pounce_chance = 40
|
||||
vore_icons = SA_ICON_LIVING
|
||||
@@ -0,0 +1,8 @@
|
||||
/obj/item/weapon/reagent_containers/pill/nutriment
|
||||
name = "Nutriment pill"
|
||||
desc = "Used to feed people on the field. Contains 30 units of Nutriment."
|
||||
icon_state = "pill6"
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/nutriment/New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 30)
|
||||
@@ -611,8 +611,8 @@
|
||||
set desc = "Switch sharp/fuzzy scaling for current mob."
|
||||
appearance_flags ^= PIXEL_SCALE
|
||||
|
||||
/mob/living/examine(mob/user)
|
||||
. = ..()
|
||||
/mob/living/examine(mob/user, distance, infix, suffix)
|
||||
. = ..(user, distance, infix, suffix)
|
||||
if(showvoreprefs)
|
||||
to_chat(user, "<span class='deptradio'><a href='?src=\ref[src];vore_prefs=1'>\[Mechanical Vore Preferences\]</a></span>")
|
||||
|
||||
|
||||
@@ -25,36 +25,36 @@
|
||||
*/
|
||||
|
||||
//Natje: Awen Henry
|
||||
/obj/item/clothing/head/fluff/awoo
|
||||
/obj/item/clothing/head/fluff/wolfgirl
|
||||
name = "Wolfgirl Hat"
|
||||
desc = "An odd, small hat with two strings attached to it."
|
||||
|
||||
icon_state = "awoohat"
|
||||
icon_state = "wolfgirlhat"
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_onmob_vr.dmi'
|
||||
|
||||
//Natje: Awen Henry
|
||||
/obj/item/clothing/shoes/fluff/awoo
|
||||
/obj/item/clothing/shoes/fluff/wolfgirl
|
||||
name = "Red Sandals"
|
||||
desc = "A pair of sandals that make you want to awoo!"
|
||||
|
||||
icon_state = "awoosandals"
|
||||
icon_state = "wolfgirlsandals"
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_onmob_vr.dmi'
|
||||
|
||||
//Natje: Awen Henry
|
||||
/obj/item/clothing/under/fluff/awoo
|
||||
/obj/item/clothing/under/fluff/wolfgirl
|
||||
name = "Wolfgirl Clothes"
|
||||
desc = "A set of clothes almost identical to those Wolf Girls always wear..."
|
||||
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "awoouni"
|
||||
worn_state = "awoouni_mob"
|
||||
icon_state = "wolfgirluni"
|
||||
worn_state = "wolfgirluni_mob"
|
||||
rolled_sleeves = 0
|
||||
rolled_down = 0
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "awoouni_mob"
|
||||
item_state = "wolfgirluni_mob"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
|
||||
|
||||
//SpoopyLizz: Roiz Lizden
|
||||
|
||||
@@ -1858,11 +1858,11 @@
|
||||
"<span class='danger'>\The [user] is falling on \the [src]! It looks like [tempgender] trying to commit suicide.</span>"))
|
||||
return (BRUTELOSS|FIRELOSS)
|
||||
|
||||
/obj/item/weapon/melee/fluffstuff/awoosword
|
||||
/obj/item/weapon/melee/fluffstuff/wolfgirlsword
|
||||
name = "Wolfgirl Sword Replica"
|
||||
desc = "A replica of a large, scimitar-like sword with a dull edge. Ceremonial... until it isn't."
|
||||
icon = 'icons/obj/weapons_vr.dmi'
|
||||
icon_state = "awoosword"
|
||||
icon_state = "wolfgirlsword"
|
||||
slot_flags = SLOT_BACK | SLOT_OCLOTHING
|
||||
active_force = 15
|
||||
active_throwforce = 7
|
||||
@@ -1874,16 +1874,16 @@
|
||||
w_class = ITEMSIZE_SMALL
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 1)
|
||||
item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_melee_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_melee_vr.dmi', slot_back_str = 'icons/vore/custom_items_vr.dmi', slot_wear_suit_str = 'icons/vore/custom_items_vr.dmi')
|
||||
var/active_state = "awoosword"
|
||||
allowed = list(/obj/item/weapon/shield/fluff/awooshield)
|
||||
var/active_state = "wolfgirlsword"
|
||||
allowed = list(/obj/item/weapon/shield/fluff/wolfgirlshield)
|
||||
damtype = HALLOSS
|
||||
|
||||
/obj/item/weapon/melee/fluffstuff/awoosword/dropped(var/mob/user)
|
||||
/obj/item/weapon/melee/fluffstuff/wolfgirlsword/dropped(var/mob/user)
|
||||
..()
|
||||
if(!istype(loc,/mob))
|
||||
deactivate(user)
|
||||
|
||||
/obj/item/weapon/melee/fluffstuff/awoosword/activate(mob/living/user)
|
||||
/obj/item/weapon/melee/fluffstuff/wolfgirlsword/activate(mob/living/user)
|
||||
if(!active)
|
||||
to_chat(user, "<span class='notice'>The [src] is now sharpened. It will cut!</span>")
|
||||
|
||||
@@ -1895,7 +1895,7 @@
|
||||
damtype = BRUTE
|
||||
|
||||
|
||||
/obj/item/weapon/melee/fluffstuff/awoosword/deactivate(mob/living/user)
|
||||
/obj/item/weapon/melee/fluffstuff/wolfgirlsword/deactivate(mob/living/user)
|
||||
if(active)
|
||||
to_chat(user, "<span class='notice'>The [src] grows dull!</span>")
|
||||
..()
|
||||
@@ -1941,7 +1941,7 @@
|
||||
|
||||
icon = 'icons/vore/custom_items_vr.dmi'
|
||||
icon_state = "penlightlynn"
|
||||
|
||||
|
||||
//Knightfall5:Ashley Kifer
|
||||
/obj/item/clothing/accessory/medal/nobel_science/fluff/ashley
|
||||
name = "nobel sciences award"
|
||||
|
||||
|
After Width: | Height: | Size: 257 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 194 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
@@ -7146,6 +7146,7 @@
|
||||
/obj/effect/floor_decal/corner/purple/bordercorner2{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/camera/network/civilian,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/janitor)
|
||||
"oT" = (
|
||||
|
||||
@@ -2562,8 +2562,8 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/engineering/workshop)
|
||||
"afV" = (
|
||||
/turf/simulated/floor/reinforced,
|
||||
/obj/structure/shuttle/engine/propulsion,
|
||||
/turf/simulated/floor/reinforced,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/excursion/tether)
|
||||
"afX" = (
|
||||
@@ -19977,6 +19977,7 @@
|
||||
d2 = 2;
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/firedoor/glass,
|
||||
/turf/simulated/floor/tiled/steel_grid,
|
||||
/area/teleporter)
|
||||
"bJY" = (
|
||||
|
||||
@@ -1632,13 +1632,15 @@
|
||||
id = "brigouter";
|
||||
name = "Outer Brig Doors";
|
||||
pixel_x = 6;
|
||||
pixel_y = -24
|
||||
pixel_y = -24;
|
||||
req_access = list(2)
|
||||
},
|
||||
/obj/machinery/button/remote/airlock{
|
||||
id = "briginner";
|
||||
name = "Inner Brig Doors";
|
||||
pixel_x = -6;
|
||||
pixel_y = -24
|
||||
pixel_y = -24;
|
||||
req_access = list(2)
|
||||
},
|
||||
/obj/effect/floor_decal/industrial/warning{
|
||||
dir = 8
|
||||
@@ -1833,11 +1835,11 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/security/brig)
|
||||
"cL" = (
|
||||
/turf/space,
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 8;
|
||||
icon_state = "propulsion_l"
|
||||
},
|
||||
/turf/space,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/large_escape_pod1/station{
|
||||
base_turf = /turf/simulated/mineral/floor/vacuum
|
||||
@@ -1986,10 +1988,10 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/security/recstorage)
|
||||
"cW" = (
|
||||
/turf/space,
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 8
|
||||
},
|
||||
/turf/space,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/large_escape_pod1/station{
|
||||
base_turf = /turf/simulated/mineral/floor/vacuum
|
||||
@@ -2226,11 +2228,11 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/brig/visitation)
|
||||
"dm" = (
|
||||
/turf/space,
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 8;
|
||||
icon_state = "propulsion_r"
|
||||
},
|
||||
/turf/space,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/large_escape_pod1/station{
|
||||
base_turf = /turf/simulated/mineral/floor/vacuum
|
||||
@@ -3430,7 +3432,7 @@
|
||||
"gn" = (
|
||||
/obj/effect/floor_decal/techfloor,
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/on{
|
||||
/obj/machinery/atmospherics/unary/vent_pump/on{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/bluegrid,
|
||||
@@ -7206,7 +7208,6 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/maintenance/engi,
|
||||
/obj/machinery/door/blast/regular{
|
||||
density = 0;
|
||||
dir = 1;
|
||||
@@ -7215,6 +7216,7 @@
|
||||
name = "Engineering Lockdown";
|
||||
opacity = 0
|
||||
},
|
||||
/obj/machinery/door/airlock/maintenance/common,
|
||||
/turf/simulated/floor/plating,
|
||||
/area/maintenance/station/eng_upper)
|
||||
"nF" = (
|
||||
@@ -17409,10 +17411,6 @@
|
||||
/obj/structure/table/steel,
|
||||
/turf/simulated/floor,
|
||||
/area/maintenance/evahallway)
|
||||
"JO" = (
|
||||
/obj/machinery/door/airlock/maintenance/common,
|
||||
/turf/simulated/floor,
|
||||
/area/maintenance/station/sec_lower)
|
||||
"Kg" = (
|
||||
/obj/structure/closet,
|
||||
/obj/effect/floor_decal/techfloor{
|
||||
@@ -17646,7 +17644,7 @@
|
||||
"Me" = (
|
||||
/obj/effect/floor_decal/techfloor,
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/atmospherics/unary/vent_pump/on{
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/on{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/bluegrid,
|
||||
@@ -18095,6 +18093,11 @@
|
||||
icon_state = "tube1";
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
dir = 4;
|
||||
icon_state = "light1";
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/brig/visitation)
|
||||
"PP" = (
|
||||
@@ -24321,7 +24324,7 @@ at
|
||||
at
|
||||
at
|
||||
at
|
||||
JO
|
||||
Ln
|
||||
at
|
||||
at
|
||||
at
|
||||
@@ -24330,7 +24333,7 @@ at
|
||||
at
|
||||
at
|
||||
at
|
||||
JO
|
||||
Ln
|
||||
at
|
||||
at
|
||||
at
|
||||
@@ -25307,7 +25310,7 @@ RS
|
||||
at
|
||||
Qk
|
||||
UV
|
||||
JO
|
||||
Ln
|
||||
bf
|
||||
DK
|
||||
at
|
||||
@@ -32033,7 +32036,7 @@ zF
|
||||
zZ
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
aP
|
||||
aP
|
||||
aP
|
||||
aP
|
||||
@@ -32175,7 +32178,7 @@ wo
|
||||
wo
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
aP
|
||||
aP
|
||||
aP
|
||||
aP
|
||||
|
||||
@@ -749,6 +749,11 @@
|
||||
icon_state = "camera";
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
dir = 4;
|
||||
icon_state = "light1";
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/eva)
|
||||
"bo" = (
|
||||
@@ -4278,6 +4283,11 @@
|
||||
/obj/item/ammo_magazine/clip/c762/practice,
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
|
||||
/obj/item/ammo_magazine/clip/c762/practice,
|
||||
/obj/machinery/light_switch{
|
||||
dir = 4;
|
||||
icon_state = "light1";
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/security/range)
|
||||
"hm" = (
|
||||
@@ -4384,6 +4394,11 @@
|
||||
dir = 9
|
||||
},
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/light_switch{
|
||||
dir = 4;
|
||||
icon_state = "light1";
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/security/armory/red)
|
||||
"hE" = (
|
||||
@@ -6172,6 +6187,10 @@
|
||||
icon_state = "borderfloorcorner_black";
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
dir = 1;
|
||||
pixel_y = -24
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/security/armory/blue)
|
||||
"kd" = (
|
||||
@@ -7130,6 +7149,7 @@
|
||||
/obj/structure/railing{
|
||||
dir = 4
|
||||
},
|
||||
/obj/random/trash_pile,
|
||||
/turf/simulated/floor,
|
||||
/area/maintenance/cargo)
|
||||
"lN" = (
|
||||
@@ -7578,7 +7598,7 @@
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/on{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/filingcabinet/chestdrawer,
|
||||
/obj/structure/table/steel,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"mA" = (
|
||||
@@ -8644,6 +8664,12 @@
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/table/steel,
|
||||
/obj/machinery/light_switch{
|
||||
dir = 4;
|
||||
icon_state = "light1";
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/item/device/taperecorder,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"oC" = (
|
||||
@@ -8655,7 +8681,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/atmospherics/unary/vent_pump/on,
|
||||
/obj/structure/table/steel,
|
||||
/obj/machinery/computer/secure_data,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"oD" = (
|
||||
@@ -8670,6 +8696,11 @@
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/weapon/paper_bin{
|
||||
pixel_x = -3;
|
||||
pixel_y = 7
|
||||
},
|
||||
/obj/item/weapon/pen,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"oE" = (
|
||||
@@ -8681,7 +8712,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/on,
|
||||
/obj/machinery/computer/secure_data,
|
||||
/obj/structure/table/steel,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"oF" = (
|
||||
@@ -8692,11 +8723,6 @@
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/table/steel,
|
||||
/obj/item/weapon/paper_bin{
|
||||
pixel_x = -3;
|
||||
pixel_y = 7
|
||||
},
|
||||
/obj/item/weapon/pen,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"oG" = (
|
||||
@@ -8746,6 +8772,10 @@
|
||||
/obj/effect/floor_decal/borderfloor,
|
||||
/obj/effect/floor_decal/corner/red/border,
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/light_switch{
|
||||
dir = 1;
|
||||
pixel_y = -24
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/briefing_room)
|
||||
"oK" = (
|
||||
@@ -9195,13 +9225,20 @@
|
||||
icon_state = "camera";
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table/steel,
|
||||
/obj/item/weapon/folder/red,
|
||||
/obj/item/weapon/folder/red{
|
||||
pixel_x = 2;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/machinery/recharger,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"pm" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/bed/chair{
|
||||
/obj/structure/bed/chair/office/dark{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
@@ -9219,7 +9256,7 @@
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
|
||||
/obj/structure/bed/chair/office/dark{
|
||||
/obj/structure/bed/chair{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
@@ -9232,11 +9269,6 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table/steel,
|
||||
/obj/item/weapon/folder/red{
|
||||
pixel_x = 2;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/item/weapon/folder/red,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"pq" = (
|
||||
@@ -9478,9 +9510,6 @@
|
||||
/obj/effect/floor_decal/corner/red/bordercorner2{
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/table/steel,
|
||||
/obj/item/device/taperecorder,
|
||||
/obj/machinery/recharger,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"pQ" = (
|
||||
@@ -9900,6 +9929,12 @@
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/disposalpipe/trunk,
|
||||
/obj/machinery/light_switch{
|
||||
dir = 2;
|
||||
name = "light switch ";
|
||||
pixel_x = 10;
|
||||
pixel_y = 36
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/security/forensics)
|
||||
"qC" = (
|
||||
@@ -10468,6 +10503,11 @@
|
||||
/obj/structure/closet{
|
||||
name = "Evidence Closet"
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
dir = 4;
|
||||
icon_state = "light1";
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/security/evidence_storage)
|
||||
"ru" = (
|
||||
@@ -10487,12 +10527,12 @@
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 10
|
||||
},
|
||||
/obj/structure/table/steel,
|
||||
/obj/machinery/alarm{
|
||||
dir = 4;
|
||||
icon_state = "alarm0";
|
||||
pixel_x = -22
|
||||
},
|
||||
/obj/structure/filingcabinet/chestdrawer,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"rw" = (
|
||||
@@ -10520,6 +10560,7 @@
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor/corner2,
|
||||
/obj/effect/floor_decal/corner/red/bordercorner2,
|
||||
/obj/structure/table/steel,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"rz" = (
|
||||
@@ -11960,17 +12001,6 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/vending/snack,
|
||||
/obj/machinery/embedded_controller/radio/airlock/airlock_controller{
|
||||
frequency = 1379;
|
||||
id_tag = "sec_fore_airlock";
|
||||
pixel_x = 24;
|
||||
pixel_y = 0;
|
||||
req_one_access = list(13);
|
||||
tag_airpump = "sec_fore_pump";
|
||||
tag_chamber_sensor = "sec_fore_sensor";
|
||||
tag_exterior_door = "sec_fore_outer";
|
||||
tag_interior_door = "sec_fore_inner"
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/hallway/station/upper)
|
||||
"tt" = (
|
||||
@@ -14617,6 +14647,11 @@
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/stamp/internalaffairs,
|
||||
/obj/item/weapon/stamp/denied{
|
||||
pixel_x = 4;
|
||||
pixel_y = -2
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/lawoffice)
|
||||
"xB" = (
|
||||
@@ -14660,6 +14695,11 @@
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/stamp/internalaffairs,
|
||||
/obj/item/weapon/stamp/denied{
|
||||
pixel_x = 4;
|
||||
pixel_y = -2
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/lawoffice)
|
||||
"xF" = (
|
||||
@@ -15158,6 +15198,11 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/disposal,
|
||||
/obj/machinery/light_switch{
|
||||
dir = 4;
|
||||
icon_state = "light1";
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/lobby)
|
||||
"yr" = (
|
||||
@@ -17448,7 +17493,6 @@
|
||||
/turf/simulated/floor,
|
||||
/area/maintenance/station/cargo)
|
||||
"BI" = (
|
||||
/obj/machinery/light/small,
|
||||
/obj/structure/mopbucket,
|
||||
/obj/item/weapon/reagent_containers/glass/bucket,
|
||||
/obj/item/weapon/mop,
|
||||
@@ -17466,10 +17510,10 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/maintenance/station/cargo)
|
||||
"BL" = (
|
||||
/obj/machinery/computer/supplycomp{
|
||||
/obj/machinery/camera/network/cargo{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/camera/network/cargo{
|
||||
/obj/machinery/computer/supplycomp/control{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
@@ -18599,12 +18643,6 @@
|
||||
/area/security/hallway)
|
||||
"DP" = (
|
||||
/obj/structure/table/steel,
|
||||
/obj/machinery/button/windowtint{
|
||||
id = "sec_processing";
|
||||
pixel_x = 6;
|
||||
pixel_y = -2;
|
||||
req_access = list(1)
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"DQ" = (
|
||||
@@ -27301,10 +27339,16 @@
|
||||
/obj/machinery/meter,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/eva)
|
||||
"Rm" = (
|
||||
/obj/effect/decal/cleanable/cobweb,
|
||||
/turf/simulated/wall/r_wall,
|
||||
/area/security/lobby)
|
||||
"Rs" = (
|
||||
/obj/machinery/button/windowtint{
|
||||
id = "sec_processing";
|
||||
pixel_x = 26;
|
||||
pixel_y = 6;
|
||||
req_access = list(1);
|
||||
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/security/security_processing)
|
||||
"RB" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 5
|
||||
@@ -34330,7 +34374,7 @@ uP
|
||||
uP
|
||||
uP
|
||||
uP
|
||||
Rm
|
||||
uP
|
||||
uP
|
||||
uP
|
||||
Ag
|
||||
@@ -34745,7 +34789,7 @@ jk
|
||||
og
|
||||
oC
|
||||
pm
|
||||
pM
|
||||
Rs
|
||||
qi
|
||||
qN
|
||||
rw
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
/turf/unsimulated/wall/planetary/virgo3b,
|
||||
/area/centcom/specops)
|
||||
"ae" = (
|
||||
/turf/unsimulated/floor/shuttle_ceiling,
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
icon_state = "burst_l";
|
||||
dir = 8
|
||||
},
|
||||
/turf/unsimulated/floor/shuttle_ceiling,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/specops/centcom{
|
||||
base_turf = /turf/unsimulated/floor/shuttle_ceiling
|
||||
@@ -35,11 +35,11 @@
|
||||
/turf/unsimulated/wall,
|
||||
/area/centcom/specops)
|
||||
"ai" = (
|
||||
/turf/unsimulated/floor/shuttle_ceiling,
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
icon_state = "propulsion";
|
||||
dir = 8
|
||||
},
|
||||
/turf/unsimulated/floor/shuttle_ceiling,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/specops/centcom{
|
||||
base_turf = /turf/unsimulated/floor/shuttle_ceiling
|
||||
@@ -136,14 +136,12 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/gun/energy/gun,
|
||||
/obj/item/weapon/gun/energy/gun,
|
||||
/obj/item/weapon/gun/energy/gun,
|
||||
/obj/item/weapon/gun/energy/gun,
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/weapon/gun/energy/ionrifle/pistol,
|
||||
/obj/item/weapon/gun/energy/ionrifle/pistol,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -154,9 +152,6 @@
|
||||
},
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/gun/energy/netgun,
|
||||
/obj/item/weapon/gun/energy/netgun,
|
||||
/obj/item/weapon/gun/energy/netgun,
|
||||
/obj/item/weapon/gun/energy/netgun,
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
@@ -170,7 +165,6 @@
|
||||
/obj/item/weapon/gun/energy/laser,
|
||||
/obj/item/weapon/gun/energy/laser,
|
||||
/obj/item/weapon/gun/energy/laser,
|
||||
/obj/item/weapon/gun/energy/laser,
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
@@ -184,16 +178,14 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/ammo_magazine/m545saw,
|
||||
/obj/item/ammo_magazine/m545saw,
|
||||
/obj/item/ammo_magazine/m545saw,
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/obj/item/ammo_magazine/m545saw/ap,
|
||||
/obj/item/ammo_magazine/m545saw/ap,
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/weapon/gun/energy/gun,
|
||||
/obj/item/weapon/gun/energy/gun,
|
||||
/obj/item/weapon/gun/energy/gun,
|
||||
/obj/item/weapon/gun/energy/gun,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -206,6 +198,8 @@
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/obj/item/weapon/gun/energy/gun/nuclear,
|
||||
/obj/item/weapon/gun/energy/gun/nuclear,
|
||||
/obj/item/weapon/gun/energy/gun/nuclear,
|
||||
/obj/item/weapon/gun/energy/gun/nuclear,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -215,21 +209,20 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/ammo_magazine/m762/ap,
|
||||
/obj/item/ammo_magazine/m762/ap,
|
||||
/obj/item/weapon/gun/projectile/automatic/bullpup,
|
||||
/obj/item/weapon/gun/projectile/automatic/bullpup,
|
||||
/obj/item/ammo_magazine/m545/ap,
|
||||
/obj/item/ammo_magazine/m545/ap,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/weapon/gun/projectile/automatic/sts35,
|
||||
/obj/item/weapon/gun/projectile/automatic/sts35,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -239,18 +232,17 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/item/ammo_magazine/m762m,
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/obj/item/ammo_magazine/m762/ap,
|
||||
/obj/item/ammo_magazine/m762/ap,
|
||||
/obj/item/weapon/gun/projectile/automatic/z8,
|
||||
/obj/item/weapon/gun/projectile/automatic/z8,
|
||||
/obj/item/ammo_magazine/m545/ap,
|
||||
/obj/item/ammo_magazine/m545/ap,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/ammo_magazine/m545,
|
||||
/obj/item/weapon/gun/projectile/automatic/sts35,
|
||||
/obj/item/weapon/gun/projectile/automatic/sts35,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -260,9 +252,11 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/gun/energy/xray,
|
||||
/obj/item/weapon/gun/energy/xray,
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/obj/item/weapon/gun/energy/taser,
|
||||
/obj/item/weapon/gun/energy/taser,
|
||||
/obj/item/weapon/gun/energy/taser,
|
||||
/obj/item/weapon/gun/energy/taser,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -293,12 +287,14 @@
|
||||
/area/centcom/specops)
|
||||
"az" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/gun/launcher/grenade,
|
||||
/obj/item/weapon/gun/launcher/grenade,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/obj/item/weapon/gun/energy/stunrevolver,
|
||||
/obj/item/weapon/gun/energy/stunrevolver,
|
||||
/obj/item/weapon/gun/energy/stunrevolver,
|
||||
/obj/item/weapon/gun/energy/stunrevolver,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -317,7 +313,6 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/weapon/storage/box/frags,
|
||||
/obj/item/weapon/storage/box/smokes,
|
||||
/obj/item/weapon/storage/box/smokes,
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
@@ -383,7 +378,16 @@
|
||||
/obj/item/ammo_casing/rocket,
|
||||
/obj/item/weapon/gun/launcher/rocket,
|
||||
/obj/item/weapon/gun/launcher/rocket,
|
||||
/obj/item/weapon/gun/launcher/rocket,
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw,
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw,
|
||||
/obj/item/ammo_magazine/m545saw,
|
||||
/obj/item/ammo_magazine/m545saw,
|
||||
/obj/item/ammo_magazine/m545saw,
|
||||
/obj/item/ammo_magazine/m545saw,
|
||||
/obj/item/ammo_magazine/m545saw,
|
||||
/obj/item/ammo_magazine/m545saw,
|
||||
/obj/item/ammo_magazine/m545saw/ap,
|
||||
/obj/item/ammo_magazine/m545saw/ap,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -395,33 +399,14 @@
|
||||
/area/centcom/specops)
|
||||
"aH" = (
|
||||
/obj/structure/closet/crate/medical,
|
||||
/obj/item/weapon/surgical/circular_saw,
|
||||
/obj/item/weapon/surgical/surgicaldrill,
|
||||
/obj/item/weapon/surgical/bonegel{
|
||||
pixel_x = 4;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/weapon/surgical/bonesetter,
|
||||
/obj/item/weapon/surgical/scalpel,
|
||||
/obj/item/weapon/surgical/retractor{
|
||||
pixel_x = 0;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/item/weapon/surgical/hemostat{
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/item/weapon/surgical/cautery{
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/item/weapon/surgical/FixOVein{
|
||||
pixel_x = -6;
|
||||
pixel_y = 1
|
||||
},
|
||||
/obj/item/stack/nanopaste,
|
||||
/obj/item/weapon/tank/anesthetic,
|
||||
/obj/item/clothing/mask/breath/medical,
|
||||
/obj/item/clothing/mask/surgical,
|
||||
/obj/item/clothing/mask/surgical,
|
||||
/obj/item/stack/nanopaste,
|
||||
/obj/item/stack/nanopaste,
|
||||
/obj/item/weapon/storage/firstaid/surgery,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -429,6 +414,18 @@
|
||||
/area/centcom/specops)
|
||||
"aI" = (
|
||||
/obj/structure/closet/crate/medical,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -449,12 +446,13 @@
|
||||
/area/centcom/specops)
|
||||
"aK" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,
|
||||
/obj/item/weapon/storage/firstaid/clotting,
|
||||
/obj/item/weapon/storage/firstaid/combat,
|
||||
/obj/item/weapon/storage/firstaid/combat,
|
||||
/obj/item/weapon/storage/pill_bottle/iron,
|
||||
/obj/item/weapon/storage/pill_bottle/iron,
|
||||
/obj/item/weapon/storage/pill_bottle/nutriment,
|
||||
/obj/item/weapon/storage/pill_bottle/nutriment,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -513,6 +511,8 @@
|
||||
/obj/item/weapon/reagent_containers/blood/OMinus,
|
||||
/obj/item/weapon/reagent_containers/blood/OMinus,
|
||||
/obj/item/weapon/reagent_containers/blood/OMinus,
|
||||
/obj/item/device/defib_kit/compact/combat/loaded,
|
||||
/obj/item/device/defib_kit/compact/combat/loaded,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -597,8 +597,6 @@
|
||||
/area/centcom/specops)
|
||||
"aW" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/gun/energy/stunrevolver,
|
||||
/obj/item/weapon/gun/energy/stunrevolver,
|
||||
/obj/item/device/flash,
|
||||
/obj/item/device/flash,
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
@@ -607,6 +605,14 @@
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/weapon/gun/energy/gun/martin,
|
||||
/obj/item/weapon/gun/energy/gun/martin,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -629,6 +635,12 @@
|
||||
/obj/item/clothing/accessory/storage/white_vest,
|
||||
/obj/item/clothing/accessory/storage/white_vest,
|
||||
/obj/item/clothing/accessory/storage/white_vest,
|
||||
/obj/item/clothing/accessory/storage/white_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/white_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/white_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/white_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/white_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/white_drop_pouches,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -645,8 +657,6 @@
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -679,8 +689,11 @@
|
||||
"bd" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/item/weapon/gun/projectile/automatic/wt550/lethal,
|
||||
/obj/item/weapon/gun/projectile/automatic/wt550/lethal,
|
||||
/obj/item/weapon/gun/projectile/automatic/saber,
|
||||
/obj/item/ammo_magazine/m9mmR/saber,
|
||||
/obj/item/ammo_magazine/m9mmR/saber,
|
||||
/obj/item/ammo_magazine/m9mmR/saber,
|
||||
/obj/item/ammo_magazine/m9mmR/saber,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -689,7 +702,6 @@
|
||||
/obj/structure/table/rack,
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/item/weapon/gun/energy/sniperrifle,
|
||||
/obj/item/weapon/gun/energy/sniperrifle,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -700,12 +712,24 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/ammo_magazine/s357,
|
||||
/obj/item/ammo_magazine/s357,
|
||||
/obj/item/ammo_magazine/s357,
|
||||
/obj/item/ammo_magazine/s357,
|
||||
/obj/item/weapon/gun/projectile/revolver/mateba,
|
||||
/obj/item/weapon/gun/projectile/revolver/mateba,
|
||||
/obj/item/weapon/gun/projectile/revolver/detective45,
|
||||
/obj/item/weapon/gun/projectile/revolver/detective45,
|
||||
/obj/item/ammo_magazine/s45,
|
||||
/obj/item/ammo_magazine/s45,
|
||||
/obj/item/ammo_magazine/s45,
|
||||
/obj/item/ammo_magazine/s45,
|
||||
/obj/item/weapon/gun/projectile/p92x,
|
||||
/obj/item/weapon/gun/projectile/p92x,
|
||||
/obj/item/weapon/gun/projectile/p92x,
|
||||
/obj/item/weapon/gun/projectile/p92x,
|
||||
/obj/item/ammo_magazine/m9mm/large/preban,
|
||||
/obj/item/ammo_magazine/m9mm/large/preban,
|
||||
/obj/item/ammo_magazine/m9mm/large/preban,
|
||||
/obj/item/ammo_magazine/m9mm/large/preban,
|
||||
/obj/item/ammo_magazine/m9mm/large/preban,
|
||||
/obj/item/ammo_magazine/m9mm/large/preban,
|
||||
/obj/item/ammo_magazine/m9mm/large/preban,
|
||||
/obj/item/ammo_magazine/m9mm/large/preban,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -729,11 +753,11 @@
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"bh" = (
|
||||
/turf/unsimulated/floor/shuttle_ceiling,
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
icon_state = "burst_r";
|
||||
dir = 8
|
||||
},
|
||||
/turf/unsimulated/floor/shuttle_ceiling,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/specops/centcom{
|
||||
base_turf = /turf/unsimulated/floor/shuttle_ceiling
|
||||
@@ -869,7 +893,9 @@
|
||||
/area/centcom/specops)
|
||||
"bn" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/storage/box,
|
||||
/obj/item/device/healthanalyzer/advanced,
|
||||
/obj/item/device/healthanalyzer/advanced,
|
||||
/obj/item/device/healthanalyzer/advanced,
|
||||
/obj/item/device/healthanalyzer/advanced,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
@@ -968,6 +994,20 @@
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -1043,20 +1083,7 @@
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"bB" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/storage/pill_bottle/tramadol,
|
||||
/obj/item/weapon/storage/pill_bottle/tramadol,
|
||||
/obj/item/weapon/storage/pill_bottle/tramadol,
|
||||
/obj/item/weapon/storage/pill_bottle/dylovene,
|
||||
/obj/item/weapon/storage/pill_bottle/dylovene,
|
||||
/obj/item/weapon/storage/pill_bottle/dylovene,
|
||||
/obj/item/weapon/storage/pill_bottle/dermaline,
|
||||
/obj/item/weapon/storage/pill_bottle/dermaline,
|
||||
/obj/item/weapon/storage/pill_bottle/dermaline,
|
||||
/obj/item/weapon/storage/pill_bottle/spaceacillin,
|
||||
/obj/item/weapon/storage/pill_bottle/dexalin_plus,
|
||||
/obj/item/weapon/storage/pill_bottle/dexalin_plus,
|
||||
/obj/item/weapon/storage/pill_bottle/dexalin_plus,
|
||||
/obj/machinery/vending/medical,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -1069,6 +1096,10 @@
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/weapon/storage/box/bodybags,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -1082,7 +1113,6 @@
|
||||
/obj/item/weapon/storage/belt/medical/emt,
|
||||
/obj/item/weapon/storage/belt/medical/emt,
|
||||
/obj/item/weapon/storage/belt/medical/emt,
|
||||
/obj/item/device/healthanalyzer/advanced,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -1118,7 +1148,6 @@
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie/med,
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie/med,
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie/med,
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie/med,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "vault";
|
||||
dir = 5
|
||||
@@ -1491,6 +1520,12 @@
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/accessory/storage/black_vest,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/black_drop_pouches,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -1641,14 +1676,26 @@
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/structure/table/steel_reinforced,
|
||||
/obj/item/stack/rods,
|
||||
/obj/item/stack/rods,
|
||||
/obj/item/stack/material/glass/phoronglass,
|
||||
/obj/item/stack/material/glass/phoronglass,
|
||||
/obj/item/stack/rods,
|
||||
/obj/item/stack/rods,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"cy" = (
|
||||
/obj/structure/table/steel_reinforced,
|
||||
/obj/item/weapon/storage/box,
|
||||
/obj/item/weapon/storage/box,
|
||||
/obj/item/weapon/storage/box/survival/comp,
|
||||
/obj/item/weapon/storage/box/survival/comp,
|
||||
/obj/item/weapon/storage/box/survival/comp,
|
||||
/obj/item/weapon/storage/box/survival/comp,
|
||||
/obj/item/weapon/storage/box/survival/comp,
|
||||
/obj/item/weapon/storage/box/survival/comp,
|
||||
/obj/item/weapon/storage/box/survival/comp,
|
||||
/obj/item/weapon/storage/box/survival/comp,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -1765,13 +1812,19 @@
|
||||
/area/centcom/specops)
|
||||
"cM" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/cell/high,
|
||||
/obj/item/weapon/cell/high,
|
||||
/obj/item/weapon/cell/high,
|
||||
/obj/item/weapon/cell/high,
|
||||
/obj/item/weapon/cell/high,
|
||||
/obj/item/weapon/cell/high,
|
||||
/obj/effect/floor_decal/industrial/outline/blue,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -1838,8 +1891,6 @@
|
||||
/area/centcom/specops)
|
||||
"cT" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/gun/energy/stunrevolver,
|
||||
/obj/item/weapon/gun/energy/stunrevolver,
|
||||
/obj/item/device/flash,
|
||||
/obj/item/device/flash,
|
||||
/obj/item/clothing/accessory/storage/brown_vest,
|
||||
@@ -1848,6 +1899,14 @@
|
||||
/obj/item/clothing/accessory/storage/brown_vest,
|
||||
/obj/item/clothing/accessory/storage/brown_vest,
|
||||
/obj/item/clothing/accessory/storage/brown_vest,
|
||||
/obj/item/clothing/accessory/storage/brown_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/brown_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/brown_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/brown_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/brown_drop_pouches,
|
||||
/obj/item/clothing/accessory/storage/brown_drop_pouches,
|
||||
/obj/item/weapon/gun/energy/gun/martin,
|
||||
/obj/item/weapon/gun/energy/gun/martin,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -1957,9 +2016,10 @@
|
||||
/area/centcom/specops)
|
||||
"dc" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/rig_module/grenade_launcher,
|
||||
/obj/item/rig_module/grenade_launcher,
|
||||
/obj/effect/floor_decal/industrial/outline/blue,
|
||||
/obj/item/rig_module/rescue_pharm,
|
||||
/obj/item/rig_module/sprinter,
|
||||
/obj/item/rig_module/sprinter,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
@@ -16792,6 +16852,48 @@
|
||||
icon_state = "white"
|
||||
},
|
||||
/area/centcom/medical)
|
||||
"Ez" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"JC" = (
|
||||
/obj/machinery/power/thermoregulator,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"JF" = (
|
||||
/obj/structure/reagent_dispensers/fueltank,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"Nt" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"OD" = (
|
||||
/obj/machinery/power/port_gen/pacman,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"Rc" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/device/defib_kit/compact/loaded,
|
||||
@@ -16799,6 +16901,45 @@
|
||||
icon_state = "white"
|
||||
},
|
||||
/area/centcom/medical)
|
||||
"Re" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/device/perfect_tele,
|
||||
/obj/item/device/binoculars,
|
||||
/obj/item/device/survivalcapsule,
|
||||
/obj/item/device/survivalcapsule,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"UC" = (
|
||||
/obj/structure/table/steel_reinforced,
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/stack/cable_coil,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"Xa" = (
|
||||
/obj/machinery/space_heater,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
"XA" = (
|
||||
/obj/structure/table/steel_reinforced,
|
||||
/obj/item/weapon/smes_coil,
|
||||
/obj/item/weapon/smes_coil,
|
||||
/obj/item/device/t_scanner/advanced,
|
||||
/obj/item/device/t_scanner/advanced,
|
||||
/obj/item/stack/material/phoron,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "dark"
|
||||
},
|
||||
/area/centcom/specops)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -30333,8 +30474,8 @@ aX
|
||||
aX
|
||||
aX
|
||||
cg
|
||||
aG
|
||||
aG
|
||||
Nt
|
||||
JF
|
||||
aG
|
||||
cS
|
||||
dm
|
||||
@@ -30617,7 +30758,7 @@ aX
|
||||
aX
|
||||
aX
|
||||
cg
|
||||
aG
|
||||
UC
|
||||
cx
|
||||
cH
|
||||
cU
|
||||
@@ -30759,7 +30900,7 @@ aX
|
||||
aX
|
||||
aX
|
||||
cg
|
||||
aG
|
||||
XA
|
||||
cy
|
||||
cI
|
||||
cV
|
||||
@@ -30901,7 +31042,7 @@ aX
|
||||
aX
|
||||
aX
|
||||
cg
|
||||
aG
|
||||
OD
|
||||
cz
|
||||
cJ
|
||||
cJ
|
||||
@@ -31043,7 +31184,7 @@ aX
|
||||
aX
|
||||
aX
|
||||
cg
|
||||
aG
|
||||
Xa
|
||||
cA
|
||||
cK
|
||||
cK
|
||||
@@ -31185,7 +31326,7 @@ bX
|
||||
aX
|
||||
ce
|
||||
ah
|
||||
aG
|
||||
JC
|
||||
cA
|
||||
cL
|
||||
cL
|
||||
@@ -31469,7 +31610,7 @@ aX
|
||||
aX
|
||||
aX
|
||||
ah
|
||||
aG
|
||||
Ez
|
||||
cB
|
||||
cM
|
||||
cW
|
||||
@@ -33031,7 +33172,7 @@ aX
|
||||
aX
|
||||
aX
|
||||
ah
|
||||
aG
|
||||
Re
|
||||
cC
|
||||
cN
|
||||
dh
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
#include "code\__defines\turfs.dm"
|
||||
#include "code\__defines\typeids.dm"
|
||||
#include "code\__defines\unit_tests.dm"
|
||||
#include "code\__defines\vote.dm"
|
||||
#include "code\__defines\xenoarcheaology.dm"
|
||||
#include "code\__defines\ZAS.dm"
|
||||
#include "code\_compatibility\509\_JSON.dm"
|
||||
@@ -202,7 +203,6 @@
|
||||
#include "code\controllers\master_controller.dm"
|
||||
#include "code\controllers\subsystem.dm"
|
||||
#include "code\controllers\verbs.dm"
|
||||
#include "code\controllers\voting.dm"
|
||||
#include "code\controllers\observer_listener\atom\observer.dm"
|
||||
#include "code\controllers\Processes\alarm.dm"
|
||||
#include "code\controllers\Processes\chemistry.dm"
|
||||
@@ -218,7 +218,6 @@
|
||||
#include "code\controllers\Processes\supply.dm"
|
||||
#include "code\controllers\Processes\ticker.dm"
|
||||
#include "code\controllers\Processes\turf.dm"
|
||||
#include "code\controllers\Processes\vote.dm"
|
||||
#include "code\controllers\ProcessScheduler\core\process.dm"
|
||||
#include "code\controllers\ProcessScheduler\core\processScheduler.dm"
|
||||
#include "code\controllers\subsystems\air.dm"
|
||||
@@ -239,6 +238,7 @@
|
||||
#include "code\controllers\subsystems\planets.dm"
|
||||
#include "code\controllers\subsystems\shuttles.dm"
|
||||
#include "code\controllers\subsystems\transcore_vr.dm"
|
||||
#include "code\controllers\subsystems\vote.dm"
|
||||
#include "code\controllers\subsystems\xenoarch.dm"
|
||||
#include "code\datums\ai_law_sets.dm"
|
||||
#include "code\datums\ai_laws.dm"
|
||||
@@ -1158,6 +1158,7 @@
|
||||
#include "code\game\objects\items\weapons\storage\briefcase.dm"
|
||||
#include "code\game\objects\items\weapons\storage\fancy.dm"
|
||||
#include "code\game\objects\items\weapons\storage\firstaid.dm"
|
||||
#include "code\game\objects\items\weapons\storage\firstaid_vr.dm"
|
||||
#include "code\game\objects\items\weapons\storage\internal.dm"
|
||||
#include "code\game\objects\items\weapons\storage\laundry_basket.dm"
|
||||
#include "code\game\objects\items\weapons\storage\lockbox.dm"
|
||||
@@ -2320,7 +2321,6 @@
|
||||
#include "code\modules\mob\living\simple_animal\slime\life.dm"
|
||||
#include "code\modules\mob\living\simple_animal\slime\slime.dm"
|
||||
#include "code\modules\mob\living\simple_animal\slime\subtypes.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\awoo.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\bee.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\carp.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\catgirl.dm"
|
||||
@@ -2343,6 +2343,7 @@
|
||||
#include "code\modules\mob\living\simple_animal\vore\solargrub.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\solargrub_larva.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\wolf.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\wolfgirl.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\zz_vore_overrides.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\shadekin\_defines.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\shadekin\ability_objects.dm"
|
||||
@@ -2680,6 +2681,7 @@
|
||||
#include "code\modules\reagents\reagent_containers\hypospray.dm"
|
||||
#include "code\modules\reagents\reagent_containers\hypospray_vr.dm"
|
||||
#include "code\modules\reagents\reagent_containers\pill.dm"
|
||||
#include "code\modules\reagents\reagent_containers\pill_vr.dm"
|
||||
#include "code\modules\reagents\reagent_containers\spray.dm"
|
||||
#include "code\modules\reagents\reagent_containers\spray_vr.dm"
|
||||
#include "code\modules\reagents\reagent_containers\syringes.dm"
|
||||
|
||||