* 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
Certain types of changes may require prior approval from maintainers. This currently includes:
* Code adding, removing, or updating the availability of alien races/species/human mutants. This includes pull requests attempting to add or remove features from said races/species/mutants. (Requires approval from at least one maintainer)
* Code adding, removing, or updating the availability of alien races/species/humans. This includes pull requests attempting to add or remove features from said races/species/mutants. (Requires approval from at least one maintainer)
* Code adding, removing, or modifying the functionality of adult-oriented features (such as, but not limited to: vore, genitals, MKUltra, and more). This also includes pull requests attempting to add or remove these features outright. (Requires approval from at least half of the formal maintainer team)
The above content requires approval from the specified amount of maintainers prior to PR creation. Seeking approval must be done via a @Maintainer ping in a relevant development/code or staff channel on the Discord, otherwise it will be considered insufficient. If a PR contains any of the above content, but the creator does not have sufficient approval prior to the PR's creation, then the PR may be closed by any maintainer, at any time, for any reason.

View File

@@ -36,7 +36,7 @@ jobs:
tools/bootstrap/python -c ''
- name: Run Linters
run: |
bash tools/ci/check_filedirs.sh vorestation.dme
bash tools/ci/check_filedirs.sh citadel.dme
bash tools/ci/check_changelogs.sh
bash tools/ci/check_grep.sh
bash tools/ci/check_misc.sh

View File

@@ -15,7 +15,7 @@
This is the codebase for the CitadelRP flavoured fork of SpaceStation 13.
Citadel Station 13 RP, also known as CitadelRP was originally a fork of VOREStation, which separated on 01/25/2019. CitadelRP nowadays can be seen as a Polaris and /tg/station hybrid!
Citadel Station 13 RP, also known as CitadelRP was originally a fork of VOREStation, which separated on 01/25/2019.
## DOWNLOADING
[Downloading](.github/guides/DOWNLOADING.md)

View File

@@ -1,4 +1,4 @@
environment = "vorestation.dme"
environment = "citadel.dme"
[langserver]
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.
// New source code should be placed in .dm files: choose File/New --> Code File.
// BEGIN_INTERNALS
@@ -2149,7 +2149,6 @@
#include "code\modules\events\spacevine.dm"
#include "code\modules\events\spider_infestation.dm"
#include "code\modules\events\spontaneous_appendicitis.dm"
#include "code\modules\events\spontaneous_appendicitis_vr.dm"
#include "code\modules\events\supply_demand.dm"
#include "code\modules\events\wallrot.dm"
#include "code\modules\examine\examine.dm"

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

View File

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

View File

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

View File

@@ -56,8 +56,6 @@
'sound/ambience/generic/generic3.ogg'\
)
// 'sound/ambience/generic/generic4.ogg'\ // VOREStation Edit: Comment out entry 4 as this doesn't fit on Virgo, and we have our own weather system.
// Sounds of PA announcements, presumably involving shuttles?
#define AMBIENCE_ARRIVALS list(\
'sound/ambience/arrivals/arrivals1.ogg',\

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

View File

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

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

View File

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

View File

@@ -128,7 +128,7 @@
trigger_aiming(TARGET_CAN_CLICK)
return 1
// VOREStation Addition Start: inbelly item interaction
// Inbelly item interaction
if(isbelly(loc) && (loc == A.loc))
if(W)
var/resolved = W.resolve_attackby(A, src, params)
@@ -139,7 +139,6 @@
setClickCooldown(get_attack_speed())
UnarmedAttack(A, 1)
return
// VOREStation Addition End
if(!isturf(loc)) // This is going to stop you from telekinesing from inside a closet, but I don't shed many tears for that
return

View File

@@ -182,7 +182,7 @@
/mob/Initialize(mapload)
. = ..()
if(!ability_master) //VOREStation Edit: S H A D E K I N
if(!ability_master)
ability_master = new /atom/movable/screen/movable/ability_master(src)
///////////ACTUAL ABILITIES////////////

View File

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

View File

@@ -463,7 +463,7 @@
var/mob/living/silicon/ai/AI = usr
AI.view_images()
else
return attempt_vr(src,"Click_vr",list(location,control,params)) //VOREStation Add - Additional things.
return attempt_vr(src,"Click_vr",list(location,control,params))
return 1
/atom/movable/screen/inventory/Click()

View File

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

View File

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

View File

@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(inactivity)
if(config_legacy.kick_inactive)
for(var/i in GLOB.clients)
var/client/C = i
if(C.is_afk(config_legacy.kick_inactive MINUTES) && !C.holder) // VOREStation Edit - Allow admins to idle
if(C.is_afk(config_legacy.kick_inactive MINUTES) && !C.holder) // Allow admins to idle
to_chat(C,"<span class='warning'>You have been inactive for more than [config_legacy.kick_inactive] minute\s and have been disconnected.</span>")
var/information

View File

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

View File

@@ -304,7 +304,7 @@ SUBSYSTEM_DEF(mapping)
//
// Mapping subsystem handles initialization of random map elements at server start
// On VOREStation that means loading our random roundstart engine!
// For us that means loading our random roundstart engine!
//
/datum/controller/subsystem/mapping
var/list/map_templates = list()

View File

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

View File

@@ -116,7 +116,7 @@ SUBSYSTEM_DEF(radiation)
add_source(S)
// Sets the radiation in a range to a constant value.
/datum/controller/subsystem/radiation/proc/flat_radiate(source, power, range, var/respect_maint = TRUE) //VOREStation edit; Respect shielded areas by default please.
/datum/controller/subsystem/radiation/proc/flat_radiate(source, power, range, respect_maint = TRUE) // Respect shielded areas by default please.
if(!(source && power && range))
return
var/datum/radiation_source/S = new()
@@ -128,7 +128,7 @@ SUBSYSTEM_DEF(radiation)
add_source(S)
// Irradiates a full Z-level. Hacky way of doing it, but not too expensive.
/datum/controller/subsystem/radiation/proc/z_radiate(var/atom/source, power, var/respect_maint = TRUE) //VOREStation edit; Respect shielded areas by default please.
/datum/controller/subsystem/radiation/proc/z_radiate(atom/source, power, respect_maint = TRUE) // Respect shielded areas by default please.
if(!(power && source))
return
var/turf/epicentre = locate(round(world.maxx / 2), round(world.maxy / 2), source.z)

View File

@@ -30,8 +30,6 @@ SUBSYSTEM_DEF(ticker)
var/event_time = null
var/event = 0
// var/login_music // music played in pregame lobby // VOREStation Edit - We do music differently
var/list/datum/mind/minds = list()//The people in the game. Used for objective tracking.
var/Bible_icon_state // icon_state the chaplain has chosen for his bible
@@ -226,7 +224,6 @@ SUBSYSTEM_DEF(ticker)
create_characters() //Create player characters and transfer them.
collect_minds()
equip_characters()
//data_core.manifest() //VOREStation Removal
callHook("roundstart")
@@ -395,13 +392,11 @@ SUBSYSTEM_DEF(ticker)
else if(!player.mind.assigned_role)
continue
else
//VOREStation Edit Start
var/mob/living/carbon/human/new_char = player.create_character()
if(new_char)
qdel(player)
if(istype(new_char) && !(new_char.mind.assigned_role=="Cyborg"))
data_core.manifest_inject(new_char)
//VOREStation Edit End
/datum/controller/subsystem/ticker/proc/collect_minds()
@@ -419,8 +414,6 @@ SUBSYSTEM_DEF(ticker)
if(!player_is_antag(player.mind, only_offstation_roles = 1))
job_master.EquipRank(player, player.mind.assigned_role, 0)
UpdateFactionList(player)
//equip_custom_items(player) //VOREStation Removal
//player.apply_traits() //VOREStation Removal
if(captainless)
for(var/mob/M in player_list)
if(!istype(M,/mob/new_player))

