bunch of global vars (#19091)

* bunch of global vars

* .
This commit is contained in:
Kashargul
2026-01-25 22:18:03 +01:00
committed by GitHub
parent 2f810d0f3e
commit de17517e42
92 changed files with 328 additions and 438 deletions
@@ -1,12 +1,5 @@
// Pilots
var/const/SAR =(1<<11)
var/const/PILOT =(1<<13)
var/const/EXPLORER =(1<<14)
var/const/ACCESS_PILOT = 67
var/const/ACCESS_EXPLORER = 43
/datum/access/pilot
id = ACCESS_PILOT
desc = "Pilot"
+2 -2
View File
@@ -1,4 +1,4 @@
var/image/contamination_overlay = image('icons/effects/contamination.dmi')
GLOBAL_DATUM_INIT(contamination_overlay, /image, 'icons/effects/contamination.dmi')
/pl_control
var/PHORON_DMG = 3
@@ -63,7 +63,7 @@ var/image/contamination_overlay = image('icons/effects/contamination.dmi')
else
if(!contaminated)
contaminated = 1
add_overlay(contamination_overlay)
add_overlay(GLOB.contamination_overlay)
/mob/proc/contaminate()
+10 -16
View File
@@ -27,19 +27,16 @@
#define BE_NINJA 0x400
#define BE_RAIDER 0x800
#define BE_PLANT 0x1000
#define BE_MUTINEER 0x2000
#define BE_LOYALIST 0x4000
#define BE_PAI 0x8000
//VOREStation Add
#define BE_LOSTDRONE 0x10000
#define BE_MAINTCRITTER 0x20000
#define BE_CORGI 0x40000
#define BE_CURSEDSWORD 0x80000
#define BE_SURVIVOR 0x100000
#define BE_EVENT 0x200000
//VOREStation Add End
#define BE_LOYALIST 0x2000
#define BE_PAI 0x4000
#define BE_LOSTDRONE 0x8000
#define BE_MAINTCRITTER 0x10000
#define BE_CORGI 0x20000
#define BE_CURSEDSWORD 0x40000
#define BE_SURVIVOR 0x80000
#define BE_EVENT 0x100000
var/list/be_special_flags = list(
GLOBAL_LIST_INIT(be_special_flags, list(
"Traitor" = BE_TRAITOR,
"Operative" = BE_OPERATIVE,
"Changeling" = BE_CHANGELING,
@@ -53,17 +50,14 @@ var/list/be_special_flags = list(
"Ninja" = BE_NINJA,
"Raider" = BE_RAIDER,
"Diona" = BE_PLANT,
"Mutineer" = BE_MUTINEER,
"Loyalist" = BE_LOYALIST,
"pAI" = BE_PAI,
//VOREStation Add
"Lost Drone" = BE_LOSTDRONE,
"Maint Critter" = BE_MAINTCRITTER,
"Corgi" = BE_CORGI,
"Cursed Sword" = BE_CURSEDSWORD,
"Ship Survivor" = BE_SURVIVOR
//VOREStation Add End
)
))
// Antagonist datum flags.
+1 -1
View File
@@ -23,7 +23,7 @@
//time of day but automatically adjusts to the server going into the next day within the same round.
//for when you need a reliable time number that doesn't depend on byond time.
#define REALTIMEOFDAY (world.timeofday + (MIDNIGHT_ROLLOVER * MIDNIGHT_ROLLOVER_CHECK))
#define MIDNIGHT_ROLLOVER_CHECK ( rollovercheck_last_timeofday != world.timeofday ? update_midnight_rollover() : midnight_rollovers )
#define MIDNIGHT_ROLLOVER_CHECK ( GLOB.rollovercheck_last_timeofday != world.timeofday ? update_midnight_rollover() : GLOB.midnight_rollovers )
#define SIGN(x) ( (x)!=0 ? (x) / abs(x) : 0 )
+8 -10
View File
@@ -52,22 +52,22 @@ GLOBAL_LIST_INIT(radiochannels, list(
// central command channels, i.e deathsquid & response teams
var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ)
GLOBAL_LIST_INIT(cent_frequencies, list(ERT_FREQ, DTH_FREQ))
// Antag channels, i.e. Syndicate
var/list/ANTAG_FREQS = list(SYND_FREQ, RAID_FREQ)
GLOBAL_LIST_INIT(antag_frequencies, list(SYND_FREQ, RAID_FREQ))
//Department channels, arranged lexically
var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, ENT_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ)
GLOBAL_LIST_INIT(department_frequencies, list(AI_FREQ, COMM_FREQ, ENG_FREQ, ENT_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ))
var/list/OFFMAP_FREQS = list(TALON_FREQ, CSN_FREQ) //VOREStation Add
GLOBAL_LIST_INIT(offmap_frequencies, list(TALON_FREQ, CSN_FREQ))
/proc/frequency_span_class(var/frequency)
// Antags!
if (frequency in ANTAG_FREQS)
if (frequency in GLOB.antag_frequencies)
return "syndradio"
// CentCom channels (deathsquid and ert)
if(frequency in CENT_FREQS)
if(frequency in GLOB.cent_frequencies)
return "centradio"
// command channel
if(frequency == COMM_FREQ)
@@ -92,10 +92,8 @@ var/list/OFFMAP_FREQS = list(TALON_FREQ, CSN_FREQ) //VOREStation Add
return "expradio"
if(frequency == ENT_FREQ) // entertainment
return "entradio"
if(frequency in DEPT_FREQS)
if(frequency in GLOB.department_frequencies)
return "deptradio"
//VOREStation Add
if(frequency in OFFMAP_FREQS)
if(frequency in GLOB.offmap_frequencies)
return "expradio"
//VOREStation Add End
return "radio"
-3
View File
@@ -158,8 +158,6 @@
//var/debug_mob = 0
// Will recursively loop through an atom's contents and check for mobs, then it will loop through every atom in that atom's contents.
// It will keep doing this until it checks every content possible. This will fix any problems with mobs, that are inside objects,
// being unable to hear people due to being in a box within a bag.
@@ -678,7 +676,6 @@
/proc/recursive_mob_check(var/atom/O, var/list/L = list(), var/recursion_limit = 3, var/client_check = 1, var/sight_check = 1, var/include_radio = 1)
//GLOB.debug_mob += O.contents.len
if(!recursion_limit)
return L
for(var/atom/A in O.contents)
+4 -5
View File
@@ -1170,8 +1170,7 @@ GLOBAL_LIST_EMPTY(available_recipes) // List of the recipes you can use
GLOBAL_LIST_EMPTY(acceptable_reagents) // List of the reagents you can put in
/var/all_ui_styles = list(
GLOBAL_LIST_INIT(all_ui_styles, list(
"Midnight" = 'icons/mob/screen/midnight.dmi',
"Orange" = 'icons/mob/screen/orange.dmi',
"old" = 'icons/mob/screen/old.dmi',
@@ -1179,9 +1178,9 @@ GLOBAL_LIST_EMPTY(acceptable_reagents) // List of the reagents you can put in
"old-noborder" = 'icons/mob/screen/old-noborder.dmi',
"minimalist" = 'icons/mob/screen/minimalist.dmi',
"Hologram" = 'icons/mob/screen/holo.dmi'
)
))
/var/all_ui_styles_robot = list(
GLOBAL_LIST_INIT(all_ui_styles_robot, list(
"Midnight" = 'icons/mob/screen1_robot.dmi',
"Orange" = 'icons/mob/screen1_robot.dmi',
"old" = 'icons/mob/screen1_robot.dmi',
@@ -1189,7 +1188,7 @@ GLOBAL_LIST_EMPTY(acceptable_reagents) // List of the reagents you can put in
"old-noborder" = 'icons/mob/screen1_robot.dmi',
"minimalist" = 'icons/mob/screen1_robot_minimalist.dmi',
"Hologram" = 'icons/mob/screen1_robot_minimalist.dmi'
)
))
GLOBAL_LIST_INIT(all_tooltip_styles, list(
"Midnight", //Default for everyone is the first one,
+3 -3
View File
@@ -362,7 +362,7 @@ GLOBAL_LIST_INIT(alphabet_upper, list("A","B","C","D","E","F","G","H","I","J","K
//For generating neat chat tag-images
//The icon var could be local in the proc, but it's a waste of resources
// to always create it and then throw it out.
/var/icon/text_tag_icons = 'icons/chattags.dmi'
GLOBAL_VAR_INIT(text_tag_icons, 'icons/chattags.dmi')
GLOBAL_LIST_EMPTY(text_tag_cache)
/proc/create_text_tag(var/tagname, var/tagdesc = tagname, var/client/C = null)
@@ -372,13 +372,13 @@ GLOBAL_LIST_EMPTY(text_tag_cache)
var/datum/asset/spritesheet_batched/chatassets = get_asset_datum(/datum/asset/spritesheet_batched/chat)
GLOB.text_tag_cache[tagname] = chatassets.icon_tag(tagname)
if(!C.tgui_panel.is_ready() || C.tgui_panel.oldchat)
return "<IMG src='\ref[text_tag_icons]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">"
return "<IMG src='\ref[GLOB.text_tag_icons]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">"
return GLOB.text_tag_cache[tagname]
/proc/create_text_tag_old(var/tagname, var/tagdesc = tagname, var/client/C = null)
if(!(C && C.prefs?.read_preference(/datum/preference/toggle/chat_tags)))
return tagdesc
return "<IMG src='\ref[text_tag_icons]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">"
return "<IMG src='\ref[GLOB.text_tag_icons]' class='text_tag' iconstate='[tagname]'" + (tagdesc ? " alt='[tagdesc]'" : "") + ">"
/proc/contains_az09(var/input)
for(var/i=1, i<=length(input), i++)
+24 -24
View File
@@ -7,7 +7,7 @@
#define DS2NEARESTTICK(DS) TICKS2DS(-round(-(DS2TICKS(DS))))
var/world_startup_time
GLOBAL_VAR(world_startup_time)
/proc/get_game_time()
var/global/time_offset = 0
@@ -26,8 +26,8 @@ var/world_startup_time
return wtime + (time_offset + wusage) * world.tick_lag
GLOBAL_VAR_INIT(roundstart_hour, pick(2,7,12,17))
var/station_date = ""
var/next_station_date_change = 1 DAY
GLOBAL_VAR(station_date)
GLOBAL_VAR_INIT(next_station_date_change, 1 DAY)
#define duration2stationtime(time) time2text(station_time_in_ds + time, "hh:mm")
#define roundstart_delay_time (world.time - round_duration_in_ds)
@@ -43,12 +43,12 @@ var/next_station_date_change = 1 DAY
/proc/stationdate2text()
var/update_time = FALSE
if(station_time_in_ds > next_station_date_change)
next_station_date_change += 1 DAY
if(station_time_in_ds > GLOB.next_station_date_change)
GLOB.next_station_date_change += 1 DAY
update_time = TRUE
if(!station_date || update_time)
station_date = num2text((text2num(time2text(REALTIMEOFDAY, "YYYY"))+300)) + "-" + time2text(REALTIMEOFDAY, "MM-DD") //VOREStation Edit
return station_date
if(!GLOB.station_date || update_time)
GLOB.station_date = num2text((text2num(time2text(REALTIMEOFDAY, "YYYY"))+300)) + "-" + time2text(REALTIMEOFDAY, "MM-DD") //VOREStation Edit
return GLOB.station_date
/// Returns UTC timestamp with the specifified format and optionally deciseconds
/proc/time_stamp(format = "hh:mm:ss", show_ds)
@@ -79,15 +79,15 @@ var/next_station_date_change = 1 DAY
//else
//return 1
var/next_duration_update = 0
var/last_round_duration = 0
GLOBAL_VAR_INIT(next_duration_update, 0)
GLOBAL_VAR_INIT(last_round_duration, 0)
GLOBAL_VAR_INIT(round_start_time, 0)
/proc/roundduration2text()
if(!GLOB.round_start_time)
return "00:00"
if(last_round_duration && world.time < next_duration_update)
return last_round_duration
if(GLOB.last_round_duration && world.time < GLOB.next_duration_update)
return GLOB.last_round_duration
var/mills = round_duration_in_ds // 1/10 of a second, not real milliseconds but whatever
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something
@@ -97,24 +97,24 @@ GLOBAL_VAR_INIT(round_start_time, 0)
mins = mins < 10 ? add_zero(mins, 1) : mins
hours = hours < 10 ? add_zero(hours, 1) : hours
last_round_duration = "[hours]:[mins]"
next_duration_update = world.time + 1 MINUTES
return last_round_duration
GLOB.last_round_duration = "[hours]:[mins]"
GLOB.next_duration_update = world.time + 1 MINUTES
return GLOB.last_round_duration
/var/midnight_rollovers = 0
/var/rollovercheck_last_timeofday = 0
/var/rollover_safety_date = 0 // set in world/New to the server startup day-of-month
GLOBAL_VAR_INIT(midnight_rollovers, 0)
GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0)
GLOBAL_VAR_INIT(rollover_safety_date, 0) // set in world/New to the server startup day-of-month
/proc/update_midnight_rollover()
// Day has wrapped (world.timeofday drops to 0 at the start of each real day)
if (world.timeofday < rollovercheck_last_timeofday)
if (world.timeofday < GLOB.rollovercheck_last_timeofday)
// If the day started/last wrap was < 12 hours ago, this is spurious
if(rollover_safety_date < world.realtime - (12 HOURS))
midnight_rollovers++
rollover_safety_date = world.realtime
if(GLOB.rollover_safety_date < world.realtime - (12 HOURS))
GLOB.midnight_rollovers++
GLOB.rollover_safety_date = world.realtime
else
warning("Time rollover error: world.timeofday decreased from previous check, but the day or last rollover is less than 12 hours old. System clock?")
rollovercheck_last_timeofday = world.timeofday
return midnight_rollovers
GLOB.rollovercheck_last_timeofday = world.timeofday
return GLOB.midnight_rollovers
///Increases delay as the server gets more overloaded, as sleeps aren't cheap and sleeping only to wake up and sleep again is wasteful
#define DELTA_CALC max(((max(TICK_USAGE, world.cpu) / 100) * max(Master.sleep_delta-1,1)), 1)
+8 -8
View File
@@ -1172,21 +1172,21 @@ var/list/WALLITEMS = list(
var/color = hex ? hex : "#[num2hex(red, 2)][num2hex(green, 2)][num2hex(blue, 2)]"
return "<span style='font-face: fixedsys; font-size: 14px; background-color: [color]; color: [color]'>___</span>"
var/mob/dview/dview_mob
GLOBAL_DATUM(dview_mob, /mob/dview)
//Version of view() which ignores darkness, because BYOND doesn't have it.
/proc/dview(var/range = world.view, var/center, var/invis_flags = 0)
if(!center)
return
if(!dview_mob) //VOREStation Add: Debugging
dview_mob = new
if(!GLOB.dview_mob) //VOREStation Add: Debugging
GLOB.dview_mob = new
dview_mob.loc = center
GLOB.dview_mob.loc = center
dview_mob.see_invisible = invis_flags
GLOB.dview_mob.see_invisible = invis_flags
. = view(range, dview_mob)
dview_mob.loc = null
. = view(range, GLOB.dview_mob)
GLOB.dview_mob.loc = null
/mob/dview
invisibility = INVISIBILITY_ABSTRACT
@@ -1220,7 +1220,7 @@ var/mob/dview/dview_mob
stack_trace("Attempt to delete the dview_mob: [log_info_line(src)]")
if (!force)
return QDEL_HINT_LETMELIVE
global.dview_mob = new
GLOB.dview_mob = new
return ..()
/proc/screen_loc2turf(scr_loc, turf/origin)
+7 -5
View File
@@ -359,12 +359,14 @@
C.swap_hand()
else
var/list/P = params2list(params)
var/turf/T = screen_loc2turf(P["screen-loc"], get_turf(usr))
var/turf/T = get_turf(usr)
if(T)
if(LAZYACCESS(modifiers, SHIFT_CLICK))
usr.face_atom(T)
return 1
T.Click(location, control, params)
T = screen_loc2turf(P["screen-loc"], T)
if(T)
if(LAZYACCESS(modifiers, SHIFT_CLICK))
usr.face_atom(T)
return 1
T.Click(location, control, params)
return 1
/// MouseWheelOn
+2 -2
View File
@@ -392,9 +392,9 @@ GLOBAL_LIST_INIT(global_huds, list(
if(UI_style_new)
if(isrobot(src))
ic = all_ui_styles_robot[UI_style_new]
ic = GLOB.all_ui_styles_robot[UI_style_new]
else
ic = all_ui_styles[UI_style_new]
ic = GLOB.all_ui_styles[UI_style_new]
hud_used.ui_style = ic
else
ic = hud_used.ui_style
+1 -2
View File
@@ -1,5 +1,3 @@
var/atom/movable/screen/robot_inventory
/mob/living/silicon/robot/create_mob_hud(datum/hud/HUD, apply_to_client = TRUE)
..()
@@ -16,6 +14,7 @@ var/atom/movable/screen/robot_inventory
HUD.other = other
var/atom/movable/screen/using
var/atom/movable/screen/robot_inventory
//Radio
using = new /atom/movable/screen()
+1 -1
View File
@@ -395,7 +395,7 @@ var/list/runechat_image_cache = list()
var/static/rseed = rand(1,26)
// get hsl using the selected 6 characters of the md5 hash
var/hash = copytext(md5(name + "[world_startup_time]"), rseed, rseed + 6)
var/hash = copytext(md5(name + "[GLOB.world_startup_time]"), rseed, rseed + 6)
var/h = hex2num(copytext(hash, 1, 3)) * (360 / 255)
var/s = (hex2num(copytext(hash, 3, 5)) >> 2) * ((CM_COLOR_SAT_MAX - CM_COLOR_SAT_MIN) / 63) + CM_COLOR_SAT_MIN
var/l = (hex2num(copytext(hash, 5, 7)) >> 2) * ((CM_COLOR_LUM_MAX - CM_COLOR_LUM_MIN) / 63) + CM_COLOR_LUM_MIN
+2 -2
View File
@@ -20,7 +20,7 @@
gloves = /obj/item/clothing/gloves/swat
glasses = /obj/item/clothing/glasses/sunglasses
back = /obj/item/storage/backpack/satchel
id_type = /obj/item/card/id/centcom/ERT
id_type = /obj/item/card/id/centcom/ert
pda_type = /obj/item/pda/centcom
flags = OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -30,7 +30,7 @@
/decl/hierarchy/outfit/job/emergency_responder/post_equip(var/mob/living/carbon/human/H)
..()
ert.add_antagonist(H.mind)
GLOB.ert.add_antagonist(H.mind)
/decl/hierarchy/outfit/job/clown
name = OUTFIT_JOB_NAME(JOB_CLOWN)
+4 -4
View File
@@ -11,7 +11,7 @@
gloves = /obj/item/clothing/gloves/combat
id_slot = slot_wear_id
id_type = /obj/item/card/id/centcom/ERT
id_type = /obj/item/card/id/centcom/ert
id_desc = "Special operations ID."
id_pda_assignment = "Special Operations Officer"
@@ -37,7 +37,7 @@
back = /obj/item/storage/backpack/satchel
id_slot = slot_wear_id
id_type = /obj/item/card/id/centcom/ERT
id_type = /obj/item/card/id/centcom/ert
headset = /obj/item/radio/headset/ert
headset_alt = /obj/item/radio/headset/ert
@@ -47,14 +47,14 @@
name = "Spec ops - Death commando"
/decl/hierarchy/outfit/death_command/equip(var/mob/living/carbon/human/H)
deathsquad.equip(H)
GLOB.deathsquad.equip(H)
return 1
/decl/hierarchy/outfit/syndicate_command
name = "Spec ops - Syndicate commando"
/decl/hierarchy/outfit/syndicate_command/equip(var/mob/living/carbon/human/H)
commandos.equip(H)
GLOB.commandos.equip(H)
return 1
/decl/hierarchy/outfit/mercenary
+1 -1
View File
@@ -17,7 +17,7 @@
var/freq_text
// the name of the channel
if(display_freq in ANTAG_FREQS)
if(display_freq in GLOB.antag_frequencies)
freq_text = "#unkn"
else
for(var/channel in GLOB.radiochannels)
+2 -2
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/borer/borers
GLOBAL_DATUM(borers, /datum/antagonist/borer)
/datum/antagonist/borer
id = MODE_BORER
@@ -27,7 +27,7 @@ var/datum/antagonist/borer/borers
/datum/antagonist/borer/New()
..(1)
borers = src
GLOB.borers = src
/datum/antagonist/xenos/borer/get_extra_panel_options(var/datum/mind/player)
return "<a href='byond://?src=\ref[src];[HrefToken()];move_to_spawn=\ref[player.current]'>\[put in host\]</a>"
+2 -2
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/xenos/xenomorphs
GLOBAL_DATUM(xenomorphs, /datum/antagonist/xenos)
/datum/antagonist/xenos
id = MODE_XENOMORPH
@@ -24,7 +24,7 @@ var/datum/antagonist/xenos/xenomorphs
/datum/antagonist/xenos/New(var/no_reference)
..()
if(!no_reference)
xenomorphs = src
GLOB.xenomorphs = src
/datum/antagonist/xenos/attempt_random_spawn()
if(CONFIG_GET(flag/aliens_allowed)) ..()
+1 -1
View File
@@ -47,4 +47,4 @@
set category = "Abilities.Antag"
if(!M.mind)
return
convert_to_faction(M.mind, loyalists)
convert_to_faction(M.mind, GLOB.loyalists)
-10
View File
@@ -1,10 +0,0 @@
var/datum/antagonist/mutineer/loyalist/loyalists
/datum/antagonist/mutineer/loyalist
role_text = "Loyalist"
role_text_plural = "Loyalists"
id = MODE_LOYALIST
/datum/antagonist/mutineer/loyalist/New()
..(1)
loyalists = src
-66
View File
@@ -1,66 +0,0 @@
var/datum/antagonist/mutineer/mutineers
/datum/antagonist/mutineer
role_type = BE_MUTINEER
role_text = "Mutineer"
role_text_plural = "Mutineers"
id = MODE_MUTINEER
antag_indicator = "mutineer"
restricted_jobs = list(JOB_SITE_MANAGER)
/datum/antagonist/mutineer/New(var/no_reference)
..()
if(!no_reference)
mutineers = src
/datum/antagonist/mutineer/proc/recruit()
/datum/antagonist/mutineer/can_become_antag(var/datum/mind/player)
if(!..())
return 0
if(!ishuman(player.current))
return 0
if(M.special_role)
return 0
return 1
/*
var/list/directive_candidates = get_directive_candidates()
if(!directive_candidates || directive_candidates.len == 0)
to_world(span_warning("Mutiny mode aborted: no valid candidates for Directive X."))
return 0
head_loyalist = pick(loyalist_candidates)
head_mutineer = pick(mutineer_candidates)
current_directive = pick(directive_candidates)
// Returns an array in case we want to expand on this later.
proc/get_head_loyalist_candidates()
var/list/candidates[0]
for(var/mob/loyalist in GLOB.player_list)
if(loyalist.mind && loyalist.mind.assigned_role == JOB_SITE_MANAGER)
candidates.Add(loyalist.mind)
return candidates
proc/get_head_mutineer_candidates()
var/list/candidates[0]
for(var/mob/mutineer in GLOB.player_list)
if(mutineer.client.prefs.be_special & BE_MUTINEER)
for(var/job in GLOB.command_positions - JOB_SITE_MANAGER)
if(mutineer.mind && mutineer.mind.assigned_role == job)
candidates.Add(mutineer.mind)
return candidates
proc/get_directive_candidates()
var/list/candidates[0]
for(var/T in subtypesof(/datum/directive))
var/datum/directive/D = new T(src)
if (D.meets_prerequisites())
candidates.Add(D)
return candidates
return 1
*/
+3 -3
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/deathsquad/mercenary/commandos
GLOBAL_DATUM(commandos, /datum/antagonist/deathsquad/mercenary)
/datum/antagonist/deathsquad/mercenary
id = MODE_COMMANDO
@@ -7,7 +7,7 @@ var/datum/antagonist/deathsquad/mercenary/commandos
role_text_plural = "Commandos"
welcome_text = "You are in the employ of a criminal syndicate hostile to corporate interests."
antag_sound = 'sound/effects/antag_notice/deathsquid_alert.ogg'
id_type = /obj/item/card/id/centcom/ERT
id_type = /obj/item/card/id/centcom/ert
hard_cap = 4
hard_cap_round = 8
@@ -17,7 +17,7 @@ var/datum/antagonist/deathsquad/mercenary/commandos
/datum/antagonist/deathsquad/mercenary/New()
..(1)
commandos = src
GLOB.commandos = src
/datum/antagonist/deathsquad/mercenary/equip(var/mob/living/carbon/human/player)
+3 -3
View File
@@ -1,6 +1,6 @@
var/datum/antagonist/deathsquad/deathsquad
GLOBAL_DATUM(deathsquad, /datum/antagonist/deathsquad)
/datum/antagonist/deathsquad
/datum/antagonist/
id = MODE_DEATHSQUAD
role_type = BE_OPERATIVE
role_text = "Death Commando"
@@ -22,7 +22,7 @@ var/datum/antagonist/deathsquad/deathsquad
/datum/antagonist/deathsquad/New(var/no_reference)
..()
if(!no_reference)
deathsquad = src
GLOB.deathsquad = src
/datum/antagonist/deathsquad/attempt_spawn()
if(..())
+7 -7
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/ert/ert
GLOBAL_DATUM(ert, /datum/antagonist/ert)
/datum/antagonist/ert
id = MODE_ERT
@@ -16,15 +16,15 @@ var/datum/antagonist/ert/ert
rules aside from those without explicit exceptions apply to the ERT.")
leader_welcome_text = "As leader of the Emergency Response Team, you answer only to the Company, and have authority to override the " + JOB_SITE_MANAGER + " where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the " + JOB_SITE_MANAGER + " where possible, however."
landmark_id = "Response Team"
id_type = /obj/item/card/id/centcom/ERT
id_type = /obj/item/card/id/centcom/ert
flags = ANTAG_OVERRIDE_JOB | ANTAG_SET_APPEARANCE | ANTAG_HAS_LEADER | ANTAG_CHOOSE_NAME
antaghud_indicator = "hudloyalist"
hard_cap = 5
hard_cap_round = 7
initial_spawn_req = 5
initial_spawn_target = 7
hard_cap = 12
hard_cap_round = 12
initial_spawn_req = 4
initial_spawn_target = 12
can_hear_aooc = FALSE // They're the good guys.
can_speak_aooc = FALSE // Just in case the above var bugs, or gets touched.
@@ -35,7 +35,7 @@ var/datum/antagonist/ert/ert
/datum/antagonist/ert/New()
..()
ert = src
GLOB.ert = src
/datum/antagonist/ert/greet(var/datum/mind/player)
if(!..())
-6
View File
@@ -1,6 +0,0 @@
//boosted ERT spawn/cap numbers to match the Von Braun's spawns, just to be safe. not much point going to all the effort of giving you twelve slots if only seven can ever be used without admin fuckery. -Killian
/datum/antagonist/ert
hard_cap = 12
hard_cap_round = 12
initial_spawn_req = 4
initial_spawn_target = 12
+2 -2
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/mercenary/mercs
GLOBAL_DATUM(mercs, /datum/antagonist/mercenary)
/datum/antagonist/mercenary
id = MODE_MERCENARY
@@ -21,7 +21,7 @@ var/datum/antagonist/mercenary/mercs
/datum/antagonist/mercenary/New()
..()
mercs = src
GLOB.mercs = src
/datum/antagonist/mercenary/create_global_objectives()
if(!..())
+2 -2
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/ninja/ninjas
GLOBAL_DATUM(ninjas, /datum/antagonist/ninja)
/datum/antagonist/ninja
id = MODE_NINJA
@@ -20,7 +20,7 @@ var/datum/antagonist/ninja/ninjas
/datum/antagonist/ninja/New()
..()
ninjas = src
GLOB.ninjas = src
/datum/antagonist/ninja/attempt_random_spawn()
if(CONFIG_GET(flag/ninjas_allowed)) ..()
+2 -2
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/raider/raiders
GLOBAL_DATUM(raiders, /datum/antagonist/raider)
/datum/antagonist/raider
id = MODE_RAIDER
@@ -108,7 +108,7 @@ var/datum/antagonist/raider/raiders
/datum/antagonist/raider/New()
..()
raiders = src
GLOB.raiders = src
/datum/antagonist/raider/update_access(var/mob/living/player)
for(var/obj/item/storage/wallet/W in player.contents)
@@ -1,9 +1,9 @@
var/datum/antagonist/shipwreck_survivor/survivors
GLOBAL_DATUM(survivors, /datum/antagonist/shipwreck_survivor)
//Shipwreck survivors can only spawn from ghost_pods at time of this commit.
//These are NOT meant to be real antagonists
//They are, at best, comparable to ERT.
/datum/antagonist/SURVIVOR
/datum/antagonist/shipwreck_survivor
id = MODE_SURVIVOR
role_type = BE_SURVIVOR
role_text = "Shipwreck Survivor"
@@ -29,7 +29,11 @@ var/datum/antagonist/shipwreck_survivor/survivors
can_speak_aooc = FALSE
can_hear_aooc = FALSE
/datum/antagonist/SURVIVOR/greet(var/datum/mind/player)
/datum/antagonist/shipwreck_survivor/New()
..()
GLOB.survivors = src
/datum/antagonist/survivor/greet(var/datum/mind/player)
to_chat(player.current, span_warning("You are a <b>NOT</b> an antagonist! All rules apply to you as well. Your job is to help make the world seem more alive. \n \
You are not an existing station character, but some average person who has suffered a terrible accident. \
Feel free to make up what happened to the ship you awakened on as you please, \
@@ -1,4 +1,4 @@
var/datum/antagonist/technomancer/technomancers
GLOBAL_DATUM(technomancers, /datum/antagonist/technomancer)
/datum/antagonist/technomancer
id = MODE_TECHNOMANCER
@@ -24,7 +24,7 @@ var/datum/antagonist/technomancer/technomancers
/datum/antagonist/technomancer/New()
..()
technomancers = src
GLOB.technomancers = src
/datum/antagonist/technomancer/update_antag_mob(var/datum/mind/technomancer)
..()
+2 -2
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/trader/traders
GLOBAL_DATUM(traders, /datum/antagonist/trader)
/datum/antagonist/trader
id = MODE_TRADE
@@ -33,7 +33,7 @@ var/datum/antagonist/trader/traders
/datum/antagonist/trader/New()
..()
traders = src
GLOB.traders = src
/datum/antagonist/trader/greet(var/datum/mind/player)
if(!..())
+2 -2
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/wizard/wizards
GLOBAL_DATUM(wizards, /datum/antagonist/wizard)
/datum/antagonist/wizard
id = MODE_WIZARD
@@ -19,7 +19,7 @@ var/datum/antagonist/wizard/wizards
/datum/antagonist/wizard/New()
..()
wizards = src
GLOB.wizards = src
/datum/antagonist/wizard/create_objectives(var/datum/mind/wizard)
+4 -4
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/highlander/highlanders
GLOBAL_DATUM(highlanders, /datum/antagonist/highlander)
/datum/antagonist/highlander
role_text = "Highlander"
@@ -12,11 +12,11 @@ var/datum/antagonist/highlander/highlanders
initial_spawn_req = 3
initial_spawn_target = 5
id_type = /obj/item/card/id/centcom/ERT
id_type = /obj/item/card/id/centcom/ert
/datum/antagonist/highlander/New()
..()
highlanders = src
GLOB.highlanders = src
/datum/antagonist/highlander/create_objectives(var/datum/mind/player)
@@ -80,7 +80,7 @@ var/datum/antagonist/highlander/highlanders
for(var/mob/living/carbon/human/H in GLOB.player_list)
if(H.stat == 2 || !(H.client)) continue
if(is_special_character(H)) continue
highlanders.add_antagonist(H.mind)
GLOB.highlanders.add_antagonist(H.mind)
/client/proc/only_one_delayed()
//send_to_playing_players(span_userdanger("Bagpipes begin to blare. You feel Scottish pride coming over you."))
+2 -2
View File
@@ -1,4 +1,4 @@
var/datum/antagonist/loyalists/loyalists
GLOBAL_DATUM(loyalists, /datum/antagonist/loyalists)
/datum/antagonist/loyalists
id = MODE_LOYALIST
@@ -33,7 +33,7 @@ var/datum/antagonist/loyalists/loyalists
/datum/antagonist/loyalists/New()
..()
loyalists = src
GLOB.loyalists = src
/datum/antagonist/loyalists/create_global_objectives()
if(!..())
+2 -2
View File
@@ -63,7 +63,7 @@ GLOBAL_LIST_EMPTY(nuke_disks)
to_chat(world, span_filter_system(span_large(span_bold("[syndicate_name()] operatives have earned Darwin Award!"))))
to_chat(world, span_filter_system(span_bold("[syndicate_name()] operatives blew up something that wasn't [station_name()] and got caught in the explosion.") + " Next time, don't lose the disk!"))
else if (disk_rescued && mercs.antags_are_dead())
else if (disk_rescued && GLOB.mercs.antags_are_dead())
feedback_set_details("round_end_result","loss - evacuation - disk secured - syndi team dead")
to_chat(world, span_filter_system(span_large(span_bold("Crew Major Victory!"))))
to_chat(world, span_filter_system(span_bold("The Research Staff has saved the disc and killed the [syndicate_name()] Operatives")))
@@ -73,7 +73,7 @@ GLOBAL_LIST_EMPTY(nuke_disks)
to_chat(world, span_filter_system(span_large(span_bold("Crew Major Victory"))))
to_chat(world, span_filter_system(span_bold("The Research Staff has saved the disc and stopped the [syndicate_name()] Operatives!")))
else if (!disk_rescued && mercs.antags_are_dead())
else if (!disk_rescued && GLOB.mercs.antags_are_dead())
feedback_set_details("round_end_result","loss - evacuation - disk not secured")
to_chat(world, span_filter_system(span_large(span_bold("Mercenary Minor Victory!"))))
to_chat(world, span_filter_system(span_bold("The Research Staff failed to secure the authentication disk but did manage to kill most of the [syndicate_name()] Operatives!")))
+3 -3
View File
@@ -690,7 +690,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
if(istype(I,target)) total_amount++
if(total_amount >= target_amount) return 1
for(var/datum/mind/raider in raiders.current_antagonists)
for(var/datum/mind/raider in GLOB.raiders.current_antagonists)
if(raider.current)
for(var/obj/O in raider.current.get_contents())
if(istype(O,target)) total_amount++
@@ -744,7 +744,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
S = I
total_amount += S.get_amount()
for(var/datum/mind/raider in raiders.current_antagonists)
for(var/datum/mind/raider in GLOB.raiders.current_antagonists)
if(raider.current)
for(var/obj/item/O in raider.current.get_contents())
if(istype(O,/obj/item/stack/material))
@@ -760,7 +760,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
explanation_text = "Do not leave anyone behind, alive or dead."
/datum/objective/heist/preserve_crew/check_completion()
if(raiders && raiders.is_raider_crew_safe()) return 1
if(GLOB.raiders && GLOB.raiders.is_raider_crew_safe()) return 1
return 0
//Borer objective(s).
+1 -1
View File
@@ -63,7 +63,7 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
// Parameters: 1 (new_owner - mob that the book is trying to bind to)
// Description: Links the catalog to hopefully the technomancer, so that only they can access it.
/obj/item/technomancer_catalog/proc/bind_to_owner(var/mob/living/carbon/human/new_owner)
if(!owner && (technomancers.is_antagonist(new_owner.mind) || universal)) //VOREStation Edit - Universal catalogs
if(!owner && (GLOB.technomancers.is_antagonist(new_owner.mind) || universal)) //VOREStation Edit - Universal catalogs
owner = new_owner
// Proc: New()
+1 -1
View File
@@ -89,7 +89,7 @@
if(world.time % 5 == 0) // Maintaining fat lists is expensive, I imagine.
maintain_summon_list()
if(wearer && wearer.mind)
if(!(technomancers.is_antagonist(wearer.mind)) && !universal) // In case someone tries to wear a stolen core. //VOREStation Edit - Add universal cores
if(!(GLOB.technomancers.is_antagonist(wearer.mind)) && !universal) // In case someone tries to wear a stolen core. //VOREStation Edit - Add universal cores
wearer.adjust_instability(20)
if(!wearer || wearer.stat == DEAD) // Unlock if we're dead or not worn.
canremove = TRUE
@@ -165,7 +165,7 @@
if(core.loc != owner || owner.back != core) //Make sure the core's being worn.
to_chat(owner, span_danger("You need to be wearing a core on your back!"))
return 0
if(!technomancers.is_antagonist(owner.mind) && !core.universal) //Now make sure the person using this is the actual antag. //VOREStation Edit - Universal cores
if(!GLOB.technomancers.is_antagonist(owner.mind) && !core.universal) //Now make sure the person using this is the actual antag. //VOREStation Edit - Universal cores
to_chat(owner, span_danger("You can't seem to figure out how to make the machine work properly."))
return 0
return 1
@@ -17,7 +17,7 @@
/obj/item/spell/proc/is_ally(var/mob/living/L)
if(L == owner) // The best ally is ourselves.
return 1
if(L.mind && technomancers.is_antagonist(L.mind)) // This should be done better since we might want opposing technomancers later.
if(L.mind && GLOB.technomancers.is_antagonist(L.mind)) // This should be done better since we might want opposing technomancers later.
return 1
if(isanimal(L)) // Mind controlled simple mobs count as allies too.
var/mob/living/simple_mob/SM = L
+3 -3
View File
@@ -262,7 +262,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages
if(istype(R))
LAZYDISTINCTADD(forced_radios, R)
if(connection.frequency in ANTAG_FREQS) // if antag broadcast, just
if(connection.frequency in GLOB.antag_frequencies) // if antag broadcast, just
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
@@ -378,7 +378,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages
// --- Broadcast to antag radios! ---
else if(data == DATA_ANTAG)
for(var/antag_freq in ANTAG_FREQS)
for(var/antag_freq in GLOB.antag_frequencies)
var/datum/radio_frequency/antag_connection = SSradio.return_frequency(antag_freq)
for (var/obj/item/radio/R in antag_connection.devices["[RADIO_CHAT]"])
if(R.receive_range(antag_freq, level) > -1)
@@ -597,7 +597,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages
// --- Broadcast to antag radios! ---
else if(data == DATA_ANTAG)
for(var/freq in ANTAG_FREQS)
for(var/freq in GLOB.antag_frequencies)
var/datum/radio_frequency/antag_connection = SSradio.return_frequency(freq)
for (var/obj/item/radio/R in antag_connection.devices["[RADIO_CHAT]"])
var/turf/position = get_turf(R)
@@ -40,7 +40,7 @@
if(istype(R))
LAZYDISTINCTADD(forced_radios, R)
if(connection.frequency in CENT_FREQS) // if ert broadcast, just
if(connection.frequency in GLOB.cent_frequencies) // if ert broadcast, just
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
+2 -2
View File
@@ -84,7 +84,7 @@
to_chat(H, span_infoplain(span_bold("It would be wise to speak to your master, and learn what their plans are for today.")))
spawn(1)
technomancers.add_antagonist(H.mind, 0, 1, 0, 0, 0)
GLOB.technomancers.add_antagonist(H.mind, 0, 1, 0, 0, 0)
equip_antag(H)
used = 1
qdel(src)
@@ -133,7 +133,7 @@
R.key = C.key
spawn(1)
mercs.add_antagonist(R.mind, FALSE, TRUE, FALSE, FALSE, FALSE)
GLOB.mercs.add_antagonist(R.mind, FALSE, TRUE, FALSE, FALSE, FALSE)
//add_antagonist(var/datum/mind/player, var/ignore_role, var/do_not_equip, var/move_to_spawn, var/do_not_announce, var/preserve_appearance)
qdel(src)
@@ -170,7 +170,7 @@
return -1
if (!src.listening)
return -1
if(freq in ANTAG_FREQS)
if(freq in GLOB.antag_frequencies)
if(!(src.syndie))
return -1//Prevents broadcast of messages over devices lacking the encryption
@@ -560,10 +560,10 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
var/pos_z = get_z(src)
if(!(pos_z in level))
return -1
if(freq in ANTAG_FREQS)
if(freq in GLOB.antag_frequencies)
if(!(src.syndie))//Checks to see if it's allowed on that frequency, based on the encryption keys
return -1
if(freq in CENT_FREQS)
if(freq in GLOB.cent_frequencies)
if(!(src.centComm))//Checks to see if it's allowed on that frequency, based on the encryption keys
return -1
if (!on)
+8 -8
View File
@@ -242,20 +242,20 @@
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
if(affecting.open)
balloon_alert(user, "the [affecting.name] is cut open!")
user.balloon_alert(user, "the [affecting.name] is cut open!")
return
if(affecting.is_salved())
balloon_alert(user, "the wounds on [M]'s [affecting.name] have already been salved.")
user.balloon_alert(user, "the wounds on [M]'s [affecting.name] have already been salved.")
return 1
else
user.balloon_alert_visible("\the [user] starts salving wounds on [M]'s [affecting.name].", \
"salving the wounds on [M]'s [affecting.name]." )
if(!do_after(user, 1 SECOND, affecting))
balloon_alert(user, "stand still to salve wounds.")
user.balloon_alert(user, "stand still to salve wounds.")
return 1
if(affecting.is_salved()) // We do a second check after the delay, in case it was bandaged after the first check.
balloon_alert(user, "[M]'s [affecting.name] have already been salved.")
user.balloon_alert(user, "[M]'s [affecting.name] have already been salved.")
return 1
user.balloon_alert_visible("[user] salved wounds on [M]'s [affecting.name].", \
"salved wounds on [M]'s [affecting.name]." )
@@ -357,19 +357,19 @@
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
if(affecting.open)
balloon_alert(user, "the [affecting.name] is cut open!")
user.balloon_alert(user, "the [affecting.name] is cut open!")
if(affecting.is_salved())
balloon_alert(user, "[M]'s [affecting.name] has already been salved.")
user.balloon_alert(user, "[M]'s [affecting.name] has already been salved.")
return 1
else
user.balloon_alert_visible("\the [user] starts salving wounds on [M]'s [affecting.name].", \
"salving the wounds on [M]'s [affecting.name]." )
if(!do_after(user, 1 SECOND, affecting))
balloon_alert(user, "stand still to salve wounds.")
user.balloon_alert(user, "stand still to salve wounds.")
return 1
if(affecting.is_salved()) // We do a second check after the delay, in case it was bandaged after the first check.
balloon_alert(user, "[M]'s [affecting.name] have already been salved.")
user.balloon_alert(user, "[M]'s [affecting.name] have already been salved.")
return 1
user.balloon_alert_visible("[user] covers wounds on [M]'s [affecting.name] with regenerative membrane.", \
"covered wounds on [M]'s [affecting.name] with regenerative membrane." )
@@ -29,23 +29,23 @@
//ERT
/obj/item/card/id/centcom/ERT
/obj/item/card/id/centcom/ert
name = "Emergency Responder ID"
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-red", "stripe-red")
/obj/item/card/id/centcom/ERT/medic
/obj/item/card/id/centcom/ert/medic
name = "Emergency Medical Responder ID"
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-medblu", "stripe-medblu")
/obj/item/card/id/centcom/ERT/commander
/obj/item/card/id/centcom/ert/commander
name = "Emergency Response Commander ID"
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold", "stripe-gold")
/obj/item/card/id/centcom/ERT/engineer
/obj/item/card/id/centcom/ert/engineer
name = "Emergency Engineering Responder ID"
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-orange", "stripe-orange")
/obj/item/card/id/centcom/ERT/janitor
/obj/item/card/id/centcom/ert/janitor
name = "Emergency Cleanup Responder ID"
initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-purple", "stripe-purple")
@@ -220,13 +220,13 @@
. = ..()
access |= get_all_station_access()
/obj/item/card/id/centcom/ERT
/obj/item/card/id/centcom/ert
name = "\improper " + JOB_EMERGENCY_RESPONSE_TEAM + "ID"
assignment = JOB_EMERGENCY_RESPONSE_TEAM
icon_state = "ert-id"
rank = JOB_EMERGENCY_RESPONSE_TEAM
/obj/item/card/id/centcom/ERT/Initialize(mapload)
/obj/item/card/id/centcom/ert/Initialize(mapload)
. = ..()
access |= get_all_station_access()
+1 -1
View File
@@ -18,7 +18,7 @@
. = ..(user)
if(.)
return TRUE
if((user.mind && !wizards.is_antagonist(user.mind)))
if((user.mind && !GLOB.wizards.is_antagonist(user.mind)))
to_chat(user, span_warning("You stare at the scroll but cannot make sense of the markings!"))
return
+2 -2
View File
@@ -168,10 +168,10 @@
overlays.Remove(blood_overlay)
if(gurgled && clean_types & CLEAN_WASH)
gurgled = FALSE
cut_overlay(gurgled_overlays[gurgled_color])
cut_overlay(GLOB.gurgled_overlays[gurgled_color])
if(contaminated && clean_types & CLEAN_RAD) // Phoron and stuff, washing machine needed
contaminated = FALSE
cut_overlay(contamination_overlay)
cut_overlay(GLOB.contamination_overlay)
/obj/vv_get_dropdown()
. = ..()
+2 -2
View File
@@ -135,7 +135,7 @@
if(choice && choice == "Yes")
var/mob/living/carbon/human/vox/vox = new(get_turf(src),SPECIES_VOX)
vox.gender = user.gender
raiders.equip(vox)
GLOB.raiders.equip(vox)
if(user.mind)
user.mind.transfer_to(vox)
spawn(1)
@@ -145,6 +145,6 @@
newname = L.get_random_name()
vox.real_name = newname
vox.name = vox.real_name
raiders.update_access(vox)
GLOB.raiders.update_access(vox)
qdel(user)
..()
+4 -4
View File
@@ -373,7 +373,7 @@ GLOBAL_LIST_INIT(wf_speak_vomva_sound, list ('sound/talksounds/wf/vomva_1.ogg',
// var/list/species_sounds = list()
// Global list containing all of our sound options.
var/list/species_sound_map = list(
GLOBAL_LIST_INIT(species_sound_map, list(
"Canine" = canine_sounds,
"Cervine" = cervine_sounds,
"Feline" = feline_sounds,
@@ -392,7 +392,7 @@ var/list/species_sound_map = list(
"Xeno" = xeno_sounds,
"None" = no_sounds,
"Unset" = use_default
)
))
/*
* Call this for when you need a sound from an already-identified list - IE, "Canine". pick() cannot parse procs.
@@ -406,9 +406,9 @@ var/list/species_sound_map = list(
* get_species_sound(H.species.species_sounds_male)["emote"] // If we're male, and want an emote sound gendered correctly.
*/
/proc/get_species_sound(var/sounds)
if(!islist(species_sound_map[sounds])) // We check here if this list actually has anything in it, or if we're about to return a null index
if(!islist(GLOB.species_sound_map[sounds])) // We check here if this list actually has anything in it, or if we're about to return a null index
return null // Shitty failsafe but better than rewriting an entire litany of procs rn when I'm low on time - Rykka // list('sound/voice/silence.ogg')
return species_sound_map[sounds] // Otherwise, successfully return our sound
return GLOB.species_sound_map[sounds] // Otherwise, successfully return our sound
/*
* The following helper proc will select a species' default sounds - useful for if we're set to "Unset"
+17 -19
View File
@@ -128,8 +128,8 @@ GLOBAL_VAR(restart_counter)
/world/New()
log_world("World loaded at [time_stamp()]!")
world_startup_time = world.timeofday
rollover_safety_date = world.realtime - world.timeofday // 00:00 today (ish, since floating point error with world.realtime) of today
GLOB.world_startup_time = world.timeofday
GLOB.rollover_safety_date = world.realtime - world.timeofday // 00:00 today (ish, since floating point error with world.realtime) of today
InitTgs()
@@ -303,8 +303,8 @@ GLOBAL_VAR(restart_counter)
world.log = file("[GLOB.log_directory]/dd.log") //not all runtimes trigger world/Error, so this is the only way to ensure we can see all of them.
#endif
var/world_topic_spam_protect_ip = "0.0.0.0"
var/world_topic_spam_protect_time = world.timeofday
GLOBAL_VAR_INIT(world_topic_spam_protect_ip, "0.0.0.0")
GLOBAL_VAR_INIT(world_topic_spam_protect_time, world.timeofday)
/world/Topic(T, addr, master, key)
TGS_TOPIC
@@ -462,14 +462,14 @@ var/world_topic_spam_protect_time = world.timeofday
var/input[] = params2list(T)
var/password = CONFIG_GET(string/comms_password)
if(!password || input["key"] != password)
if(world_topic_spam_protect_ip == addr && abs(world_topic_spam_protect_time - world.time) < 50)
if(GLOB.world_topic_spam_protect_ip == addr && abs(GLOB.world_topic_spam_protect_time - world.time) < 50)
spawn(50)
world_topic_spam_protect_time = world.time
GLOB.world_topic_spam_protect_time = world.time
return
world_topic_spam_protect_time = world.time
world_topic_spam_protect_ip = addr
GLOB.world_topic_spam_protect_time = world.time
GLOB.world_topic_spam_protect_ip = addr
return "Bad Key"
@@ -691,8 +691,7 @@ var/world_topic_spam_protect_time = world.timeofday
src.status = s
#define FAILED_DB_CONNECTION_CUTOFF 5
var/failed_db_connections = 0
var/failed_old_db_connections = 0
GLOBAL_VAR_INIT(failed_db_connections, 0)
/hook/startup/proc/connectDB()
if(!CONFIG_GET(flag/sql_enabled))
@@ -706,7 +705,7 @@ var/failed_old_db_connections = 0
/proc/setup_database_connection()
if(!CONFIG_GET(flag/sql_enabled))
return 0
if(failed_db_connections > FAILED_DB_CONNECTION_CUTOFF) //If it failed to establish a connection more than 5 times in a row, don't bother attempting to conenct anymore.
if(GLOB.failed_db_connections > FAILED_DB_CONNECTION_CUTOFF) //If it failed to establish a connection more than 5 times in a row, don't bother attempting to conenct anymore.
return 0
if(!SSdbcore)
@@ -721,16 +720,15 @@ var/failed_old_db_connections = 0
SSdbcore.Connect("dbi:mysql:[db]:[address]:[port]","[user]","[pass]")
. = SSdbcore.IsConnected()
if ( . )
failed_db_connections = 0 //If this connection succeeded, reset the failed connections counter.
else
failed_db_connections++ //If it failed, increase the failed connections counter.
log_sql(SSdbcore.ErrorMsg())
return .
GLOB.failed_db_connections = 0 //If this connection succeeded, reset the failed connections counter.
return
GLOB.failed_db_connections++ //If it failed, increase the failed connections counter.
log_sql(SSdbcore.ErrorMsg())
return
//This proc ensures that the connection to the feedback database (global variable dbcon) is established
/proc/establish_db_connection()
if(failed_db_connections > FAILED_DB_CONNECTION_CUTOFF)
if(GLOB.failed_db_connections > FAILED_DB_CONNECTION_CUTOFF)
return 0
if(!SSdbcore || !SSdbcore.IsConnected())
@@ -741,7 +739,7 @@ var/failed_old_db_connections = 0
// Cleans up DB connections and recreates them
/proc/reset_database_connections()
var/list/results = list("-- Resetting DB connections --")
failed_db_connections = 0
GLOB.failed_db_connections = 0
if(SSdbcore?.IsConnected())
SSdbcore.Disconnect()
+19 -19
View File
@@ -1,5 +1,5 @@
//admin verb groups - They can overlap if you so wish. Only one of each verb will exist in the verbs list regardless
var/list/admin_verbs_admin = list(
GLOBAL_LIST_INIT(admin_verbs_admin, list(
/client/proc/toggle_vantag_hud,
/datum/admins/proc/set_tcrystals,
/datum/admins/proc/add_tcrystals,
@@ -87,17 +87,17 @@ var/list/admin_verbs_admin = list(
/client/proc/toggle_spawning_with_recolour,
/client/proc/start_vote,
/client/proc/hide_motion_tracker_feedback
)
))
var/list/admin_verbs_sounds = list(
GLOBAL_LIST_INIT(admin_verbs_sounds, list(
/client/proc/play_local_sound,
/client/proc/play_sound,
/client/proc/play_server_sound,
/client/proc/play_web_sound,
/client/proc/play_z_sound
)
))
var/list/admin_verbs_fun = list(
GLOBAL_LIST_INIT(admin_verbs_fun, list(
/client/proc/object_talk,
/datum/admins/proc/cmd_admin_dress,
/client/proc/drop_bomb,
@@ -119,10 +119,9 @@ var/list/admin_verbs_fun = list(
/client/proc/getPlayerStatus,
/client/proc/manage_event_triggers,
/client/proc/fake_pdaconvos
))
)
var/list/admin_verbs_spawn = list(
GLOBAL_LIST_INIT(admin_verbs_spawn, list(
/datum/admins/proc/spawn_fruit,
/datum/admins/proc/spawn_custom_item,
/datum/admins/proc/check_custom_items,
@@ -143,9 +142,9 @@ var/list/admin_verbs_spawn = list(
/client/proc/AdminCreateVirus,
/client/proc/ReleaseVirus,
/client/proc/spawn_reagent
)
))
var/list/admin_verbs_server = list(
GLOBAL_LIST_INIT(admin_verbs_server, list(
/datum/admins/proc/capture_map,
/client/proc/Set_Holiday,
/client/proc/ToRban,
@@ -170,9 +169,9 @@ var/list/admin_verbs_server = list(
/client/proc/panicbunker,
/client/proc/paranoia_logging,
/client/proc/ip_reputation
)
))
var/list/admin_verbs_debug = list(
GLOBAL_LIST_INIT(admin_verbs_debug, list(
/client/proc/cmd_admin_list_open_jobs,
/client/proc/Debug2,
/client/proc/kill_air,
@@ -219,10 +218,10 @@ var/list/admin_verbs_debug = list(
/datum/admins/proc/view_feedback,
/client/proc/stop_sounds,
/client/proc/spawn_reagent
)
))
//verbs which can be hidden - needs work
var/list/admin_verbs_hideable = list(
GLOBAL_LIST_INIT(admin_verbs_hideable, list(
// /client/proc/deadchat,
/datum/admins/proc/show_traitor_panel,
/datum/admins/proc/toggleenter,
@@ -285,8 +284,9 @@ var/list/admin_verbs_hideable = list(
/datum/admins/proc/set_uplink,
/datum/admins/proc/set_tcrystals,
/client/proc/stop_sounds
)
var/list/admin_verbs_mod = list(
))
GLOBAL_LIST_INIT(admin_verbs_mod, list(
/client/proc/cmd_admin_pm_context, //right-click adminPM interface,
/client/proc/cmd_admin_pm_panel, //admin-pm list,
/datum/admins/proc/PlayerNotes,
@@ -309,9 +309,9 @@ var/list/admin_verbs_mod = list(
/datum/admins/proc/sendFax,
/datum/admins/proc/view_persistent_data,
/client/proc/start_vote
)
))
var/list/admin_verbs_event_manager = list(
GLOBAL_LIST_INIT(admin_verbs_event_manager, list(
/client/proc/toggle_vantag_hud,
/client/proc/cmd_admin_pm_context,
/client/proc/cmd_admin_pm_panel,
@@ -440,4 +440,4 @@ var/list/admin_verbs_event_manager = list(
/client/proc/hide_motion_tracker_feedback,
/client/proc/modify_event_collector,
/client/proc/induce_malfunction
)
))
+16 -16
View File
@@ -3,14 +3,14 @@
var/rights = holder.rank_flags()
if(rights & R_HOLDER)
if(rights & R_BUILDMODE) add_verb(src, /client/proc/togglebuildmodeself)
if(rights & R_ADMIN) add_verb(src, admin_verbs_admin)
if(rights & R_FUN) add_verb(src, admin_verbs_fun)
if(rights & R_SERVER) add_verb(src, admin_verbs_server)
if(rights & R_DEBUG) add_verb(src, admin_verbs_debug)
if(rights & R_SOUNDS) add_verb(src, admin_verbs_sounds)
if(rights & R_SPAWN) add_verb(src, admin_verbs_spawn)
if(rights & R_MOD) add_verb(src, admin_verbs_mod)
if(rights & R_EVENT) add_verb(src, admin_verbs_event_manager)
if(rights & R_ADMIN) add_verb(src, GLOB.admin_verbs_admin)
if(rights & R_FUN) add_verb(src, GLOB.admin_verbs_fun)
if(rights & R_SERVER) add_verb(src, GLOB.admin_verbs_server)
if(rights & R_DEBUG) add_verb(src, GLOB.admin_verbs_debug)
if(rights & R_SOUNDS) add_verb(src, GLOB.admin_verbs_sounds)
if(rights & R_SPAWN) add_verb(src, GLOB.admin_verbs_spawn)
if(rights & R_MOD) add_verb(src, GLOB.admin_verbs_mod)
if(rights & R_EVENT) add_verb(src, GLOB.admin_verbs_event_manager)
// NEW ADMIN VERBS SYSTEM
SSadmin_verbs.assosciate_admin(src)
@@ -19,13 +19,13 @@
// OLD ADMIN VERB SYSTEM
remove_verb(src, list(
/client/proc/togglebuildmodeself,
admin_verbs_admin,
admin_verbs_fun,
admin_verbs_server,
admin_verbs_debug,
admin_verbs_sounds,
admin_verbs_spawn,
debug_verbs
GLOB.admin_verbs_admin,
GLOB.admin_verbs_fun,
GLOB.admin_verbs_server,
GLOB.admin_verbs_debug,
GLOB.admin_verbs_sounds,
GLOB.admin_verbs_spawn,
GLOB.debug_verbs
))
// NEW ADMIN VERBS SYSTEM
@@ -35,7 +35,7 @@
set name = "Adminverbs - Hide Most"
set category = "Admin.Misc"
remove_verb(src, list(/client/proc/hide_most_verbs, admin_verbs_hideable))
remove_verb(src, list(/client/proc/hide_most_verbs, GLOB.admin_verbs_hideable))
add_verb(src, /client/proc/show_verbs)
to_chat(src, span_filter_system(span_interface("Most of your adminverbs have been hidden.")))
+4 -4
View File
@@ -128,7 +128,7 @@ GLOBAL_LIST_BOILERPLATE(all_debugging_effects, /obj/effect/debugging)
qdel(F)
feedback_add_details("admin_verb","mIRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
var/list/debug_verbs = list (
GLOBAL_LIST_INIT(debug_verbs, list(
/client/proc/do_not_use_these
,/client/proc/camera_view
,/client/proc/sec_camera_report
@@ -159,7 +159,7 @@ var/list/debug_verbs = list (
,/client/proc/atmos_toggle_debug
,/client/proc/spawn_tanktransferbomb
,/client/proc/take_picture
)
))
/client/proc/enable_debug_verbs()
@@ -168,7 +168,7 @@ var/list/debug_verbs = list (
if(!check_rights(R_DEBUG)) return
add_verb(src, debug_verbs)
add_verb(src, GLOB.debug_verbs)
feedback_add_details("admin_verb","mDV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -178,7 +178,7 @@ var/list/debug_verbs = list (
if(!check_rights(R_DEBUG)) return
remove_verb(src, debug_verbs)
remove_verb(src, GLOB.debug_verbs)
feedback_add_details("admin_verb","hDV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+2 -2
View File
@@ -154,10 +154,10 @@ ADMIN_VERB(secrets, R_HOLDER, "Secrets", "Abuse harder than you ever have before
SSnightshift.update_nightshift(active = FALSE, announce = TRUE, forced = TRUE)
if("trigger_xenomorph_infestation")
xenomorphs.attempt_random_spawn()
GLOB.xenomorphs.attempt_random_spawn()
if("trigger_cortical_borer_infestation")
borers.attempt_random_spawn()
GLOB.borers.attempt_random_spawn()
if("jump_shuttle")
var/shuttle_tag = tgui_input_list(holder, "Which shuttle do you want to jump?", "Shuttle Choice", SSshuttles.shuttles)
+4 -4
View File
@@ -24,9 +24,9 @@
switch(choice)
if("Heavy Asset Protection")
team = deathsquad
team = GLOB.deathsquad
if("Mercenaries")
team = commandos
team = GLOB.commandos
else
return
@@ -111,10 +111,10 @@ GLOBAL_VAR_INIT(silent_ert, 0)
if(jobban_isbanned(usr, JOB_SYNDICATE) || jobban_isbanned(usr, JOB_EMERGENCY_RESPONSE_TEAM) || jobban_isbanned(usr, JOB_SECURITY_OFFICER))
to_chat(usr, span_danger("You are jobbanned from the emergency reponse team!"))
return
if(ert.current_antagonists.len >= ert.hard_cap)
if(GLOB.ert.current_antagonists.len >= GLOB.ert.hard_cap)
to_chat(usr, "The emergency response team is already full!")
return
ert.create_default(usr)
GLOB.ert.create_default(usr)
else
to_chat(usr, "You need to be an observer or new player to use this.")
+2 -2
View File
@@ -46,10 +46,10 @@ GLOBAL_VAR_INIT(can_call_traders, 1)
if(!GLOB.send_beruang)
to_chat(usr, "The Beruang is not currently heading to the station.")
return
if(traders.current_antagonists.len >= traders.hard_cap)
if(GLOB.traders.current_antagonists.len >= GLOB.traders.hard_cap)
to_chat(usr, "The number of trader slots is already full!")
return
traders.create_default(usr)
GLOB.traders.create_default(usr)
else
to_chat(usr, "You need to be an observer or new player to use this.")
+1 -1
View File
@@ -34,7 +34,7 @@
// Step 1, find out what we can see.
/datum/ai_holder/proc/list_targets()
. = ohearers(vision_range, holder)
. -= dview_mob // Not the dview mob!
. -= GLOB.dview_mob // Not the dview mob!
var/static/hostile_machines = typecacheof(list(/obj/machinery/porta_turret, /obj/mecha, /obj/structure/blob))
+4 -4
View File
@@ -223,12 +223,12 @@
if(tmr.timing)
to_chat(usr, span_notice("Clock is ticking already."))
else
var/ntime = tgui_input_number(usr, "Enter desired time in seconds", "Time", "5", 1000, 0)
if (ntime>0 && ntime<1000)
var/ntime = tgui_input_number(usr, "Enter desired time in seconds", "Time", 5, 1000, 0)
if (ntime > 0 && ntime < 1000)
tmr.time = ntime
name = initial(name) + "([tmr.time] secs)"
to_chat(usr, span_notice("Timer set to [tmr.time] seconds."))
else
to_chat(usr, span_notice("Timer can't be [ntime<=0?"negative":"more than 1000 seconds"]."))
to_chat(usr, span_notice("Timer can't be [ntime <= 0 ? "negative" : "more than 1000 seconds"]."))
else
to_chat(usr, span_notice("You cannot do this while [usr.stat?"unconscious/dead":"restrained"]."))
to_chat(usr, span_notice("You cannot do this while [usr.stat ? "unconscious/dead" : "restrained"]."))
@@ -3,4 +3,4 @@
load_immediately = TRUE
/datum/asset/spritesheet_batched/chat/create_spritesheets()
insert_all_icons("", text_tag_icons, prefix_with_dirs = FALSE) // OOC, LOOC ect icons
insert_all_icons("", GLOB.text_tag_icons, prefix_with_dirs = FALSE) // OOC, LOOC ect icons
@@ -205,7 +205,7 @@
SEND_SOUND(user, S)
if("customize_species_sounds") // You shouldn't be able to see this option if you don't have the option to select a custom icon base, so we don't need to re-check for safety here.
var/list/possible_species_sound_types = species_sound_map
var/list/possible_species_sound_types = GLOB.species_sound_map
var/choice = tgui_input_list(user, "Which set of sounds would you like to use for your character's species sounds? (Cough, Sneeze, Scream, Pain, Gasp, Death)", "Species Sounds", possible_species_sound_types)
if(choice)
pref.species_sound = choice
@@ -5,10 +5,10 @@
should_generate_icons = TRUE
/datum/preference/choiced/ui_style/init_possible_values()
return assoc_to_keys(all_ui_styles)
return assoc_to_keys(GLOB.all_ui_styles)
/datum/preference/choiced/ui_style/icon_for(value)
var/icon/icon_file = all_ui_styles[value]
var/icon/icon_file = GLOB.all_ui_styles[value]
var/icon/icon = icon(icon_file, "r_hand_inactive")
icon.Crop(1, 1, ICON_SIZE_X * 2, ICON_SIZE_Y)
@@ -17,7 +17,7 @@
return icon
/datum/preference/choiced/ui_style/create_default_value()
return all_ui_styles[1]
return GLOB.all_ui_styles[1]
/datum/preference/choiced/ui_style/apply_to_client_updated(client/client, value)
client.mob?.update_ui_style(UI_style_new = value)
@@ -1,10 +1,10 @@
//Toggles for preferences, normal clients
/client/verb/toggle_be_special(role in be_special_flags)
/client/verb/toggle_be_special(role in GLOB.be_special_flags)
set name = "Toggle Special Role Candidacy"
set category = "Preferences.Character"
set desc = "Toggles which special roles you would like to be a candidate for, during events."
var/role_flag = be_special_flags[role]
var/role_flag = GLOB.be_special_flags[role]
if(!role_flag) return
prefs.be_special ^= role_flag
+4 -4
View File
@@ -1,7 +1,7 @@
/proc/ui_style2icon(ui_style)
if(ui_style in all_ui_styles)
return all_ui_styles[ui_style]
return all_ui_styles["White"]
if(ui_style in GLOB.all_ui_styles)
return GLOB.all_ui_styles[ui_style]
return GLOB.all_ui_styles["White"]
/client/verb/change_ui()
@@ -17,7 +17,7 @@
var/current_style = prefs.read_preference(/datum/preference/choiced/ui_style)
var/current_alpha = prefs.read_preference(/datum/preference/numeric/ui_style_alpha)
var/current_color = prefs.read_preference(/datum/preference/color/ui_style_color)
var/UI_style_new = tgui_input_list(src, "Select a style. White is recommended for customization", "UI Style Choice", all_ui_styles, current_style)
var/UI_style_new = tgui_input_list(src, "Select a style. White is recommended for customization", "UI Style Choice", GLOB.all_ui_styles, current_style)
if(!UI_style_new) return
var/UI_style_alpha_new = tgui_input_number(src, "Select a new alpha (transparency) parameter for your UI, between 50 and 255", null, current_alpha, 255, 50)
+1 -1
View File
@@ -741,7 +741,7 @@
if(holding)
add_overlay("[icon_state]_knife")
if(contaminated)
add_overlay(contamination_overlay)
add_overlay(GLOB.contamination_overlay)
if(gurgled) //VOREStation Edit Start
wash(CLEAN_ALL)
gurgle_contaminate() //VOREStation Edit End
+10 -12
View File
@@ -1,9 +1,5 @@
// Customizable Foods //////////////////////////////////////////
var/global/deepFriedEverything = 0
var/global/deepFriedNutriment = 0
var/global/foodNesting = 0
var/global/recursiveFood = 0
var/global/ingredientLimit = 20
#define INGREDIENT_LIMIT 20
/obj/item/reagent_containers/food/snacks/customizable
@@ -27,7 +23,7 @@ var/global/ingredientLimit = 20
/obj/item/reagent_containers/food/snacks/customizable/attackby(obj/item/I, mob/user)
if(istype(I,/obj/item/reagent_containers/food/snacks))
if((contents.len >= ingMax) || (contents.len >= ingredientLimit))
if((contents.len >= ingMax) || (contents.len >= INGREDIENT_LIMIT))
to_chat(user, span_warning("That's already looking pretty stuffed."))
return
@@ -37,7 +33,7 @@ var/global/ingredientLimit = 20
if(fullyCustom && SC.fullyCustom)
to_chat(user, span_warning("You slap yourself on the back of the head for thinking that stacking plates is an interesting dish."))
return
if(!recursiveFood && istype(I, /obj/item/reagent_containers/food/snacks/customizable))
if(istype(I, /obj/item/reagent_containers/food/snacks/customizable))
//to_chat(user, span_warning("[pick("As uniquely original as that idea is, you can't figure out how to perform it.","That would be a straining topological exercise.","This world just isn't ready for your cooking genius.","It's possible that you may have a problem.","It won't fit.","You don't think that would taste very good.","Quit goofin' around.")]"))
to_chat(user, span_warning("As uniquely original as that idea is, you can't figure out how to perform it."))
return
@@ -184,7 +180,7 @@ var/global/ingredientLimit = 20
/obj/item/reagent_containers/food/snacks/slice/bread/attackby(obj/item/I,mob/user,params)
if(istype(I,/obj/item/reagent_containers/food/snacks))
if(!recursiveFood && istype(I, /obj/item/reagent_containers/food/snacks/customizable))
if(istype(I, /obj/item/reagent_containers/food/snacks/customizable))
to_chat(user, span_warning("Sorry, no recursive food."))
return
var/obj/F = new/obj/item/reagent_containers/food/snacks/customizable/sandwich(get_turf(src),I) //boy ain't this a mouthful
@@ -216,7 +212,7 @@ var/global/ingredientLimit = 20
qdel(src)
if(istype(I,/obj/item/reagent_containers/food/snacks))
if(!recursiveFood && istype(I, /obj/item/reagent_containers/food/snacks/customizable))
if(istype(I, /obj/item/reagent_containers/food/snacks/customizable))
to_chat(user, span_warning("Sorry, no recursive food."))
return
var/obj/F = new/obj/item/reagent_containers/food/snacks/customizable/burger(get_turf(src),I)
@@ -227,7 +223,7 @@ var/global/ingredientLimit = 20
/obj/item/reagent_containers/food/snacks/sliceable/flatdough/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/reagent_containers/food/snacks))
if(!recursiveFood && istype(I, /obj/item/reagent_containers/food/snacks/customizable))
if(istype(I, /obj/item/reagent_containers/food/snacks/customizable))
to_chat(user, span_warning("Sorry, no recursive food."))
return
var/obj/F = new/obj/item/reagent_containers/food/snacks/customizable/pizza(get_turf(src),I)
@@ -238,7 +234,7 @@ var/global/ingredientLimit = 20
/obj/item/reagent_containers/food/snacks/spagetti/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/reagent_containers/food/snacks))
if(!recursiveFood && istype(I, /obj/item/reagent_containers/food/snacks/customizable))
if(istype(I, /obj/item/reagent_containers/food/snacks/customizable))
to_chat(user, span_warning("Sorry, no recursive food."))
return
var/obj/F = new/obj/item/reagent_containers/food/snacks/customizable/pasta(get_turf(src),I)
@@ -269,7 +265,7 @@ var/global/ingredientLimit = 20
/obj/item/trash/bowl/attackby(obj/item/I, mob/user)
if(istype(I,/obj/item/reagent_containers/food/snacks))
if(!recursiveFood && istype(I, /obj/item/reagent_containers/food/snacks/customizable))
if(istype(I, /obj/item/reagent_containers/food/snacks/customizable))
to_chat(user, span_warning("Sorry, no recursive food."))
return
var/obj/F = new/obj/item/reagent_containers/food/snacks/customizable/soup(get_turf(src),I)
@@ -277,3 +273,5 @@ var/global/ingredientLimit = 20
qdel(src)
else
return ..()
#undef INGREDIENT_LIMIT
@@ -1296,11 +1296,6 @@
M.show_message(span_warning("You lose sensation of your body."))
return
//egglaying
var/eggs = 0
/mob/living/proc/mobegglaying()
set name = "Egg laying"
set desc = "you can lay Eggs"
@@ -21,3 +21,4 @@
var/list/custom_cold = list()
var/can_climb = FALSE //Checked by turfs when using climb_wall(). Defined here for silicons and simple mobs
var/climbing_delay = 1.5 //By default, mobs climb at quarter speed. To be overriden by specific simple mobs or species speed
var/eggs = 0
@@ -77,7 +77,7 @@
/mob/living/simple_mob/animal/borer/Login()
. = ..()
if(antag && mind)
borers.add_antagonist(mind)
GLOB.borers.add_antagonist(mind)
/mob/living/simple_mob/animal/borer/Initialize(mapload)
add_language("Cortical Link")
@@ -284,7 +284,7 @@
return
if(host.mind)
borers.remove_antagonist(host.mind)
GLOB.borers.remove_antagonist(host.mind)
if(!QDELETED(src))
forceMove(get_turf(host.loc))
@@ -132,7 +132,7 @@
//Update their traitor status.
if(host.mind)
borers.add_antagonist_mind(host.mind, 1, borers.faction_role_text, borers.faction_welcome)
GLOB.borers.add_antagonist_mind(host.mind, 1, GLOB.borers.faction_role_text, GLOB.borers.faction_welcome)
/* This is likely not desired, and has some major issues with ghost behavior. Disabling for now
// No brain organ, so the borer moves in and replaces it permanently.
@@ -63,14 +63,14 @@
/mob/living/simple_mob/mechanical/viscerator/mercenary/IIsAlly(mob/living/L)
. = ..()
if(!. && isliving(L)) // Not friendly, see if they're a baddie first.
if(L.mind && mercs.is_antagonist(L.mind))
if(L.mind && GLOB.mercs.is_antagonist(L.mind))
return TRUE
// Similar to above but for raiders.
/mob/living/simple_mob/mechanical/viscerator/raider/IIsAlly(mob/living/L)
. = ..()
if(!. && isliving(L)) // Not friendly, see if they're a baddie first.
if(L.mind && raiders.is_antagonist(L.mind))
if(L.mind && GLOB.raiders.is_antagonist(L.mind))
return TRUE
// Variant that is neutral, and thus on the station's side. It checks records.
+14 -14
View File
@@ -1,4 +1,4 @@
var/list/command_cartridges = list(
GLOBAL_LIST_INIT(command_cartridges, list(
/obj/item/cartridge/captain,
/obj/item/cartridge/hop,
/obj/item/cartridge/hos,
@@ -7,42 +7,42 @@ var/list/command_cartridges = list(
/obj/item/cartridge/cmo,
/obj/item/cartridge/head,
/obj/item/cartridge/lawyer // Internal Affaris,
)
))
var/list/security_cartridges = list(
GLOBAL_LIST_INIT(security_cartridges, list(
/obj/item/cartridge/security,
/obj/item/cartridge/detective,
/obj/item/cartridge/hos
)
))
var/list/engineering_cartridges = list(
GLOBAL_LIST_INIT(engineering_cartridges, list(
/obj/item/cartridge/engineering,
/obj/item/cartridge/atmos,
/obj/item/cartridge/ce
)
))
var/list/medical_cartridges = list(
GLOBAL_LIST_INIT(medical_cartridges, list(
/obj/item/cartridge/medical,
/obj/item/cartridge/chemistry,
/obj/item/cartridge/cmo
)
))
var/list/research_cartridges = list(
GLOBAL_LIST_INIT(research_cartridges, list(
/obj/item/cartridge/signal/science,
/obj/item/cartridge/rd
)
))
var/list/cargo_cartridges = list(
GLOBAL_LIST_INIT(cargo_cartridges, list(
/obj/item/cartridge/quartermaster, // This also covers cargo-techs, apparently,
/obj/item/cartridge/miner,
/obj/item/cartridge/hop
)
))
var/list/civilian_cartridges = list(
GLOBAL_LIST_INIT(civilian_cartridges, list(
/obj/item/cartridge/janitor,
/obj/item/cartridge/service,
/obj/item/cartridge/hop
)
))
/obj/item/cartridge
name = "generic cartridge"
+7 -7
View File
@@ -175,43 +175,43 @@
. = ..()
owner = "Command Department"
name = "Command Department (Relay)"
cartridges_to_send_to = command_cartridges
cartridges_to_send_to = GLOB.command_cartridges
/obj/item/pda/multicaster/security/Initialize(mapload)
. = ..()
owner = "Security Department"
name = "Security Department (Relay)"
cartridges_to_send_to = security_cartridges
cartridges_to_send_to = GLOB.security_cartridges
/obj/item/pda/multicaster/engineering/Initialize(mapload)
. = ..()
owner = "Engineering Department"
name = "Engineering Department (Relay)"
cartridges_to_send_to = engineering_cartridges
cartridges_to_send_to = GLOB.engineering_cartridges
/obj/item/pda/multicaster/medical/Initialize(mapload)
. = ..()
owner = "Medical Department"
name = "Medical Department (Relay)"
cartridges_to_send_to = medical_cartridges
cartridges_to_send_to = GLOB.medical_cartridges
/obj/item/pda/multicaster/research/Initialize(mapload)
. = ..()
owner = "Research Department"
name = "Research Department (Relay)"
cartridges_to_send_to = research_cartridges
cartridges_to_send_to = GLOB.research_cartridges
/obj/item/pda/multicaster/cargo/Initialize(mapload)
. = ..()
owner = "Cargo Department"
name = "Cargo Department (Relay)"
cartridges_to_send_to = cargo_cartridges
cartridges_to_send_to = GLOB.cargo_cartridges
/obj/item/pda/multicaster/civilian/Initialize(mapload)
. = ..()
owner = "Civilian Services Department"
name = "Civilian Services Department (Relay)"
cartridges_to_send_to = civilian_cartridges
cartridges_to_send_to = GLOB.civilian_cartridges
/obj/item/pda/clown/Crossed(atom/movable/AM as mob|obj) //Clown PDA is slippery.
if(AM.is_incorporeal())
@@ -190,7 +190,7 @@
charge_meter = 0
/obj/item/gun/energy/staff/special_check(var/mob/user)
if((user.mind && !wizards.is_antagonist(user.mind)))
if((user.mind && !GLOB.wizards.is_antagonist(user.mind)))
to_chat(user, span_warning("You focus your mind on \the [src], but nothing happens!"))
return 0
+3 -3
View File
@@ -1,4 +1,4 @@
var/maze_cell_count = 0
GLOBAL_VAR_INIT(maze_cell_count, 0)
/datum/maze_cell
var/name
@@ -9,8 +9,8 @@ var/maze_cell_count = 0
var/oy
/datum/maze_cell/New(var/nx,var/ny,var/nox,var/noy)
maze_cell_count++
uid = maze_cell_count
GLOB.maze_cell_count++
uid = GLOB.maze_cell_count
name = "cell #[uid]"
x = nx
y = ny
@@ -339,7 +339,7 @@
qdel(src)
return
else if(D.has_tool_quality(TOOL_WIRECUTTER))
balloon_alert(user, "you cut a big hole in \the [src] with \the [D]. It's kinda useless now.")
to_chat(user, span_notice("You cut a big hole in \the [src] with \the [D]. It's kinda useless as a bucket now."))
user.put_in_hands(new /obj/item/clothing/head/helmet/bucket)
user.drop_from_inventory(src)
qdel(src)
@@ -349,16 +349,16 @@
if (M.use(1))
var/obj/item/secbot_assembly/edCLN_assembly/B = new /obj/item/secbot_assembly/edCLN_assembly
B.loc = get_turf(src)
balloon_alert(user, "armed the robot frame.")
to_chat(user, span_notice("You armed the robot frame."))
if (user.get_inactive_hand()==src)
user.remove_from_mob(src)
user.put_in_inactive_hand(B)
qdel(src)
else
balloon_alert(user, "one sheet of metal is needed to arm the robot frame.")
to_chat(user, span_warning("You need one sheet of metal to arm the robot frame."))
else if(istype(D, /obj/item/mop) || istype(D, /obj/item/soap) || istype(D, /obj/item/reagent_containers/glass/rag))
if(reagents.total_volume < 1)
balloon_alert(user, "\the [src] is empty!")
to_chat(user, span_warning("\The [src] is empty!"))
else
reagents.trans_to_obj(D, 5)
to_chat(user, span_notice("You wet \the [D] in \the [src]."))
@@ -8,11 +8,6 @@
#define KW_ERR 2 //Non-fatal error, keyword couldn't be handled properly. Ignore keyword but continue on.
#define KW_WARN 3 //Warning
/*
var/const/Class: n_Keyword
var/const/Represents a special statement in the code triggered by a keyword.
*/
/*
Var: inline
1 if the keyword is in an expression (e.g. the new keyword in many languages), 0 otherwise (such as the if and else keywords).
+1 -1
View File
@@ -16,7 +16,7 @@
. = ..(user)
if(.)
return TRUE
if((user.mind && !wizards.is_antagonist(user.mind)))
if((user.mind && !GLOB.wizards.is_antagonist(user.mind)))
to_chat(user, span_warning("You stare into the orb and see nothing but your own reflection."))
return
+1 -1
View File
@@ -22,7 +22,7 @@
return FALSE
if(!user)
return
if((user.mind && !wizards.is_antagonist(user.mind)))
if((user.mind && !GLOB.wizards.is_antagonist(user.mind)))
to_chat(user, span_warning("You stare at the book but cannot make sense of the markings!"))
return
@@ -551,7 +551,7 @@
changed_hook(APPEARANCECHANGER_CHANGED_RACE)
return TRUE
if("species_sound")
var/list/possible_species_sound_types = species_sound_map
var/list/possible_species_sound_types = GLOB.species_sound_map
var/choice = tgui_input_list(ui.user, "Which set of sounds would you like to use? (Cough, Sneeze, Scream, Pain, Gasp, Death)", "Species Sounds", possible_species_sound_types)
if(choice && can_change(owner, APPEARANCE_MISC))
owner.species.species_sounds = choice
+2 -2
View File
@@ -388,7 +388,7 @@
to_chat(user, span_notice("Cannot establish a bluespace connection."))
return
if(deathsquad.deployed)
if(GLOB.deathsquad.deployed)
to_chat(user, "[using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated.")
return
@@ -437,7 +437,7 @@
to_chat(user, "[using_map.boss_short] does not currently have a shuttle available in your sector. Please try again later.")
return
if(deathsquad.deployed == 1)
if(GLOB.deathsquad.deployed == 1)
to_chat(user, "[using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated.")
return
+1 -1
View File
@@ -9,4 +9,4 @@
* bunch of ChangeTurf() calls.
*/
var/list/turbolifts = list()
GLOBAL_LIST_EMPTY(turbolifts)
+2 -2
View File
@@ -15,12 +15,12 @@
var/list/areas_to_use = list()
/obj/turbolift_map_holder/Destroy()
turbolifts -= src
GLOB.turbolifts -= src
return ..()
/obj/turbolift_map_holder/Initialize(mapload)
..()
turbolifts += src
GLOB.turbolifts += src
return INITIALIZE_HINT_LATELOAD
/obj/turbolift_map_holder/LateInitialize()
+3 -3
View File
@@ -655,12 +655,12 @@
owner.handle_belly_update() // This is run whenever a belly's contents are changed.
var/obj/item/I = thing
if(I.gurgled)
I.cut_overlay(gurgled_overlays[I.gurgled_color]) //No double-overlay for worn items.
I.add_overlay(gurgled_overlays[I.gurgled_color])
I.cut_overlay(GLOB.gurgled_overlays[I.gurgled_color]) //No double-overlay for worn items.
I.add_overlay(GLOB.gurgled_overlays[I.gurgled_color])
if(I.d_mult < 1)
if(I.d_stage_overlay)
I.cut_overlay(I.d_stage_overlay)
var/image/temp = new /image(gurgled_overlays[I.gurgled_color ? I.gurgled_color : "green"])
var/image/temp = new /image(GLOB.gurgled_overlays[I.gurgled_color ? I.gurgled_color : "green"])
temp.filters += filter(type = "alpha", icon = icon(I.icon, I.icon_state))
I.d_stage_overlay = temp
for(var/count in I.d_mult to 1 step 0.25)
+3 -3
View File
@@ -1,4 +1,4 @@
var/list/gurgled_overlays = list(
GLOBAL_LIST_INIT(gurgled_overlays, list(
"green" = image('icons/effects/sludgeoverlay_vr.dmi', icon_state = "green"),
"white" = image('icons/effects/sludgeoverlay_vr.dmi', icon_state = "white"),
"black" = image('icons/effects/sludgeoverlay_vr.dmi', icon_state = "black"),
@@ -14,7 +14,7 @@ var/list/gurgled_overlays = list(
"cyan" = image('icons/effects/sludgeoverlay_vr.dmi', icon_state = "cyan"),
"beige" = image('icons/effects/sludgeoverlay_vr.dmi', icon_state = "beige"),
"pink" = image('icons/effects/sludgeoverlay_vr.dmi', icon_state = "pink")
)
))
/obj/item/proc/gurgle_contaminate(atom/movable/item_storage = null, contamination_flavor = "Generic", contamination_color = "green")
if(!can_gurgle())
@@ -27,7 +27,7 @@ var/list/gurgled_overlays = list(
gurgled = TRUE
gurgled_color = contamination_color
if(!isbelly(src.loc)) //Moved non-worn overlay stuff to belly_obj_vr.dm Exited proc. No need to add overlays to things that won't make it out.
add_overlay(gurgled_overlays[gurgled_color])
add_overlay(GLOB.gurgled_overlays[gurgled_color])
var/list/pickfrom = GLOB.contamination_flavors[contamination_flavor]
var/gurgleflavor = pick(pickfrom)
cleanname = src.name
+13 -13
View File
@@ -15,11 +15,6 @@
#define THERMITE_PATH /datum/reagent/thermite
#define TOXIN_PATH /datum/reagent/toxin
var/list/water_reagents = list(HYDROGEN_PATH, WATER_PATH)
var/list/acid_reagents = list(ACID_PATH, DIETHYLAMINE_PATH)
var/list/volatile_reagents = list(PHORON_PATH, HYDROPHORON_PATH, THERMITE_PATH)
var/list/toxic_reagents = list(TOXIN_PATH)
/atom/proc/is_anomalous()
return (GetComponent(/datum/component/artifact_master))
@@ -64,6 +59,11 @@ var/list/toxic_reagents = list(TOXIN_PATH)
var/artifact_id
var/static/list/water_reagents = list(HYDROGEN_PATH, WATER_PATH)
var/static/list/acid_reagents = list(ACID_PATH, DIETHYLAMINE_PATH)
var/static/list/volatile_reagents = list(PHORON_PATH, HYDROPHORON_PATH, THERMITE_PATH)
var/static/list/toxic_reagents = list(TOXIN_PATH)
/datum/component/artifact_master/New()
. = ..()
holder = parent
@@ -354,25 +354,25 @@ var/list/toxic_reagents = list(TOXIN_PATH)
if(my_effect.trigger == TRIGGER_WATER)
for(var/datum/reagent/R in W.reagents.reagent_list) //What chems are in the beaker?
var/T = R.type
if(is_path_in_list(T,water_reagents)) //Check the reagent and activate!
if(is_path_in_list(T, water_reagents)) //Check the reagent and activate!
my_effect.ToggleActivate()
else if(my_effect.trigger == TRIGGER_ACID)
for(var/datum/reagent/R in W.reagents.reagent_list)
var/T = R.type
if(is_path_in_list(T,acid_reagents))
if(is_path_in_list(T, acid_reagents))
my_effect.ToggleActivate()
else if(my_effect.trigger == TRIGGER_VOLATILE)
for(var/datum/reagent/R in W.reagents.reagent_list)
var/T = R.type
if(is_path_in_list(T,volatile_reagents))
if(is_path_in_list(T, volatile_reagents))
my_effect.ToggleActivate()
else if(my_effect.trigger == TRIGGER_TOXIN)
for(var/datum/reagent/R in W.reagents.reagent_list)
var/T = R.type
if(is_path_in_list(T,toxic_reagents))
if(is_path_in_list(T, toxic_reagents))
my_effect.ToggleActivate()
//If we weren't splashed, let's see if we were hit by a energy item and if we're energy activation.
else if(istype(W,/obj/item/melee/baton) && W:status ||\
@@ -404,16 +404,16 @@ var/list/toxic_reagents = list(TOXIN_PATH)
var/T = touching.type //What type of reagent is being splashed on it?
for(var/datum/artifact_effect/my_effect in my_effects)
if(is_path_in_list(T,water_reagents))
if(is_path_in_list(T, water_reagents))
if(my_effect.trigger == TRIGGER_WATER)
my_effect.ToggleActivate()
else if(is_path_in_list(T,acid_reagents))
else if(is_path_in_list(T, acid_reagents))
if(my_effect.trigger == TRIGGER_ACID)
my_effect.ToggleActivate()
else if(is_path_in_list(T,volatile_reagents))
else if(is_path_in_list(T, volatile_reagents))
if(my_effect.trigger == TRIGGER_VOLATILE)
my_effect.ToggleActivate()
else if(is_path_in_list(T,toxic_reagents))
else if(is_path_in_list(T, toxic_reagents))
if(my_effect.trigger == TRIGGER_TOXIN)
my_effect.ToggleActivate()
+7 -7
View File
@@ -7,24 +7,24 @@
if(!holder) return
if(!xenobio_controller || !xenobio_controller.gene_tag_masks)
if(!GLOB.xenobio_controller || !GLOB.xenobio_controller.gene_tag_masks)
to_chat(usr, "Gene masks not set.")
return
for(var/mask in xenobio_controller.gene_tag_masks)
to_chat(usr, "[mask]: [xenobio_controller.gene_tag_masks[mask]]")
for(var/mask in GLOB.xenobio_controller.gene_tag_masks)
to_chat(usr, "[mask]: [GLOB.xenobio_controller.gene_tag_masks[mask]]")
var/global/datum/controller/xenobio/xenobio_controller // Set in New().
GLOBAL_DATUM(xenobio_controller, /datum/controller/xenobio)
/datum/controller/xenobio
var/list/gene_tag_masks = list() // Gene obfuscation for delicious trial and error goodness.
/datum/controller/xenobio/New()
if(xenobio_controller && xenobio_controller != src)
if(GLOB.xenobio_controller && GLOB.xenobio_controller != src)
log_runtime("Rebuilding xenobio controller.")
qdel(xenobio_controller)
xenobio_controller = src
qdel(GLOB.xenobio_controller)
GLOB.xenobio_controller = src
setup()
@@ -152,8 +152,8 @@
var/list/data = list()
var/list/geneMasks[0]
for(var/gene_tag in xenobio_controller.gene_tag_masks)
geneMasks.Add(list(list("tag" = gene_tag, "mask" = xenobio_controller.gene_tag_masks[gene_tag])))
for(var/gene_tag in GLOB.xenobio_controller.gene_tag_masks)
geneMasks.Add(list(list("tag" = gene_tag, "mask" = GLOB.xenobio_controller.gene_tag_masks[gene_tag])))
data["geneMasks"] = geneMasks
data["activity"] = active
@@ -231,8 +231,8 @@
loaded_disk.genesource = "[genetics.source]"
loaded_disk.name += " ([xenobio_controller.gene_tag_masks[href_list["get_gene"]]], [genetics.source])"
loaded_disk.desc += " The label reads \'gene [xenobio_controller.gene_tag_masks[href_list["get_gene"]]], sampled from [genetics.source]\'."
loaded_disk.name += " ([GLOB.xenobio_controller.gene_tag_masks[href_list["get_gene"]]], [genetics.source])"
loaded_disk.desc += " The label reads \'gene [GLOB.xenobio_controller.gene_tag_masks[href_list["get_gene"]]], sampled from [genetics.source]\'."
eject_disk = 1
degradation += rand(20,60)
@@ -306,7 +306,7 @@
for(var/datum/xeno/genes/X in loaded_disk.genes)
if(data["locus"] != "") data["locus"] += ", "
data["locus"] += "[xenobio_controller.gene_tag_masks[X.genetype]]"
data["locus"] += "[GLOB.xenobio_controller.gene_tag_masks[X.genetype]]"
else
data["disk"] = 0
-1
View File
@@ -1052,7 +1052,6 @@
#include "code\game\antagonist\outsider\commando.dm"
#include "code\game\antagonist\outsider\deathsquad.dm"
#include "code\game\antagonist\outsider\ert.dm"
#include "code\game\antagonist\outsider\ert_vr.dm"
#include "code\game\antagonist\outsider\mercenary.dm"
#include "code\game\antagonist\outsider\ninja.dm"
#include "code\game\antagonist\outsider\raider.dm"