* 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:
Zandario
2022-05-26 03:37:55 -05:00
committed by GitHub
parent 7152e7ff2a
commit 5a7f357b85
383 changed files with 986 additions and 2585 deletions

View File

@@ -420,7 +420,7 @@ Just because something isn't on this list doesn't mean that it's acceptable. Use
## Content requiring prior approval ## Content requiring prior approval
Certain types of changes may require prior approval from maintainers. This currently includes: 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) * 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. 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.

View File

@@ -36,7 +36,7 @@ jobs:
tools/bootstrap/python -c '' tools/bootstrap/python -c ''
- name: Run Linters - name: Run Linters
run: | 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_changelogs.sh
bash tools/ci/check_grep.sh bash tools/ci/check_grep.sh
bash tools/ci/check_misc.sh bash tools/ci/check_misc.sh

View File

@@ -15,7 +15,7 @@
This is the codebase for the CitadelRP flavoured fork of SpaceStation 13. 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
[Downloading](.github/guides/DOWNLOADING.md) [Downloading](.github/guides/DOWNLOADING.md)

View File

@@ -1,4 +1,4 @@
environment = "vorestation.dme" environment = "citadel.dme"
[langserver] [langserver]
dreamchecker = true dreamchecker = true

View File

@@ -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. // 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. // New source code should be placed in .dm files: choose File/New --> Code File.
// BEGIN_INTERNALS // BEGIN_INTERNALS
@@ -2149,7 +2149,6 @@
#include "code\modules\events\spacevine.dm" #include "code\modules\events\spacevine.dm"
#include "code\modules\events\spider_infestation.dm" #include "code\modules\events\spider_infestation.dm"
#include "code\modules\events\spontaneous_appendicitis.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\supply_demand.dm"
#include "code\modules\events\wallrot.dm" #include "code\modules\events\wallrot.dm"
#include "code\modules\examine\examine.dm" #include "code\modules\examine\examine.dm"

View File

@@ -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_ATMOS "Atmosphere Alarms"
#define NETWORK_ALARM_POWER "Power Alarms" #define NETWORK_ALARM_POWER "Power Alarms"
#define NETWORK_ALARM_FIRE "Fire Alarms" #define NETWORK_ALARM_FIRE "Fire Alarms"
///Using different from Polaris one for better name
#define NETWORK_TCOMMS "Telecommunications" #define NETWORK_TCOMMS "Telecommunications"
#define NETWORK_OUTSIDE "Outside" #define NETWORK_OUTSIDE "Outside"
#define NETWORK_EXPLORATION "Exploration" #define NETWORK_EXPLORATION "Exploration"

View File

@@ -16,7 +16,7 @@
/// Z-levels exempt from xenoarch digsite generation. /// Z-levels exempt from xenoarch digsite generation.
#define MAP_LEVEL_XENOARCH_EXEMPT 0x080 #define MAP_LEVEL_XENOARCH_EXEMPT 0x080
// Misc map defines. // Misc map defines.
///VOREStation Edit
/// Automatically created submaps are forbidden from being this close to the main map's edge. /// Automatically created submaps are forbidden from being this close to the main map's edge.
#define SUBMAP_MAP_EDGE_PAD 8 #define SUBMAP_MAP_EDGE_PAD 8
// TG MAP LOADING SYSTEM PENDING // TG MAP LOADING SYSTEM PENDING

View File

@@ -284,10 +284,10 @@ var/list/economy_station_departments = list(
DEPARTMENT_PLANET, DEPARTMENT_PLANET,
DEPARTMENT_RESEARCH, DEPARTMENT_RESEARCH,
DEPARTMENT_SECURITY DEPARTMENT_SECURITY
) //VOREStation Edit )
// vorstation off-duty time // Off-duty time
#define PTO_CARGO "Cargo" #define PTO_CARGO "Cargo"
#define PTO_CIVILIAN "Civilian" #define PTO_CIVILIAN "Civilian"
#define PTO_COMMAND "Command" #define PTO_COMMAND "Command"

View File

@@ -56,8 +56,6 @@
'sound/ambience/generic/generic3.ogg'\ '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? // Sounds of PA announcements, presumably involving shuttles?
#define AMBIENCE_ARRIVALS list(\ #define AMBIENCE_ARRIVALS list(\
'sound/ambience/arrivals/arrivals1.ogg',\ 'sound/ambience/arrivals/arrivals1.ogg',\

View File

@@ -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_LOBBYMUSIC 1024
#define CHANNEL_ADMIN 1023 #define CHANNEL_ADMIN 1023
#define CHANNEL_VOX 1022 #define CHANNEL_VOX 1022
#define CHANNEL_JUKEBOX 1021 #define CHANNEL_JUKEBOX 1021
///sound channel for heartbeats /// Sound channel for heartbeats
#define CHANNEL_HEARTBEAT 1020 #define CHANNEL_HEARTBEAT 1020
#define CHANNEL_AMBIENCE_FORCED 1019 #define CHANNEL_AMBIENCE_FORCED 1019
#define CHANNEL_AMBIENCE 1018 #define CHANNEL_AMBIENCE 1018
#define CHANNEL_BUZZ 1017 #define CHANNEL_BUZZ 1017
#define CHANNEL_BICYCLE 1016 #define CHANNEL_BICYCLE 1016
///VORESTATION ADD - Fancy Sound Loop channel /// Fancy Sound Loop channel
#define CHANNEL_PREYLOOP 1015 #define CHANNEL_PREYLOOP 1015
//THIS SHOULD ALWAYS BE THE LOWEST ONE! //THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED //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) #define MAX_INSTRUMENT_CHANNELS (128 * 6)

View File

@@ -1,9 +1,8 @@
/* /**
// Contains VOREStation type2type functions * Contains VOREStation type2type functions
// list2text - takes delimiter and returns text * list2text - takes delimiter and returns text
// text2list - takes delimiter, and creates list * text2list - takes delimiter, and creates list
// */
*/
// Concatenates a list of strings into a single string. A seperator may optionally be provided. // Concatenates a list of strings into a single string. A seperator may optionally be provided.
/proc/list2text(list/ls, sep) /proc/list2text(list/ls, sep)

View File

@@ -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/main{plane = MOB_PLANE}
// . += new /atom/movable/screen/plane_master/cloaked //Cloaked atoms! // . += 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 . += new /atom/movable/screen/plane_master{plane = PLANE_AUGMENTED} //Augmented reality
//VOREStation Add End
. += new /atom/movable/screen/plane_master/parallax{plane = PARALLAX_PLANE} . += new /atom/movable/screen/plane_master/parallax{plane = PARALLAX_PLANE}

View File

@@ -31,7 +31,8 @@
return 1 return 1
if(get_dist(src,T0) > 1) if(get_dist(src,T0) > 1)
return 0 return 0
if(T0.z != z) return 0 //VOREStation Add if(T0.z != z)
return 0
if(T0.x == x || T0.y == y) if(T0.x == x || T0.y == y)
// Check for border blockages // 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) return T0.ClickCross(get_dir(T0,src), border_only = 1) && src.ClickCross(get_dir(src,T0), border_only = 1, target_atom = target)

View File

@@ -128,7 +128,7 @@
trigger_aiming(TARGET_CAN_CLICK) trigger_aiming(TARGET_CAN_CLICK)
return 1 return 1
// VOREStation Addition Start: inbelly item interaction // Inbelly item interaction
if(isbelly(loc) && (loc == A.loc)) if(isbelly(loc) && (loc == A.loc))
if(W) if(W)
var/resolved = W.resolve_attackby(A, src, params) var/resolved = W.resolve_attackby(A, src, params)
@@ -139,7 +139,6 @@
setClickCooldown(get_attack_speed()) setClickCooldown(get_attack_speed())
UnarmedAttack(A, 1) UnarmedAttack(A, 1)
return 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 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 return

View File

@@ -182,7 +182,7 @@
/mob/Initialize(mapload) /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) ability_master = new /atom/movable/screen/movable/ability_master(src)
///////////ACTUAL ABILITIES//////////// ///////////ACTUAL ABILITIES////////////

View File

@@ -309,7 +309,6 @@
mymob.hydration_icon.screen_loc = ui_nutrition_small mymob.hydration_icon.screen_loc = ui_nutrition_small
hud_elements |= mymob.hydration_icon hud_elements |= mymob.hydration_icon
//VOREStation Addition begin
mymob.shadekin_dark_display = new /atom/movable/screen/shadekin/darkness() mymob.shadekin_dark_display = new /atom/movable/screen/shadekin/darkness()
mymob.shadekin_dark_display.screen_loc = ui_shadekin_dark_display mymob.shadekin_dark_display.screen_loc = ui_shadekin_dark_display
mymob.shadekin_dark_display.icon_state = "dark" 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.screen_loc = ui_xenochimera_danger_display
mymob.xenochimera_danger_display.icon_state = "danger00" mymob.xenochimera_danger_display.icon_state = "danger00"
hud_elements |= mymob.xenochimera_danger_display hud_elements |= mymob.xenochimera_danger_display
//VOREStation Addition end
mymob.ling_chem_display = new /atom/movable/screen/ling/chems() mymob.ling_chem_display = new /atom/movable/screen/ling/chems()
mymob.ling_chem_display.screen_loc = ui_ling_chemical_display mymob.ling_chem_display.screen_loc = ui_ling_chemical_display

View File

@@ -463,7 +463,7 @@
var/mob/living/silicon/ai/AI = usr var/mob/living/silicon/ai/AI = usr
AI.view_images() AI.view_images()
else 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 return 1
/atom/movable/screen/inventory/Click() /atom/movable/screen/inventory/Click()

View File

@@ -51,7 +51,7 @@ avoid code duplication. This includes items that may sometimes act as a standard
else else
return 0 return 0
if(attempt_vr(src,"vore_attackby",args)) 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) return I.attack(src, user, user.zone_sel.selecting, attack_modifier)
// Used to get how fast a mob should attack, and influences click delay. // Used to get how fast a mob should attack, and influences click delay.

View File

@@ -2,7 +2,7 @@
#define SSBELLIES_IGNORED 2 #define SSBELLIES_IGNORED 2
// //
// Bellies subsystem - Process vore bellies // Bellies subsystem - Process bellies
// //
SUBSYSTEM_DEF(bellies) SUBSYSTEM_DEF(bellies)

View File

@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(inactivity)
if(config_legacy.kick_inactive) if(config_legacy.kick_inactive)
for(var/i in GLOB.clients) for(var/i in GLOB.clients)
var/client/C = i 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>") 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 var/information

View File