View File

@@ -3,30 +3,24 @@ SUBSYSTEM_DEF(transfer)
name = "Transfer"
var/timerbuffer = 0 //buffer for time check
var/currenttick = 0
var/shift_hard_end = 0 //VOREStation Edit
var/shift_last_vote = 0 //Citadel Edit
var/shift_hard_end = 0
var/shift_last_vote = 0
// should be a config someday lol
#define NUMBER_OF_VOTE_EXTENSIONS 2
/datum/controller/subsystem/transfer/Initialize()
timerbuffer = config_legacy.vote_autotransfer_initial
shift_hard_end = config_legacy.vote_autotransfer_initial + (config_legacy.vote_autotransfer_interval * NUMBER_OF_VOTE_EXTENSIONS) //VOREStation Edit //Change this "1" to how many extend votes you want there to be.
shift_last_vote = shift_hard_end - config_legacy.vote_autotransfer_interval //VOREStation Edit
shift_hard_end = config_legacy.vote_autotransfer_initial + (config_legacy.vote_autotransfer_interval * NUMBER_OF_VOTE_EXTENSIONS) //Change this "1" to how many extend votes you want there to be.
shift_last_vote = shift_hard_end - config_legacy.vote_autotransfer_interval
return ..()
/datum/controller/subsystem/transfer/fire(resumed)
currenttick = currenttick + 1
//VOREStation Edit START
/* if (round_duration_in_ds >= shift_last_vote - 2 MINUTES)
shift_last_vote = 999999999999 //Setting to a stupidly high number since it'll be not used again.
to_world("<b>Warning: This upcoming round-extend vote will be your ONLY extend vote. Wrap up your scenes in the next 60 minutes if the round is extended.</b>") //VOREStation Edit
*/
if (round_duration_in_ds >= shift_hard_end - 1 MINUTE)
if(round_duration_in_ds >= shift_hard_end - 1 MINUTE)
init_shift_change(null, 1)
shift_hard_end = timerbuffer + config_legacy.vote_autotransfer_interval //If shuttle somehow gets recalled, let's force it to call again next time a vote would occur.
timerbuffer = timerbuffer + config_legacy.vote_autotransfer_interval //Just to make sure a vote doesn't occur immediately afterwords.
else if (round_duration_in_ds >= timerbuffer - 1 MINUTE)
else if(round_duration_in_ds >= timerbuffer - 1 MINUTE)
SSvote.autotransfer()
//VOREStation Edit END
timerbuffer = timerbuffer + config_legacy.vote_autotransfer_interval

View File

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

View File

@@ -4,8 +4,8 @@
*/
//VOREStation Edit - Most of this file has been changed to use the Eris-style PA announcements.
//You'll need to compare externally, or use your best judgement when merging.
// Most of this file has been changed to use the Eris-style PA announcements.
// You'll need to compare externally, or use your best judgement when merging.
/var/datum/legacy_announcement/priority/priority_announcement = new(do_log = 0)
/var/datum/legacy_announcement/priority/command/command_announcement = new(do_log = 0, do_newscast = 1)
@@ -138,5 +138,5 @@ datum/legacy_announcement/proc/Log(message as text, message_title as text)
rank = character.mind.role_alt_title
AnnounceArrivalSimple(character.real_name, rank, join_message)
/proc/AnnounceArrivalSimple(var/name, var/rank = "visitor", var/join_message = "will arrive at the station shortly") //VOREStation Edit - Remove shuttle reference
/proc/AnnounceArrivalSimple(var/name, var/rank = "visitor", var/join_message = "will arrive at the station shortly")
GLOB.global_announcer.autosay(join_message, "Arrivals Announcement Computer")

View File

