Waterpig grows more insane with modularity: The massive PR that probably breaks shit (#838)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

I have circuitry theory finals in 1 hour. And as such, to distract
myself from my impending doom and to stop thinking about loop currents,
I have decided to start working on this. (Update: I passed)

This isn't even close to how I wish our modularity to look

But that's future Waterpig's problem (Note to self: Fix the no_antag
button)

In another news, this probably breaks stuff.

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

<!-- Please make sure to actually test your PRs. If you have not tested
your PR mention it. -->

## Why It's Good For The Game

Modularity is good. The more stuff we can modularize the better, and
incase it gets removed upstream it's as simple as... removing our
modular override.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
refactor: Refactors modularity significantly
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

<!-- By opening a pull request. You have read and understood the
repository rules located on the main README.md on this project. -->

---------

Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
This commit is contained in:
Waterpig
2023-12-19 15:41:04 +01:00
committed by GitHub
parent a313ee9630
commit d96b2b97aa
87 changed files with 483 additions and 170 deletions
-3
View File
@@ -65,9 +65,6 @@
#define CIV_JOB_GROW 12
#define CIV_JOB_ATMOS 13
#define CIV_JOB_RANDOM 14
//BUBBER EDIT START
#define CIV_JOB_SMITH 21 //By making this higher we avoid having to maintain this value if more bounties are added upstream
//BUBBER EDIT END
//By how much should the station's inflation value be multiplied by when dividing the civilian bounty's reward?
#define BOUNTY_MULTIPLIER 10
-1
View File
@@ -28,7 +28,6 @@
#define FOOTSTEP_MOB_RUST "footstep_rust"
#define FOOTSTEP_OBJ_MACHINE "footstep_machine"
#define FOOTSTEP_OBJ_ROBOT "footstep_robot"
#define FOOTSTEP_MOB_SNAKE 9 // BUBBER EDIT
//priority defines for the footstep_override element
#define STEP_SOUND_NO_PRIORITY 0
-3
View File
@@ -61,7 +61,6 @@
#define JOB_SECURITY_OFFICER_SCIENCE "Security Officer (Science)"
#define JOB_SECURITY_OFFICER_SUPPLY "Security Officer (Cargo)"
#define JOB_CORRECTIONS_OFFICER "Corrections Officer" // SKYRAT EDIT ADDITION
#define JOB_SECURITY_MEDIC "Security Medic" //BUBBER EDIT ADDITION
//Engineering
#define JOB_STATION_ENGINEER "Station Engineer"
#define JOB_ATMOSPHERIC_TECHNICIAN "Atmospheric Technician"
@@ -97,7 +96,6 @@
#define JOB_PSYCHOLOGIST "Psychologist"
#define JOB_BARBER "Barber" // SKYRAT EDIT ADDITION
#define JOB_BOUNCER "Service Guard" // SKYRAT EDIT ADDITION
#define JOB_BLACKSMITH "Blacksmith" //Budder Edit.
//ERTs
#define JOB_ERT_DEATHSQUAD "Death Commando"
#define JOB_ERT_COMMANDER "Emergency Response Team Commander"
@@ -191,7 +189,6 @@
#define JOB_DISPLAY_ORDER_ENGINEER_GUARD 45 //SKYRAT EDIT ADDITION
#define JOB_DISPLAY_ORDER_CUSTOMS_AGENT 46 //SKYRAT EDIT ADDITION
#define JOB_DISPLAY_ORDER_EXP_CORPS 47 //SKYRAT EDIT ADDITON
#define JOB_DISPLAY_ORDER_BLACKSMITH 48 //BUBBER Edit.
#define DEPARTMENT_UNASSIGNED "No Department"
@@ -0,0 +1,2 @@
//Defines that set what kind of civilian bounties should be applied mid-round.
#define CIV_JOB_SMITH 21 //By making this higher we avoid having to maintain this value if more bounties are added upstream
@@ -0,0 +1,2 @@
//footstep mob defines
#define FOOTSTEP_MOB_SNAKE 9
+18
View File
@@ -1 +1,19 @@
#define RECORDS_TEXT_CHAR_REQUIREMENT 15
/**
* =======================
* WARNING WARNING WARNING
* WARNING WARNING WARNING
* WARNING WARNING WARNING
* =======================
* These names are used as keys in many locations in the database
* you cannot change them trivially without breaking job bans and
* role time tracking, if you do this and get it wrong you will die
* and it will hurt the entire time
*/
// Our exclusive jobs
#define JOB_SECURITY_MEDIC "Security Medic"
#define JOB_BLACKSMITH "Blacksmith"
#define JOB_DISPLAY_ORDER_BLACKSMITH 48
+1 -1
View File
@@ -18,7 +18,7 @@
/// A reference to the object in the slot. Grabs or items, generally, but any datum will do.
var/datum/weakref/master_ref = null
/// A reference to the owner HUD, if any.
var/datum/hud/hud = null // BUBBER EDIT - Unprivate this for hot editing.
var/datum/hud/hud = null // BUBBER EDIT - Originally private, adjusted for hot editing.
/**
* Map name assigned to this object.
* Automatically set by /client/proc/add_obj_to_map.
-1
View File
@@ -331,7 +331,6 @@ SUBSYSTEM_DEF(id_access)
desc_by_access["[ACCESS_CENT_BAR]"] = "Code Scotch"
desc_by_access["[ACCESS_BIT_DEN]"] = "Bitrunner Den"
desc_by_access["[ACCESS_BARBER]"] = "Barber" // SKYRAT EDIT ADD - BARBER UPDATE
desc_by_access["[ACCESS_BLACKSMITH]"] = "Blacksmith's Workshop" // BUBBER EDIT ADD - BLACKSMITH UPDATE
/**
* Returns the access bitflags associated with any given access level.
-3
View File
@@ -89,9 +89,6 @@ SUBSYSTEM_DEF(tts)
rustg_file_write(json_encode(available_speakers), "data/cached_tts_voices.json")
rustg_file_write("rustg HTTP requests can't write to folders that don't exist, so we need to make it exist.", "tmp/tts/init.txt")
return TRUE
/datum/controller/subsystem/tts/establish_connection_to_tts() // BUBBER EDIT BEGIN - CRASH BANDAID
message_admins("a naughty admin was prevented from hanging the server sending an external query.")
return // BUBBER EDIT END
/datum/controller/subsystem/tts/Initialize()
if(!CONFIG_GET(string/tts_http_url))
return SS_INIT_NO_NEED
+1 -1
View File
@@ -5,7 +5,7 @@
spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS
disease_flags = CHRONIC
infectable_biotypes = MOB_ORGANIC | MOB_MINERAL | MOB_ROBOTIC
process_dead = FALSE//Bubber edit, give them some mercy. (Don't ash the dead.)
process_dead = TRUE
stage_prob = 0.25
cure_text = "Sansufentanyl"
cures = list(/datum/reagent/medicine/sansufentanyl)
-5
View File
@@ -693,13 +693,10 @@
department_color = COLOR_MEDICAL_BLUE
subdepartment_color = COLOR_MEDICAL_BLUE
sechud_icon_state = SECHUD_MEDICAL_DOCTOR
//BUBBER EDIT START
extra_access = list(
ACCESS_PLUMBING,
ACCESS_VIROLOGY,
ACCESS_MORGUE_SECURE,
)
//BUBBER EDIT END
minimal_access = list(
ACCESS_MECH_MEDICAL,
ACCESS_MEDICAL,
@@ -855,8 +852,6 @@
ACCESS_COMMAND,
ACCESS_EVA,
ACCESS_BRIG_ENTRANCE,
ACCESS_WEAPONS, //BUBBER EDIT
ACCESS_BLACKSMITH, //BUBBER EDIT
)
extra_access = list(
ACCESS_TELEPORTER,
-2
View File
@@ -9,8 +9,6 @@
var/value = 0
/// Flags related to this quirk.
var/quirk_flags = QUIRK_HUMAN_ONLY
/// Flags related to species whitelists.
var/quirk_whitelist_flags //BUBBER EDIT - Species whitelists // Whitelist bitflags in code/__DEFINES/~~bubber_defines/quirk_whitelist.dm
/// Reference to the mob currently tied to this quirk datum. Quirks are not singletons.
var/mob/living/quirk_holder
/// Text displayed when this quirk is assigned to a mob (and not transferred)
+1 -1
View File
@@ -105,7 +105,7 @@
list(/obj/item/screwdriver/power,
/obj/item/ammo_casing/rocket,
/obj/item/clothing/mask/cigarette/pipe,
/obj/item/toy/crayon/spraycan, // BUBBER EDIT ADDITION
/obj/item/toy/crayon/spraycan, // BUBBER EDIT ADDITION // BUBBER TODO: See if this can be modularized
/obj/item/seeds, // BUBBER EDIT ADDITION
/obj/item/card, // BUBBER EDIT ADDITION
)
-17
View File
@@ -52,20 +52,3 @@ Unused icons for new areas are "awaycontent1" ~ "awaycontent30"
/area/awaymission/secret/powered/fullbright
static_lighting = FALSE
base_lighting_alpha = 255
//BUBBER EDIT BEGIN
/area/awaymission/secret/powered/construct
name = "construct"
ambience_index = null
ambient_buzz = null
/area/awaymission/secret/unpowered/construct
name = "construct unpowered"
ambient_buzz = null
/area/awaymission/secret/powered/construct/fullbright
static_lighting = FALSE
base_lighting_alpha = 255
/area/centcom/central_command_areas/briefing/construct
ambient_buzz = null
// BUBBER EDIT END
@@ -200,8 +200,8 @@
JOB_HEAD_OF_SECURITY,
JOB_PRISONER,
JOB_SECURITY_OFFICER,
JOB_CHAPLAIN, // BUBBER EDIT ADDITION
JOB_WARDEN,
JOB_CHAPLAIN, // BUBBER EDIT - Chaplains can't heretic
)
restricted_roles = list(
JOB_AI,
@@ -218,8 +218,8 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE)
JOB_HEAD_OF_SECURITY,
JOB_PRISONER,
JOB_SECURITY_OFFICER,
JOB_CHAPLAIN, // BUBBER EDIT ADDITION
JOB_WARDEN,
JOB_CHAPLAIN, // BUBBER EDIT - Chaplains can't heretic
)
restricted_roles = list(
JOB_AI,
+1 -1
View File
@@ -21,7 +21,7 @@
/// Our internal techweb for limbgrower designs.
var/datum/techweb/autounlocking/stored_research
/// All the categories of organs we can print.
var/list/categories = list(SPECIES_HUMAN, SPECIES_LIZARD, SPECIES_MOTH, SPECIES_PLASMAMAN, SPECIES_ETHEREAL, RND_CATEGORY_LIMBS_OTHER, RND_CATEGORY_LIMBS_DIGITIGRADE, SPECIES_HEMOPHAGE)//BUBBER EDIT-Adds Hemophage to the list.
var/list/categories = list(SPECIES_HUMAN, SPECIES_LIZARD, SPECIES_MOTH, SPECIES_PLASMAMAN, SPECIES_ETHEREAL, RND_CATEGORY_LIMBS_OTHER, RND_CATEGORY_LIMBS_DIGITIGRADE)
///Designs imported from technology disks that we can print.
var/list/imported_designs = list()
@@ -7,12 +7,9 @@
desc = "Automagically transforms into a random arcade machine. If you see this while in a shift, please create a bug report."
icon_state = "arcade"
loot = list(
//BUBBER EDIT START
/obj/machinery/computer/arcade/orion_trail = 33,
/obj/machinery/computer/arcade/battle = 33,
/obj/machinery/computer/arcade/minesweeper = 32,
/obj/machinery/computer/arcade/orion_trail = 49,
/obj/machinery/computer/arcade/battle = 49,
/obj/machinery/computer/arcade/amputation = 2,
//BUBBER EDIT END
)
/obj/effect/spawner/random/entertainment/musical_instrument
@@ -11,5 +11,3 @@
new /obj/item/cultivator(src)
new /obj/item/hatchet(src)
new /obj/item/secateurs(src)
for(var/i in 1 to 2)
new /obj/item/storage/box/disks_plantgene(src) // BUBBER EDIT ADDITION
@@ -243,9 +243,9 @@ new /datum/disease_ability/symptom/powerful/youth
/datum/disease_ability/action/infect
name = "Secrete Infection"
actions = list(/datum/action/cooldown/disease_infect)
cost = 0//Bubber edit, originally 2
required_total_points = 0//Bubber edit, orginally 3
start_with = TRUE//Bubber edit, orginally FALSE
cost = 2
required_total_points = 3
start_with = FALSE
short_desc = "Cause all objects your host is touching to become infectious for a limited time, spreading your infection to anyone who touches them."
long_desc = "Cause the host you are following to excrete an infective substance from their pores, causing all objects touching their skin to transmit your infection to anyone who touches them for the next 30 seconds. This includes the floor, if they are not wearing shoes, and any items they are holding, if they are not wearing gloves.<br>Cooldown: 40 seconds"
@@ -296,7 +296,7 @@ new /datum/disease_ability/symptom/powerful/youth
/datum/disease_ability/symptom/medium
cost = 4
required_total_points =6//Bubber edit, orginally 8
required_total_points = 8
category = "Symptom"
/datum/disease_ability/symptom/medium/heal
@@ -305,7 +305,7 @@ new /datum/disease_ability/symptom/powerful/youth
/datum/disease_ability/symptom/powerful
cost = 4
required_total_points = 10//Bubber edit, orginally 16
required_total_points = 16
category = "Symptom (Strong)"
/datum/disease_ability/symptom/powerful/heal
@@ -314,15 +314,6 @@ new /datum/disease_ability/symptom/powerful/youth
/******MILD******/
/datum/disease_ability/symptom/mild/hidden//BUBBER CHANGE
name = "Adaption"//Symptom to increase Sentient Virus base Stealth+Resistance
symptoms = list(/datum/symptom/hidden)
cost = 0//Cost is 0 because the virus will already have this by default.
required_total_points = 0//Available at start if refunded.
start_with = TRUE//Starts the virus with the symptom. For balancing reasons.
short_desc = "Hightens your stealth and resistance."
long_desc = "An adaptation that allows for greater stealth and resistance."
/datum/disease_ability/symptom/mild/cough
name = "Involuntary Coughing"
symptoms = list(/datum/symptom/cough)
+1
View File
@@ -689,6 +689,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
log_access("Failed Login: [key] - [address] - New account attempting to connect during panic bunker")
message_admins("<span class='adminnotice'>Failed Login: [key] - [address] - New account attempting to connect during panic bunker</span>")
//BUBBER EDIT ADDITION BEGIN - PANICBUNKER TEXT
//BUBBER TODO: Make the to_chat a config thing and present it to skyrat
var/forumurl = CONFIG_GET(string/forumurl)
to_chat_immediate(src, {"<span class='notice'>Hi! This server is whitelist-enabled. <br> <br> To join our community, check out our Discord! To gain full access to the game server, read the rules and open a ticket in the #get-whitelisted channel under the \"Whitelist\" category in the Discord server linked here: <a href=' [forumurl] '>[forumurl]</a></span>"})
//BUBBER EDIT ADDITION END - PANICBUNKER TEXT
+1 -1
View File
@@ -14,7 +14,7 @@
)
/datum/preference/choiced/parallax/create_default_value()
return PARALLAX_DISABLE // BUBBER EDIT - Aesthetic
return PARALLAX_HIGH
/datum/preference/choiced/parallax/apply_to_client(client/client, value)
client.mob?.hud_used?.update_parallax_pref(client?.mob)
@@ -5,7 +5,7 @@
savefile_identifier = PREFERENCE_PLAYER
/datum/preference/choiced/scaling_method/create_default_value()
return SCALING_METHOD_NORMAL // BUBBER EDIT - MAKE THE GAME LOOK GOOD BY DEFAULT
return SCALING_METHOD_DISTORT
/datum/preference/choiced/scaling_method/init_possible_values()
return list(SCALING_METHOD_DISTORT, SCALING_METHOD_BLUR, SCALING_METHOD_NORMAL)
+1 -1
View File
@@ -574,7 +574,7 @@
name = "blue surgery cap"
icon_state = "surgicalcap"
desc = "A blue medical surgery cap to prevent the surgeon's hair from entering the insides of the patient!"
//flags_inv = HIDEHAIR (Bubber Edit: Disabled for preview QOL)
//flags_inv = HIDEHAIR (Bubber Edit: Disabled for preview QOL) //BUBBER TODO: Modularise
/obj/item/clothing/head/utility/surgerycap/attack_self(mob/user)
. = ..()
+3 -3
View File
@@ -147,9 +147,9 @@
strip_delay = 80
/datum/armor/armor_hos
melee = 40 // BUBBER EDIT - OG: 30
bullet = 35 // BUBBER EDIT - OG: 30
laser = 40 // BUBBER EDIT - OG: 30
melee = 30
bullet = 30
laser = 30
energy = 40
bomb = 25
fire = 70
+4 -4
View File
@@ -1,10 +1,10 @@
/datum/round_event_control/carp_migration
name = "Carp Migration"
typepath = /datum/round_event/carp_migration
weight = 10
min_players = 30
earliest_start = 45 MINUTES
max_occurrences = 2 //BUBBER EDIT: FIXES THIS DAMN CARP EVENT.
weight = 15
min_players = 12
earliest_start = 10 MINUTES
max_occurrences = 6
category = EVENT_CATEGORY_ENTITIES
description = "Summons a school of space carp."
min_wizard_trigger_potency = 0
+1 -1
View File
@@ -49,7 +49,7 @@
belt = /obj/item/modular_computer/pda/heads/quartermaster
suit = /obj/item/clothing/suit/jacket/quartermaster
ears = /obj/item/radio/headset/heads/qm
glasses = /obj/item/clothing/glasses/hud/gun_permit/sunglasses //BUBBER EDIT: QM starts with permit glasses
glasses = /obj/item/clothing/glasses/sunglasses
shoes = /obj/item/clothing/shoes/laceup
l_hand = /obj/item/clipboard
-1
View File
@@ -12,7 +12,6 @@
minimal_player_age = 7
exp_requirements = 300
exp_required_type = EXP_TYPE_CREW
exp_required_type_department = EXP_TYPE_SECURITY //BUBBER EDIT: Sec should be played before Warden.
exp_granted_type = EXP_TYPE_CREW
config_tag = "WARDEN"
@@ -1,7 +1,7 @@
/datum/species/abductor
name = "Abductor"
id = SPECIES_ABDUCTOR
sexes = TRUE // Bubber edit
sexes = FALSE
inherent_traits = list(
TRAIT_NO_UNDERWEAR,
TRAIT_NOBREATH,
@@ -20,7 +20,7 @@
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
species_cookie = /obj/item/food/energybar
species_language_holder = /datum/language_holder/ethereal
sexes = TRUE //no fetish content allowed // BUBBER EDIT
sexes = FALSE //no fetish content allowed
// Body temperature for ethereals is much higher than humans as they like hotter environments
bodytemp_normal = (BODYTEMP_NORMAL + 50)
bodytemp_heat_damage_limit = FIRE_MINIMUM_TEMPERATURE_TO_SPREAD // about 150C
@@ -2,7 +2,7 @@
name = "\improper Plasmaman"
plural_form = "Plasmamen"
id = SPECIES_PLASMAMAN
sexes = TRUE // BUBBER EDIT
sexes = FALSE
meat = /obj/item/stack/sheet/mineral/plasma
// plasmemes get hard to wound since they only need a severe bone wound to dismember, but unlike skellies, they can't pop their bones back into place
inherent_traits = list(
@@ -153,7 +153,7 @@
icon_state = "kineticgun" // SKYRAT EDIT CHANGE
holds_charge = TRUE
unique_frequency = TRUE
max_mod_capacity = 100 // Bubber edit, Original: 80
max_mod_capacity = 80
/obj/item/gun/energy/recharge/kinetic_accelerator/minebot
trigger_guard = TRIGGER_GUARD_ALLOW_ALL
+2 -2
View File
@@ -144,7 +144,7 @@
speaker.forceMove(run_loc_floor_bottom_left)
listener.forceMove(locate((run_loc_floor_bottom_left.x + distance), run_loc_floor_bottom_left.y, run_loc_floor_bottom_left.z))
var/pangram_quote = "The quick brown fox jumps over the lazy dog." //Bubber Edit: adds a period to the end of the pangram quote.
var/pangram_quote = "The quick brown fox jumps over the lazy dog"
// speaking
speaker.say(pangram_quote)
@@ -182,7 +182,7 @@
listener_radio.set_frequency(FREQ_CENTCOM)
listener_radio.independent = TRUE
var/pangram_quote = "The quick brown fox jumps over the lazy dog." //Bubber Edit: adds a period to the end of the pangram quote.
var/pangram_quote = "The quick brown fox jumps over the lazy dog"
speaker.say(pangram_quote)
TEST_ASSERT(handle_speech_result, "Handle speech signal was not fired (radio test)")
+1 -1
View File
@@ -209,7 +209,7 @@
/obj/item/clothing/under/costume/swagoutfit = 1,
/obj/item/clothing/shoes/swagshoes = 1,
/obj/item/instrument/piano_synth/headphones/spacepods = 1,
/obj/item/clothing/head/helmet/toggleable/pinwheel = 1, //BUBBER EDIT: Pinwheel hat
/obj/item/clothing/head/helmet/toggleable/pinwheel = 1, //BUBBER EDIT: Pinwheel hat // BUBBER TODO: Modularize
)
refill_canister = /obj/item/vending_refill/clothing
default_price = PAYCHECK_CREW * 0.7 //Default of
@@ -55,29 +55,3 @@
value = -6
mob_trait = TRAIT_NOGUNS
icon = FA_ICON_GUN
//BUBBER EDIT MOVE BEGIN - NEGATIVE SENSITIVE SNOUT
/datum/quirk/sensitivesnout
name = "Sensitive Snout"
desc = "Your snout has always been sensitive, and it really hurts when someone pokes it!"
gain_text = span_notice("Your snout is awfully sensitive.")
lose_text = span_notice("Your snout feels numb.")
medical_record_text = "Patient's snout seems to have a cluster of nerves in the tip, would advise against direct contact."
value = -2
mob_trait = TRAIT_SENSITIVESNOUT
icon = FA_ICON_FINGERPRINT
/datum/quirk/sensitivesnout/post_add()
quirk_holder.apply_status_effect(/datum/status_effect/sensitivesnout)
/datum/quirk/sensitivesnout/remove()
quirk_holder.remove_status_effect(/datum/status_effect/sensitivesnout)
/datum/status_effect/sensitivesnout
id = "sensitivesnout"
duration = -1
alert_type = null
/datum/status_effect/sensitivesnout/get_examine_text()
return span_warning("[owner.p_Their()] snout is rather bappable...")
// BUBBER EDIT MOVE END
@@ -257,7 +257,6 @@ GLOBAL_VAR_INIT(DNR_trait_overlay, generate_DNR_trait_overlay())
new_tongue.copy_traits_from(human_holder.get_organ_slot(ORGAN_SLOT_TONGUE))
new_tongue.Insert(human_holder, special = TRUE, drop_if_replaced = FALSE)
/* BUBBER EDIT MOVE BRGIN - MOVED TO NEGATIVE.DM
/datum/quirk/sensitivesnout
name = "Sensitive Snout"
desc = "Your face has always been sensitive, and it really hurts when someone pokes it!"
@@ -267,7 +266,6 @@ GLOBAL_VAR_INIT(DNR_trait_overlay, generate_DNR_trait_overlay())
value = 0
mob_trait = TRAIT_SENSITIVESNOUT
icon = FA_ICON_FINGERPRINT
*/ // BUBBER EDIT MOVE END
/datum/quirk/overweight
name = "Overweight"
@@ -20,8 +20,7 @@
/datum/preference/toggle/master_erp_preferences/is_accessible(datum/preferences/preferences)
if (!..(preferences))
return FALSE
if(!SSplayer_ranks.is_vetted(preferences.parent, admin_bypass = FALSE)) // BUBBER EDIT
return FALSE // BUBBER EDIT
if(CONFIG_GET(flag/disable_erp_preferences))
return FALSE
@@ -41,8 +40,7 @@
/datum/preference/toggle/erp/is_accessible(datum/preferences/preferences)
if (!..(preferences))
return FALSE
if(!SSplayer_ranks.is_vetted(preferences.parent, admin_bypass = FALSE)) // BUBBER EDIT
return FALSE // BUBBER EDIT
if(CONFIG_GET(flag/disable_erp_preferences))
return FALSE
@@ -262,7 +262,7 @@ SUBSYSTEM_DEF(area_spawn)
/// See code/__DEFINES/~skyrat_defines/automapper.dm
var/mode = AREA_SPAWN_MODE_OPEN
/// Map blacklist, this is used to determine what maps we should not spawn on.
var/list/blacklisted_stations = list("Void Raptor", "Runtime Station", "MultiZ Debug", "Gateway Test", "Blueshift", "Lima Station", "Burgerstation") // BUBBER EDIT - Original: list("Void Raptor", "Runtime Station", "MultiZ Debug", "Gateway Test", "Blueshift")
var/list/blacklisted_stations = list("Void Raptor", "Runtime Station", "MultiZ Debug", "Gateway Test", "Blueshift")
/// If failing to find a suitable area is OK, then this should be TRUE or CI will fail.
/// Should probably be true if the target_areas are random, such as ruins.
var/optional = FALSE
@@ -319,7 +319,7 @@ SUBSYSTEM_DEF(area_spawn)
/// The atom type that we want to spawn
var/desired_atom
/// Map blacklist, this is used to determine what maps we should not spawn on.
var/list/blacklisted_stations = list("Void Raptor", "Runtime Station", "MultiZ Debug", "Gateway Test", "Lima Station", "Burgerstation") // BUBBER EDIT - Original: list("Void Raptor", "Runtime Station", "MultiZ Debug", "Gateway Test")
var/list/blacklisted_stations = list("Void Raptor", "Runtime Station", "MultiZ Debug", "Gateway Test")
/**
* Spawn the atoms.
@@ -1,12 +1,12 @@
/datum/job/blueshield
title = JOB_BLUESHIELD
description = "Protect the Heads of Staff and get your hands dirty so they can keep theirs clean." // BUBBER EDIT
description = "Protect heads of staff, get your fancy gun stolen, cry as the captain touches the supermatter."
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
department_head = list(JOB_NT_REP)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
supervisors = "All Command Staff and Central Command when applicable" // BUBBER EDIT
supervisors = "Central Command and the Nanotrasen Consultant"
minimal_player_age = 7
exp_requirements = 2400
exp_required_type = EXP_TYPE_CREW
@@ -95,7 +95,7 @@
name = "Cortical Borer Infestation"
typepath = /datum/round_event/ghost_role/cortical_borer
weight = 10
min_players = 20 // BUBBER EDIT
min_players = 999
max_occurrences = 1 //should only ever happen once
dynamic_should_hijack = TRUE
category = EVENT_CATEGORY_ENTITIES
@@ -274,10 +274,10 @@
icon_state = "fir36"
actions_types = list(/datum/action/item_action/adjust)
clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS //same flags as actual sec hailer gas mask
flags_inv = HIDESNOUT // | HIDEFACE // bubber edit, makes no sense to block the whole face if it's blocking only half of it, right?
flags_inv = HIDESNOUT // | HIDEFACE // bubber edit, makes no sense to block the whole face if it's blocking only half of it, right? // BUBBER TODO: Modularity
flags_cover = NONE
visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
visor_flags_inv = HIDESNOUT // | HIDEFACE // bubber edit
visor_flags_inv = HIDESNOUT // | HIDEFACE // bubber edit // BUBBER TODO: Modularity
w_class = WEIGHT_CLASS_SMALL
tint = 0
@@ -14,7 +14,6 @@
TRAIT_VIRUSIMMUNE,
TRAIT_LITERATE,
TRAIT_DRINKS_BLOOD,
TRAIT_MUTANT_COLORS, // BUBBER EDIT
)
inherent_biotypes = MOB_HUMANOID | MOB_ORGANIC
default_mutant_bodyparts = list(
@@ -155,7 +155,7 @@
/obj/item/food/vendor_tray_meal/side/moffin = 6,
/obj/item/food/vendor_tray_meal/side/cornbread = 6,
/obj/item/food/vendor_tray_meal/side/roasted_seeds = 6,
/obj/item/reagent_containers/condiment/moth_milk = 6, //BUBBER EDIT: ADDS MOTH MILK TO THE MOTH VENDOR.
/obj/item/reagent_containers/condiment/moth_milk = 6, //BUBBER EDIT: ADDS MOTH MILK TO THE MOTH VENDOR. //BUBBER TODO: Modularity
),
),
)
@@ -63,13 +63,13 @@
name = "Peacekeeper jacket"
item_path = /obj/item/clothing/suit/armor/vest/warden/rax
// ckeywhitelist = list("raxraus")
restricted_roles = list(JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT
restricted_roles = list(JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER)
/datum/loadout_item/under/jumpsuit/rax_banded_uniform
name = "Banded Uniform"
item_path = /obj/item/clothing/under/rank/security/rax
// ckeywhitelist = list("raxraus")
restricted_roles = list(JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT
restricted_roles = list(JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER)
/datum/loadout_item/head/goldengoggles
name = "Steampunk Goggles"
@@ -73,7 +73,7 @@ GLOBAL_LIST_INIT(loadout_accessory, generate_loadout_items(/datum/loadout_item/a
/datum/loadout_item/accessory/armband_security
name = "Security Armband"
item_path = /obj/item/clothing/accessory/armband/deputy/lopland
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_SECURITY_MEDIC, JOB_DETECTIVE) //BUBBER EDIT
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE)
/datum/loadout_item/accessory/armband_security_deputy
name = "Security Deputy Armband"
@@ -146,7 +146,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla
/datum/loadout_item/glasses/medicpatch
name = "Medical Eyepatch"
item_path = /obj/item/clothing/glasses/hud/eyepatch/med
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER)
/datum/loadout_item/glasses/robopatch
name = "Diagnostic Eyepatch"
@@ -181,7 +181,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla
/datum/loadout_item/glasses/medhud_glasses
name = "Prescription Medical HUD"
item_path = /obj/item/clothing/glasses/hud/health/prescription
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER)
/datum/loadout_item/glasses/diaghud_glasses
name = "Prescription Diagnostic HUD"
@@ -201,7 +201,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla
/datum/loadout_item/glasses/aviator_health
name = "Medical HUD Aviators"
item_path = /obj/item/clothing/glasses/hud/ar/aviator/health
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER)
/datum/loadout_item/glasses/aviator_meson
name = "Meson HUD Aviators"
@@ -227,7 +227,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla
/datum/loadout_item/glasses/prescription_aviator_health
name = "Prescription Medical HUD Aviators"
item_path = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER)
/datum/loadout_item/glasses/prescription_aviator_meson
name = "Prescription Meson HUD Aviators"
@@ -252,7 +252,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla
/datum/loadout_item/glasses/retinal_projector_health
name = "Retinal Projector Health HUD"
item_path = /obj/item/clothing/glasses/hud/ar/projector/health
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER)
/datum/loadout_item/glasses/retinal_projector_meson
name = "Retinal Projector Meson HUD"
@@ -449,17 +449,17 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea
/datum/loadout_item/head/trekcapmedisci
name = "MedSci Officer's Cap (Blue)"
item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/medsci
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, JOB_SECURITY_MEDIC, JOB_PARAMEDIC,JOB_CHEMIST, JOB_VIROLOGIST, JOB_PSYCHOLOGIST, JOB_GENETICIST, JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_ORDERLY, JOB_CORONER)
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC,JOB_CHEMIST, JOB_VIROLOGIST, JOB_PSYCHOLOGIST, JOB_GENETICIST, JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_ORDERLY, JOB_CORONER)
/datum/loadout_item/head/trekcapeng
name = "Eng Officer's Cap (Yellow)"
item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/eng
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_ENGINEERING_GUARD, JOB_CUSTOMS_AGENT) //BUBBER EDIT
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_ENGINEERING_GUARD, JOB_CUSTOMS_AGENT)
/datum/loadout_item/head/trekcapsec
name = "Officer's Cap (Red)"
item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/sec
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_CUSTOMS_AGENT) //BUBBER EDIT
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_CUSTOMS_AGENT)
/*
* JOB-LOCKED
@@ -489,22 +489,22 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea
/datum/loadout_item/head/cowboyhat_sec
name = "Cattleman Hat, Security"
item_path = /obj/item/clothing/head/cowboy/skyrat/cattleman/sec
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER)
/datum/loadout_item/head/cowboyhat_secwide
name = "Wide-Brimmed Cattleman Hat, Security"
item_path = /obj/item/clothing/head/cowboy/skyrat/cattleman/wide/sec
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER)
/datum/loadout_item/head/ushanka/sec
name = "Security Ushanka"
item_path = /obj/item/clothing/head/costume/ushanka/sec
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER)
/datum/loadout_item/head/blasthelmet
name = "General's Helmet"
item_path = /obj/item/clothing/head/hats/imperial/helmet
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_SECURITY_OFFICER, JOB_CORRECTIONS_OFFICER, JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER)//BUBBER EDIT
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_CORRECTIONS_OFFICER, JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER)
/datum/loadout_item/head/navybluehoscap
name = "Head of Security's Naval Cap"
@@ -514,7 +514,7 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea
/datum/loadout_item/head/navyblueofficerberet
name = "Security Officer's Navy Blue beret"
item_path = /obj/item/clothing/head/beret/sec/navyofficer
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_SECURITY_MEDIC, JOB_HEAD_OF_SECURITY, JOB_WARDEN) //BUBBER EDIT
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN)
/datum/loadout_item/head/navybluewardenberet
name = "Warden's Navy Blue beret"
@@ -588,7 +588,7 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea
/datum/loadout_item/head/beret_med
name = "Medical Beret"
item_path = /obj/item/clothing/head/beret/medical
restricted_roles = list(JOB_MEDICAL_DOCTOR,JOB_VIROLOGIST, JOB_CHEMIST, JOB_CHIEF_MEDICAL_OFFICER, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR,JOB_VIROLOGIST, JOB_CHEMIST, JOB_CHIEF_MEDICAL_OFFICER, JOB_ORDERLY, JOB_CORONER)
/datum/loadout_item/head/beret_paramedic
name = "Paramedic Beret"
@@ -279,7 +279,7 @@ GLOBAL_LIST_INIT(loadout_necks, generate_loadout_items(/datum/loadout_item/neck)
/datum/loadout_item/neck/stethoscope
name = "Stethoscope"
item_path = /obj/item/clothing/neck/stethoscope
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_SECURITY_MEDIC) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER)
/datum/loadout_item/neck/maid
name = "Maid Neck Cover"
@@ -589,7 +589,7 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
/datum/loadout_item/suit/navybluejacketofficer
name = "Security Officer's Navy Blue Formal Jacket"
item_path = /obj/item/clothing/suit/jacket/officer/blue
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_SECURITY_MEDIC, JOB_WARDEN) //BUBBER EDIT
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN)
/datum/loadout_item/suit/navybluejacketwarden
name = "Warden's Navy Blue Formal Jacket"
@@ -604,12 +604,12 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
/datum/loadout_item/suit/security_jacket
name = "Security Jacket"
item_path = /obj/item/clothing/suit/toggle/jacket/sec
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_DETECTIVE) //BUBBER EDIT
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE)
/datum/loadout_item/suit/brit
name = "High Vis Armored Vest"
item_path = /obj/item/clothing/suit/armor/vest/peacekeeper/brit
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER)
/datum/loadout_item/suit/british_jacket
name = "Peacekeeper Officer Coat"
@@ -654,7 +654,7 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
/datum/loadout_item/suit/labcoat_highvis
name = "High-Vis Labcoat"
item_path = /obj/item/clothing/suit/toggle/labcoat/skyrat/highvis
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_PARAMEDIC, JOB_ATMOSPHERIC_TECHNICIAN, JOB_SECURITY_MEDIC, JOB_DETECTIVE, JOB_CHEMIST, JOB_ORDERLY) //BUBBER EDIT
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_PARAMEDIC, JOB_ATMOSPHERIC_TECHNICIAN, JOB_DETECTIVE, JOB_CHEMIST, JOB_ORDERLY)
/*
* FAMILIES
@@ -117,12 +117,12 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
/datum/loadout_item/under/jumpsuit/security_trousers
name = "Security Trousers"
item_path = /obj/item/clothing/under/rank/security/peacekeeper/trousers
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_MEDIC) //BUBBER EDIT
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_MEDIC)
/datum/loadout_item/under/jumpsuit/security_peacekeeper
name = "Security Peacekeeper Uniform"
item_path = /obj/item/clothing/under/rank/security/peacekeeper
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_MEDIC) //BUBBER EDIT
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_MEDIC)
/datum/loadout_item/under/jumpsuit/imperial_police_uniform
name = "Imperial Police Uniform"
@@ -208,7 +208,7 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
/datum/loadout_item/under/jumpsuit/utility_med
name = "Medical Utility Uniform"
item_path = /obj/item/clothing/under/rank/medical/doctor/skyrat/utility
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHIEF_MEDICAL_OFFICER, JOB_PSYCHOLOGIST, JOB_ORDERLY) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_GENETICIST, JOB_CHIEF_MEDICAL_OFFICER, JOB_PSYCHOLOGIST, JOB_ORDERLY)
/datum/loadout_item/under/jumpsuit/utility_sci
name = "Science Utility Uniform"
@@ -223,7 +223,7 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
/datum/loadout_item/under/jumpsuit/utility_sec
name = "Security Utility Uniform"
item_path = /obj/item/clothing/under/rank/security/skyrat/utility
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_WARDEN, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER)
/datum/loadout_item/under/jumpsuit/utility_com
name = "Command Utility Uniform"
@@ -576,27 +576,27 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
/datum/loadout_item/under/miscellaneous/redscrubs
name = "Red Scrubs"
item_path = /obj/item/clothing/under/rank/medical/scrubs/skyrat/red
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
/datum/loadout_item/under/miscellaneous/bluescrubs
name = "Blue Scrubs"
item_path = /obj/item/clothing/under/rank/medical/scrubs/blue
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
/datum/loadout_item/under/miscellaneous/greenscrubs
name = "Green Scrubs"
item_path = /obj/item/clothing/under/rank/medical/scrubs/green
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
/datum/loadout_item/under/miscellaneous/purplescrubs
name = "Purple Scrubs"
item_path = /obj/item/clothing/under/rank/medical/scrubs/purple
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
/datum/loadout_item/under/miscellaneous/whitescrubs
name = "White Scrubs"
item_path = /obj/item/clothing/under/rank/medical/scrubs/skyrat/white
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
/datum/loadout_item/under/miscellaneous/gear_harness
name = "Gear Harness"
@@ -20,7 +20,7 @@ SUBSYSTEM_DEF(player_ranks)
var/datum/player_rank_controller/mentor/mentor_controller
/// The veteran player rank controller.
var/datum/player_rank_controller/veteran/veteran_controller
var/datum/player_rank_controller/vetted/vetted_controller // BUBBER EDIT ADDITION
var/datum/player_rank_controller/vetted/vetted_controller // BUBBER EDIT ADDITION // BUBBER TODO: See if we can somehow make this modular
/datum/controller/subsystem/player_ranks/Initialize()
if(IsAdminAdvancedProcCall())
@@ -29,7 +29,7 @@ SUBSYSTEM_DEF(player_ranks)
load_donators()
load_mentors()
load_veterans()
load_vetted_ckeys() // BUBBER EDIT ADDITION
load_vetted_ckeys() // BUBBER EDIT ADDITION // BUBBER TODO: Modularity
return SS_INIT_SUCCESS
@@ -39,7 +39,7 @@ SUBSYSTEM_DEF(player_ranks)
QDEL_NULL(donator_controller)
QDEL_NULL(mentor_controller)
QDEL_NULL(veteran_controller)
QDEL_NULL(vetted_controller) // BUBBER EDIT ADDITION
QDEL_NULL(vetted_controller) // BUBBER EDIT ADDITION // BUBBER TODO: Modularity
/**
* Returns whether or not the user is qualified as a donator.
+3 -4
View File
@@ -6,17 +6,16 @@
/datum/outfit/centcom/asset_protection
name = "Asset Protection"
uniform = /obj/item/clothing/under/syndicate/sniper //BUBBER EDIT: Original: /obj/item/clothing/under/rank/centcom/commander
back = /obj/item/mod/control/pre_equipped/asset_protection //BUBBER EDIT Original: /obj/item/mod/control/pre_equipped/apocryphal
uniform = /obj/item/clothing/under/syndicate/sniper
back = /obj/item/mod/control/pre_equipped/asset_protection
shoes = /obj/item/clothing/shoes/combat/swat
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
mask = /obj/item/clothing/mask/gas/sechailer/swat
glasses = /obj/item/clothing/glasses/hud/toggle/thermal
l_pocket = /obj/item/flashlight/seclite //BUBBER EDIT Original: /obj/item/flashlight/
l_pocket = /obj/item/flashlight/seclite
r_pocket = /obj/item/tank/internals/emergency_oxygen/double
belt = /obj/item/storage/belt/security/full
l_hand = /obj/item/gun/energy/pulse/pistol/m1911/loyalpin // if this is still bulky make it not bulky and storable on belt/back/bag/exosuit
//BUBBER EDIT: Original /obj/item/gun/energy/pulse/carbine/loyalpin
id = /obj/item/card/id/advanced/centcom/ert
ears = /obj/item/radio/headset/headset_cent/alt
@@ -1,4 +1,4 @@
/obj/item/gun/energy/plasmacutter/brg // Bubber Edit Plasma cutter for Mining cyborg, recharges on power.
/obj/item/gun/energy/plasmacutter/brg // Plasma cutter for Mining cyborg, recharges on power.
name = "advanced plasma cutter"
icon_state = "adv_plasmacutter"
inhand_icon_state = "adv_plasmacutter"
@@ -1,4 +1,4 @@
//Bubber Edit Addition: MICE WADDLE NOW.
//Addition: MICE WADDLE NOW.
/mob/living/basic/mouse/Initialize(mapload, tame = FALSE, new_body_color)
. = ..()
AddElement(/datum/element/waddling)
@@ -0,0 +1,3 @@
/datum/controller/subsystem/id_access/setup_access_descriptions()
. = ..()
desc_by_access["[ACCESS_BLACKSMITH]"] = "Blacksmith's Workshop"
@@ -0,0 +1,7 @@
// Note: This is terrible and permanently disables tts without fixing the underlying issue
// I'm only moving changes to modular en masse, not fixing the lines of shitcode, if you see this and have the 5 minutes:
// FIX THIS PLEASE
// Waterpig~
/datum/controller/subsystem/tts/establish_connection_to_tts()
message_admins("a naughty admin was prevented from hanging the server sending an external query.")
return
@@ -0,0 +1,2 @@
/datum/disease/chronic_illness
process_dead = FALSE
@@ -0,0 +1,2 @@
/datum/preference/choiced/scaling_method/create_default_value()
return SCALING_METHOD_NORMAL
@@ -0,0 +1,5 @@
/datum/round_event_control/carp_migration
weight = 10
min_players = 30
earliest_start = 45 MINUTES
max_occurrences = 2
@@ -0,0 +1,2 @@
/datum/species/abductor
sexes = TRUE
@@ -0,0 +1,2 @@
/datum/species/ethereal
sexes = TRUE
@@ -0,0 +1,2 @@
/datum/species/plasmaman
sexes = TRUE
@@ -0,0 +1,3 @@
/datum/job/blueshield
description = "Protect the Heads of Staff and get your hands dirty so they can keep theirs clean."
supervisors = "All Command Staff and Central Command when applicable"
@@ -0,0 +1,2 @@
/datum/round_event_control/cortical_borer
min_players = 20
@@ -0,0 +1,21 @@
// NEW SYMPTOM
/datum/disease_ability/symptom/mild/hidden
name = "Adaption" //Symptom to increase Sentient Virus base Stealth+Resistance
symptoms = list(/datum/symptom/hidden)
cost = 0 //Cost is 0 because the virus will already have this by default.
required_total_points = 0 //Available at start if refunded.
start_with = TRUE //Starts the virus with the symptom. For balancing reasons.
short_desc = "Hightens your stealth and resistance."
long_desc = "An adaptation that allows for greater stealth and resistance."
// Overrides
/datum/disease_ability/action/infect
cost = 0
required_total_points = 0
start_with = TRUE
/datum/disease_ability/symptom/medium
required_total_points = 6
/datum/disease_ability/symptom/powerful
required_total_points = 10
@@ -0,0 +1,7 @@
/obj/effect/spawner/random/entertainment/arcade/Initialize(mapload)
loot |= list(
/obj/machinery/computer/arcade/minesweeper = 49,
)
loot[/obj/machinery/computer/arcade/amputation] += 1 // Increase this each time you add a new arcade machine
. = ..()
@@ -5,4 +5,4 @@
blacklisted_stations = list("Runtime Station", "MultiZ Debug", "Gateway Test") //so it spawns on void, burger, etc
/datum/area_spawn/lustwish_prison
desired_atom = /obj/machinery/vending/dorms/prison //BUBBER EDIT: MAKES A PRISON LUSTWISH
desired_atom = /obj/machinery/vending/dorms/prison // PRISON LUSTWISH
@@ -0,0 +1,7 @@
/datum/area_spawn/New()
blacklisted_stations |= list("Lima Station", "Burgerstation")
. = ..()
/datum/area_spawn_over/New()
blacklisted_stations |= list("Lima Station", "Burgerstation")
. = ..()
@@ -96,3 +96,7 @@
log_silicon("[user] unloaded [extracted_item] onto [chute] ([AREACOORD(chute)]).")
in_use = FALSE
return
/obj/item/gun/energy/recharge/kinetic_accelerator/cyborg
max_mod_capacity = 100
@@ -0,0 +1,4 @@
/datum/armor/armor_hos
melee = 40
bullet = 35
laser = 40
@@ -0,0 +1,5 @@
/obj/machinery/limbgrower/Initialize(mapload)
categories += list(
SPECIES_HEMOPHAGE
)
. = ..()
@@ -0,0 +1,5 @@
/datum/species/hemophage/New()
inherent_traits |= list(
TRAIT_MUTANT_COLORS,
)
. = ..()
@@ -0,0 +1,4 @@
/obj/structure/closet/secure_closet/hydroponics/PopulateContents()
. = ..()
for(var/i in 1 to 2)
new /obj/item/storage/box/disks_plantgene(src)
@@ -0,0 +1,2 @@
/datum/outfit/job/quartermaster
glasses = /obj/item/clothing/glasses/hud/gun_permit/sunglasses
@@ -0,0 +1,6 @@
/datum/job/warden
// I've been told sec should be played before warden by the original comment when modularising
// Don't personally agree because warden is a good learning role with none of the combat robustness requirements
// Feel free to remove this if you ever decide so
// ~Waterpig
exp_required_type_department = EXP_TYPE_SECURITY
@@ -1,3 +1,16 @@
/datum/id_trim/job/medical_doctor/New()
. = ..()
extra_access += list(
ACCESS_MORGUE_SECURE,
)
/datum/id_trim/job/quartermaster/New()
. = ..()
minimal_access += list(
ACCESS_WEAPONS,
ACCESS_BLACKSMITH,
)
/datum/id_trim/job/blacksmith //Place Holder. You'll probably wanna come by and set these up correctly.
assignment = "Blacksmith"
trim_state = "trim_cargotechnician"
@@ -31,8 +44,23 @@
subdepartment_color = COLOR_ASSEMBLY_BLACK
sechud_icon_state = SECHUD_SECURITY_MEDIC
extra_access = list(ACCESS_DETECTIVE)
minimal_access = list(ACCESS_SECURITY, ACCESS_BRIG_ENTRANCE, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MECH_SECURITY, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS, ACCESS_MEDICAL, ACCESS_MORGUE)
template_access = list(ACCESS_CAPTAIN, ACCESS_HOS, ACCESS_CHANGE_IDS)
minimal_access = list(
ACCESS_SECURITY,
ACCESS_BRIG_ENTRANCE,
ACCESS_BRIG,
ACCESS_COURT,
ACCESS_WEAPONS,
ACCESS_MECH_SECURITY,
ACCESS_MINERAL_STOREROOM,
ACCESS_MAINT_TUNNELS,
ACCESS_MEDICAL,
ACCESS_MORGUE,
)
template_access = list(
ACCESS_CAPTAIN,
ACCESS_HOS,
ACCESS_CHANGE_IDS,
)
/datum/id_trim/job/security_medic/New()
. = ..()
@@ -0,0 +1,173 @@
/datum/loadout_item/accessory/armband_security/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/glasses/medicpatch/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/glasses/medhud_glasses/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/glasses/aviator_health/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/glasses/prescription_aviator_health/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/glasses/retinal_projector_health/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/head/trekcapsec/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/head/cowboyhat_sec/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/head/cowboyhat_secwide/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/head/ushanka/sec/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/head/blasthelmet/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/head/navyblueofficerberet/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/head/beret_med/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/neck/stethoscope/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/suit/navybluejacketofficer/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/suit/security_jacket/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/suit/brit/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/suit/labcoat_highvis/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/suit/rax_peacekeeper_jacket/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/jumpsuit/rax_banded_uniform/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/jumpsuit/security_trousers/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/jumpsuit/security_peacekeeper/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/jumpsuit/utility_med/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/jumpsuit/utility_sec/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/miscellaneous/redscrubs/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/miscellaneous/bluescrubs/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/miscellaneous/greenscrubs/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/miscellaneous/purplescrubs/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
/datum/loadout_item/under/miscellaneous/whitescrubs/New()
. = ..()
restricted_roles |= list(
JOB_SECURITY_MEDIC,
)
@@ -0,0 +1,15 @@
/area/awaymission/secret/powered/construct
name = "construct"
ambience_index = null
ambient_buzz = null
/area/awaymission/secret/unpowered/construct
name = "construct unpowered"
ambient_buzz = null
/area/awaymission/secret/powered/construct/fullbright
static_lighting = FALSE
base_lighting_alpha = 255
/area/centcom/central_command_areas/briefing/construct
ambient_buzz = null
@@ -0,0 +1,3 @@
/datum/quirk
/// Flags related to species whitelists.
var/quirk_whitelist_flags // Whitelist bitflags in code/__DEFINES/~~bubber_defines/quirk_whitelist.dm
@@ -0,0 +1,16 @@
/datum/quirk/sensitivesnout
value = -2
/datum/quirk/sensitivesnout/post_add()
quirk_holder.apply_status_effect(/datum/status_effect/sensitivesnout)
/datum/quirk/sensitivesnout/remove()
quirk_holder.remove_status_effect(/datum/status_effect/sensitivesnout)
/datum/status_effect/sensitivesnout
id = "sensitivesnout"
duration = -1
alert_type = null
/datum/status_effect/sensitivesnout/get_examine_text()
return span_warning("[owner.p_Their()] snout is rather bappable...")
@@ -0,0 +1,2 @@
/datum/preference/choiced/parallax/create_default_value()
return PARALLAX_DISABLE
@@ -0,0 +1,13 @@
/datum/preference/toggle/master_erp_preferences/is_accessible(datum/preferences/preferences)
. = ..()
if(.)
if(!SSplayer_ranks.is_vetted(preferences.parent, admin_bypass = FALSE))
return FALSE
return .
/datum/preference/toggle/erp/is_accessible(datum/preferences/preferences)
. = ..()
if(.)
if(!SSplayer_ranks.is_vetted(preferences.parent, admin_bypass = FALSE))
return FALSE
return .
+32 -5
View File
@@ -460,6 +460,8 @@
#include "code\__DEFINES\~skyrat_defines\_HELPERS\lighting.dm"
#include "code\__DEFINES\~skyrat_defines\_HELPERS\offset_index.dm"
#include "code\__DEFINES\~~bubber_defines\access.dm"
#include "code\__DEFINES\~~bubber_defines\economy.dm"
#include "code\__DEFINES\~~bubber_defines\footsteps.dm"
#include "code\__DEFINES\~~bubber_defines\jobs.dm"
#include "code\__DEFINES\~~bubber_defines\misc.dm"
#include "code\__DEFINES\~~bubber_defines\quirk_whitelist.dm"
@@ -7954,11 +7956,8 @@
#include "modular_zubbers\code\datums\components\crafting\utility.dm"
#include "modular_zubbers\code\datums\computer_datums\protolathe_modifications.dm"
#include "modular_zubbers\code\datums\diseases\advance\presets.dm"
#include "modular_zubbers\code\datums\id_trim\jobs.dm"
#include "modular_zubbers\code\datums\mood_events\food_events.dm"
#include "modular_zubbers\code\datums\mood_events\miasma_events.dm"
#include "modular_zubbers\code\datums\quirks\neutral_quirks\hungry.dm"
#include "modular_zubbers\code\datums\quirks\neutral_quirks\waddle.dm"
#include "modular_zubbers\code\datums\shuttle\arena.dm"
#include "modular_zubbers\code\datums\shuttles\emergency.dm"
#include "modular_zubbers\code\game\area\areas\burgerstation.dm"
@@ -8025,7 +8024,6 @@
#include "modular_zubbers\code\game\objects\structures\plaques\static_plaques.dm"
#include "modular_zubbers\code\game\traits\negative.dm"
#include "modular_zubbers\code\game\traits\neutral.dm"
#include "modular_zubbers\code\game\turf\space.dm"
#include "modular_zubbers\code\modules\_defines.dm"
#include "modular_zubbers\code\modules\admin\verbs\debug.dm"
#include "modular_zubbers\code\modules\alternative_job_titles\code\alt_job_titles.dm"
@@ -8200,17 +8198,31 @@
#include "modular_zubbers\maps\offstation\dauntless\mob_spawns.dm"
#include "modular_zubbers\maps\offstation\dauntless\robot.dm"
#include "modular_zubbers\maps\offstation\dauntless\security.dm"
#include "modular_zubbers\master_files\code\controllers\subsystem\id_access.dm"
#include "modular_zubbers\master_files\code\controllers\subsystem\tts.dm"
#include "modular_zubbers\master_files\code\datums\diseases\chronic_ilness.dm"
#include "modular_zubbers\master_files\code\modules\client\preferences\hypnopref.dm"
#include "modular_zubbers\master_files\code\modules\client\preferences\obscurity_examine.dm"
#include "modular_zubbers\master_files\code\modules\client\preferences\scaling_method.dm"
#include "modular_zubbers\master_files\code\modules\events\carp_migration.dm"
#include "modular_zubbers\master_files\code\modules\mob\living\carbon\human\species_types\abductors.dm"
#include "modular_zubbers\master_files\code\modules\mob\living\carbon\human\species_types\ethereal.dm"
#include "modular_zubbers\master_files\code\modules\mob\living\carbon\human\species_types\plasmamen.dm"
#include "modular_zubbers\master_files\code\modules\research\designs\biogenerator_designs.dm"
#include "modular_zubbers\master_files\code\modules\research\designs\weapon_designs.dm"
#include "modular_zubbers\master_files\skyrat\modules\blueshield\code\blueshield.dm"
#include "modular_zubbers\master_files\skyrat\modules\cortical_borer\code\cortical_borer_antag.dm"
#include "modular_zubbers\modules\antagonists\sentient_disease\code\disease_abilities.dm"
#include "modular_zubbers\modules\arcades\code\overrides\spawners.dm"
#include "modular_zubbers\modules\ashwalkers\code\effects\ash_rituals.dm"
#include "modular_zubbers\modules\automapper\code\area_spawn_entries.dm"
#include "modular_zubbers\modules\automapper\code\overrides\area_spawn_subsystem.dm"
#include "modular_zubbers\modules\borgs\code\robot_defines.dm"
#include "modular_zubbers\modules\borgs\code\robot_items.dm"
#include "modular_zubbers\modules\borgs\code\robot_model.dm"
#include "modular_zubbers\modules\borgs\code\robot_upgrade.dm"
#include "modular_zubbers\modules\clothing\head\helmet.dm"
#include "modular_zubbers\modules\clothing\armor_overrides\hos_armor.dm"
#include "modular_zubbers\modules\clothing\code\head\helmet.dm"
#include "modular_zubbers\modules\customization\modules\language\_language_holder.dm"
#include "modular_zubbers\modules\customization\modules\language\nekomimetic.dm"
#include "modular_zubbers\modules\customization\modules\language\piratespeak.dm"
@@ -8220,6 +8232,14 @@
#include "modular_zubbers\modules\customization\modules\mob\living\carbon\human\species\akula.dm"
#include "modular_zubbers\modules\emotes\code\emotes.dm"
#include "modular_zubbers\modules\gladiator\code\game\objects\items\gladiator_items.dm"
#include "modular_zubbers\modules\hemophages\code\limbgrower.dm"
#include "modular_zubbers\modules\hemophages\code\species.dm"
#include "modular_zubbers\modules\hydroponics\code\plantgenes\hydroponics.dm"
#include "modular_zubbers\modules\jobs\code\job_types\quartermaster.dm"
#include "modular_zubbers\modules\jobs\code\job_types\warden.dm"
#include "modular_zubbers\modules\jobs\code\trims\jobs.dm"
#include "modular_zubbers\modules\loadouts\overrides\loadout_items\loadout_datum.dm"
#include "modular_zubbers\modules\mapping\modules\ss13_construct\areas.dm"
#include "modular_zubbers\modules\modular_items\code\cake_light.dm"
#include "modular_zubbers\modules\modular_items\code\HoS_beacon.dm"
#include "modular_zubbers\modules\modular_items\code\idmaco_donator.dm"
@@ -8229,7 +8249,14 @@
#include "modular_zubbers\modules\modular_weapons\code\company_and_or_faction_based\carwo_defense_systems\ammo\pistol.dm"
#include "modular_zubbers\modules\modular_weapons\code\company_and_or_faction_based\carwo_defense_systems\ammo\rifle.dm"
#include "modular_zubbers\modules\modular_weapons\code\company_and_or_faction_based\trappiste_fabriek\ammo.dm"
#include "modular_zubbers\modules\quirks\code\_quirk.dm"
#include "modular_zubbers\modules\quirks\code\negative_quirks\sensitive_snout.dm"
#include "modular_zubbers\modules\quirks\code\neutral_quirks\hungry.dm"
#include "modular_zubbers\modules\quirks\code\neutral_quirks\waddle.dm"
#include "modular_zubbers\modules\space_background\parallax.dm"
#include "modular_zubbers\modules\space_background\turf_space.dm"
#include "modular_zubbers\modules\title_screen\code\title_screen_subsystem.dm"
#include "modular_zubbers\modules\vetted\examine.dm"
#include "modular_zubbers\modules\vetted\vetted.dm"
#include "modular_zubbers\modules\vetted\overrides\erp_preferences.dm"
// END_INCLUDE