@@ -56,10 +56,8 @@ var/global/datum/controller/occupations/job_master
return 0 return 0
if(!job.player_old_enough(player.client)) if(!job.player_old_enough(player.client))
return 0 return 0
//VOREStation Add
if(!is_job_whitelisted(player, rank)) if(!is_job_whitelisted(player, rank))
return 0 return 0
//VOREStation Add End
var/position_limit = job.total_positions var/position_limit = job.total_positions
if(!latejoin) 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)) if(job.minimum_character_age && (player.client.prefs.age < job.minimum_character_age))
Debug("FOC character not old enough, Player: [player]") Debug("FOC character not old enough, Player: [player]")
continue continue
//VOREStation Code Start
if(!is_job_whitelisted(player, job.title)) if(!is_job_whitelisted(player, job.title))
Debug("FOC is_job_whitelisted failed, Player: [player]") Debug("FOC is_job_whitelisted failed, Player: [player]")
continue continue
//VOREStation Code End
if(flag && !(player.client.prefs.be_special & flag)) if(flag && !(player.client.prefs.be_special & flag))
Debug("FOC flag failed, Player: [player], Flag: [flag], ") Debug("FOC flag failed, Player: [player], Flag: [flag], ")
continue 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)) if(job.minimum_character_age && (player.client.prefs.age < job.minimum_character_age))
continue 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 continue
if(SSjob.is_job_in_department(job.title, DEPARTMENT_COMMAND)) //If you want a command position, select it! 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]") Debug("GRJ player not old enough, Player: [player]")
continue continue
//VOREStation Code Start
if(!is_job_whitelisted(player, job.title)) if(!is_job_whitelisted(player, job.title))
Debug("GRJ player not whitelisted for this job, Player: [player], Job: [job.title]") Debug("GRJ player not whitelisted for this job, Player: [player], Job: [job.title]")
continue continue
//VOREStation Code End
if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1) if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1)
Debug("GRJ Random job given, Player: [player], Job: [job]") 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]") Debug("AC1, Candidates: [assistant_candidates.len]")
for(var/mob/new_player/player in assistant_candidates) for(var/mob/new_player/player in assistant_candidates)
Debug("AC1 pass, Player: [player]") Debug("AC1 pass, Player: [player]")
AssignRole(player, USELESS_JOB) //VOREStation Edit - Visitor not Assistant AssignRole(player, USELESS_JOB)
assistant_candidates -= player assistant_candidates -= player
Debug("DO, AC1 end") Debug("DO, AC1 end")
@@ -322,7 +316,7 @@ var/global/datum/controller/occupations/job_master
for(var/mob/new_player/player in unassigned) for(var/mob/new_player/player in unassigned)
if(player.client.prefs.alternate_option == BE_ASSISTANT) if(player.client.prefs.alternate_option == BE_ASSISTANT)
Debug("AC2 Assistant located, Player: [player]") 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 ones returning to lobby
for(var/mob/new_player/player in unassigned) for(var/mob/new_player/player in unassigned)
@@ -443,7 +437,7 @@ var/global/datum/controller/occupations/job_master
H.job = rank H.job = rank
log_game("JOINED [key_name(H)] as \"[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 they're head, give them the account info for their department
if(H.mind && job.department_accounts) if(H.mind && job.department_accounts)

View File

@@ -304,7 +304,7 @@ SUBSYSTEM_DEF(mapping)
// //
// Mapping subsystem handles initialization of random map elements at server start // 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 /datum/controller/subsystem/mapping
var/list/map_templates = list() var/list/map_templates = list()

View File

@@ -2,8 +2,7 @@
// Mobs Subsystem - Process mob.Life() // Mobs Subsystem - Process mob.Life()
// //
//VOREStation Edits - Contains temporary debugging code to diagnose extreme tick consumption. // Contains temporary debugging code to diagnose extreme tick consumption.
//Revert file to Polaris version when done.
SUBSYSTEM_DEF(mobs) SUBSYSTEM_DEF(mobs)
name = "Mobs" name = "Mobs"

View File

@@ -116,7 +116,7 @@ SUBSYSTEM_DEF(radiation)
add_source(S) add_source(S)
// Sets the radiation in a range to a constant value. // 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)) if(!(source && power && range))
return return
var/datum/radiation_source/S = new() var/datum/radiation_source/S = new()
@@ -128,7 +128,7 @@ SUBSYSTEM_DEF(radiation)
add_source(S) add_source(S)
// Irradiates a full Z-level. Hacky way of doing it, but not too expensive. // 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)) if(!(power && source))
return return
var/turf/epicentre = locate(round(world.maxx / 2), round(world.maxy / 2), source.z) var/turf/epicentre = locate(round(world.maxx / 2), round(world.maxy / 2), source.z)

View File

@@ -30,8 +30,6 @@ SUBSYSTEM_DEF(ticker)
var/event_time = null var/event_time = null
var/event = 0 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/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 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. create_characters() //Create player characters and transfer them.
collect_minds() collect_minds()
equip_characters() equip_characters()
//data_core.manifest() //VOREStation Removal
callHook("roundstart") callHook("roundstart")
@@ -395,13 +392,11 @@ SUBSYSTEM_DEF(ticker)
else if(!player.mind.assigned_role) else if(!player.mind.assigned_role)
continue continue
else else
//VOREStation Edit Start
var/mob/living/carbon/human/new_char = player.create_character() var/mob/living/carbon/human/new_char = player.create_character()
if(new_char) if(new_char)
qdel(player) qdel(player)
if(istype(new_char) && !(new_char.mind.assigned_role=="Cyborg")) if(istype(new_char) && !(new_char.mind.assigned_role=="Cyborg"))
data_core.manifest_inject(new_char) data_core.manifest_inject(new_char)
//VOREStation Edit End
/datum/controller/subsystem/ticker/proc/collect_minds() /datum/controller/subsystem/ticker/proc/collect_minds()
@@ -419,8 +414,6 @@ SUBSYSTEM_DEF(ticker)
if(!player_is_antag(player.mind, only_offstation_roles = 1)) if(!player_is_antag(player.mind, only_offstation_roles = 1))
job_master.EquipRank(player, player.mind.assigned_role, 0) job_master.EquipRank(player, player.mind.assigned_role, 0)
UpdateFactionList(player) UpdateFactionList(player)
//equip_custom_items(player) //VOREStation Removal
//player.apply_traits() //VOREStation Removal
if(captainless) if(captainless)
for(var/mob/M in player_list) for(var/mob/M in player_list)
if(!istype(M,/mob/new_player)) if(!istype(M,/mob/new_player))

View File

@@ -3,30 +3,24 @@ SUBSYSTEM_DEF(transfer)
name = "Transfer" name = "Transfer"
var/timerbuffer = 0 //buffer for time check var/timerbuffer = 0 //buffer for time check
var/currenttick = 0 var/currenttick = 0
var/shift_hard_end = 0 //VOREStation Edit var/shift_hard_end = 0
var/shift_last_vote = 0 //Citadel Edit var/shift_last_vote = 0
// should be a config someday lol // should be a config someday lol
#define NUMBER_OF_VOTE_EXTENSIONS 2 #define NUMBER_OF_VOTE_EXTENSIONS 2
/datum/controller/subsystem/transfer/Initialize() /datum/controller/subsystem/transfer/Initialize()
timerbuffer = config_legacy.vote_autotransfer_initial 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_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 //VOREStation Edit shift_last_vote = shift_hard_end - config_legacy.vote_autotransfer_interval
return ..() return ..()
/datum/controller/subsystem/transfer/fire(resumed) /datum/controller/subsystem/transfer/fire(resumed)
currenttick = currenttick + 1 currenttick = currenttick + 1
//VOREStation Edit START if(round_duration_in_ds >= shift_hard_end - 1 MINUTE)
/* 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)
init_shift_change(null, 1) 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. 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. 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() SSvote.autotransfer()
//VOREStation Edit END
timerbuffer = timerbuffer + config_legacy.vote_autotransfer_interval timerbuffer = timerbuffer + config_legacy.vote_autotransfer_interval

View File

@@ -105,8 +105,7 @@ SUBSYSTEM_DEF(vote)
factor = 1.4 factor = 1.4
choices["Initiate Crew Transfer"] = round(choices["Initiate Crew Transfer"] * factor) 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>") 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 . = list() // Get all options with that many votes and return them in a list
if(greatest_votes) if(greatest_votes)
for(var/option in choices) for(var/option in choices)
@@ -215,8 +214,8 @@ SUBSYSTEM_DEF(vote)
if(SSticker.current_state <= GAME_STATE_SETTING_UP) if(SSticker.current_state <= GAME_STATE_SETTING_UP)
to_chat(initiator_key, "The crew transfer button has been disabled!") to_chat(initiator_key, "The crew transfer button has been disabled!")
return 0 return 0
question = "Your PDA beeps with a message from Central. Would you like an additional hour to finish ongoing projects?" //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") //VOREStation Edit choices.Add("Initiate Crew Transfer", "Extend the Shift")
if(VOTE_ADD_ANTAGONIST) if(VOTE_ADD_ANTAGONIST)
if(!config_legacy.allow_extra_antags || SSticker.current_state >= GAME_STATE_SETTING_UP) if(!config_legacy.allow_extra_antags || SSticker.current_state >= GAME_STATE_SETTING_UP)
return 0 return 0

View File

@@ -4,8 +4,8 @@
*/ */
//VOREStation Edit - Most of this file has been changed to use the Eris-style PA announcements. // 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. // 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/priority_announcement = new(do_log = 0)
/var/datum/legacy_announcement/priority/command/command_announcement = new(do_log = 0, do_newscast = 1) /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 rank = character.mind.role_alt_title
AnnounceArrivalSimple(character.real_name, rank, join_message) 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") GLOB.global_announcer.autosay(join_message, "Arrivals Announcement Computer")

View File

@@ -41,7 +41,7 @@
/*Ammo magazines*/ /*Ammo magazines*/
////////////////// //////////////////
/////// 5mm //! ## 5mm
/* /*
/datum/category_item/autolathe/arms/pistol_5mm /datum/category_item/autolathe/arms/pistol_5mm
name = "pistol magazine (5mm)" name = "pistol magazine (5mm)"
@@ -55,7 +55,7 @@
path = /obj/item/ammo_magazine/m10x24mm/small path = /obj/item/ammo_magazine/m10x24mm/small
hidden = 1 hidden = 1
/////// .45 //! ## .45
/datum/category_item/autolathe/arms/pistol_45 /datum/category_item/autolathe/arms/pistol_45
name = "pistol magazine (.45)" name = "pistol magazine (.45)"
path =/obj/item/ammo_magazine/m45 path =/obj/item/ammo_magazine/m45
@@ -93,7 +93,7 @@
path =/obj/item/ammo_magazine/m45tommydrum path =/obj/item/ammo_magazine/m45tommydrum
hidden = 1 hidden = 1
/////// 9mm //! ## 9mm
// Full size pistol mags. // Full size pistol mags.
/datum/category_item/autolathe/arms/pistol_9mm /datum/category_item/autolathe/arms/pistol_9mm
@@ -157,7 +157,7 @@
name = "top-mounted SMG magazine (9mm flash)" name = "top-mounted SMG magazine (9mm flash)"
path =/obj/item/ammo_magazine/m9mmt/flash path =/obj/item/ammo_magazine/m9mmt/flash
/////// 10mm //! ## 10mm
/datum/category_item/autolathe/arms/smg_10mm /datum/category_item/autolathe/arms/smg_10mm
name = "SMG magazine (10mm)" name = "SMG magazine (10mm)"
path =/obj/item/ammo_magazine/m10mm path =/obj/item/ammo_magazine/m10mm
@@ -168,7 +168,7 @@
path =/obj/item/ammo_magazine/m44 path =/obj/item/ammo_magazine/m44
hidden = 1 hidden = 1
/////// 5.45mm //! ## 5.45mm
/datum/category_item/autolathe/arms/rifle_545 /datum/category_item/autolathe/arms/rifle_545
name = "rifle magazine (5.45mm)" name = "rifle magazine (5.45mm)"
path =/obj/item/ammo_magazine/m545 path =/obj/item/ammo_magazine/m545
@@ -178,21 +178,12 @@
name = "rifle magazine (5.45mm practice)" name = "rifle magazine (5.45mm practice)"
path =/obj/item/ammo_magazine/m545/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 /datum/category_item/autolathe/arms/machinegun_545
name = "machinegun box magazine (5.45)" name = "machinegun box magazine (5.45)"
path =/obj/item/ammo_magazine/m545saw path =/obj/item/ammo_magazine/m545saw
hidden = 1 hidden = 1
/*/datum/category_item/autolathe/arms/machinegun_545_hunter //VOREStation Edit Start. By request of Ace //! ## 7.62
name = "machinegun box magazine (5.45 hunting)"
path =/obj/item/ammo_magazine/m545saw/hunter
hidden = 1*/ //VOREStation Edit End.
/////// 7.62
/datum/category_item/autolathe/arms/rifle_762 /datum/category_item/autolathe/arms/rifle_762
name = "rifle magazine (7.62mm)" name = "rifle magazine (7.62mm)"
@@ -206,7 +197,7 @@
hidden = 1 hidden = 1
*/ */
/////// Shotgun //! ## Shotgun
/datum/category_item/autolathe/arms/shotgun_clip_beanbag /datum/category_item/autolathe/arms/shotgun_clip_beanbag
name = "2-round 12g speedloader (beanbag)" name = "2-round 12g speedloader (beanbag)"
@@ -226,101 +217,6 @@
name = "2-round 12g speedloader (beanbag)" name = "2-round 12g speedloader (beanbag)"
path =/obj/item/ammo_magazine/clip/c12g/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*/ /*Ammo clips and Speedloaders*/
/////////////////////////////// ///////////////////////////////
@@ -348,67 +244,6 @@
name = "speedloader (.45 rubber)" name = "speedloader (.45 rubber)"
path = /obj/item/ammo_magazine/s45/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 /datum/category_item/autolathe/arms/rifle_clip_545
name = "ammo clip (5.45mm)" name = "ammo clip (5.45mm)"
path =/obj/item/ammo_magazine/clip/c545 path =/obj/item/ammo_magazine/clip/c545
@@ -425,10 +260,6 @@
path =/obj/item/ammo_magazine/clip/c762 path =/obj/item/ammo_magazine/clip/c762
hidden = 1 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 /datum/category_item/autolathe/arms/rifle_clip_762_practice
name = "ammo clip (7.62mm practice)" name = "ammo clip (7.62mm practice)"
path =/obj/item/ammo_magazine/clip/c762/practice path =/obj/item/ammo_magazine/clip/c762/practice
@@ -489,16 +320,3 @@
name = "SMG magazine (9mm)" name = "SMG magazine (9mm)"
path = /obj/item/ammo_magazine/m9mml path = /obj/item/ammo_magazine/m9mml
hidden = 1 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
*/

View File

@@ -24,7 +24,7 @@
var/list/med = new() var/list/med = new()
var/list/sci = new() var/list/sci = new()
var/list/car = new() var/list/car = new()
var/list/pla = new() //VOREStation Edit var/list/pla = new()
var/list/civ = new() var/list/civ = new()
var/list/bot = new() var/list/bot = new()
var/list/off = new() var/list/off = new()
@@ -79,11 +79,9 @@
if(SSjob.is_job_in_department(real_rank, DEPARTMENT_CARGO)) if(SSjob.is_job_in_department(real_rank, DEPARTMENT_CARGO))
car[name] = rank car[name] = rank
department = 1 department = 1
//VOREStation Add Begin
if(SSjob.is_job_in_department(real_rank, DEPARTMENT_PLANET)) if(SSjob.is_job_in_department(real_rank, DEPARTMENT_PLANET))
pla[name] = rank pla[name] = rank
department = 1 department = 1
//VOREStation Add End
if(SSjob.is_job_in_department(real_rank, DEPARTMENT_CIVILIAN)) if(SSjob.is_job_in_department(real_rank, DEPARTMENT_CIVILIAN))
civ[name] = rank civ[name] = rank
department = 1 department = 1
@@ -148,13 +146,11 @@
for(name in car) for(name in car)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[car[name]]</td><td>[isactive[name]]</td></tr>" dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[car[name]]</td><td>[isactive[name]]</td></tr>"
even = !even even = !even
//VOREStation Edit Begin
if(pla.len > 0) if(pla.len > 0)
dat += "<tr><th colspan=3>Exploration</th></tr>" dat += "<tr><th colspan=3>Exploration</th></tr>"
for(name in pla) for(name in pla)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[pla[name]]</td><td>[isactive[name]]</td></tr>" dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[pla[name]]</td><td>[isactive[name]]</td></tr>"
even = !even even = !even
//VOREStation Edit End
if(civ.len > 0) if(civ.len > 0)
dat += "<tr><th colspan=3>Civilian</th></tr>" dat += "<tr><th colspan=3>Civilian</th></tr>"
for(name in civ) for(name in civ)
@@ -288,7 +284,7 @@ GLOBAL_LIST_EMPTY(PDA_Manifest)
list("cat" = "Medical", "elems" = med), list("cat" = "Medical", "elems" = med),
list("cat" = "Science", "elems" = sci), list("cat" = "Science", "elems" = sci),
list("cat" = "Cargo", "elems" = car), list("cat" = "Cargo", "elems" = car),
list("cat" = "Exploration", "elems" = pla), // VOREStation Edit list("cat" = "Exploration", "elems" = pla),
list("cat" = "Civilian", "elems" = civ), list("cat" = "Civilian", "elems" = civ),
list("cat" = "Silicon", "elems" = bot), list("cat" = "Silicon", "elems" = bot),
list("cat" = "Miscellaneous", "elems" = misc) list("cat" = "Miscellaneous", "elems" = misc)

View File

@@ -125,7 +125,6 @@
/datum/ghost_query/lost_drone /datum/ghost_query/lost_drone
role_name = "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?" 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") check_bans = list("AI", "Cyborg")
cutoff_number = 1 cutoff_number = 1

View File

@@ -1,5 +1,5 @@
//wrapper //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)) new /datum/teleport/instant/science(arglist(args))
return return
@@ -184,17 +184,6 @@
else else
teleatom.visible_message(SPAN_DANGER("\The [teleatom] bounces off of the portal!")) teleatom.visible_message(SPAN_DANGER("\The [teleatom] bounces off of the portal!"))
return FALSE 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/obstructed = 0
var/turf/dest_turf = get_turf(destination) var/turf/dest_turf = get_turf(destination)
if(local && !(dest_turf.z in GLOB.using_map.player_levels)) if(local && !(dest_turf.z in GLOB.using_map.player_levels))
@@ -219,7 +208,6 @@
return FALSE return FALSE
else else
return TRUE return TRUE
//VOREStation Edit End
//! ## VR FILE MERGE ## !// //! ## VR FILE MERGE ## !//

View File

@@ -503,7 +503,7 @@
/mob/living/carbon/human/mind_initialize() /mob/living/carbon/human/mind_initialize()
..() ..()
if(!mind.assigned_role) if(!mind.assigned_role)
mind.assigned_role = USELESS_JOB //defualt //VOREStation Edit - Visitor not Assistant mind.assigned_role = USELESS_JOB
//slime //slime
/mob/living/simple_mob/slime/mind_initialize() /mob/living/simple_mob/slime/mind_initialize()

View File

@@ -137,7 +137,7 @@ var/global/repository/radiation/radiation_repository = new()
return 1 return 1
/mob/living/rad_act(var/severity) /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")) src.apply_effect(severity, IRRADIATE, src.getarmor(null, "rad"))
for(var/atom/I in src) for(var/atom/I in src)
I.rad_act(severity) ///VOREStation Edit End I.rad_act(severity)

View File

@@ -1627,7 +1627,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "fitness" icon_state = "fitness"
/area/crew_quarters/longue_area /area/crew_quarters/longue_area
name = "\improper Lounge" //VOREStation Edit - Muh speeling. name = "\improper Lounge"
icon_state = "recreation_area" icon_state = "recreation_area"
/area/crew_quarters/recreation_area /area/crew_quarters/recreation_area

View File

@@ -58,7 +58,7 @@
var/old_x = 0 var/old_x = 0
var/old_y = 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 var/datum/riding/riding_datum
/// Does the atom spin when thrown. /// Does the atom spin when thrown.
var/does_spin = TRUE var/does_spin = TRUE

View File

@@ -158,19 +158,15 @@
if(. && has_buckled_mobs() && !handle_buckled_mob_movement(loc,direct)) //movement failed due to buckled mob(s) if(. && has_buckled_mobs() && !handle_buckled_mob_movement(loc,direct)) //movement failed due to buckled mob(s)
return FALSE return FALSE
//Polaris stuff
move_speed = world.time - l_move_time move_speed = world.time - l_move_time
l_move_time = world.time l_move_time = world.time
m_flag = 1 m_flag = 1
//End
//VOREStation Add
if(. && riding_datum) if(. && riding_datum)
riding_datum.handle_vehicle_layer() riding_datum.handle_vehicle_layer()
riding_datum.handle_vehicle_offsets() 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) /atom/movable/proc/Moved(atom/OldLoc, Dir, Forced = FALSE)
SHOULD_CALL_PARENT(TRUE) SHOULD_CALL_PARENT(TRUE)
SEND_SIGNAL(src, COMSIG_MOVABLE_MOVED, OldLoc, Dir, Forced) SEND_SIGNAL(src, COMSIG_MOVABLE_MOVED, OldLoc, Dir, Forced)
@@ -184,8 +180,8 @@
return TRUE return TRUE
// Make sure you know what you're doing if you call this, this is intended to only be called by byond directly. /// 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() /// You probably want CanPass()
/atom/movable/Cross(atom/movable/AM) /atom/movable/Cross(atom/movable/AM)
. = TRUE . = TRUE
SEND_SIGNAL(src, COMSIG_MOVABLE_CROSS, AM) SEND_SIGNAL(src, COMSIG_MOVABLE_CROSS, AM)
@@ -212,14 +208,12 @@
CRASH("Bump was called with no argument.") CRASH("Bump was called with no argument.")
SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, A) SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, A)
. = ..() . = ..()
// vore code
if(throwing) if(throwing)
throw_impact(A) throw_impact(A)
throwing = 0 throwing = 0
if(QDELETED(A)) if(QDELETED(A))
return return
A.last_bumped = world.time A.last_bumped = world.time
// vore code end
/* /*
if(!QDELETED(throwing)) if(!QDELETED(throwing))
throwing.hit_atom(A) throwing.hit_atom(A)

View File

@@ -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/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, 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/custom_species
var/base_species = SPECIES_HUMAN var/base_species = SPECIES_HUMAN
var/list/species_traits = list() var/list/species_traits = list()
@@ -115,7 +114,6 @@ var/global/list/datum/gene/dna_genes[0]
var/custom_ask var/custom_ask
var/custom_whisper var/custom_whisper
var/custom_exclaim var/custom_exclaim
// VOREStation
// New stuff // New stuff
var/species = SPECIES_HUMAN var/species = SPECIES_HUMAN
@@ -179,9 +177,6 @@ var/global/list/datum/gene/dna_genes[0]
character.f_style = "Shaved" character.f_style = "Shaved"
var/beard = facial_hair_styles_list.Find(character.f_style) var/beard = facial_hair_styles_list.Find(character.f_style)
// VOREStation Edit Start
// Demi Ears // Demi Ears
var/ear_style = 0 var/ear_style = 0
if(character.ear_style) if(character.ear_style)

View File

@@ -173,8 +173,6 @@
if((0 < beard) && (beard <= facial_hair_styles_list.len)) if((0 < beard) && (beard <= facial_hair_styles_list.len))
H.f_style = facial_hair_styles_list[beard] H.f_style = facial_hair_styles_list[beard]
// VORE StationEdit Start
// Ears // Ears
var/ears = dna.GetUIValueRange(DNA_UI_EAR_STYLE, ear_styles_list.len + 1) - 1 var/ears = dna.GetUIValueRange(DNA_UI_EAR_STYLE, ear_styles_list.len + 1) - 1
if(ears <= 1) if(ears <= 1)
@@ -255,24 +253,21 @@
var/datum/species/alraune/CS = H.species var/datum/species/alraune/CS = H.species
CS.copy_from(dna.base_species,dna.species_traits,src) CS.copy_from(dna.base_species,dna.species_traits,src)
CS.blood_color = dna.blood_color CS.blood_color = dna.blood_color
// VOREStation Edit End H.force_update_organs()
H.force_update_organs() //VOREStation Add - Gotta do this too
H.force_update_limbs() 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_eyes()
H.update_hair() H.update_hair()
return 1 return TRUE
else else
return 0 return FALSE
//VOREStation Add
/mob/living/carbon/human/proc/force_update_organs() /mob/living/carbon/human/proc/force_update_organs()
for(var/organ in organs + internal_organs) for(var/organ in organs + internal_organs)
var/obj/item/organ/O = organ var/obj/item/organ/O = organ
O.species = species O.species = species
//VOREStation Add End
// Used below, simple injection modifier. /// Used below, simple injection modifier.
/proc/probinj(var/pr, var/inj) /proc/probinj(var/pr, var/inj)
return prob(pr+inj*pr) return prob(pr+inj*pr)

View File

@@ -38,14 +38,12 @@
var/mob/living/L = A var/mob/living/L = A
if(L.buckled && istype(L.buckled,/obj/structure/bed/)) if(L.buckled && istype(L.buckled,/obj/structure/bed/))
var/turf/O = L.buckled 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 L.loc = O.loc
else 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/)) 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)) else if (isturf(A))
var/turf/T = A var/turf/T = A
var/dist = get_dist(T, src) var/dist = get_dist(T, src)

View File

@@ -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, "<span class='danger'>THE STATION IS [who2pref] [who2]...LAWS UPDATED</span>")
to_chat(M, "<br>") to_chat(M, "<br>")
M.add_ion_law("THE STATION IS [who2pref] [who2]") 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")
*/