@@ -41,7 +41,7 @@
/*Ammo magazines*/
//////////////////
/////// 5mm
//! ## 5mm
/*
/datum/category_item/autolathe/arms/pistol_5mm
name = "pistol magazine (5mm)"
@@ -55,7 +55,7 @@
path = /obj/item/ammo_magazine/m10x24mm/small
hidden = 1
/////// .45
//! ## .45
/datum/category_item/autolathe/arms/pistol_45
name = "pistol magazine (.45)"
path =/obj/item/ammo_magazine/m45
@@ -93,7 +93,7 @@
path =/obj/item/ammo_magazine/m45tommydrum
hidden = 1
/////// 9mm
//! ## 9mm
// Full size pistol mags.
/datum/category_item/autolathe/arms/pistol_9mm
@@ -157,7 +157,7 @@
name = "top-mounted SMG magazine (9mm flash)"
path =/obj/item/ammo_magazine/m9mmt/flash
/////// 10mm
//! ## 10mm
/datum/category_item/autolathe/arms/smg_10mm
name = "SMG magazine (10mm)"
path =/obj/item/ammo_magazine/m10mm
@@ -168,7 +168,7 @@
path =/obj/item/ammo_magazine/m44
hidden = 1
/////// 5.45mm
//! ## 5.45mm
/datum/category_item/autolathe/arms/rifle_545
name = "rifle magazine (5.45mm)"
path =/obj/item/ammo_magazine/m545
@@ -178,21 +178,12 @@
name = "rifle magazine (5.45mm practice)"
path =/obj/item/ammo_magazine/m545/practice
/*/datum/category_item/autolathe/arms/rifle_545_hunter //VOREStation Edit Start. By request of Ace
name = "rifle magazine (5.45mm hunting)"
path =/obj/item/ammo_magazine/m545/hunter*/ //VOREStation Edit End.
/datum/category_item/autolathe/arms/machinegun_545
name = "machinegun box magazine (5.45)"
path =/obj/item/ammo_magazine/m545saw
hidden = 1
/*/datum/category_item/autolathe/arms/machinegun_545_hunter //VOREStation Edit Start. By request of Ace
name = "machinegun box magazine (5.45 hunting)"
path =/obj/item/ammo_magazine/m545saw/hunter
hidden = 1*/ //VOREStation Edit End.
/////// 7.62
//! ## 7.62
/datum/category_item/autolathe/arms/rifle_762
name = "rifle magazine (7.62mm)"
@@ -206,7 +197,7 @@
hidden = 1
*/
/////// Shotgun
//! ## Shotgun
/datum/category_item/autolathe/arms/shotgun_clip_beanbag
name = "2-round 12g speedloader (beanbag)"
@@ -226,101 +217,6 @@
name = "2-round 12g speedloader (beanbag)"
path =/obj/item/ammo_magazine/clip/c12g/beanbag
/* Commented out until autolathe stuff is decided/fixed. Will probably remove these entirely. -Spades
// These should always be/empty! The idea is to fill them up manually with ammo clips.
/datum/category_item/autolathe/arms/pistol_5mm
name = "pistol magazine (5mm)"
path =/obj/item/ammo_magazine/c5mm/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/smg_5mm
name = "top-mounted SMG magazine (5mm)"
path =/obj/item/ammo_magazine/c5mmt/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/pistol_45
name = "pistol magazine (.45)"
path =/obj/item/ammo_magazine/m45/empty
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/pistol_45uzi
name = "stick magazine (.45)"
path =/obj/item/ammo_magazine/m45uzi/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/tommymag
name = "Tommy Gun magazine (.45)"
path =/obj/item/ammo_magazine/m45tommy/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/tommydrum
name = "Tommy Gun drum magazine (.45)"
path =/obj/item/ammo_magazine/m45tommydrum/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/pistol_9mm
name = "pistol magazine (9mm)"
path =/obj/item/ammo_magazine/m9mm/empty
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/smg_9mm
name = "top-mounted SMG magazine (9mm)"
path =/obj/item/ammo_magazine/m9mmt/empty
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/smg_10mm
name = "SMG magazine (10mm)"
path =/obj/item/ammo_magazine/m10mm/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/pistol_44
name = "pistol magazine (.44)"
path =/obj/item/ammo_magazine/m44/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/rifle_545
name = "10rnd rifle magazine (5.45mm)"
path =/obj/item/ammo_magazine/m545saw/empty
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/rifle_545m
name = "20rnd rifle magazine (5.45mm)"
path =/obj/item/ammo_magazine/m545sawm/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/rifle_SVD
name = "10rnd rifle magazine (7.62mm)"
path =/obj/item/ammo_magazine/m762svd/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/rifle_762
name = "20rnd rifle magazine (7.62mm)"
path =/obj/item/ammo_magazine/m762/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/machinegun_762
name = "machinegun box magazine (7.62)"
path =/obj/item/ammo_magazine/a762/empty
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/shotgun_magazine
name = "24rnd shotgun magazine (12g)"
path =/obj/item/ammo_magazine/m12gdrum/empty
category = list("Arms and Ammunition")
hidden = 1*/
///////////////////////////////
/*Ammo clips and Speedloaders*/
///////////////////////////////
@@ -348,67 +244,6 @@
name = "speedloader (.45 rubber)"
path = /obj/item/ammo_magazine/s45/rubber
// Commented out until metal exploits with autolathe is fixed.
/*/datum/category_item/autolathe/arms/pistol_clip_45
name = "ammo clip (.45)"
path =/obj/item/ammo_magazine/clip/c45
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/pistol_clip_45r
name = "ammo clip (.45 rubber)"
path =/obj/item/ammo_magazine/clip/c45/rubber
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/pistol_clip_45f
name = "ammo clip (.45 flash)"
path =/obj/item/ammo_magazine/clip/c45/flash
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/pistol_clip_45p
name = "ammo clip (.45 practice)"
path =/obj/item/ammo_magazine/clip/c45/practice
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/pistol_clip_9mm
name = "ammo clip (9mm)"
path =/obj/item/ammo_magazine/clip/c9mm
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/pistol_clip_9mmr
name = "ammo clip (9mm rubber)"
path =/obj/item/ammo_magazine/clip/c9mm/rubber
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/pistol_clip_9mmp
name = "ammo clip (9mm practice)"
path =/obj/item/ammo_magazine/clip/c9mm/practice
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/pistol_clip_9mmf
name = "ammo clip (9mm flash)"
path =/obj/item/ammo_magazine/clip/c9mm/flash
category = list("Arms and Ammunition")
/datum/category_item/autolathe/arms/pistol_clip_5mm
name = "ammo clip (5mm)"
path =/obj/item/ammo_magazine/clip/c5mm
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/pistol_clip_10mm
name = "ammo clip (10mm)"
path =/obj/item/ammo_magazine/clip/c10mm
category = list("Arms and Ammunition")
hidden = 1
/datum/category_item/autolathe/arms/pistol_clip_50
name = "ammo clip (.44)"
path =/obj/item/ammo_magazine/clip/c50
category = list("Arms and Ammunition")
hidden = 1
*/
/datum/category_item/autolathe/arms/rifle_clip_545
name = "ammo clip (5.45mm)"
path =/obj/item/ammo_magazine/clip/c545
@@ -425,10 +260,6 @@
path =/obj/item/ammo_magazine/clip/c762
hidden = 1
/*/datum/category_item/autolathe/arms/rifle_clip_762_hunter //VOREStation Edit Start. By request of Ace
name = "ammo clip (7.62mm hunting)"
path =/obj/item/ammo_magazine/clip/c762/hunter*/ //VOREStation Edit End.
/datum/category_item/autolathe/arms/rifle_clip_762_practice
name = "ammo clip (7.62mm practice)"
path =/obj/item/ammo_magazine/clip/c762/practice
@@ -489,16 +320,3 @@
name = "SMG magazine (9mm)"
path = /obj/item/ammo_magazine/m9mml
hidden = 1
/* De-coded?
/datum/category_item/autolathe/arms/classic_smg_9mmr
name = "SMG magazine (9mm rubber)"
path = /obj/item/ammo_magazine/m9mml/rubber
/datum/category_item/autolathe/arms/classic_smg_9mmp
name = "SMG magazine (9mm practice)"
path = /obj/item/ammo_magazine/m9mml/practice
/datum/category_item/autolathe/arms/classic_smg_9mmf
name = "SMG magazine (9mm flash)"
path = /obj/item/ammo_magazine/m9mml/flash
*/

View File

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

View File

@@ -125,7 +125,6 @@
/datum/ghost_query/lost_drone
role_name = "Lost Drone"
question = "A lost drone onboard has been discovered by a crewmember and they are attempting to reactivate it. Would you like to play as the drone?"
//be_special_flag = BE_AI //VOREStation Removal: Positronic role is never used because intended purpose is unfitting, so remove the check
check_bans = list("AI", "Cyborg")
cutoff_number = 1

View File

@@ -1,5 +1,5 @@
//wrapper
/proc/do_teleport(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null, local=TRUE, bohsafe=FALSE) //VOREStation Edit
/proc/do_teleport(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null, local=TRUE, bohsafe=FALSE)
new /datum/teleport/instant/science(arglist(args))
return
@@ -184,17 +184,6 @@
else
teleatom.visible_message(SPAN_DANGER("\The [teleatom] bounces off of the portal!"))
return FALSE
/* VOREStation Removal
if(destination.z in GLOB.using_map.admin_levels) //CentCom z-level
if(istype(teleatom, /obj/mecha))
var/obj/mecha/MM = teleatom
to_chat(MM.occupant, SPAN_DANGER("\The [MM] would not survive the jump to a location so far away!"))
return FALSE
if(!!length(teleatom.search_contents_for(/obj/item/storage/backpack/holding)))
teleatom.visible_message(SPAN_DANGER("\The [teleatom] bounces off of the portal!"))
return FALSE
*/ //VOREStation Removal End
//VOREStation Edit Start
var/obstructed = 0
var/turf/dest_turf = get_turf(destination)
if(local && !(dest_turf.z in GLOB.using_map.player_levels))
@@ -219,7 +208,6 @@
return FALSE
else
return TRUE
//VOREStation Edit End
//! ## VR FILE MERGE ## !//

