mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2025-12-09 19:23:52 +00:00
CitadelRP (#4108)
* dme and dmb * Heeeere we gooo * fasease * Continued. * AAAAAAAAAAAAAAAAAAAAAAAA * Brain going numb * agh * The suffering will be worth it... right? * Going blank... * Am I done? * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * Fixes * Should be everything I care about right now.
This commit is contained in:
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@@ -420,7 +420,7 @@ Just because something isn't on this list doesn't mean that it's acceptable. Use
|
||||
## Content requiring prior approval
|
||||
Certain types of changes may require prior approval from maintainers. This currently includes:
|
||||
|
||||
* Code adding, removing, or updating the availability of alien races/species/human mutants. This includes pull requests attempting to add or remove features from said races/species/mutants. (Requires approval from at least one maintainer)
|
||||
* Code adding, removing, or updating the availability of alien races/species/humans. This includes pull requests attempting to add or remove features from said races/species/mutants. (Requires approval from at least one maintainer)
|
||||
* Code adding, removing, or modifying the functionality of adult-oriented features (such as, but not limited to: vore, genitals, MKUltra, and more). This also includes pull requests attempting to add or remove these features outright. (Requires approval from at least half of the formal maintainer team)
|
||||
|
||||
The above content requires approval from the specified amount of maintainers prior to PR creation. Seeking approval must be done via a @Maintainer ping in a relevant development/code or staff channel on the Discord, otherwise it will be considered insufficient. If a PR contains any of the above content, but the creator does not have sufficient approval prior to the PR's creation, then the PR may be closed by any maintainer, at any time, for any reason.
|
||||
|
||||
2
.github/workflows/ci_suite.yml
vendored
2
.github/workflows/ci_suite.yml
vendored
@@ -36,7 +36,7 @@ jobs:
|
||||
tools/bootstrap/python -c ''
|
||||
- name: Run Linters
|
||||
run: |
|
||||
bash tools/ci/check_filedirs.sh vorestation.dme
|
||||
bash tools/ci/check_filedirs.sh citadel.dme
|
||||
bash tools/ci/check_changelogs.sh
|
||||
bash tools/ci/check_grep.sh
|
||||
bash tools/ci/check_misc.sh
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
This is the codebase for the CitadelRP flavoured fork of SpaceStation 13.
|
||||
|
||||
Citadel Station 13 RP, also known as CitadelRP was originally a fork of VOREStation, which separated on 01/25/2019. CitadelRP nowadays can be seen as a Polaris and /tg/station hybrid!
|
||||
Citadel Station 13 RP, also known as CitadelRP was originally a fork of VOREStation, which separated on 01/25/2019.
|
||||
|
||||
## DOWNLOADING
|
||||
[Downloading](.github/guides/DOWNLOADING.md)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
environment = "vorestation.dme"
|
||||
environment = "citadel.dme"
|
||||
|
||||
[langserver]
|
||||
dreamchecker = true
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// DM Environment file for vorestation.dme
|
||||
// DM Environment file for citadel.dme
|
||||
// All manual changes should be made outside the BEGIN_ and END_ blocks.
|
||||
// New source code should be placed in .dm files: choose File/New --> Code File.
|
||||
// BEGIN_INTERNALS
|
||||
@@ -2149,7 +2149,6 @@
|
||||
#include "code\modules\events\spacevine.dm"
|
||||
#include "code\modules\events\spider_infestation.dm"
|
||||
#include "code\modules\events\spontaneous_appendicitis.dm"
|
||||
#include "code\modules\events\spontaneous_appendicitis_vr.dm"
|
||||
#include "code\modules\events\supply_demand.dm"
|
||||
#include "code\modules\events\wallrot.dm"
|
||||
#include "code\modules\examine\examine.dm"
|
||||
@@ -79,7 +79,6 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called manu
|
||||
#define NETWORK_ALARM_ATMOS "Atmosphere Alarms"
|
||||
#define NETWORK_ALARM_POWER "Power Alarms"
|
||||
#define NETWORK_ALARM_FIRE "Fire Alarms"
|
||||
///Using different from Polaris one for better name
|
||||
#define NETWORK_TCOMMS "Telecommunications"
|
||||
#define NETWORK_OUTSIDE "Outside"
|
||||
#define NETWORK_EXPLORATION "Exploration"
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
/// Z-levels exempt from xenoarch digsite generation.
|
||||
#define MAP_LEVEL_XENOARCH_EXEMPT 0x080
|
||||
// Misc map defines.
|
||||
///VOREStation Edit
|
||||
|
||||
/// Automatically created submaps are forbidden from being this close to the main map's edge.
|
||||
#define SUBMAP_MAP_EDGE_PAD 8
|
||||
// TG MAP LOADING SYSTEM PENDING
|
||||
|
||||
@@ -284,10 +284,10 @@ var/list/economy_station_departments = list(
|
||||
DEPARTMENT_PLANET,
|
||||
DEPARTMENT_RESEARCH,
|
||||
DEPARTMENT_SECURITY
|
||||
) //VOREStation Edit
|
||||
)
|
||||
|
||||
|
||||
// vorstation off-duty time
|
||||
// Off-duty time
|
||||
#define PTO_CARGO "Cargo"
|
||||
#define PTO_CIVILIAN "Civilian"
|
||||
#define PTO_COMMAND "Command"
|
||||
|
||||
@@ -56,8 +56,6 @@
|
||||
'sound/ambience/generic/generic3.ogg'\
|
||||
)
|
||||
|
||||
// 'sound/ambience/generic/generic4.ogg'\ // VOREStation Edit: Comment out entry 4 as this doesn't fit on Virgo, and we have our own weather system.
|
||||
|
||||
// Sounds of PA announcements, presumably involving shuttles?
|
||||
#define AMBIENCE_ARRIVALS list(\
|
||||
'sound/ambience/arrivals/arrivals1.ogg',\
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
//max channel is 1024. Only go lower from here, because byond tends to pick the first availiable channel to play sounds on
|
||||
// Max channel is 1024. Only go lower from here, because byond tends to pick the first availiable channel to play sounds on
|
||||
#define CHANNEL_LOBBYMUSIC 1024
|
||||
#define CHANNEL_ADMIN 1023
|
||||
#define CHANNEL_VOX 1022
|
||||
#define CHANNEL_JUKEBOX 1021
|
||||
///sound channel for heartbeats
|
||||
/// Sound channel for heartbeats
|
||||
#define CHANNEL_HEARTBEAT 1020
|
||||
#define CHANNEL_AMBIENCE_FORCED 1019
|
||||
#define CHANNEL_AMBIENCE 1018
|
||||
#define CHANNEL_BUZZ 1017
|
||||
#define CHANNEL_BICYCLE 1016
|
||||
///VORESTATION ADD - Fancy Sound Loop channel
|
||||
/// Fancy Sound Loop channel
|
||||
#define CHANNEL_PREYLOOP 1015
|
||||
|
||||
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
|
||||
//KEEP IT UPDATED
|
||||
|
||||
#define CHANNEL_HIGHEST_AVAILABLE 1014 //VORESTATION EDIT - Fancy Sound Loop channel from 1015
|
||||
#define CHANNEL_HIGHEST_AVAILABLE 1014 // Fancy Sound Loop channel from 1015
|
||||
|
||||
#define MAX_INSTRUMENT_CHANNELS (128 * 6)
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
/*
|
||||
// Contains VOREStation type2type functions
|
||||
// list2text - takes delimiter and returns text
|
||||
// text2list - takes delimiter, and creates list
|
||||
//
|
||||
*/
|
||||
/**
|
||||
* Contains VOREStation type2type functions
|
||||
* list2text - takes delimiter and returns text
|
||||
* text2list - takes delimiter, and creates list
|
||||
*/
|
||||
|
||||
// Concatenates a list of strings into a single string. A seperator may optionally be provided.
|
||||
/proc/list2text(list/ls, sep)
|
||||
|
||||
@@ -1584,7 +1584,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
. += new /atom/movable/screen/plane_master/main{plane = MOB_PLANE}
|
||||
// . += new /atom/movable/screen/plane_master/cloaked //Cloaked atoms!
|
||||
|
||||
//VOREStation Add - Random other plane masters
|
||||
// Random other plane masters from Virgo
|
||||
. += new /atom/movable/screen/plane_master{plane = PLANE_AUGMENTED} //Augmented reality
|
||||
//VOREStation Add End
|
||||
. += new /atom/movable/screen/plane_master/parallax{plane = PARALLAX_PLANE}
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
return 1
|
||||
if(get_dist(src,T0) > 1)
|
||||
return 0
|
||||
if(T0.z != z) return 0 //VOREStation Add
|
||||
if(T0.z != z)
|
||||
return 0
|
||||
if(T0.x == x || T0.y == y)
|
||||
// Check for border blockages
|
||||
return T0.ClickCross(get_dir(T0,src), border_only = 1) && src.ClickCross(get_dir(src,T0), border_only = 1, target_atom = target)
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
trigger_aiming(TARGET_CAN_CLICK)
|
||||
return 1
|
||||
|
||||
// VOREStation Addition Start: inbelly item interaction
|
||||
// Inbelly item interaction
|
||||
if(isbelly(loc) && (loc == A.loc))
|
||||
if(W)
|
||||
var/resolved = W.resolve_attackby(A, src, params)
|
||||
@@ -139,7 +139,6 @@
|
||||
setClickCooldown(get_attack_speed())
|
||||
UnarmedAttack(A, 1)
|
||||
return
|
||||
// VOREStation Addition End
|
||||
|
||||
if(!isturf(loc)) // This is going to stop you from telekinesing from inside a closet, but I don't shed many tears for that
|
||||
return
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
|
||||
/mob/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!ability_master) //VOREStation Edit: S H A D E K I N
|
||||
if(!ability_master)
|
||||
ability_master = new /atom/movable/screen/movable/ability_master(src)
|
||||
|
||||
///////////ACTUAL ABILITIES////////////
|
||||
|
||||
@@ -309,7 +309,6 @@
|
||||
mymob.hydration_icon.screen_loc = ui_nutrition_small
|
||||
hud_elements |= mymob.hydration_icon
|
||||
|
||||
//VOREStation Addition begin
|
||||
mymob.shadekin_dark_display = new /atom/movable/screen/shadekin/darkness()
|
||||
mymob.shadekin_dark_display.screen_loc = ui_shadekin_dark_display
|
||||
mymob.shadekin_dark_display.icon_state = "dark"
|
||||
@@ -324,7 +323,6 @@
|
||||
mymob.xenochimera_danger_display.screen_loc = ui_xenochimera_danger_display
|
||||
mymob.xenochimera_danger_display.icon_state = "danger00"
|
||||
hud_elements |= mymob.xenochimera_danger_display
|
||||
//VOREStation Addition end
|
||||
|
||||
mymob.ling_chem_display = new /atom/movable/screen/ling/chems()
|
||||
mymob.ling_chem_display.screen_loc = ui_ling_chemical_display
|
||||
|
||||
@@ -463,7 +463,7 @@
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
AI.view_images()
|
||||
else
|
||||
return attempt_vr(src,"Click_vr",list(location,control,params)) //VOREStation Add - Additional things.
|
||||
return attempt_vr(src,"Click_vr",list(location,control,params))
|
||||
return 1
|
||||
|
||||
/atom/movable/screen/inventory/Click()
|
||||
|
||||
@@ -51,7 +51,7 @@ avoid code duplication. This includes items that may sometimes act as a standard
|
||||
else
|
||||
return 0
|
||||
if(attempt_vr(src,"vore_attackby",args))
|
||||
return //VOREStation Add - The vore, of course.
|
||||
return
|
||||
return I.attack(src, user, user.zone_sel.selecting, attack_modifier)
|
||||
|
||||
// Used to get how fast a mob should attack, and influences click delay.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define SSBELLIES_IGNORED 2
|
||||
|
||||
//
|
||||
// Bellies subsystem - Process vore bellies
|
||||
// Bellies subsystem - Process bellies
|
||||
//
|
||||
|
||||
SUBSYSTEM_DEF(bellies)
|
||||
|
||||
@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(inactivity)
|
||||
if(config_legacy.kick_inactive)
|
||||
for(var/i in GLOB.clients)
|
||||
var/client/C = i
|
||||
if(C.is_afk(config_legacy.kick_inactive MINUTES) && !C.holder) // VOREStation Edit - Allow admins to idle
|
||||
if(C.is_afk(config_legacy.kick_inactive MINUTES) && !C.holder) // Allow admins to idle
|
||||
to_chat(C,"<span class='warning'>You have been inactive for more than [config_legacy.kick_inactive] minute\s and have been disconnected.</span>")
|
||||
var/information
|
||||
|
||||
|
||||
@@ -56,10 +56,8 @@ var/global/datum/controller/occupations/job_master
|
||||
return 0
|
||||
if(!job.player_old_enough(player.client))
|
||||
return 0
|
||||
//VOREStation Add
|
||||
if(!is_job_whitelisted(player, rank))
|
||||
return 0
|
||||
//VOREStation Add End
|
||||
|
||||
var/position_limit = job.total_positions
|
||||
if(!latejoin)
|
||||
@@ -94,11 +92,9 @@ var/global/datum/controller/occupations/job_master
|
||||
if(job.minimum_character_age && (player.client.prefs.age < job.minimum_character_age))
|
||||
Debug("FOC character not old enough, Player: [player]")
|
||||
continue
|
||||
//VOREStation Code Start
|
||||
if(!is_job_whitelisted(player, job.title))
|
||||
Debug("FOC is_job_whitelisted failed, Player: [player]")
|
||||
continue
|
||||
//VOREStation Code End
|
||||
if(flag && !(player.client.prefs.be_special & flag))
|
||||
Debug("FOC flag failed, Player: [player], Flag: [flag], ")
|
||||
continue
|
||||
@@ -116,7 +112,7 @@ var/global/datum/controller/occupations/job_master
|
||||
if(job.minimum_character_age && (player.client.prefs.age < job.minimum_character_age))
|
||||
continue
|
||||
|
||||
if(istype(job, GetJob(USELESS_JOB))) // We don't want to give him assistant, that's boring! //VOREStation Edit - Visitor not Assistant
|
||||
if(istype(job, GetJob(USELESS_JOB))) // We don't want to give him visitor, that's boring!
|
||||
continue
|
||||
|
||||
if(SSjob.is_job_in_department(job.title, DEPARTMENT_COMMAND)) //If you want a command position, select it!
|
||||
@@ -130,11 +126,9 @@ var/global/datum/controller/occupations/job_master
|
||||
Debug("GRJ player not old enough, Player: [player]")
|
||||
continue
|
||||
|
||||
//VOREStation Code Start
|
||||
if(!is_job_whitelisted(player, job.title))
|
||||
Debug("GRJ player not whitelisted for this job, Player: [player], Job: [job.title]")
|
||||
continue
|
||||
//VOREStation Code End
|
||||
|
||||
if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1)
|
||||
Debug("GRJ Random job given, Player: [player], Job: [job]")
|
||||
@@ -241,7 +235,7 @@ var/global/datum/controller/occupations/job_master
|
||||
Debug("AC1, Candidates: [assistant_candidates.len]")
|
||||
for(var/mob/new_player/player in assistant_candidates)
|
||||
Debug("AC1 pass, Player: [player]")
|
||||
AssignRole(player, USELESS_JOB) //VOREStation Edit - Visitor not Assistant
|
||||
AssignRole(player, USELESS_JOB)
|
||||
assistant_candidates -= player
|
||||
Debug("DO, AC1 end")
|
||||
|
||||
@@ -322,7 +316,7 @@ var/global/datum/controller/occupations/job_master
|
||||
for(var/mob/new_player/player in unassigned)
|
||||
if(player.client.prefs.alternate_option == BE_ASSISTANT)
|
||||
Debug("AC2 Assistant located, Player: [player]")
|
||||
AssignRole(player, USELESS_JOB) //VOREStation Edit - Visitor not Assistant
|
||||
AssignRole(player, USELESS_JOB)
|
||||
|
||||
//For ones returning to lobby
|
||||
for(var/mob/new_player/player in unassigned)
|
||||
@@ -443,7 +437,7 @@ var/global/datum/controller/occupations/job_master
|
||||
|
||||
H.job = rank
|
||||
log_game("JOINED [key_name(H)] as \"[rank]\"")
|
||||
log_game("SPECIES [key_name(H)] is a: \"[H.species.name]\"") //VOREStation Add
|
||||
log_game("SPECIES [key_name(H)] is a: \"[H.species.name]\"")
|
||||
|
||||
// If they're head, give them the account info for their department
|
||||
if(H.mind && job.department_accounts)
|
||||
|
||||
@@ -304,7 +304,7 @@ SUBSYSTEM_DEF(mapping)
|
||||
|
||||
//
|
||||
// Mapping subsystem handles initialization of random map elements at server start
|
||||
// On VOREStation that means loading our random roundstart engine!
|
||||
// For us that means loading our random roundstart engine!
|
||||
//
|
||||
/datum/controller/subsystem/mapping
|
||||
var/list/map_templates = list()
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
// Mobs Subsystem - Process mob.Life()
|
||||
//
|
||||
|
||||
//VOREStation Edits - Contains temporary debugging code to diagnose extreme tick consumption.
|
||||
//Revert file to Polaris version when done.
|
||||
// Contains temporary debugging code to diagnose extreme tick consumption.
|
||||
|
||||
SUBSYSTEM_DEF(mobs)
|
||||
name = "Mobs"
|
||||
|
||||
@@ -116,7 +116,7 @@ SUBSYSTEM_DEF(radiation)
|
||||
add_source(S)
|
||||
|
||||
// Sets the radiation in a range to a constant value.
|
||||
/datum/controller/subsystem/radiation/proc/flat_radiate(source, power, range, var/respect_maint = TRUE) //VOREStation edit; Respect shielded areas by default please.
|
||||
/datum/controller/subsystem/radiation/proc/flat_radiate(source, power, range, respect_maint = TRUE) // Respect shielded areas by default please.
|
||||
if(!(source && power && range))
|
||||
return
|
||||
var/datum/radiation_source/S = new()
|
||||
@@ -128,7 +128,7 @@ SUBSYSTEM_DEF(radiation)
|
||||
add_source(S)
|
||||
|
||||
// Irradiates a full Z-level. Hacky way of doing it, but not too expensive.
|
||||
/datum/controller/subsystem/radiation/proc/z_radiate(var/atom/source, power, var/respect_maint = TRUE) //VOREStation edit; Respect shielded areas by default please.
|
||||
/datum/controller/subsystem/radiation/proc/z_radiate(atom/source, power, respect_maint = TRUE) // Respect shielded areas by default please.
|
||||
if(!(power && source))
|
||||
return
|
||||
var/turf/epicentre = locate(round(world.maxx / 2), round(world.maxy / 2), source.z)
|
||||
|
||||
@@ -30,8 +30,6 @@ SUBSYSTEM_DEF(ticker)
|
||||
var/event_time = null
|
||||
var/event = 0
|
||||
|
||||
// var/login_music // music played in pregame lobby // VOREStation Edit - We do music differently
|
||||
|
||||
var/list/datum/mind/minds = list()//The people in the game. Used for objective tracking.
|
||||
|
||||
var/Bible_icon_state // icon_state the chaplain has chosen for his bible
|
||||
@@ -226,7 +224,6 @@ SUBSYSTEM_DEF(ticker)
|
||||
create_characters() //Create player characters and transfer them.
|
||||
collect_minds()
|
||||
equip_characters()
|
||||
//data_core.manifest() //VOREStation Removal
|
||||
|
||||
callHook("roundstart")
|
||||
|
||||
@@ -395,13 +392,11 @@ SUBSYSTEM_DEF(ticker)
|
||||
else if(!player.mind.assigned_role)
|
||||
continue
|
||||
else
|
||||
//VOREStation Edit Start
|
||||
var/mob/living/carbon/human/new_char = player.create_character()
|
||||
if(new_char)
|
||||
qdel(player)
|
||||
if(istype(new_char) && !(new_char.mind.assigned_role=="Cyborg"))
|
||||
data_core.manifest_inject(new_char)
|
||||
//VOREStation Edit End
|
||||
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/collect_minds()
|
||||
@@ -419,8 +414,6 @@ SUBSYSTEM_DEF(ticker)
|
||||
if(!player_is_antag(player.mind, only_offstation_roles = 1))
|
||||
job_master.EquipRank(player, player.mind.assigned_role, 0)
|
||||
UpdateFactionList(player)
|
||||
//equip_custom_items(player) //VOREStation Removal
|
||||
//player.apply_traits() //VOREStation Removal
|
||||
if(captainless)
|
||||
for(var/mob/M in player_list)
|
||||
if(!istype(M,/mob/new_player))
|
||||
|
||||
@@ -3,30 +3,24 @@ SUBSYSTEM_DEF(transfer)
|
||||
name = "Transfer"
|
||||
var/timerbuffer = 0 //buffer for time check
|
||||
var/currenttick = 0
|
||||
var/shift_hard_end = 0 //VOREStation Edit
|
||||
var/shift_last_vote = 0 //Citadel Edit
|
||||
var/shift_hard_end = 0
|
||||
var/shift_last_vote = 0
|
||||
|
||||
// should be a config someday lol
|
||||
#define NUMBER_OF_VOTE_EXTENSIONS 2
|
||||
|
||||
/datum/controller/subsystem/transfer/Initialize()
|
||||
timerbuffer = config_legacy.vote_autotransfer_initial
|
||||
shift_hard_end = config_legacy.vote_autotransfer_initial + (config_legacy.vote_autotransfer_interval * NUMBER_OF_VOTE_EXTENSIONS) //VOREStation Edit //Change this "1" to how many extend votes you want there to be.
|
||||
shift_last_vote = shift_hard_end - config_legacy.vote_autotransfer_interval //VOREStation Edit
|
||||
shift_hard_end = config_legacy.vote_autotransfer_initial + (config_legacy.vote_autotransfer_interval * NUMBER_OF_VOTE_EXTENSIONS) //Change this "1" to how many extend votes you want there to be.
|
||||
shift_last_vote = shift_hard_end - config_legacy.vote_autotransfer_interval
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/transfer/fire(resumed)
|
||||
currenttick = currenttick + 1
|
||||
//VOREStation Edit START
|
||||
/* if (round_duration_in_ds >= shift_last_vote - 2 MINUTES)
|
||||
shift_last_vote = 999999999999 //Setting to a stupidly high number since it'll be not used again.
|
||||
to_world("<b>Warning: This upcoming round-extend vote will be your ONLY extend vote. Wrap up your scenes in the next 60 minutes if the round is extended.</b>") //VOREStation Edit
|
||||
*/
|
||||
if (round_duration_in_ds >= shift_hard_end - 1 MINUTE)
|
||||
if(round_duration_in_ds >= shift_hard_end - 1 MINUTE)
|
||||
init_shift_change(null, 1)
|
||||
shift_hard_end = timerbuffer + config_legacy.vote_autotransfer_interval //If shuttle somehow gets recalled, let's force it to call again next time a vote would occur.
|
||||
timerbuffer = timerbuffer + config_legacy.vote_autotransfer_interval //Just to make sure a vote doesn't occur immediately afterwords.
|
||||
else if (round_duration_in_ds >= timerbuffer - 1 MINUTE)
|
||||
else if(round_duration_in_ds >= timerbuffer - 1 MINUTE)
|
||||
SSvote.autotransfer()
|
||||
//VOREStation Edit END
|
||||
timerbuffer = timerbuffer + config_legacy.vote_autotransfer_interval
|
||||
|
||||
@@ -105,8 +105,7 @@ SUBSYSTEM_DEF(vote)
|
||||
factor = 1.4
|
||||
choices["Initiate Crew Transfer"] = round(choices["Initiate Crew Transfer"] * factor)
|
||||
to_chat(world, "\n<span class='infoplain'><font color='purple'>Crew Transfer Factor: [factor]</font></span>")
|
||||
greatest_votes = max(choices["Initiate Crew Transfer"], choices["Extend the Shift"]) //VOREStation Edit
|
||||
|
||||
greatest_votes = max(choices["Initiate Crew Transfer"], choices["Extend the Shift"])
|
||||
. = list() // Get all options with that many votes and return them in a list
|
||||
if(greatest_votes)
|
||||
for(var/option in choices)
|
||||
@@ -215,8 +214,8 @@ SUBSYSTEM_DEF(vote)
|
||||
if(SSticker.current_state <= GAME_STATE_SETTING_UP)
|
||||
to_chat(initiator_key, "The crew transfer button has been disabled!")
|
||||
return 0
|
||||
question = "Your PDA beeps with a message from Central. Would you like an additional hour to finish ongoing projects?" //VOREStation Edit
|
||||
choices.Add("Initiate Crew Transfer", "Extend the Shift") //VOREStation Edit
|
||||
question = "Your PDA beeps with a message from Central. Would you like an additional hour to finish ongoing projects?"
|
||||
choices.Add("Initiate Crew Transfer", "Extend the Shift")
|
||||
if(VOTE_ADD_ANTAGONIST)
|
||||
if(!config_legacy.allow_extra_antags || SSticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
return 0
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
*/
|
||||
|
||||
|
||||
//VOREStation Edit - Most of this file has been changed to use the Eris-style PA announcements.
|
||||
//You'll need to compare externally, or use your best judgement when merging.
|
||||
// Most of this file has been changed to use the Eris-style PA announcements.
|
||||
// You'll need to compare externally, or use your best judgement when merging.
|
||||
/var/datum/legacy_announcement/priority/priority_announcement = new(do_log = 0)
|
||||
/var/datum/legacy_announcement/priority/command/command_announcement = new(do_log = 0, do_newscast = 1)
|
||||
|
||||
@@ -138,5 +138,5 @@ datum/legacy_announcement/proc/Log(message as text, message_title as text)
|
||||
rank = character.mind.role_alt_title
|
||||
AnnounceArrivalSimple(character.real_name, rank, join_message)
|
||||
|
||||
/proc/AnnounceArrivalSimple(var/name, var/rank = "visitor", var/join_message = "will arrive at the station shortly") //VOREStation Edit - Remove shuttle reference
|
||||
/proc/AnnounceArrivalSimple(var/name, var/rank = "visitor", var/join_message = "will arrive at the station shortly")
|
||||
GLOB.global_announcer.autosay(join_message, "Arrivals Announcement Computer")
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
/*Ammo magazines*/
|
||||
//////////////////
|
||||
|
||||
/////// 5mm
|
||||
//! ## 5mm
|
||||
/*
|
||||
/datum/category_item/autolathe/arms/pistol_5mm
|
||||
name = "pistol magazine (5mm)"
|
||||
@@ -55,7 +55,7 @@
|
||||
path = /obj/item/ammo_magazine/m10x24mm/small
|
||||
hidden = 1
|
||||
|
||||
/////// .45
|
||||
//! ## .45
|
||||
/datum/category_item/autolathe/arms/pistol_45
|
||||
name = "pistol magazine (.45)"
|
||||
path =/obj/item/ammo_magazine/m45
|
||||
@@ -93,7 +93,7 @@
|
||||
path =/obj/item/ammo_magazine/m45tommydrum
|
||||
hidden = 1
|
||||
|
||||
/////// 9mm
|
||||
//! ## 9mm
|
||||
|
||||
// Full size pistol mags.
|
||||
/datum/category_item/autolathe/arms/pistol_9mm
|
||||
@@ -157,7 +157,7 @@
|
||||
name = "top-mounted SMG magazine (9mm flash)"
|
||||
path =/obj/item/ammo_magazine/m9mmt/flash
|
||||
|
||||
/////// 10mm
|
||||
//! ## 10mm
|
||||
/datum/category_item/autolathe/arms/smg_10mm
|
||||
name = "SMG magazine (10mm)"
|
||||
path =/obj/item/ammo_magazine/m10mm
|
||||
@@ -168,7 +168,7 @@
|
||||
path =/obj/item/ammo_magazine/m44
|
||||
hidden = 1
|
||||
|
||||
/////// 5.45mm
|
||||
//! ## 5.45mm
|
||||
/datum/category_item/autolathe/arms/rifle_545
|
||||
name = "rifle magazine (5.45mm)"
|
||||
path =/obj/item/ammo_magazine/m545
|
||||
@@ -178,21 +178,12 @@
|
||||
name = "rifle magazine (5.45mm practice)"
|
||||
path =/obj/item/ammo_magazine/m545/practice
|
||||
|
||||
/*/datum/category_item/autolathe/arms/rifle_545_hunter //VOREStation Edit Start. By request of Ace
|
||||
name = "rifle magazine (5.45mm hunting)"
|
||||
path =/obj/item/ammo_magazine/m545/hunter*/ //VOREStation Edit End.
|
||||
|
||||
/datum/category_item/autolathe/arms/machinegun_545
|
||||
name = "machinegun box magazine (5.45)"
|
||||
path =/obj/item/ammo_magazine/m545saw
|
||||
hidden = 1
|
||||
|
||||
/*/datum/category_item/autolathe/arms/machinegun_545_hunter //VOREStation Edit Start. By request of Ace
|
||||
name = "machinegun box magazine (5.45 hunting)"
|
||||
path =/obj/item/ammo_magazine/m545saw/hunter
|
||||
hidden = 1*/ //VOREStation Edit End.
|
||||
|
||||
/////// 7.62
|
||||
//! ## 7.62
|
||||
|
||||
/datum/category_item/autolathe/arms/rifle_762
|
||||
name = "rifle magazine (7.62mm)"
|
||||
@@ -206,7 +197,7 @@
|
||||
hidden = 1
|
||||
*/
|
||||
|
||||
/////// Shotgun
|
||||
//! ## Shotgun
|
||||
|
||||
/datum/category_item/autolathe/arms/shotgun_clip_beanbag
|
||||
name = "2-round 12g speedloader (beanbag)"
|
||||
@@ -226,101 +217,6 @@
|
||||
name = "2-round 12g speedloader (beanbag)"
|
||||
path =/obj/item/ammo_magazine/clip/c12g/beanbag
|
||||
|
||||
/* Commented out until autolathe stuff is decided/fixed. Will probably remove these entirely. -Spades
|
||||
// These should always be/empty! The idea is to fill them up manually with ammo clips.
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_5mm
|
||||
name = "pistol magazine (5mm)"
|
||||
path =/obj/item/ammo_magazine/c5mm/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/smg_5mm
|
||||
name = "top-mounted SMG magazine (5mm)"
|
||||
path =/obj/item/ammo_magazine/c5mmt/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_45
|
||||
name = "pistol magazine (.45)"
|
||||
path =/obj/item/ammo_magazine/m45/empty
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_45uzi
|
||||
name = "stick magazine (.45)"
|
||||
path =/obj/item/ammo_magazine/m45uzi/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/tommymag
|
||||
name = "Tommy Gun magazine (.45)"
|
||||
path =/obj/item/ammo_magazine/m45tommy/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/tommydrum
|
||||
name = "Tommy Gun drum magazine (.45)"
|
||||
path =/obj/item/ammo_magazine/m45tommydrum/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_9mm
|
||||
name = "pistol magazine (9mm)"
|
||||
path =/obj/item/ammo_magazine/m9mm/empty
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/smg_9mm
|
||||
name = "top-mounted SMG magazine (9mm)"
|
||||
path =/obj/item/ammo_magazine/m9mmt/empty
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/smg_10mm
|
||||
name = "SMG magazine (10mm)"
|
||||
path =/obj/item/ammo_magazine/m10mm/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_44
|
||||
name = "pistol magazine (.44)"
|
||||
path =/obj/item/ammo_magazine/m44/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/rifle_545
|
||||
name = "10rnd rifle magazine (5.45mm)"
|
||||
path =/obj/item/ammo_magazine/m545saw/empty
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/rifle_545m
|
||||
name = "20rnd rifle magazine (5.45mm)"
|
||||
path =/obj/item/ammo_magazine/m545sawm/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/rifle_SVD
|
||||
name = "10rnd rifle magazine (7.62mm)"
|
||||
path =/obj/item/ammo_magazine/m762svd/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/rifle_762
|
||||
name = "20rnd rifle magazine (7.62mm)"
|
||||
path =/obj/item/ammo_magazine/m762/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/machinegun_762
|
||||
name = "machinegun box magazine (7.62)"
|
||||
path =/obj/item/ammo_magazine/a762/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/shotgun_magazine
|
||||
name = "24rnd shotgun magazine (12g)"
|
||||
path =/obj/item/ammo_magazine/m12gdrum/empty
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1*/
|
||||
|
||||
///////////////////////////////
|
||||
/*Ammo clips and Speedloaders*/
|
||||
///////////////////////////////
|
||||
@@ -348,67 +244,6 @@
|
||||
name = "speedloader (.45 rubber)"
|
||||
path = /obj/item/ammo_magazine/s45/rubber
|
||||
|
||||
// Commented out until metal exploits with autolathe is fixed.
|
||||
/*/datum/category_item/autolathe/arms/pistol_clip_45
|
||||
name = "ammo clip (.45)"
|
||||
path =/obj/item/ammo_magazine/clip/c45
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_45r
|
||||
name = "ammo clip (.45 rubber)"
|
||||
path =/obj/item/ammo_magazine/clip/c45/rubber
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_45f
|
||||
name = "ammo clip (.45 flash)"
|
||||
path =/obj/item/ammo_magazine/clip/c45/flash
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_45p
|
||||
name = "ammo clip (.45 practice)"
|
||||
path =/obj/item/ammo_magazine/clip/c45/practice
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_9mm
|
||||
name = "ammo clip (9mm)"
|
||||
path =/obj/item/ammo_magazine/clip/c9mm
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_9mmr
|
||||
name = "ammo clip (9mm rubber)"
|
||||
path =/obj/item/ammo_magazine/clip/c9mm/rubber
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_9mmp
|
||||
name = "ammo clip (9mm practice)"
|
||||
path =/obj/item/ammo_magazine/clip/c9mm/practice
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_9mmf
|
||||
name = "ammo clip (9mm flash)"
|
||||
path =/obj/item/ammo_magazine/clip/c9mm/flash
|
||||
category = list("Arms and Ammunition")
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_5mm
|
||||
name = "ammo clip (5mm)"
|
||||
path =/obj/item/ammo_magazine/clip/c5mm
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_10mm
|
||||
name = "ammo clip (10mm)"
|
||||
path =/obj/item/ammo_magazine/clip/c10mm
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/pistol_clip_50
|
||||
name = "ammo clip (.44)"
|
||||
path =/obj/item/ammo_magazine/clip/c50
|
||||
category = list("Arms and Ammunition")
|
||||
hidden = 1
|
||||
*/
|
||||
/datum/category_item/autolathe/arms/rifle_clip_545
|
||||
name = "ammo clip (5.45mm)"
|
||||
path =/obj/item/ammo_magazine/clip/c545
|
||||
@@ -425,10 +260,6 @@
|
||||
path =/obj/item/ammo_magazine/clip/c762
|
||||
hidden = 1
|
||||
|
||||
/*/datum/category_item/autolathe/arms/rifle_clip_762_hunter //VOREStation Edit Start. By request of Ace
|
||||
name = "ammo clip (7.62mm hunting)"
|
||||
path =/obj/item/ammo_magazine/clip/c762/hunter*/ //VOREStation Edit End.
|
||||
|
||||
/datum/category_item/autolathe/arms/rifle_clip_762_practice
|
||||
name = "ammo clip (7.62mm practice)"
|
||||
path =/obj/item/ammo_magazine/clip/c762/practice
|
||||
@@ -489,16 +320,3 @@
|
||||
name = "SMG magazine (9mm)"
|
||||
path = /obj/item/ammo_magazine/m9mml
|
||||
hidden = 1
|
||||
/* De-coded?
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mmr
|
||||
name = "SMG magazine (9mm rubber)"
|
||||
path = /obj/item/ammo_magazine/m9mml/rubber
|
||||
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mmp
|
||||
name = "SMG magazine (9mm practice)"
|
||||
path = /obj/item/ammo_magazine/m9mml/practice
|
||||
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mmf
|
||||
name = "SMG magazine (9mm flash)"
|
||||
path = /obj/item/ammo_magazine/m9mml/flash
|
||||
*/
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
var/list/med = new()
|
||||
var/list/sci = new()
|
||||
var/list/car = new()
|
||||
var/list/pla = new() //VOREStation Edit
|
||||
var/list/pla = new()
|
||||
var/list/civ = new()
|
||||
var/list/bot = new()
|
||||
var/list/off = new()
|
||||
@@ -79,11 +79,9 @@
|
||||
if(SSjob.is_job_in_department(real_rank, DEPARTMENT_CARGO))
|
||||
car[name] = rank
|
||||
department = 1
|
||||
//VOREStation Add Begin
|
||||
if(SSjob.is_job_in_department(real_rank, DEPARTMENT_PLANET))
|
||||
pla[name] = rank
|
||||
department = 1
|
||||
//VOREStation Add End
|
||||
if(SSjob.is_job_in_department(real_rank, DEPARTMENT_CIVILIAN))
|
||||
civ[name] = rank
|
||||
department = 1
|
||||
@@ -148,13 +146,11 @@
|
||||
for(name in car)
|
||||
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[car[name]]</td><td>[isactive[name]]</td></tr>"
|
||||
even = !even
|
||||
//VOREStation Edit Begin
|
||||
if(pla.len > 0)
|
||||
dat += "<tr><th colspan=3>Exploration</th></tr>"
|
||||
for(name in pla)
|
||||
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[pla[name]]</td><td>[isactive[name]]</td></tr>"
|
||||
even = !even
|
||||
//VOREStation Edit End
|
||||
if(civ.len > 0)
|
||||
dat += "<tr><th colspan=3>Civilian</th></tr>"
|
||||
for(name in civ)
|
||||
@@ -288,7 +284,7 @@ GLOBAL_LIST_EMPTY(PDA_Manifest)
|
||||
list("cat" = "Medical", "elems" = med),
|
||||
list("cat" = "Science", "elems" = sci),
|
||||
list("cat" = "Cargo", "elems" = car),
|
||||
list("cat" = "Exploration", "elems" = pla), // VOREStation Edit
|
||||
list("cat" = "Exploration", "elems" = pla),
|
||||
list("cat" = "Civilian", "elems" = civ),
|
||||
list("cat" = "Silicon", "elems" = bot),
|
||||
list("cat" = "Miscellaneous", "elems" = misc)
|
||||
|
||||
@@ -125,7 +125,6 @@
|
||||
/datum/ghost_query/lost_drone
|
||||
role_name = "Lost Drone"
|
||||
question = "A lost drone onboard has been discovered by a crewmember and they are attempting to reactivate it. Would you like to play as the drone?"
|
||||
//be_special_flag = BE_AI //VOREStation Removal: Positronic role is never used because intended purpose is unfitting, so remove the check
|
||||
check_bans = list("AI", "Cyborg")
|
||||
cutoff_number = 1
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//wrapper
|
||||
/proc/do_teleport(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null, local=TRUE, bohsafe=FALSE) //VOREStation Edit
|
||||
/proc/do_teleport(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null, local=TRUE, bohsafe=FALSE)
|
||||
new /datum/teleport/instant/science(arglist(args))
|
||||
return
|
||||
|
||||
@@ -184,17 +184,6 @@
|
||||
else
|
||||
teleatom.visible_message(SPAN_DANGER("\The [teleatom] bounces off of the portal!"))
|
||||
return FALSE
|
||||
/* VOREStation Removal
|
||||
if(destination.z in GLOB.using_map.admin_levels) //CentCom z-level
|
||||
if(istype(teleatom, /obj/mecha))
|
||||
var/obj/mecha/MM = teleatom
|
||||
to_chat(MM.occupant, SPAN_DANGER("\The [MM] would not survive the jump to a location so far away!"))
|
||||
return FALSE
|
||||
if(!!length(teleatom.search_contents_for(/obj/item/storage/backpack/holding)))
|
||||
teleatom.visible_message(SPAN_DANGER("\The [teleatom] bounces off of the portal!"))
|
||||
return FALSE
|
||||
*/ //VOREStation Removal End
|
||||
//VOREStation Edit Start
|
||||
var/obstructed = 0
|
||||
var/turf/dest_turf = get_turf(destination)
|
||||
if(local && !(dest_turf.z in GLOB.using_map.player_levels))
|
||||
@@ -219,7 +208,6 @@
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
//VOREStation Edit End
|
||||
|
||||
//! ## VR FILE MERGE ## !//
|
||||
|
||||
|
||||
@@ -503,7 +503,7 @@
|
||||
/mob/living/carbon/human/mind_initialize()
|
||||
..()
|
||||
if(!mind.assigned_role)
|
||||
mind.assigned_role = USELESS_JOB //defualt //VOREStation Edit - Visitor not Assistant
|
||||
mind.assigned_role = USELESS_JOB
|
||||
|
||||
//slime
|
||||
/mob/living/simple_mob/slime/mind_initialize()
|
||||
|
||||
@@ -137,7 +137,7 @@ var/global/repository/radiation/radiation_repository = new()
|
||||
return 1
|
||||
|
||||
/mob/living/rad_act(var/severity)
|
||||
if(severity && !isbelly(loc)) //eaten mobs are made immune to radiation //VOREStation Edit Start
|
||||
if(severity && !isbelly(loc)) //eaten mobs are made immune to radiation
|
||||
src.apply_effect(severity, IRRADIATE, src.getarmor(null, "rad"))
|
||||
for(var/atom/I in src)
|
||||
I.rad_act(severity) ///VOREStation Edit End
|
||||
I.rad_act(severity)
|
||||
|
||||
@@ -1627,7 +1627,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "fitness"
|
||||
|
||||
/area/crew_quarters/longue_area
|
||||
name = "\improper Lounge" //VOREStation Edit - Muh speeling.
|
||||
name = "\improper Lounge"
|
||||
icon_state = "recreation_area"
|
||||
|
||||
/area/crew_quarters/recreation_area
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
var/old_x = 0
|
||||
var/old_y = 0
|
||||
|
||||
///VOREStation Add - Moved from /obj/vehicle (for some reason?)
|
||||
/// Used for vehicles and other things.
|
||||
var/datum/riding/riding_datum
|
||||
/// Does the atom spin when thrown.
|
||||
var/does_spin = TRUE
|
||||
|
||||
@@ -158,19 +158,15 @@
|
||||
if(. && has_buckled_mobs() && !handle_buckled_mob_movement(loc,direct)) //movement failed due to buckled mob(s)
|
||||
return FALSE
|
||||
|
||||
//Polaris stuff
|
||||
move_speed = world.time - l_move_time
|
||||
l_move_time = world.time
|
||||
m_flag = 1
|
||||
//End
|
||||
|
||||
//VOREStation Add
|
||||
if(. && riding_datum)
|
||||
riding_datum.handle_vehicle_layer()
|
||||
riding_datum.handle_vehicle_offsets()
|
||||
//VOREStation Add End
|
||||
|
||||
//Called after a successful Move(). By this point, we've already moved
|
||||
/// Called after a successful Move(). By this point, we've already moved
|
||||
/atom/movable/proc/Moved(atom/OldLoc, Dir, Forced = FALSE)
|
||||
SHOULD_CALL_PARENT(TRUE)
|
||||
SEND_SIGNAL(src, COMSIG_MOVABLE_MOVED, OldLoc, Dir, Forced)
|
||||
@@ -184,8 +180,8 @@
|
||||
|
||||
return TRUE
|
||||
|
||||
// Make sure you know what you're doing if you call this, this is intended to only be called by byond directly.
|
||||
// You probably want CanPass()
|
||||
/// Make sure you know what you're doing if you call this, this is intended to only be called by byond directly.
|
||||
/// You probably want CanPass()
|
||||
/atom/movable/Cross(atom/movable/AM)
|
||||
. = TRUE
|
||||
SEND_SIGNAL(src, COMSIG_MOVABLE_CROSS, AM)
|
||||
@@ -212,14 +208,12 @@
|
||||
CRASH("Bump was called with no argument.")
|
||||
SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, A)
|
||||
. = ..()
|
||||
// vore code
|
||||
if(throwing)
|
||||
throw_impact(A)
|
||||
throwing = 0
|
||||
if(QDELETED(A))
|
||||
return
|
||||
A.last_bumped = world.time
|
||||
// vore code end
|
||||
/*
|
||||
if(!QDELETED(throwing))
|
||||
throwing.hit_atom(A)
|
||||
|
||||
@@ -106,7 +106,6 @@ var/global/list/datum/gene/dna_genes[0]
|
||||
var/b_type = "A+" // Should probably change to an integer => string map but I'm lazy.
|
||||
var/real_name // Stores the real name of the person who originally got this dna datum. Used primarily for changelings,
|
||||
|
||||
// VOREStation
|
||||
var/custom_species
|
||||
var/base_species = SPECIES_HUMAN
|
||||
var/list/species_traits = list()
|
||||
@@ -115,7 +114,6 @@ var/global/list/datum/gene/dna_genes[0]
|
||||
var/custom_ask
|
||||
var/custom_whisper
|
||||
var/custom_exclaim
|
||||
// VOREStation
|
||||
|
||||
// New stuff
|
||||
var/species = SPECIES_HUMAN
|
||||
@@ -179,9 +177,6 @@ var/global/list/datum/gene/dna_genes[0]
|
||||
character.f_style = "Shaved"
|
||||
var/beard = facial_hair_styles_list.Find(character.f_style)
|
||||
|
||||
|
||||
// VOREStation Edit Start
|
||||
|
||||
// Demi Ears
|
||||
var/ear_style = 0
|
||||
if(character.ear_style)
|
||||
|
||||
@@ -173,8 +173,6 @@
|
||||
if((0 < beard) && (beard <= facial_hair_styles_list.len))
|
||||
H.f_style = facial_hair_styles_list[beard]
|
||||
|
||||
// VORE StationEdit Start
|
||||
|
||||
// Ears
|
||||
var/ears = dna.GetUIValueRange(DNA_UI_EAR_STYLE, ear_styles_list.len + 1) - 1
|
||||
if(ears <= 1)
|
||||
@@ -255,24 +253,21 @@
|
||||
var/datum/species/alraune/CS = H.species
|
||||
CS.copy_from(dna.base_species,dna.species_traits,src)
|
||||
CS.blood_color = dna.blood_color
|
||||
// VOREStation Edit End
|
||||
H.force_update_organs() //VOREStation Add - Gotta do this too
|
||||
H.force_update_organs()
|
||||
H.force_update_limbs()
|
||||
//H.update_body(0) //VOREStation Edit - Done in force_update_limbs already
|
||||
//H.update_body(0) // Done in force_update_limbs already
|
||||
H.update_eyes()
|
||||
H.update_hair()
|
||||
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
//VOREStation Add
|
||||
/mob/living/carbon/human/proc/force_update_organs()
|
||||
for(var/organ in organs + internal_organs)
|
||||
var/obj/item/organ/O = organ
|
||||
O.species = species
|
||||
//VOREStation Add End
|
||||
|
||||
// Used below, simple injection modifier.
|
||||
/// Used below, simple injection modifier.
|
||||
/proc/probinj(var/pr, var/inj)
|
||||
return prob(pr+inj*pr)
|
||||
|
||||
@@ -38,14 +38,12 @@
|
||||
var/mob/living/L = A
|
||||
if(L.buckled && istype(L.buckled,/obj/structure/bed/))
|
||||
var/turf/O = L.buckled
|
||||
do_teleport(O, pick(endgame_safespawns), local = FALSE) //VOREStation Edit
|
||||
do_teleport(O, pick(endgame_safespawns), local = FALSE)
|
||||
L.loc = O.loc
|
||||
else
|
||||
do_teleport(L, pick(endgame_safespawns), local = FALSE) //dead-on precision //VOREStation Edit
|
||||
|
||||
do_teleport(L, pick(endgame_safespawns), local = FALSE) //dead-on precision
|
||||
else if (istype(A, /obj/mecha/))
|
||||
do_teleport(A, pick(endgame_safespawns), local = FALSE) //dead-on precision //VOREStation Edit
|
||||
|
||||
do_teleport(A, pick(endgame_safespawns), local = FALSE) //dead-on precision
|
||||
else if (isturf(A))
|
||||
var/turf/T = A
|
||||
var/dist = get_dist(T, src)
|
||||
|
||||
@@ -244,53 +244,3 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
|
||||
to_chat(M, "<span class='danger'>THE STATION IS [who2pref] [who2]...LAWS UPDATED</span>")
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("THE STATION IS [who2pref] [who2]")
|
||||
/* //VOREStation Edit
|
||||
if(botEmagChance)
|
||||
for(var/mob/living/bot/bot in GLOB.machines)
|
||||
if(prob(botEmagChance))
|
||||
bot.emag_act(1)
|
||||
*/ //VOREStation Edit
|
||||
/*
|
||||
|
||||
var/apcnum = 0
|
||||
var/smesnum = 0
|
||||
var/airlocknum = 0
|
||||
var/firedoornum = 0
|
||||
|
||||
to_chat(world, "Ion Storm Main Started")
|
||||
|
||||
spawn(0)
|
||||
to_chat(world, "Started processing APCs")
|
||||
for (var/obj/machinery/power/apc/apc in GLOB.apcs)
|
||||
if(APC.z in station_levels)
|
||||
APC.ion_act()
|
||||
apcnum++
|
||||
to_chat(world, "Finished processing APCs. Processed: [apcnum]")
|
||||
spawn(0)
|
||||
to_chat(world, "Started processing SMES")
|
||||
for (var/obj/machinery/power/smes/SMES in GLOB.smeses)
|
||||
if(SMES.z in station_levels)
|
||||
SMES.ion_act()
|
||||
smesnum++
|
||||
to_chat(world, "Finished processing SMES. Processed: [smesnum]")
|
||||
spawn(0)
|
||||
to_chat(world, "Started processing AIRLOCKS")
|
||||
for (var/obj/machinery/door/airlock/D in GLOB.machines)
|
||||
if(D.z in station_levels)
|
||||
//if(length(D.req_access) > 0 && !(12 in D.req_access)) //not counting general access and maintenance airlocks
|
||||
airlocknum++
|
||||
spawn(0)
|
||||
D.ion_act()
|
||||
to_chat(world, "Finished processing AIRLOCKS. Processed: [airlocknum]")
|
||||
spawn(0)
|
||||
to_chat(world, "Started processing FIREDOORS")
|
||||
for (var/obj/machinery/door/firedoor/D in GLOB.machines)
|
||||
if(D.z in station_levels)
|
||||
firedoornum++;
|
||||
spawn(0)
|
||||
D.ion_act()
|
||||
to_chat(world, "Finished processing FIREDOORS. Processed: [firedoornum]")
|
||||
|
||||
to_chat(world, "Ion Storm Main Done")
|
||||
|
||||
*/
|
||||
|
||||
@@ -129,11 +129,8 @@ var/global/list/Holiday = list() //Holidays are lists now, so we can have more t
|
||||
// if(10)
|
||||
// Holiday["S'randarr's Day"] = "A Tajaran holiday that occurs on the longest day of the year in summer,
|
||||
// on Ahdomai. It is named after the Tajaran deity of Light, and huge celebrations are common."
|
||||
//VOREStation Add - Of course we need this.
|
||||
if(8)
|
||||
Holiday["Vore Day"] = "A holiday representing the innate desire in all/most/some/a few of us to devour each other or be devoured. \
|
||||
That's probably why you're here, isn't it? Get to it, then!"
|
||||
//VOREStation Add End.
|
||||
Holiday["Vore Day"] = "A holiday representing the innate desire in all/most/some/a few of us to devour each other or be devoured."
|
||||
|
||||
if(27)
|
||||
Holiday["Forgiveness Day"] = "A time to forgive and be forgiven."
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
SpinAnimation()
|
||||
|
||||
/obj/effect/meteor/Bump(atom/A)
|
||||
if(attempt_vr(src,"Bump_vr",list(A))) return //VOREStation Edit - allows meteors to be deflected by baseball bats
|
||||
if(attempt_vr(src,"Bump_vr",list(A))) return // Allows meteors to be deflected by baseball bats
|
||||
if(A)
|
||||
if(A.handle_meteor_impact(src)) // Used for special behaviour when getting hit specifically by a meteor, like a shield.
|
||||
ram_turf(get_turf(A))
|
||||
|
||||
@@ -152,7 +152,7 @@ datum/objective/anti_revolution/demote
|
||||
|
||||
if(!istype(I)) return 1
|
||||
|
||||
if(I.assignment == USELESS_JOB) //VOREStation Edit - Visitor not Assistant
|
||||
if(I.assignment == USELESS_JOB)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
required_players = 12 //should be enough for a decent manifest, hopefully
|
||||
required_players_secret = 12 //pretty sure rev doesn't even appear in secret
|
||||
required_enemies = 3
|
||||
auto_recall_shuttle = 0 //un-wanted on polaris
|
||||
auto_recall_shuttle = 0
|
||||
end_on_antag_death = 0
|
||||
antag_tags = list(MODE_REVOLUTIONARY, MODE_LOYALIST)
|
||||
require_all_templates = 1
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
if(!istype(T, /turf/space))
|
||||
env = T.return_air()
|
||||
removed = env.remove(0.25 * env.total_moles) //Remove gas from surrounding area
|
||||
removed = env.remove(0.25 * env.total_moles) // Remove gas from surrounding area
|
||||
|
||||
var/thermal_power = 300 * adjusted_power
|
||||
|
||||
|
||||
@@ -29,11 +29,9 @@
|
||||
for(dir in list(NORTH, EAST, SOUTH, WEST)) // Loop through every direction
|
||||
sleepernew = locate(/obj/machinery/sleeper, get_step(src, dir)) // Try to find a scanner in that direction
|
||||
if(sleepernew)
|
||||
// VOREStation Edit Start
|
||||
sleeper = sleepernew
|
||||
sleepernew.console = src
|
||||
break
|
||||
// VOREStation Edit End
|
||||
|
||||
|
||||
/obj/machinery/sleep_console/attack_ai(mob/user)
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
return
|
||||
M.forceMove(src)
|
||||
occupant = M
|
||||
update_icon() //icon_state = "body_scanner_1" //VOREStation Edit - Health display for consoles with light and such.
|
||||
update_icon() //icon_state = "body_scanner_1" // Health display for consoles with light and such.
|
||||
playsound(src, 'sound/machines/medbayscanner1.ogg', 50) // Beepboop you're being scanned. <3
|
||||
add_fingerprint(user)
|
||||
qdel(G)
|
||||
@@ -208,17 +208,6 @@
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/machinery/body_scanconsole/power_change()
|
||||
/* VOREStation Removal
|
||||
if(machine_stat & BROKEN)
|
||||
icon_state = "body_scannerconsole-p"
|
||||
else if(powered() && !panel_open)
|
||||
icon_state = initial(icon_state)
|
||||
machine_stat &= ~NOPOWER
|
||||
else
|
||||
spawn(rand(0, 15))
|
||||
icon_state = "body_scannerconsole-p"
|
||||
machine_stat |= NOPOWER
|
||||
*/
|
||||
update_icon() //Health display for consoles with light and such.
|
||||
|
||||
/obj/machinery/body_scanconsole/ex_act(severity)
|
||||
@@ -403,7 +392,7 @@
|
||||
|
||||
occupantData["blind"] = (H.sdisabilities & BLIND)
|
||||
occupantData["nearsighted"] = (H.disabilities & NEARSIGHTED)
|
||||
occupantData = attempt_vr(scanner,"get_occupant_data_vr",list(occupantData,H)) //VOREStation Insert
|
||||
occupantData = attempt_vr(scanner,"get_occupant_data_vr",list(occupantData,H))
|
||||
data["occupant"] = occupantData
|
||||
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
if(is_robot_module(O))
|
||||
return FALSE
|
||||
|
||||
if(istype(O,/obj/item/ammo_magazine/clip) || istype(O,/obj/item/ammo_magazine/s357) || istype(O,/obj/item/ammo_magazine/s38) || istype (O,/obj/item/ammo_magazine/s44)/* VOREstation Edit*/) // Prevents ammo recycling exploit with speedloaders.
|
||||
if(istype(O,/obj/item/ammo_magazine/clip) || istype(O,/obj/item/ammo_magazine/s357) || istype(O,/obj/item/ammo_magazine/s38) || istype (O,/obj/item/ammo_magazine/s44))
|
||||
to_chat(user, "\The [O] is too hazardous to recycle with the autolathe!")
|
||||
return
|
||||
|
||||
|
||||
@@ -61,12 +61,11 @@
|
||||
log_world("[src.name] in [get_area(src)]has errored. [src.network?"Empty network list":"Null network list"]")
|
||||
ASSERT(src.network)
|
||||
ASSERT(src.network.len > 0)
|
||||
// VOREStation Edit Start - Make mapping with cameras easier
|
||||
// Make mapping with cameras easier
|
||||
if(!c_tag)
|
||||
var/area/A = get_area(src)
|
||||
c_tag = "[A ? A.name : "Unknown"] #[rand(111,999)]"
|
||||
return ..()
|
||||
// VOREStation Edit End
|
||||
|
||||
/obj/machinery/camera/Destroy()
|
||||
deactivate(null, 0) //kick anyone viewing out
|
||||
|
||||
@@ -1,34 +1,33 @@
|
||||
// PRESETS
|
||||
/*
|
||||
var/global/list/station_networks = list(
|
||||
// NETWORK_CAFE_DOCK,
|
||||
NETWORK_CARGO,
|
||||
NETWORK_CIVILIAN,
|
||||
// NETWORK_CIVILIAN_EAST,
|
||||
// NETWORK_CIVILIAN_WEST,
|
||||
NETWORK_COMMAND,
|
||||
NETWORK_ENGINE,
|
||||
NETWORK_ENGINEERING,
|
||||
NETWORK_ENGINEERING_OUTPOST,
|
||||
NETWORK_DEFAULT,
|
||||
NETWORK_MEDICAL,
|
||||
NETWORK_MINE,
|
||||
NETWORK_NORTHERN_STAR,
|
||||
NETWORK_RESEARCH,
|
||||
NETWORK_RESEARCH_OUTPOST,
|
||||
NETWORK_ROBOTS,
|
||||
NETWORK_PRISON,
|
||||
NETWORK_SECURITY,
|
||||
NETWORK_INTERROGATION
|
||||
)
|
||||
NETWORK_CAFE_DOCK,
|
||||
NETWORK_CARGO,
|
||||
NETWORK_CIVILIAN,
|
||||
NETWORK_CIVILIAN_EAST,
|
||||
NETWORK_CIVILIAN_WEST,
|
||||
NETWORK_COMMAND,
|
||||
NETWORK_ENGINE,
|
||||
NETWORK_ENGINEERING,
|
||||
NETWORK_ENGINEERING_OUTPOST,
|
||||
NETWORK_DEFAULT,
|
||||
NETWORK_MEDICAL,
|
||||
NETWORK_MINE,
|
||||
NETWORK_NORTHERN_STAR,
|
||||
NETWORK_RESEARCH,
|
||||
NETWORK_RESEARCH_OUTPOST,
|
||||
NETWORK_ROBOTS,
|
||||
NETWORK_PRISON,
|
||||
NETWORK_SECURITY,
|
||||
NETWORK_INTERROGATION
|
||||
)
|
||||
*/
|
||||
var/global/list/engineering_networks = list(
|
||||
NETWORK_ENGINE,
|
||||
NETWORK_ENGINEERING,
|
||||
//NETWORK_ENGINEERING_OUTPOST, //VOREStation Edit: Tether has no Engineering Outpost,
|
||||
NETWORK_ALARM_ATMOS,
|
||||
NETWORK_ALARM_FIRE,
|
||||
NETWORK_ALARM_POWER)
|
||||
NETWORK_ENGINE,
|
||||
NETWORK_ENGINEERING,
|
||||
NETWORK_ALARM_ATMOS,
|
||||
NETWORK_ALARM_FIRE,
|
||||
NETWORK_ALARM_POWER)
|
||||
/obj/machinery/camera/network/crescent
|
||||
network = list(NETWORK_CRESCENT)
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
name = "\improper RCON console"
|
||||
desc = "Console used to remotely control machinery on the station."
|
||||
icon_keyboard = "power_key"
|
||||
icon_screen = "ai_fixer" //VOREStation Edit
|
||||
icon_screen = "ai_fixer"
|
||||
light_color = "#a97faa"
|
||||
circuit = /obj/item/circuitboard/rcon_console
|
||||
req_one_access = list(access_engine)
|
||||
@@ -39,4 +39,4 @@
|
||||
/obj/machinery/computer/rcon/update_icon()
|
||||
..()
|
||||
if(!(machine_stat & (NOPOWER|BROKEN)))
|
||||
overlays += image(icon, "ai-fixer-empty", overlay_layer) //VOREStation Edit
|
||||
overlays += image(icon, "ai-fixer-empty", overlay_layer)
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
modify.access -= access_type
|
||||
if(!access_allowed)
|
||||
modify.access += access_type
|
||||
modify.lost_access = list() //VOREStation addition: reset the lost access upon any modifications
|
||||
modify.lost_access = list()
|
||||
. = TRUE
|
||||
|
||||
if("assign")
|
||||
@@ -227,7 +227,7 @@
|
||||
modify.access = access
|
||||
modify.assignment = t1
|
||||
modify.rank = t1
|
||||
modify.lost_access = list() //VOREStation addition: reset the lost access upon any modifications
|
||||
modify.lost_access = list()
|
||||
|
||||
callHook("reassign_employee", list(modify))
|
||||
. = TRUE
|
||||
@@ -283,9 +283,9 @@
|
||||
|
||||
if("terminate")
|
||||
if(is_authenticated())
|
||||
modify.assignment = "Dismissed" //VOREStation Edit: setting adjustment
|
||||
modify.assignment = "Dismissed"
|
||||
modify.access = list()
|
||||
modify.lost_access = list() //VOREStation addition: reset the lost access upon any modifications
|
||||
modify.lost_access = list() // Reset the lost access upon any modifications
|
||||
|
||||
callHook("terminate_employee", list(modify))
|
||||
|
||||
|
||||
@@ -467,7 +467,7 @@
|
||||
SSemergencyshuttle.call_evac()
|
||||
log_game("[key_name(user)] has called the shuttle.")
|
||||
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
|
||||
admin_chat_message(message = "Emergency evac beginning! Called by [key_name(user)]!", color = "#CC2222") //VOREStation Add
|
||||
admin_chat_message(message = "Emergency evac beginning! Called by [key_name(user)]!", color = "#CC2222")
|
||||
|
||||
|
||||
return
|
||||
@@ -515,7 +515,7 @@
|
||||
|
||||
log_game("[user? key_name(user) : "Autotransfer"] has called the shuttle.")
|
||||
message_admins("[user? key_name_admin(user) : "Autotransfer"] has called the shuttle.", 1)
|
||||
admin_chat_message(message = "Autotransfer shuttle dispatched, shift ending soon.", color = "#2277BB") //VOREStation Add
|
||||
admin_chat_message(message = "Autotransfer shuttle dispatched, shift ending soon.", color = "#2277BB")
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -94,8 +94,6 @@
|
||||
dat += "<a href='?src=\ref[src];log=1'>View storage log</a>.<br>"
|
||||
if(allow_items)
|
||||
dat += "<a href='?src=\ref[src];view=1'>View objects</a>.<br>"
|
||||
//dat += "<a href='?src=\ref[src];item=1'>Recover object</a>.<br>" //VOREStation Removal - Just log them.
|
||||
//dat += "<a href='?src=\ref[src];allitems=1'>Recover all objects</a>.<br>" //VOREStation Removal
|
||||
|
||||
user << browse(dat, "window=cryopod_console")
|
||||
onclose(user, "cryopod_console")
|
||||
@@ -120,10 +118,8 @@
|
||||
if(!allow_items) return
|
||||
|
||||
var/dat = "<b>Recently stored objects</b><br/><hr/><br/>"
|
||||
//VOREStation Edit Start
|
||||
for(var/I in frozen_items)
|
||||
dat += "[I]<br/>"
|
||||
//VOREStation Edit End
|
||||
dat += "<hr/>"
|
||||
|
||||
user << browse(dat, "window=cryoitems")
|
||||
@@ -221,18 +217,18 @@
|
||||
var/allow_occupant_types = list(/mob/living/carbon/human)
|
||||
var/disallow_occupant_types = list()
|
||||
|
||||
var/mob/occupant = null // Person waiting to be despawned.
|
||||
var/time_till_despawn = 599 // Down to 1 minute to reflect Vorestation respawn times.
|
||||
var/time_entered = 0 // Used to keep track of the safe period.
|
||||
var/obj/item/radio/intercom/announce //
|
||||
var/mob/occupant = null // Person waiting to be despawned.
|
||||
var/time_till_despawn = 599 // Down to 1 minute to reflect our respawn times.
|
||||
var/time_entered = 0 // Used to keep track of the safe period.
|
||||
var/obj/item/radio/intercom/announce
|
||||
|
||||
var/obj/machinery/computer/cryopod/control_computer
|
||||
var/last_no_computer_message = 0
|
||||
var/applies_stasis = 0 //VOREStation Edit: allow people to change their mind
|
||||
var/applies_stasis = 0 // Allow people to change their mind
|
||||
|
||||
/obj/machinery/crypod/Initialize(mapload)
|
||||
. = ..()
|
||||
if(type == /obj/machinery/cryopod) // sue me
|
||||
if(type == /obj/machinery/cryopod) // sue me
|
||||
AddComponent(/datum/component/slaved_atom_to_loc, /atom/movable/landmark/spawnpoint/latejoin/station/cryogenics, TRUE)
|
||||
|
||||
/obj/machinery/cryopod/robot
|
||||
@@ -246,7 +242,6 @@
|
||||
on_store_name = "Robotic Storage Oversight"
|
||||
on_enter_occupant_message = "The storage unit broadcasts a sleep signal to you. Your systems start to shut down, and you enter low-power mode."
|
||||
allow_occupant_types = list(/mob/living/silicon/robot)
|
||||
//disallow_occupant_types = list(/mob/living/silicon/robot/drone) //VOREStation Removal - Why? How else do they leave?
|
||||
applies_stasis = FALSE
|
||||
|
||||
/obj/machinery/cryopod/robot/door
|
||||
@@ -366,8 +361,7 @@
|
||||
|
||||
qdel(R.mmi)
|
||||
for(var/obj/item/I in R.module) // the tools the borg has; metal, glass, guns etc
|
||||
for(var/mob/M in I) //VOREStation edit
|
||||
despawn_occupant(M)
|
||||
for(var/mob/M in I) despawn_occupant(M)
|
||||
for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags
|
||||
O.forceMove(R)
|
||||
qdel(I)
|
||||
@@ -444,14 +438,7 @@
|
||||
if(!preserve)
|
||||
qdel(W)
|
||||
else
|
||||
log_special_item(W,to_despawn) //VOREStation Add
|
||||
/* VOREStation Removal - We do our own thing.
|
||||
if(control_computer && control_computer.allow_items)
|
||||
control_computer.frozen_items += W
|
||||
W.loc = control_computer //VOREStation Edit
|
||||
else
|
||||
W.forceMove(src.loc)
|
||||
VOREStation Removal End */
|
||||
log_special_item(W,to_despawn)
|
||||
for(var/obj/structure/B in items)
|
||||
if(istype(B,/obj/structure/bed))
|
||||
qdel(B)
|
||||
@@ -517,11 +504,10 @@
|
||||
log_and_message_admins("[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) entered cryostorage.")
|
||||
|
||||
|
||||
//VOREStation Edit begin: Dont delete mobs-in-mobs
|
||||
// Dont delete mobs-in-mobs
|
||||
if(to_despawn.client && to_despawn.stat<2)
|
||||
var/mob/observer/dead/newghost = to_despawn.ghostize()
|
||||
newghost.timeofdeath = world.time
|
||||
//VOREStation Edit end: Dont delete mobs-in-mobs
|
||||
|
||||
//This should guarantee that ghosts don't spawn.
|
||||
to_despawn.ckey = null
|
||||
@@ -748,16 +734,6 @@
|
||||
/obj/machinery/computer/cryopod/gateway
|
||||
name = "teleport oversight console"
|
||||
desc = "An interface between visitors and the teleport oversight systems tasked with keeping track of all visitors who enter or exit from the teleporters."
|
||||
/* VOREStation Edit
|
||||
/obj/machinery/cryopod/robot/door/dorms
|
||||
desc = "A small elevator that goes down to the residential district."
|
||||
on_enter_occupant_message = "The elevator door closes slowly, ready to bring you down to the residential district."
|
||||
spawnpoint_type = /datum/spawnpoint/elevator
|
||||
|
||||
/obj/machinery/computer/cryopod/dorms
|
||||
name = "residential oversight console"
|
||||
desc = "An interface between visitors and the residential oversight systems tasked with keeping track of all visitors in the residential district."
|
||||
*/
|
||||
|
||||
/obj/machinery/cryopod/proc/log_special_item(atom/movable/item, mob/to_despawn)
|
||||
ASSERT(item && to_despawn)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//VOREStation Edit - Redone a lot of airlock things:
|
||||
// Redone a lot of airlock things:
|
||||
/*
|
||||
- Specific department maintenance doors
|
||||
- Named doors properly according to type
|
||||
@@ -153,7 +153,7 @@
|
||||
/obj/machinery/door/airlock/maintenance
|
||||
name = "Maintenance Access"
|
||||
icon = 'icons/obj/doors/Doormaint.dmi'
|
||||
//req_one_access = list(access_maint_tunnels) //VOREStation Edit - Maintenance is open access
|
||||
//req_one_access = list(access_maint_tunnels) // Maintenance is open access
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_mai
|
||||
open_sound_powered = 'sound/machines/door/door2o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/door2c.ogg'
|
||||
@@ -587,7 +587,7 @@
|
||||
/obj/machinery/door/airlock/alien/public // Entry to UFO.
|
||||
req_one_access = list()
|
||||
normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside.
|
||||
hackProof = TRUE //VOREStation Edit - No borgos
|
||||
hackProof = TRUE // No borgs
|
||||
|
||||
//"Red" Armory Door
|
||||
/obj/machinery/door/airlock/security/armory
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
/obj/machinery/door/airlock/alien/blue/public // Entry to UFO.
|
||||
req_one_access = list()
|
||||
normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside.
|
||||
hackProof = TRUE //VOREStation Edit - No borgos
|
||||
hackProof = TRUE // No borgs
|
||||
|
||||
/obj/machinery/door/airlock/glass_security/polarized
|
||||
name = "Electrochromic Security Airlock"
|
||||
|
||||
@@ -107,8 +107,8 @@
|
||||
M.last_bumped = world.time
|
||||
if(M.restrained() && !check_access(null))
|
||||
return
|
||||
else if(istype(M, /mob/living/simple_mob/animal/passive/mouse) && !(M.ckey)) //VOREStation Edit: Make wild mice
|
||||
return //VOREStation Edit: unable to open doors
|
||||
else if(istype(M, /mob/living/simple_mob/animal/passive/mouse) && !(M.ckey))
|
||||
return
|
||||
else
|
||||
bumpopen(M)
|
||||
|
||||
@@ -215,8 +215,8 @@
|
||||
src.add_fingerprint(user, 0, I)
|
||||
|
||||
if(istype(I))
|
||||
if(attackby_vr(I, user)) //VOREStation begin: Fireproofing
|
||||
return //VOREStation begin: Fireproofing
|
||||
if(attackby_vr(I, user))
|
||||
return
|
||||
if(istype(I, /obj/item/stack/material) && I.get_material_name() == src.get_material_name())
|
||||
if(machine_stat & BROKEN)
|
||||
to_chat(user, "<span class='notice'>It looks like \the [src] is pretty busted. It's going to need more than just patching up now.</span>")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
D.fire_act(adj_air, adj_temp, adj_volume)
|
||||
|
||||
/obj/machinery/door
|
||||
var/reinforcing = 0 //vorestation addition
|
||||
var/reinforcing = 0
|
||||
var/tintable = 0
|
||||
var/icon_tinted
|
||||
var/id_tint
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
//purge apparently means clearing the airlock chamber to vacuum (then refilling, handled later)
|
||||
target_pressure = 0
|
||||
state = STATE_DEPRESSURIZE
|
||||
playsound(master, 'sound/AI/airlockout.ogg', 100, 0) //VOREStation Add - TTS
|
||||
playsound(master, 'sound/AI/airlockout.ogg', 100, 0) //TODO: Remove all of Virgo's TTS. Doesn't match anything.
|
||||
if(!cycle_to_external_air || target_state == TARGET_OUTOPEN) // if going outside, pump internal air into air tank
|
||||
signalPump(tag_airpump, 1, 0, target_pressure) //send a signal to start depressurizing
|
||||
else
|
||||
@@ -220,7 +220,7 @@
|
||||
|
||||
else if(chamber_pressure <= target_pressure)
|
||||
state = STATE_PRESSURIZE
|
||||
playsound(master, 'sound/AI/airlockin.ogg', 100, 0) //VOREStation Add - TTS
|
||||
playsound(master, 'sound/AI/airlockin.ogg', 100, 0)
|
||||
if(!cycle_to_external_air || target_state == TARGET_INOPEN) // if going inside, pump air into airlock
|
||||
signalPump(tag_airpump, 1, 1, target_pressure) //send a signal to start pressurizing
|
||||
else
|
||||
@@ -230,7 +230,7 @@
|
||||
else if(chamber_pressure > target_pressure)
|
||||
if(!cycle_to_external_air)
|
||||
state = STATE_DEPRESSURIZE
|
||||
playsound(master, 'sound/AI/airlockout.ogg', 100, 0) //VOREStation Add - TTS
|
||||
playsound(master, 'sound/AI/airlockout.ogg', 100, 0)
|
||||
signalPump(tag_airpump, 1, 0, target_pressure) //send a signal to start depressurizing
|
||||
else
|
||||
memory["purge"] = 1 // should always purge first if using external air, chamber pressure should never be higher than target pressure here
|
||||
@@ -238,7 +238,7 @@
|
||||
memory["target_pressure"] = max(target_pressure, MIN_TARGET_PRESSURE)
|
||||
|
||||
if(STATE_PRESSURIZE)
|
||||
playsound(master, 'sound/machines/2beep.ogg', 100, 0) //VOREStation Add - TTS
|
||||
playsound(master, 'sound/machines/2beep.ogg', 100, 0)
|
||||
if(memory["chamber_sensor_pressure"] >= memory["target_pressure"] * 0.95)
|
||||
//not done until the pump has reported that it's off
|
||||
if(memory["pump_status"] != "off")
|
||||
@@ -250,11 +250,11 @@
|
||||
cycleDoors(target_state)
|
||||
state = STATE_IDLE
|
||||
target_state = TARGET_NONE
|
||||
playsound(master, 'sound/AI/airlockdone.ogg', 100, 0) //VOREStation Add - TTS
|
||||
playsound(master, 'sound/AI/airlockdone.ogg', 100, 0)
|
||||
|
||||
|
||||
if(STATE_DEPRESSURIZE)
|
||||
playsound(master, 'sound/machines/2beep.ogg', 100, 0) //VOREStation Add - TTS
|
||||
playsound(master, 'sound/machines/2beep.ogg', 100, 0)
|
||||
if(memory["chamber_sensor_pressure"] <= max(memory["target_pressure"] * 1.05, MIN_TARGET_PRESSURE))
|
||||
if(memory["pump_status"] != "off")
|
||||
signalPump(tag_airpump, 0)
|
||||
@@ -270,7 +270,7 @@
|
||||
cycleDoors(target_state)
|
||||
state = STATE_IDLE
|
||||
target_state = TARGET_NONE
|
||||
playsound(master, 'sound/AI/airlockdone.ogg', 100, 0) //VOREStation Add - TTS
|
||||
playsound(master, 'sound/AI/airlockdone.ogg', 100, 0)
|
||||
|
||||
|
||||
memory["processing"] = (state != target_state)
|
||||
|
||||
@@ -90,7 +90,6 @@ var/list/floor_light_cache = list()
|
||||
|
||||
on = !on
|
||||
if(on) update_use_power(USE_POWER_ACTIVE)
|
||||
//visible_message(SPAN_NOTICE("\The [user] turns \the [src] [on ? "on" : "off"].")) //VOREStation Edit - No thankouuuu. Too spammy.
|
||||
update_brightness()
|
||||
return
|
||||
|
||||
|
||||
@@ -125,10 +125,9 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
return
|
||||
|
||||
/obj/machinery/hologram/holopad/proc/create_holo(mob/living/silicon/ai/A, turf/T = loc)
|
||||
var/obj/effect/overlay/aiholo/hologram = new(T)//Spawn a blank effect at the location. //VOREStation Edit to specific type for adding vars
|
||||
hologram.master = A //VOREStation Edit: So you can reference the master AI from in the hologram procs
|
||||
var/obj/effect/overlay/aiholo/hologram = new(T)//Spawn a blank effect at the location.
|
||||
hologram.master = A // So you can reference the master AI from in the hologram procs
|
||||
hologram.icon = A.holo_icon
|
||||
//hologram.mouse_opacity = 0//So you can't click on it. //VOREStation Removal
|
||||
hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them.
|
||||
hologram.anchored = 1//So space wind cannot drag it.
|
||||
hologram.name = "[A.name] (Hologram)"//If someone decides to right click.
|
||||
@@ -162,13 +161,6 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
|
||||
/obj/machinery/hologram/holopad/proc/move_hologram(mob/living/silicon/ai/user)
|
||||
if(masters[user])
|
||||
/*VOREStation Removal, using our own code
|
||||
step_to(masters[user], user.eyeobj) // So it turns.
|
||||
var/obj/effect/overlay/H = masters[user]
|
||||
H.loc = get_turf(user.eyeobj)
|
||||
masters[user] = H
|
||||
*/
|
||||
//VOREStation Add - Solid mass holovore tracking stuff
|
||||
var/obj/effect/overlay/aiholo/H = masters[user]
|
||||
if(H.bellied)
|
||||
walk_to(H, user.eyeobj) //Walk-to respects obstacles
|
||||
@@ -177,7 +169,6 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
//Hologram left the screen (got stuck on a wall or something)
|
||||
if(get_dist(H, user.eyeobj) > world.view)
|
||||
clear_holo(user)
|
||||
//VOREStation Add End
|
||||
if((HOLOPAD_MODE == RANGE_BASED && (get_dist(H, src) > holo_range)))
|
||||
clear_holo(user)
|
||||
|
||||
|
||||
@@ -27,14 +27,17 @@
|
||||
|
||||
// Vars for hacking
|
||||
var/datum/wires/jukebox/wires = null
|
||||
var/hacked = 0 // Whether to show the hidden songs or not
|
||||
var/freq = 0 // Currently no effect, will return in phase II of mediamanager.
|
||||
//VOREStation Add
|
||||
var/loop_mode = JUKEMODE_PLAY_ONCE // Behavior when finished playing a song
|
||||
var/max_queue_len = 3 // How many songs are we allowed to queue up?
|
||||
/// Whether to show the hidden songs or not.
|
||||
var/hacked = 0
|
||||
/// Currently no effect, will return in phase II of mediamanager.
|
||||
var/freq = 0
|
||||
/// Behavior when finished playing a song.
|
||||
var/loop_mode = JUKEMODE_PLAY_ONCE
|
||||
/// How many songs are we allowed to queue up?
|
||||
var/max_queue_len = 3
|
||||
var/list/queue = list()
|
||||
//VOREStation Add End
|
||||
var/current_genre = "Electronic" //What is our current genre?
|
||||
/// What is our current genre?
|
||||
var/current_genre = "Electronic"
|
||||
var/list/genres = list("Arcade", "Alternative", "Classical and Orchestral", "Country and Western", "Disco, Funk, Soul, and R&B", "Electronic", "Folk and Indie", "Hip-Hop and Rap", "Jazz and Lounge", "Metal", "Pop", "Rock", "Sol Common Precursors") //Avaliable genres.
|
||||
var/datum/track/current_track
|
||||
var/list/datum/track/tracks = list(
|
||||
|
||||
@@ -75,7 +75,6 @@ Buildable meters
|
||||
if(initial(fakeA.pipe_flags) & (PIPING_ALL_LAYER|PIPING_DEFAULT_LAYER_ONLY))
|
||||
new_layer = PIPING_LAYER_DEFAULT
|
||||
piping_layer = new_layer
|
||||
// Do it the Polaris way
|
||||
switch(piping_layer)
|
||||
if(PIPING_LAYER_SCRUBBER)
|
||||
color = PIPE_COLOR_RED
|
||||
|
||||
@@ -306,8 +306,6 @@
|
||||
data["access"] = !isLocked(user)
|
||||
data["locked"] = locked
|
||||
data["enabled"] = enabled
|
||||
//data["is_lethal"] = 1 // VOREStation Removal of "Lethal" setting - it does nothing. Rykka did dis.
|
||||
//data["lethal"] = lethal // VOREStation Removal of "Lethal" setting - it does nothing. Rykka did dis.
|
||||
|
||||
if(data["access"])
|
||||
var/settings[0]
|
||||
@@ -330,8 +328,6 @@
|
||||
var/value = text2num(href_list["value"])
|
||||
if(href_list["command"] == "enable")
|
||||
enabled = value
|
||||
//else if(href_list["command"] == "lethal") // VOREStation Removal of "Lethal" setting - it does nothing. Rykka did dis.
|
||||
//lethal = value // VOREStation Removal of "Lethal" setting - it does nothing. Rykka did dis.
|
||||
else if(href_list["command"] == "check_synth")
|
||||
check_synth = value
|
||||
else if(href_list["command"] == "check_weapons")
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
icon_state = icon_state_charged
|
||||
update_use_power(USE_POWER_IDLE)
|
||||
|
||||
//VOREStation Add - NSFW Batteries
|
||||
// NSFW Batteries
|
||||
else if(istype(charging, /obj/item/ammo_casing/microbattery))
|
||||
var/obj/item/ammo_casing/microbattery/batt = charging
|
||||
if(batt.shots_left >= initial(batt.shots_left))
|
||||
@@ -179,7 +179,6 @@
|
||||
batt.shots_left++
|
||||
update_use_power(USE_POWER_ACTIVE)
|
||||
return
|
||||
//VOREStation Add End
|
||||
|
||||
else if(istype(charging, /obj/item/ammo_magazine/cell_mag))
|
||||
charge_mag(charging)
|
||||
|
||||
@@ -551,8 +551,6 @@
|
||||
if("Head of Security")
|
||||
parent_helmet = /obj/item/clothing/head/helmet/space/void/headofsecurity
|
||||
parent_suit = /obj/item/clothing/suit/space/void/headofsecurity
|
||||
//BEGIN: Space for additional downstream variants
|
||||
//VOREStation Addition Start
|
||||
if("Manager")
|
||||
parent_helmet = /obj/item/clothing/head/helmet/space/void/captain
|
||||
parent_suit = /obj/item/clothing/suit/space/void/captain
|
||||
@@ -592,8 +590,6 @@
|
||||
if("Talon Mercenary")
|
||||
parent_helmet = /obj/item/clothing/head/helmet/space/void/refurb/mercenary/talon
|
||||
parent_suit = /obj/item/clothing/suit/space/void/refurb/mercenary/talon
|
||||
//VOREStation Addition End
|
||||
//END: downstream variant space
|
||||
if(target_species)
|
||||
//Only run these checks if they have a sprite sheet defined, otherwise they use human's anyways, and there is almost definitely a sprite.
|
||||
if((helmet!=null&&(target_species in helmet.sprite_sheets_obj))||(suit!=null&&(target_species in suit.sprite_sheets_obj)))
|
||||
|
||||
@@ -41,14 +41,14 @@
|
||||
network = "tcommsat"
|
||||
autolinkers = list("hub", "relay", "c_relay", "s_relay", "m_relay", "r_relay", "science", "medical",
|
||||
"supply", "service", "common", "command", "engineering", "security", "unused", "hb_relay",
|
||||
"receiverA", "broadcasterA") //VOREStation Edit - Added "hb_relay"
|
||||
"receiverA", "broadcasterA")
|
||||
|
||||
/obj/machinery/telecomms/hub/preset_cent
|
||||
id = "CentCom Hub"
|
||||
network = "tcommsat"
|
||||
produces_heat = 0
|
||||
autolinkers = list("hub_cent", "c_relay", "s_relay", "m_relay", "r_relay", "hb_relay",
|
||||
"centcom", "receiverCent", "broadcasterCent") //VOREStation Edit - Added "hb_relay"
|
||||
"centcom", "receiverCent", "broadcasterCent")
|
||||
|
||||
//Receivers
|
||||
|
||||
|
||||
@@ -252,7 +252,6 @@
|
||||
|
||||
/obj/machinery/telecomms/receiver
|
||||
name = "Subspace Receiver"
|
||||
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
|
||||
icon_state = "broadcast receiver"
|
||||
desc = "This machine has a dish-like shape and green lights. It is designed to detect and process subspace radio activity."
|
||||
density = 1
|
||||
@@ -340,7 +339,6 @@
|
||||
|
||||
/obj/machinery/telecomms/hub
|
||||
name = "Telecommunication Hub"
|
||||
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
|
||||
icon_state = "hub"
|
||||
desc = "A mighty piece of hardware used to send/receive massive amounts of data."
|
||||
density = 1
|
||||
@@ -377,7 +375,6 @@
|
||||
|
||||
/obj/machinery/telecomms/relay
|
||||
name = "Telecommunication Relay"
|
||||
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
|
||||
icon_state = "relay"
|
||||
desc = "A mighty piece of hardware used to send massive amounts of data far away."
|
||||
density = 1
|
||||
@@ -437,7 +434,6 @@
|
||||
|
||||
/obj/machinery/telecomms/bus
|
||||
name = "Bus Mainframe"
|
||||
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
|
||||
icon_state = "bus"
|
||||
desc = "A mighty piece of hardware used to send massive amounts of data quickly."
|
||||
density = 1
|
||||
@@ -493,7 +489,6 @@
|
||||
|
||||
/obj/machinery/telecomms/processor
|
||||
name = "Processor Unit"
|
||||
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
|
||||
icon_state = "processor"
|
||||
desc = "This machine is used to process large quantities of information."
|
||||
density = 1
|
||||
@@ -535,7 +530,6 @@
|
||||
|
||||
/obj/machinery/telecomms/server
|
||||
name = "Telecommunication Server"
|
||||
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
|
||||
icon_state = "comm_server"
|
||||
desc = "A machine used to store data and network statistics."
|
||||
density = 1
|
||||
|
||||
@@ -716,8 +716,8 @@
|
||||
/obj/machinery/vending/cola
|
||||
name = "Robust Softdrinks"
|
||||
desc = "A softdrink vendor provided by Robust Industries, LLC."
|
||||
icon_state = "Cola_Machine" //VOREStation Edit
|
||||
icon_vend = "Cola_Machine-purchase" //VOREStation Edit
|
||||
icon_state = "Cola_Machine"
|
||||
icon_vend = "Cola_Machine-purchase"
|
||||
product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!"
|
||||
product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space."
|
||||
products = list(/obj/item/reagent_containers/food/drinks/cans/battery = 10,
|
||||
@@ -762,7 +762,6 @@
|
||||
/obj/item/reagent_containers/food/snacks/liquidfood = 10,
|
||||
/obj/item/reagent_containers/food/snacks/liquidprotein = 10,
|
||||
/obj/item/reagent_containers/pill/diet = 8,
|
||||
///obj/item/reagent_containers/hypospray/autoinjector/biginjector/glucose = 5, //VOREStation Removal,
|
||||
/obj/item/towel/random = 8)
|
||||
|
||||
prices = list(/obj/item/reagent_containers/food/drinks/smallmilk = 3,
|
||||
@@ -773,7 +772,6 @@
|
||||
/obj/item/reagent_containers/food/snacks/liquidfood = 10,
|
||||
/obj/item/reagent_containers/food/snacks/liquidprotein = 10,
|
||||
/obj/item/reagent_containers/pill/diet = 25,
|
||||
///obj/item/reagent_containers/hypospray/autoinjector/biginjector/glucose = 5, //VOREStation Removal,
|
||||
/obj/item/towel/random = 40,
|
||||
)
|
||||
|
||||
|
||||
@@ -80,14 +80,12 @@
|
||||
if(equip_type == EQUIP_SPECIAL)
|
||||
chassis.special_equipment -= src
|
||||
listclearnulls(chassis.special_equipment)
|
||||
//VOREStation Addition begin: MICROMECHS
|
||||
if(equip_type == EQUIP_MICRO_UTILITY)
|
||||
chassis.micro_utility_equipment -= src
|
||||
listclearnulls(chassis.micro_utility_equipment)
|
||||
if(equip_type == EQUIP_MICRO_WEAPON)
|
||||
chassis.micro_weapon_equipment -= src
|
||||
listclearnulls(chassis.micro_weapon_equipment)
|
||||
//VOREStation Addition end: MICROMECHS
|
||||
chassis.universal_equipment -= src
|
||||
chassis.equipment -= src
|
||||
listclearnulls(chassis.equipment)
|
||||
|
||||
@@ -229,7 +229,6 @@
|
||||
occupant_message("<span class=\"alert\">No reagent info gained from [A].</span>")
|
||||
return 0
|
||||
occupant_message("Analyzing reagents...")
|
||||
//VOREStation Block Edit - Start
|
||||
for(var/datum/reagent/R in A.reagents.reagent_list)
|
||||
if(R.id in known_reagents)
|
||||
occupant_message("Reagent \"[R.name]\" already present in database, skipping.")
|
||||
@@ -238,7 +237,6 @@
|
||||
send_byjax(chassis.occupant,"msyringegun.browser","reagents_form",get_reagents_form())
|
||||
else
|
||||
occupant_message("Reagent \"[R.name]\" unable to be scanned, skipping.")
|
||||
//VOREstation Block Edit - End
|
||||
occupant_message("Analysis complete.")
|
||||
return 1
|
||||
|
||||
|
||||
@@ -145,16 +145,23 @@
|
||||
var/static/image/radial_image_statpanel = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine2")
|
||||
|
||||
//Mech actions
|
||||
var/datum/mini_hud/mech/minihud //VOREStation Edit
|
||||
var/strafing = 0 //Are we strafing or not?
|
||||
var/datum/mini_hud/mech/minihud
|
||||
/// re we strafing or not?
|
||||
var/strafing = 0
|
||||
|
||||
var/defence_mode_possible = 0 //Can we even use defence mode? This is used to assign it to mechs and check for verbs.
|
||||
var/defence_mode = 0 //Are we in defence mode
|
||||
var/defence_deflect = 35 //How much it deflect
|
||||
/// Can we even use defence mode? This is used to assign it to mechs and check for verbs.
|
||||
var/defence_mode_possible = 0
|
||||
/// Are we in defence mode.
|
||||
var/defence_mode = 0
|
||||
/// How much it deflect.
|
||||
var/defence_deflect = 35
|
||||
|
||||
var/overload_possible = 0 //Same as above. Don't forget to GRANT the verb&actions if you want everything to work proper.
|
||||
var/overload = 0 //Are our legs overloaded
|
||||
var/overload_coeff = 1 //How much extra energy you use when use the L E G
|
||||
/// Same as above. Don't forget to GRANT the verb&actions if you want everything to work proper.
|
||||
var/overload_possible = 0
|
||||
/// Are our legs overloaded.
|
||||
var/overload = 0
|
||||
/// How much extra energy you use when use the L E G.
|
||||
var/overload_coeff = 1
|
||||
|
||||
var/zoom = 0
|
||||
var/zoom_possible = 0
|
||||
@@ -162,22 +169,30 @@
|
||||
var/thrusters = 0
|
||||
var/thrusters_possible = 0
|
||||
|
||||
var/phasing = 0 //Are we currently phasing
|
||||
var/phasing_possible = 0 //This is to allow phasing.
|
||||
var/can_phase = TRUE //This is an internal check during the relevant procs.
|
||||
/// Are we currently phasing.
|
||||
var/phasing = 0
|
||||
/// This is to allow phasing.
|
||||
var/phasing_possible = 0
|
||||
/// This is an internal check during the relevant procs.
|
||||
var/can_phase = TRUE
|
||||
var/phasing_energy_drain = 200
|
||||
|
||||
var/switch_dmg_type_possible = 0 //Can you switch damage type? It is mostly for the Phazon and its children.
|
||||
/// Can you switch damage type? It is mostly for the Phazon and its children.
|
||||
var/switch_dmg_type_possible = 0
|
||||
|
||||
var/smoke_possible = 0
|
||||
var/smoke_reserve = 5 //How many shots you have. Might make a reload later on. MIGHT.
|
||||
var/smoke_ready = 1 //This is a check for the whether or not the cooldown is ongoing.
|
||||
var/smoke_cooldown = 100 //How long you have between uses.
|
||||
/// How many shots you have. Might make a reload later on. MIGHT.
|
||||
var/smoke_reserve = 5
|
||||
/// This is a check for the whether or not the cooldown is ongoing.
|
||||
var/smoke_ready = 1
|
||||
/// How long you have between uses.
|
||||
var/smoke_cooldown = 100
|
||||
var/datum/effect_system/smoke_spread/smoke_system = new
|
||||
|
||||
var/cloak_possible = FALSE // Can this exosuit innately cloak?
|
||||
// Can this exosuit innately cloak?
|
||||
var/cloak_possible = FALSE
|
||||
|
||||
////All of those are for the HUD buttons in the top left. See Grant and Remove procs in mecha_actions.
|
||||
//All of those are for the HUD buttons in the top left. See Grant and Remove procs in mecha_actions.
|
||||
|
||||
var/datum/action/innate/mecha/mech_eject/eject_action = new
|
||||
var/datum/action/innate/mecha/mech_toggle_internals/internals_action = new
|
||||
@@ -1847,10 +1862,8 @@
|
||||
verbs += /obj/mecha/verb/eject
|
||||
log_append_to_last("[H] moved in as pilot.")
|
||||
update_icon()
|
||||
//VOREStation Edit Add
|
||||
if(occupant.hud_used)
|
||||
minihud = new (occupant.hud_used, src)
|
||||
//VOREStation Edit Add End
|
||||
|
||||
//This part removes all the verbs if you don't have them the _possible on your mech. This is a little clunky, but it lets you just add that to any mech.
|
||||
//And it's not like this 10yo code wasn't clunky before.
|
||||
@@ -2191,7 +2204,7 @@
|
||||
output += "Universal Module: [W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/W in special_equipment)
|
||||
output += "Special Module: [W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/W in micro_utility_equipment) // VOREstation Edit - Adds micro equipent to the menu
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/W in micro_utility_equipment)
|
||||
output += "Micro Utility Module: [W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/W in micro_weapon_equipment)
|
||||
output += "Micro Weapon Module: [W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
name = "APLU \"Ripley\""
|
||||
icon_state = "ripley"
|
||||
initial_icon = "ripley"
|
||||
step_in = 5 // vorestation edit, was 6 but that's PAINFULLY slow
|
||||
step_energy_drain = 5 // vorestation edit because 10 drained a significant chunk of its cell before you even got out the airlock
|
||||
step_in = 5
|
||||
step_energy_drain = 5
|
||||
max_temperature = 20000
|
||||
health = 200
|
||||
maxhealth = 200 //Don't forget to update the /old variant if you change this number.
|
||||
wreckage = /obj/effect/decal/mecha_wreckage/ripley
|
||||
cargo_capacity = 10
|
||||
var/obj/item/mining_scanner/orescanner // vorestation addition
|
||||
var/obj/item/mining_scanner/orescanner
|
||||
|
||||
minimum_penetration = 10
|
||||
|
||||
@@ -115,8 +115,6 @@
|
||||
icon_scale_x = 1
|
||||
icon_scale_y = 1
|
||||
|
||||
//Vorestation Edit Start
|
||||
|
||||
/obj/mecha/working/ripley/Initialize(mapload)
|
||||
. = ..()
|
||||
orescanner = new /obj/item/mining_scanner
|
||||
@@ -129,8 +127,6 @@
|
||||
|
||||
orescanner.attack_self(usr)
|
||||
|
||||
//Vorestation Edit End
|
||||
|
||||
//Meant for random spawns.
|
||||
/obj/mecha/working/ripley/mining/old
|
||||
desc = "An old, dusty mining ripley."
|
||||
|
||||
@@ -65,15 +65,12 @@
|
||||
M.setDir(buckle_dir ? buckle_dir : dir)
|
||||
M.update_canmove()
|
||||
M.update_floating( M.Check_Dense_Object() )
|
||||
// buckled_mob = M
|
||||
buckled_mobs |= M
|
||||
|
||||
//VOREStation Add
|
||||
if(riding_datum)
|
||||
riding_datum.ridden = src
|
||||
riding_datum.handle_vehicle_offsets()
|
||||
M.update_water()
|
||||
//VOREStation Add End
|
||||
|
||||
post_buckle_mob(M)
|
||||
return TRUE
|
||||
@@ -91,15 +88,12 @@
|
||||
buckled_mob.anchored = initial(buckled_mob.anchored)
|
||||
buckled_mob.update_canmove()
|
||||
buckled_mob.update_floating( buckled_mob.Check_Dense_Object() )
|
||||
// buckled_mob = null
|
||||
buckled_mobs -= buckled_mob
|
||||
|
||||
//VOREStation Add
|
||||
buckled_mob.update_water()
|
||||
if(riding_datum)
|
||||
riding_datum.restore_position(buckled_mob)
|
||||
riding_datum.handle_vehicle_offsets() // So the person in back goes to the front.
|
||||
//VOREStation Add End
|
||||
post_buckle_mob(.)
|
||||
|
||||
/atom/movable/proc/unbuckle_all_mobs(force = FALSE)
|
||||
@@ -136,29 +130,27 @@
|
||||
|
||||
. = buckle_mob(M, forced)
|
||||
if(.)
|
||||
var/reveal_message = list("buckled_mob" = null, "buckled_to" = null) //VORE EDIT: This being a list and messages existing for the buckle target atom.
|
||||
var/reveal_message = list("buckled_mob" = null, "buckled_to" = null) // This being a list and messages existing for the buckle target atom.
|
||||
if(!silent)
|
||||
if(M == user)
|
||||
reveal_message["buckled_mob"] = "<span class='notice'>You come out of hiding and buckle yourself to [src].</span>" //VORE EDIT
|
||||
reveal_message["buckled_to"] = "<span class='notice'>You come out of hiding as [M.name] buckles themselves to you.</span>" //VORE EDIT
|
||||
reveal_message["buckled_mob"] = "<span class='notice'>You come out of hiding and buckle yourself to [src].</span>"
|
||||
reveal_message["buckled_to"] = "<span class='notice'>You come out of hiding as [M.name] buckles themselves to you.</span>"
|
||||
M.visible_message(\
|
||||
"<span class='notice'>[M.name] buckles themselves to [src].</span>",\
|
||||
"<span class='notice'>You buckle yourself to [src].</span>",\
|
||||
"<span class='notice'>You hear metal clanking.</span>")
|
||||
else
|
||||
reveal_message["buckled_mob"] = "<span class='notice'>You are revealed as you are buckled to [src].</span>" //VORE EDIT
|
||||
reveal_message["buckled_to"] = "<span class='notice'>You are revealed as [M.name] is buckled to you.</span>" //VORE EDIT
|
||||
reveal_message["buckled_mob"] = "<span class='notice'>You are revealed as you are buckled to [src].</span>"
|
||||
reveal_message["buckled_to"] = "<span class='notice'>You are revealed as [M.name] is buckled to you.</span>"
|
||||
M.visible_message(\
|
||||
"<span class='danger'>[M.name] is buckled to [src] by [user.name]!</span>",\
|
||||
"<span class='danger'>You are buckled to [src] by [user.name]!</span>",\
|
||||
"<span class='notice'>You hear metal clanking.</span>")
|
||||
|
||||
M.reveal(silent, reveal_message["buckled_mob"]) //Reveal people so they aren't buckled to chairs from behind. //VORE EDIT, list arg instead of simple message var for buckled mob
|
||||
//Vore edit start
|
||||
M.reveal(silent, reveal_message["buckled_mob"]) //Reveal people so they aren't buckled to chairs from behind.
|
||||
var/mob/living/L = src
|
||||
if(istype(L))
|
||||
L.reveal(silent, reveal_message["buckled_to"])
|
||||
//Vore edit end
|
||||
|
||||
/atom/movable/proc/user_unbuckle_mob(mob/living/buckled_mob, mob/user)
|
||||
var/mob/living/M = unbuckle_mob(buckled_mob)
|
||||
|
||||
@@ -15,15 +15,14 @@
|
||||
var/amount = 3
|
||||
var/expand = 1
|
||||
var/metal = 0
|
||||
var/dries = 1 //VOREStation Add
|
||||
var/slips = 0 //VOREStation Add
|
||||
var/dries = 1
|
||||
var/slips = 0
|
||||
|
||||
/obj/effect/foam/Initialize(mapload, ismetal = FALSE)
|
||||
. = ..()
|
||||
//icon_state = "[ismetal? "m" : ""]foam" //VOREStation Removal
|
||||
metal = ismetal
|
||||
playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3)
|
||||
if(dries) //VOREStation Add
|
||||
if(dries)
|
||||
addtimer(CALLBACK(src, .proc/post_spread), 3 + metal * 3)
|
||||
addtimer(CALLBACK(src, .proc/pre_harden), 12 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/harden), 15 SECONDS)
|
||||
@@ -33,8 +32,7 @@
|
||||
checkReagents()
|
||||
|
||||
/obj/effect/foam/proc/pre_harden()
|
||||
return //VOREStation Edit
|
||||
|
||||
return
|
||||
/obj/effect/foam/proc/harden()
|
||||
if(metal)
|
||||
var/obj/structure/foamedmetal/M = new(src.loc)
|
||||
@@ -87,14 +85,17 @@
|
||||
return
|
||||
if(metal)
|
||||
return
|
||||
if(slips && istype(AM, /mob/living)) //VOREStation Add
|
||||
if(slips && istype(AM, /mob/living))
|
||||
var/mob/living/M = AM
|
||||
M.slip("the foam", 6)
|
||||
|
||||
/datum/effect_system/foam_spread
|
||||
var/amount = 5 // the size of the foam spread.
|
||||
var/list/carried_reagents // the IDs of reagents present when the foam was mixed
|
||||
var/metal = 0 // 0 = foam, 1 = metalfoam, 2 = ironfoam
|
||||
/// The size of the foam spread.
|
||||
var/amount = 5
|
||||
/// The IDs of reagents present when the foam was mixed.
|
||||
var/list/carried_reagents
|
||||
/// 0 = foam, 1 = metalfoam, 2 = ironfoam.
|
||||
var/metal = 0
|
||||
|
||||
/datum/effect_system/foam_spread/set_up(amt=5, loca, var/datum/reagents/carry = null, var/metalfoam = 0)
|
||||
amount = round(sqrt(amt / 3), 1)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/obj/effect/overlay/bluespacify
|
||||
name = "Bluespace"
|
||||
icon = 'icons/turf/space.dmi' //VOREStation Edit
|
||||
icon = 'icons/turf/space.dmi'
|
||||
icon_state = "bluespacify"
|
||||
plane = ABOVE_PLANE
|
||||
|
||||
|
||||
@@ -177,7 +177,6 @@
|
||||
entry_vent = null
|
||||
else if(entry_vent)
|
||||
if(get_dist(src, entry_vent) <= 1)
|
||||
//VOREStation Edit Start
|
||||
var/obj/machinery/atmospherics/component/unary/vent_pump/exit_vent = get_safe_ventcrawl_target(entry_vent)
|
||||
if(!exit_vent)
|
||||
return
|
||||
@@ -205,8 +204,6 @@
|
||||
if(new_area)
|
||||
new_area.Entered(src)
|
||||
|
||||
//=================
|
||||
|
||||
if(isturf(loc))
|
||||
skitter()
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
icon_state = "smoke"
|
||||
duration = 50
|
||||
|
||||
// VOREStation Add - Used by Kinetic Accelerator
|
||||
// Used by Kinetic Accelerator
|
||||
/obj/effect/temp_visual/kinetic_blast
|
||||
name = "kinetic explosion"
|
||||
icon = 'icons/obj/projectiles.dmi'
|
||||
@@ -43,9 +43,8 @@
|
||||
/obj/effect/temp_visual/explosion/fast
|
||||
icon_state = "explosionfast"
|
||||
duration = 4
|
||||
// VOREStation Add End
|
||||
|
||||
//VOREStation edit: medigun
|
||||
// Medigun
|
||||
/obj/effect/temp_visual/heal
|
||||
name = "healing glow"
|
||||
icon_state = "heal"
|
||||
@@ -55,4 +54,3 @@
|
||||
. = ..()
|
||||
pixel_x = rand(-12, 12)
|
||||
pixel_y = rand(-9, 0)
|
||||
//VOREStation edit ends
|
||||
|
||||
@@ -80,11 +80,10 @@
|
||||
light_power = 3
|
||||
light_color = "#3300ff"
|
||||
|
||||
//VOREStation edit: medigun
|
||||
// Medigun
|
||||
/obj/effect/projectile/impact/medigun
|
||||
icon = 'icons/obj/projectiles_vr.dmi'
|
||||
icon_state = "impact_medbeam"
|
||||
light_range = 2
|
||||
light_power = 0.5
|
||||
light_color = "#80F5FF"
|
||||
//VOREStation edit ends
|
||||
|
||||
@@ -92,11 +92,10 @@
|
||||
light_power = 3
|
||||
light_color = "#3300ff"
|
||||
|
||||
//VOREStation edit: medigun
|
||||
// Medigun
|
||||
/obj/effect/projectile/muzzle/medigun
|
||||
icon = 'icons/obj/projectiles_vr.dmi'
|
||||
icon_state = "muzzle_medbeam"
|
||||
light_range = 2
|
||||
light_power = 0.5
|
||||
light_color = "#80F5FF"
|
||||
//VOREStation edit ends
|
||||
|
||||
@@ -115,11 +115,10 @@
|
||||
light_power = 3
|
||||
light_color = "#3300ff"
|
||||
|
||||
//VOREStation edit: medigun
|
||||
// Medigun
|
||||
/obj/effect/projectile/tracer/medigun
|
||||
icon = 'icons/obj/projectiles_vr.dmi'
|
||||
icon_state = "medbeam"
|
||||
light_range = 2
|
||||
light_power = 0.5
|
||||
light_color = "#80F5FF"
|
||||
//VOREStation edit ends
|
||||
|
||||
@@ -188,8 +188,6 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
/obj/item/pda/syndicate
|
||||
default_cartridge = /obj/item/cartridge/syndicate
|
||||
icon_state = "pda-syn"
|
||||
// name = "Military PDA" // Vorestation Edit
|
||||
// owner = "John Doe"
|
||||
hidden = 1
|
||||
|
||||
/obj/item/pda/chaplain
|
||||
@@ -1474,7 +1472,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
|
||||
/obj/item/pda/Destroy()
|
||||
GLOB.PDAs -= src
|
||||
if (src.id && prob(100)) //IDs are kept in 90% of the cases //VOREStation Edit - 100% of the cases
|
||||
if (src.id && prob(100)) //IDs are kept in 100% of the cases //TODO: WHY?
|
||||
src.id.forceMove(get_turf(src.loc))
|
||||
else
|
||||
QDEL_NULL(src.id)
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
for(var/obj/item/communicator/comm in communicating)
|
||||
var/turf/T = get_turf(comm)
|
||||
if(!T) return
|
||||
//VOREStation Edit Start for commlinks
|
||||
// Commlinks
|
||||
var/list/mobs_to_relay
|
||||
if(istype(comm,/obj/item/communicator/commlink))
|
||||
var/obj/item/communicator/commlink/CL = comm
|
||||
@@ -215,7 +215,6 @@
|
||||
else
|
||||
var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
|
||||
mobs_to_relay = in_range["mobs"]
|
||||
//VOREStation Edit End
|
||||
|
||||
for(var/mob/mob in mobs_to_relay) //We can't use visible_message(), or else we will get an infinite loop if two communicators hear each other.
|
||||
var/dst = get_dist(get_turf(mob),get_turf(comm))
|
||||
@@ -236,7 +235,7 @@
|
||||
var/turf/T = get_turf(comm)
|
||||
if(!T)
|
||||
return
|
||||
//VOREStation Edit Start for commlinks
|
||||
// Commlinks
|
||||
var/list/mobs_to_relay
|
||||
if(istype(comm,/obj/item/communicator/commlink))
|
||||
var/obj/item/communicator/commlink/CL = comm
|
||||
@@ -244,7 +243,6 @@
|
||||
else
|
||||
var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
|
||||
mobs_to_relay = in_range["mobs"]
|
||||
//VOREStation Edit End
|
||||
|
||||
var/mob/living/L = (isliving(M) && M) || null
|
||||
var/message = text
|
||||
@@ -367,4 +365,3 @@
|
||||
|
||||
visible_message(.)
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -168,20 +168,19 @@
|
||||
playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
|
||||
var/flashfail = 0
|
||||
|
||||
//VOREStation Add - NIF
|
||||
// NIF
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.nif && H.nif.flag_check(NIF_V_FLASHPROT,NIF_FLAGS_VISION))
|
||||
flashfail = 1
|
||||
H.nif.notify("High intensity light detected, and blocked!",TRUE)
|
||||
//VOREStation Add End
|
||||
|
||||
if(iscarbon(M) && !flashfail) //VOREStation Add - NIF
|
||||
if(iscarbon(M) && !flashfail)
|
||||
var/mob/living/carbon/C = M
|
||||
if(C.stat != DEAD)
|
||||
var/safety = C.eyecheck()
|
||||
if(safety <= 0)
|
||||
var/flash_strength = 10 //Vorestation edit, making flashes behave the same as flash rounds
|
||||
var/flash_strength = 10
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
flash_strength *= H.species.flash_mod
|
||||
|
||||
@@ -24,7 +24,7 @@ var/global/list/active_radio_jammers = list()
|
||||
var/on = 0
|
||||
var/jam_range = 7
|
||||
var/obj/item/cell/device/weapon/power_source
|
||||
var/tick_cost = 5 //VOREStation Edit - For the ERPs.
|
||||
var/tick_cost = 5 // For the ERPs.
|
||||
|
||||
origin_tech = list(TECH_ILLEGAL = 7, TECH_BLUESPACE = 5) //Such technology! Subspace jamming!
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// Access check is of the type requires one. These have been carefully selected to avoid allowing the janitor to see channels he shouldn't
|
||||
GLOBAL_LIST_INIT(default_internal_channels, list(
|
||||
//VOREStation Edit Start - Updating this for Virgo
|
||||
num2text(PUB_FREQ) = list(),
|
||||
num2text(AI_FREQ) = list(access_synth),
|
||||
num2text(ENT_FREQ) = list(),
|
||||
@@ -576,8 +575,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list(
|
||||
return -1
|
||||
if(!(0 in level))
|
||||
var/turf/position = get_turf(src)
|
||||
if((!position || !(position.z in level)) && !bluespace_radio) //VOREStation Edit
|
||||
return -1
|
||||
if((!position || !(position.z in level)) && !bluespace_radio) return -1
|
||||
if(freq in ANTAG_FREQS)
|
||||
if(!(src.syndie))//Checks to see if it's allowed on that frequency, based on the encryption keys
|
||||
return -1
|
||||
|
||||
@@ -85,13 +85,11 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
dat += "\tKey: <font color='cyan'>Suffocation</font>/<font color='green'>Toxin</font>/<font color='#FFA500'>Burns</font>/<font color='red'>Brute</font><br>"
|
||||
dat += "\tDamage Specifics: <font color='cyan'>[OX]</font> - <font color='green'>[TX]</font> - <font color='#FFA500'>[BU]</font> - <font color='red'>[BR]</font><br>"
|
||||
dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)</span><br>"
|
||||
//VOREStation edit/addition starts
|
||||
if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
|
||||
dat += "<span class='notice'>Time of Death: [worldtime2stationtime(M.timeofdeath)]</span><br>"
|
||||
var/tdelta = round(world.time - M.timeofdeath)
|
||||
if(tdelta < (DEFIB_TIME_LIMIT * 10))
|
||||
dat += "<span class='notice'><b>Subject died [DisplayTimeText(tdelta)] ago - resuscitation may be possible!</b></span><br>"
|
||||
//VOREStation edit/addition ends
|
||||
if(istype(M, /mob/living/carbon/human) && mode == 1)
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/list/damaged = H.get_damaged_organs(1,1)
|
||||
@@ -578,4 +576,4 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
to_chat(user, "<span class='notice'>No radiation detected.</span>")
|
||||
return
|
||||
|
||||
#undef DEFIB_TIME_LIMIT //VOREStation addition
|
||||
#undef DEFIB_TIME_LIMIT
|
||||
|
||||
@@ -195,7 +195,6 @@
|
||||
user.visible_message("<span class='notice'>\The [user] places a bandaid over \a [W.desc] on [M]'s [affecting.name].</span>", \
|
||||
"<span class='notice'>You place a bandaid over \a [W.desc] on [M]'s [affecting.name].</span>" )
|
||||
W.bandage()
|
||||
// W.disinfect() // VOREStation - Tech1 should not disinfect
|
||||
playsound(src, pick(apply_sounds), 25)
|
||||
used++
|
||||
M.bitten = 0
|
||||
@@ -255,7 +254,7 @@
|
||||
singular_name = "advanced trauma kit"
|
||||
desc = "An advanced trauma kit for severe injuries."
|
||||
icon_state = "traumakit"
|
||||
heal_brute = 7 //VOREStation Edit
|
||||
heal_brute = 7
|
||||
origin_tech = list(TECH_BIO = 1)
|
||||
apply_sounds = list('sound/effects/rip1.ogg','sound/effects/rip2.ogg','sound/effects/tape.ogg')
|
||||
|
||||
@@ -283,8 +282,6 @@
|
||||
continue
|
||||
if (W.bandaged && W.disinfected)
|
||||
continue
|
||||
//if(used == amount) //VOREStation Edit
|
||||
// break //VOREStation Edit
|
||||
if(!do_mob(user, M, W.damage/5))
|
||||
to_chat(user, "<span class='notice'>You must stand still to bandage wounds.</span>")
|
||||
break
|
||||
@@ -304,8 +301,8 @@
|
||||
W.disinfect()
|
||||
W.heal_damage(heal_brute)
|
||||
playsound(src, pick(apply_sounds), 25)
|
||||
used = 1 //VOREStation Edit
|
||||
update_icon() // VOREStation Edit - Support for stack icons
|
||||
used = 1
|
||||
update_icon() // Support for stack icons
|
||||
affecting.update_damages()
|
||||
if(used == amount)
|
||||
if(affecting.is_bandaged())
|
||||
@@ -319,7 +316,7 @@
|
||||
singular_name = "advanced burn kit"
|
||||
desc = "An advanced treatment kit for severe burns."
|
||||
icon_state = "burnkit"
|
||||
heal_burn = 7 //VOREStation Edit
|
||||
heal_burn = 7
|
||||
origin_tech = list(TECH_BIO = 1)
|
||||
apply_sounds = list('sound/effects/ointment.ogg')
|
||||
|
||||
@@ -352,7 +349,7 @@
|
||||
use(1)
|
||||
affecting.salve()
|
||||
playsound(src, pick(apply_sounds), 25)
|
||||
update_icon() // VOREStation Edit - Support for stack icons
|
||||
update_icon() // Support for stack icons
|
||||
|
||||
/obj/item/stack/medical/splint
|
||||
name = "medical splints"
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting)
|
||||
//VOREStation Edit Start
|
||||
if (S && (S.robotic >= ORGAN_ROBOT))
|
||||
if(!S.get_damage())
|
||||
to_chat(user, "<span class='notice'>Nothing to fix here.</span>")
|
||||
@@ -47,7 +46,6 @@
|
||||
use(1)
|
||||
user.visible_message("<span class='notice'>\The [user] applies some nanite paste on [user != M ? "[M]'s [S.name]" : "[S]"] with [src].</span>",\
|
||||
"<span class='notice'>You apply some nanite paste on [user == M ? "your" : "[M]'s"] [S.name].</span>")
|
||||
//VOREStation Edit End
|
||||
|
||||
/obj/item/stack/nanopaste/advanced
|
||||
name = "advanced nanopaste"
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
/obj/item/duct_tape_roll,
|
||||
/obj/item/switchtool,
|
||||
/obj/item/integrated_electronics/wirer,
|
||||
/obj/item/integrated_electronics/debugger, //Vorestation edit adding debugger to toolbelt can hold list
|
||||
/obj/item/integrated_electronics/debugger,
|
||||
)
|
||||
|
||||
/obj/item/storage/belt/utility/full
|
||||
@@ -125,7 +125,7 @@
|
||||
/obj/item/reagent_containers/glass/bottle,
|
||||
/obj/item/reagent_containers/pill,
|
||||
/obj/item/reagent_containers/syringe,
|
||||
/obj/item/storage/quickdraw/syringe_case, //VOREStation Addition - Adds syringe cases,
|
||||
/obj/item/storage/quickdraw/syringe_case,
|
||||
/obj/item/flame/lighter/zippo,
|
||||
/obj/item/storage/fancy/cigarettes,
|
||||
/obj/item/storage/pill_bottle,
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
/obj/item/storage/briefcase/clutch
|
||||
name = "clutch purse"
|
||||
desc = "A fashionable handheld bag typically used by women."
|
||||
icon = 'icons/obj/clothing/backpack.dmi' //VOREStation Edit - Wrong sprite location
|
||||
icon = 'icons/obj/clothing/backpack.dmi'
|
||||
icon_state = "clutch"
|
||||
item_state_slots = list(slot_r_hand_str = "smpurse", slot_l_hand_str = "smpurse")
|
||||
force = 0
|
||||
|
||||
@@ -16,22 +16,17 @@
|
||||
throw_range = 8
|
||||
slot_flags = SLOT_BELT
|
||||
max_storage_space = ITEMSIZE_COST_SMALL * 7 // 14
|
||||
// var/list/icon_variety // VOREStation edit
|
||||
drop_sound = 'sound/items/drop/cardboardbox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
|
||||
|
||||
/obj/item/storage/firstaid/Initialize(mapload)
|
||||
. = ..()
|
||||
// if(icon_variety) // VOREStation edit
|
||||
// icon_state = pick(icon_variety)
|
||||
// icon_variety = null
|
||||
|
||||
/obj/item/storage/firstaid/fire
|
||||
name = "fire first aid kit"
|
||||
desc = "It's an emergency medical kit for when the toxins lab <i>spontaneously</i> burns down."
|
||||
icon_state = "ointment"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-ointment", slot_l_hand_str = "firstaid-ointment")
|
||||
// icon_variety = list("ointment","firefirstaid") // VOREStation edit
|
||||
starts_with = list(
|
||||
/obj/item/healthanalyzer,
|
||||
/obj/item/reagent_containers/hypospray/autoinjector,
|
||||
@@ -59,7 +54,6 @@
|
||||
desc = "Used to treat when one has a high amount of toxins in their body."
|
||||
icon_state = "antitoxin"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-toxin", slot_l_hand_str = "firstaid-toxin")
|
||||
// icon_variety = list("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") // VOREStation edit
|
||||
starts_with = list(
|
||||
/obj/item/reagent_containers/syringe/antitoxin,
|
||||
/obj/item/reagent_containers/syringe/antitoxin,
|
||||
@@ -124,7 +118,7 @@
|
||||
icon_state = "surgerykit"
|
||||
item_state = "firstaid-surgery"
|
||||
max_w_class = ITEMSIZE_NORMAL
|
||||
max_storage_space = 25 //update this when necessary!
|
||||
max_storage_space = 25 //update this when necessary!
|
||||
|
||||
can_hold = list(
|
||||
/obj/item/surgical,
|
||||
@@ -145,7 +139,6 @@
|
||||
/obj/item/surgical/bonegel,
|
||||
/obj/item/surgical/FixOVein,
|
||||
/obj/item/stack/medical/advanced/bruise_pack,
|
||||
///obj/item/healthanalyzer/advanced,
|
||||
/obj/item/autopsy_scanner
|
||||
)
|
||||
|
||||
@@ -183,11 +176,11 @@
|
||||
max_w_class = ITEMSIZE_TINY
|
||||
|
||||
var/label_text = ""
|
||||
var/labeled = 0 // Citadel Change - Used in labeling
|
||||
var/labeled = 0
|
||||
var/base_name = " "
|
||||
var/base_desc = " "
|
||||
var/base_icon = "pill_canister" // Citadel Change - Used in recoloring
|
||||
var/bottle_color = "orange" // Citadel Change - Used in recoloring
|
||||
var/base_icon = "pill_canister"
|
||||
var/bottle_color = "orange"
|
||||
|
||||
/obj/item/storage/pill_bottle/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -208,8 +201,8 @@
|
||||
to_chat(user, "<span class='notice'>You set the label to \"[tmp_label]\".</span>")
|
||||
label_text = tmp_label
|
||||
update_name_label()
|
||||
labeled = 1 // Citadel Change - Overlay for labels
|
||||
update_icon() // Citadel Change - Overlay for labels
|
||||
labeled = 1
|
||||
update_icon()
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -225,7 +218,7 @@
|
||||
name = "[base_name] ([label_text])"
|
||||
desc = "[base_desc] It is labeled \"[label_text]\"."
|
||||
|
||||
/obj/item/storage/pill_bottle/proc/choose_color() // BEGIN Citadel Changes - Bottle recoloring
|
||||
/obj/item/storage/pill_bottle/proc/choose_color()
|
||||
set name = "Recolor bottle"
|
||||
set category = "Object"
|
||||
set desc = "Click to choose a color for the pill bottle."
|
||||
@@ -262,87 +255,87 @@
|
||||
. = ..()
|
||||
if(base_icon == "pill_canister")
|
||||
verbs += /obj/item/storage/pill_bottle/proc/choose_color
|
||||
update_icon() // END Citadel Changes - Bottle recoloring
|
||||
update_icon()
|
||||
|
||||
/obj/item/storage/pill_bottle/antitox
|
||||
name = "bottle of Dylovene pills"
|
||||
desc = "Contains pills used to counter toxins."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
bottle_color = "green" // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
bottle_color = "green"
|
||||
starts_with = list(/obj/item/reagent_containers/pill/antitox = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/bicaridine
|
||||
name = "bottle of Bicaridine pills"
|
||||
desc = "Contains pills used to stabilize the severely injured."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
bottle_color = "red" // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
bottle_color = "red"
|
||||
starts_with = list(/obj/item/reagent_containers/pill/bicaridine = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/dexalin_plus
|
||||
name = "bottle of Dexalin Plus pills"
|
||||
desc = "Contains pills used to treat extreme cases of oxygen deprivation."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
bottle_color = "blue" // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
bottle_color = "blue"
|
||||
starts_with = list(/obj/item/reagent_containers/pill/dexalin_plus = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/dermaline
|
||||
name = "bottle of Dermaline pills"
|
||||
desc = "Contains pills used to treat burn wounds."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
starts_with = list(/obj/item/reagent_containers/pill/dermaline = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/dylovene
|
||||
name = "bottle of Dylovene pills"
|
||||
desc = "Contains pills used to treat toxic substances in the blood."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
bottle_color = "green" // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
bottle_color = "green"
|
||||
starts_with = list(/obj/item/reagent_containers/pill/dylovene = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/inaprovaline
|
||||
name = "bottle of Inaprovaline pills"
|
||||
desc = "Contains pills used to stabilize patients."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
bottle_color = "blue" // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
bottle_color = "blue"
|
||||
starts_with = list(/obj/item/reagent_containers/pill/inaprovaline = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/kelotane
|
||||
name = "bottle of kelotane pills"
|
||||
desc = "Contains pills used to treat burns."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
starts_with = list(/obj/item/reagent_containers/pill/kelotane = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/spaceacillin
|
||||
name = "bottle of Spaceacillin pills"
|
||||
desc = "A theta-lactam antibiotic. Effective against many diseases likely to be encountered in space."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
bottle_color = "white" // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
bottle_color = "white"
|
||||
starts_with = list(/obj/item/reagent_containers/pill/spaceacillin = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/tramadol
|
||||
name = "bottle of Tramadol pills"
|
||||
desc = "Contains pills used to relieve pain."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
bottle_color = "purple" // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
bottle_color = "purple"
|
||||
starts_with = list(/obj/item/reagent_containers/pill/tramadol = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/citalopram
|
||||
name = "bottle of Citalopram pills"
|
||||
desc = "Contains pills used to stabilize a patient's mood."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
starts_with = list(/obj/item/reagent_containers/pill/citalopram = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/carbon
|
||||
name = "bottle of Carbon pills"
|
||||
desc = "Contains pills used to neutralise chemicals in the stomach."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
bottle_color = "black" // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
bottle_color = "black"
|
||||
starts_with = list(/obj/item/reagent_containers/pill/carbon = 7)
|
||||
|
||||
/obj/item/storage/pill_bottle/iron
|
||||
name = "bottle of Iron pills"
|
||||
desc = "Contains pills used to aid in blood regeneration."
|
||||
labeled = 1 // Citadel Change - Recoloring - There are a lot of these.
|
||||
bottle_color = "black" // Citadel Change - Recoloring - There are a lot of these.
|
||||
labeled = 1
|
||||
bottle_color = "black"
|
||||
starts_with = list(/obj/item/reagent_containers/pill/iron = 7)
|
||||
|
||||
/obj/item/storage/firstaid/clotting
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
/obj/item/storage/internal/Initialize(mapload)
|
||||
. = ..()
|
||||
master_item = loc
|
||||
//name = master_item.name //VOREStation Removal
|
||||
verbs -= /obj/item/verb/verb_pickup //make sure this is never picked up.
|
||||
|
||||
/obj/item/storage/internal/Destroy()
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
/obj/item/storage/quickdraw
|
||||
name = "quickdraw"
|
||||
desc = "This object should not appear"
|
||||
icon = 'icons/obj/storage.dmi' // VOREStation Edit
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
|
||||
//Quickmode
|
||||
//When set to 0, this storage will operate as a regular storage, and clicking on it while equipped will open it as a storage
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
rcd_beam = beam_origin.Beam(A, icon_state = "rped_upgrade", time = max(true_delay, 5))
|
||||
busy = TRUE
|
||||
|
||||
perform_effect(A, true_delay) //VOREStation Add
|
||||
perform_effect(A, true_delay)
|
||||
if(do_after(user, true_delay, target = A))
|
||||
busy = FALSE
|
||||
// Doing another check in case we lost matter during the delay for whatever reason.
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
// VOREStation specific circuit boards!
|
||||
|
||||
// Board for the parts lathe in partslathe.dm
|
||||
/obj/item/circuitboard/partslathe
|
||||
name = T_BOARD("parts lathe")
|
||||
|
||||
@@ -110,12 +110,11 @@
|
||||
|
||||
uses -= used_uses
|
||||
W.add_fingerprint(user)
|
||||
//Vorestation Edit: Because some things (read lift doors) don't get emagged
|
||||
// Because some things (read lift doors) don't get emagged
|
||||
if(used_uses)
|
||||
log_and_message_admins("emagged \an [W].")
|
||||
else
|
||||
log_and_message_admins("attempted to emag \an [W].")
|
||||
// Vorestation Edit: End of Edit
|
||||
log_and_message_admins("emagged \an [W].")
|
||||
|
||||
if(uses<1)
|
||||
|
||||
@@ -386,8 +386,8 @@
|
||||
job_access_type = /datum/job/station/qm
|
||||
|
||||
/obj/item/card/id/assistant
|
||||
assignment = USELESS_JOB //VOREStation Edit - Visitor not Assistant
|
||||
rank = USELESS_JOB //VOREStation Edit - Visitor not Assistant
|
||||
assignment = USELESS_JOB
|
||||
rank = USELESS_JOB
|
||||
job_access_type = /datum/job/station/assistant
|
||||
|
||||
/obj/item/card/id/civilian
|
||||
|
||||
@@ -110,12 +110,11 @@
|
||||
|
||||
uses -= used_uses
|
||||
W.add_fingerprint(user)
|
||||
//Vorestation Edit: Because some things (read lift doors) don't get emagged
|
||||
//V Because some things (read lift doors) don't get emagged
|
||||
if(used_uses)
|
||||
log_and_message_admins("emagged \an [W].")
|
||||
else
|
||||
log_and_message_admins("attempted to emag \an [W].")
|
||||
// Vorestation Edit: End of Edit
|
||||
log_and_message_admins("emagged \an [W].")
|
||||
|
||||
if(uses<1)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user