View File

@@ -129,11 +129,8 @@ var/global/list/Holiday = list() //Holidays are lists now, so we can have more t
// if(10) // if(10)
// Holiday["S'randarr's Day"] = "A Tajaran holiday that occurs on the longest day of the year in summer, // 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." // 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) 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. \ 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.
if(27) if(27)
Holiday["Forgiveness Day"] = "A time to forgive and be forgiven." Holiday["Forgiveness Day"] = "A time to forgive and be forgiven."

View File

@@ -138,7 +138,7 @@
SpinAnimation() SpinAnimation()
/obj/effect/meteor/Bump(atom/A) /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)
if(A.handle_meteor_impact(src)) // Used for special behaviour when getting hit specifically by a meteor, like a shield. 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)) ram_turf(get_turf(A))

View File

@@ -152,7 +152,7 @@ datum/objective/anti_revolution/demote
if(!istype(I)) return 1 if(!istype(I)) return 1
if(I.assignment == USELESS_JOB) //VOREStation Edit - Visitor not Assistant if(I.assignment == USELESS_JOB)
return 1 return 1
else else
return 0 return 0

View File

@@ -6,7 +6,7 @@
required_players = 12 //should be enough for a decent manifest, hopefully 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_players_secret = 12 //pretty sure rev doesn't even appear in secret
required_enemies = 3 required_enemies = 3
auto_recall_shuttle = 0 //un-wanted on polaris auto_recall_shuttle = 0
end_on_antag_death = 0 end_on_antag_death = 0
antag_tags = list(MODE_REVOLUTIONARY, MODE_LOYALIST) antag_tags = list(MODE_REVOLUTIONARY, MODE_LOYALIST)
require_all_templates = 1 require_all_templates = 1

View File

@@ -35,7 +35,7 @@
if(!istype(T, /turf/space)) if(!istype(T, /turf/space))
env = T.return_air() 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 var/thermal_power = 300 * adjusted_power

View File

@@ -29,11 +29,9 @@
for(dir in list(NORTH, EAST, SOUTH, WEST)) // Loop through every direction 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 sleepernew = locate(/obj/machinery/sleeper, get_step(src, dir)) // Try to find a scanner in that direction
if(sleepernew) if(sleepernew)
// VOREStation Edit Start
sleeper = sleepernew sleeper = sleepernew
sleepernew.console = src sleepernew.console = src
break break
// VOREStation Edit End
/obj/machinery/sleep_console/attack_ai(mob/user) /obj/machinery/sleep_console/attack_ai(mob/user)

View File

@@ -56,7 +56,7 @@
return return
M.forceMove(src) M.forceMove(src)
occupant = M 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 playsound(src, 'sound/machines/medbayscanner1.ogg', 50) // Beepboop you're being scanned. <3
add_fingerprint(user) add_fingerprint(user)
qdel(G) qdel(G)
@@ -208,17 +208,6 @@
return attack_hand(user) return attack_hand(user)
/obj/machinery/body_scanconsole/power_change() /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. update_icon() //Health display for consoles with light and such.
/obj/machinery/body_scanconsole/ex_act(severity) /obj/machinery/body_scanconsole/ex_act(severity)
@@ -403,7 +392,7 @@
occupantData["blind"] = (H.sdisabilities & BLIND) occupantData["blind"] = (H.sdisabilities & BLIND)
occupantData["nearsighted"] = (H.disabilities & NEARSIGHTED) 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 data["occupant"] = occupantData
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)

View File

@@ -143,7 +143,7 @@
if(is_robot_module(O)) if(is_robot_module(O))
return FALSE 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!") to_chat(user, "\The [O] is too hazardous to recycle with the autolathe!")
return return

View File