View File

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

View File

@@ -137,7 +137,7 @@ var/global/repository/radiation/radiation_repository = new()
return 1
/mob/living/rad_act(var/severity)
if(severity && !isbelly(loc)) //eaten mobs are made immune to radiation //VOREStation Edit Start
if(severity && !isbelly(loc)) //eaten mobs are made immune to radiation
src.apply_effect(severity, IRRADIATE, src.getarmor(null, "rad"))
for(var/atom/I in src)
I.rad_act(severity) ///VOREStation Edit End
I.rad_act(severity)

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"
/area/crew_quarters/longue_area
name = "\improper Lounge" //VOREStation Edit - Muh speeling.
name = "\improper Lounge"
icon_state = "recreation_area"
/area/crew_quarters/recreation_area

View File

@@ -58,7 +58,7 @@
var/old_x = 0
var/old_y = 0
///VOREStation Add - Moved from /obj/vehicle (for some reason?)
/// Used for vehicles and other things.
var/datum/riding/riding_datum
/// Does the atom spin when thrown.
var/does_spin = TRUE

View File

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

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/real_name // Stores the real name of the person who originally got this dna datum. Used primarily for changelings,
// VOREStation
var/custom_species
var/base_species = SPECIES_HUMAN
var/list/species_traits = list()
@@ -115,7 +114,6 @@ var/global/list/datum/gene/dna_genes[0]
var/custom_ask
var/custom_whisper
var/custom_exclaim
// VOREStation
// New stuff
var/species = SPECIES_HUMAN
@@ -179,9 +177,6 @@ var/global/list/datum/gene/dna_genes[0]
character.f_style = "Shaved"
var/beard = facial_hair_styles_list.Find(character.f_style)
// VOREStation Edit Start
// Demi Ears
var/ear_style = 0
if(character.ear_style)

View File

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

View File

@@ -38,14 +38,12 @@
var/mob/living/L = A
if(L.buckled && istype(L.buckled,/obj/structure/bed/))
var/turf/O = L.buckled
do_teleport(O, pick(endgame_safespawns), local = FALSE) //VOREStation Edit
do_teleport(O, pick(endgame_safespawns), local = FALSE)
L.loc = O.loc
else
do_teleport(L, pick(endgame_safespawns), local = FALSE) //dead-on precision //VOREStation Edit
do_teleport(L, pick(endgame_safespawns), local = FALSE) //dead-on precision
else if (istype(A, /obj/mecha/))
do_teleport(A, pick(endgame_safespawns), local = FALSE) //dead-on precision //VOREStation Edit
do_teleport(A, pick(endgame_safespawns), local = FALSE) //dead-on precision
else if (isturf(A))
var/turf/T = A
var/dist = get_dist(T, src)

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, "<br>")
M.add_ion_law("THE STATION IS [who2pref] [who2]")
/* //VOREStation Edit
if(botEmagChance)
for(var/mob/living/bot/bot in GLOB.machines)
if(prob(botEmagChance))
bot.emag_act(1)
*/ //VOREStation Edit
/*
var/apcnum = 0
var/smesnum = 0
var/airlocknum = 0
var/firedoornum = 0
to_chat(world, "Ion Storm Main Started")
spawn(0)
to_chat(world, "Started processing APCs")
for (var/obj/machinery/power/apc/apc in GLOB.apcs)
if(APC.z in station_levels)
APC.ion_act()
apcnum++
to_chat(world, "Finished processing APCs. Processed: [apcnum]")
spawn(0)
to_chat(world, "Started processing SMES")
for (var/obj/machinery/power/smes/SMES in GLOB.smeses)
if(SMES.z in station_levels)
SMES.ion_act()
smesnum++
to_chat(world, "Finished processing SMES. Processed: [smesnum]")
spawn(0)
to_chat(world, "Started processing AIRLOCKS")
for (var/obj/machinery/door/airlock/D in GLOB.machines)
if(D.z in station_levels)
//if(length(D.req_access) > 0 && !(12 in D.req_access)) //not counting general access and maintenance airlocks
airlocknum++
spawn(0)
D.ion_act()
to_chat(world, "Finished processing AIRLOCKS. Processed: [airlocknum]")
spawn(0)
to_chat(world, "Started processing FIREDOORS")
for (var/obj/machinery/door/firedoor/D in GLOB.machines)
if(D.z in station_levels)
firedoornum++;
spawn(0)
D.ion_act()
to_chat(world, "Finished processing FIREDOORS. Processed: [firedoornum]")
to_chat(world, "Ion Storm Main Done")
*/

View File

@@ -129,11 +129,8 @@ var/global/list/Holiday = list() //Holidays are lists now, so we can have more t
// if(10)
// Holiday["S'randarr's Day"] = "A Tajaran holiday that occurs on the longest day of the year in summer,
// on Ahdomai. It is named after the Tajaran deity of Light, and huge celebrations are common."
//VOREStation Add - Of course we need this.
if(8)
Holiday["Vore Day"] = "A holiday representing the innate desire in all/most/some/a few of us to devour each other or be devoured. \
That's probably why you're here, isn't it? Get to it, then!"
//VOREStation Add End.
Holiday["Vore Day"] = "A holiday representing the innate desire in all/most/some/a few of us to devour each other or be devoured."
if(27)
Holiday["Forgiveness Day"] = "A time to forgive and be forgiven."

View File

@@ -138,7 +138,7 @@
SpinAnimation()
/obj/effect/meteor/Bump(atom/A)
if(attempt_vr(src,"Bump_vr",list(A))) return //VOREStation Edit - allows meteors to be deflected by baseball bats
if(attempt_vr(src,"Bump_vr",list(A))) return // Allows meteors to be deflected by baseball bats
if(A)
if(A.handle_meteor_impact(src)) // Used for special behaviour when getting hit specifically by a meteor, like a shield.
ram_turf(get_turf(A))

View File

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

View File

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

View File

@@ -35,7 +35,7 @@
if(!istype(T, /turf/space))
env = T.return_air()
removed = env.remove(0.25 * env.total_moles) //Remove gas from surrounding area
removed = env.remove(0.25 * env.total_moles) // Remove gas from surrounding area
var/thermal_power = 300 * adjusted_power

View File

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

View File

