Merge branch 'upMaster' into updates

This commit is contained in:
Hawk_v3
2018-10-21 03:48:41 +01:00
47 changed files with 4165 additions and 2712 deletions
+1
View File
@@ -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
+5
View File
@@ -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"
-6
View File
@@ -1,6 +0,0 @@
/datum/controller/process/vote/setup()
name = "vote"
schedule_interval = 10 // every second
/datum/controller/process/vote/doWork()
vote.process()
+5 -3
View File
@@ -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]")
-3
View File
@@ -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
+3
View File
@@ -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))
+5 -5
View File
@@ -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
+7 -11
View File
@@ -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"
+4 -2
View File
@@ -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)
+1 -1
View File
@@ -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,
+2 -2
View File
@@ -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")
+1
View File
@@ -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',
+16 -1
View File
@@ -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)
+2 -2
View File
@@ -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"
Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1
View File
@@ -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" = (
+2 -1
View File
@@ -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" = (
+20 -17
View File
@@ -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
+89 -45
View File
@@ -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
File diff suppressed because it is too large Load Diff
+265 -124
View File
@@ -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
+5 -3
View File
@@ -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"