@@ -61,12 +61,11 @@
log_world("[src.name] in [get_area(src)]has errored. [src.network?"Empty network list":"Null network list"]") log_world("[src.name] in [get_area(src)]has errored. [src.network?"Empty network list":"Null network list"]")
ASSERT(src.network) ASSERT(src.network)
ASSERT(src.network.len > 0) ASSERT(src.network.len > 0)
// VOREStation Edit Start - Make mapping with cameras easier // Make mapping with cameras easier
if(!c_tag) if(!c_tag)
var/area/A = get_area(src) var/area/A = get_area(src)
c_tag = "[A ? A.name : "Unknown"] #[rand(111,999)]" c_tag = "[A ? A.name : "Unknown"] #[rand(111,999)]"
return ..() return ..()
// VOREStation Edit End
/obj/machinery/camera/Destroy() /obj/machinery/camera/Destroy()
deactivate(null, 0) //kick anyone viewing out deactivate(null, 0) //kick anyone viewing out

View File

@@ -1,34 +1,33 @@
// PRESETS // PRESETS
/* /*
var/global/list/station_networks = list( var/global/list/station_networks = list(
// NETWORK_CAFE_DOCK, NETWORK_CAFE_DOCK,
NETWORK_CARGO, NETWORK_CARGO,
NETWORK_CIVILIAN, NETWORK_CIVILIAN,
// NETWORK_CIVILIAN_EAST, NETWORK_CIVILIAN_EAST,
// NETWORK_CIVILIAN_WEST, NETWORK_CIVILIAN_WEST,
NETWORK_COMMAND, NETWORK_COMMAND,
NETWORK_ENGINE, NETWORK_ENGINE,
NETWORK_ENGINEERING, NETWORK_ENGINEERING,
NETWORK_ENGINEERING_OUTPOST, NETWORK_ENGINEERING_OUTPOST,
NETWORK_DEFAULT, NETWORK_DEFAULT,
NETWORK_MEDICAL, NETWORK_MEDICAL,
NETWORK_MINE, NETWORK_MINE,
NETWORK_NORTHERN_STAR, NETWORK_NORTHERN_STAR,
NETWORK_RESEARCH, NETWORK_RESEARCH,
NETWORK_RESEARCH_OUTPOST, NETWORK_RESEARCH_OUTPOST,
NETWORK_ROBOTS, NETWORK_ROBOTS,
NETWORK_PRISON, NETWORK_PRISON,
NETWORK_SECURITY, NETWORK_SECURITY,
NETWORK_INTERROGATION NETWORK_INTERROGATION
) )
*/ */
var/global/list/engineering_networks = list( var/global/list/engineering_networks = list(
NETWORK_ENGINE, NETWORK_ENGINE,
NETWORK_ENGINEERING, NETWORK_ENGINEERING,
//NETWORK_ENGINEERING_OUTPOST, //VOREStation Edit: Tether has no Engineering Outpost, NETWORK_ALARM_ATMOS,
NETWORK_ALARM_ATMOS, NETWORK_ALARM_FIRE,
NETWORK_ALARM_FIRE, NETWORK_ALARM_POWER)
NETWORK_ALARM_POWER)
/obj/machinery/camera/network/crescent /obj/machinery/camera/network/crescent
network = list(NETWORK_CRESCENT) network = list(NETWORK_CRESCENT)

View File

@@ -8,7 +8,7 @@
name = "\improper RCON console" name = "\improper RCON console"
desc = "Console used to remotely control machinery on the station." desc = "Console used to remotely control machinery on the station."
icon_keyboard = "power_key" icon_keyboard = "power_key"
icon_screen = "ai_fixer" //VOREStation Edit icon_screen = "ai_fixer"
light_color = "#a97faa" light_color = "#a97faa"
circuit = /obj/item/circuitboard/rcon_console circuit = /obj/item/circuitboard/rcon_console
req_one_access = list(access_engine) req_one_access = list(access_engine)
@@ -39,4 +39,4 @@
/obj/machinery/computer/rcon/update_icon() /obj/machinery/computer/rcon/update_icon()
..() ..()
if(!(machine_stat & (NOPOWER|BROKEN))) if(!(machine_stat & (NOPOWER|BROKEN)))
overlays += image(icon, "ai-fixer-empty", overlay_layer) //VOREStation Edit overlays += image(icon, "ai-fixer-empty", overlay_layer)

View File

@@ -202,7 +202,7 @@
modify.access -= access_type modify.access -= access_type
if(!access_allowed) if(!access_allowed)
modify.access += access_type modify.access += access_type
modify.lost_access = list() //VOREStation addition: reset the lost access upon any modifications modify.lost_access = list()
. = TRUE . = TRUE
if("assign") if("assign")
@@ -227,7 +227,7 @@
modify.access = access modify.access = access
modify.assignment = t1 modify.assignment = t1
modify.rank = 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)) callHook("reassign_employee", list(modify))
. = TRUE . = TRUE
@@ -283,9 +283,9 @@
if("terminate") if("terminate")
if(is_authenticated()) if(is_authenticated())
modify.assignment = "Dismissed" //VOREStation Edit: setting adjustment modify.assignment = "Dismissed"
modify.access = list() 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)) callHook("terminate_employee", list(modify))

View File

@@ -467,7 +467,7 @@
SSemergencyshuttle.call_evac() SSemergencyshuttle.call_evac()
log_game("[key_name(user)] has called the shuttle.") log_game("[key_name(user)] has called the shuttle.")
message_admins("[key_name_admin(user)] has called the shuttle.", 1) 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 return
@@ -515,7 +515,7 @@
log_game("[user? key_name(user) : "Autotransfer"] has called the shuttle.") log_game("[user? key_name(user) : "Autotransfer"] has called the shuttle.")
message_admins("[user? key_name_admin(user) : "Autotransfer"] has called the shuttle.", 1) 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 return

View File

@@ -94,8 +94,6 @@
dat += "<a href='?src=\ref[src];log=1'>View storage log</a>.<br>" dat += "<a href='?src=\ref[src];log=1'>View storage log</a>.<br>"
if(allow_items) if(allow_items)
dat += "<a href='?src=\ref[src];view=1'>View objects</a>.<br>" 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") user << browse(dat, "window=cryopod_console")
onclose(user, "cryopod_console") onclose(user, "cryopod_console")
@@ -120,10 +118,8 @@
if(!allow_items) return if(!allow_items) return
var/dat = "<b>Recently stored objects</b><br/><hr/><br/>" var/dat = "<b>Recently stored objects</b><br/><hr/><br/>"
//VOREStation Edit Start
for(var/I in frozen_items) for(var/I in frozen_items)
dat += "[I]<br/>" dat += "[I]<br/>"
//VOREStation Edit End
dat += "<hr/>" dat += "<hr/>"
user << browse(dat, "window=cryoitems") user << browse(dat, "window=cryoitems")
@@ -221,18 +217,18 @@
var/allow_occupant_types = list(/mob/living/carbon/human) var/allow_occupant_types = list(/mob/living/carbon/human)
var/disallow_occupant_types = list() var/disallow_occupant_types = list()
var/mob/occupant = null // Person waiting to be despawned. 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_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/time_entered = 0 // Used to keep track of the safe period.
var/obj/item/radio/intercom/announce // var/obj/item/radio/intercom/announce
var/obj/machinery/computer/cryopod/control_computer var/obj/machinery/computer/cryopod/control_computer
var/last_no_computer_message = 0 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) /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) AddComponent(/datum/component/slaved_atom_to_loc, /atom/movable/landmark/spawnpoint/latejoin/station/cryogenics, TRUE)
/obj/machinery/cryopod/robot /obj/machinery/cryopod/robot
@@ -246,7 +242,6 @@
on_store_name = "Robotic Storage Oversight" 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." 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) 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 applies_stasis = FALSE
/obj/machinery/cryopod/robot/door /obj/machinery/cryopod/robot/door
@@ -366,8 +361,7 @@
qdel(R.mmi) qdel(R.mmi)
for(var/obj/item/I in R.module) // the tools the borg has; metal, glass, guns etc 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 for(var/mob/M in I) despawn_occupant(M)
despawn_occupant(M)
for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags
O.forceMove(R) O.forceMove(R)
qdel(I) qdel(I)
@@ -444,14 +438,7 @@
if(!preserve) if(!preserve)
qdel(W) qdel(W)
else else
log_special_item(W,to_despawn) //VOREStation Add log_special_item(W,to_despawn)
/* 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 */
for(var/obj/structure/B in items) for(var/obj/structure/B in items)
if(istype(B,/obj/structure/bed)) if(istype(B,/obj/structure/bed))
qdel(B) qdel(B)
@@ -517,11 +504,10 @@
log_and_message_admins("[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) entered cryostorage.") 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) if(to_despawn.client && to_despawn.stat<2)
var/mob/observer/dead/newghost = to_despawn.ghostize() var/mob/observer/dead/newghost = to_despawn.ghostize()
newghost.timeofdeath = world.time newghost.timeofdeath = world.time
//VOREStation Edit end: Dont delete mobs-in-mobs
//This should guarantee that ghosts don't spawn. //This should guarantee that ghosts don't spawn.
to_despawn.ckey = null to_despawn.ckey = null
@@ -748,16 +734,6 @@
/obj/machinery/computer/cryopod/gateway /obj/machinery/computer/cryopod/gateway
name = "teleport oversight console" 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." 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) /obj/machinery/cryopod/proc/log_special_item(atom/movable/item, mob/to_despawn)
ASSERT(item && to_despawn) ASSERT(item && to_despawn)

View File