@@ -56,7 +56,7 @@
return
M.forceMove(src)
occupant = M
update_icon() //icon_state = "body_scanner_1" //VOREStation Edit - Health display for consoles with light and such.
update_icon() //icon_state = "body_scanner_1" // Health display for consoles with light and such.
playsound(src, 'sound/machines/medbayscanner1.ogg', 50) // Beepboop you're being scanned. <3
add_fingerprint(user)
qdel(G)
@@ -208,17 +208,6 @@
return attack_hand(user)
/obj/machinery/body_scanconsole/power_change()
/* VOREStation Removal
if(machine_stat & BROKEN)
icon_state = "body_scannerconsole-p"
else if(powered() && !panel_open)
icon_state = initial(icon_state)
machine_stat &= ~NOPOWER
else
spawn(rand(0, 15))
icon_state = "body_scannerconsole-p"
machine_stat |= NOPOWER
*/
update_icon() //Health display for consoles with light and such.
/obj/machinery/body_scanconsole/ex_act(severity)
@@ -403,7 +392,7 @@
occupantData["blind"] = (H.sdisabilities & BLIND)
occupantData["nearsighted"] = (H.disabilities & NEARSIGHTED)
occupantData = attempt_vr(scanner,"get_occupant_data_vr",list(occupantData,H)) //VOREStation Insert
occupantData = attempt_vr(scanner,"get_occupant_data_vr",list(occupantData,H))
data["occupant"] = occupantData
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)

View File

@@ -143,7 +143,7 @@
if(is_robot_module(O))
return FALSE
if(istype(O,/obj/item/ammo_magazine/clip) || istype(O,/obj/item/ammo_magazine/s357) || istype(O,/obj/item/ammo_magazine/s38) || istype (O,/obj/item/ammo_magazine/s44)/* VOREstation Edit*/) // Prevents ammo recycling exploit with speedloaders.
if(istype(O,/obj/item/ammo_magazine/clip) || istype(O,/obj/item/ammo_magazine/s357) || istype(O,/obj/item/ammo_magazine/s38) || istype (O,/obj/item/ammo_magazine/s44))
to_chat(user, "\The [O] is too hazardous to recycle with the autolathe!")
return

View File

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

View File

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

View File

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

View File

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

View File

@@ -467,7 +467,7 @@
SSemergencyshuttle.call_evac()
log_game("[key_name(user)] has called the shuttle.")
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
admin_chat_message(message = "Emergency evac beginning! Called by [key_name(user)]!", color = "#CC2222") //VOREStation Add
admin_chat_message(message = "Emergency evac beginning! Called by [key_name(user)]!", color = "#CC2222")
return
@@ -515,7 +515,7 @@
log_game("[user? key_name(user) : "Autotransfer"] has called the shuttle.")
message_admins("[user? key_name_admin(user) : "Autotransfer"] has called the shuttle.", 1)
admin_chat_message(message = "Autotransfer shuttle dispatched, shift ending soon.", color = "#2277BB") //VOREStation Add
admin_chat_message(message = "Autotransfer shuttle dispatched, shift ending soon.", color = "#2277BB")
return

View File

@@ -94,8 +94,6 @@
dat += "<a href='?src=\ref[src];log=1'>View storage log</a>.<br>"
if(allow_items)
dat += "<a href='?src=\ref[src];view=1'>View objects</a>.<br>"
//dat += "<a href='?src=\ref[src];item=1'>Recover object</a>.<br>" //VOREStation Removal - Just log them.
//dat += "<a href='?src=\ref[src];allitems=1'>Recover all objects</a>.<br>" //VOREStation Removal
user << browse(dat, "window=cryopod_console")
onclose(user, "cryopod_console")
@@ -120,10 +118,8 @@
if(!allow_items) return
var/dat = "<b>Recently stored objects</b><br/><hr/><br/>"
//VOREStation Edit Start
for(var/I in frozen_items)
dat += "[I]<br/>"
//VOREStation Edit End
dat += "<hr/>"
user << browse(dat, "window=cryoitems")
@@ -221,18 +217,18 @@
var/allow_occupant_types = list(/mob/living/carbon/human)
var/disallow_occupant_types = list()
var/mob/occupant = null // Person waiting to be despawned.
var/time_till_despawn = 599 // Down to 1 minute to reflect Vorestation respawn times.
var/time_entered = 0 // Used to keep track of the safe period.
var/obj/item/radio/intercom/announce //
var/mob/occupant = null // Person waiting to be despawned.
var/time_till_despawn = 599 // Down to 1 minute to reflect our respawn times.
var/time_entered = 0 // Used to keep track of the safe period.
var/obj/item/radio/intercom/announce
var/obj/machinery/computer/cryopod/control_computer
var/last_no_computer_message = 0
var/applies_stasis = 0 //VOREStation Edit: allow people to change their mind
var/applies_stasis = 0 // Allow people to change their mind
/obj/machinery/crypod/Initialize(mapload)
. = ..()
if(type == /obj/machinery/cryopod) // sue me
if(type == /obj/machinery/cryopod) // sue me
AddComponent(/datum/component/slaved_atom_to_loc, /atom/movable/landmark/spawnpoint/latejoin/station/cryogenics, TRUE)
/obj/machinery/cryopod/robot
@@ -246,7 +242,6 @@
on_store_name = "Robotic Storage Oversight"
on_enter_occupant_message = "The storage unit broadcasts a sleep signal to you. Your systems start to shut down, and you enter low-power mode."
allow_occupant_types = list(/mob/living/silicon/robot)
//disallow_occupant_types = list(/mob/living/silicon/robot/drone) //VOREStation Removal - Why? How else do they leave?
applies_stasis = FALSE
/obj/machinery/cryopod/robot/door
@@ -366,8 +361,7 @@
qdel(R.mmi)
for(var/obj/item/I in R.module) // the tools the borg has; metal, glass, guns etc
for(var/mob/M in I) //VOREStation edit
despawn_occupant(M)
for(var/mob/M in I) despawn_occupant(M)
for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags
O.forceMove(R)
qdel(I)
@@ -444,14 +438,7 @@
if(!preserve)
qdel(W)
else
log_special_item(W,to_despawn) //VOREStation Add
/* VOREStation Removal - We do our own thing.
if(control_computer && control_computer.allow_items)
control_computer.frozen_items += W
W.loc = control_computer //VOREStation Edit
else
W.forceMove(src.loc)
VOREStation Removal End */
log_special_item(W,to_despawn)
for(var/obj/structure/B in items)
if(istype(B,/obj/structure/bed))
qdel(B)
@@ -517,11 +504,10 @@
log_and_message_admins("[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) entered cryostorage.")
//VOREStation Edit begin: Dont delete mobs-in-mobs
// Dont delete mobs-in-mobs
if(to_despawn.client && to_despawn.stat<2)
var/mob/observer/dead/newghost = to_despawn.ghostize()
newghost.timeofdeath = world.time
//VOREStation Edit end: Dont delete mobs-in-mobs
//This should guarantee that ghosts don't spawn.
to_despawn.ckey = null
@@ -748,16 +734,6 @@
/obj/machinery/computer/cryopod/gateway
name = "teleport oversight console"
desc = "An interface between visitors and the teleport oversight systems tasked with keeping track of all visitors who enter or exit from the teleporters."
/* VOREStation Edit
/obj/machinery/cryopod/robot/door/dorms
desc = "A small elevator that goes down to the residential district."
on_enter_occupant_message = "The elevator door closes slowly, ready to bring you down to the residential district."
spawnpoint_type = /datum/spawnpoint/elevator
/obj/machinery/computer/cryopod/dorms
name = "residential oversight console"
desc = "An interface between visitors and the residential oversight systems tasked with keeping track of all visitors in the residential district."
*/
/obj/machinery/cryopod/proc/log_special_item(atom/movable/item, mob/to_despawn)
ASSERT(item && to_despawn)

View File

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

View File

@@ -19,7 +19,7 @@
/obj/machinery/door/airlock/alien/blue/public // Entry to UFO.
req_one_access = list()
normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside.
hackProof = TRUE //VOREStation Edit - No borgos
hackProof = TRUE // No borgs
/obj/machinery/door/airlock/glass_security/polarized
name = "Electrochromic Security Airlock"

View File

@@ -107,8 +107,8 @@
M.last_bumped = world.time
if(M.restrained() && !check_access(null))
return
else if(istype(M, /mob/living/simple_mob/animal/passive/mouse) && !(M.ckey)) //VOREStation Edit: Make wild mice
return //VOREStation Edit: unable to open doors
else if(istype(M, /mob/living/simple_mob/animal/passive/mouse) && !(M.ckey))
return
else
bumpopen(M)
@@ -215,8 +215,8 @@
src.add_fingerprint(user, 0, I)
if(istype(I))
if(attackby_vr(I, user)) //VOREStation begin: Fireproofing
return //VOREStation begin: Fireproofing
if(attackby_vr(I, user))
return
if(istype(I, /obj/item/stack/material) && I.get_material_name() == src.get_material_name())
if(machine_stat & BROKEN)
to_chat(user, "<span class='notice'>It looks like \the [src] is pretty busted. It's going to need more than just patching up now.</span>")

View File

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

View File

@@ -211,7 +211,7 @@
//purge apparently means clearing the airlock chamber to vacuum (then refilling, handled later)
target_pressure = 0
state = STATE_DEPRESSURIZE
playsound(master, 'sound/AI/airlockout.ogg', 100, 0) //VOREStation Add - TTS
playsound(master, 'sound/AI/airlockout.ogg', 100, 0) //TODO: Remove all of Virgo's TTS. Doesn't match anything.
if(!cycle_to_external_air || target_state == TARGET_OUTOPEN) // if going outside, pump internal air into air tank
signalPump(tag_airpump, 1, 0, target_pressure) //send a signal to start depressurizing
else
@@ -220,7 +220,7 @@
else if(chamber_pressure <= target_pressure)
state = STATE_PRESSURIZE
playsound(master, 'sound/AI/airlockin.ogg', 100, 0) //VOREStation Add - TTS
playsound(master, 'sound/AI/airlockin.ogg', 100, 0)
if(!cycle_to_external_air || target_state == TARGET_INOPEN) // if going inside, pump air into airlock
signalPump(tag_airpump, 1, 1, target_pressure) //send a signal to start pressurizing
else
@@ -230,7 +230,7 @@
else if(chamber_pressure > target_pressure)
if(!cycle_to_external_air)
state = STATE_DEPRESSURIZE
playsound(master, 'sound/AI/airlockout.ogg', 100, 0) //VOREStation Add - TTS
playsound(master, 'sound/AI/airlockout.ogg', 100, 0)
signalPump(tag_airpump, 1, 0, target_pressure) //send a signal to start depressurizing
else
memory["purge"] = 1 // should always purge first if using external air, chamber pressure should never be higher than target pressure here
@@ -238,7 +238,7 @@
memory["target_pressure"] = max(target_pressure, MIN_TARGET_PRESSURE)
if(STATE_PRESSURIZE)
playsound(master, 'sound/machines/2beep.ogg', 100, 0) //VOREStation Add - TTS
playsound(master, 'sound/machines/2beep.ogg', 100, 0)
if(memory["chamber_sensor_pressure"] >= memory["target_pressure"] * 0.95)
//not done until the pump has reported that it's off
if(memory["pump_status"] != "off")
@@ -250,11 +250,11 @@
cycleDoors(target_state)
state = STATE_IDLE
target_state = TARGET_NONE
playsound(master, 'sound/AI/airlockdone.ogg', 100, 0) //VOREStation Add - TTS
playsound(master, 'sound/AI/airlockdone.ogg', 100, 0)
if(STATE_DEPRESSURIZE)
playsound(master, 'sound/machines/2beep.ogg', 100, 0) //VOREStation Add - TTS
playsound(master, 'sound/machines/2beep.ogg', 100, 0)
if(memory["chamber_sensor_pressure"] <= max(memory["target_pressure"] * 1.05, MIN_TARGET_PRESSURE))
if(memory["pump_status"] != "off")
signalPump(tag_airpump, 0)
@@ -270,7 +270,7 @@
cycleDoors(target_state)
state = STATE_IDLE
target_state = TARGET_NONE
playsound(master, 'sound/AI/airlockdone.ogg', 100, 0) //VOREStation Add - TTS
playsound(master, 'sound/AI/airlockdone.ogg', 100, 0)
memory["processing"] = (state != target_state)

View File

@@ -90,7 +90,6 @@ var/list/floor_light_cache = list()
on = !on
if(on) update_use_power(USE_POWER_ACTIVE)
//visible_message(SPAN_NOTICE("\The [user] turns \the [src] [on ? "on" : "off"].")) //VOREStation Edit - No thankouuuu. Too spammy.
update_brightness()
return

View File

@@ -125,10 +125,9 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
return
/obj/machinery/hologram/holopad/proc/create_holo(mob/living/silicon/ai/A, turf/T = loc)
var/obj/effect/overlay/aiholo/hologram = new(T)//Spawn a blank effect at the location. //VOREStation Edit to specific type for adding vars
hologram.master = A //VOREStation Edit: So you can reference the master AI from in the hologram procs
var/obj/effect/overlay/aiholo/hologram = new(T)//Spawn a blank effect at the location.
hologram.master = A // So you can reference the master AI from in the hologram procs
hologram.icon = A.holo_icon
//hologram.mouse_opacity = 0//So you can't click on it. //VOREStation Removal
hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them.
hologram.anchored = 1//So space wind cannot drag it.
hologram.name = "[A.name] (Hologram)"//If someone decides to right click.
@@ -162,13 +161,6 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
/obj/machinery/hologram/holopad/proc/move_hologram(mob/living/silicon/ai/user)
if(masters[user])
/*VOREStation Removal, using our own code
step_to(masters[user], user.eyeobj) // So it turns.
var/obj/effect/overlay/H = masters[user]
H.loc = get_turf(user.eyeobj)
masters[user] = H
*/
//VOREStation Add - Solid mass holovore tracking stuff
var/obj/effect/overlay/aiholo/H = masters[user]
if(H.bellied)
walk_to(H, user.eyeobj) //Walk-to respects obstacles
@@ -177,7 +169,6 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
//Hologram left the screen (got stuck on a wall or something)
if(get_dist(H, user.eyeobj) > world.view)
clear_holo(user)
//VOREStation Add End
if((HOLOPAD_MODE == RANGE_BASED && (get_dist(H, src) > holo_range)))
clear_holo(user)

View File