@@ -1,4 +1,4 @@
//VOREStation Edit - Redone a lot of airlock things: // Redone a lot of airlock things:
/* /*
- Specific department maintenance doors - Specific department maintenance doors
- Named doors properly according to type - Named doors properly according to type
@@ -153,7 +153,7 @@
/obj/machinery/door/airlock/maintenance /obj/machinery/door/airlock/maintenance
name = "Maintenance Access" name = "Maintenance Access"
icon = 'icons/obj/doors/Doormaint.dmi' 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 assembly_type = /obj/structure/door_assembly/door_assembly_mai
open_sound_powered = 'sound/machines/door/door2o.ogg' open_sound_powered = 'sound/machines/door/door2o.ogg'
close_sound_powered = 'sound/machines/door/door2c.ogg' close_sound_powered = 'sound/machines/door/door2c.ogg'
@@ -587,7 +587,7 @@
/obj/machinery/door/airlock/alien/public // Entry to UFO. /obj/machinery/door/airlock/alien/public // Entry to UFO.
req_one_access = list() req_one_access = list()
normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside. 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 //"Red" Armory Door
/obj/machinery/door/airlock/security/armory /obj/machinery/door/airlock/security/armory

View File

@@ -19,7 +19,7 @@
/obj/machinery/door/airlock/alien/blue/public // Entry to UFO. /obj/machinery/door/airlock/alien/blue/public // Entry to UFO.
req_one_access = list() req_one_access = list()
normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside. 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 /obj/machinery/door/airlock/glass_security/polarized
name = "Electrochromic Security Airlock" name = "Electrochromic Security Airlock"

View File

@@ -107,8 +107,8 @@
M.last_bumped = world.time M.last_bumped = world.time
if(M.restrained() && !check_access(null)) if(M.restrained() && !check_access(null))
return return
else if(istype(M, /mob/living/simple_mob/animal/passive/mouse) && !(M.ckey)) //VOREStation Edit: Make wild mice else if(istype(M, /mob/living/simple_mob/animal/passive/mouse) && !(M.ckey))
return //VOREStation Edit: unable to open doors return
else else
bumpopen(M) bumpopen(M)
@@ -215,8 +215,8 @@
src.add_fingerprint(user, 0, I) src.add_fingerprint(user, 0, I)
if(istype(I)) if(istype(I))
if(attackby_vr(I, user)) //VOREStation begin: Fireproofing if(attackby_vr(I, user))
return //VOREStation begin: Fireproofing return
if(istype(I, /obj/item/stack/material) && I.get_material_name() == src.get_material_name()) if(istype(I, /obj/item/stack/material) && I.get_material_name() == src.get_material_name())
if(machine_stat & BROKEN) 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>") 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>")

View File

@@ -3,7 +3,7 @@
D.fire_act(adj_air, adj_temp, adj_volume) D.fire_act(adj_air, adj_temp, adj_volume)
/obj/machinery/door /obj/machinery/door
var/reinforcing = 0 //vorestation addition var/reinforcing = 0
var/tintable = 0 var/tintable = 0
var/icon_tinted var/icon_tinted
var/id_tint var/id_tint

View File

@@ -211,7 +211,7 @@
//purge apparently means clearing the airlock chamber to vacuum (then refilling, handled later) //purge apparently means clearing the airlock chamber to vacuum (then refilling, handled later)
target_pressure = 0 target_pressure = 0
state = STATE_DEPRESSURIZE 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 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 signalPump(tag_airpump, 1, 0, target_pressure) //send a signal to start depressurizing
else else
@@ -220,7 +220,7 @@
else if(chamber_pressure <= target_pressure) else if(chamber_pressure <= target_pressure)
state = STATE_PRESSURIZE 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 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 signalPump(tag_airpump, 1, 1, target_pressure) //send a signal to start pressurizing
else else
@@ -230,7 +230,7 @@
else if(chamber_pressure > target_pressure) else if(chamber_pressure > target_pressure)
if(!cycle_to_external_air) if(!cycle_to_external_air)
state = STATE_DEPRESSURIZE 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 signalPump(tag_airpump, 1, 0, target_pressure) //send a signal to start depressurizing
else else
memory["purge"] = 1 // should always purge first if using external air, chamber pressure should never be higher than target pressure here 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) memory["target_pressure"] = max(target_pressure, MIN_TARGET_PRESSURE)
if(STATE_PRESSURIZE) 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) if(memory["chamber_sensor_pressure"] >= memory["target_pressure"] * 0.95)
//not done until the pump has reported that it's off //not done until the pump has reported that it's off
if(memory["pump_status"] != "off") if(memory["pump_status"] != "off")
@@ -250,11 +250,11 @@
cycleDoors(target_state) cycleDoors(target_state)
state = STATE_IDLE state = STATE_IDLE
target_state = TARGET_NONE 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) 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["chamber_sensor_pressure"] <= max(memory["target_pressure"] * 1.05, MIN_TARGET_PRESSURE))
if(memory["pump_status"] != "off") if(memory["pump_status"] != "off")
signalPump(tag_airpump, 0) signalPump(tag_airpump, 0)
@@ -270,7 +270,7 @@
cycleDoors(target_state) cycleDoors(target_state)
state = STATE_IDLE state = STATE_IDLE
target_state = TARGET_NONE 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) memory["processing"] = (state != target_state)

View File

@@ -90,7 +90,6 @@ var/list/floor_light_cache = list()
on = !on on = !on
if(on) update_use_power(USE_POWER_ACTIVE) 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() update_brightness()
return return

View File

@@ -125,10 +125,9 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
return return
/obj/machinery/hologram/holopad/proc/create_holo(mob/living/silicon/ai/A, turf/T = loc) /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 var/obj/effect/overlay/aiholo/hologram = new(T)//Spawn a blank effect at the location.
hologram.master = A //VOREStation Edit: So you can reference the master AI from in the hologram procs hologram.master = A // So you can reference the master AI from in the hologram procs
hologram.icon = A.holo_icon 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.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.anchored = 1//So space wind cannot drag it.
hologram.name = "[A.name] (Hologram)"//If someone decides to right click. 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) /obj/machinery/hologram/holopad/proc/move_hologram(mob/living/silicon/ai/user)
if(masters[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] var/obj/effect/overlay/aiholo/H = masters[user]
if(H.bellied) if(H.bellied)
walk_to(H, user.eyeobj) //Walk-to respects obstacles 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) //Hologram left the screen (got stuck on a wall or something)
if(get_dist(H, user.eyeobj) > world.view) if(get_dist(H, user.eyeobj) > world.view)
clear_holo(user) clear_holo(user)
//VOREStation Add End
if((HOLOPAD_MODE == RANGE_BASED && (get_dist(H, src) > holo_range))) if((HOLOPAD_MODE == RANGE_BASED && (get_dist(H, src) > holo_range)))
clear_holo(user) clear_holo(user)

View File

@@ -27,14 +27,17 @@
// Vars for hacking // Vars for hacking
var/datum/wires/jukebox/wires = null var/datum/wires/jukebox/wires = null
var/hacked = 0 // Whether to show the hidden songs or not /// Whether to show the hidden songs or not.
var/freq = 0 // Currently no effect, will return in phase II of mediamanager. var/hacked = 0
//VOREStation Add /// Currently no effect, will return in phase II of mediamanager.
var/loop_mode = JUKEMODE_PLAY_ONCE // Behavior when finished playing a song var/freq = 0
var/max_queue_len = 3 // How many songs are we allowed to queue up? /// 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() var/list/queue = list()
//VOREStation Add End /// What is our current genre?
var/current_genre = "Electronic" //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/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/datum/track/current_track
var/list/datum/track/tracks = list( var/list/datum/track/tracks = list(

View File

@@ -75,7 +75,6 @@ Buildable meters
if(initial(fakeA.pipe_flags) & (PIPING_ALL_LAYER|PIPING_DEFAULT_LAYER_ONLY)) if(initial(fakeA.pipe_flags) & (PIPING_ALL_LAYER|PIPING_DEFAULT_LAYER_ONLY))
new_layer = PIPING_LAYER_DEFAULT new_layer = PIPING_LAYER_DEFAULT
piping_layer = new_layer piping_layer = new_layer
// Do it the Polaris way
switch(piping_layer) switch(piping_layer)
if(PIPING_LAYER_SCRUBBER) if(PIPING_LAYER_SCRUBBER)
color = PIPE_COLOR_RED color = PIPE_COLOR_RED

View File

@@ -306,8 +306,6 @@
data["access"] = !isLocked(user) data["access"] = !isLocked(user)
data["locked"] = locked data["locked"] = locked
data["enabled"] = enabled 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"]) if(data["access"])
var/settings[0] var/settings[0]
@@ -330,8 +328,6 @@
var/value = text2num(href_list["value"]) var/value = text2num(href_list["value"])
if(href_list["command"] == "enable") if(href_list["command"] == "enable")
enabled = value 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") else if(href_list["command"] == "check_synth")
check_synth = value check_synth = value
else if(href_list["command"] == "check_weapons") else if(href_list["command"] == "check_weapons")

View File

@@ -167,7 +167,7 @@
icon_state = icon_state_charged icon_state = icon_state_charged
update_use_power(USE_POWER_IDLE) update_use_power(USE_POWER_IDLE)
//VOREStation Add - NSFW Batteries // NSFW Batteries
else if(istype(charging, /obj/item/ammo_casing/microbattery)) else if(istype(charging, /obj/item/ammo_casing/microbattery))
var/obj/item/ammo_casing/microbattery/batt = charging var/obj/item/ammo_casing/microbattery/batt = charging
if(batt.shots_left >= initial(batt.shots_left)) if(batt.shots_left >= initial(batt.shots_left))
@@ -179,7 +179,6 @@
batt.shots_left++ batt.shots_left++
update_use_power(USE_POWER_ACTIVE) update_use_power(USE_POWER_ACTIVE)
return return
//VOREStation Add End
else if(istype(charging, /obj/item/ammo_magazine/cell_mag)) else if(istype(charging, /obj/item/ammo_magazine/cell_mag))
charge_mag(charging) charge_mag(charging)

View File

@@ -551,8 +551,6 @@
if("Head of Security") if("Head of Security")
parent_helmet = /obj/item/clothing/head/helmet/space/void/headofsecurity parent_helmet = /obj/item/clothing/head/helmet/space/void/headofsecurity
parent_suit = /obj/item/clothing/suit/space/void/headofsecurity parent_suit = /obj/item/clothing/suit/space/void/headofsecurity
//BEGIN: Space for additional downstream variants
//VOREStation Addition Start
if("Manager") if("Manager")
parent_helmet = /obj/item/clothing/head/helmet/space/void/captain parent_helmet = /obj/item/clothing/head/helmet/space/void/captain
parent_suit = /obj/item/clothing/suit/space/void/captain parent_suit = /obj/item/clothing/suit/space/void/captain
@@ -592,8 +590,6 @@
if("Talon Mercenary") if("Talon Mercenary")
parent_helmet = /obj/item/clothing/head/helmet/space/void/refurb/mercenary/talon parent_helmet = /obj/item/clothing/head/helmet/space/void/refurb/mercenary/talon
parent_suit = /obj/item/clothing/suit/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) 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. //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))) if((helmet!=null&&(target_species in helmet.sprite_sheets_obj))||(suit!=null&&(target_species in suit.sprite_sheets_obj)))

View File

@@ -41,14 +41,14 @@
network = "tcommsat" network = "tcommsat"
autolinkers = list("hub", "relay", "c_relay", "s_relay", "m_relay", "r_relay", "science", "medical", autolinkers = list("hub", "relay", "c_relay", "s_relay", "m_relay", "r_relay", "science", "medical",
"supply", "service", "common", "command", "engineering", "security", "unused", "hb_relay", "supply", "service", "common", "command", "engineering", "security", "unused", "hb_relay",
"receiverA", "broadcasterA") //VOREStation Edit - Added "hb_relay" "receiverA", "broadcasterA")
/obj/machinery/telecomms/hub/preset_cent /obj/machinery/telecomms/hub/preset_cent
id = "CentCom Hub" id = "CentCom Hub"
network = "tcommsat" network = "tcommsat"
produces_heat = 0 produces_heat = 0
autolinkers = list("hub_cent", "c_relay", "s_relay", "m_relay", "r_relay", "hb_relay", 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 //Receivers

View File

@@ -252,7 +252,6 @@
/obj/machinery/telecomms/receiver /obj/machinery/telecomms/receiver
name = "Subspace Receiver" name = "Subspace Receiver"
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
icon_state = "broadcast receiver" 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." desc = "This machine has a dish-like shape and green lights. It is designed to detect and process subspace radio activity."
density = 1 density = 1
@@ -340,7 +339,6 @@
/obj/machinery/telecomms/hub /obj/machinery/telecomms/hub
name = "Telecommunication Hub" name = "Telecommunication Hub"
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
icon_state = "hub" icon_state = "hub"
desc = "A mighty piece of hardware used to send/receive massive amounts of data." desc = "A mighty piece of hardware used to send/receive massive amounts of data."
density = 1 density = 1
@@ -377,7 +375,6 @@
/obj/machinery/telecomms/relay /obj/machinery/telecomms/relay
name = "Telecommunication Relay" name = "Telecommunication Relay"
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
icon_state = "relay" icon_state = "relay"
desc = "A mighty piece of hardware used to send massive amounts of data far away." desc = "A mighty piece of hardware used to send massive amounts of data far away."
density = 1 density = 1
@@ -437,7 +434,6 @@
/obj/machinery/telecomms/bus /obj/machinery/telecomms/bus
name = "Bus Mainframe" name = "Bus Mainframe"
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
icon_state = "bus" icon_state = "bus"
desc = "A mighty piece of hardware used to send massive amounts of data quickly." desc = "A mighty piece of hardware used to send massive amounts of data quickly."
density = 1 density = 1
@@ -493,7 +489,6 @@
/obj/machinery/telecomms/processor /obj/machinery/telecomms/processor
name = "Processor Unit" name = "Processor Unit"
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
icon_state = "processor" icon_state = "processor"
desc = "This machine is used to process large quantities of information." desc = "This machine is used to process large quantities of information."
density = 1 density = 1
@@ -535,7 +530,6 @@
/obj/machinery/telecomms/server /obj/machinery/telecomms/server
name = "Telecommunication Server" name = "Telecommunication Server"
//icon = 'icons/obj/stationobjs.dmi' //VOREStation Removal - use parent icon
icon_state = "comm_server" icon_state = "comm_server"
desc = "A machine used to store data and network statistics." desc = "A machine used to store data and network statistics."
density = 1 density = 1

View File

@@ -716,8 +716,8 @@
/obj/machinery/vending/cola /obj/machinery/vending/cola
name = "Robust Softdrinks" name = "Robust Softdrinks"
desc = "A softdrink vendor provided by Robust Industries, LLC." desc = "A softdrink vendor provided by Robust Industries, LLC."
icon_state = "Cola_Machine" //VOREStation Edit icon_state = "Cola_Machine"
icon_vend = "Cola_Machine-purchase" //VOREStation Edit icon_vend = "Cola_Machine-purchase"
product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!" 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." 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, 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/liquidfood = 10,
/obj/item/reagent_containers/food/snacks/liquidprotein = 10, /obj/item/reagent_containers/food/snacks/liquidprotein = 10,
/obj/item/reagent_containers/pill/diet = 8, /obj/item/reagent_containers/pill/diet = 8,
///obj/item/reagent_containers/hypospray/autoinjector/biginjector/glucose = 5, //VOREStation Removal,
/obj/item/towel/random = 8) /obj/item/towel/random = 8)
prices = list(/obj/item/reagent_containers/food/drinks/smallmilk = 3, 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/liquidfood = 10,
/obj/item/reagent_containers/food/snacks/liquidprotein = 10, /obj/item/reagent_containers/food/snacks/liquidprotein = 10,
/obj/item/reagent_containers/pill/diet = 25, /obj/item/reagent_containers/pill/diet = 25,
///obj/item/reagent_containers/hypospray/autoinjector/biginjector/glucose = 5, //VOREStation Removal,
/obj/item/towel/random = 40, /obj/item/towel/random = 40,
) )

View File

@@ -80,14 +80,12 @@
if(equip_type == EQUIP_SPECIAL) if(equip_type == EQUIP_SPECIAL)
chassis.special_equipment -= src chassis.special_equipment -= src
listclearnulls(chassis.special_equipment) listclearnulls(chassis.special_equipment)
//VOREStation Addition begin: MICROMECHS
if(equip_type == EQUIP_MICRO_UTILITY) if(equip_type == EQUIP_MICRO_UTILITY)
chassis.micro_utility_equipment -= src chassis.micro_utility_equipment -= src
listclearnulls(chassis.micro_utility_equipment) listclearnulls(chassis.micro_utility_equipment)
if(equip_type == EQUIP_MICRO_WEAPON) if(equip_type == EQUIP_MICRO_WEAPON)
chassis.micro_weapon_equipment -= src chassis.micro_weapon_equipment -= src
listclearnulls(chassis.micro_weapon_equipment) listclearnulls(chassis.micro_weapon_equipment)
//VOREStation Addition end: MICROMECHS
chassis.universal_equipment -= src chassis.universal_equipment -= src
chassis.equipment -= src chassis.equipment -= src
listclearnulls(chassis.equipment) listclearnulls(chassis.equipment)

View File

@@ -229,7 +229,6 @@
occupant_message("<span class=\"alert\">No reagent info gained from [A].</span>") occupant_message("<span class=\"alert\">No reagent info gained from [A].</span>")
return 0 return 0
occupant_message("Analyzing reagents...") occupant_message("Analyzing reagents...")
//VOREStation Block Edit - Start
for(var/datum/reagent/R in A.reagents.reagent_list) for(var/datum/reagent/R in A.reagents.reagent_list)
if(R.id in known_reagents) if(R.id in known_reagents)
occupant_message("Reagent \"[R.name]\" already present in database, skipping.") 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()) send_byjax(chassis.occupant,"msyringegun.browser","reagents_form",get_reagents_form())
else else
occupant_message("Reagent \"[R.name]\" unable to be scanned, skipping.") occupant_message("Reagent \"[R.name]\" unable to be scanned, skipping.")
//VOREstation Block Edit - End
occupant_message("Analysis complete.") occupant_message("Analysis complete.")
return 1 return 1

View File

@@ -145,16 +145,23 @@
var/static/image/radial_image_statpanel = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine2") var/static/image/radial_image_statpanel = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine2")
//Mech actions //Mech actions
var/datum/mini_hud/mech/minihud //VOREStation Edit var/datum/mini_hud/mech/minihud
var/strafing = 0 //Are we strafing or not? /// 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. /// 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_mode_possible = 0
var/defence_deflect = 35 //How much it deflect /// 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. /// 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_possible = 0
var/overload_coeff = 1 //How much extra energy you use when use the L E G /// 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 = 0
var/zoom_possible = 0 var/zoom_possible = 0
@@ -162,22 +169,30 @@
var/thrusters = 0 var/thrusters = 0
var/thrusters_possible = 0 var/thrusters_possible = 0
var/phasing = 0 //Are we currently phasing /// Are we currently phasing.
var/phasing_possible = 0 //This is to allow phasing. var/phasing = 0
var/can_phase = TRUE //This is an internal check during the relevant procs. /// 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/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_possible = 0
var/smoke_reserve = 5 //How many shots you have. Might make a reload later on. MIGHT. /// 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_reserve = 5
var/smoke_cooldown = 100 //How long you have between uses. /// 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/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_eject/eject_action = new
var/datum/action/innate/mecha/mech_toggle_internals/internals_action = new var/datum/action/innate/mecha/mech_toggle_internals/internals_action = new
@@ -1847,10 +1862,8 @@
verbs += /obj/mecha/verb/eject verbs += /obj/mecha/verb/eject
log_append_to_last("[H] moved in as pilot.") log_append_to_last("[H] moved in as pilot.")
update_icon() update_icon()
//VOREStation Edit Add
if(occupant.hud_used) if(occupant.hud_used)
minihud = new (occupant.hud_used, src) 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. //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. //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>" 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) 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>" 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>" 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) 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>" output += "Micro Weapon Module: [W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"

View File

@@ -3,14 +3,14 @@
name = "APLU \"Ripley\"" name = "APLU \"Ripley\""
icon_state = "ripley" icon_state = "ripley"
initial_icon = "ripley" initial_icon = "ripley"
step_in = 5 // vorestation edit, was 6 but that's PAINFULLY slow step_in = 5
step_energy_drain = 5 // vorestation edit because 10 drained a significant chunk of its cell before you even got out the airlock step_energy_drain = 5
max_temperature = 20000 max_temperature = 20000
health = 200 health = 200
maxhealth = 200 //Don't forget to update the /old variant if you change this number. maxhealth = 200 //Don't forget to update the /old variant if you change this number.
wreckage = /obj/effect/decal/mecha_wreckage/ripley wreckage = /obj/effect/decal/mecha_wreckage/ripley
cargo_capacity = 10 cargo_capacity = 10
var/obj/item/mining_scanner/orescanner // vorestation addition var/obj/item/mining_scanner/orescanner
minimum_penetration = 10 minimum_penetration = 10
@@ -115,8 +115,6 @@
icon_scale_x = 1 icon_scale_x = 1
icon_scale_y = 1 icon_scale_y = 1
//Vorestation Edit Start
/obj/mecha/working/ripley/Initialize(mapload) /obj/mecha/working/ripley/Initialize(mapload)
. = ..() . = ..()
orescanner = new /obj/item/mining_scanner orescanner = new /obj/item/mining_scanner
@@ -129,8 +127,6 @@
orescanner.attack_self(usr) orescanner.attack_self(usr)
//Vorestation Edit End
//Meant for random spawns. //Meant for random spawns.
/obj/mecha/working/ripley/mining/old /obj/mecha/working/ripley/mining/old
desc = "An old, dusty mining ripley." desc = "An old, dusty mining ripley."

View File

@@ -65,15 +65,12 @@
M.setDir(buckle_dir ? buckle_dir : dir) M.setDir(buckle_dir ? buckle_dir : dir)
M.update_canmove() M.update_canmove()
M.update_floating( M.Check_Dense_Object() ) M.update_floating( M.Check_Dense_Object() )
// buckled_mob = M
buckled_mobs |= M buckled_mobs |= M
//VOREStation Add
if(riding_datum) if(riding_datum)
riding_datum.ridden = src riding_datum.ridden = src
riding_datum.handle_vehicle_offsets() riding_datum.handle_vehicle_offsets()
M.update_water() M.update_water()
//VOREStation Add End
post_buckle_mob(M) post_buckle_mob(M)
return TRUE return TRUE
@@ -91,15 +88,12 @@
buckled_mob.anchored = initial(buckled_mob.anchored) buckled_mob.anchored = initial(buckled_mob.anchored)
buckled_mob.update_canmove() buckled_mob.update_canmove()
buckled_mob.update_floating( buckled_mob.Check_Dense_Object() ) buckled_mob.update_floating( buckled_mob.Check_Dense_Object() )
// buckled_mob = null
buckled_mobs -= buckled_mob buckled_mobs -= buckled_mob
//VOREStation Add
buckled_mob.update_water() buckled_mob.update_water()
if(riding_datum) if(riding_datum)
riding_datum.restore_position(buckled_mob) riding_datum.restore_position(buckled_mob)
riding_datum.handle_vehicle_offsets() // So the person in back goes to the front. riding_datum.handle_vehicle_offsets() // So the person in back goes to the front.
//VOREStation Add End
post_buckle_mob(.) post_buckle_mob(.)
/atom/movable/proc/unbuckle_all_mobs(force = FALSE) /atom/movable/proc/unbuckle_all_mobs(force = FALSE)
@@ -136,29 +130,27 @@
. = buckle_mob(M, forced) . = buckle_mob(M, forced)
if(.) 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(!silent)
if(M == user) 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_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>" //VORE EDIT reveal_message["buckled_to"] = "<span class='notice'>You come out of hiding as [M.name] buckles themselves to you.</span>"
M.visible_message(\ M.visible_message(\
"<span class='notice'>[M.name] buckles themselves to [src].</span>",\ "<span class='notice'>[M.name] buckles themselves to [src].</span>",\
"<span class='notice'>You buckle yourself to [src].</span>",\ "<span class='notice'>You buckle yourself to [src].</span>",\
"<span class='notice'>You hear metal clanking.</span>") "<span class='notice'>You hear metal clanking.</span>")
else else
reveal_message["buckled_mob"] = "<span class='notice'>You are revealed as you are buckled to [src].</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>" //VORE EDIT reveal_message["buckled_to"] = "<span class='notice'>You are revealed as [M.name] is buckled to you.</span>"
M.visible_message(\ M.visible_message(\
"<span class='danger'>[M.name] is buckled to [src] by [user.name]!</span>",\ "<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='danger'>You are buckled to [src] by [user.name]!</span>",\
"<span class='notice'>You hear metal clanking.</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 M.reveal(silent, reveal_message["buckled_mob"]) //Reveal people so they aren't buckled to chairs from behind.
//Vore edit start
var/mob/living/L = src var/mob/living/L = src
if(istype(L)) if(istype(L))
L.reveal(silent, reveal_message["buckled_to"]) L.reveal(silent, reveal_message["buckled_to"])
//Vore edit end
/atom/movable/proc/user_unbuckle_mob(mob/living/buckled_mob, mob/user) /atom/movable/proc/user_unbuckle_mob(mob/living/buckled_mob, mob/user)
var/mob/living/M = unbuckle_mob(buckled_mob) var/mob/living/M = unbuckle_mob(buckled_mob)

View File

@@ -15,15 +15,14 @@
var/amount = 3 var/amount = 3
var/expand = 1 var/expand = 1
var/metal = 0 var/metal = 0
var/dries = 1 //VOREStation Add var/dries = 1
var/slips = 0 //VOREStation Add var/slips = 0
/obj/effect/foam/Initialize(mapload, ismetal = FALSE) /obj/effect/foam/Initialize(mapload, ismetal = FALSE)
. = ..() . = ..()
//icon_state = "[ismetal? "m" : ""]foam" //VOREStation Removal
metal = ismetal metal = ismetal
playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3) 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/post_spread), 3 + metal * 3)
addtimer(CALLBACK(src, .proc/pre_harden), 12 SECONDS) addtimer(CALLBACK(src, .proc/pre_harden), 12 SECONDS)
addtimer(CALLBACK(src, .proc/harden), 15 SECONDS) addtimer(CALLBACK(src, .proc/harden), 15 SECONDS)
@@ -33,8 +32,7 @@
checkReagents() checkReagents()
/obj/effect/foam/proc/pre_harden() /obj/effect/foam/proc/pre_harden()
return //VOREStation Edit return
/obj/effect/foam/proc/harden() /obj/effect/foam/proc/harden()
if(metal) if(metal)
var/obj/structure/foamedmetal/M = new(src.loc) var/obj/structure/foamedmetal/M = new(src.loc)
@@ -87,14 +85,17 @@
return return
if(metal) if(metal)
return return
if(slips && istype(AM, /mob/living)) //VOREStation Add if(slips && istype(AM, /mob/living))
var/mob/living/M = AM var/mob/living/M = AM
M.slip("the foam", 6) M.slip("the foam", 6)
/datum/effect_system/foam_spread /datum/effect_system/foam_spread
var/amount = 5 // the size of the foam spread. /// The size of the foam spread.
var/list/carried_reagents // the IDs of reagents present when the foam was mixed var/amount = 5
var/metal = 0 // 0 = foam, 1 = metalfoam, 2 = ironfoam /// 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) /datum/effect_system/foam_spread/set_up(amt=5, loca, var/datum/reagents/carry = null, var/metalfoam = 0)
amount = round(sqrt(amt / 3), 1) amount = round(sqrt(amt / 3), 1)

View File

@@ -37,7 +37,7 @@
/obj/effect/overlay/bluespacify /obj/effect/overlay/bluespacify
name = "Bluespace" name = "Bluespace"
icon = 'icons/turf/space.dmi' //VOREStation Edit icon = 'icons/turf/space.dmi'
icon_state = "bluespacify" icon_state = "bluespacify"
plane = ABOVE_PLANE plane = ABOVE_PLANE

View File

@@ -177,7 +177,6 @@
entry_vent = null entry_vent = null
else if(entry_vent) else if(entry_vent)
if(get_dist(src, entry_vent) <= 1) 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) var/obj/machinery/atmospherics/component/unary/vent_pump/exit_vent = get_safe_ventcrawl_target(entry_vent)
if(!exit_vent) if(!exit_vent)
return return
@@ -205,8 +204,6 @@
if(new_area) if(new_area)
new_area.Entered(src) new_area.Entered(src)
//=================
if(isturf(loc)) if(isturf(loc))
skitter() skitter()

View File

@@ -24,7 +24,7 @@
icon_state = "smoke" icon_state = "smoke"
duration = 50 duration = 50
// VOREStation Add - Used by Kinetic Accelerator // Used by Kinetic Accelerator
/obj/effect/temp_visual/kinetic_blast /obj/effect/temp_visual/kinetic_blast
name = "kinetic explosion" name = "kinetic explosion"
icon = 'icons/obj/projectiles.dmi' icon = 'icons/obj/projectiles.dmi'
@@ -43,9 +43,8 @@
/obj/effect/temp_visual/explosion/fast /obj/effect/temp_visual/explosion/fast
icon_state = "explosionfast" icon_state = "explosionfast"
duration = 4 duration = 4
// VOREStation Add End
//VOREStation edit: medigun // Medigun
/obj/effect/temp_visual/heal /obj/effect/temp_visual/heal
name = "healing glow" name = "healing glow"
icon_state = "heal" icon_state = "heal"
@@ -55,4 +54,3 @@
. = ..() . = ..()
pixel_x = rand(-12, 12) pixel_x = rand(-12, 12)
pixel_y = rand(-9, 0) pixel_y = rand(-9, 0)
//VOREStation edit ends

View File

@@ -80,11 +80,10 @@
light_power = 3 light_power = 3
light_color = "#3300ff" light_color = "#3300ff"
//VOREStation edit: medigun // Medigun
/obj/effect/projectile/impact/medigun /obj/effect/projectile/impact/medigun
icon = 'icons/obj/projectiles_vr.dmi' icon = 'icons/obj/projectiles_vr.dmi'
icon_state = "impact_medbeam" icon_state = "impact_medbeam"
light_range = 2 light_range = 2
light_power = 0.5 light_power = 0.5
light_color = "#80F5FF" light_color = "#80F5FF"
//VOREStation edit ends

View File

@@ -92,11 +92,10 @@
light_power = 3 light_power = 3
light_color = "#3300ff" light_color = "#3300ff"
//VOREStation edit: medigun // Medigun
/obj/effect/projectile/muzzle/medigun /obj/effect/projectile/muzzle/medigun
icon = 'icons/obj/projectiles_vr.dmi' icon = 'icons/obj/projectiles_vr.dmi'
icon_state = "muzzle_medbeam" icon_state = "muzzle_medbeam"
light_range = 2 light_range = 2
light_power = 0.5 light_power = 0.5
light_color = "#80F5FF" light_color = "#80F5FF"
//VOREStation edit ends

View File

@@ -115,11 +115,10 @@
light_power = 3 light_power = 3
light_color = "#3300ff" light_color = "#3300ff"
//VOREStation edit: medigun // Medigun
/obj/effect/projectile/tracer/medigun /obj/effect/projectile/tracer/medigun
icon = 'icons/obj/projectiles_vr.dmi' icon = 'icons/obj/projectiles_vr.dmi'
icon_state = "medbeam" icon_state = "medbeam"
light_range = 2 light_range = 2
light_power = 0.5 light_power = 0.5
light_color = "#80F5FF" light_color = "#80F5FF"
//VOREStation edit ends

View File

@@ -188,8 +188,6 @@ GLOBAL_LIST_EMPTY(PDAs)
/obj/item/pda/syndicate /obj/item/pda/syndicate
default_cartridge = /obj/item/cartridge/syndicate default_cartridge = /obj/item/cartridge/syndicate
icon_state = "pda-syn" icon_state = "pda-syn"
// name = "Military PDA" // Vorestation Edit
// owner = "John Doe"
hidden = 1 hidden = 1
/obj/item/pda/chaplain /obj/item/pda/chaplain
@@ -1474,7 +1472,7 @@ GLOBAL_LIST_EMPTY(PDAs)
/obj/item/pda/Destroy() /obj/item/pda/Destroy()
GLOB.PDAs -= src 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)) src.id.forceMove(get_turf(src.loc))
else else
QDEL_NULL(src.id) QDEL_NULL(src.id)

View File

@@ -207,7 +207,7 @@
for(var/obj/item/communicator/comm in communicating) for(var/obj/item/communicator/comm in communicating)
var/turf/T = get_turf(comm) var/turf/T = get_turf(comm)
if(!T) return if(!T) return
//VOREStation Edit Start for commlinks // Commlinks
var/list/mobs_to_relay var/list/mobs_to_relay
if(istype(comm,/obj/item/communicator/commlink)) if(istype(comm,/obj/item/communicator/commlink))
var/obj/item/communicator/commlink/CL = comm var/obj/item/communicator/commlink/CL = comm
@@ -215,7 +215,6 @@
else 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 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"] 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. 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)) var/dst = get_dist(get_turf(mob),get_turf(comm))
@@ -236,7 +235,7 @@
var/turf/T = get_turf(comm) var/turf/T = get_turf(comm)
if(!T) if(!T)
return return
//VOREStation Edit Start for commlinks // Commlinks
var/list/mobs_to_relay var/list/mobs_to_relay
if(istype(comm,/obj/item/communicator/commlink)) if(istype(comm,/obj/item/communicator/commlink))
var/obj/item/communicator/commlink/CL = comm var/obj/item/communicator/commlink/CL = comm
@@ -244,7 +243,6 @@
else 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 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"] mobs_to_relay = in_range["mobs"]
//VOREStation Edit End
var/mob/living/L = (isliving(M) && M) || null var/mob/living/L = (isliving(M) && M) || null
var/message = text var/message = text
@@ -367,4 +365,3 @@
visible_message(.) visible_message(.)
update_icon() update_icon()

View File

@@ -168,20 +168,19 @@
playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
var/flashfail = 0 var/flashfail = 0
//VOREStation Add - NIF // NIF
if(ishuman(M)) if(ishuman(M))
var/mob/living/carbon/human/H = M var/mob/living/carbon/human/H = M
if(H.nif && H.nif.flag_check(NIF_V_FLASHPROT,NIF_FLAGS_VISION)) if(H.nif && H.nif.flag_check(NIF_V_FLASHPROT,NIF_FLAGS_VISION))
flashfail = 1 flashfail = 1
H.nif.notify("High intensity light detected, and blocked!",TRUE) 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 var/mob/living/carbon/C = M
if(C.stat != DEAD) if(C.stat != DEAD)
var/safety = C.eyecheck() var/safety = C.eyecheck()
if(safety <= 0) if(safety <= 0)
var/flash_strength = 10 //Vorestation edit, making flashes behave the same as flash rounds var/flash_strength = 10
if(ishuman(C)) if(ishuman(C))
var/mob/living/carbon/human/H = C var/mob/living/carbon/human/H = C
flash_strength *= H.species.flash_mod flash_strength *= H.species.flash_mod

View File

@@ -24,7 +24,7 @@ var/global/list/active_radio_jammers = list()
var/on = 0 var/on = 0
var/jam_range = 7 var/jam_range = 7
var/obj/item/cell/device/weapon/power_source 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! origin_tech = list(TECH_ILLEGAL = 7, TECH_BLUESPACE = 5) //Such technology! Subspace jamming!

View File

@@ -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 // 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( GLOBAL_LIST_INIT(default_internal_channels, list(
//VOREStation Edit Start - Updating this for Virgo
num2text(PUB_FREQ) = list(), num2text(PUB_FREQ) = list(),
num2text(AI_FREQ) = list(access_synth), num2text(AI_FREQ) = list(access_synth),
num2text(ENT_FREQ) = list(), num2text(ENT_FREQ) = list(),
@@ -576,8 +575,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list(
return -1 return -1
if(!(0 in level)) if(!(0 in level))
var/turf/position = get_turf(src) var/turf/position = get_turf(src)
if((!position || !(position.z in level)) && !bluespace_radio) //VOREStation Edit if((!position || !(position.z in level)) && !bluespace_radio) return -1
return -1
if(freq in ANTAG_FREQS) if(freq in ANTAG_FREQS)
if(!(src.syndie))//Checks to see if it's allowed on that frequency, based on the encryption keys if(!(src.syndie))//Checks to see if it's allowed on that frequency, based on the encryption keys
return -1 return -1

View File

@@ -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 += "\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 += "\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]&deg;C ([M.bodytemperature*1.8-459.67]&deg;F)</span><br>" dat += "Body Temperature: [M.bodytemperature-T0C]&deg;C ([M.bodytemperature*1.8-459.67]&deg;F)</span><br>"
//VOREStation edit/addition starts
if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH))) if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
dat += "<span class='notice'>Time of Death: [worldtime2stationtime(M.timeofdeath)]</span><br>" dat += "<span class='notice'>Time of Death: [worldtime2stationtime(M.timeofdeath)]</span><br>"
var/tdelta = round(world.time - M.timeofdeath) var/tdelta = round(world.time - M.timeofdeath)
if(tdelta < (DEFIB_TIME_LIMIT * 10)) if(tdelta < (DEFIB_TIME_LIMIT * 10))
dat += "<span class='notice'><b>Subject died [DisplayTimeText(tdelta)] ago - resuscitation may be possible!</b></span><br>" 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) if(istype(M, /mob/living/carbon/human) && mode == 1)
var/mob/living/carbon/human/H = M var/mob/living/carbon/human/H = M
var/list/damaged = H.get_damaged_organs(1,1) 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>") to_chat(user, "<span class='notice'>No radiation detected.</span>")
return return
#undef DEFIB_TIME_LIMIT //VOREStation addition #undef DEFIB_TIME_LIMIT

View File

@@ -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>", \ 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>" ) "<span class='notice'>You place a bandaid over \a [W.desc] on [M]'s [affecting.name].</span>" )
W.bandage() W.bandage()
// W.disinfect() // VOREStation - Tech1 should not disinfect
playsound(src, pick(apply_sounds), 25) playsound(src, pick(apply_sounds), 25)
used++ used++
M.bitten = 0 M.bitten = 0
@@ -255,7 +254,7 @@
singular_name = "advanced trauma kit" singular_name = "advanced trauma kit"
desc = "An advanced trauma kit for severe injuries." desc = "An advanced trauma kit for severe injuries."
icon_state = "traumakit" icon_state = "traumakit"
heal_brute = 7 //VOREStation Edit heal_brute = 7
origin_tech = list(TECH_BIO = 1) origin_tech = list(TECH_BIO = 1)
apply_sounds = list('sound/effects/rip1.ogg','sound/effects/rip2.ogg','sound/effects/tape.ogg') apply_sounds = list('sound/effects/rip1.ogg','sound/effects/rip2.ogg','sound/effects/tape.ogg')
@@ -283,8 +282,6 @@
continue continue
if (W.bandaged && W.disinfected) if (W.bandaged && W.disinfected)
continue continue
//if(used == amount) //VOREStation Edit
// break //VOREStation Edit
if(!do_mob(user, M, W.damage/5)) if(!do_mob(user, M, W.damage/5))
to_chat(user, "<span class='notice'>You must stand still to bandage wounds.</span>") to_chat(user, "<span class='notice'>You must stand still to bandage wounds.</span>")
break break
@@ -304,8 +301,8 @@
W.disinfect() W.disinfect()
W.heal_damage(heal_brute) W.heal_damage(heal_brute)
playsound(src, pick(apply_sounds), 25) playsound(src, pick(apply_sounds), 25)
used = 1 //VOREStation Edit used = 1
update_icon() // VOREStation Edit - Support for stack icons update_icon() // Support for stack icons
affecting.update_damages() affecting.update_damages()
if(used == amount) if(used == amount)
if(affecting.is_bandaged()) if(affecting.is_bandaged())
@@ -319,7 +316,7 @@
singular_name = "advanced burn kit" singular_name = "advanced burn kit"
desc = "An advanced treatment kit for severe burns." desc = "An advanced treatment kit for severe burns."
icon_state = "burnkit" icon_state = "burnkit"
heal_burn = 7 //VOREStation Edit heal_burn = 7
origin_tech = list(TECH_BIO = 1) origin_tech = list(TECH_BIO = 1)
apply_sounds = list('sound/effects/ointment.ogg') apply_sounds = list('sound/effects/ointment.ogg')
@@ -352,7 +349,7 @@
use(1) use(1)
affecting.salve() affecting.salve()
playsound(src, pick(apply_sounds), 25) 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 /obj/item/stack/medical/splint
name = "medical splints" name = "medical splints"

View File

@@ -32,7 +32,6 @@
if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs
var/mob/living/carbon/human/H = M var/mob/living/carbon/human/H = M
var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting) var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting)
//VOREStation Edit Start
if (S && (S.robotic >= ORGAN_ROBOT)) if (S && (S.robotic >= ORGAN_ROBOT))
if(!S.get_damage()) if(!S.get_damage())
to_chat(user, "<span class='notice'>Nothing to fix here.</span>") to_chat(user, "<span class='notice'>Nothing to fix here.</span>")
@@ -47,7 +46,6 @@
use(1) 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>",\ 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>") "<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 /obj/item/stack/nanopaste/advanced
name = "advanced nanopaste" name = "advanced nanopaste"

View File

@@ -74,7 +74,7 @@
/obj/item/duct_tape_roll, /obj/item/duct_tape_roll,
/obj/item/switchtool, /obj/item/switchtool,
/obj/item/integrated_electronics/wirer, /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 /obj/item/storage/belt/utility/full
@@ -125,7 +125,7 @@
/obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/bottle,
/obj/item/reagent_containers/pill, /obj/item/reagent_containers/pill,
/obj/item/reagent_containers/syringe, /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/flame/lighter/zippo,
/obj/item/storage/fancy/cigarettes, /obj/item/storage/fancy/cigarettes,
/obj/item/storage/pill_bottle, /obj/item/storage/pill_bottle,

View File

@@ -15,7 +15,7 @@
/obj/item/storage/briefcase/clutch /obj/item/storage/briefcase/clutch
name = "clutch purse" name = "clutch purse"
desc = "A fashionable handheld bag typically used by women." 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" icon_state = "clutch"
item_state_slots = list(slot_r_hand_str = "smpurse", slot_l_hand_str = "smpurse") item_state_slots = list(slot_r_hand_str = "smpurse", slot_l_hand_str = "smpurse")
force = 0 force = 0

View File

@@ -16,22 +16,17 @@
throw_range = 8 throw_range = 8
slot_flags = SLOT_BELT slot_flags = SLOT_BELT
max_storage_space = ITEMSIZE_COST_SMALL * 7 // 14 max_storage_space = ITEMSIZE_COST_SMALL * 7 // 14
// var/list/icon_variety // VOREStation edit
drop_sound = 'sound/items/drop/cardboardbox.ogg' drop_sound = 'sound/items/drop/cardboardbox.ogg'
pickup_sound = 'sound/items/pickup/cardboardbox.ogg' pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
/obj/item/storage/firstaid/Initialize(mapload) /obj/item/storage/firstaid/Initialize(mapload)
. = ..() . = ..()
// if(icon_variety) // VOREStation edit
// icon_state = pick(icon_variety)
// icon_variety = null
/obj/item/storage/firstaid/fire /obj/item/storage/firstaid/fire
name = "fire first aid kit" name = "fire first aid kit"
desc = "It's an emergency medical kit for when the toxins lab <i>spontaneously</i> burns down." desc = "It's an emergency medical kit for when the toxins lab <i>spontaneously</i> burns down."
icon_state = "ointment" icon_state = "ointment"
item_state_slots = list(slot_r_hand_str = "firstaid-ointment", slot_l_hand_str = "firstaid-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( starts_with = list(
/obj/item/healthanalyzer, /obj/item/healthanalyzer,
/obj/item/reagent_containers/hypospray/autoinjector, /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." desc = "Used to treat when one has a high amount of toxins in their body."
icon_state = "antitoxin" icon_state = "antitoxin"
item_state_slots = list(slot_r_hand_str = "firstaid-toxin", slot_l_hand_str = "firstaid-toxin") 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( starts_with = list(
/obj/item/reagent_containers/syringe/antitoxin, /obj/item/reagent_containers/syringe/antitoxin,
/obj/item/reagent_containers/syringe/antitoxin, /obj/item/reagent_containers/syringe/antitoxin,
@@ -124,7 +118,7 @@
icon_state = "surgerykit" icon_state = "surgerykit"
item_state = "firstaid-surgery" item_state = "firstaid-surgery"
max_w_class = ITEMSIZE_NORMAL max_w_class = ITEMSIZE_NORMAL
max_storage_space = 25 //update this when necessary! max_storage_space = 25 //update this when necessary!
can_hold = list( can_hold = list(
/obj/item/surgical, /obj/item/surgical,
@@ -145,7 +139,6 @@
/obj/item/surgical/bonegel, /obj/item/surgical/bonegel,
/obj/item/surgical/FixOVein, /obj/item/surgical/FixOVein,
/obj/item/stack/medical/advanced/bruise_pack, /obj/item/stack/medical/advanced/bruise_pack,
///obj/item/healthanalyzer/advanced,
/obj/item/autopsy_scanner /obj/item/autopsy_scanner
) )
@@ -183,11 +176,11 @@
max_w_class = ITEMSIZE_TINY max_w_class = ITEMSIZE_TINY
var/label_text = "" var/label_text = ""
var/labeled = 0 // Citadel Change - Used in labeling var/labeled = 0
var/base_name = " " var/base_name = " "
var/base_desc = " " var/base_desc = " "
var/base_icon = "pill_canister" // Citadel Change - Used in recoloring var/base_icon = "pill_canister"
var/bottle_color = "orange" // Citadel Change - Used in recoloring var/bottle_color = "orange"
/obj/item/storage/pill_bottle/Initialize(mapload) /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>") to_chat(user, "<span class='notice'>You set the label to \"[tmp_label]\".</span>")
label_text = tmp_label label_text = tmp_label
update_name_label() update_name_label()
labeled = 1 // Citadel Change - Overlay for labels labeled = 1
update_icon() // Citadel Change - Overlay for labels update_icon()
else else
..() ..()
@@ -225,7 +218,7 @@
name = "[base_name] ([label_text])" name = "[base_name] ([label_text])"
desc = "[base_desc] It is labeled \"[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 name = "Recolor bottle"
set category = "Object" set category = "Object"
set desc = "Click to choose a color for the pill bottle." set desc = "Click to choose a color for the pill bottle."
@@ -262,87 +255,87 @@
. = ..() . = ..()
if(base_icon == "pill_canister") if(base_icon == "pill_canister")
verbs += /obj/item/storage/pill_bottle/proc/choose_color verbs += /obj/item/storage/pill_bottle/proc/choose_color
update_icon() // END Citadel Changes - Bottle recoloring update_icon()
/obj/item/storage/pill_bottle/antitox /obj/item/storage/pill_bottle/antitox
name = "bottle of Dylovene pills" name = "bottle of Dylovene pills"
desc = "Contains pills used to counter toxins." desc = "Contains pills used to counter toxins."
labeled = 1 // Citadel Change - Recoloring - There are a lot of these. labeled = 1
bottle_color = "green" // Citadel Change - Recoloring - There are a lot of these. bottle_color = "green"
starts_with = list(/obj/item/reagent_containers/pill/antitox = 7) starts_with = list(/obj/item/reagent_containers/pill/antitox = 7)
/obj/item/storage/pill_bottle/bicaridine /obj/item/storage/pill_bottle/bicaridine
name = "bottle of Bicaridine pills" name = "bottle of Bicaridine pills"
desc = "Contains pills used to stabilize the severely injured." desc = "Contains pills used to stabilize the severely injured."
labeled = 1 // Citadel Change - Recoloring - There are a lot of these. labeled = 1
bottle_color = "red" // Citadel Change - Recoloring - There are a lot of these. bottle_color = "red"
starts_with = list(/obj/item/reagent_containers/pill/bicaridine = 7) starts_with = list(/obj/item/reagent_containers/pill/bicaridine = 7)
/obj/item/storage/pill_bottle/dexalin_plus /obj/item/storage/pill_bottle/dexalin_plus
name = "bottle of Dexalin Plus pills" name = "bottle of Dexalin Plus pills"
desc = "Contains pills used to treat extreme cases of oxygen deprivation." desc = "Contains pills used to treat extreme cases of oxygen deprivation."
labeled = 1 // Citadel Change - Recoloring - There are a lot of these. labeled = 1
bottle_color = "blue" // Citadel Change - Recoloring - There are a lot of these. bottle_color = "blue"
starts_with = list(/obj/item/reagent_containers/pill/dexalin_plus = 7) starts_with = list(/obj/item/reagent_containers/pill/dexalin_plus = 7)
/obj/item/storage/pill_bottle/dermaline /obj/item/storage/pill_bottle/dermaline
name = "bottle of Dermaline pills" name = "bottle of Dermaline pills"
desc = "Contains pills used to treat burn wounds." 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) starts_with = list(/obj/item/reagent_containers/pill/dermaline = 7)
/obj/item/storage/pill_bottle/dylovene /obj/item/storage/pill_bottle/dylovene
name = "bottle of Dylovene pills" name = "bottle of Dylovene pills"
desc = "Contains pills used to treat toxic substances in the blood." desc = "Contains pills used to treat toxic substances in the blood."
labeled = 1 // Citadel Change - Recoloring - There are a lot of these. labeled = 1
bottle_color = "green" // Citadel Change - Recoloring - There are a lot of these. bottle_color = "green"
starts_with = list(/obj/item/reagent_containers/pill/dylovene = 7) starts_with = list(/obj/item/reagent_containers/pill/dylovene = 7)
/obj/item/storage/pill_bottle/inaprovaline /obj/item/storage/pill_bottle/inaprovaline
name = "bottle of Inaprovaline pills" name = "bottle of Inaprovaline pills"
desc = "Contains pills used to stabilize patients." desc = "Contains pills used to stabilize patients."
labeled = 1 // Citadel Change - Recoloring - There are a lot of these. labeled = 1
bottle_color = "blue" // Citadel Change - Recoloring - There are a lot of these. bottle_color = "blue"
starts_with = list(/obj/item/reagent_containers/pill/inaprovaline = 7) starts_with = list(/obj/item/reagent_containers/pill/inaprovaline = 7)
/obj/item/storage/pill_bottle/kelotane /obj/item/storage/pill_bottle/kelotane
name = "bottle of kelotane pills" name = "bottle of kelotane pills"
desc = "Contains pills used to treat burns." 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) starts_with = list(/obj/item/reagent_containers/pill/kelotane = 7)
/obj/item/storage/pill_bottle/spaceacillin /obj/item/storage/pill_bottle/spaceacillin
name = "bottle of Spaceacillin pills" name = "bottle of Spaceacillin pills"
desc = "A theta-lactam antibiotic. Effective against many diseases likely to be encountered in space." 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. labeled = 1
bottle_color = "white" // Citadel Change - Recoloring - There are a lot of these. bottle_color = "white"
starts_with = list(/obj/item/reagent_containers/pill/spaceacillin = 7) starts_with = list(/obj/item/reagent_containers/pill/spaceacillin = 7)
/obj/item/storage/pill_bottle/tramadol /obj/item/storage/pill_bottle/tramadol
name = "bottle of Tramadol pills" name = "bottle of Tramadol pills"
desc = "Contains pills used to relieve pain." desc = "Contains pills used to relieve pain."
labeled = 1 // Citadel Change - Recoloring - There are a lot of these. labeled = 1
bottle_color = "purple" // Citadel Change - Recoloring - There are a lot of these. bottle_color = "purple"
starts_with = list(/obj/item/reagent_containers/pill/tramadol = 7) starts_with = list(/obj/item/reagent_containers/pill/tramadol = 7)
/obj/item/storage/pill_bottle/citalopram /obj/item/storage/pill_bottle/citalopram
name = "bottle of Citalopram pills" name = "bottle of Citalopram pills"
desc = "Contains pills used to stabilize a patient's mood." 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) starts_with = list(/obj/item/reagent_containers/pill/citalopram = 7)
/obj/item/storage/pill_bottle/carbon /obj/item/storage/pill_bottle/carbon
name = "bottle of Carbon pills" name = "bottle of Carbon pills"
desc = "Contains pills used to neutralise chemicals in the stomach." desc = "Contains pills used to neutralise chemicals in the stomach."
labeled = 1 // Citadel Change - Recoloring - There are a lot of these. labeled = 1
bottle_color = "black" // Citadel Change - Recoloring - There are a lot of these. bottle_color = "black"
starts_with = list(/obj/item/reagent_containers/pill/carbon = 7) starts_with = list(/obj/item/reagent_containers/pill/carbon = 7)
/obj/item/storage/pill_bottle/iron /obj/item/storage/pill_bottle/iron
name = "bottle of Iron pills" name = "bottle of Iron pills"
desc = "Contains pills used to aid in blood regeneration." desc = "Contains pills used to aid in blood regeneration."
labeled = 1 // Citadel Change - Recoloring - There are a lot of these. labeled = 1
bottle_color = "black" // Citadel Change - Recoloring - There are a lot of these. bottle_color = "black"
starts_with = list(/obj/item/reagent_containers/pill/iron = 7) starts_with = list(/obj/item/reagent_containers/pill/iron = 7)
/obj/item/storage/firstaid/clotting /obj/item/storage/firstaid/clotting

View File

@@ -7,7 +7,6 @@
/obj/item/storage/internal/Initialize(mapload) /obj/item/storage/internal/Initialize(mapload)
. = ..() . = ..()
master_item = loc master_item = loc
//name = master_item.name //VOREStation Removal
verbs -= /obj/item/verb/verb_pickup //make sure this is never picked up. verbs -= /obj/item/verb/verb_pickup //make sure this is never picked up.
/obj/item/storage/internal/Destroy() /obj/item/storage/internal/Destroy()

View File

@@ -7,7 +7,7 @@
/obj/item/storage/quickdraw /obj/item/storage/quickdraw
name = "quickdraw" name = "quickdraw"
desc = "This object should not appear" desc = "This object should not appear"
icon = 'icons/obj/storage.dmi' // VOREStation Edit icon = 'icons/obj/storage.dmi'
//Quickmode //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 //When set to 0, this storage will operate as a regular storage, and clicking on it while equipped will open it as a storage

View File

@@ -213,7 +213,7 @@
rcd_beam = beam_origin.Beam(A, icon_state = "rped_upgrade", time = max(true_delay, 5)) rcd_beam = beam_origin.Beam(A, icon_state = "rped_upgrade", time = max(true_delay, 5))
busy = TRUE busy = TRUE
perform_effect(A, true_delay) //VOREStation Add perform_effect(A, true_delay)
if(do_after(user, true_delay, target = A)) if(do_after(user, true_delay, target = A))
busy = FALSE busy = FALSE
// Doing another check in case we lost matter during the delay for whatever reason. // Doing another check in case we lost matter during the delay for whatever reason.

View File

@@ -2,8 +2,6 @@
#error T_BOARD macro is not defined but we need it! #error T_BOARD macro is not defined but we need it!
#endif #endif
// VOREStation specific circuit boards!
// Board for the parts lathe in partslathe.dm // Board for the parts lathe in partslathe.dm
/obj/item/circuitboard/partslathe /obj/item/circuitboard/partslathe
name = T_BOARD("parts lathe") name = T_BOARD("parts lathe")

View File

@@ -110,12 +110,11 @@
uses -= used_uses uses -= used_uses
W.add_fingerprint(user) 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) if(used_uses)
log_and_message_admins("emagged \an [W].") log_and_message_admins("emagged \an [W].")
else else
log_and_message_admins("attempted to emag \an [W].") log_and_message_admins("attempted to emag \an [W].")
// Vorestation Edit: End of Edit
log_and_message_admins("emagged \an [W].") log_and_message_admins("emagged \an [W].")
if(uses<1) if(uses<1)

View File

@@ -386,8 +386,8 @@
job_access_type = /datum/job/station/qm job_access_type = /datum/job/station/qm
/obj/item/card/id/assistant /obj/item/card/id/assistant
assignment = USELESS_JOB //VOREStation Edit - Visitor not Assistant assignment = USELESS_JOB
rank = USELESS_JOB //VOREStation Edit - Visitor not Assistant rank = USELESS_JOB
job_access_type = /datum/job/station/assistant job_access_type = /datum/job/station/assistant
/obj/item/card/id/civilian /obj/item/card/id/civilian

View File

@@ -110,12 +110,11 @@
uses -= used_uses uses -= used_uses
W.add_fingerprint(user) 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) if(used_uses)
log_and_message_admins("emagged \an [W].") log_and_message_admins("emagged \an [W].")
else else
log_and_message_admins("attempted to emag \an [W].") log_and_message_admins("attempted to emag \an [W].")
// Vorestation Edit: End of Edit
log_and_message_admins("emagged \an [W].") log_and_message_admins("emagged \an [W].")
if(uses<1) if(uses<1)

Some files were not shown because too many files have changed in this diff Show More