@@ -27,14 +27,17 @@
// Vars for hacking
var/datum/wires/jukebox/wires = null
var/hacked = 0 // Whether to show the hidden songs or not
var/freq = 0 // Currently no effect, will return in phase II of mediamanager.
//VOREStation Add
var/loop_mode = JUKEMODE_PLAY_ONCE // Behavior when finished playing a song
var/max_queue_len = 3 // How many songs are we allowed to queue up?
/// Whether to show the hidden songs or not.
var/hacked = 0
/// Currently no effect, will return in phase II of mediamanager.
var/freq = 0
/// Behavior when finished playing a song.
var/loop_mode = JUKEMODE_PLAY_ONCE
/// How many songs are we allowed to queue up?
var/max_queue_len = 3
var/list/queue = list()
//VOREStation Add End
var/current_genre = "Electronic" //What is our current genre?
/// What is our current genre?
var/current_genre = "Electronic"
var/list/genres = list("Arcade", "Alternative", "Classical and Orchestral", "Country and Western", "Disco, Funk, Soul, and R&B", "Electronic", "Folk and Indie", "Hip-Hop and Rap", "Jazz and Lounge", "Metal", "Pop", "Rock", "Sol Common Precursors") //Avaliable genres.
var/datum/track/current_track
var/list/datum/track/tracks = list(

View File

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

View File

@@ -306,8 +306,6 @@
data["access"] = !isLocked(user)
data["locked"] = locked
data["enabled"] = enabled
//data["is_lethal"] = 1 // VOREStation Removal of "Lethal" setting - it does nothing. Rykka did dis.
//data["lethal"] = lethal // VOREStation Removal of "Lethal" setting - it does nothing. Rykka did dis.
if(data["access"])
var/settings[0]
@@ -330,8 +328,6 @@
var/value = text2num(href_list["value"])
if(href_list["command"] == "enable")
enabled = value
//else if(href_list["command"] == "lethal") // VOREStation Removal of "Lethal" setting - it does nothing. Rykka did dis.
//lethal = value // VOREStation Removal of "Lethal" setting - it does nothing. Rykka did dis.
else if(href_list["command"] == "check_synth")
check_synth = value
else if(href_list["command"] == "check_weapons")

View File

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

View File

@@ -551,8 +551,6 @@
if("Head of Security")
parent_helmet = /obj/item/clothing/head/helmet/space/void/headofsecurity
parent_suit = /obj/item/clothing/suit/space/void/headofsecurity
//BEGIN: Space for additional downstream variants
//VOREStation Addition Start
if("Manager")
parent_helmet = /obj/item/clothing/head/helmet/space/void/captain
parent_suit = /obj/item/clothing/suit/space/void/captain
@@ -592,8 +590,6 @@
if("Talon Mercenary")
parent_helmet = /obj/item/clothing/head/helmet/space/void/refurb/mercenary/talon
parent_suit = /obj/item/clothing/suit/space/void/refurb/mercenary/talon
//VOREStation Addition End
//END: downstream variant space
if(target_species)
//Only run these checks if they have a sprite sheet defined, otherwise they use human's anyways, and there is almost definitely a sprite.
if((helmet!=null&&(target_species in helmet.sprite_sheets_obj))||(suit!=null&&(target_species in suit.sprite_sheets_obj)))

View File

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

View File

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

View File

@@ -716,8 +716,8 @@
/obj/machinery/vending/cola
name = "Robust Softdrinks"
desc = "A softdrink vendor provided by Robust Industries, LLC."
icon_state = "Cola_Machine" //VOREStation Edit
icon_vend = "Cola_Machine-purchase" //VOREStation Edit
icon_state = "Cola_Machine"
icon_vend = "Cola_Machine-purchase"
product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!"
product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space."
products = list(/obj/item/reagent_containers/food/drinks/cans/battery = 10,
@@ -762,7 +762,6 @@
/obj/item/reagent_containers/food/snacks/liquidfood = 10,
/obj/item/reagent_containers/food/snacks/liquidprotein = 10,
/obj/item/reagent_containers/pill/diet = 8,
///obj/item/reagent_containers/hypospray/autoinjector/biginjector/glucose = 5, //VOREStation Removal,
/obj/item/towel/random = 8)
prices = list(/obj/item/reagent_containers/food/drinks/smallmilk = 3,
@@ -773,7 +772,6 @@
/obj/item/reagent_containers/food/snacks/liquidfood = 10,
/obj/item/reagent_containers/food/snacks/liquidprotein = 10,
/obj/item/reagent_containers/pill/diet = 25,
///obj/item/reagent_containers/hypospray/autoinjector/biginjector/glucose = 5, //VOREStation Removal,
/obj/item/towel/random = 40,
)

View File

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

View File

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

View File

@@ -145,16 +145,23 @@
var/static/image/radial_image_statpanel = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine2")
//Mech actions
var/datum/mini_hud/mech/minihud //VOREStation Edit
var/strafing = 0 //Are we strafing or not?
var/datum/mini_hud/mech/minihud
/// re we strafing or not?
var/strafing = 0
var/defence_mode_possible = 0 //Can we even use defence mode? This is used to assign it to mechs and check for verbs.
var/defence_mode = 0 //Are we in defence mode
var/defence_deflect = 35 //How much it deflect
/// Can we even use defence mode? This is used to assign it to mechs and check for verbs.
var/defence_mode_possible = 0
/// Are we in defence mode.
var/defence_mode = 0
/// How much it deflect.
var/defence_deflect = 35
var/overload_possible = 0 //Same as above. Don't forget to GRANT the verb&actions if you want everything to work proper.
var/overload = 0 //Are our legs overloaded
var/overload_coeff = 1 //How much extra energy you use when use the L E G
/// Same as above. Don't forget to GRANT the verb&actions if you want everything to work proper.
var/overload_possible = 0
/// Are our legs overloaded.
var/overload = 0
/// How much extra energy you use when use the L E G.
var/overload_coeff = 1
var/zoom = 0
var/zoom_possible = 0
@@ -162,22 +169,30 @@
var/thrusters = 0
var/thrusters_possible = 0
var/phasing = 0 //Are we currently phasing
var/phasing_possible = 0 //This is to allow phasing.
var/can_phase = TRUE //This is an internal check during the relevant procs.
/// Are we currently phasing.
var/phasing = 0
/// This is to allow phasing.
var/phasing_possible = 0
/// This is an internal check during the relevant procs.
var/can_phase = TRUE
var/phasing_energy_drain = 200
var/switch_dmg_type_possible = 0 //Can you switch damage type? It is mostly for the Phazon and its children.
/// Can you switch damage type? It is mostly for the Phazon and its children.
var/switch_dmg_type_possible = 0
var/smoke_possible = 0
var/smoke_reserve = 5 //How many shots you have. Might make a reload later on. MIGHT.
var/smoke_ready = 1 //This is a check for the whether or not the cooldown is ongoing.
var/smoke_cooldown = 100 //How long you have between uses.
/// How many shots you have. Might make a reload later on. MIGHT.
var/smoke_reserve = 5
/// This is a check for the whether or not the cooldown is ongoing.
var/smoke_ready = 1
/// How long you have between uses.
var/smoke_cooldown = 100
var/datum/effect_system/smoke_spread/smoke_system = new
var/cloak_possible = FALSE // Can this exosuit innately cloak?
// Can this exosuit innately cloak?
var/cloak_possible = FALSE
////All of those are for the HUD buttons in the top left. See Grant and Remove procs in mecha_actions.
//All of those are for the HUD buttons in the top left. See Grant and Remove procs in mecha_actions.
var/datum/action/innate/mecha/mech_eject/eject_action = new
var/datum/action/innate/mecha/mech_toggle_internals/internals_action = new
@@ -1847,10 +1862,8 @@
verbs += /obj/mecha/verb/eject
log_append_to_last("[H] moved in as pilot.")
update_icon()
//VOREStation Edit Add
if(occupant.hud_used)
minihud = new (occupant.hud_used, src)
//VOREStation Edit Add End
//This part removes all the verbs if you don't have them the _possible on your mech. This is a little clunky, but it lets you just add that to any mech.
//And it's not like this 10yo code wasn't clunky before.
@@ -2191,7 +2204,7 @@
output += "Universal Module: [W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"
for(var/obj/item/mecha_parts/mecha_equipment/W in special_equipment)
output += "Special Module: [W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"
for(var/obj/item/mecha_parts/mecha_equipment/W in micro_utility_equipment) // VOREstation Edit - Adds micro equipent to the menu
for(var/obj/item/mecha_parts/mecha_equipment/W in micro_utility_equipment)
output += "Micro Utility Module: [W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"
for(var/obj/item/mecha_parts/mecha_equipment/W in micro_weapon_equipment)
output += "Micro Weapon Module: [W.name] <a href='?src=\ref[W];detach=1'>Detach</a><br>"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -188,8 +188,6 @@ GLOBAL_LIST_EMPTY(PDAs)
/obj/item/pda/syndicate
default_cartridge = /obj/item/cartridge/syndicate
icon_state = "pda-syn"
// name = "Military PDA" // Vorestation Edit
// owner = "John Doe"
hidden = 1
/obj/item/pda/chaplain
@@ -1474,7 +1472,7 @@ GLOBAL_LIST_EMPTY(PDAs)
/obj/item/pda/Destroy()
GLOB.PDAs -= src
if (src.id && prob(100)) //IDs are kept in 90% of the cases //VOREStation Edit - 100% of the cases
if (src.id && prob(100)) //IDs are kept in 100% of the cases //TODO: WHY?
src.id.forceMove(get_turf(src.loc))
else
QDEL_NULL(src.id)

View File

@@ -207,7 +207,7 @@
for(var/obj/item/communicator/comm in communicating)
var/turf/T = get_turf(comm)
if(!T) return
//VOREStation Edit Start for commlinks
// Commlinks
var/list/mobs_to_relay
if(istype(comm,/obj/item/communicator/commlink))
var/obj/item/communicator/commlink/CL = comm
@@ -215,7 +215,6 @@
else
var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
mobs_to_relay = in_range["mobs"]
//VOREStation Edit End
for(var/mob/mob in mobs_to_relay) //We can't use visible_message(), or else we will get an infinite loop if two communicators hear each other.
var/dst = get_dist(get_turf(mob),get_turf(comm))
@@ -236,7 +235,7 @@
var/turf/T = get_turf(comm)
if(!T)
return
//VOREStation Edit Start for commlinks
// Commlinks
var/list/mobs_to_relay
if(istype(comm,/obj/item/communicator/commlink))
var/obj/item/communicator/commlink/CL = comm
@@ -244,7 +243,6 @@
else
var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,0) //Range of 3 since it's a tiny video display
mobs_to_relay = in_range["mobs"]
//VOREStation Edit End
var/mob/living/L = (isliving(M) && M) || null
var/message = text
@@ -367,4 +365,3 @@
visible_message(.)
update_icon()

View File

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

View File

@@ -24,7 +24,7 @@ var/global/list/active_radio_jammers = list()
var/on = 0
var/jam_range = 7
var/obj/item/cell/device/weapon/power_source
var/tick_cost = 5 //VOREStation Edit - For the ERPs.
var/tick_cost = 5 // For the ERPs.
origin_tech = list(TECH_ILLEGAL = 7, TECH_BLUESPACE = 5) //Such technology! Subspace jamming!

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

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

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

View File

@@ -32,7 +32,6 @@
if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting)
//VOREStation Edit Start
if (S && (S.robotic >= ORGAN_ROBOT))
if(!S.get_damage())
to_chat(user, "<span class='notice'>Nothing to fix here.</span>")
@@ -47,7 +46,6 @@
use(1)
user.visible_message("<span class='notice'>\The [user] applies some nanite paste on [user != M ? "[M]'s [S.name]" : "[S]"] with [src].</span>",\
"<span class='notice'>You apply some nanite paste on [user == M ? "your" : "[M]'s"] [S.name].</span>")
//VOREStation Edit End
/obj/item/stack/nanopaste/advanced
name = "advanced nanopaste"

View File

@@ -74,7 +74,7 @@
/obj/item/duct_tape_roll,
/obj/item/switchtool,
/obj/item/integrated_electronics/wirer,
/obj/item/integrated_electronics/debugger, //Vorestation edit adding debugger to toolbelt can hold list
/obj/item/integrated_electronics/debugger,
)
/obj/item/storage/belt/utility/full
@@ -125,7 +125,7 @@
/obj/item/reagent_containers/glass/bottle,
/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/syringe,
/obj/item/storage/quickdraw/syringe_case, //VOREStation Addition - Adds syringe cases,
/obj/item/storage/quickdraw/syringe_case,
/obj/item/flame/lighter/zippo,
/obj/item/storage/fancy/cigarettes,
/obj/item/storage/pill_bottle,

View File

@@ -15,7 +15,7 @@
/obj/item/storage/briefcase/clutch
name = "clutch purse"
desc = "A fashionable handheld bag typically used by women."
icon = 'icons/obj/clothing/backpack.dmi' //VOREStation Edit - Wrong sprite location
icon = 'icons/obj/clothing/backpack.dmi'
icon_state = "clutch"
item_state_slots = list(slot_r_hand_str = "smpurse", slot_l_hand_str = "smpurse")
force = 0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -110,12 +110,11 @@
uses -= used_uses
W.add_fingerprint(user)
//Vorestation Edit: Because some things (read lift doors) don't get emagged
// Because some things (read lift doors) don't get emagged
if(used_uses)
log_and_message_admins("emagged \an [W].")
else
log_and_message_admins("attempted to emag \an [W].")
// Vorestation Edit: End of Edit
log_and_message_admins("emagged \an [W].")
if(uses<1)

View File

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

View File

@@ -110,12 +110,11 @@
uses -= used_uses
W.add_fingerprint(user)
//Vorestation Edit: Because some things (read lift doors) don't get emagged
//V Because some things (read lift doors) don't get emagged
if(used_uses)
log_and_message_admins("emagged \an [W].")
else
log_and_message_admins("attempted to emag \an [W].")
// Vorestation Edit: End of Edit
log_and_message_admins("emagged \an [W].")
if(uses<1)

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