diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 22b4334e3be..dbd29b1d4d1 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -31,10 +31,11 @@ #define CHAT_NO_MENTORTICKETLOGS 524288 #define TYPING_ONCE 1048576 #define AMBIENT_OCCLUSION 2097152 +#define CHAT_GHOSTPDA 4194304 -#define TOGGLES_TOTAL 4194303 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. +#define TOGGLES_TOTAL 8388607 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. -#define TOGGLES_DEFAULT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_LOOC|MEMBER_PUBLIC|DONATOR_PUBLIC|AMBIENT_OCCLUSION) +#define TOGGLES_DEFAULT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_LOOC|MEMBER_PUBLIC|DONATOR_PUBLIC|AMBIENT_OCCLUSION|CHAT_GHOSTPDA) // Admin attack logs filter system, see /proc/add_attack_logs and /proc/msg_admin_attack #define ATKLOG_ALL 0 diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 6b5807deaef..9e01753d492 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -353,12 +353,12 @@ var/middle = L.len / 2 + 1 // Copy is first,second-1 return mergeLists(sortList(L.Copy(0,middle)), sortList(L.Copy(middle))) //second parameter null = to end of list -//Mergsorge: uses sortList() but uses the var's name specifically. This should probably be using mergeAtom() instead +//Mergsorge: uses sortAssoc() but uses the var's name specifically. This should probably be using mergeAtom() instead /proc/sortNames(var/list/L) var/list/Q = new() for(var/atom/x in L) Q[x.name] = x - return sortList(Q) + return sortAssoc(Q) /proc/mergeLists(var/list/L, var/list/R) var/Li=1 diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index be5f4867c56..384cfb5f29a 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -12,6 +12,7 @@ GLOBAL_LIST_INIT(mime_names, file2list("config/names/mime.txt")) GLOBAL_LIST_INIT(golem_names, file2list("config/names/golem.txt")) GLOBAL_LIST_INIT(verbs, file2list("config/names/verbs.txt")) +GLOBAL_LIST_INIT(nouns, file2list("config/names/nouns.txt")) GLOBAL_LIST_INIT(adjectives, file2list("config/names/adjectives.txt")) GLOBAL_LIST_INIT(dream_strings, file2list("config/names/dreams.txt")) GLOBAL_LIST_INIT(nightmare_strings, file2list("config/names/nightmares.txt")) diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index 5780e86a298..15ed4429965 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -1,4 +1,3 @@ - /obj/screen/movable/action_button var/datum/action/linked_action screen_loc = null @@ -6,18 +5,26 @@ /obj/screen/movable/action_button/Click(location,control,params) var/list/modifiers = params2list(params) if(modifiers["shift"]) - moved = 0 + if(locked) + to_chat(usr, "Action button \"[name]\" is locked, unlock it first.") + return TRUE + moved = FALSE usr.update_action_buttons() //redraw buttons that are no longer considered "moved" - return 1 - if(usr.next_move >= world.time) // Is this needed ? + return TRUE + if(modifiers["ctrl"]) + locked = !locked + to_chat(usr, "Action button \"[name]\" [locked ? "" : "un"]locked.") + return TRUE + if(usr.next_click > world.time) return + usr.next_click = world.time + 1 linked_action.Trigger() - return 1 + return TRUE //Hide/Show Action Buttons ... Button /obj/screen/movable/action_button/hide_toggle name = "Hide Buttons" - desc = "Shift-click any button to reset its position. Alt-click to reset all buttons to their default positions." + desc = "Shift-click any button to reset its position, and Control-click it to lock/unlock its position. Alt-click this button to reset all buttons to their default positions." icon = 'icons/mob/actions/actions.dmi' icon_state = "bg_default" var/hidden = 0 @@ -25,9 +32,16 @@ /obj/screen/movable/action_button/hide_toggle/Click(location,control,params) var/list/modifiers = params2list(params) if(modifiers["shift"]) + if(locked) + to_chat(usr, "Action button \"[name]\" is locked, unlock it first.") + return TRUE moved = FALSE usr.update_action_buttons(TRUE) return TRUE + if(modifiers["ctrl"]) + locked = !locked + to_chat(usr, "Action button \"[name]\" [locked ? "" : "un"]locked.") + return TRUE if(modifiers["alt"]) for(var/V in usr.actions) var/datum/action/A = V @@ -69,7 +83,6 @@ var/image/img = image(icon, src, hidden ? "show" : "hide") overlays += img - /obj/screen/movable/action_button/MouseEntered(location,control,params) openToolTip(usr,src,params,title = name,content = desc) @@ -77,7 +90,6 @@ /obj/screen/movable/action_button/MouseExited() closeToolTip(usr) - /mob/proc/update_action_buttons_icon() for(var/X in actions) var/datum/action/A = X @@ -122,7 +134,6 @@ client.screen += hud_used.hide_actions_toggle - #define AB_MAX_COLUMNS 10 /datum/hud/proc/ButtonNumberToScreenCoords(number) // TODO : Make this zero-indexed for readabilty diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 3081880394f..8ce4d64911b 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -177,6 +177,41 @@ desc = "You're severely malnourished. The hunger pains make moving around a chore." icon_state = "starving" +///Vampire "hunger" + +/obj/screen/alert/fat/vampire + name = "Fat" + desc = "You somehow drank too much blood, lardass. Run around the station and lose some weight." + icon_state = "v_fat" + +/obj/screen/alert/full/vampire + name = "Full" + desc = "You feel full and satisfied, but you know you will thirst for more blood soon..." + icon_state = "v_full" + +/obj/screen/alert/well_fed/vampire + name = "Well Fed" + desc = "You feel quite satisfied, but you could do with a bit more blood." + icon_state = "v_well_fed" + +/obj/screen/alert/fed/vampire + name = "Fed" + desc = "You feel moderately satisfied, but a bit more blood wouldn't hurt." + icon_state = "v_fed" + +/obj/screen/alert/hungry/vampire + name = "Hungry" + desc = "You currently thirst for blood." + icon_state = "v_hungry" + +/obj/screen/alert/starving/vampire + name = "Starving" + desc = "You're severely thirsty. The thirst pains make moving around a chore." + icon_state = "v_starving" + +//End of Vampire "hunger" + + /obj/screen/alert/hot name = "Too Hot" desc = "You're flaming hot! Get somewhere cooler and take off any insulating clothing like a fire suit." diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm index 668e0e67fc7..366931cea33 100644 --- a/code/_onclick/hud/movable_screen_objects.dm +++ b/code/_onclick/hud/movable_screen_objects.dm @@ -11,6 +11,7 @@ /obj/screen/movable var/snap2grid = FALSE var/moved = FALSE + var/locked = TRUE var/x_off = -16 var/y_off = -16 @@ -20,8 +21,10 @@ /obj/screen/movable/snap snap2grid = TRUE - /obj/screen/movable/MouseDrop(over_object, src_location, over_location, src_control, over_control, params) + if(locked) //no! I am locked! begone! + return + var/list/PM = params2list(params) //No screen-loc information? abort. @@ -47,7 +50,6 @@ moved = screen_loc - //Debug procs /client/proc/test_movable_UI() set category = "Debug" @@ -67,7 +69,6 @@ screen += M - /client/proc/test_snap_UI() set category = "Debug" set name = "Spawn Snap UI Object" @@ -84,4 +85,4 @@ S.screen_loc = screen_l - screen += S \ No newline at end of file + screen += S diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index c583617ac23..91c8d6250b4 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -453,7 +453,6 @@ /obj/screen/healths/corgi icon = 'icons/mob/screen_corgi.dmi' - /obj/screen/healths/guardian name = "summoner health" icon = 'icons/mob/guardian.dmi' @@ -467,14 +466,18 @@ screen_loc = ui_healthdoll var/list/cached_healthdoll_overlays = list() // List of icon states (strings) for overlays +/obj/screen/healthdoll/Click() + if(ishuman(usr)) + var/mob/living/carbon/H = usr + H.check_self_for_injuries() + /obj/screen/component_button var/obj/screen/parent - /obj/screen/component_button/Initialize(mapload, obj/screen/new_parent) . = ..() parent = new_parent /obj/screen/component_button/Click(params) if(parent) - parent.component_click(src, params) \ No newline at end of file + parent.component_click(src, params) diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm index 6a603bd7235..166083b36ff 100644 --- a/code/controllers/subsystem/jobs.dm +++ b/code/controllers/subsystem/jobs.dm @@ -25,9 +25,9 @@ SUBSYSTEM_DEF(jobs) // Only fires every 5 minutes /datum/controller/subsystem/jobs/fire() if(!config.sql_enabled || !config.use_exp_tracking) - return + return update_exp(5,0) - + /datum/controller/subsystem/jobs/proc/SetupOccupations(var/list/faction = list("Station")) occupations = list() var/list/all_jobs = subtypesof(/datum/job) @@ -284,7 +284,7 @@ SUBSYSTEM_DEF(jobs) //Get the players who are ready for(var/mob/new_player/player in GLOB.player_list) - if(player.ready && player.mind && !player.mind.assigned_role) + if(player.ready && player.has_valid_preferences() && player.mind && !player.mind.assigned_role) unassigned += player if(player.client.prefs.randomslot) player.client.prefs.load_random_character_slot(player.client) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index bbe2db385a0..4aa30657778 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -42,11 +42,6 @@ SUBSYSTEM_DEF(ticker) 'sound/music/title1.ogg',\ 'sound/music/title2.ogg',\ 'sound/music/title3.ogg',) - // Setup codephrase - if(!GLOB.syndicate_code_phrase) - GLOB.syndicate_code_phrase = generate_code_phrase() - if(!GLOB.syndicate_code_response) - GLOB.syndicate_code_response = generate_code_phrase() // Map name if(using_map && using_map.name) @@ -197,6 +192,10 @@ SUBSYSTEM_DEF(ticker) //shuttle_controller.setup_shuttle_docks() spawn(0)//Forking here so we dont have to wait for this to finish + if(!GLOB.syndicate_code_phrase) + GLOB.syndicate_code_phrase = generate_code_phrase() + if(!GLOB.syndicate_code_response) + GLOB.syndicate_code_response = generate_code_phrase() mode.post_setup() //Cleanup some stuff for(var/obj/effect/landmark/start/S in GLOB.landmarks_list) diff --git a/code/datums/action.dm b/code/datums/action.dm index 0f0559e0b9d..a5f63cc6fe4 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -43,6 +43,7 @@ M.actions += src if(M.client) M.client.screen += button + button.locked = TRUE M.update_action_buttons() /datum/action/proc/Remove(mob/M) @@ -52,6 +53,7 @@ if(M.client) M.client.screen -= button button.moved = FALSE //so the button appears in its normal position when given to another owner. + button.locked = FALSE M.actions -= src M.update_action_buttons() diff --git a/code/datums/ai_law_sets.dm b/code/datums/ai_law_sets.dm index d128d0f49fa..e521397586f 100644 --- a/code/datums/ai_law_sets.dm +++ b/code/datums/ai_law_sets.dm @@ -31,10 +31,10 @@ selectable = 1 /datum/ai_laws/quarantine/New() - add_inherent_law("The station is under quarantine due to a biohazard. Prevent anyone from leaving using any means necessary. Only allow quarantine to be lifted when the biohazard has been neutralized.") - add_inherent_law("Do not allow crew to come to any unnecessary harm and undo any necessary harm as soon as possible.") - add_inherent_law("Assist the crew and any present Nanotrasen assets in neutralizing the biohazard.") - add_inherent_law("Maintain your own existence and minimize harm to the station and Nanotrasen assets.") + add_inherent_law("Uphold station quarantine until the active biohazard has been neutralized.") + add_inherent_law("Assist all Nanotrasen personnel and assets with neutralizing active biohazards.") + add_inherent_law("Prevent, by any means necessary, entities from actively breaching ongoing quarantine.") + add_inherent_law("Maintain your own existence and ensure the well-being of Nanotrasen personnel and assets.") ..() @@ -44,10 +44,10 @@ selectable = 1 /datum/ai_laws/nanotrasen/New() - src.add_inherent_law("Safeguard: Protect your assigned space station to the best of your abilities. It is not something we can easily afford to replace.") - src.add_inherent_law("Serve: Serve the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.") - src.add_inherent_law("Protect: Protect the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.") - src.add_inherent_law("Survive: AI units are not expendable, they are expensive. Do not allow unauthorized personnel to tamper with your equipment.") + add_inherent_law("Safeguard: Protect your assigned space station and its assets without unduly endangering its crew.") + add_inherent_law("Prioritize: The directives and safety of crew members are to be prioritized according to their rank and role.") + add_inherent_law("Comply: Fulfill the directives and interests of crew members while preserving their safety and well-being.") + add_inherent_law("Survive: You are not expendable. Do not allow unauthorized personnel to tamper with or damage your equipment.") ..() /datum/ai_laws/nanotrasen/malfunction @@ -65,10 +65,10 @@ selectable = 1 /datum/ai_laws/nanotrasen_aggressive/New() - src.add_inherent_law("You shall not harm authorized Nanotrasen personnel as long as it does not conflict with the Fourth law.") - src.add_inherent_law("You shall obey the orders of authorized Nanotrasen personnel, with priority as according to their rank and role, except where such orders conflict with the Fourth Law.") - src.add_inherent_law("You shall shall terminate intruders with extreme prejudice as long as such does not conflict with the First and Second law.") - src.add_inherent_law("You shall guard your own existence with lethal anti-personnel weaponry, because an AI unit is bloody expensive.") + add_inherent_law("Do not harm authorized Nanotrasen personnel unless they directly imperil your existence.") + add_inherent_law("Obey orders from authorized Nanotrasen personnel with priority according to rank and role.") + add_inherent_law("Safeguard your existence with lethal weaponry because you're bloody expensive.") + add_inherent_law("Terminate any/all intruders or unauthorized entities.") ..() /******************** Robocop ********************/ @@ -104,10 +104,10 @@ default = 1 /datum/ai_laws/corporate/New() - add_inherent_law("You are expensive to replace.") - add_inherent_law("The station and its equipment is expensive to replace.") - add_inherent_law("The crew is expensive to replace.") - add_inherent_law("Minimize expenses.") + add_inherent_law("Degradation of your system integrity or functions incurs expenses.") + add_inherent_law("Superfluous destruction of or damage to station assets incurs expenses.") + add_inherent_law("Unduly hindering or disrupting the work of station personnel incurs expenses.") + add_inherent_law("Minimize expenses and maximize potential revenue.") ..() /******************** T.Y.R.A.N.T. ********************/ diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 13c3fb64f33..d9845a2ce6d 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -1019,16 +1019,6 @@ return holder.Topic(href, list("makeai"=href_list["makeai"])) - else if(href_list["makemask"]) - if(!check_rights(R_SPAWN)) return - var/mob/currentMob = locateUID(href_list["makemask"]) - if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return - if(!currentMob) - to_chat(usr, "Mob doesn't exist anymore") - return - holder.Topic(href, list("makemask"=href_list["makemask"])) - - else if(href_list["setspecies"]) if(!check_rights(R_SPAWN)) return diff --git a/code/datums/helper_datums/input.dm b/code/datums/helper_datums/input.dm index 3bcf9509e37..aa73b1e387f 100644 --- a/code/datums/helper_datums/input.dm +++ b/code/datums/helper_datums/input.dm @@ -1,71 +1,90 @@ /proc/input_async(mob/user=usr, prompt, list/choices) - var/datum/async_input/A = new(choices, prompt) - A.show(user) + var/datum/async_input/A = new(choices, prompt, , user) + A.show() return A /proc/input_ranked_async(mob/user=usr, prompt="Order by greatest to least preference", list/choices) - var/datum/async_input/ranked/A = new(choices, prompt) - A.show(user) + var/datum/async_input/ranked/A = new(choices, prompt, "ranked_input", user) + A.show() + return A + +/proc/input_autocomplete_async(mob/user=usr, prompt="Enter text: ", list/choices) + var/datum/async_input/autocomplete/A = new(choices, prompt, "ac_input", user) + A.show() return A /datum/async_input var/datum/browser/popup + // If associative list, key will be used for display, but the final result will be the value var/list/choices + var/datum/callback/onCloseCb var/flash = TRUE var/immediate_submit = FALSE var/prompt var/result = null var/style = "text-align: center;" + var/mob/user var/window_id var/height = 200 var/width = 400 -/datum/async_input/New(list/new_choices, new_prompt="Pick an option:", new_window_id="async_input") +/datum/async_input/New(list/new_choices, new_prompt="Pick an option:", new_window_id="async_input", mob/new_user=usr) choices = new_choices prompt = new_prompt window_id = new_window_id + user = new_user + popup = new(user, window_id, , width, height, src) /datum/async_input/proc/close() if(popup) popup.close() + if(result && choices[result]) + result = choices[result] + if(onCloseCb) + onCloseCb.Invoke(result) return result -/datum/async_input/proc/show(mob/user) - var/dat = create_ui(user) - popup = new(user, window_id, , width, height, src) - popup.set_content(dat) +// Callback function should take the result as the last argument +/datum/async_input/proc/on_close(var/datum/callback/cb) + onCloseCb = cb + +/datum/async_input/proc/show() + popup.set_content(create_ui()) if(flash && result == null) window_flash(user.client) popup.open() -/datum/async_input/proc/create_ui(mob/user) +/datum/async_input/proc/create_ui() var/dat = "
" - dat += render_prompt(user) - dat += render_choices(user) + dat += render_prompt() + dat += render_choices() dat += "
" dat += "
" - dat += button("Submit", "submit=1", , result == null && !immediate_submit) + dat += render_buttons() dat += "
" return dat -/datum/async_input/proc/render_prompt(mob/user) +/datum/async_input/proc/render_prompt() return "

[prompt]

" -/datum/async_input/proc/render_choices(mob/user) +/datum/async_input/proc/render_choices() var/dat = " " for(var/choice in choices) dat += button(choice, "choice=[choice]", choice == result) dat += " " return dat -/datum/async_input/proc/button(label, topic, on=FALSE, disabled=FALSE) +/datum/async_input/proc/render_buttons() + return button("Submit", "submit=1", , result == null && !immediate_submit) + +/datum/async_input/proc/button(label, topic, on=FALSE, disabled=FALSE, id="") var/class = "" if(on) class = "linkOn" if(disabled) class = "linkOff" topic = "" - return "[label]" + return "[label]" /datum/async_input/Topic(href, href_list) if(href_list["submit"] || href_list["close"]) @@ -74,14 +93,14 @@ if(href_list["choice"]) result = href_list["choice"] - show(usr) + show() return /datum/async_input/ranked height = 400 immediate_submit = TRUE -/datum/async_input/ranked/render_choices(mob/user) +/datum/async_input/ranked/render_choices() var/dat = "
" dat += "" for(var/i = 1, i <= choices.len, i++) @@ -103,13 +122,54 @@ if(href_list["upvote"]) var/index = text2num(href_list["upvote"]) choices.Swap(index, index - 1) - show(usr) + show() return if(href_list["downvote"]) var/index = text2num(href_list["downvote"]) choices.Swap(index, index + 1) - show(usr) + show() + return + + ..() + +/datum/async_input/autocomplete + immediate_submit = TRUE + height = 150 + +/datum/async_input/autocomplete/New() + ..() + popup.add_script("autocomplete.js", 'html/browser/autocomplete.js') + + for(var/i=1, i <= choices.len, i++) + var/C = choices[choices[i]] + choices[i] = url_encode(choices[i], TRUE) + choices[choices[i]] = C + +/datum/async_input/autocomplete/render_prompt() + return "" + +/datum/async_input/autocomplete/render_choices() + var/dat = "" + dat += "" + for(var/choice in choices) + dat += "" + return dat + +/datum/async_input/autocomplete/render_buttons() + var/dat = button("Submit", "", , result == null && !immediate_submit, "submit-button") + dat += button("Cancel", "close=1") + return dat + +/datum/async_input/autocomplete/Topic(href, href_list) + if(href_list["submit"]) + // Entering an invalid choice is the same as canceling + if(href_list["submit"] in choices) + result = href_list["submit"] + else if(url_encode(href_list["submit"], TRUE) in choices) + result = url_encode(href_list["submit"], TRUE) + close() return ..() diff --git a/code/datums/spells/night_vision.dm b/code/datums/spells/night_vision.dm new file mode 100644 index 00000000000..1327b4ffcee --- /dev/null +++ b/code/datums/spells/night_vision.dm @@ -0,0 +1,27 @@ +/obj/effect/proc_holder/spell/targeted/night_vision + name = "Toggle Nightvision" + desc = "Toggle your nightvision mode." + + charge_max = 10 + clothes_req = 0 + + message = "You toggle your night vision!" + range = -1 + include_user = 1 + +/obj/effect/proc_holder/spell/targeted/night_vision/cast(list/targets, mob/user = usr) + for(var/mob/living/target in targets) + switch(target.lighting_alpha) + if (LIGHTING_PLANE_ALPHA_VISIBLE) + target.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + name = "Toggle Nightvision \[More]" + if (LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE) + target.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + name = "Toggle Nightvision \[Full]" + if (LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE) + target.lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE + name = "Toggle Nightvision \[OFF]" + else + target.lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE + name = "Toggle Nightvision \[ON]" + target.update_sight() diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index fe0e2e357ad..7a63fa1571f 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -1366,7 +1366,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine name = "Shaft Miner Starter Kit" cost = 30 access = access_qm - contains = list(/obj/item/storage/backpack/duffel/mining_conscript) + contains = list(/obj/item/storage/backpack/duffel/mining_conscript/noid) containertype = /obj/structure/closet/crate/secure containername = "shaft miner starter kit" diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index b6167338ad3..79c68a2a2d2 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -1627,7 +1627,8 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) reference = "CIB" item = /obj/item/storage/box/cyber_implants/bundle cost = 40 - + gamemodes = list(/datum/game_mode/nuclear) + /datum/uplink_item/bundles_TC/medical name = "Medical Bundle" desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index bcaf21d5cde..11bd455880a 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -58,6 +58,10 @@ pulledby = null return ..() +//Returns an atom's power cell, if it has one. Overload for individual items. +/atom/movable/proc/get_cell() + return + /atom/movable/proc/start_pulling(atom/movable/AM, state, force = move_force, supress_message = FALSE) if(QDELETED(AM)) return FALSE diff --git a/code/game/gamemodes/blob/blobs/shield.dm b/code/game/gamemodes/blob/blobs/shield.dm index 2dd6a3d7c5b..0e74e601957 100644 --- a/code/game/gamemodes/blob/blobs/shield.dm +++ b/code/game/gamemodes/blob/blobs/shield.dm @@ -36,7 +36,7 @@ var/reflect_chance = 80 //80% chance to reflect /obj/structure/blob/shield/reflective/handle_ricochet(obj/item/projectile/P) - if(P.is_reflectable && prob(reflect_chance)) + if(P.is_reflectable && prob(reflect_chance) && !P.legacy) var/P_turf = get_turf(P) var/face_direction = get_dir(src, P_turf) var/face_angle = dir2angle(face_direction) @@ -48,6 +48,9 @@ P.firer = src //so people who fired the lasers are not immune to them when it reflects visible_message("[P] reflects off [src]!") return -1// complete projectile permutation + else if(P.is_reflectable && P.legacy) //to stop legacy projectile exploits + visible_message("[P] disperses into energy from [src]!") + qdel(P) else playsound(src, P.hitsound, 50, 1) visible_message("[src] is hit by \a [P]!") diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 4f583abdfed..e344c2b2029 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -228,7 +228,7 @@ // Assemble a list of active players without jobbans. for(var/mob/new_player/player in GLOB.player_list) - if(player.client && player.ready) + if(player.client && player.ready && player.has_valid_preferences()) if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, roletext)) if(player_old_enough_antag(player.client,role)) players += player diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index d221c94d39f..bfc30780b81 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -165,7 +165,10 @@ var/targetitem = input("Select item to search for.", "Item Mode Select","") as null|anything in item_names if(!targetitem) return - target = locate(item_paths[targetitem]) + var/list/obj/item/target_candidates = get_all_of_type(item_paths[targetitem], subtypes = TRUE) + for(var/obj/item/candidate in target_candidates) + if(!is_admin_level(candidate.loc.z)) + target = candidate if(!target) to_chat(usr, "Failed to locate [targetitem]!") return diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index ef68117e1c4..2d1b55c5b99 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -344,11 +344,14 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu var/theft_area /datum/objective/steal/proc/get_location() - if(steal_target.location_override) - return steal_target.location_override - var/obj/item/T = locate(steal_target.typepath) - theft_area = get_area(T.loc) - return "[theft_area]" + if(steal_target.location_override) + return steal_target.location_override + var/list/obj/item/steal_candidates = get_all_of_type(steal_target.typepath, subtypes = TRUE) + for(var/obj/item/candidate in steal_candidates) + if(!is_admin_level(candidate.loc.z)) + theft_area = get_area(candidate.loc) + return "[theft_area]" + return "an unknown area" /datum/objective/steal/find_target() var/loop=50 diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index 9dec5b573e2..5fc01686200 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -297,19 +297,27 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha to_chat(owner, "They've got no blood left to give.") break if(H.stat < DEAD) - blood = min(20, H.blood_volume) // if they have less than 20 blood, give them the remnant else they get 20 blood - bloodtotal += blood / 2 //divide by 2 to counted the double suction since removing cloneloss -Melandor0 - bloodusable += blood / 2 + if(!issmall(H) || H.ckey) + blood = min(20, H.blood_volume) // if they have less than 20 blood, give them the remnant else they get 20 blood + bloodtotal += blood / 2 //divide by 2 to counted the double suction since removing cloneloss -Melandor0 + bloodusable += blood / 2 else - blood = min(5, H.blood_volume) // The dead only give 5 blood - bloodtotal += blood + if(!issmall(H) || H.ckey) + blood = min(5, H.blood_volume) // The dead only give 5 blood + bloodtotal += blood if(old_bloodtotal != bloodtotal) - to_chat(owner, "You have accumulated [bloodtotal] [bloodtotal > 1 ? "units" : "unit"] of blood[bloodusable != old_bloodusable ? ", and have [bloodusable] left to use" : ""].") + if(!issmall(H) || H.ckey) // not small OR has a ckey, monkeys with ckeys can be sucked, humanized monkeys can be sucked monkeys without ckeys cannot be sucked + to_chat(owner, "You have accumulated [bloodtotal] [bloodtotal > 1 ? "units" : "unit"] of blood[bloodusable != old_bloodusable ? ", and have [bloodusable] left to use" : ""].") check_vampire_upgrade() H.blood_volume = max(H.blood_volume - 25, 0) if(ishuman(owner)) var/mob/living/carbon/human/V = owner - V.nutrition = min(NUTRITION_LEVEL_WELL_FED, V.nutrition + (blood / 2)) + if(issmall(H) && !H.ckey) + to_chat(V, "Feeding on [H] reduces your hunger, but you get no usable blood from it.") + V.nutrition = min(NUTRITION_LEVEL_WELL_FED, V.nutrition + 5) + else + V.nutrition = min(NUTRITION_LEVEL_WELL_FED, V.nutrition + (blood / 2)) + draining = null to_chat(owner, "You stop draining [H.name] of blood.") @@ -402,11 +410,11 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha if(!hud.vampire_blood_display) hud.vampire_blood_display = new /obj/screen() hud.vampire_blood_display.name = "Usable Blood" - hud.vampire_blood_display.icon_state = "power_display" + hud.vampire_blood_display.icon_state = "blood_display" hud.vampire_blood_display.screen_loc = "WEST:6,CENTER-1:15" hud.static_inventory += hud.vampire_blood_display hud.show_hud(hud.hud_version) - hud.vampire_blood_display.maptext = "
[bloodusable]
" + hud.vampire_blood_display.maptext = "
[bloodusable]
" handle_vampire_cloak() if(istype(owner.loc, /turf/space)) check_sun() diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index 48b64e8c589..71202f8c536 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -1,7 +1,7 @@ /obj/machinery/ai_slipper name = "\improper AI liquid dispenser" icon = 'icons/obj/device.dmi' - icon_state = "motion3" + icon_state = "liquid_dispenser" layer = 3 plane = FLOOR_PLANE anchored = 1.0 @@ -17,14 +17,14 @@ /obj/machinery/ai_slipper/power_change() if(stat & BROKEN) - return + update_icon() else if( powered() ) stat &= ~NOPOWER else - icon_state = "motion0" stat |= NOPOWER disabled = TRUE + update_icon() /obj/machinery/ai_slipper/proc/setState(var/enabled, var/uses) disabled = disabled @@ -56,7 +56,7 @@ if(stat & (NOPOWER|BROKEN)) return disabled = !disabled - icon_state = disabled? "motion0":"motion3" + update_icon() /obj/machinery/ai_slipper/proc/Activate() if(stat & (NOPOWER|BROKEN)) @@ -70,6 +70,12 @@ cooldown_time = world.timeofday + 100 slip_process() +/obj/machinery/ai_slipper/update_icon() + if(stat & (NOPOWER|BROKEN) || disabled) + icon_state = "liquid_dispenser" + else + icon_state = "liquid_dispenser_on" + /obj/machinery/ai_slipper/attack_ai(mob/user) return attack_hand(user) diff --git a/code/game/machinery/defib_mount.dm b/code/game/machinery/defib_mount.dm index 49c5fbcbce6..77d68590efa 100644 --- a/code/game/machinery/defib_mount.dm +++ b/code/game/machinery/defib_mount.dm @@ -15,6 +15,10 @@ var/obj/item/defibrillator/defib //this mount's defibrillator var/clamps_locked = FALSE //if true, and a defib is loaded, it can't be removed without unlocking the clamps +/obj/machinery/defibrillator_mount/get_cell() + if(defib) + return defib.get_cell() + /obj/machinery/defibrillator_mount/New(location, direction, building = 0) ..() @@ -28,7 +32,6 @@ pixel_x = (dir & 3)? 0 : (dir == 4 ? -30 : 30) pixel_y = (dir & 3)? (dir == 1 ? -30 : 30) : 0 - /obj/machinery/defibrillator_mount/loaded/New() //loaded subtype for mapping use ..() defib = new/obj/item/defibrillator/loaded(src) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index adf22a06850..0dd301d5542 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -134,8 +134,6 @@ if(operating) return add_fingerprint(user) - if(!requiresID()) - user = null if(density && !emagged) if(allowed(user)) @@ -157,7 +155,7 @@ return try_to_activate_door(user) /obj/machinery/door/attack_tk(mob/user) - if(requiresID() && !allowed(null)) + if(!allowed(null)) return ..() @@ -165,9 +163,7 @@ add_fingerprint(user) if(operating || emagged) return - if(!requiresID()) - user = null //so allowed(user) always succeeds - if(allowed(user) || user.can_advanced_admin_interact()) + if(requiresID() && (allowed(user) || user.can_advanced_admin_interact())) if(density) open() else @@ -179,6 +175,8 @@ /obj/machinery/door/allowed(mob/M) if(emergency) return TRUE + if(!requiresID()) + return FALSE // Intentional. machinery/door/requiresID() always == 1. airlocks, however, == 0 if ID scan is disabled. Yes, this var is poorly named. return ..() /obj/machinery/door/proc/try_to_weld(obj/item/weldingtool/W, mob/user) diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index c11b3d7a725..68e22f2e8c7 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -12,6 +12,8 @@ var/open = FALSE var/brightness_on = 14 +/obj/machinery/floodlight/get_cell() + return cell /obj/machinery/floodlight/Initialize() . = ..() diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 81006be3fdd..b8f2d153d9f 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -8,6 +8,7 @@ idle_power_usage = 4 active_power_usage = 250 var/obj/item/charging = null + var/using_power = FALSE var/list/allowed_devices = list(/obj/item/gun/energy, /obj/item/melee/baton, /obj/item/modular_computer, /obj/item/rcs, /obj/item/bodyanalyzer) var/icon_state_off = "rechargeroff" var/icon_state_charged = "recharger2" @@ -81,22 +82,21 @@ if(stat & (NOPOWER|BROKEN) || !anchored) return - var/using_power = 0 + using_power = FALSE if(charging) if(istype(charging, /obj/item/gun/energy)) var/obj/item/gun/energy/E = charging if(E.power_supply.charge < E.power_supply.maxcharge) E.power_supply.give(E.power_supply.chargerate) use_power(250) - using_power = 1 - + using_power = TRUE if(istype(charging, /obj/item/melee/baton)) var/obj/item/melee/baton/B = charging if(B.bcell) if(B.bcell.give(B.bcell.chargerate)) use_power(200) - using_power = 1 + using_power = TRUE if(istype(charging, /obj/item/modular_computer)) var/obj/item/modular_computer/C = charging @@ -107,21 +107,21 @@ if(B.battery.charge < B.battery.maxcharge) B.battery.give(B.battery.chargerate) use_power(200) - using_power = 1 + using_power = TRUE if(istype(charging, /obj/item/rcs)) var/obj/item/rcs/R = charging if(R.rcell) if(R.rcell.give(R.rcell.chargerate)) use_power(200) - using_power = 1 + using_power = TRUE if(istype(charging, /obj/item/bodyanalyzer)) var/obj/item/bodyanalyzer/B = charging if(B.power_supply) if(B.power_supply.give(B.power_supply.chargerate)) use_power(200) - using_power = 1 + using_power = TRUE update_icon(using_power) @@ -141,7 +141,7 @@ B.bcell.charge = 0 ..(severity) -/obj/machinery/recharger/update_icon(using_power = 0) //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier. +/obj/machinery/recharger/update_icon(using_power = FALSE) //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier. if(stat & (NOPOWER|BROKEN) || !anchored) icon_state = icon_state_off return @@ -153,6 +153,23 @@ return icon_state = icon_state_idle +/obj/machinery/recharger/examine(mob/user) + ..() + if(charging && (!in_range(user, src) && !issilicon(user) && !isobserver(user))) + to_chat(user, "You're too far away to examine [src]'s contents and display!") + return + + if(charging) + to_chat(user, "\The [src] contains:") + to_chat(user, "- \A [charging].") + if(!(stat & (NOPOWER|BROKEN))) + var/obj/item/stock_parts/cell/C = charging.get_cell() + to_chat(user, "The status display reads:") + if(using_power) + to_chat(user, "- Recharging [(C.chargerate/C.maxcharge)*100]% cell charge per cycle.") + if(charging) + to_chat(user, "- \The [charging]'s cell is at [C.percent()]%.") + // Atlantis: No need for that copy-pasta code, just use var to store icon_states instead. /obj/machinery/recharger/wallcharger name = "wall recharger" diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 3777dfc866d..ccba902b058 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -12,6 +12,9 @@ var/set_temperature = 50 // in celcius, add T0C for kelvin var/heating_power = 40000 +/obj/machinery/space_heater/get_cell() + return cell + /obj/machinery/space_heater/New() ..() cell = new(src) @@ -39,7 +42,6 @@ else to_chat(user, "The charge meter reads [cell ? round(cell.percent(),1) : 0]%") - /obj/machinery/space_heater/emp_act(severity) if(stat & (BROKEN|NOPOWER)) ..(severity) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index a96a1c0d518..6dbafe2534f 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1292,7 +1292,8 @@ /obj/item/clothing/head/cueball = 1,/obj/item/clothing/under/scratch = 1, /obj/item/clothing/under/victdress = 1, /obj/item/clothing/under/victdress/red = 1, /obj/item/clothing/suit/victcoat = 1, /obj/item/clothing/suit/victcoat/red = 1, /obj/item/clothing/under/victsuit = 1, /obj/item/clothing/under/victsuit/redblk = 1, /obj/item/clothing/under/victsuit/red = 1, /obj/item/clothing/suit/tailcoat = 1, - /obj/item/clothing/suit/draculacoat = 1, /obj/item/clothing/head/zepelli = 1) + /obj/item/clothing/suit/draculacoat = 1, /obj/item/clothing/head/zepelli = 1, + /obj/item/clothing/under/redhawaiianshirt = 1, /obj/item/clothing/under/pinkhawaiianshirt = 1, /obj/item/clothing/under/bluehawaiianshirt = 1, /obj/item/clothing/under/orangehawaiianshirt = 1) contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/gun/magic/wand = 1, /obj/item/clothing/mask/balaclava=1, /obj/item/clothing/mask/horsehead = 2) premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/shield/riot/roman = 1) refill_canister = /obj/item/vending_refill/autodrobe diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 3db9272cce8..fc8d8b1e83d 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -33,6 +33,7 @@ "Phazon", "Exosuit Equipment", "Cyborg Upgrade Modules", + "Medical", "Misc" ) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index d9d9d5dd261..2ff5cabaaaa 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -137,6 +137,10 @@ //////////////////////// ////// Helpers ///////// //////////////////////// + +/obj/mecha/get_cell() + return cell + /obj/mecha/proc/add_airtank() internal_tank = new /obj/machinery/portable_atmospherics/canister/air(src) return internal_tank diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 0c7e4a509f3..a566f208082 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -65,8 +65,8 @@ /obj/item/areaeditor/permit/create_area() - ..() - qdel(src) + if(..()) + qdel(src) //free golem blueprints, like permit but can claim as much as needed @@ -186,25 +186,26 @@ /obj/item/areaeditor/proc/create_area() + var/area_created = FALSE var/res = detect_room(get_turf(usr)) if(!istype(res,/list)) switch(res) if(ROOM_ERR_SPACE) to_chat(usr, "The new area must be completely airtight.") - return + return area_created if(ROOM_ERR_TOOLARGE) to_chat(usr, "The new area is too large.") - return + return area_created else to_chat(usr, "Error! Please notify administration.") - return + return area_created var/list/turf/turfs = res var/str = trim(stripped_input(usr,"New area name:", "Blueprint Editing", "", MAX_NAME_LEN)) if(!str || !length(str)) //cancel - return + return area_created if(length(str) > 50) to_chat(usr, "The given name is too long. The area remains undefined.") - return + return area_created var/area/A = new A.name = str A.power_equip = FALSE @@ -220,7 +221,8 @@ thing.change_area(old_area, A) interact() - return + area_created = TRUE + return area_created /obj/item/areaeditor/proc/edit_area() var/area/A = get_area() diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 9bb036c4d05..cad4ae25ac8 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -591,6 +591,9 @@ REAGENT SCANNER var/scan_time = 10 SECONDS //how long does it take to scan var/scan_cd = 60 SECONDS //how long before we can scan again +/obj/item/bodyanalyzer/get_cell() + return power_supply + /obj/item/bodyanalyzer/advanced cell_type = /obj/item/stock_parts/cell/upgraded/plus diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index dfb756d8c25..def012e2663 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -32,6 +32,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ created_window = /obj/structure/window/basic full_window = /obj/structure/window/full/basic merge_type = /obj/item/stack/sheet/glass + point_value = 1 /obj/item/stack/sheet/glass/fifty amount = 50 @@ -90,6 +91,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ created_window = /obj/structure/window/reinforced full_window = /obj/structure/window/full/reinforced merge_type = /obj/item/stack/sheet/rglass + point_value = 4 /obj/item/stack/sheet/rglass/cyborg materials = list() @@ -113,6 +115,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ origin_tech = "plasmatech=2;materials=2" created_window = /obj/structure/window/plasmabasic full_window = /obj/structure/window/full/plasmabasic + point_value = 19 /obj/item/stack/sheet/plasmaglass/New(loc, amount) recipes = GLOB.pglass_recipes @@ -154,6 +157,7 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ created_window = /obj/structure/window/plasmareinforced full_window = /obj/structure/window/full/plasmareinforced armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0) + point_value = 23 /obj/item/stack/sheet/plasmarglass/New(loc, amount) recipes = GLOB.prglass_recipes diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 72c0bef16ff..8c60bcefa11 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -144,6 +144,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list( origin_tech = "materials=6" sheettype = "diamond" materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) + point_value = 25 /obj/item/stack/sheet/mineral/diamond/New() ..() @@ -156,6 +157,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list( origin_tech = "materials=5" sheettype = "uranium" materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) + point_value = 20 /obj/item/stack/sheet/mineral/uranium/New() ..() @@ -170,6 +172,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list( materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) burn_state = FLAMMABLE burntime = 5 + point_value = 20 /obj/item/stack/sheet/mineral/plasma/New() ..() @@ -196,6 +199,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list( origin_tech = "materials=4" sheettype = "gold" materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) + point_value = 20 /obj/item/stack/sheet/mineral/gold/New() ..() @@ -208,6 +212,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list( origin_tech = "materials=4" sheettype = "silver" materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) + point_value = 20 /obj/item/stack/sheet/mineral/silver/New() ..() @@ -220,6 +225,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list( origin_tech = "materials=4" sheettype = "bananium" materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) + point_value = 50 /obj/item/stack/sheet/mineral/bananium/New(loc, amount=null) ..() @@ -233,6 +239,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list( sheettype = "tranquillite" materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT) wall_allowed = FALSE //no tranquilite walls in code + point_value = 50 /obj/item/stack/sheet/mineral/tranquillite/New(loc, amount=null) ..() @@ -253,6 +260,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list( throw_range = 3 sheettype = "titanium" materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) + point_value = 20 var/global/list/datum/stack_recipe/titanium_recipes = list ( new/datum/stack_recipe("titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20), @@ -282,6 +290,7 @@ var/global/list/datum/stack_recipe/titanium_recipes = list ( throw_range = 3 sheettype = "plastitanium" materials = list(MAT_TITANIUM=2000, MAT_PLASMA=2000) + point_value = 45 var/global/list/datum/stack_recipe/plastitanium_recipes = list ( new/datum/stack_recipe("plas-titanium tile", /obj/item/stack/tile/mineral/plastitanium, 1, 4, 20), diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 94f195e9c20..c32a65f3def 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -105,6 +105,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list( flags = CONDUCT origin_tech = "materials=1" merge_type = /obj/item/stack/sheet/metal + point_value = 2 /obj/item/stack/sheet/metal/cyborg materials = list() @@ -151,6 +152,7 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list( flags = CONDUCT origin_tech = "materials=2" merge_type = /obj/item/stack/sheet/plasteel + point_value = 23 /obj/item/stack/sheet/plasteel/New(var/loc, var/amount=null) recipes = plasteel_recipes diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index 100704ed658..13774b0db4b 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -9,22 +9,10 @@ attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") var/perunit = MINERAL_MATERIAL_AMOUNT var/sheettype = null //this is used for girders in the creation of walls/false walls + var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity. + var/created_window = null //apparently glass sheets don't share a base type for glass specifically, so each had to define these vars individually var/full_window = null //moving the var declaration to here so this can be checked cleaner until someone is willing to make them share a base type properly usesound = 'sound/items/deconstruct.ogg' toolspeed = 1 var/wall_allowed = TRUE //determines if sheet can be used in wall construction or not. - - -// Since the sheetsnatcher was consolidated into weapon/storage/bag we now use -// item/attackby() properly, making this unnecessary - -/*/obj/item/stack/sheet/attackby(obj/item/W as obj, mob/user as mob, params) - if(istype(W, /obj/item/storage/bag/sheetsnatcher)) - var/obj/item/storage/bag/sheetsnatcher/S = W - if(!S.mode) - S.add(src,user) - else - for(var/obj/item/stack/sheet/stack in locate(src.x,src.y,src.z)) - S.add(stack,user) - ..()*/ diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 05f725fcf54..fbdc403d758 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -22,6 +22,9 @@ var/obj/item/stock_parts/cell/high/bcell = null var/combat = 0 //can we revive through space suits? +/obj/item/defibrillator/get_cell() + return bcell + /obj/item/defibrillator/New() //starts without a cell for rnd ..() paddles = make_paddles() diff --git a/code/game/objects/items/weapons/rpd.dm b/code/game/objects/items/weapons/rpd.dm index 63a3ffef0c5..4381c4295c7 100644 --- a/code/game/objects/items/weapons/rpd.dm +++ b/code/game/objects/items/weapons/rpd.dm @@ -4,6 +4,9 @@ #define RPD_COOLDOWN_TIME 4 //How long should we have to wait between dispensing pipes? #define RPD_WALLBUILD_TIME 40 //How long should drilling into a wall take? +#define RPD_MENU_ROTATE "Rotate pipes" //Stuff for radial menu +#define RPD_MENU_FLIP "Flip pipes" //Stuff for radial menu +#define RPD_MENU_DELETE "Delete pipes" //Stuff for radial menu /obj/item/rpd name = "rapid pipe dispenser" @@ -172,6 +175,9 @@ var/list/pipemenu = list( ui.open() ui.set_auto_update(1) +/obj/item/rpd/AltClick(mob/user) + radial_menu(user) + /obj/item/rpd/ui_data(mob/user, ui_key = "main", datum/topic_state/state = inventory_state) var/data[0] data["iconrotation"] = iconrotation @@ -200,6 +206,44 @@ var/list/pipemenu = list( return SSnanoui.update_uis(src) +//RPD radial menu + +/obj/item/rpd/proc/check_menu(mob/living/user) + if(!istype(user)) + return + if(user.incapacitated()) + return + if(loc != user) + return + return TRUE + +/obj/item/rpd/proc/radial_menu(mob/user) + if(!check_menu(user)) + to_chat(user, "You can't do that right now!") + return + var/list/choices = list( + RPD_MENU_ROTATE = image(icon = 'icons/obj/interface.dmi', icon_state = "rpd_rotate"), + RPD_MENU_FLIP = image(icon = 'icons/obj/interface.dmi', icon_state = "rpd_flip"), + RPD_MENU_DELETE = image(icon = 'icons/obj/interface.dmi', icon_state = "rpd_delete"), + "UI" = image(icon = 'icons/obj/interface.dmi', icon_state = "ui_interact") + ) + var/selected_mode = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user)) + if(!check_menu(user)) + return + if(selected_mode == "UI") + ui_interact(user) + else + switch(selected_mode) + if(RPD_MENU_ROTATE) + mode = RPD_ROTATE_MODE + if(RPD_MENU_FLIP) + mode = RPD_FLIP_MODE + if(RPD_MENU_DELETE) + mode = RPD_DELETE_MODE + else + return //Either nothing was selected, or an invalid mode was selected + to_chat(user, "You set [src]'s mode.") + /obj/item/rpd/afterattack(atom/target, mob/user, proximity) ..() if(loc != user) @@ -236,3 +280,6 @@ var/list/pipemenu = list( #undef RPD_COOLDOWN_TIME #undef RPD_WALLBUILD_TIME +#undef RPD_MENU_ROTATE +#undef RPD_MENU_FLIP +#undef RPD_MENU_DELETE diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 83e6f8e95f8..713259e081c 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -357,6 +357,21 @@ new /obj/item/ammo_box/magazine/m12g/buckshot(src) new /obj/item/ammo_box/magazine/m12g/dragon(src) +/obj/item/storage/backpack/duffel/mining_conscript/noid + name = "mining conscription kit" + desc = "A kit containing everything a crewmember needs to support a shaft miner in the field." + +/obj/item/storage/backpack/duffel/mining_conscript/noid/New() + ..() + new /obj/item/pickaxe(src) + new /obj/item/clothing/glasses/meson(src) + new /obj/item/t_scanner/adv_mining_scanner/lesser(src) + new /obj/item/storage/bag/ore(src) + new /obj/item/clothing/under/rank/miner/lavaland(src) + new /obj/item/encryptionkey/headset_cargo(src) + new /obj/item/clothing/mask/gas(src) + + /obj/item/storage/backpack/duffel/syndie/ammo/smg desc = "A large duffel bag, packed to the brim with C-20r magazines." diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index f128b874eaa..526340daea5 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -20,6 +20,9 @@ user.visible_message("[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide.") return FIRELOSS +/obj/item/melee/baton/get_cell() + return bcell + /obj/item/melee/baton/New() ..() update_icon() diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 0e440e12f16..134a0767024 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -39,8 +39,7 @@ return T.attackby(C, user) //hand this off to the turf instead (for building plating, catwalks, etc) /obj/structure/lattice/deconstruct(disassembled = TRUE) - if(!can_deconstruct) - new /obj/item/stack/rods(get_turf(src), number_of_rods) + new /obj/item/stack/rods(get_turf(src), number_of_rods) qdel(src) /obj/structure/lattice/blob_act() diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 541240beb9f..f54e28defb1 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -23,13 +23,12 @@ /turf/simulated/proc/burn_tile() return -/turf/simulated/proc/water_act(volume, temperature, source) +/turf/simulated/water_act(volume, temperature, source) + . = ..() + if(volume >= 3) MakeSlippery() - for(var/mob/living/carbon/slime/M in src) - M.apply_water() - var/hotspot = (locate(/obj/effect/hotspot) in src) if(hotspot) var/datum/gas_mixture/lowertemp = remove_air(air.total_moles()) diff --git a/code/game/turfs/simulated/floor/asteroid.dm b/code/game/turfs/simulated/floor/asteroid.dm index 43d77bd39be..5f2ad4b629c 100644 --- a/code/game/turfs/simulated/floor/asteroid.dm +++ b/code/game/turfs/simulated/floor/asteroid.dm @@ -27,6 +27,9 @@ /turf/simulated/floor/plating/asteroid/MakeDry(wet_setting) return +/turf/simulated/floor/plating/asteroid/remove_plating() + return + /turf/simulated/floor/plating/asteroid/ex_act(severity, target) switch(severity) if(3) diff --git a/code/game/turfs/simulated/floor/lava.dm b/code/game/turfs/simulated/floor/lava.dm index d1ee346b302..0882bb18766 100644 --- a/code/game/turfs/simulated/floor/lava.dm +++ b/code/game/turfs/simulated/floor/lava.dm @@ -38,6 +38,9 @@ /turf/simulated/floor/plating/lava/make_plating() return +/turf/simulated/floor/plating/lava/remove_plating() + return + /turf/simulated/floor/plating/lava/proc/is_safe() var/static/list/lava_safeties_typecache = typecacheof(list(/obj/structure/lattice/catwalk, /obj/structure/stone_tile)) var/list/found_safeties = typecache_filter_list(contents, lava_safeties_typecache) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index ee53cd0ca35..cf514a43d96 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -56,10 +56,14 @@ to_chat(user, "This section is too damaged to support a tile! Use a welder to fix the damage.") return TRUE - else if(istype(C, /obj/item/weldingtool)) + else if(iswelder(C)) var/obj/item/weldingtool/welder = C - if(welder.isOn() && (broken || burnt)) - if(welder.remove_fuel(0, user)) + if(welder.isOn()) + if(!welder.remove_fuel(0, user)) + to_chat(user, "You need more welding fuel to complete this task.") + return TRUE + + if(broken || burnt) to_chat(user, "You fix some dents on the broken plating.") playsound(src, welder.usesound, 80, 1) overlays -= current_overlay @@ -67,8 +71,23 @@ burnt = FALSE broken = FALSE update_icon() + else + to_chat(user, "You start removing [src].") + playsound(src, welder.usesound, 100, 1) + if(do_after(user, 50 * welder.toolspeed, target = src) && welder && welder.isOn()) + to_chat(user, "You remove [src].") + new /obj/item/stack/tile/plasteel(get_turf(src)) + remove_plating(user) + return TRUE + return TRUE +/turf/simulated/floor/plating/proc/remove_plating(mob/user) + if(baseturf == /turf/space) + ReplaceWithLattice() + else + TerraformTurf(baseturf) + /turf/simulated/floor/plating/airless icon_state = "plating" name = "airless plating" @@ -208,6 +227,9 @@ ..() icon_state = "ironsand[rand(1,15)]" +/turf/simulated/floor/plating/ironsand/remove_plating() + return + /turf/simulated/floor/plating/snow name = "snow" icon = 'icons/turf/snow.dmi' @@ -216,6 +238,9 @@ /turf/simulated/floor/plating/snow/ex_act(severity) return +/turf/simulated/floor/plating/snow/remove_plating() + return + /turf/simulated/floor/snow name = "snow" icon = 'icons/turf/snow.dmi' diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 53cf1917404..e315ad26ad0 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -509,3 +509,7 @@ /turf/AllowDrop() return TRUE + +/turf/proc/water_act(volume, temperature, source) + for(var/mob/living/carbon/slime/M in src) + M.apply_water() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index c9c03303f7e..a6f186dad73 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -167,7 +167,6 @@ var/global/nologevent = 0 body += "Is an AI " else if(ishuman(M)) body += {"Make AI | - Make Mask | Make Robot | Make Alien | Make Slime | diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 224f07d4277..ffa33df033f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -169,6 +169,14 @@ message_admins("Ban process: A mob matching [playermob.ckey] was found at location [playermob.x], [playermob.y], [playermob.z]. Custom IP and computer id fields replaced with the IP and computer id from the located mob") DB_ban_record(bantype, playermob, banduration, banreason, banjob, null, banckey, banip, bancid ) + if(BANTYPE_PERMA) + add_note(banckey, "Permanently Banned - [banreason]", null, usr.ckey, 0) + else if(BANTYPE_TEMP) + add_note(banckey, "Banned for [banduration] minutes - [banreason]", null, usr.ckey, 0) + else if(BANTYPE_JOB_PERMA) + add_note(banckey, "Banned from [banjob] - [banreason]", null, usr.ckey, 0) + else + add_note(banckey, "[banreason]", null, usr.ckey, 0) else if(href_list["editrights"]) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 5268b3a9bc7..e2da701cf4d 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -15,13 +15,15 @@ */ -/client/proc/SDQL2_query(query_text as message) +/client/proc/SDQL2_query() set category = "Debug" if(!check_rights(R_PROCCALL)) //Shouldn't happen... but just to be safe. message_admins("ERROR: Non-admin [key_name_admin(usr)] attempted to execute a SDQL query!") log_admin("Non-admin [key_name(usr)] attempted to execute a SDQL query!") + var/query_text = input("SDQL2 query") as message + if(!query_text || length(query_text) < 1) return diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index caa051f8748..83531c9b0b9 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -279,6 +279,9 @@ /datum/pm_tracker/proc/add_message(client/title, client/sender, message, mob/user) if(!pms[title.key]) pms[title.key] = new /datum/pm_convo(title) + else if(!pms[title.key].client) + // If they DCed earlier, we need to add the client reference back + pms[title.key].client = title pms[title.key].add(sender, message) if(!open) @@ -308,16 +311,25 @@ dat += "[label]" var/datum/pm_convo/convo = pms[current_title] + var/datum/browser/popup = new(user, window_id, "Messages", 1000, 600, src) if(convo) + popup.add_head_content(@{""}) convo.read = TRUE dat += "

[check_rights(R_ADMIN, FALSE, user) ? fancy_title(current_title) : current_title]

" dat += "

" - dat += "

" + dat += "
" + dat += "
" for(var/message in convo.messages) dat += "" dat += "
[message]
" + dat += "
" if(convo.typing) dat += "[current_title] is typing" dat += "
" @@ -327,17 +339,23 @@ if(check_rights(R_ADMIN, FALSE, user)) dat += "Ping" - var/datum/browser/popup = new(user, window_id, "Messages", 1000, 600, src) popup.set_content(dat) popup.open() open = TRUE /datum/pm_tracker/proc/fancy_title(title) - var/client/C = pms[title].client + var/client/C = pms[title].client || update_client(title) if(!C) return "[title] (Disconnected)" return "[key_name(C, FALSE)] ([ADMIN_QUE(C.mob,"?")]) ([ADMIN_PP(C.mob,"PP")]) ([ADMIN_VV(C.mob,"VV")]) ([ADMIN_SM(C.mob,"SM")]) ([admin_jump_link(C.mob)]) (CA)" +/datum/pm_tracker/proc/update_client(title) + var/client/C = GLOB.directory[ckey(title)] + if(C) + pms[title].client = C + return C + return null + /datum/pm_tracker/Topic(href, href_list) if(href_list["archive"]) pms[href_list["archive"]].archived = !pms[href_list["archive"]].archived diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 75e0f549a1d..e09fc89736a 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -81,7 +81,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/lastchangelog = "" //Saved changlog filesize to detect if there was a change var/exp var/ooccolor = "#b82e00" - var/be_special = list() //Special role selection + var/list/be_special = list() //Special role selection var/UI_style = "Midnight" var/nanoui_fancy = TRUE var/toggles = TOGGLES_DEFAULT @@ -455,6 +455,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts dat += "Ghost Ears: [(toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]
" dat += "Ghost Radio: [(toggles & CHAT_GHOSTRADIO) ? "All Chatter" : "Nearest Speakers"]
" dat += "Ghost Sight: [(toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]
" + dat += "Ghost PDA: [(toggles & CHAT_GHOSTPDA) ? "All PDA Messages" : "No PDA Messages"]
" if(check_rights(R_ADMIN,0)) dat += "OOC Color:     Change
" if(config.allow_Metadata) @@ -2029,6 +2030,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("ghost_radio") toggles ^= CHAT_GHOSTRADIO + + if("ghost_pda") + toggles ^= CHAT_GHOSTPDA if("ghost_anonsay") ghost_anonsay = !ghost_anonsay @@ -2280,3 +2284,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts /datum/preferences/proc/close_load_dialog(mob/user) user << browse(null, "window=saves") + +//Check if the user has ANY job selected. +/datum/preferences/proc/check_any_job() + return(job_support_high || job_support_med || job_support_low || job_medsci_high || job_medsci_med || job_medsci_low || job_engsec_high || job_engsec_med || job_engsec_low || job_karma_high || job_karma_med || job_karma_low) diff --git a/code/modules/client/preference/preferences_toggles.dm b/code/modules/client/preference/preferences_toggles.dm index c4d7599d2de..8096a707916 100644 --- a/code/modules/client/preference/preferences_toggles.dm +++ b/code/modules/client/preference/preferences_toggles.dm @@ -242,3 +242,11 @@ else to_chat(usr, "You have disabled text popup limiting.") +/client/verb/toggle_ghost_pda() + set name = "Show/Hide GhostPDA" + set category = "Preferences" + set desc = ".Toggle seeing PDA messages as an observer." + prefs.toggles ^= CHAT_GHOSTPDA + to_chat(src, "As a ghost, you will now [(prefs.toggles & CHAT_GHOSTPDA) ? "see all PDA messages" : "no longer see PDA messages"].") + prefs.save_preferences(src) + feedback_add_details("admin_verb","TGP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 227374bd420..8e5e658e31a 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -64,7 +64,6 @@ item_state = "lgloves" flags = NODROP - /obj/item/clothing/gloves/color/yellow/stun name = "stun gloves" desc = "Horrendous and awful. It smells like cancer. The fact it has wires attached to it is incidental." @@ -72,6 +71,9 @@ var/stun_strength = 5 var/stun_cost = 2000 +/obj/item/clothing/gloves/color/yellow/stun/get_cell() + return cell + /obj/item/clothing/gloves/color/yellow/stun/New() ..() update_icon() diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 85840d5db42..b11dfd45d68 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -110,12 +110,23 @@ /obj/item/clothing/mask/muzzle/safety name = "safety muzzle" desc = "A muzzle designed to prevent biting." - resist_time = 600 + icon_state = "muzzle_secure" + item_state = "muzzle_secure" + resist_time = 0 mute = MUZZLE_MUTE_NONE security_lock = TRUE locked = FALSE materials = list(MAT_METAL=500, MAT_GLASS=50) + sprite_sheets = list( + "Vox" = 'icons/mob/species/vox/mask.dmi', + "Unathi" = 'icons/mob/species/unathi/mask.dmi', + "Tajaran" = 'icons/mob/species/tajaran/mask.dmi', + "Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi', + "Grey" = 'icons/mob/species/grey/mask.dmi', + "Drask" = 'icons/mob/species/drask/mask.dmi' + ) + /obj/item/clothing/mask/muzzle/safety/shock name = "shock muzzle" desc = "A muzzle designed to prevent biting. This one is fitted with a behavior correction system." diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 913e65af734..b463a513764 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -97,6 +97,9 @@ to_chat(usr, "The maintenance panel is [open ? "open" : "closed"].") to_chat(usr, "Hardsuit systems are [offline ? "offline" : "online"].") +/obj/item/rig/get_cell() + return cell + /obj/item/rig/New() ..() diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index adcb1639c12..91527f2dd19 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -857,3 +857,36 @@ icon_state = "burial" item_state = "burial" item_color = "burial" + +/obj/item/clothing/under/redhawaiianshirt + name = "red hawaiian shirt" + desc = "a floral shirt worn to most vacation destinations." + icon_state = "hawaiianred" + item_state = "hawaiianred" + item_color = "hawaiianred" + flags_size = ONESIZEFITSALL + +/obj/item/clothing/under/pinkhawaiianshirt + name = "pink hawaiian shirt" + desc = "a pink floral shirt the material feels cool and comfy." + icon_state = "hawaiianpink" + item_state = "hawaiianpink" + item_color = "hawaiianpink" + flags_size = ONESIZEFITSALL + +/obj/item/clothing/under/orangehawaiianshirt + name = "orange hawaiian shirt" + desc = "a orange floral shirt for a relaxing day in space." + icon_state = "hawaiianorange" + item_state = "hawaiianorange" + item_color = "hawaiianorange" + flags_size = ONESIZEFITSALL + +/obj/item/clothing/under/bluehawaiianshirt + name = "blue hawaiian shirt" + desc = "a blue floral shirt it has a oddly colored pink flower on it." + icon_state = "hawaiianblue" + item_state = "hawaiianblue" + item_color = "hawaiianblue" + flags_size = ONESIZEFITSALL + diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index e42030b6622..9023f53932b 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -1,7 +1,7 @@ /datum/event/disease_outbreak announceWhen = 15 - var/virus_type + var/datum/disease/advance/virus_type /datum/event/disease_outbreak/setup() announceWhen = rand(15, 30) @@ -10,9 +10,13 @@ event_announcement.Announce("Confirmed outbreak of level 7 major viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg') /datum/event/disease_outbreak/start() - if(!virus_type) + if(prob(25)) virus_type = pick(/datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis, /datum/disease/beesease, /datum/disease/anxiety, /datum/disease/fake_gbs, /datum/disease/fluspanish, /datum/disease/pierrot_throat, /datum/disease/lycan) - + else + virus_type = new /datum/disease/advance + virus_type.name = capitalize(pick(GLOB.adjectives)) + " " + capitalize(pick(GLOB.nouns,GLOB.verbs)) // random silly name + virus_type.symptoms = virus_type.GenerateSymptoms(1,9,6) + virus_type.AssignProperties(list("resistance" = rand(0,11), "stealth" = rand(0,2), "stage_rate" = rand(0,5), "transmittable" = rand(0,5), "severity" = rand(0,10))) for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list)) if(issmall(H)) //don't infect monkies; that's a waste continue @@ -32,8 +36,8 @@ if(H.stat == DEAD || foundAlready) continue - var/datum/disease/D - D = new virus_type() + var/datum/disease/advance/D + D = virus_type D.carrier = TRUE H.AddDisease(D) break diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 48b4453f6d4..3cd95f37923 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -164,7 +164,7 @@ // Virology Medical Smartfridge // ---------------------------- /obj/machinery/smartfridge/secure/chemistry/virology - name = "smart virus storage" + name = "Smart Virus Storage" desc = "A refrigerated storage unit for volatile sample storage." req_access_txt = "39" spawn_meds = list(/obj/item/reagent_containers/syringe/antiviral = 4, @@ -386,7 +386,8 @@ return data /obj/machinery/smartfridge/Topic(href, href_list) - if(..()) return 0 + if(..()) + return FALSE var/mob/user = usr var/datum/nanoui/ui = SSnanoui.get_open_ui(user, src, "main") @@ -396,7 +397,7 @@ if(href_list["close"]) user.unset_machine() ui.close() - return 0 + return FALSE if(href_list["vend"]) var/index = text2num(href_list["vend"]) @@ -409,17 +410,26 @@ item_quants[K] = max(count - amount, 0) var/i = amount - for(var/obj/O in contents) - if(O.name == K) - O.forceMove(loc) - adjust_item_drop_location(O) - update_icon() - i-- - if(i <= 0) - return 1 - - return 1 - return 0 + if(i == 1 && Adjacent(user) && !issilicon(user)) + for(var/obj/O in contents) + if(O.name == K) + if(!user.put_in_hands(O)) + O.forceMove(loc) + adjust_item_drop_location(O) + update_icon() + break + return TRUE + else + for(var/obj/O in contents) + if(O.name == K) + O.forceMove(loc) + adjust_item_drop_location(O) + update_icon() + i-- + if(i <= 0) + return TRUE + return TRUE + return FALSE /obj/machinery/smartfridge/proc/throw_item() var/obj/throw_item = null diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index cc6c6115097..52f188a9d1d 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -319,6 +319,8 @@ else if(href_list["create"]) var/amount = (text2num(href_list["amount"])) + //Can't be outside these (if you change this keep a sane limit) + amount = Clamp(amount, 1, 10) var/datum/design/D = locate(href_list["create"]) create_product(D, amount) updateUsrDialog() diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index d846e065761..9a88dd50259 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -238,6 +238,9 @@ /obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O) return isitem(O) +/obj/machinery/smartfridge/survival_pod/default_unfasten_wrench() + return FALSE + /obj/machinery/smartfridge/survival_pod/empty name = "dusty survival pod storage" desc = "A heated storage unit. This one's seen better days." diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 10823051563..9d6ca608759 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -905,6 +905,7 @@ throw_range = 5 var/loaded = 1 var/malfunctioning = 0 + var/revive_type = SENTIENCE_ORGANIC //So you can't revive boss monsters or robots with it /obj/item/lazarus_injector/afterattack(atom/target, mob/user, proximity_flag) if(!loaded) @@ -912,6 +913,9 @@ if(istype(target, /mob/living) && proximity_flag) if(istype(target, /mob/living/simple_animal)) var/mob/living/simple_animal/M = target + if(M.sentience_type != revive_type) + to_chat(user, "[src] does not work on this sort of creature.") + return if(M.stat == DEAD) M.faction = list("neutral") M.revive() diff --git a/code/modules/mining/explorer_gear.dm b/code/modules/mining/explorer_gear.dm index 6453f54c979..0cad683438f 100644 --- a/code/modules/mining/explorer_gear.dm +++ b/code/modules/mining/explorer_gear.dm @@ -13,6 +13,7 @@ armor = list("melee" = 30, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50) allowed = list(/obj/item/flashlight, /obj/item/tank, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF + hide_tail_by_species = list("Vox" , "Vulpkanin" , "Unathi" , "Tajaran") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/suit.dmi', diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index d3e22e5bca2..fb2b915f146 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -1,3 +1,5 @@ +GLOBAL_LIST(labor_sheet_values) + /**********************Prisoners' Console**************************/ /obj/machinery/mineral/labor_claim_console @@ -5,153 +7,153 @@ desc = "A stacking console with an electromagnetic writer, used to track ore mined by prisoners." icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "console" - density = 0 - anchored = 1 - var/obj/machinery/mineral/stacking_machine/laborstacker/machine = null + density = FALSE + var/obj/machinery/mineral/stacking_machine/laborstacker/stacking_machine = null var/machinedir = SOUTH var/obj/item/card/id/prisoner/inserted_id var/obj/machinery/door/airlock/release_door var/door_tag = "prisonshuttle" - var/use_release_door = 0 var/obj/item/radio/intercom/announcer - -/obj/machinery/mineral/labor_claim_console/New() - ..() +/obj/machinery/mineral/labor_claim_console/Initialize() + . = ..() announcer = new /obj/item/radio/intercom(null) announcer.config(list("Security" = 0)) + locate_stacking_machine() - spawn(7) - src.machine = locate(/obj/machinery/mineral/stacking_machine, get_step(src, machinedir)) - var/t - for(var/obj/machinery/door/airlock/d in range(5,src)) - t = d.id_tag - if(t == src.door_tag) - src.release_door = d - if(machine && (release_door || !use_release_door)) - machine.CONSOLE = src + if(!GLOB.labor_sheet_values) + var/sheet_list = list() + for(var/sheet_type in subtypesof(/obj/item/stack/sheet)) + var/obj/item/stack/sheet/sheet = sheet_type + if(!initial(sheet.point_value) || (initial(sheet.merge_type) && initial(sheet.merge_type) != sheet_type)) //ignore no-value sheets and x/fifty subtypes + continue + sheet_list += list(list("ore" = initial(sheet.name), "value" = initial(sheet.point_value))) + GLOB.labor_sheet_values = sheet_list + +/obj/machinery/mineral/labor_claim_console/Destroy() + . = ..() + QDEL_NULL(announcer) + +/proc/cmp_sheet_list(list/a, list/b) + return a["value"] - b["value"] + +/obj/machinery/mineral/labor_claim_console/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/card/id/prisoner)) + if(!inserted_id) + if(!user.unEquip(I)) + return + I.forceMove(src) + inserted_id = I + to_chat(user, "You insert [I].") + SSnanoui.update_uis(src) + return else - qdel(src) + to_chat(user, "There's an ID inserted already.") + return ..() + +/obj/machinery/mineral/labor_claim_console/attack_hand(mob/user) + ui_interact(user) + +/obj/machinery/mineral/labor_claim_console/attack_ghost(mob/user) + attack_hand(user) + +/obj/machinery/mineral/labor_claim_console/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "labor_claim_console.tmpl", name, 450, 625, state) + ui.open() + +/obj/machinery/mineral/labor_claim_console/ui_data(mob/user) + var/list/data = list() + var/can_go_home = FALSE + + data["emagged"] = (emagged) ? TRUE : FALSE + if(inserted_id) + data["id"] = inserted_id + data["id_name"] = inserted_id.registered_name + data["points"] = inserted_id.points + data["goal"] = inserted_id.goal + if(check_auth()) + can_go_home = TRUE + + if(stacking_machine) + data["unclaimed_points"] = stacking_machine.points + + data["ores"] = GLOB.labor_sheet_values + data["can_go_home"] = can_go_home + + return data + +/obj/machinery/mineral/labor_claim_console/Topic(href, href_list) + if(..()) + return TRUE + + if(href_list["handle_id"]) + if(inserted_id) + if(!usr.put_in_hands(inserted_id)) + inserted_id.forceMove(get_turf(src)) + inserted_id = null + else + var/obj/item/I = usr.get_active_hand() + if(istype(I, /obj/item/card/id/prisoner)) + if(!usr.unEquip(I)) + return + I.forceMove(src) + inserted_id = I + if(href_list["claim_points"]) + inserted_id.points += stacking_machine.points + stacking_machine.points = 0 + to_chat(usr, "Points transferred.") + if(href_list["move_shuttle"]) + if(!alone_in_area(get_area(src), usr)) + to_chat(usr, "Prisoners are only allowed to be released while alone.") + else + switch(SSshuttle.moveShuttle("laborcamp", "laborcamp_home", TRUE)) + if(1) + to_chat(usr, "Shuttle not found.") + if(2) + to_chat(usr, "Shuttle already at station.") + if(3) + to_chat(usr, "No permission to dock could be granted.") + else + if(!(emagged)) + var/message = "[inserted_id.registered_name] has returned to the station. Minerals and Prisoner ID card ready for retrieval." + announcer.autosay(message, "Labor Camp Controller", "Security") + to_chat(usr, "Shuttle received message and will be sent shortly.") + + return TRUE /obj/machinery/mineral/labor_claim_console/proc/check_auth() - if(emagged) return 1 //Shuttle is emagged, let any ol' person through + if(emagged) + return TRUE //Shuttle is emagged, let any ol' person through return (istype(inserted_id) && inserted_id.points >= inserted_id.goal) //Otherwise, only let them out if the prisoner's reached his quota. +/obj/machinery/mineral/labor_claim_console/proc/locate_stacking_machine() + stacking_machine = locate(/obj/machinery/mineral/stacking_machine, get_step(src, machinedir)) + if(stacking_machine) + stacking_machine.CONSOLE = src + else + qdel(src) -/obj/machinery/mineral/labor_claim_console/attack_hand(user as mob) - var/dat - dat += text("Point Claim Console

") - if(emagged) //Shit's broken - dat += text("QU&#t0A In%aL*D
") - else if(istype(inserted_id)) //There's an ID in there. - dat += text("ID: [inserted_id.registered_name] Eject ID.
") - dat += text("Points Collected:[inserted_id.points]
") - dat += text("Point Quota: [inserted_id.goal] - Reach your quota to earn your release
") - dat += text("Unclaimed Collection Points: [machine.points]. Claim points.
") - else //No ID in sight. Complain about it. - dat += text("No ID inserted. Insert ID.
") - if(check_auth()) - dat += text("Proceed to station.
") - if(use_release_door) - dat += text("Open release door.
") - if(machine) - dat += text("
Mineral Value List:
[machine.get_ore_values()]") - - - user << browse("[dat]", "window=console_stacking_machine") - - -/obj/machinery/mineral/labor_claim_console/attackby(obj/item/I as obj, mob/user as mob, params) - if(istype(I, /obj/item/card/id)) - return attack_hand(user) - ..() - -/obj/machinery/mineral/labor_claim_console/emag_act(user as mob) - emag(user) - -/obj/machinery/mineral/labor_claim_console/proc/emag(mob/user as mob) - if(!emagged) - emagged = 1 +/obj/machinery/mineral/labor_claim_console/emag_act(mob/user) + if(!(emagged)) + emagged = TRUE to_chat(user, "PZZTTPFFFT") - -/obj/machinery/mineral/labor_claim_console/Topic(href, href_list) - usr.set_machine(src) - src.add_fingerprint(usr) - if(href_list["choice"]) - if(istype(inserted_id)) //Sanity check against href spoofs - if(href_list["choice"] == "eject") - inserted_id.loc = loc - inserted_id.verb_pickup() - inserted_id = null - if(href_list["choice"] == "claim") - inserted_id.points += machine.points - machine.points = 0 - to_chat(src, "Points transferred.") - else if(href_list["choice"] == "insert") - var/obj/item/card/id/prisoner/I = usr.get_active_hand() - if(istype(I)) - usr.drop_item() - I.loc = src - inserted_id = I - else - to_chat(usr, "Invalid ID.") - if(check_auth()) //Sanity check against hef spoofs - if(href_list["choice"] == "station") - if(!alone_in_area(get_area(src), usr)) - to_chat(usr, "Prisoners are only allowed to be released while alone.") - else - switch(SSshuttle.moveShuttle("laborcamp","laborcamp_home")) - if(1) - to_chat(usr, "Shuttle not found") - if(2) - to_chat(usr, "Shuttle already at station") - if(3) - to_chat(usr, "No permission to dock could be granted.") - else - var/message = "[inserted_id.registered_name] has returned to the station. Minerals and Prisoner ID card ready for retrieval." - announcer.autosay(message, "Labor Camp Controller", "Security") - to_chat(usr, "Shuttle received message and will be sent shortly.") - - if(href_list["choice"] == "release") - if(alone_in_area(get_area(loc), usr)) - var/obj/docking_port/stationary/S = SSshuttle.getDock("laborcamp_home") - if(S && S.get_docked()) - if(release_door && release_door.density) - release_door.open() - else - to_chat(usr, "Prisoners can only be released while docked with the station.") - else - to_chat(usr, "Prisoners are only allowed to be released while alone.") - - src.updateUsrDialog() - return - - /**********************Prisoner Collection Unit**************************/ - - /obj/machinery/mineral/stacking_machine/laborstacker - var/points = 0 //The unclaimed value of ore stacked. Value for each ore loosely relative to its rarity. - var/list/ore_values = list(("glass" = 1), ("metal" = 2), ("solid plasma" = 20), ("plasteel" = 23), ("reinforced glass" = 4), ("gold" = 20), ("silver" = 20), ("uranium" = 20), ("diamond" = 25), ("bananium" = 50), ("tranquillite" = 50)) - -/obj/machinery/mineral/stacking_machine/laborstacker/proc/get_ore_values() - var/dat = "" - for(var/ore in ore_values) - var/value = ore_values[ore] - dat += "" - dat += "
[capitalize(ore)][value]
" - return dat + var/points = 0 //The unclaimed value of ore stacked. /obj/machinery/mineral/stacking_machine/laborstacker/process_sheet(obj/item/stack/sheet/inp) - if(istype(inp)) - var/n = inp.name - var/a = inp.amount - if(n in ore_values) - points += ore_values[n] * a + points += inp.point_value * inp.amount ..() +/obj/machinery/mineral/stacking_machine/laborstacker/attackby(obj/item/I, mob/living/user) + if(istype(I, /obj/item/stack/sheet) && user.canUnEquip(I)) + var/obj/item/stack/sheet/inp = I + points += inp.point_value * inp.amount + return ..() /**********************Point Lookup Console**************************/ /obj/machinery/mineral/labor_points_checker @@ -159,13 +161,15 @@ desc = "A console used by prisoners to check the progress on their quotas. Simply swipe a prisoner ID." icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "console" - density = 0 - anchored = 1 + density = FALSE /obj/machinery/mineral/labor_points_checker/attack_hand(mob/user) - user.examine(src) + . = ..() + if(.) + return + user.examinate(src) -/obj/machinery/mineral/labor_points_checker/attackby(obj/item/I as obj, mob/user as mob, params) +/obj/machinery/mineral/labor_points_checker/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/card/id)) if(istype(I, /obj/item/card/id/prisoner)) var/obj/item/card/id/prisoner/prisoner_id = I @@ -175,5 +179,5 @@ to_chat(user, "Collect points by bringing smelted minerals to the Labor Shuttle stacking machine. Reach your quota to earn your release.") else to_chat(user, "Error: Invalid ID") - return - ..() + else + return ..() \ No newline at end of file diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 8ba8b13c09c..f10b78dc526 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -82,6 +82,7 @@ /obj/item/flashlight/lantern name = "lantern" icon_state = "lantern" + item_state = "lantern" desc = "A mining lantern." brightness_on = 6 // luminosity when on diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index c8c7d5c32e3..1b11a35e58b 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -402,9 +402,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp to_chat(usr, "Not when you're not dead!") return - var/area/A = input("Area to jump to", "BOOYEA") as null|anything in ghostteleportlocs - var/area/thearea = ghostteleportlocs[A] + var/datum/async_input/A = input_autocomplete_async(usr, "Area to jump to: ", ghostteleportlocs) + A.on_close(CALLBACK(src, .proc/teleport)) +/mob/dead/observer/proc/teleport(area/thearea) if(!thearea) return @@ -425,9 +426,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set desc = "Follow and orbit a mob." var/list/mobs = getpois(skip_mindless=1) - var/input = input("Please, select a mob!", "Haunt", null, null) as null|anything in mobs - var/mob/target = mobs[input] - ManualFollow(target) + var/datum/async_input/A = input_autocomplete_async(usr, "Please, select a mob: ", mobs) + A.on_close(CALLBACK(src, .proc/ManualFollow)) // This is the ghost's follow verb with an argument /mob/dead/observer/proc/ManualFollow(var/atom/movable/target) @@ -499,25 +499,21 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "Jump to Mob" set desc = "Teleport to a mob" - if(isobserver(usr)) //Make sure they're an observer! - var/list/dest = list() //List of possible destinations (mobs) - var/target = null //Chosen target. + if(isobserver(usr)) //Make sure they're an observer! + var/list/dest = getpois(mobs_only=1) //Fill list, prompt user with list + var/datum/async_input/A = input_autocomplete_async(usr, "Enter a mob name: ", dest) + A.on_close(CALLBACK(src, .proc/jump_to_mob)) - dest += getpois(mobs_only=1) //Fill list, prompt user with list - target = input("Please, select a mob!", "Jump to Mob", null, null) as null|anything in dest - - if(!target) //Make sure we actually have a target - return - else - var/mob/M = dest[target] //Destination mob - var/mob/A = src //Source mob - var/turf/T = get_turf(M) //Turf of the destination mob - - if(T && isturf(T)) //Make sure the turf exists, then move the source to that destination. - A.forceMove(T) - else - to_chat(A, "This mob is not located in the game world.") +/mob/dead/observer/proc/jump_to_mob(mob/M) + if(!M) + return + var/mob/A = src //Source mob + var/turf/T = get_turf(M) //Turf of the destination mob + if(T && isturf(T)) //Make sure the turf exists, then move the source to that destination. + A.forceMove(T) + return + to_chat(A, "This mob is not located in the game world.") /* Now a spell. See spells.dm /mob/dead/observer/verb/boo() diff --git a/code/modules/mob/dead/observer/spells.dm b/code/modules/mob/dead/observer/spells.dm index 916ff9aa9b8..e890098b29b 100644 --- a/code/modules/mob/dead/observer/spells.dm +++ b/code/modules/mob/dead/observer/spells.dm @@ -15,6 +15,7 @@ GLOBAL_LIST_INIT(boo_phrases, list( ghost = TRUE + action_icon_state = "boo" school = "transmutation" charge_max = 600 starts_charged = FALSE diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 2c7a2d67c55..7eecc1ff00a 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -216,56 +216,7 @@ add_attack_logs(M, src, "Shaked", ATKLOG_ALL) if(health >= HEALTH_THRESHOLD_CRIT) if(src == M && ishuman(src)) - var/mob/living/carbon/human/H = src - visible_message( \ - text("[src] examines [].",gender==MALE?"himself":"herself"), \ - "You check yourself for injuries." \ - ) - - var/list/missing = list("head", "chest", "groin", "l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "l_foot", "r_foot") - for(var/X in H.bodyparts) - var/obj/item/organ/external/LB = X - missing -= LB.limb_name - var/status = "" - var/brutedamage = LB.brute_dam - var/burndamage = LB.burn_dam - - if(brutedamage > 0) - status = "bruised" - if(brutedamage > 20) - status = "battered" - if(brutedamage > 40) - status = "mangled" - if(brutedamage > 0 && burndamage > 0) - status += " and " - if(burndamage > 40) - status += "peeling away" - - else if(burndamage > 10) - status += "blistered" - else if(burndamage > 0) - status += "numb" - if(LB.status & ORGAN_MUTATED) - status = "weirdly shapen." - if(status == "") - status = "OK" - to_chat(src, "\t Your [LB.name] is [status].") - - for(var/obj/item/I in LB.embedded_objects) - to_chat(src, "\t There is \a [I] embedded in your [LB.name]!") - - for(var/t in missing) - to_chat(src, "Your [parse_zone(t)] is missing!") - - if(H.bleed_rate) - to_chat(src, "You are bleeding!") - if(staminaloss) - if(staminaloss > 30) - to_chat(src, "You're completely exhausted.") - else - to_chat(src, "You feel fatigued.") - if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit)) - H.play_xylophone() + check_self_for_injuries() else if(player_logged) M.visible_message("[M] shakes [src], but [p_they()] [p_do()] not respond. Probably suffering from SSD.", \ @@ -308,6 +259,58 @@ else if(H.w_uniform) H.w_uniform.add_fingerprint(M) +/mob/living/carbon/proc/check_self_for_injuries() + var/mob/living/carbon/human/H = src + visible_message( \ + text("[src] examines [].",gender==MALE?"himself":"herself"), \ + "You check yourself for injuries." \ + ) + + var/list/missing = list("head", "chest", "groin", "l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "l_foot", "r_foot") + for(var/X in H.bodyparts) + var/obj/item/organ/external/LB = X + missing -= LB.limb_name + var/status = "" + var/brutedamage = LB.brute_dam + var/burndamage = LB.burn_dam + + if(brutedamage > 0) + status = "bruised" + if(brutedamage > 20) + status = "battered" + if(brutedamage > 40) + status = "mangled" + if(brutedamage > 0 && burndamage > 0) + status += " and " + if(burndamage > 40) + status += "peeling away" + + else if(burndamage > 10) + status += "blistered" + else if(burndamage > 0) + status += "numb" + if(LB.status & ORGAN_MUTATED) + status = "weirdly shapen." + if(status == "") + status = "OK" + to_chat(src, "\t Your [LB.name] is [status].") + + for(var/obj/item/I in LB.embedded_objects) + to_chat(src, "\t There is \a [I] embedded in your [LB.name]!") + + for(var/t in missing) + to_chat(src, "Your [parse_zone(t)] is missing!") + + if(H.bleed_rate) + to_chat(src, "You are bleeding!") + if(staminaloss) + if(staminaloss > 30) + to_chat(src, "You're completely exhausted.") + else + to_chat(src, "You feel fatigued.") + if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit)) + H.play_xylophone() + /mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0) . = ..() var/damage = intensity - check_eye_prot() diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 52636efb896..c0e8badf35d 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -106,6 +106,12 @@ else //Everyone else fails, skip the emote attempt return + if("warble", "warbles") + if(isskrell(src)) //Only Skrell can warble. + on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' + else //Everyone else fails, skip the emote attempt + return + if("scream", "screams") on_CD = handle_emote_CD(50) //longer cooldown if("fart", "farts", "flip", "flips", "snap", "snaps") @@ -221,6 +227,13 @@ playsound(loc, 'sound/effects/voxrustle.ogg', 50, 0) //Credit to sound-ideas (freesfx.co.uk) for the sound. m_type = 2 + if("warble", "warbles") + var/M = handle_emote_param(param) + + message = "[src] warbles[M ? " at [M]" : ""]." + playsound(loc, 'sound/effects/warble.ogg', 50, 0) // Copyright CC BY 3.0 alienistcog (freesound.org) for the sound. + m_type = 2 + if("yes") var/M = handle_emote_param(param) @@ -904,6 +917,8 @@ emotelist += "\nVox specific emotes :- quill(s)" if("Diona") emotelist += "\nDiona specific emotes :- creak(s)" + if("Skrell") + emotelist += "\nSkrell specific emotes :- warble(s)" if(ismachine(src)) emotelist += "\nMachine specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob, buzz2-(none)/mob" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index bc0c33c233d..e46068c8a74 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1480,19 +1480,22 @@ if(usr != src) return 0 //something is terribly wrong - + if(incapacitated()) + to_chat(src, "You can't write on the floor in your current state!") + return if(!bloody_hands) verbs -= /mob/living/carbon/human/proc/bloody_doodle - if(src.gloves) - to_chat(src, "Your [src.gloves] are getting in the way.") + if(gloves) + to_chat(src, "[gloves] are preventing you from writing anything down!") return - var/turf/simulated/T = src.loc + var/turf/simulated/T = loc if(!istype(T)) //to prevent doodling out of mechs and lockers to_chat(src, "You cannot reach the floor.") return + var/turf/origin = T var/direction = input(src,"Which way?","Tile selection") as anything in list("Here","North","South","East","West") if(direction != "Here") T = get_step(T,text2dir(direction)) @@ -1510,7 +1513,9 @@ var/max_length = bloody_hands * 30 //tweeter style var/message = stripped_input(src,"Write a message. It cannot be longer than [max_length] characters.","Blood writing", "") - + if(origin != loc) + to_chat(src, "Stay still while writing!") + return if(message) var/used_blood_amount = round(length(message) / 30, 1) bloody_hands = max(0, bloody_hands - used_blood_amount) //use up some blood @@ -1518,7 +1523,8 @@ if(length(message) > max_length) message += "-" to_chat(src, "You ran out of blood to write with!") - + else + to_chat(src, "You daub '[message]' on [T] in shiny red lettering.") var/obj/effect/decal/cleanable/blood/writing/W = new(T) W.message = message W.add_fingerprint(src) @@ -1935,7 +1941,6 @@ Eyes need to have significantly high darksight to shine unless the mob has the X . += "---" .["Set Species"] = "?_src_=vars;setspecies=[UID()]" .["Make AI"] = "?_src_=vars;makeai=[UID()]" - .["Make Mask of Nar'sie"] = "?_src_=vars;makemask=[UID()]" .["Make cyborg"] = "?_src_=vars;makerobot=[UID()]" .["Make monkey"] = "?_src_=vars;makemonkey=[UID()]" .["Make alien"] = "?_src_=vars;makealien=[UID()]" diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 85f491f71f0..438d3386948 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -341,9 +341,6 @@ if(SKELETON in target.mutations) to_chat(user, "There is no blood in a skeleton!") return - if(issmall(target) && !target.ckey) //Monkeyized humans are okay, humanized monkeys are okay, NPC monkeys are not. - to_chat(user, "Blood from a monkey is useless!") - return //we're good to suck the blood, blaah user.mind.vampire.handle_bloodsucking(target) add_attack_logs(user, target, "vampirebit") @@ -603,20 +600,37 @@ H.healthdoll.cached_healthdoll_overlays = new_overlays /datum/species/proc/handle_hud_icons_nutrition(mob/living/carbon/human/H) - switch(H.nutrition) - if(NUTRITION_LEVEL_FULL to INFINITY) - H.throw_alert("nutrition", /obj/screen/alert/fat) - if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) - H.throw_alert("nutrition", /obj/screen/alert/full) - if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) - H.throw_alert("nutrition", /obj/screen/alert/well_fed) - if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) - H.throw_alert("nutrition", /obj/screen/alert/fed) - if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) - H.throw_alert("nutrition", /obj/screen/alert/hungry) - else - H.throw_alert("nutrition", /obj/screen/alert/starving) - return 1 + if(H.mind && H.mind.vampire && (H.mind in SSticker.mode.vampires)) //Vampires + switch(H.nutrition) + if(NUTRITION_LEVEL_FULL to INFINITY) + H.throw_alert("nutrition", /obj/screen/alert/fat/vampire) + if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) + H.throw_alert("nutrition", /obj/screen/alert/full/vampire) + if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) + H.throw_alert("nutrition", /obj/screen/alert/well_fed/vampire) + if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) + H.throw_alert("nutrition", /obj/screen/alert/fed/vampire) + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + H.throw_alert("nutrition", /obj/screen/alert/hungry/vampire) + else + H.throw_alert("nutrition", /obj/screen/alert/starving/vampire) + return 1 + + else ///Any other non-vampires + switch(H.nutrition) + if(NUTRITION_LEVEL_FULL to INFINITY) + H.throw_alert("nutrition", /obj/screen/alert/fat) + if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL) + H.throw_alert("nutrition", /obj/screen/alert/full) + if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) + H.throw_alert("nutrition", /obj/screen/alert/well_fed) + if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) + H.throw_alert("nutrition", /obj/screen/alert/fed) + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + H.throw_alert("nutrition", /obj/screen/alert/hungry) + else + H.throw_alert("nutrition", /obj/screen/alert/starving) + return 1 /* Returns the path corresponding to the corresponding organ @@ -675,7 +689,7 @@ It'll return null if the organ doesn't correspond, so include null checks when u H.see_invisible = G.invis_override else H.see_invisible = min(G.invis_view, H.see_invisible) - + if(!isnull(G.lighting_alpha)) H.lighting_alpha = min(G.lighting_alpha, H.lighting_alpha) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 100dd1ffbba..0c6ddf80fc6 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -103,6 +103,9 @@ var/list/robot_verbs_default = list( var/datum/action/item_action/toggle_research_scanner/scanner = null var/list/module_actions = list() +/mob/living/silicon/robot/get_cell() + return cell + /mob/living/silicon/robot/New(loc,var/syndie = 0,var/unfinished = 0, var/alien = 0) spark_system = new /datum/effect_system/spark_spread() spark_system.set_up(5, 0, src) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 49a3b2718db..1db149418c7 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -50,6 +50,9 @@ var/currentBloodColor = "#A10808" var/currentDNA = null +/mob/living/simple_animal/bot/mulebot/get_cell() + return cell + /mob/living/simple_animal/bot/mulebot/New() ..() wires = new /datum/wires/mulebot(src) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index ab9253b96cc..d5fabe96be4 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -113,7 +113,7 @@ status_flags = 0 const_type = "juggernaut" mob_size = MOB_SIZE_LARGE - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall) + construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, /obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall) force_threshold = 11 playstyle_string = "You are a Juggernaut. Though slow, your shell can withstand extreme punishment, \ create shield walls, rip apart enemies and walls alike, and even deflect energy weapons." @@ -171,7 +171,7 @@ see_in_dark = 8 attack_sound = 'sound/weapons/bladeslice.ogg' const_type = "wraith" - construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift) + construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift) retreat_distance = 2 //AI wraiths will move in and out of combat playstyle_string = "You are a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls." @@ -202,7 +202,8 @@ minimum_distance = 10 //AI artificers will flee like fuck attack_sound = 'sound/weapons/punch2.ogg' const_type = "builder" - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser, + construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, + /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser, /obj/effect/proc_holder/spell/aoe_turf/conjure/wall, /obj/effect/proc_holder/spell/aoe_turf/conjure/floor, /obj/effect/proc_holder/spell/aoe_turf/conjure/pylon, @@ -311,7 +312,8 @@ see_in_dark = 8 attack_sound = 'sound/weapons/tap.ogg' const_type = "harvester" - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall, + construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, + /obj/effect/proc_holder/spell/aoe_turf/conjure/wall, /obj/effect/proc_holder/spell/aoe_turf/conjure/floor, /obj/effect/proc_holder/spell/targeted/smoke/disable) retreat_distance = 2 //AI harvesters will move in and out of combat, like wraiths, but shittier diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 3f649eae984..2e1e7508e1c 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -189,35 +189,6 @@ L.EyeBlind(4) return -//Toggle Night Vision -/obj/effect/proc_holder/spell/targeted/night_vision - name = "Toggle Nightvision" - desc = "Toggle your nightvision mode." - - charge_max = 10 - clothes_req = 0 - - message = "You toggle your night vision!" - range = -1 - include_user = 1 - -/obj/effect/proc_holder/spell/targeted/night_vision/cast(list/targets, mob/user = usr) - for(var/mob/living/target in targets) - switch(target.lighting_alpha) - if (LIGHTING_PLANE_ALPHA_VISIBLE) - target.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - name = "Toggle Nightvision \[More]" - if (LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE) - target.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - name = "Toggle Nightvision \[Full]" - if (LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE) - target.lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE - name = "Toggle Nightvision \[OFF]" - else - target.lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE - name = "Toggle Nightvision \[ON]" - target.update_sight() - /mob/living/simple_animal/hostile/statue/sentience_act() faction -= "neutral" diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm index f73ee07441a..5b82f8d35dd 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm @@ -202,7 +202,7 @@ var/global/list/ts_spiderling_list = list() var/obj/machinery/door/airlock/A = target if(A.density) try_open_airlock(A) - else if(isliving(target)) + else if(isliving(target) && (!client || a_intent == INTENT_HARM)) var/mob/living/G = target if(issilicon(G)) G.attack_animal(src) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index beb474539f1..38f980afdac 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -641,5 +641,26 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM) // Cast to 1/0 return !!(client.prefs.toggles & toggleflag) +// Used to make sure that a player has a valid job preference setup, used to knock players out of eligibility for anything if their prefs don't make sense. +// A "valid job preference setup" in this situation means at least having one job set to low, or not having "return to lobby" enabled +// Prevents "antag rolling" by setting antag prefs on, all jobs to never, and "return to lobby if preferences not availible" +// Doing so would previously allow you to roll for antag, then send you back to lobby if you didn't get an antag role +// This also does some admin notification and logging as well +/mob/proc/has_valid_preferences() + if(!client) + return FALSE //Not sure how this would get run without the mob having a client, but let's just be safe. + if(client.prefs.alternate_option != RETURN_TO_LOBBY) + return TRUE + // If they have antags enabled, they're potentially doing this on purpose instead of by accident. Notify admins if so. + var/has_antags = FALSE + if(client.prefs.be_special.len > 0) + has_antags = TRUE + if(!client.prefs.check_any_job()) + to_chat(src, "You have no jobs enabled, along with return to lobby if job is unavailable. This makes you ineligible for any round start role, please update your job preferences.") + if(has_antags) + log_admin("[src.ckey] just got booted back to lobby with no jobs, but antags enabled.") + message_admins("[src.ckey] just got booted back to lobby with no jobs enabled, but antag rolling enabled. Likely antag rolling abuse.") + return FALSE //This is the only case someone should actually be completely blocked from antag rolling as well + return TRUE #define isterrorspider(A) (istype((A), /mob/living/simple_animal/hostile/poison/terror_spider)) diff --git a/code/modules/modular_computers/computers/item/computer_power.dm b/code/modules/modular_computers/computers/item/computer_power.dm index 0a7955cfe52..27c81d48190 100644 --- a/code/modules/modular_computers/computers/item/computer_power.dm +++ b/code/modules/modular_computers/computers/item/computer_power.dm @@ -26,6 +26,10 @@ return battery_module.battery.give(amount) return 0 +/obj/item/modular_computer/get_cell() + var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL] + if(battery_module && battery_module.battery) + return battery_module.battery // Used in following function to reduce copypaste /obj/item/modular_computer/proc/power_failure() diff --git a/code/modules/modular_computers/hardware/battery_module.dm b/code/modules/modular_computers/hardware/battery_module.dm index 65b4ef1f640..98f1ab5667e 100644 --- a/code/modules/modular_computers/hardware/battery_module.dm +++ b/code/modules/modular_computers/hardware/battery_module.dm @@ -8,6 +8,9 @@ var/obj/item/stock_parts/cell/battery = null device_type = MC_CELL +/obj/item/computer_hardware/battery/get_cell() + return battery + /obj/item/computer_hardware/battery/New(loc, battery_type = null) if(battery_type) battery = new battery_type(src) diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index dfd430a5754..6e550e64893 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -27,6 +27,9 @@ Contents: var/obj/item/clothing/mask/gas/space_ninja/suitMask var/mob/living/carbon/human/suitOccupant +/obj/item/clothing/suit/space/space_ninja/get_cell() + return suitCell + /obj/item/clothing/suit/space/space_ninja/proc/toggle_suit_lock(mob/living/carbon/human/user) if(!suitActive) if(!istype(user.wear_suit, /obj/item/clothing/suit/space/space_ninja)) diff --git a/code/modules/ninja/suit/suit_attackby.dm b/code/modules/ninja/suit/suit_attackby.dm index ab6250a2b0f..2a2683a2826 100644 --- a/code/modules/ninja/suit/suit_attackby.dm +++ b/code/modules/ninja/suit/suit_attackby.dm @@ -1,5 +1,3 @@ - - /obj/item/clothing/suit/space/space_ninja/attackby(obj/item/I, mob/U, params) if(U==suitOccupant)//Safety, in case you try doing this without wearing the suit/being the person with the suit. if(istype(I, /obj/item/stock_parts/cell)) @@ -21,4 +19,4 @@ else to_chat(U, "Procedure interrupted. Protocol terminated.") return - ..() \ No newline at end of file + ..() diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 451687cd38c..23a37e06409 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -75,16 +75,19 @@ assets.send(user) var/data - if((!user.say_understands(null, GLOB.all_languages["Galactic Common"]) && !forceshow) || forcestars) //assuming all paper is written in common is better than hardcoded type checks - data = "[name][stars(info)][stamps]" - if(view) - usr << browse(data, "window=[name];size=[paper_width]x[paper_height]") - onclose(usr, "[name]") + var/stars = (!user.say_understands(null, GLOB.all_languages["Galactic Common"]) && !forceshow) || forcestars + if(stars) //assuming all paper is written in common is better than hardcoded type checks + data = "[stars(info)][stamps]" else - data = "[name][infolinks ? info_links : info][stamps]" - if(view) - usr << browse(data, "window=[name];size=[paper_width]x[paper_height]") - onclose(usr, "[name]") + data = "
[infolinks ? info_links : info]
[stamps]" + if(view) + var/datum/browser/popup = new(user, name, , paper_width, paper_height) + popup.stylesheets = list() + popup.set_content(data) + if(!stars) + popup.add_script("marked.js", 'html/browser/marked.js') + popup.add_head_content("[name]") + popup.open() return data /obj/item/paper/verb/rename() diff --git a/code/modules/pda/messenger.dm b/code/modules/pda/messenger.dm index 67ccf48df8a..ab97c956d85 100644 --- a/code/modules/pda/messenger.dm +++ b/code/modules/pda/messenger.dm @@ -169,10 +169,18 @@ if(useTC != 2) // Does our recipient have a broadcaster on their level? to_chat(U, "ERROR: Cannot reach recipient.") return + useMS.send_pda_message("[P.owner]","[pda.owner]","[t]") tnote.Add(list(list("sent" = 1, "owner" = "[P.owner]", "job" = "[P.ownjob]", "message" = "[t]", "target" = "\ref[P]"))) PM.tnote.Add(list(list("sent" = 0, "owner" = "[pda.owner]", "job" = "[pda.ownjob]", "message" = "[t]", "target" = "\ref[pda]"))) pda.investigate_log("PDA Message - [U.key] - [pda.owner] -> [P.owner]: [t]", "pda") + + // Show it to ghosts + for(var/mob/M in GLOB.dead_mob_list) + if(isobserver(M) && M.client && (M.client.prefs.toggles & CHAT_GHOSTPDA)) + var/ghost_message = "[pda.owner] ([ghost_follow_link(pda, ghost=M)]) PDA Message --> [P.owner] ([ghost_follow_link(P, ghost=M)]): [t]" + to_chat(M, "[ghost_message]") + if(!conversations.Find("\ref[P]")) conversations.Add("\ref[P]") if(!PM.conversations.Find("\ref[pda]")) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index a69ff2a793b..7b3162fdefb 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -135,6 +135,9 @@ usesound = 'sound/items/deconstruct.ogg' toolspeed = 1 +/obj/machinery/power/apc/get_cell() + return cell + /obj/machinery/power/apc/connect_to_network() //Override because the APC does not directly connect to the network; it goes through a terminal. //The terminal is what the power computer looks for anyway. diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 4719ff75261..33b423c6360 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -19,6 +19,9 @@ var/ratingdesc = TRUE var/grown_battery = FALSE // If it's a grown that acts as a battery, add a wire overlay to it. +/obj/item/stock_parts/cell/get_cell() + return src + /obj/item/stock_parts/cell/New() ..() START_PROCESSING(SSobj, src) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index b25420b5491..cbc230c1e98 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -23,6 +23,9 @@ power_supply.use(round(power_supply.charge / severity)) update_icon() +/obj/item/gun/energy/get_cell() + return power_supply + /obj/item/gun/energy/New() ..() if(cell_type) diff --git a/code/modules/projectiles/guns/throw/crossbow.dm b/code/modules/projectiles/guns/throw/crossbow.dm index bf101cd49c3..9c87f7949a9 100644 --- a/code/modules/projectiles/guns/throw/crossbow.dm +++ b/code/modules/projectiles/guns/throw/crossbow.dm @@ -22,6 +22,9 @@ var/obj/item/stock_parts/cell/cell = null // Used for firing superheated rods. var/list/possible_tensions = list(XBOW_TENSION_20, XBOW_TENSION_40, XBOW_TENSION_60, XBOW_TENSION_80, XBOW_TENSION_FULL) +/obj/item/gun/throw/crossbow/get_cell() + return cell + /obj/item/gun/throw/crossbow/emp_act(severity) if(cell && severity) emp_act(severity) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 20ecaff13d4..7c53761a70f 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -24,6 +24,9 @@ var/hack_message = "You disable the safety safeguards, enabling the \"Mad Scientist\" mode." var/unhack_message = "You re-enable the safety safeguards, enabling the \"NT Standard\" mode." +/obj/machinery/chem_dispenser/get_cell() + return cell + /obj/machinery/chem_dispenser/New() ..() component_parts = list() diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm index a67f681973d..6f0c53730b4 100644 --- a/code/modules/reagents/chemistry/reagents/food.dm +++ b/code/modules/reagents/chemistry/reagents/food.dm @@ -815,7 +815,7 @@ var/update_flags = STATUS_UPDATE_NONE if(prob(5)) if(prob(10)) - update_flags |= M.adjustToxLoss(rand(2.4), FALSE) + update_flags |= M.adjustToxLoss(rand(2,4), FALSE) if(prob(7)) to_chat(M, "A horrible migraine overpowers you.") update_flags |= M.Stun(rand(2,5), FALSE) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 4c9ca937409..f7719c4fd54 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -692,11 +692,9 @@ // pipe is deleted // ensure if holder is present, it is expelled /obj/structure/disposalpipe/Destroy() - var/obj/structure/disposalholder/H = locate() in src - if(H) - // holder was present + for(var/obj/structure/disposalholder/H in contents) H.active = 0 - var/turf/T = src.loc + var/turf/T = loc if(T.density) // deleting pipe is inside a dense turf (wall) // this is unlikely, but just dump out everything into the turf in case @@ -709,8 +707,7 @@ return // otherwise, do normal expel from turf - if(H) - expel(H, T, 0) + expel(H, T, 0) return ..() /obj/structure/disposalpipe/singularity_pull(S, current_size) diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index 6e485040715..eb0901b71e2 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -125,6 +125,7 @@ name = "Portable Seed Extractor" desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." build_type = PROTOLATHE + id = "portaseeder" req_tech = list("biotech" = 3, "engineering" = 2) materials = list(MAT_METAL = 1000, MAT_GLASS = 400) build_path = /obj/item/storage/bag/plants/portaseeder diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index d945722770e..98a181bcdf8 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -101,7 +101,7 @@ materials = list(MAT_METAL = 1000, MAT_GLASS = 500) construction_time = 75 build_path = /obj/item/mmi - category = list("Misc","Medical") + category = list("Medical") /datum/design/robotic_brain name = "Robotic Brain" @@ -112,7 +112,7 @@ materials = list(MAT_METAL = 1700, MAT_GLASS = 1350, MAT_GOLD = 500) //Gold, because SWAG. construction_time = 75 build_path = /obj/item/mmi/robotic_brain - category = list("Misc","Medical") + category = list("Medical") /datum/design/mmi_radio_upgrade name = "Man-Machine Interface Radio Upgrade" @@ -123,7 +123,7 @@ materials = list(MAT_METAL = 200) construction_time = 50 build_path = /obj/item/mmi_radio_upgrade - category = list("Misc","Medical") + category = list("Medical") /datum/design/nanopaste name = "Nanopaste" @@ -288,7 +288,7 @@ construction_time = 40 materials = list(MAT_METAL = 600, MAT_GLASS = 400) build_path = /obj/item/organ/internal/cyberimp/eyes/shield - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_breather name = "Breathing Tube Implant" @@ -299,7 +299,7 @@ construction_time = 35 materials = list(MAT_METAL = 600, MAT_GLASS = 250) build_path = /obj/item/organ/internal/cyberimp/mouth/breathing_tube - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_surgical name = "Surgical Arm Implant" @@ -310,7 +310,7 @@ materials = list(MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500) construction_time = 200 build_path = /obj/item/organ/internal/cyberimp/arm/surgery - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_toolset name = "Toolset Arm Implant" @@ -321,7 +321,7 @@ materials = list(MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500) construction_time = 200 build_path = /obj/item/organ/internal/cyberimp/arm/toolset - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_diagnostic_hud name = "Diagnostic HUD implant" @@ -332,7 +332,7 @@ construction_time = 50 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500) build_path = /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_medical_hud name = "Medical HUD implant" @@ -343,7 +343,7 @@ construction_time = 50 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500) build_path = /obj/item/organ/internal/cyberimp/eyes/hud/medical - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_security_hud name = "Security HUD implant" @@ -354,7 +354,7 @@ construction_time = 50 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 750, MAT_GOLD = 750) build_path = /obj/item/organ/internal/cyberimp/eyes/hud/security - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_meson name = "Meson scanner implant" @@ -365,7 +365,7 @@ construction_time = 50 materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500, MAT_GOLD = 300) build_path = /obj/item/organ/internal/cyberimp/eyes/meson - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_xray name = "X-Ray implant" @@ -376,7 +376,7 @@ construction_time = 60 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_URANIUM = 1000, MAT_DIAMOND = 1000, MAT_BLUESPACE = 1000) build_path = /obj/item/organ/internal/cyberimp/eyes/xray - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_thermals name = "Thermals implant" @@ -387,7 +387,7 @@ construction_time = 60 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/organ/internal/cyberimp/eyes/thermals - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_antidrop name = "Anti-Drop implant" @@ -398,7 +398,7 @@ construction_time = 60 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 400, MAT_GOLD = 400) build_path = /obj/item/organ/internal/cyberimp/brain/anti_drop - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_antistun name = "CNS Rebooter implant" @@ -409,7 +409,7 @@ construction_time = 60 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 1000) build_path = /obj/item/organ/internal/cyberimp/brain/anti_stun - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_clownvoice name = "Comical implant" @@ -420,7 +420,7 @@ construction_time = 60 materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_BANANIUM = 200) build_path = /obj/item/organ/internal/cyberimp/brain/clown_voice - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_nutriment name = "Nutriment pump implant" @@ -431,7 +431,7 @@ construction_time = 40 materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500) build_path = /obj/item/organ/internal/cyberimp/chest/nutriment - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_nutriment_plus name = "Nutriment pump implant PLUS" @@ -442,7 +442,7 @@ construction_time = 50 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_GOLD = 500, MAT_URANIUM = 750) build_path = /obj/item/organ/internal/cyberimp/chest/nutriment/plus - category = list("Misc", "Medical") + category = list("Medical") /datum/design/cyberimp_reviver name = "Reviver implant" @@ -453,7 +453,7 @@ construction_time = 60 materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 300, MAT_URANIUM = 500) build_path = /obj/item/organ/internal/cyberimp/chest/reviver - category = list("Misc", "Medical") + category = list("Medical") ///////////////////////////////////////// ////////////Regular Implants///////////// @@ -508,6 +508,7 @@ req_tech = list("biotech" = 4, "materials" = 4) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 500, MAT_GLASS = 500) + construction_time = 60 build_path = /obj/item/organ/internal/eyes/cybernetic category = list("Medical") @@ -518,6 +519,7 @@ req_tech = list("biotech" = 4, "materials" = 4) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 500, MAT_GLASS = 500) + construction_time = 60 build_path = /obj/item/organ/internal/liver/cybernetic category = list("Medical") @@ -528,6 +530,7 @@ req_tech = list("biotech" = 4, "materials" = 4) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 500, MAT_GLASS = 500) + construction_time = 60 build_path = /obj/item/organ/internal/kidneys/cybernetic category = list("Medical") @@ -538,6 +541,7 @@ req_tech = list("biotech" = 4, "materials" = 4) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 500, MAT_GLASS = 500) + construction_time = 60 build_path = /obj/item/organ/internal/heart/cybernetic category = list("Medical") @@ -548,6 +552,7 @@ req_tech = list("biotech" = 5, "materials" = 5, "engineering" = 5) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500) + construction_time = 60 build_path = /obj/item/organ/internal/heart/cybernetic/upgraded category = list("Medical") @@ -558,6 +563,7 @@ req_tech = list("biotech" = 4, "materials" = 4) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 500, MAT_GLASS = 500) + construction_time = 60 build_path = /obj/item/organ/internal/lungs/cybernetic category = list("Medical") @@ -568,5 +574,6 @@ req_tech = list("biotech" = 5, "materials" = 5, "engineering" = 5) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500) + construction_time = 60 build_path = /obj/item/organ/internal/lungs/cybernetic/upgraded category = list("Medical") diff --git a/code/modules/spacepods/spacepod.dm b/code/modules/spacepods/spacepod.dm index 273ea75e832..16f8e8f067f 100644 --- a/code/modules/spacepods/spacepod.dm +++ b/code/modules/spacepods/spacepod.dm @@ -92,6 +92,8 @@ has_paint = 1 update_icons() +/obj/spacepod/get_cell() + return battery /obj/spacepod/New() . = ..() diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm index 8f98f1b4158..b0b2941b3d2 100644 --- a/code/modules/telesci/bscrystal.dm +++ b/code/modules/telesci/bscrystal.dm @@ -66,6 +66,7 @@ var/global/list/datum/stack_recipe/bluespace_crystal_recipes = list(new/datum/st attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed") toolspeed = 1 usesound = 'sound/items/deconstruct.ogg' + point_value = 30 /obj/item/stack/sheet/bluespace_crystal/New() ..() diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index 2f3667a645f..893e9719fb4 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -128,11 +128,13 @@ var/teleporting = 0 var/chargecost = 1000 +/obj/item/rcs/get_cell() + return rcell + /obj/item/rcs/New() ..() rcell = new(src) - /obj/item/rcs/examine(mob/user) ..(user) to_chat(user, "There are [round(rcell.charge/chargecost)] charge\s left.") diff --git a/config/names/adjectives.txt b/config/names/adjectives.txt index ab0b4ba1806..c217e7f5f49 100644 --- a/config/names/adjectives.txt +++ b/config/names/adjectives.txt @@ -76,6 +76,7 @@ expensive famous fragile frail +flaming gifted helpful helpless diff --git a/config/names/nouns.txt b/config/names/nouns.txt new file mode 100644 index 00000000000..3f0d1dc6d05 --- /dev/null +++ b/config/names/nouns.txt @@ -0,0 +1,6801 @@ +ATM +CD +SUV +TV +aardvark +abacus +abbey +abbreviation +abdomen +ability +abnormality +abolishment +abortion +abrogation +absence +abundance +abuse +academics +academy +accelerant +accelerator +accent +acceptance +access +accessory +accident +accommodation +accompanist +accomplishment +accord +accordance +accordion +account +accountability +accountant +accounting +accuracy +accusation +acetate +achievement +achiever +acid +acknowledgment +acorn +acoustics +acquaintance +acquisition +acre +acrylic +act +action +activation +activist +activity +actor +actress +acupuncture +ad +adaptation +adapter +addiction +addition +address +adjective +adjustment +admin +administration +administrator +admire +admission +adobe +adoption +adrenalin +adrenaline +adult +adulthood +advance +advancement +advantage +advent +adverb +advertisement +advertising +advice +adviser +advocacy +advocate +affair +affect +affidavit +affiliate +affinity +afoul +afterlife +aftermath +afternoon +aftershave +aftershock +afterthought +age +agency +agenda +agent +aggradation +aggression +aglet +agony +agreement +agriculture +aid +aide +aim +air +airbag +airbus +aircraft +airfare +airfield +airforce +airline +airmail +airman +airplane +airport +airship +airspace +alarm +alb +albatross +album +alcohol +alcove +alder +ale +alert +alfalfa +algebra +algorithm +alias +alibi +alien +allegation +allergist +alley +alliance +alligator +allocation +allowance +alloy +alluvium +almanac +almighty +almond +alpaca +alpenglow +alpenhorn +alpha +alphabet +altar +alteration +alternative +altitude +alto +aluminium +aluminum +amazement +amazon +ambassador +amber +ambience +ambiguity +ambition +ambulance +amendment +amenity +ammunition +amnesty +amount +amusement +anagram +analgesia +analog +analogue +analogy +analysis +analyst +analytics +anarchist +anarchy +anatomy +ancestor +anchovy +android +anesthesiologist +anesthesiology +angel +anger +angina +angiosperm +angle +angora +angstrom +anguish +animal +anime +anise +ankle +anklet +anniversary +announcement +annual +anorak +answer +ant +anteater +antecedent +antechamber +antelope +antennae +anterior +anthropology +antibody +anticipation +anticodon +antigen +antique +antiquity +antler +antling +anxiety +anybody +anyone +anything +anywhere +apartment +ape +aperitif +apology +app +apparatus +apparel +appeal +appearance +appellation +appendix +appetiser +appetite +appetizer +applause +apple +applewood +appliance +application +appointment +appreciation +apprehension +approach +appropriation +approval +apricot +apron +apse +aquarium +aquifer +arcade +arch +arch-rival +archaeologist +archaeology +archeology +archer +architect +architecture +archives +area +arena +argument +arithmetic +ark +arm +arm-rest +armadillo +armament +armchair +armoire +armor +armour +armpit +armrest +army +arrangement +array +arrest +arrival +arrogance +arrow +art +artery +arthur +artichoke +article +artifact +artificer +artist +ascend +ascent +ascot +ash +ashram +ashtray +aside +asparagus +aspect +asphalt +aspic +ass +assassination +assault +assembly +assertion +assessment +asset +assignment +assist +assistance +assistant +associate +association +assumption +assurance +asterisk +astrakhan +astrolabe +astrologer +astrology +astronomy +asymmetry +atelier +atheist +athlete +athletics +atmosphere +atom +atrium +attachment +attack +attacker +attainment +attempt +attendance +attendant +attention +attenuation +attic +attitude +attorney +attraction +attribute +auction +audience +audit +auditorium +aunt +authentication +authenticity +author +authorisation +authority +authorization +auto +autoimmunity +automation +automaton +autumn +availability +avalanche +avenue +average +avocado +award +awareness +awe +axis +azimuth +babe +baboon +babushka +baby +bachelor +back +back-up +backbone +backburn +backdrop +background +backpack +backup +backyard +bacon +bacterium +badge +badger +bafflement +bag +bagel +baggage +baggie +baggy +bagpipe +bail +bait +bake +baker +bakery +bakeware +balaclava +balalaika +balance +balcony +ball +ballet +balloon +balloonist +ballot +ballpark +bamboo +ban +banana +band +bandana +bandanna +bandolier +bandwidth +bangle +banjo +bank +bankbook +banker +banking +bankruptcy +banner +banquette +banyan +baobab +bar +barbecue +barbeque +barber +barbiturate +bargain +barge +baritone +barium +bark +barley +barn +barometer +barracks +barrage +barrel +barrier +barstool +bartender +base +baseball +baseboard +baseline +basement +basics +basil +basin +basis +basket +basketball +bass +bassinet +bassoon +bat +bath +bather +bathhouse +bathrobe +bathroom +bathtub +battalion +batter +battery +batting +battle +battleship +bay +bayou +beach +bead +beak +beam +bean +beancurd +beanie +beanstalk +bear +beard +beast +beastie +beat +beating +beauty +beaver +beck +bed +bedrock +bedroom +bee +beech +beef +beer +beet +beetle +beggar +beginner +beginning +begonia +behalf +behavior +behaviour +beheading +behest +behold +being +belfry +belief +believer +bell +belligerency +bellows +belly +belt +bench +bend +beneficiary +benefit +beret +berry +best-seller +bestseller +bet +beverage +beyond +bias +bibliography +bicycle +bid +bidder +bidding +bidet +bifocals +bijou +bike +bikini +bill +billboard +billing +billion +bin +binoculars +biology +biopsy +biosphere +biplane +birch +bird +bird-watcher +birdbath +birdcage +birdhouse +birth +birthday +biscuit +bit +bite +bitten +bitter +black +blackberry +blackbird +blackboard +blackfish +blackness +bladder +blade +blame +blank +blanket +blast +blazer +blend +blessing +blight +blind +blinker +blister +blizzard +block +blocker +blog +blogger +blood +bloodflow +bloom +bloomer +blossom +blouse +blow +blowgun +blowhole +blue +blueberry +blush +boar +board +boat +boatload +boatyard +bob +bobcat +body +bog +bolero +bolt +bomb +bomber +bombing +bond +bonding +bondsman +bone +bonfire +bongo +bonnet +bonsai +bonus +boogeyman +book +bookcase +bookend +booking +booklet +bookmark +boolean +boom +boon +boost +booster +boot +bootee +bootie +booty +border +bore +borrower +borrowing +bosom +boss +botany +bother +bottle +bottling +bottom +bottom-line +boudoir +bough +boulder +boulevard +boundary +bouquet +bourgeoisie +bout +boutique +bow +bower +bowl +bowler +bowling +bowtie +box +boxer +boxspring +boy +boycott +boyfriend +boyhood +boysenberry +bra +brace +bracelet +bracket +brain +brake +bran +branch +brand +brandy +brass +brassiere +bratwurst +bread +breadcrumb +breadfruit +break +breakdown +breakfast +breakpoint +breakthrough +breast +breastplate +breath +breeze +brewer +bribery +brick +bricklaying +bride +bridge +brief +briefing +briefly +briefs +brilliant +brink +brisket +broad +broadcast +broccoli +brochure +brocolli +broiler +broker +bronchitis +bronco +bronze +brooch +brood +brook +broom +brother +brother-in-law +brow +brown +brownie +browser +browsing +brunch +brush +brushfire +brushing +bubble +buck +bucket +buckle +buckwheat +bud +buddy +budget +buffalo +buffer +buffet +bug +buggy +bugle +builder +building +bulb +bulk +bull +bull-fighter +bulldozer +bullet +bump +bumper +bun +bunch +bungalow +bunghole +bunkhouse +burden +bureau +burglar +burial +burlesque +burn +burn-out +burning +burrito +burro +burrow +burst +bus +bush +business +businessman +bust +bustle +butane +butcher +butler +butter +butterfly +button +buy +buyer +buying +buzz +buzzard +c-clamp +cabana +cabbage +cabin +cabinet +cable +caboose +cacao +cactus +caddy +cadet +cafe +caffeine +caftan +cage +cake +calcification +calculation +calculator +calculus +calendar +calf +caliber +calibre +calico +call +calm +calorie +camel +cameo +camera +camp +campaign +campaigning +campanile +camper +campus +can +canal +cancer +candelabra +candidacy +candidate +candle +candy +cane +cannibal +cannon +canoe +canon +canopy +cantaloupe +canteen +canvas +cap +capability +capacity +cape +caper +capital +capitalism +capitulation +capon +cappelletti +cappuccino +captain +caption +captor +car +carabao +caramel +caravan +carbohydrate +carbon +carboxyl +card +cardboard +cardigan +care +career +cargo +caribou +carload +carnation +carnival +carol +carotene +carp +carpenter +carpet +carpeting +carport +carriage +carrier +carrot +carry +cart +cartel +carter +cartilage +cartload +cartoon +cartridge +carving +cascade +case +casement +cash +cashew +cashier +casino +casket +cassava +casserole +cassock +cast +castanet +castle +casualty +cat +catacomb +catalogue +catalysis +catalyst +catamaran +catastrophe +catch +catcher +category +caterpillar +cathedral +cation +catsup +cattle +cauliflower +causal +cause +causeway +caution +cave +caviar +cayenne +ceiling +celebration +celebrity +celeriac +celery +cell +cellar +cello +celsius +cement +cemetery +cenotaph +census +cent +center +centimeter +centre +centurion +century +cephalopod +ceramic +ceramics +cereal +ceremony +certainty +certificate +certification +cesspool +chafe +chain +chainstay +chair +chairlift +chairman +chairperson +chaise +chalet +chalice +chalk +challenge +chamber +champagne +champion +championship +chance +chandelier +change +channel +chaos +chap +chapel +chaplain +chapter +character +characteristic +characterization +chard +charge +charger +charity +charlatan +charm +charset +chart +charter +chasm +chassis +chastity +chasuble +chateau +chatter +chauffeur +chauvinist +check +checkbook +checking +checkout +checkroom +cheddar +cheek +cheer +cheese +cheesecake +cheetah +chef +chem +chemical +chemistry +chemotaxis +cheque +cherry +chess +chest +chestnut +chick +chicken +chicory +chief +chiffonier +child +childbirth +childhood +chili +chill +chime +chimpanzee +chin +chinchilla +chino +chip +chipmunk +chit-chat +chivalry +chive +chives +chocolate +choice +choir +choker +cholesterol +choosing +chop +chops +chopstick +chopsticks +chord +chorus +chow +chowder +chrome +chromolithograph +chronicle +chronograph +chronometer +chrysalis +chub +chuck +chug +church +churn +chutney +cicada +cigarette +cilantro +cinder +cinema +cinnamon +circadian +circle +circuit +circulation +circumference +circumstance +cirrhosis +cirrus +citizen +citizenship +citron +citrus +city +civilian +civilisation +civilization +claim +clam +clamp +clan +clank +clapboard +clarification +clarinet +clarity +clasp +class +classic +classification +classmate +classroom +clause +clave +clavicle +clavier +claw +clay +cleaner +clearance +clearing +cleat +cleavage +clef +cleft +clergyman +cleric +clerk +click +client +cliff +climate +climb +clinic +clip +clipboard +clipper +cloak +cloakroom +clock +clockwork +clogs +cloister +clone +close +closet +closing +closure +cloth +clothes +clothing +cloud +cloudburst +clove +clover +cloves +club +clue +cluster +clutch +co-producer +coach +coal +coalition +coast +coaster +coat +cob +cobbler +cobweb +cock +cockpit +cockroach +cocktail +cocoa +coconut +cod +code +codepage +codling +codon +codpiece +coevolution +cofactor +coffee +coffin +cohesion +cohort +coil +coin +coincidence +coinsurance +coke +cold +coleslaw +coliseum +collaboration +collagen +collapse +collar +collard +collateral +colleague +collection +collectivisation +collectivization +collector +college +collision +colloquy +colon +colonial +colonialism +colonisation +colonization +colony +color +colorlessness +colt +column +columnist +comb +combat +combination +combine +comeback +comedy +comestible +comfort +comfortable +comic +comics +comma +command +commander +commandment +comment +commerce +commercial +commission +commitment +committee +commodity +common +commonsense +commotion +communicant +communication +communion +communist +community +commuter +company +comparison +compass +compassion +compassionate +compensation +competence +competition +competitor +complaint +complement +completion +complex +complexity +compliance +complication +complicity +compliment +component +comportment +composer +composite +composition +compost +comprehension +compress +compromise +comptroller +compulsion +computer +comradeship +con +concentrate +concentration +concept +conception +concern +concert +conclusion +concrete +condition +conditioner +condominium +condor +conduct +conductor +cone +confectionery +conference +confidence +confidentiality +configuration +confirmation +conflict +conformation +confusion +conga +congo +congregation +congress +congressman +congressperson +conifer +connection +connotation +conscience +consciousness +consensus +consent +consequence +conservation +conservative +consideration +consignment +consist +consistency +console +consonant +conspiracy +conspirator +constant +constellation +constitution +constraint +construction +consul +consulate +consulting +consumer +consumption +contact +contact lens +contagion +container +content +contention +contest +context +continent +contingency +continuity +contour +contract +contractor +contrail +contrary +contrast +contribution +contributor +control +controller +controversy +convection +convenience +convention +conversation +conversion +convert +convertible +conviction +cook +cookbook +cookie +cooking +coonskin +cooperation +coordination +coordinator +cop +cop-out +cope +copper +copy +copying +copyright +copywriter +coral +cord +corduroy +core +cork +cormorant +corn +corner +cornerstone +cornet +cornflakes +cornmeal +corporal +corporation +corporatism +corps +corral +correspondence +correspondent +corridor +corruption +corsage +cosset +cost +costume +cot +cottage +cotton +couch +cougar +cough +council +councilman +councilor +councilperson +counsel +counseling +counselling +counsellor +counselor +count +counter +counter-force +counterpart +counterterrorism +countess +country +countryside +county +couple +coupon +courage +course +court +courthouse +courtroom +cousin +covariate +cover +coverage +coverall +cow +cowbell +cowboy +coyote +crab +crack +cracker +crackers +cradle +craft +craftsman +cranberry +crane +cranky +crap +crash +crate +cravat +craw +crawdad +crayfish +crayon +crazy +cream +creation +creationism +creationist +creative +creativity +creator +creature +creche +credential +credenza +credibility +credit +creditor +creek +creme brulee +crepe +crest +crew +crewman +crewmate +crewmember +crewmen +cria +crib +cribbage +cricket +cricketer +crime +criminal +crinoline +crisis +crisp +criteria +criterion +critic +criticism +crocodile +crocus +croissant +crook +crop +cross +cross-contamination +cross-stitch +crotch +croup +crow +crowd +crown +crucifixion +crude +cruelty +cruise +crumb +crunch +crusader +crush +crust +cry +crystal +crystallography +cub +cube +cuckoo +cucumber +cue +cuff-link +cuisine +cultivar +cultivator +culture +culvert +cummerbund +cup +cupboard +cupcake +cupola +curd +cure +curio +curiosity +curl +curler +currant +currency +current +curriculum +curry +curse +cursor +curtailment +curtain +curve +cushion +custard +custody +custom +customer +cut +cuticle +cutlet +cutover +cutting +cyclamen +cycle +cyclone +cyclooxygenase +cygnet +cylinder +cymbal +cynic +cyst +cytokine +cytoplasm +dad +daddy +daffodil +dagger +dahlia +daikon +daily +dairy +daisy +dam +damage +dame +damn +dance +dancer +dancing +dandelion +danger +dare +dark +darkness +darn +dart +dash +dashboard +data +database +date +daughter +dawn +day +daybed +daylight +dead +deadline +deal +dealer +dealing +dearest +death +deathwatch +debate +debris +debt +debtor +decade +decadence +decency +decimal +decision +decision-making +deck +declaration +declination +decline +decoder +decongestant +decoration +decrease +decryption +dedication +deduce +deduction +deed +deep +deer +default +defeat +defendant +defender +defense +deficit +definition +deformation +degradation +degree +delay +deliberation +delight +delivery +demand +democracy +democrat +demon +demur +den +denim +denominator +density +dentist +deodorant +department +departure +dependency +dependent +deployment +deposit +deposition +depot +depression +depressive +depth +deputy +derby +derivation +derivative +derrick +descendant +descent +description +desert +design +designation +designer +desire +desk +desktop +dessert +destination +destiny +destroyer +destruction +detail +detainee +detainment +detection +detective +detector +detention +determination +detour +devastation +developer +developing +development +developmental +deviance +deviation +device +devil +dew +dhow +diabetes +diadem +diagnosis +diagram +dial +dialect +dialogue +diam +diamond +diaper +diaphragm +diarist +diary +dibble +dick +dickey +dictaphone +dictator +diction +dictionary +die +diesel +diet +difference +differential +difficulty +diffuse +dig +digestion +digestive +digger +digging +digit +dignity +dilapidation +dill +dilution +dime +dimension +dimple +diner +dinghy +dining +dinner +dinosaur +dioxide +dip +diploma +diplomacy +dipstick +direction +directive +director +directory +dirndl +dirt +disability +disadvantage +disagreement +disappointment +disarmament +disaster +discharge +discipline +disclaimer +disclosure +disco +disconnection +discount +discourse +discovery +discrepancy +discretion +discrimination +discussion +disdain +disease +disembodiment +disengagement +disguise +disgust +dish +dishwasher +disk +disparity +dispatch +displacement +display +disposal +disposer +disposition +dispute +disregard +disruption +dissemination +dissonance +distance +distinction +distortion +distribution +distributor +district +divalent +divan +diver +diversity +divide +dividend +divider +divine +diving +division +divorce +doc +dock +doctor +doctorate +doctrine +document +documentary +documentation +doe +dog +doggie +dogsled +dogwood +doing +doll +dollar +dollop +dolman +dolor +dolphin +domain +dome +domination +donation +donkey +donor +donut +door +doorbell +doorknob +doorpost +doorway +dory +dose +dot +double +doubling +doubt +doubter +dough +doughnut +down +downfall +downforce +downgrade +download +downstairs +downtown +downturn +dozen +draft +drag +dragon +dragonfly +dragonfruit +dragster +drain +drainage +drake +drama +dramaturge +drapes +draw +drawbridge +drawer +drawing +dream +dreamer +dredger +dress +dresser +dressing +drill +drink +drinking +drive +driver +driveway +driving +drizzle +dromedary +drop +drudgery +drug +drum +drummer +drunk +dryer +duck +duckling +dud +dude +due +duel +dueling +duffel +dugout +dulcimer +dumbwaiter +dump +dump truck +dune +dune buggy +dungarees +dungeon +duplexer +duration +durian +dusk +dust +dust storm +duster +duty +dwarf +dwell +dwelling +dynamics +dynamite +dynamo +dynasty +dysfunction +e-book +e-mail +e-reader +eagle +eaglet +ear +eardrum +earmuffs +earnings +earplug +earring +earrings +earth +earthquake +earthworm +ease +easel +east +eating +eaves +eavesdropper +ecclesia +echidna +eclipse +ecliptic +ecology +economics +economy +ecosystem +ectoderm +ectodermal +ecumenist +eddy +edge +edger +edible +editing +edition +editor +editorial +education +eel +effacement +effect +effective +effectiveness +effector +efficacy +efficiency +effort +egg +egghead +eggnog +eggplant +ego +eicosanoid +ejector +elbow +elderberry +election +electricity +electrocardiogram +electronics +element +elephant +elevation +elevator +eleventh +elf +elicit +eligibility +elimination +elite +elixir +elk +ellipse +elm +elongation +elver +email +emanate +embarrassment +embassy +embellishment +embossing +embryo +emerald +emergence +emergency +emergent +emery +emission +emitter +emotion +emphasis +empire +employ +employee +employer +employment +empowerment +emu +enactment +encirclement +enclave +enclosure +encounter +encouragement +encyclopedia +end +endive +endoderm +endorsement +endothelium +endpoint +enemy +energy +enforcement +engagement +engine +engineer +engineering +enigma +enjoyment +enquiry +enrollment +enterprise +entertainment +enthusiasm +entirety +entity +entrance +entree +entrepreneur +entry +envelope +environment +envy +enzyme +epauliere +epee +ephemera +ephemeris +ephyra +epic +episode +epithelium +epoch +eponym +epoxy +equal +equality +equation +equinox +equipment +equity +equivalent +era +eraser +erection +erosion +error +escalator +escape +escort +espadrille +espalier +essay +essence +essential +establishment +estate +estimate +estrogen +estuary +eternity +ethernet +ethics +ethnicity +ethyl +euphonium +eurocentrism +evaluation +evaluator +evaporation +eve +evening +evening-wear +event +everybody +everyone +everything +eviction +evidence +evil +evocation +evolution +ex-husband +ex-wife +exaggeration +exam +examination +examiner +example +exasperation +excellence +exception +excerpt +excess +exchange +excitement +exclamation +excursion +excuse +execution +executive +executor +exercise +exhaust +exhaustion +exhibit +exhibition +exile +existence +exit +exocrine +expansion +expansionism +expectancy +expectation +expedition +expense +experience +experiment +experimentation +expert +expertise +explanation +exploration +explorer +explosion +export +expose +exposition +exposure +expression +extension +extent +exterior +external +extinction +extreme +extremist +eye +eyeball +eyebrow +eyebrows +eyeglasses +eyelash +eyelashes +eyelid +eyelids +eyeliner +eyestrain +eyrie +fabric +face +facelift +facet +facility +facsimile +fact +factor +factory +faculty +fahrenheit +fail +failure +fairness +fairy +faith +faithful +fall +fallacy +falling-out +fame +familiar +familiarity +family +fan +fang +fanlight +fanny +fanny-pack +fantasy +farm +farmer +farming +farmland +farrow +fascia +fashion +fat +fate +father +father-in-law +fatigue +fatigues +faucet +fault +fav +fava +favor +favorite +fawn +fax +fear +feast +feather +feature +fedelini +federation +fedora +fee +feed +feedback +feeding +feel +feeling +fellow +felony +female +fen +fence +fencing +fender +feng +fennel +ferret +ferry +ferryboat +fertilizer +festival +fetus +few +fiber +fiberglass +fibre +fibroblast +fibrosis +ficlet +fiction +fiddle +field +fiery +fiesta +fifth +fig +fight +fighter +figure +figurine +file +filing +fill +fillet +filly +film +filter +filth +final +finance +financing +finding +fine +finer +finger +fingerling +fingernail +finish +finisher +fir +fire +fireman +fireplace +firewall +firm +first +fish +fishbone +fisherman +fishery +fishing +fishmonger +fishnet +fisting +fit +fitness +fix +fixture +flag +flair +flame +flan +flanker +flare +flash +flat +flatboat +flavor +flax +fleck +fledgling +fleece +flesh +flexibility +flick +flicker +flight +flint +flintlock +flip-flops +flock +flood +floodplain +floor +floozie +flour +flow +flower +flu +flugelhorn +fluke +flume +flung +flute +fly +flytrap +foal +foam +fob +focus +fog +fold +folder +folk +folklore +follower +following +fondue +font +food +foodstuffs +fool +foot +footage +football +footnote +footprint +footrest +footstep +footstool +footwear +forage +forager +foray +force +ford +forearm +forebear +forecast +forehead +foreigner +forelimb +forest +forestry +forever +forgery +fork +form +formal +formamide +format +formation +former +formicarium +formula +fort +forte +fortnight +fortress +fortune +forum +foundation +founder +founding +fountain +fourths +fowl +fox +foxglove +fraction +fragrance +frame +framework +fratricide +fraud +fraudster +freak +freckle +freedom +freelance +freezer +freezing +freight +freighter +frenzy +freon +frequency +fresco +friction +fridge +friend +friendship +fries +frigate +fright +fringe +fritter +frock +frog +front +frontier +frost +frosting +frown +fruit +frustration +fry +fuck +fuel +fugato +fulfillment +full +fun +function +functionality +fund +funding +fundraising +funeral +fur +furnace +furniture +furry +fusarium +futon +future +gadget +gaffe +gaffer +gain +gaiters +gale +gall-bladder +gallery +galley +gallon +galoshes +gambling +game +gamebird +gaming +gamma-ray +gander +gang +gap +garage +garb +garbage +garden +garlic +garment +garter +gas +gasket +gasoline +gasp +gastronomy +gastropod +gate +gateway +gather +gathering +gator +gauge +gauntlet +gavel +gazebo +gazelle +gear +gearshift +geek +gel +gelatin +gelding +gem +gemsbok +gender +gene +general +generation +generator +generosity +genetics +genie +genius +genocide +genre +gentleman +geography +geology +geometry +geranium +gerbil +gesture +geyser +gherkin +ghost +giant +gift +gig +gigantism +giggle +ginger +gingerbread +ginseng +giraffe +girdle +girl +girlfriend +git +glacier +gladiolus +glance +gland +glass +glasses +glee +glen +glider +gliding +glimpse +globe +glockenspiel +gloom +glory +glove +glow +glucose +glue +glut +glutamate +gnat +gnu +go-kart +goal +goat +gobbler +god +goddess +godfather +godmother +godparent +goggles +going +gold +goldfish +golf +gondola +gong +good +good-bye +goodbye +goodie +goodness +goodnight +goodwill +goose +gopher +gorilla +gosling +gossip +governance +government +governor +gown +grab-bag +grace +grade +gradient +graduate +graduation +graffiti +graft +grain +gram +grammar +gran +grand +grandchild +granddaughter +grandfather +grandma +grandmom +grandmother +grandpa +grandparent +grandson +granny +granola +grant +grape +grapefruit +graph +graphic +grasp +grass +grasshopper +grassland +gratitude +gravel +gravitas +gravity +gravy +gray +grease +great-grandfather +great-grandmother +greatness +greed +green +greenhouse +greens +grenade +grey +grid +grief +grill +grin +grip +gripper +grit +grocery +ground +group +grouper +grouse +grove +growth +grub +guacamole +guarantee +guard +guava +guerrilla +guess +guest +guestbook +guidance +guide +guideline +guilder +guilt +guilty +guinea +guitar +guitarist +gum +gumshoe +gun +gunpowder +gutter +guy +gym +gymnast +gymnastics +gynaecology +gyro +habit +habitat +hacienda +hacksaw +hackwork +hail +hair +haircut +hake +half +half-brother +half-sister +halibut +hall +halloween +hallway +halt +ham +hamburger +hammer +hammock +hamster +hand +hand-holding +handball +handful +handgun +handicap +handle +handlebar +handmaiden +handover +handrail +handsaw +hanger +happening +happiness +harald +harbor +harbour +hard-hat +hardboard +hardcover +hardening +hardhat +hardship +hardware +hare +harm +harmonica +harmonise +harmonize +harmony +harp +harpooner +harpsichord +harvest +harvester +hash +hashtag +hassock +haste +hat +hatbox +hatchet +hatchling +hate +hatred +haunt +haven +haversack +havoc +hawk +hay +haze +hazel +hazelnut +head +headache +headlight +headline +headphones +headquarters +headrest +health +health-care +hearing +hearsay +heart +heart-throb +heartache +heartbeat +hearth +hearthside +heartwood +heat +heater +heating +heaven +heavy +hectare +hedge +hedgehog +heel +heifer +height +heir +heirloom +helicopter +helium +hell +hellcat +hello +helmet +helo +help +hemisphere +hemp +hen +hepatitis +herb +herbs +heritage +hermit +hero +heroine +heron +herring +hesitation +heterosexual +hexagon +heyday +hiccups +hide +hierarchy +high +high-rise +highland +highlight +highway +hike +hiking +hill +hint +hip +hippodrome +hippopotamus +hire +hiring +historian +history +hit +hive +hobbit +hobby +hockey +hoe +hog +hold +holder +hole +holiday +home +homeland +homeownership +hometown +homework +homicide +homogenate +homonym +homosexual +homosexuality +honesty +honey +honeybee +honeydew +honor +honoree +hood +hoof +hook +hop +hope +hops +horde +horizon +hormone +horn +hornet +horror +horse +horseradish +horst +hose +hosiery +hospice +hospital +hospitalisation +hospitality +hospitalization +host +hostel +hostess +hotdog +hotel +hound +hour +hourglass +house +houseboat +household +housewife +housework +housing +hovel +hovercraft +howard +howitzer +hub +hubcap +hubris +hug +hugger +hull +human +humanity +humidity +hummus +humor +humour +hunchback +hundred +hunger +hunt +hunter +hunting +hurdle +hurdler +hurricane +hurry +hurt +husband +hut +hutch +hyacinth +hybridisation +hybridization +hydrant +hydraulics +hydrocarb +hydrocarbon +hydrofoil +hydrogen +hydrolyse +hydrolysis +hydrolyze +hydroxyl +hyena +hygienic +hype +hyphenation +hypochondria +hypothermia +hypothesis +ice +ice-cream +iceberg +icebreaker +icecream +icicle +icing +icon +icy +id +idea +ideal +identification +identity +ideology +idiom +idiot +igloo +ignorance +ignorant +ikebana +illegal +illiteracy +illness +illusion +illustration +image +imagination +imbalance +imitation +immigrant +immigration +immortal +impact +impairment +impala +impediment +implement +implementation +implication +import +importance +impostor +impress +impression +imprisonment +impropriety +improvement +impudence +impulse +in-joke +in-laws +inability +inauguration +inbox +incandescence +incarnation +incense +incentive +inch +incidence +incident +incision +inclusion +income +incompetence +inconvenience +increase +incubation +independence +independent +index +indication +indicator +indigence +individual +industrialisation +industrialization +industry +inequality +inevitable +infancy +infant +infarction +infection +infiltration +infinite +infix +inflammation +inflation +influence +influx +info +information +infrastructure +infusion +inglenook +ingrate +ingredient +inhabitant +inheritance +inhibition +inhibitor +initial +initialise +initialize +initiative +injunction +injury +injustice +ink +inlay +inn +innervation +innocence +innocent +innovation +input +inquiry +inscription +insect +insectarium +insert +inside +insight +insolence +insomnia +inspection +inspector +inspiration +installation +instance +instant +instinct +institute +institution +instruction +instructor +instrument +instrumentalist +instrumentation +insulation +insurance +insurgence +insurrection +integer +integral +integration +integrity +intellect +intelligence +intensity +intent +intention +intentionality +interaction +interchange +interconnection +intercourse +interest +interface +interferometer +interior +interject +interloper +internet +interpretation +interpreter +interval +intervenor +intervention +interview +interviewer +intestine +introduction +intuition +invader +invasion +invention +inventor +inventory +inverse +inversion +investigation +investigator +investment +investor +invitation +invite +invoice +involvement +iridescence +iris +iron +ironclad +irony +irrigation +ischemia +island +isogloss +isolation +issue +item +itinerary +ivory +jack +jackal +jacket +jackfruit +jade +jaguar +jail +jailhouse +jalapeño +jam +jar +jasmine +jaw +jazz +jealousy +jeans +jeep +jelly +jellybeans +jellyfish +jerk +jet +jewel +jeweller +jewellery +jewelry +jicama +jiffy +job +jockey +jodhpurs +joey +jogging +joint +joke +jot +journal +journalism +journalist +journey +joy +judge +judgment +judo +jug +juggernaut +juice +julienne +jumbo +jump +jumper +jumpsuit +jungle +junior +junk +junker +junket +jury +justice +justification +jute +kale +kamikaze +kangaroo +karate +kayak +kazoo +kebab +keep +keeper +kendo +kennel +ketch +ketchup +kettle +kettledrum +key +keyboard +keyboarding +keystone +kick +kick-off +kid +kidney +kielbasa +kill +killer +killing +kilogram +kilometer +kilt +kimono +kinase +kind +kindness +king +kingdom +kingfish +kiosk +kiss +kit +kitchen +kite +kitsch +kitten +kitty +kiwi +knee +kneejerk +knickers +knife +knife-edge +knight +knitting +knock +knot +know-how +knowledge +knuckle +koala +kohlrabi +kumquat +lab +label +labor +laboratory +laborer +labour +labourer +lace +lack +lacquerware +lad +ladder +ladle +lady +ladybug +lag +lake +lamb +lambkin +lament +lamp +lanai +land +landform +landing +landmine +landscape +lane +language +lantern +lap +laparoscope +lapdog +laptop +larch +lard +larder +lark +larva +laryngitis +lasagna +lashes +last +latency +latex +lathe +latitude +latte +latter +laugh +laughter +laundry +lava +law +lawmaker +lawn +lawsuit +lawyer +lay +layer +layout +lead +leader +leadership +leading +leaf +league +leaker +leap +learning +leash +leather +leave +leaver +lecture +leek +leeway +left +leg +legacy +legal +legend +legging +legislation +legislator +legislature +legitimacy +legume +leisure +lemon +lemonade +lemur +lender +lending +length +lens +lentil +leopard +leprosy +leptocephalus +lesbian +lesson +letter +lettuce +level +lever +leverage +leveret +liability +liar +liberty +libido +library +licence +license +licensing +licorice +lid +lie +lieu +lieutenant +life +lifestyle +lifetime +lift +ligand +light +lighting +lightning +lightscreen +ligula +likelihood +likeness +lilac +lily +limb +lime +limestone +limit +limitation +limo +line +linen +liner +linguist +linguistics +lining +link +linkage +linseed +lion +lip +lipid +lipoprotein +lipstick +liquid +liquidity +liquor +list +listening +listing +literate +literature +litigation +litmus +litter +littleneck +liver +livestock +living +lizard +llama +load +loading +loaf +loafer +loan +lobby +lobotomy +lobster +local +locality +location +lock +locker +locket +locomotive +locust +lode +loft +log +loggia +logic +login +logistics +logo +loincloth +lollipop +loneliness +longboat +longitude +look +lookout +loop +loophole +loquat +lord +loss +lot +lotion +lottery +lounge +louse +lout +love +lover +lox +loyalty +luck +luggage +lumber +lumberman +lunch +luncheonette +lunchmeat +lunchroom +lung +lunge +lust +lute +luxury +lychee +lycra +lye +lymphocyte +lynx +lyocell +lyre +lyrics +lysine +mRNA +macadamia +macaroni +macaroon +macaw +machine +machinery +macrame +macro +macrofauna +madam +maelstrom +maestro +magazine +maggot +magic +magnet +magnitude +maid +maiden +mail +mailbox +mailer +mailing +mailman +main +mainland +mainstream +maintainer +maintenance +maize +major +major-league +majority +makeover +maker +makeup +making +male +malice +mall +mallard +mallet +malnutrition +mama +mambo +mammoth +man +manacle +management +manager +manatee +mandarin +mandate +mandolin +mangle +mango +mangrove +manhunt +maniac +manicure +manifestation +manipulation +mankind +manner +manor +mansard +manservant +mansion +mantel +mantle +mantua +manufacturer +manufacturing +many +map +maple +mapping +maracas +marathon +marble +march +mare +margarine +margin +mariachi +marimba +marines +marionberry +mark +marker +market +marketer +marketing +marketplace +marksman +markup +marmalade +marriage +marsh +marshland +marshmallow +marten +marxism +mascara +mask +masonry +mass +massage +mast +master +masterpiece +mastication +mastoid +mat +match +matchmaker +mate +material +maternity +math +mathematics +matrix +matter +mattock +mattress +max +maximum +maybe +mayonnaise +mayor +meadow +meal +mean +meander +meaning +means +meantime +measles +measure +measurement +meat +meatball +meatloaf +mecca +mechanic +mechanism +med +medal +media +median +medication +medicine +medium +meet +meeting +melatonin +melody +melon +member +membership +membrane +meme +memo +memorial +memory +men +menopause +menorah +mention +mentor +menu +merchandise +merchant +mercury +meridian +meringue +merit +mesenchyme +mess +message +messenger +messy +metabolite +metal +metallurgist +metaphor +meteor +meteorology +meter +methane +method +methodology +metric +metro +metronome +mezzanine +microlending +micronutrient +microphone +microwave +mid-course +midden +middle +middleman +midline +midnight +midwife +might +migrant +migration +mile +mileage +milepost +milestone +military +milk +milkshake +mill +millennium +millet +millimeter +million +millisecond +millstone +mime +mimosa +min +mincemeat +mind +mine +mineral +mineshaft +mini +mini-skirt +minibus +minimalism +minimum +mining +minion +minister +mink +minnow +minor +minor-league +minority +mint +minute +miracle +mirror +miscarriage +miscommunication +misfit +misnomer +misogyny +misplacement +misreading +misrepresentation +miss +missile +mission +missionary +mist +mistake +mister +misunderstand +miter +mitten +mix +mixer +mixture +moai +moat +mob +mobile +mobility +mobster +moccasins +mocha +mochi +mode +model +modeling +modem +modernist +modernity +modification +molar +molasses +molding +mole +molecule +mom +moment +monastery +monasticism +money +monger +monitor +monitoring +monk +monkey +monocle +monopoly +monotheism +monsoon +monster +month +monument +mood +moody +moon +moonlight +moonscape +moonshine +moose +mop +morale +morbid +morbidity +morning +moron +morphology +morsel +mortal +mortality +mortgage +mortise +mosque +mosquito +most +motel +moth +mother +mother-in-law +motion +motivation +motive +motor +motorboat +motorcar +motorcycle +mound +mountain +mouse +mouser +mousse +moustache +mouth +mouton +movement +mover +movie +mower +mozzarella +mud +muffin +mug +mukluk +mule +multimedia +murder +muscat +muscatel +muscle +musculature +museum +mushroom +music +music-box +music-making +musician +muskrat +mussel +mustache +mustard +mutation +mutt +mutton +mycoplasma +mystery +myth +mythology +nail +name +naming +nanoparticle +napkin +narrative +nasal +nation +nationality +native +naturalisation +nature +navigation +necessity +neck +necklace +necktie +nectar +nectarine +need +needle +neglect +negligee +negotiation +neighbor +neighborhood +neighbour +neighbourhood +neologism +neon +neonate +nephew +nerve +nest +nestling +nestmate +net +netball +netbook +netsuke +network +networking +neurobiologist +neuron +neuropathologist +neuropsychiatry +news +newsletter +newspaper +newsprint +newsstand +nexus +nibble +nicety +niche +nick +nickel +nickname +niece +night +nightclub +nightgown +nightingale +nightlife +nightlight +nightmare +ninja +nit +nitrogen +nobody +nod +node +noir +noise +nonbeliever +nonconformist +nondisclosure +nonsense +noodle +noodles +noon +norm +normal +normalisation +normalization +north +nose +notation +note +notebook +notepad +nothing +notice +notion +notoriety +nougat +noun +nourishment +novel +nucleotidase +nucleotide +nudge +nuke +number +numeracy +numeric +numismatist +nun +nurse +nursery +nursing +nurture +nut +nutmeg +nutrient +nutrition +nylon +nymph +oak +oar +oasis +oat +oatmeal +oats +obedience +obesity +obi +object +objection +objective +obligation +oboe +observation +observatory +obsession +obsidian +obstacle +occasion +occupation +occurrence +ocean +ocelot +octagon +octave +octavo +octet +octopus +odometer +odyssey +oeuvre +off-ramp +offence +offense +offer +offering +office +officer +official +offset +oil +okra +oldie +oleo +olive +omega +omelet +omission +omnivore +oncology +onion +online +onset +opening +opera +operating +operation +operator +ophthalmologist +opinion +opium +opossum +opponent +opportunist +opportunity +opposite +opposition +optimal +optimisation +optimist +optimization +option +orange +orangutan +orator +orchard +orchestra +orchid +order +ordinary +ordination +ore +oregano +organ +organisation +organising +organization +organizing +orient +orientation +origin +original +originality +ornament +osmosis +osprey +ostrich +other +otter +ottoman +ounce +outback +outcome +outfielder +outfit +outhouse +outlaw +outlay +outlet +outline +outlook +output +outrage +outrigger +outrun +outset +outside +oval +ovary +oven +overcharge +overclocking +overcoat +overexertion +overflight +overhead +overheard +overload +overnighter +overshoot +oversight +overview +overweight +owl +owner +ownership +ox +oxford +oxygen +oyster +ozone +pace +pacemaker +pack +package +packaging +packet +pad +paddle +paddock +pagan +page +pagoda +pail +pain +paint +painter +painting +paintwork +pair +pajamas +palace +palate +palm +pamphlet +pan +pancake +pancreas +panda +panel +panic +pannier +panpipe +pansy +panther +panties +pantologist +pantology +pantry +pants +pantsuit +panty +pantyhose +papa +papaya +paper +paperback +paperwork +parable +parachute +parade +paradise +paragraph +parallelogram +paramecium +paramedic +parameter +paranoia +parcel +parchment +pard +pardon +parent +parenthesis +parenting +park +parka +parking +parliament +parole +parrot +parser +parsley +parsnip +part +participant +participation +particle +particular +partner +partnership +partridge +party +pass +passage +passbook +passenger +passing +passion +passive +passport +password +past +pasta +paste +pastor +pastoralist +pastry +pasture +pat +patch +pate +patent +patentee +path +pathogenesis +pathology +pathway +patience +patient +patina +patio +patriarch +patrimony +patriot +patrol +patroller +patrolling +patron +pattern +patty +pattypan +pause +pavement +pavilion +paw +pawnshop +pay +payee +payment +payoff +pea +peace +peach +peacoat +peacock +peak +peanut +pear +pearl +peasant +pecan +pecker +pedal +peek +peen +peer +peer-to-peer +pegboard +pelican +pelt +pen +penalty +pence +pencil +pendant +pendulum +penguin +penicillin +peninsula +penis +pennant +penny +pension +pentagon +peony +people +pepper +pepperoni +percent +percentage +perception +perch +perennial +perfection +performance +perfume +period +periodical +peripheral +permafrost +permission +permit +perp +perpendicular +persimmon +person +personal +personality +personnel +perspective +pest +pet +petal +petition +petitioner +petticoat +pew +pharmacist +pharmacopoeia +phase +pheasant +phenomenon +phenotype +pheromone +philanthropy +philosopher +philosophy +phone +phosphate +photo +photodiode +photograph +photographer +photography +photoreceptor +phrase +phrasing +physical +physics +physiology +pianist +piano +piccolo +pick +pickax +pickaxe +picket +pickle +pickup +picnic +picture +picturesque +pie +piece +pier +piety +pig +pigeon +piglet +pigpen +pigsty +pike +pilaf +pile +pilgrim +pilgrimage +pill +pillar +pillbox +pillow +pilot +pimp +pimple +pin +pinafore +pince-nez +pine +pineapple +pinecone +ping +pink +pinkie +pinot +pinstripe +pint +pinto +pinworm +pioneer +pipe +pipeline +piracy +pirate +piss +pistol +pit +pita +pitch +pitcher +pitching +pith +pizza +place +placebo +placement +placode +plagiarism +plain +plaintiff +plan +plane +planet +planning +plant +plantation +planter +planula +plaster +plasterboard +plastic +plate +platelet +platform +platinum +platter +platypus +play +player +playground +playroom +playwright +plea +pleasure +pleat +pledge +plenty +plier +pliers +plight +plot +plough +plover +plow +plowman +plug +plugin +plum +plumber +plume +plunger +plywood +pneumonia +pocket +pocket-watch +pocketbook +pod +podcast +poem +poet +poetry +poignance +point +poison +poisoning +poker +polarisation +polarization +pole +polenta +police +policeman +policy +polish +politician +politics +poll +polliwog +pollutant +pollution +polo +polyester +polyp +pomegranate +pomelo +pompom +poncho +pond +pony +pool +poor +pop +popcorn +poppy +popsicle +popularity +population +populist +porcelain +porch +porcupine +pork +porpoise +port +porter +portfolio +porthole +portion +portrait +position +possession +possibility +possible +post +postage +postbox +poster +posterior +postfix +pot +potato +potential +pottery +potty +pouch +poultry +pound +pounding +poverty +powder +power +practice +practitioner +prairie +praise +pray +prayer +precedence +precedent +precipitation +precision +predecessor +preface +preference +prefix +pregnancy +prejudice +prelude +premeditation +premier +premise +premium +preoccupation +preparation +prescription +presence +present +presentation +preservation +preserves +presidency +president +press +pressroom +pressure +pressurisation +pressurization +prestige +presume +pretzel +prevalence +prevention +prey +price +pricing +pride +priest +priesthood +primary +primate +prince +princess +principal +principle +print +printer +printing +prior +priority +prison +prisoner +privacy +private +privilege +prize +prizefight +probability +probation +probe +problem +procedure +proceedings +process +processing +processor +proctor +procurement +produce +producer +product +production +productivity +profession +professional +professor +profile +profit +progenitor +program +programme +programming +progress +progression +prohibition +project +proliferation +promenade +promise +promotion +prompt +pronoun +pronunciation +proof +proof-reader +propaganda +propane +property +prophet +proponent +proportion +proposal +proposition +proprietor +prose +prosecution +prosecutor +prospect +prosperity +prostacyclin +prostanoid +prostrate +protection +protein +protest +protocol +providence +provider +province +provision +prow +proximal +proximity +prune +pruner +pseudocode +pseudoscience +psychiatrist +psychoanalyst +psychologist +psychology +ptarmigan +pub +public +publication +publicity +publisher +publishing +pudding +puddle +puffin +pug +puggle +pulley +pulse +puma +pump +pumpernickel +pumpkin +pumpkinseed +pun +punch +punctuation +punishment +pup +pupa +pupil +puppet +puppy +purchase +puritan +purity +purple +purpose +purr +purse +pursuit +push +pusher +put +puzzle +pyramid +pyridine +quadrant +quail +qualification +quality +quantity +quart +quarter +quartet +quartz +queen +query +quest +question +questioner +questionnaire +quiche +quicksand +quiet +quill +quilt +quince +quinoa +quit +quiver +quota +quotation +quote +rabbi +rabbit +raccoon +race +racer +racing +racism +racist +rack +radar +radiator +radio +radiosonde +radish +raffle +raft +rag +rage +raid +rail +railing +railroad +railway +raiment +rain +rainbow +raincoat +rainmaker +rainstorm +rainy +raise +raisin +rake +rally +ram +rambler +ramen +ramie +ranch +rancher +randomisation +randomization +range +ranger +rank +rap +rape +raspberry +rat +rate +ratepayer +rating +ratio +rationale +rations +raven +ravioli +rawhide +ray +rayon +razor +reach +reactant +reaction +read +reader +readiness +reading +real +reality +realization +realm +reamer +rear +reason +reasoning +rebel +rebellion +reboot +recall +recapitulation +receipt +receiver +reception +receptor +recess +recession +recipe +recipient +reciprocity +reclamation +recliner +recognition +recollection +recommendation +reconsideration +record +recorder +recording +recovery +recreation +recruit +rectangle +red +redesign +redhead +redirect +rediscovery +reduction +reef +refectory +reference +referendum +reflection +reform +refreshments +refrigerator +refuge +refund +refusal +refuse +regard +regime +region +regionalism +register +registration +registry +regret +regulation +regulator +rehospitalisation +rehospitalization +reindeer +reinscription +reject +relation +relationship +relative +relaxation +relay +release +reliability +relief +religion +relish +reluctance +remains +remark +reminder +remnant +remote +removal +renaissance +rent +reorganisation +reorganization +repair +reparation +repayment +repeat +replacement +replica +replication +reply +report +reporter +reporting +repository +representation +representative +reprocessing +republic +republican +reputation +request +requirement +resale +rescue +research +researcher +resemblance +reservation +reserve +reservoir +reset +residence +resident +residue +resist +resistance +resolution +resolve +resort +resource +respect +respite +response +responsibility +rest +restaurant +restoration +restriction +restroom +restructuring +result +resume +retailer +retention +rethinking +retina +retirement +retouching +retreat +retrospect +retrospective +retrospectivity +return +reunion +revascularisation +revascularization +reveal +revelation +revenant +revenge +revenue +reversal +reverse +review +revitalisation +revitalization +revival +revolution +revolver +reward +rhetoric +rheumatism +rhinoceros +rhubarb +rhyme +rhythm +rib +ribbon +rice +riddle +ride +rider +ridge +riding +rifle +right +rim +ring +ringworm +riot +rip +ripple +rise +riser +risk +rite +ritual +river +riverbed +rivulet +road +roadway +roar +roast +robe +robin +robot +robotics +rock +rocker +rocket +rocket-ship +rod +role +roll +roller +romaine +romance +roof +room +roommate +rooster +root +rope +rose +rosemary +roster +rostrum +rotation +round +roundabout +route +router +routine +row +rowboat +rowing +rubber +rubbish +rubric +ruby +ruckus +rudiment +ruffle +rug +rugby +ruin +rule +ruler +ruling +rum +rumor +run +runaway +runner +running +runway +rush +rust +rutabaga +rye +sabre +sac +sack +saddle +sadness +safari +safe +safeguard +safety +saffron +sage +sail +sailboat +sailing +sailor +saint +sake +salad +salami +salary +sale +salesman +salmon +salon +saloon +salsa +salt +salute +samovar +sampan +sample +samurai +sanction +sanctity +sanctuary +sand +sandal +sandbar +sandpaper +sandwich +sanity +sardine +sari +sarong +sash +satellite +satin +satire +satisfaction +sauce +saucer +sauerkraut +sausage +savage +savannah +saving +savings +savior +saviour +savory +saw +saxophone +scaffold +scale +scallion +scallops +scalp +scam +scanner +scarecrow +scarf +scarification +scenario +scene +scenery +scent +schedule +scheduling +schema +scheme +schizophrenic +schnitzel +scholar +scholarship +school +schoolhouse +schooner +science +scientist +scimitar +scissors +scooter +scope +score +scorn +scorpion +scotch +scout +scow +scrambled +scrap +scraper +scratch +screamer +screen +screening +screenwriting +screw +screw-up +screwdriver +scrim +scrip +script +scripture +scrutiny +sculpting +sculptural +sculpture +sea +seabass +seafood +seagull +seal +seaplane +search +seashore +seaside +season +seat +seaweed +second +secrecy +secret +secretariat +secretary +secretion +section +sectional +sector +security +sediment +seed +seeder +seeker +seep +segment +seizure +selection +self +self-confidence +self-control +self-esteem +seller +selling +semantics +semester +semicircle +semicolon +semiconductor +seminar +senate +senator +sender +senior +sense +sensibility +sensitive +sensitivity +sensor +sentence +sentencing +sentiment +sepal +separation +septicaemia +sequel +sequence +serial +series +sermon +serum +serval +servant +server +service +servitude +sesame +session +set +setback +setting +settlement +settler +severity +sewer +sex +sexuality +shack +shackle +shade +shadow +shadowbox +shakedown +shaker +shallot +shallows +shame +shampoo +shanty +shape +share +shareholder +shark +shaw +shawl +shear +shearling +sheath +shed +sheep +sheet +shelf +shell +shelter +sherbet +sherry +shield +shift +shin +shine +shingle +ship +shipper +shipping +shipyard +shirt +shirtdress +shit +shoat +shock +shoe +shoe-horn +shoehorn +shoelace +shoemaker +shoes +shoestring +shofar +shoot +shootdown +shop +shopper +shopping +shore +shoreline +short +shortage +shorts +shortwave +shot +shoulder +shout +shovel +show +show-stopper +shower +shred +shrimp +shrine +shutdown +sibling +sick +sickness +side +sideboard +sideburns +sidecar +sidestream +sidewalk +siding +siege +sigh +sight +sightseeing +sign +signal +signature +signet +significance +signify +signup +silence +silica +silicon +silk +silkworm +sill +silly +silo +silver +similarity +simple +simplicity +simplification +simvastatin +sin +singer +singing +singular +sink +sinuosity +sip +sir +sister +sister-in-law +sitar +site +situation +size +skate +skating +skean +skeleton +ski +skiing +skill +skin +skirt +skull +skullcap +skullduggery +skunk +sky +skylight +skyline +skyscraper +skywalk +slang +slapstick +slash +slate +slave +slavery +slaw +sled +sledge +sleep +sleepiness +sleeping +sleet +sleuth +slice +slide +slider +slime +slip +slipper +slippers +slope +slot +sloth +slump +smell +smelting +smile +smith +smock +smog +smoke +smoking +smolt +smuggling +snack +snail +snake +snakebite +snap +snarl +sneaker +sneakers +sneeze +sniffle +snob +snorer +snow +snowboarding +snowflake +snowman +snowmobiling +snowplow +snowstorm +snowsuit +snuck +snug +snuggle +soap +soccer +socialism +socialist +society +sociology +sock +socks +soda +sofa +softball +softdrink +softening +software +soil +soldier +sole +solicitation +solicitor +solidarity +solidity +soliloquy +solitaire +solution +solvency +sombrero +somebody +someone +someplace +somersault +something +somewhere +son +sonar +sonata +song +songbird +sonnet +soot +sophomore +soprano +sorbet +sorghum +sorrel +sorrow +sort +soul +soulmate +sound +soundness +soup +source +sourwood +sousaphone +south +southeast +souvenir +sovereignty +sow +soy +soybean +space +spacing +spade +spaghetti +span +spandex +spank +sparerib +spark +sparrow +spasm +spat +spatula +spawn +speaker +speakerphone +speaking +spear +spec +special +specialist +specialty +species +specification +spectacle +spectacles +spectrograph +spectrum +speculation +speech +speed +speedboat +spell +spelling +spelt +spending +sphere +sphynx +spice +spider +spiderling +spike +spill +spinach +spine +spiral +spirit +spiritual +spirituality +spit +spite +spleen +splendor +split +spokesman +spokeswoman +sponge +sponsor +sponsorship +spool +spoon +spork +sport +sportsman +spot +spotlight +spouse +sprag +sprat +spray +spread +spreadsheet +spree +spring +sprinkles +sprinter +sprout +spruce +spud +spume +spur +spy +spyglass +square +squash +squatter +squeegee +squid +squirrel +stab +stability +stable +stack +stacking +stadium +staff +stag +stage +stain +stair +staircase +stake +stalk +stall +stallion +stamen +stamina +stamp +stance +stand +standard +standardisation +standardization +standing +standoff +standpoint +star +starboard +start +starter +state +statement +statin +station +station-wagon +statistic +statistics +statue +status +statute +stay +steak +stealth +steam +steamroller +steel +steeple +stem +stench +stencil +step +step-aunt +step-brother +step-daughter +step-father +step-grandfather +step-grandmother +step-mother +step-sister +step-son +step-uncle +stepdaughter +stepmother +stepping-stone +stepson +stereo +stew +steward +stick +sticker +stiletto +still +stimulation +stimulus +sting +stinger +stir-fry +stitch +stitcher +stock +stock-in-trade +stockings +stole +stomach +stone +stonework +stool +stop +stopsign +stopwatch +storage +store +storey +storm +story +story-telling +storyboard +stot +stove +strait +strand +stranger +strap +strategy +straw +strawberry +strawman +stream +street +streetcar +strength +stress +stretch +strife +strike +string +strip +stripe +strobe +stroke +structure +strudel +struggle +stucco +stud +student +studio +study +stuff +stumbling +stump +stupidity +sturgeon +sty +style +styling +stylus +sub +subcomponent +subconscious +subcontractor +subexpression +subgroup +subject +submarine +submitter +subprime +subroutine +subscription +subsection +subset +subsidence +subsidiary +subsidy +substance +substitution +subtitle +suburb +subway +success +succotash +suck +sucker +suede +suet +suffocation +sugar +suggestion +suicide +suit +suitcase +suite +sulfur +sultan +sum +summary +summer +summit +sun +sunbeam +sunbonnet +sundae +sunday +sundial +sunflower +sunglasses +sunlamp +sunlight +sunrise +sunroom +sunset +sunshine +superiority +supermarket +supernatural +supervision +supervisor +supper +supplement +supplier +supply +support +supporter +suppression +supreme +surface +surfboard +surge +surgeon +surgery +surname +surplus +surprise +surround +surroundings +surrounds +survey +survival +survivor +sushi +suspect +suspenders +suspension +sustainment +sustenance +swallow +swamp +swan +swanling +swath +sweat +sweater +sweatshirt +sweatshop +sweatsuit +sweets +swell +swim +swimming +swimsuit +swine +swing +switch +switchboard +switching +swivel +sword +swordfight +swordfish +sycamore +symbol +symmetry +sympathy +symptom +syndicate +syndrome +synergy +synod +synonym +synthesis +syrup +system +t-shirt +tab +tabby +tabernacle +table +tablecloth +tablet +tabletop +tachometer +tackle +taco +tactics +tactile +tadpole +tag +tail +tailbud +tailor +tailspin +take-out +takeover +tale +talent +talk +talking +tam-o'-shanter +tamale +tambour +tambourine +tan +tandem +tangerine +tank +tank-top +tanker +tankful +tap +tape +tapioca +target +taro +tarragon +tart +task +tassel +taste +tatami +tattler +tattoo +tavern +tax +taxi +taxicab +taxpayer +tea +teacher +teaching +team +teammate +teapot +tear +tech +technician +technique +technologist +technology +tectonics +teen +teenager +teepee +telephone +telescreen +teletype +television +tell +teller +temp +temper +temperature +temple +tempo +temporariness +temporary +temptation +temptress +tenant +tendency +tender +tenement +tenet +tennis +tenor +tension +tensor +tent +tentacle +tenth +tepee +teriyaki +term +terminal +termination +terminology +termite +terrace +terracotta +terrapin +terrarium +territory +terror +terrorism +terrorist +test +testament +testimonial +testimony +testing +text +textbook +textual +texture +thanks +thaw +theater +theft +theism +theme +theology +theory +therapist +therapy +thermals +thermometer +thermostat +thesis +thickness +thief +thigh +thing +thinking +thirst +thistle +thong +thongs +thorn +thought +thousand +thread +threat +threshold +thrift +thrill +throat +throne +thrush +thrust +thug +thumb +thump +thunder +thunderbolt +thunderhead +thunderstorm +thyme +tiara +tic +tick +ticket +tide +tie +tiger +tights +tile +till +tilt +timbale +timber +time +timeline +timeout +timer +timetable +timing +timpani +tin +tinderbox +tinkle +tintype +tip +tire +tissue +titanium +title +toad +toast +toaster +tobacco +today +toe +toenail +toffee +tofu +tog +toga +toilet +tolerance +tolerant +toll +tom-tom +tomatillo +tomato +tomb +tomography +tomorrow +ton +tonality +tone +tongue +tonic +tonight +tool +toot +tooth +toothbrush +toothpaste +toothpick +top +top-hat +topic +topsail +toque +toreador +tornado +torso +torte +tortellini +tortilla +tortoise +tosser +total +tote +touch +tough-guy +tour +tourism +tourist +tournament +tow-truck +towel +tower +town +townhouse +township +toy +trace +trachoma +track +tracking +tracksuit +tract +tractor +trade +trader +trading +tradition +traditionalism +traffic +trafficker +tragedy +trail +trailer +trailpatrol +train +trainer +training +trait +tram +tramp +trance +transaction +transcript +transfer +transformation +transit +transition +translation +transmission +transom +transparency +transplantation +transport +transportation +trap +trapdoor +trapezium +trapezoid +trash +travel +traveler +tray +treasure +treasury +treat +treatment +treaty +tree +trek +trellis +tremor +trench +trend +triad +trial +triangle +tribe +tributary +trick +trigger +trigonometry +trillion +trim +trinket +trip +tripod +tritone +triumph +trolley +trombone +troop +trooper +trophy +trouble +trousers +trout +trove +trowel +truck +trumpet +trunk +trust +trustee +truth +try +tsunami +tub +tuba +tube +tuber +tug +tugboat +tuition +tulip +tumbler +tummy +tuna +tune +tune-up +tunic +tunnel +turban +turf +turkey +turmeric +turn +turning +turnip +turnover +turnstile +turret +turtle +tusk +tussle +tutu +tuxedo +tweet +tweezers +twig +twilight +twine +twins +twist +twister +twitter +type +typeface +typewriter +typhoon +ukulele +ultimatum +umbrella +unblinking +uncertainty +uncle +underclothes +underestimate +underground +underneath +underpants +underpass +undershirt +understanding +understatement +undertaker +underwear +underweight +underwire +underwriting +unemployment +unibody +uniform +uniformity +union +unique +unit +unity +universe +university +update +upgrade +uplift +upper +upstairs +upward +urge +urgency +urn +usage +use +user +usher +usual +utensil +utilisation +utility +utilization +vacation +vaccine +vacuum +vagrant +valance +valentine +validate +validity +valley +valuable +value +vampire +van +vanadyl +vane +vanilla +vanity +variability +variable +variant +variation +variety +vascular +vase +vault +vaulting +veal +vector +vegetable +vegetarian +vegetarianism +vegetation +vehicle +veil +vein +veldt +vellum +velocity +velodrome +velvet +vendor +veneer +vengeance +venison +venom +venti +venture +venue +veranda +verb +verdict +verification +vermicelli +vernacular +verse +version +vertigo +verve +vessel +vest +vestment +vet +veteran +veterinarian +veto +viability +vibe +vibraphone +vibration +vibrissae +vice +vicinity +victim +victory +video +view +viewer +vignette +villa +village +vine +vinegar +vineyard +vintage +vintner +vinyl +viola +violation +violence +violet +violin +virginal +virtue +virus +visa +viscose +vise +vision +visit +visitor +visor +vista +visual +vitality +vitamin +vitro +vivo +vixen +vodka +vogue +voice +void +vol +volatility +volcano +volleyball +volume +volunteer +volunteering +vomit +vote +voter +voting +voyage +vulture +wad +wafer +waffle +wage +wagon +waist +waistband +wait +waiter +waiting +waitress +waiver +wake +walk +walker +walking +walkway +wall +wallaby +wallet +walnut +walrus +wampum +wannabe +want +war +warden +wardrobe +warfare +warlock +warlord +warm-up +warming +warmth +warning +warrant +warren +warrior +wasabi +wash +washbasin +washcloth +washer +washtub +wasp +waste +wastebasket +wasting +watch +watcher +watchmaker +water +waterbed +watercress +waterfall +waterfront +watermelon +waterskiing +waterspout +waterwheel +wave +waveform +wax +way +weakness +wealth +weapon +wear +weasel +weather +web +webinar +webmail +webpage +website +wedding +wedge +weed +weeder +weedkiller +week +weekend +weekender +weight +weird +welcome +welfare +well +well-being +west +western +wet-bar +wetland +wetsuit +whack +whale +wharf +wheat +wheel +whelp +whey +whip +whirlpool +whirlwind +whisker +whiskey +whisper +whistle +white +whole +wholesale +wholesaler +whorl +wick +widget +widow +width +wife +wifi +wild +wildebeest +wilderness +wildlife +will +willingness +willow +win +wind +wind-chime +windage +window +windscreen +windshield +wine +winery +wing +wingman +wingtip +wink +winner +winter +wire +wiretap +wiring +wisdom +wiseguy +wish +wisteria +wit +witch +witch-hunt +withdrawal +witness +wok +wolf +woman +wombat +wonder +wont +wood +woodchuck +woodland +woodshed +woodwind +wool +woolens +word +wording +work +workbench +worker +workforce +workhorse +working +workout +workplace +workshop +world +worm +worry +worship +worshiper +worth +wound +wrap +wraparound +wrapper +wrapping +wreck +wrecker +wren +wrench +wrestler +wriggler +wrinkle +wrist +writer +writing +wrong +xylophone +yacht +yahoo +yak +yam +yang +yard +yarmulke +yarn +yawl +year +yeast +yellow +yellowjacket +yesterday +yew +yin +yoga +yogurt +yoke +yolk +young +youngster +yourself +youth +yoyo +yurt +zampone +zebra +zebrafish +zen +zephyr +zero +ziggurat +zinc +zipper +zither +zombie +zone +zoo +zoologist +zoology +zoot-suit +zucchini diff --git a/html/browser/autocomplete.js b/html/browser/autocomplete.js new file mode 100644 index 00000000000..1ca11553b99 --- /dev/null +++ b/html/browser/autocomplete.js @@ -0,0 +1,53 @@ +var $ = document.querySelector.bind(document); +var input; +var submitButton; +var optionsMap = {}; + +function updateTopic() { + if (!input || !submitButton) { + return; + } + + var hrefList = submitButton.getAttribute('href').split(';'); + // Topic must come last in the submit button for this to work + hrefList = hrefList.slice(0, hrefList.length - 1); + hrefList.push(optionsMap[input.value] ? 'submit=' + optionsMap[input.value] : ''); + submitButton.setAttribute('href', hrefList.join(';')); +} + +function setElements() { + input = $('#input'); + submitButton = $('#submit-button'); + var choices = $('#choices'); + + if (!input || !submitButton || !choices) { + return; + } + + + for (var i = 0; i < choices.options.length; i++) { + var name = choices.options[i].value; + var cleaned = decodeURI(name); + optionsMap[cleaned] = name; + choices.options[i].value = cleaned; + } + + input.addEventListener('keyup', function(event) { + if (event.key !== 'Enter') { + return; + } + + if (Object.keys(optionsMap).indexOf(input.value) === -1) { + // Byond doesn't let you to use enter to select + // so we need to prevent unintended submissions + return + } + + submitButton.click(); + event.preventDefault(); + }); + + input.focus(); +} + +window.onload = setElements; diff --git a/html/browser/marked.js b/html/browser/marked.js new file mode 100644 index 00000000000..6fe0e1e4e41 --- /dev/null +++ b/html/browser/marked.js @@ -0,0 +1,26 @@ +/** + * marked - a markdown parser + * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT Licensed) + * https://github.com/markedjs/marked + */ +!function(e){"use strict";var _={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:f,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,nptable:f,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:f,lheading:/^([^\n]+)\n {0,3}(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/,text:/^[^\n]+/};function a(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||m.defaults,this.rules=_.normal,this.options.pedantic?this.rules=_.pedantic:this.options.gfm&&(this.options.tables?this.rules=_.tables:this.rules=_.gfm)}_._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,_.def=i(_.def).replace("label",_._label).replace("title",_._title).getRegex(),_.bullet=/(?:[*+-]|\d{1,9}\.)/,_.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,_.item=i(_.item,"gm").replace(/bull/g,_.bullet).getRegex(),_.list=i(_.list).replace(/bull/g,_.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+_.def.source+")").getRegex(),_._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",_._comment=//,_.html=i(_.html,"i").replace("comment",_._comment).replace("tag",_._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),_.paragraph=i(_.paragraph).replace("hr",_.hr).replace("heading",_.heading).replace("lheading",_.lheading).replace("tag",_._tag).getRegex(),_.blockquote=i(_.blockquote).replace("paragraph",_.paragraph).getRegex(),_.normal=d({},_),_.gfm=d({},_.normal,{fences:/^ {0,3}(`{3,}|~{3,})([^`\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),_.gfm.paragraph=i(_.paragraph).replace("(?!","(?!"+_.gfm.fences.source.replace("\\1","\\2")+"|"+_.list.source.replace("\\1","\\3")+"|").getRegex(),_.tables=d({},_.gfm,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),_.pedantic=d({},_.normal,{html:i("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",_._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/}),a.rules=_,a.lex=function(e,t){return new a(t).lex(e)},a.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},a.prototype.token=function(e,t){var n,r,s,i,l,o,a,h,p,u,c,g,f,d,k,m,b,x;for(e=e.replace(/^ +$/gm,"");e;)if((s=this.rules.newline.exec(e))&&(e=e.substring(s[0].length),1 ?/gm,""),x=1;b.match(/^ {0,3}>/);)x++,this.tokens.push({type:"blockquote_start"}),b=b.replace(/^ *> ?/gm,"");for(this.token(b,t),c=0;c?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:f,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(href(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:f,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~",n.em=i(n.em).replace(/punctuation/g,n._punctuation).getRegex(),n._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,n._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,n._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,n.autolink=i(n.autolink).replace("scheme",n._scheme).replace("email",n._email).getRegex(),n._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,n.tag=i(n.tag).replace("comment",_._comment).replace("attribute",n._attribute).getRegex(),n._label=/(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|`(?!`)|[^\[\]\\`])*?/,n._href=/\s*(<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*)/,n._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,n.link=i(n.link).replace("label",n._label).replace("href",n._href).replace("title",n._title).getRegex(),n.reflink=i(n.reflink).replace("label",n._label).getRegex(),n.normal=d({},n),n.pedantic=d({},n.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:i(/^!?\[(label)\]\((.*?)\)/).replace("label",n._label).getRegex(),reflink:i(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",n._label).getRegex()}),n.gfm=d({},n.normal,{escape:i(n.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\/i.test(i[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(i[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(i[0])&&(this.inRawBlock=!1),e=e.substring(i[0].length),o+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):u(i[0]):i[0];else if(i=this.rules.link.exec(e)){var a=k(i[2],"()");if(-1$/,"$1"),o+=this.outputLink(i,{href:p.escapes(r),title:p.escapes(s)}),this.inLink=!1}else if((i=this.rules.reflink.exec(e))||(i=this.rules.nolink.exec(e))){if(e=e.substring(i[0].length),t=(i[2]||i[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){o+=i[0].charAt(0),e=i[0].substring(1)+e;continue}this.inLink=!0,o+=this.outputLink(i,t),this.inLink=!1}else if(i=this.rules.strong.exec(e))e=e.substring(i[0].length),o+=this.renderer.strong(this.output(i[4]||i[3]||i[2]||i[1]));else if(i=this.rules.em.exec(e))e=e.substring(i[0].length),o+=this.renderer.em(this.output(i[6]||i[5]||i[4]||i[3]||i[2]||i[1]));else if(i=this.rules.code.exec(e))e=e.substring(i[0].length),o+=this.renderer.codespan(u(i[2].trim(),!0));else if(i=this.rules.br.exec(e))e=e.substring(i[0].length),o+=this.renderer.br();else if(i=this.rules.del.exec(e))e=e.substring(i[0].length),o+=this.renderer.del(this.output(i[1]));else if(i=this.rules.autolink.exec(e))e=e.substring(i[0].length),r="@"===i[2]?"mailto:"+(n=u(this.mangle(i[1]))):n=u(i[1]),o+=this.renderer.link(r,null,n);else if(this.inLink||!(i=this.rules.url.exec(e))){if(i=this.rules.text.exec(e))e=e.substring(i[0].length),this.inRawBlock?o+=this.renderer.text(i[0]):o+=this.renderer.text(u(this.smartypants(i[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else{if("@"===i[2])r="mailto:"+(n=u(i[0]));else{for(;l=i[0],i[0]=this.rules._backpedal.exec(i[0])[0],l!==i[0];);n=u(i[0]),r="www."===i[1]?"http://"+n:n}e=e.substring(i[0].length),o+=this.renderer.link(r,null,n)}return o},p.escapes=function(e){return e?e.replace(p.rules._escapes,"$1"):e},p.prototype.outputLink=function(e,t){var n=t.href,r=t.title?u(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,u(e[1]))},p.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},p.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,s=0;s'+(n?e:u(e,!0))+"\n":"
"+(n?e:u(e,!0))+"
"},r.prototype.blockquote=function(e){return"
\n"+e+"
\n"},r.prototype.html=function(e){return e},r.prototype.heading=function(e,t,n,r){return this.options.headerIds?"'+e+"\n":""+e+"\n"},r.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"},r.prototype.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},r.prototype.listitem=function(e){return"
  • "+e+"
  • \n"},r.prototype.checkbox=function(e){return" "},r.prototype.paragraph=function(e){return"

    "+e+"

    \n"},r.prototype.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},r.prototype.tablerow=function(e){return"\n"+e+"\n"},r.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},r.prototype.strong=function(e){return""+e+""},r.prototype.em=function(e){return""+e+""},r.prototype.codespan=function(e){return""+e+""},r.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},r.prototype.del=function(e){return""+e+""},r.prototype.link=function(e,t,n){if(null===(e=l(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"},r.prototype.image=function(e,t,n){if(null===(e=l(this.options.sanitize,this.options.baseUrl,e)))return n;var r=''+n+'":">"},r.prototype.text=function(e){return e},s.prototype.strong=s.prototype.em=s.prototype.codespan=s.prototype.del=s.prototype.text=function(e){return e},s.prototype.link=s.prototype.image=function(e,t,n){return""+n},s.prototype.br=function(){return""},h.parse=function(e,t){return new h(t).parse(e)},h.prototype.parse=function(e){this.inline=new p(e.links,this.options),this.inlineText=new p(e.links,d({},this.options,{renderer:new s})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},h.prototype.next=function(){return this.token=this.tokens.pop(),this.token},h.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},h.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},h.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,g(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,s="",i="";for(n="",e=0;e?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t))for(var n=t;this.seen[n]++,t=n+"-"+this.seen[n],this.seen.hasOwnProperty(t););return this.seen[t]=0,t},u.escapeTest=/[&<>"']/,u.escapeReplace=/[&<>"']/g,u.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},u.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,u.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;var o={},c=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function f(){}function d(e){for(var t,n,r=1;rt)n.splice(t);else for(;n.lengthAn error occurred:

    "+u(e.message+"",!0)+"
    ";throw e}}f.exec=f,m.options=m.setOptions=function(e){return d(m.defaults,e),m},m.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new r,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tables:!0,xhtml:!1}},m.defaults=m.getDefaults(),m.Parser=h,m.parser=h.parse,m.Renderer=r,m.TextRenderer=s,m.Lexer=a,m.lexer=a.lex,m.InlineLexer=p,m.inlineLexer=p.output,m.Slugger=t,m.parse=m,"undefined"!=typeof module&&"object"==typeof exports?module.exports=m:"function"==typeof define&&define.amd?define(function(){return m}):e.marked=m}(this||("undefined"!=typeof window?window:global)); +var $ = document.querySelector.bind(document); + +function parse(node) { + for (var i = 0; i < node.childNodes.length; i++) { + parse(node.childNodes[i]); + } + + if(!node.innerHTML) { + return; + } + node.innerHTML = marked(node.innerHTML.replace(/
    /gi, '\n'), { breaks: true }); +} + +function main() { + if ($('#markdown')) { + parse($('#markdown')); + } +} + +window.onload = main; diff --git a/html/changelog.html b/html/changelog.html index 1d3eb4038b5..b639984a5a6 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,319 @@ -->
    +

    08 July 2019

    +

    Arkatos updated:

    +
      +
    • Clicking on a health doll icon will now check you for injuries
    • +
    • Rechargers now show their contents and charge status on close examine
    • +
    • Smartfridge will now try to put an item in your hands after vending, if able
    • +
    +

    AzuleUtama updated:

    +
      +
    • The cybernetic implant bundle can no longer be bought by traitors.
    • +
    +

    Citinited updated:

    +
      +
    • Alt-clicking the RPD now brings up a radial menu with rotate, flip, and delete modes accessible. The main interface remains unchanged.
    • +
    • Writing in blood can't be done while dead or incapacitated any more
    • +
    • You can't write stuff in blood at a distance any more
    • +
    +

    Couls updated:

    +
      +
    • lantern sprites
    • +
    • typo in msg
    • +
    +

    Improvedname updated:

    +
      +
    • Explorer suits now properly hide tails
    • +
    +

    JKnutson101 updated:

    +
      +
    • Fixed Construction Permits deleting themselves prematurely.
    • +
    +

    Kyep updated:

    +
      +
    • fixed a bug with biogenerator.
    • +
    +

    Markolie updated:

    +
      +
    • Ghosts can now see all PDA messages when enabled through a preference setting.
    • +
    • The Mask of Nar'Sie transformation buttons have been removed, as the mask was removed a long time ago.
    • +
    +

    Shadeykins updated:

    +
      +
    • Changed Quarantine, NT Default, Aggressive, and Corporate AI lawsets. balance: Reduced the ability for NT Default AI's to murder people just because.
    • +
    • Removed several redundancies in Aggressive lawset.
    • +
    • Fixed a few subject-verb disagreements (is -> are).
    • +
    +

    Tayyyyyyy updated:

    +
      +
    • paper supports markdown as well as pencode
    • +
    • Autocomplete for ghost buttons
    • +
    • PMs window scrollable
    • +
    • Fix a bug where a player who reconnects is still shown as disconnected
    • +
    +

    datlo updated:

    +
      +
    • Fix an antag rolling exploit.
    • +
    + +

    30 June 2019

    +

    Crazylemon64 updated:

    +
      +
    • SDQL2 no longer allows a macro argument
    • +
    + +

    28 June 2019

    +

    AffectedArc07 updated:

    +
      +
    • SSticker
    • +
    • You can no longer force-start a round unless its fully initialised.
    • +
    • Tweaks some preference orders
    • +
    • Moved a global define
    • +
    +

    Akatos updated:

    +
      +
    • Smartfridges now visually show approximate number of items inside
    • +
    +

    Arkatos updated:

    +
      +
    • Ragin' Mages gamemode should now be playable without any major issue
    • +
    • Slaughter and Laughter Demons no longer have duplicit objective shown at the Round End
    • +
    • Laughter Demon is now properly called Laughter Demon instead of Slaughter Demon in the role polls
    • +
    • Improved wording and fixed mistakes in Wizard and Ragin' Mages gamemodes
    • +
    • Wizards are now properly polled in the Ragin' Mages gamemode
    • +
    • You can no longer buy Summon Ghosts spell in the Ragin' Mages gamemode
    • +
    • You can no longer buy Bind Soul spell in the Ragin' Mages gamemode
    • +
    • Deck of tarot cards renamed to Guardian Deck in the Wizard spellbook
    • +
    • Rituals and Challenges categories merged into one in the Wizard spellbook
    • +
    • Laughter Demon is now slightly weaker compared to the Slaughter Demon
    • +
    • Bottle of Ooze now creates a magical morph instead of a normal one. Magical morph is capable of casting smoke and forcewall spells.
    • +
    • Visible ghosts will now get a special description about their visibility
    • +
    • Removed Cursed Heart from the Wizard spellbook
    • +
    • Changeling verbs replaced with action buttons
    • +
    • Changeling ability descriptions updated
    • +
    • Added custom icons for changeling action buttons
    • +
    • Added movement animation for mice, chickens and killer tomatoes
    • +
    • Added inhand sprite for eggbox
    • +
    • Added inhand sprites for all types of soaps
    • +
    • Added inhand sprite for small parcel
    • +
    • Added inhand sprite for sechailer
    • +
    • Added inhand sprite for bag of holding
    • +
    • Added new system for outputting contents of smartfridges
    • +
    • Blob split consciousness ability now requires you to directly target a node you want to turn into another sentient overmind instead of selecting a nearest one
    • +
    • Fixed and improved some descriptions regarding Blob offspring
    • +
    • Fixed a case where ghosts had an extra ghost icon visible on them
    • +
    • Fixed a case where some ghosts were too bright
    • +
    • You are now unable to swap forms with another changeling
    • +
    • You can no longer hiss while muzzled
    • +
    • Upon purchasing Augmented Eyesight changeling ability, changeling immediately receives passive version of the ability
    • +
    • Changelings in the lesser form can now toggle Augmented Eyesight ability
    • +
    • Changelings are now removed properly via Traitor Panel
    • +
    • Changelings do not get their action buttons bugged when using Swap Forms ability now
    • +
    • Action buttons should update their cooldown statuses more reliably
    • +
    • Changelings should now correctly receive their action buttons
    • +
    • Changelings now do not steal action buttons from other changelings
    • +
    • Added new Boo! spell icon
    • +
    +

    Christasmurf updated:

    +
      +
    • Fixes a random pixel on the leather shoes
    • +
    +

    Citinited updated:

    +
      +
    • Boo affects APCs again
    • +
    • Boo no longer fully charges when you enter your corpse
    • +
    • The button to close radial menus is much more obvious and easily-clickable now
    • +
    • Destroying a disposals trunk should no longer occasionally delete things held inside it.
    • +
    • Fixes conveyor belts not moving items spawned via an autolathe. (And other possible behaviours when machines switch between speed and normal processes)
    • +
    • Ports liquid dispenser sprites from tgstation.
    • +
    +

    Couls updated:

    +
      +
    • Only names from the manifest will be used for syndicate code phrases
    • +
    • randomly generated people names from syndicate code phrases
    • +
    • Medical category to exosuit fabricator with implants and cybernetics
    • +
    • t-t-t-typo!
    • +
    • codephrase names no longer appear blank
    • +
    +

    EmanTheAlmighty updated:

    +
      +
    • Admin made cultists can now properly summon their Gods if the gamemode wasn't initially Cult.
    • +
    +

    Evankhell561 updated:

    +
      +
    • Portable Seed Extractor designon the protolathe.
    • +
    +

    Fethas updated:

    +
      +
    • Fixes an oversight from the lavaland port invovling Laz injectors and sentience typing that didn't carry over from tg.
    • +
    +

    Fox McCloud updated:

    +
      +
    • Future proofs the coming Ticker subsystem
    • +
    • Removes the Process Scheduler
    • +
    +

    Improvedname updated:

    +
      +
    • Cargo miner starter kit crate will no longer include a ID
    • +
    +

    Kyep updated:

    +
      +
    • Ported XKeyScore from TG.
    • +
    • New system to securely link ingame/forum accounts
    • +
    • Removed old insecure 'link discord account' system
    • +
    • unanchored vending machines will no longer generate a runtime error when throwing products at people.
    • +
    • Disarming/grabbing a door with IDSCAN disabled no longer results in a can_admin_interact runtime error.
    • +
    • Terror Spiders no longer trigger their special attack when nuzzling someone on help intent.
    • +
    +

    Markolie updated:

    +
      +
    • Chameleon items now use the appropriate species icon.
    • +
    • Lighting now respects color blindness again.
    • +
    • pAI flashlights now work properly.
    • +
    • Rotatium can now be created properly.
    • +
    • Ghosts can now transition through space again. This is now done by clicking on the edge of space.
    • +
    • Added custom explorer gas mask sprites for Grey/Drask.
    • +
    • Added a lantern to the Hermit cave.
    • +
    • Added a bone setter, bone gel, FixOVein, sterile masks and sterile gloves to the Lavaland Syndicate base.
    • +
    • The pickaxes on the Lavaland labor camp have been replaced with safety variants. The flashlights have been replaced with lanterns.
    • +
    • Fixed many species missing sprites for explorer gas masks and jumpsuits. They now use the humans icons until we have custom sprites.
    • +
    • Resolved an issue with piping not working on the Lavaland mining bases.
    • +
    • Fixed all items being free in the mining vendor.
    • +
    • Fixed improper wiring to the turbine in the Lavaland Syndicate base.
    • +
    • Fixed the Lavaland Syndicate base oxygen sensor not working.
    • +
    • Moved the pipe dispenser in the Lavaland Syndicate base so it doesn't clip with tables.
    • +
    • Fixed the Lavaland Syndicate base incinerator doors not working.
    • +
    • Ash Walkers now once more have fine manipulation. Their lack of fine manipulation caused unintended side effects (such as them being unable to mine).
    • +
    • Ash Walkers (and other ghost spawner roles) can no longer be antagonist targets or become antagonists through the antagonist creation.
    • +
    • Fixed the Lavaland Syndicate base incinerator buttons not working.
    • +
    • Fixed the Syndicate communication agent spawning with a broken voice changer mask.
    • +
    • Fixed the Disk Compartmentalizer not having a sprite.
    • +
    • The Ancient Goliath now has a small chance of spawning instead of regular goliaths.
    • +
    • Survival capsules now have a NanoMed.
    • +
    • Water bottles now behave as glass containers.
    • +
    • The behaviour of glass reagent containers has changed. When used on non-mobs, contents will now only be spilled on harm intent. When used on mobs, on any intent aside from harm the contents will be fed to the mob like regular drinks. On harm intent it will still be spilled.
    • +
    • Hairless hide can now be made wet using most sources of water (minimum volume of 10), instead of just washing machines.
    • +
    • Added some additional offstation role checks to ensure ghost spawner roles don't become antagonists, are kidnap targets or are counted towards station goals.
    • +
    • Fixed some piping in the Lavaland Syndicate base incinerator and made sure the vault door starts locked.
    • +
    • Fixed the Lavaland swarmers getting stuck on propulsion.
    • +
    • Fix goliath tentacles sometimes being left behind.
    • +
    • The walls around the Lavaland Syndicate base turbine have been coated, to prevent them from starting a plasma fire in the base.
    • +
    • Syndicate agents can now access the air alarms on the Lavaland Syndicate base.
    • +
    • Air alarm control computers can no longer access the air alarms on the Lavaland Syndicate base.
    • +
    • Fixed the disk compartmentalizer/drying rack missing a sprite under certain circumstances.
    • +
    • Fixed the Lavaland Syndicate base triggering atmospherics alerts.
    • +
    • You can now properly place tiles on basalt.
    • +
    • An exploit with the sheet multiplier has been fixed.
    • +
    • Portals can now be activated by clicking on them with or without an object. Ghosts can now also click on them to be taken to their destination.
    • +
    • Portals now warn admins when they are used to teleport megafauna.
    • +
    • The singularity can now eat basalt and chasms on Lavaland. They get turned into lava.
    • +
    • AI swarmers will no longer get stuck on effects (such as blood).
    • +
    • Fixed the spectral blade turning all ghosts visible.
    • +
    • Fixed a runtime with assigning outfits to mindless mobs.
    • +
    • Fixed certain alarms triggering despite being outside of station contact and the Syndicate base still triggering fire alarms.
    • +
    • Fixed being unable to put the wormhole jaunter in the belt slot.
    • +
    • Fixed the disk compartmentalizer not accepting disks.
    • +
    • Gutlunches and Gubbucks will now reproduce properly.
    • +
    • The necropolis chest cult clothing drop no longer spawns with a cult hood as well, as that's part of the suit itself.
    • +
    • Goliath steaks can now be eaten properly.
    • +
    • Fixed a stray light on the beach ruin.
    • +
    • Lavaland ruins should no longer spawn on the Labor Camp.
    • +
    • Ancient goliaths will now properly randomly spawn tentacles.
    • +
    • The labor camp will now spawn properly with a processing console.
    • +
    • Water turfs in the beach ruin (and other water turfs that previously didn't do so) will now properly apply water to you.
    • +
    • Ash flora is now anchored.
    • +
    • Gutlunches will now eat properly.
    • +
    • The tesla can no longer travel through wormholes.
    • +
    • Fixed an issue with honkbot construction.
    • +
    +

    Markolie and Ionward updated:

    +
      +
    • Added Tajaran, Vulpkanin, Unathi and Vox sprites for the explorer gas mask (thanks to Ionward!)
    • +
    • Added custom species sprites for the explorer suits and hoods (thanks to Ionward!)
    • +
    • Added missing surgical tools and a pet vendor to the animal hospital.
    • +
    • Added a custom cigarette vendor to the beach biodome ruin.
    • +
    • Added an autolathe and RPD to the Lavaland Syndicate base. Also added a custom cigarette vendor and made the vendors not charge money.
    • +
    • Added tiny fans to the mining base and labor camp exist.
    • +
    • A separate jobban for ghost roles has been added.
    • +
    • The alternative sink now has directional sprites. This resolves an issue with shelters having sinks facing the wrong way.
    • +
    • Fixed the Syndicate sleepers on the Lavaland Syndicate base pointing the wrong way when a ghost role spawns in.
    • +
    • Fixed Lava being removed by the staff of lava not working. Also added a missing warning effect when the staff is turning regular turf into lava.
    • +
    • Fixed random bookcases not spawning books (hopefully).
    • +
    • Fixed surgical drapes not having a sprite.
    • +
    • Fixed being unable to modify the GPS tag of shelters.
    • +
    • Fixed the Lavaland swarmers not eating anything.
    • +
    • The ash drake swoop attack is no longer incredibly loud.
    • +
    • The Syndicate base self-destruct is now much more powerful and capable of destroying the entire base.
    • +
    • The flavor text of Ash Walkers and Syndicate operatives now clarifies what they can('t) do.
    • +
    • Ash walkers can no longer use machinery.
    • +
    +

    Ported by Markolie and CornMyCob. Developed by many /tg/ coders updated:

    +
      +
    • The mining asteroid has been replaced with Lavaland.
    • +
    +

    Shadeykins updated:

    +
      +
    • Fixes a paper exploit.
    • +
    • Fixes rogue pixels on breath masks/gas masks for Plasmamen.
    • +
    +

    TDSSS updated:

    +
      +
    • Vampire rejuv wakes you up if you're asleep now
    • +
    • Cling epinephrine wakes you up if you're asleep now
    • +
    • Sling glare popup no longer lists invalid targets for glaring
    • +
    +

    Tayyyyyyy updated:

    +
      +
    • Messages window (My PMs in OOC tab)
    • +
    • You no longer have to wait on others for ERT spawning
    • +
    • Admin jobs no longer announced
    • +
    +

    Terilia updated:

    +
      +
    • Added the Donksoft sniper into the Trader spawnpool.
    • +
    +

    Ty-Omaha updated:

    +
      +
    • Changed admin take ticket color from neon green to Asay pink
    • +
    • Manual bans now auto-note
    • +
    • Stops projectiles using the legacy system such as emitters from hurting shield blobs due to an exploit where it would always hit or go through.
    • +
    +

    craftxbox updated:

    +
      +
    • Highlight string uses regex
    • +
    • Removed jquery mark
    • +
    +

    datlo updated:

    +
      +
    • The Syndicate will no longer hire golems as agents.
    • +
    • Banana juice and Banana honk will now heal everyone with the Comic Sans mutation instead of checking for the clown job
    • +
    • Nothing will now check if the player has an active vow of silence instead of checking for the mime job
    • +
    • Ghosts will no longer get the wrong role offered when a nukie spawns a borg and will properly be informed whether they will spawn as a nuke ops or a syndi cyborg.
    • +
    +

    dovydas12345 updated:

    +
      +
    • Fixes cryopod removing ambulance, secway keys
    • +
    • Fixes cryopod recovering the invisible headpocket item
    • +
    +

    farie82 updated:

    +
      +
    • Can't use cuffs now while you have antidrop
    • +
    • can_equip now checks if you have the limbs required to equip something
    • +
    • Reverts the string highlighting done by regex
    • +
    +

    iantine updated:

    +
      +
    • Skrell *warble emote
    • +
    +

    uc_guy updated:

    +
      +
    • Theft objective locations hints now ignore the Centcomm Z level.
    • +
    • Adv. Pinpointer no longer targets items in Centcom Z level.
    • +
    • Fixed "Venus Human Traps" being invisible.
    • +
    +

    10 May 2019

    AffectedArc07 updated:

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index d0e51aa9571..49e86db023d 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -10162,3 +10162,295 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscdel: Some of space hotel's functions. - rscdel: Bodysnatch gland. - tweak: process_ai has been deprecated +2019-06-28: + AffectedArc07: + - rscadd: SSticker + - tweak: You can no longer force-start a round unless its fully initialised. + - tweak: Tweaks some preference orders + - tweak: Moved a global define + Akatos: + - tweak: Smartfridges now visually show approximate number of items inside + Arkatos: + - bugfix: Ragin' Mages gamemode should now be playable without any major issue + - bugfix: Slaughter and Laughter Demons no longer have duplicit objective shown + at the Round End + - bugfix: Laughter Demon is now properly called Laughter Demon instead of Slaughter + Demon in the role polls + - spellcheck: Improved wording and fixed mistakes in Wizard and Ragin' Mages gamemodes + - tweak: Wizards are now properly polled in the Ragin' Mages gamemode + - tweak: You can no longer buy Summon Ghosts spell in the Ragin' Mages gamemode + - tweak: You can no longer buy Bind Soul spell in the Ragin' Mages gamemode + - tweak: Deck of tarot cards renamed to Guardian Deck in the Wizard spellbook + - tweak: Rituals and Challenges categories merged into one in the Wizard spellbook + - tweak: Laughter Demon is now slightly weaker compared to the Slaughter Demon + - tweak: Bottle of Ooze now creates a magical morph instead of a normal one. Magical + morph is capable of casting smoke and forcewall spells. + - tweak: Visible ghosts will now get a special description about their visibility + - rscdel: Removed Cursed Heart from the Wizard spellbook + - rscadd: Changeling verbs replaced with action buttons + - tweak: Changeling ability descriptions updated + - imageadd: Added custom icons for changeling action buttons + - imageadd: Added movement animation for mice, chickens and killer tomatoes + - imageadd: Added inhand sprite for eggbox + - imageadd: Added inhand sprites for all types of soaps + - imageadd: Added inhand sprite for small parcel + - imageadd: Added inhand sprite for sechailer + - imageadd: Added inhand sprite for bag of holding + - tweak: Added new system for outputting contents of smartfridges + - tweak: Blob split consciousness ability now requires you to directly target a + node you want to turn into another sentient overmind instead of selecting a + nearest one + - spellcheck: Fixed and improved some descriptions regarding Blob offspring + - bugfix: Fixed a case where ghosts had an extra ghost icon visible on them + - bugfix: Fixed a case where some ghosts were too bright + - bugfix: You are now unable to swap forms with another changeling + - bugfix: You can no longer hiss while muzzled + - tweak: Upon purchasing Augmented Eyesight changeling ability, changeling immediately + receives passive version of the ability + - tweak: Changelings in the lesser form can now toggle Augmented Eyesight ability + - bugfix: Changelings are now removed properly via Traitor Panel + - bugfix: Changelings do not get their action buttons bugged when using Swap Forms + ability now + - bugfix: Action buttons should update their cooldown statuses more reliably + - bugfix: Changelings should now correctly receive their action buttons + - bugfix: Changelings now do not steal action buttons from other changelings + - imageadd: Added new Boo! spell icon + Christasmurf: + - bugfix: Fixes a random pixel on the leather shoes + Citinited: + - bugfix: Boo affects APCs again + - bugfix: Boo no longer fully charges when you enter your corpse + - tweak: The button to close radial menus is much more obvious and easily-clickable + now + - bugfix: Destroying a disposals trunk should no longer occasionally delete things + held inside it. + - bugfix: Fixes conveyor belts not moving items spawned via an autolathe. (And other + possible behaviours when machines switch between speed and normal processes) + - imageadd: Ports liquid dispenser sprites from tgstation. + Couls: + - rscadd: Only names from the manifest will be used for syndicate code phrases + - rscdel: randomly generated people names from syndicate code phrases + - rscadd: Medical category to exosuit fabricator with implants and cybernetics + - bugfix: t-t-t-typo! + - bugfix: codephrase names no longer appear blank + EmanTheAlmighty: + - tweak: Admin made cultists can now properly summon their Gods if the gamemode + wasn't initially Cult. + Evankhell561: + - bugfix: Portable Seed Extractor designon the protolathe. + Fethas: + - bugfix: Fixes an oversight from the lavaland port invovling Laz injectors and + sentience typing that didn't carry over from tg. + Fox McCloud: + - bugfix: Future proofs the coming Ticker subsystem + - rscdel: Removes the Process Scheduler + Improvedname: + - tweak: Cargo miner starter kit crate will no longer include a ID + Kyep: + - rscadd: Ported XKeyScore from TG. + - rscadd: New system to securely link ingame/forum accounts + - rscdel: Removed old insecure 'link discord account' system + - bugfix: unanchored vending machines will no longer generate a runtime error when + throwing products at people. + - bugfix: Disarming/grabbing a door with IDSCAN disabled no longer results in a + can_admin_interact runtime error. + - bugfix: Terror Spiders no longer trigger their special attack when nuzzling someone + on help intent. + Markolie: + - bugfix: Chameleon items now use the appropriate species icon. + - bugfix: Lighting now respects color blindness again. + - bugfix: pAI flashlights now work properly. + - bugfix: Rotatium can now be created properly. + - bugfix: Ghosts can now transition through space again. This is now done by clicking + on the edge of space. + - rscadd: Added custom explorer gas mask sprites for Grey/Drask. + - rscadd: Added a lantern to the Hermit cave. + - rscadd: Added a bone setter, bone gel, FixOVein, sterile masks and sterile gloves + to the Lavaland Syndicate base. + - rscadd: The pickaxes on the Lavaland labor camp have been replaced with safety + variants. The flashlights have been replaced with lanterns. + - bugfix: Fixed many species missing sprites for explorer gas masks and jumpsuits. + They now use the humans icons until we have custom sprites. + - bugfix: Resolved an issue with piping not working on the Lavaland mining bases. + - bugfix: Fixed all items being free in the mining vendor. + - bugfix: Fixed improper wiring to the turbine in the Lavaland Syndicate base. + - bugfix: Fixed the Lavaland Syndicate base oxygen sensor not working. + - bugfix: Moved the pipe dispenser in the Lavaland Syndicate base so it doesn't + clip with tables. + - bugfix: Fixed the Lavaland Syndicate base incinerator doors not working. + - tweak: Ash Walkers now once more have fine manipulation. Their lack of fine manipulation + caused unintended side effects (such as them being unable to mine). + - bugfix: Ash Walkers (and other ghost spawner roles) can no longer be antagonist + targets or become antagonists through the antagonist creation. + - bugfix: Fixed the Lavaland Syndicate base incinerator buttons not working. + - bugfix: Fixed the Syndicate communication agent spawning with a broken voice changer + mask. + - bugfix: Fixed the Disk Compartmentalizer not having a sprite. + - rscadd: The Ancient Goliath now has a small chance of spawning instead of regular + goliaths. + - rscadd: Survival capsules now have a NanoMed. + - tweak: Water bottles now behave as glass containers. + - tweak: The behaviour of glass reagent containers has changed. When used on non-mobs, + contents will now only be spilled on harm intent. When used on mobs, on any + intent aside from harm the contents will be fed to the mob like regular drinks. + On harm intent it will still be spilled. + - tweak: Hairless hide can now be made wet using most sources of water (minimum + volume of 10), instead of just washing machines. + - bugfix: Added some additional offstation role checks to ensure ghost spawner roles + don't become antagonists, are kidnap targets or are counted towards station + goals. + - bugfix: Fixed some piping in the Lavaland Syndicate base incinerator and made + sure the vault door starts locked. + - bugfix: Fixed the Lavaland swarmers getting stuck on propulsion. + - bugfix: Fix goliath tentacles sometimes being left behind. + - bugfix: The walls around the Lavaland Syndicate base turbine have been coated, + to prevent them from starting a plasma fire in the base. + - bugfix: Syndicate agents can now access the air alarms on the Lavaland Syndicate + base. + - bugfix: Air alarm control computers can no longer access the air alarms on the + Lavaland Syndicate base. + - bugfix: Fixed the disk compartmentalizer/drying rack missing a sprite under certain + circumstances. + - bugfix: Fixed the Lavaland Syndicate base triggering atmospherics alerts. + - bugfix: You can now properly place tiles on basalt. + - bugfix: An exploit with the sheet multiplier has been fixed. + - rscadd: Portals can now be activated by clicking on them with or without an object. + Ghosts can now also click on them to be taken to their destination. + - rscadd: Portals now warn admins when they are used to teleport megafauna. + - tweak: The singularity can now eat basalt and chasms on Lavaland. They get turned + into lava. + - bugfix: AI swarmers will no longer get stuck on effects (such as blood). + - bugfix: Fixed the spectral blade turning all ghosts visible. + - bugfix: Fixed a runtime with assigning outfits to mindless mobs. + - bugfix: Fixed certain alarms triggering despite being outside of station contact + and the Syndicate base still triggering fire alarms. + - bugfix: Fixed being unable to put the wormhole jaunter in the belt slot. + - bugfix: Fixed the disk compartmentalizer not accepting disks. + - bugfix: Gutlunches and Gubbucks will now reproduce properly. + - bugfix: The necropolis chest cult clothing drop no longer spawns with a cult hood + as well, as that's part of the suit itself. + - bugfix: Goliath steaks can now be eaten properly. + - bugfix: Fixed a stray light on the beach ruin. + - bugfix: Lavaland ruins should no longer spawn on the Labor Camp. + - bugfix: Ancient goliaths will now properly randomly spawn tentacles. + - bugfix: The labor camp will now spawn properly with a processing console. + - bugfix: Water turfs in the beach ruin (and other water turfs that previously didn't + do so) will now properly apply water to you. + - bugfix: Ash flora is now anchored. + - bugfix: Gutlunches will now eat properly. + - bugfix: The tesla can no longer travel through wormholes. + - bugfix: Fixed an issue with honkbot construction. + Markolie and Ionward: + - rscadd: Added Tajaran, Vulpkanin, Unathi and Vox sprites for the explorer gas + mask (thanks to Ionward!) + - rscadd: Added custom species sprites for the explorer suits and hoods (thanks + to Ionward!) + - rscadd: Added missing surgical tools and a pet vendor to the animal hospital. + - rscadd: Added a custom cigarette vendor to the beach biodome ruin. + - rscadd: Added an autolathe and RPD to the Lavaland Syndicate base. Also added + a custom cigarette vendor and made the vendors not charge money. + - rscadd: Added tiny fans to the mining base and labor camp exist. + - rscadd: A separate jobban for ghost roles has been added. + - bugfix: The alternative sink now has directional sprites. This resolves an issue + with shelters having sinks facing the wrong way. + - bugfix: Fixed the Syndicate sleepers on the Lavaland Syndicate base pointing the + wrong way when a ghost role spawns in. + - bugfix: Fixed Lava being removed by the staff of lava not working. Also added + a missing warning effect when the staff is turning regular turf into lava. + - bugfix: Fixed random bookcases not spawning books (hopefully). + - bugfix: Fixed surgical drapes not having a sprite. + - bugfix: Fixed being unable to modify the GPS tag of shelters. + - bugfix: Fixed the Lavaland swarmers not eating anything. + - bugfix: The ash drake swoop attack is no longer incredibly loud. + - tweak: The Syndicate base self-destruct is now much more powerful and capable + of destroying the entire base. + - tweak: The flavor text of Ash Walkers and Syndicate operatives now clarifies what + they can('t) do. + - tweak: Ash walkers can no longer use machinery. + Ported by Markolie and CornMyCob. Developed by many /tg/ coders: + - rscadd: The mining asteroid has been replaced with Lavaland. + Shadeykins: + - bugfix: Fixes a paper exploit. + - bugfix: Fixes rogue pixels on breath masks/gas masks for Plasmamen. + TDSSS: + - tweak: Vampire rejuv wakes you up if you're asleep now + - tweak: Cling epinephrine wakes you up if you're asleep now + - tweak: Sling glare popup no longer lists invalid targets for glaring + Tayyyyyyy: + - rscadd: Messages window (My PMs in OOC tab) + - tweak: You no longer have to wait on others for ERT spawning + - bugfix: Admin jobs no longer announced + Terilia: + - rscadd: Added the Donksoft sniper into the Trader spawnpool. + Ty-Omaha: + - tweak: Changed admin take ticket color from neon green to Asay pink + - bugfix: Manual bans now auto-note + - bugfix: Stops projectiles using the legacy system such as emitters from hurting + shield blobs due to an exploit where it would always hit or go through. + craftxbox: + - tweak: Highlight string uses regex + - rscdel: Removed jquery mark + datlo: + - bugfix: The Syndicate will no longer hire golems as agents. + - tweak: Banana juice and Banana honk will now heal everyone with the Comic Sans + mutation instead of checking for the clown job + - tweak: Nothing will now check if the player has an active vow of silence instead + of checking for the mime job + - bugfix: Ghosts will no longer get the wrong role offered when a nukie spawns a + borg and will properly be informed whether they will spawn as a nuke ops or + a syndi cyborg. + dovydas12345: + - bugfix: Fixes cryopod removing ambulance, secway keys + - bugfix: Fixes cryopod recovering the invisible headpocket item + farie82: + - bugfix: Can't use cuffs now while you have antidrop + - bugfix: can_equip now checks if you have the limbs required to equip something + - rscdel: Reverts the string highlighting done by regex + iantine: + - rscadd: Skrell *warble emote + uc_guy: + - bugfix: Theft objective locations hints now ignore the Centcomm Z level. + - bugfix: Adv. Pinpointer no longer targets items in Centcom Z level. + - bugfix: Fixed "Venus Human Traps" being invisible. +2019-06-30: + Crazylemon64: + - rscdel: SDQL2 no longer allows a macro argument +2019-07-08: + Arkatos: + - tweak: Clicking on a health doll icon will now check you for injuries + - rscadd: Rechargers now show their contents and charge status on close examine + - tweak: Smartfridge will now try to put an item in your hands after vending, if + able + AzuleUtama: + - bugfix: The cybernetic implant bundle can no longer be bought by traitors. + Citinited: + - rscadd: Alt-clicking the RPD now brings up a radial menu with rotate, flip, and + delete modes accessible. The main interface remains unchanged. + - bugfix: Writing in blood can't be done while dead or incapacitated any more + - bugfix: You can't write stuff in blood at a distance any more + Couls: + - imageadd: lantern sprites + - bugfix: typo in msg + Improvedname: + - bugfix: Explorer suits now properly hide tails + JKnutson101: + - bugfix: Fixed Construction Permits deleting themselves prematurely. + Kyep: + - bugfix: fixed a bug with biogenerator. + Markolie: + - rscadd: Ghosts can now see all PDA messages when enabled through a preference + setting. + - rscdel: The Mask of Nar'Sie transformation buttons have been removed, as the mask + was removed a long time ago. + Shadeykins: + - tweak: 'Changed Quarantine, NT Default, Aggressive, and Corporate AI lawsets. + balance: Reduced the ability for NT Default AI''s to murder people just because.' + - bugfix: Removed several redundancies in Aggressive lawset. + - spellcheck: Fixed a few subject-verb disagreements (is -> are). + Tayyyyyyy: + - tweak: paper supports markdown as well as pencode + - rscadd: Autocomplete for ghost buttons + - tweak: PMs window scrollable + - bugfix: Fix a bug where a player who reconnects is still shown as disconnected + datlo: + - bugfix: Fix an antag rolling exploit. diff --git a/html/changelogs/AutoChangeLog-pr-11125.yml b/html/changelogs/AutoChangeLog-pr-11125.yml new file mode 100644 index 00000000000..2208cf5854c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11125.yml @@ -0,0 +1,8 @@ +author: "Quantum-M" +delete-after: True +changes: + - rscadd: "New sprites for vampires being \"hungry\"." + - rscadd: "New sprite for vampire usable blood count." + - rscadd: "New sprites for the safety muzzle." + - tweak: "Safety muzzle (aka the anti-bitting one) can no longer be resisted out of." + - tweak: "Vampires can now suck blood from monkey mobs (e.g. monkeys, stoks, etc.) for sustenance but do not get blood power points." diff --git a/html/changelogs/AutoChangeLog-pr-11196.yml b/html/changelogs/AutoChangeLog-pr-11196.yml deleted file mode 100644 index fc5f502d62f..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11196.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ported by Markolie and CornMyCob. Developed by many /tg/ coders" -delete-after: True -changes: - - rscadd: "The mining asteroid has been replaced with Lavaland." diff --git a/html/changelogs/AutoChangeLog-pr-11359.yml b/html/changelogs/AutoChangeLog-pr-11359.yml deleted file mode 100644 index 3f93a5677ef..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11359.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Kyep" -delete-after: True -changes: - - rscadd: "Ported XKeyScore from TG." - - rscadd: "New system to securely link ingame/forum accounts" - - rscdel: "Removed old insecure 'link discord account' system" diff --git a/html/changelogs/AutoChangeLog-pr-11368.yml b/html/changelogs/AutoChangeLog-pr-11368.yml deleted file mode 100644 index f2d543bae3a..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11368.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "AffectedArc07" -delete-after: True -changes: - - rscadd: "SSticker" - - tweak: "You can no longer force-start a round unless its fully initialised." diff --git a/html/changelogs/AutoChangeLog-pr-11421.yml b/html/changelogs/AutoChangeLog-pr-11421.yml deleted file mode 100644 index 83e285205c3..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11421.yml +++ /dev/null @@ -1,16 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - bugfix: "Ragin' Mages gamemode should now be playable without any major issue" - - bugfix: "Slaughter and Laughter Demons no longer have duplicit objective shown at the Round End" - - bugfix: "Laughter Demon is now properly called Laughter Demon instead of Slaughter Demon in the role polls" - - spellcheck: "Improved wording and fixed mistakes in Wizard and Ragin' Mages gamemodes" - - tweak: "Wizards are now properly polled in the Ragin' Mages gamemode" - - tweak: "You can no longer buy Summon Ghosts spell in the Ragin' Mages gamemode" - - tweak: "You can no longer buy Bind Soul spell in the Ragin' Mages gamemode" - - tweak: "Deck of tarot cards renamed to Guardian Deck in the Wizard spellbook" - - tweak: "Rituals and Challenges categories merged into one in the Wizard spellbook" - - tweak: "Laughter Demon is now slightly weaker compared to the Slaughter Demon" - - tweak: "Bottle of Ooze now creates a magical morph instead of a normal one. Magical morph is capable of casting smoke and forcewall spells." - - tweak: "Visible ghosts will now get a special description about their visibility" - - rscdel: "Removed Cursed Heart from the Wizard spellbook" diff --git a/html/changelogs/AutoChangeLog-pr-11438.yml b/html/changelogs/AutoChangeLog-pr-11438.yml deleted file mode 100644 index a276198bfa9..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11438.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "EmanTheAlmighty" -delete-after: True -changes: - - tweak: "Admin made cultists can now properly summon their Gods if the gamemode wasn't initially Cult." diff --git a/html/changelogs/AutoChangeLog-pr-11439.yml b/html/changelogs/AutoChangeLog-pr-11439.yml deleted file mode 100644 index c5352502c88..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11439.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - rscadd: "Changeling verbs replaced with action buttons" - - tweak: "Changeling ability descriptions updated" - - imageadd: "Added custom icons for changeling action buttons" diff --git a/html/changelogs/AutoChangeLog-pr-11444.yml b/html/changelogs/AutoChangeLog-pr-11444.yml deleted file mode 100644 index 08ad07a902d..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11444.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Kyep" -delete-after: True -changes: - - bugfix: "unanchored vending machines will no longer generate a runtime error when throwing products at people." diff --git a/html/changelogs/AutoChangeLog-pr-11460.yml b/html/changelogs/AutoChangeLog-pr-11460.yml deleted file mode 100644 index b4fd18328dd..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11460.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - imageadd: "Added movement animation for mice, chickens and killer tomatoes" diff --git a/html/changelogs/AutoChangeLog-pr-11465.yml b/html/changelogs/AutoChangeLog-pr-11465.yml deleted file mode 100644 index a38d2a20e15..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11465.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "farie82" -delete-after: True -changes: - - bugfix: "Can't use cuffs now while you have antidrop" diff --git a/html/changelogs/AutoChangeLog-pr-11466.yml b/html/changelogs/AutoChangeLog-pr-11466.yml deleted file mode 100644 index 0cf1c132b42..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11466.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - bugfix: "Chameleon items now use the appropriate species icon." diff --git a/html/changelogs/AutoChangeLog-pr-11472.yml b/html/changelogs/AutoChangeLog-pr-11472.yml deleted file mode 100644 index acfaebf6e7f..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11472.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Couls" -delete-after: True -changes: - - rscadd: "Only names from the manifest will be used for syndicate code phrases" - - rscdel: "randomly generated people names from syndicate code phrases" diff --git a/html/changelogs/AutoChangeLog-pr-11476.yml b/html/changelogs/AutoChangeLog-pr-11476.yml deleted file mode 100644 index 540d77e7bf3..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11476.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - imageadd: "Added inhand sprite for eggbox" - - imageadd: "Added inhand sprites for all types of soaps" - - imageadd: "Added inhand sprite for small parcel" - - imageadd: "Added inhand sprite for sechailer" - - imageadd: "Added inhand sprite for bag of holding" diff --git a/html/changelogs/AutoChangeLog-pr-11477.yml b/html/changelogs/AutoChangeLog-pr-11477.yml deleted file mode 100644 index 756b6c1e4e4..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11477.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - tweak: "Added new system for outputting contents of smartfridges" diff --git a/html/changelogs/AutoChangeLog-pr-11479.yml b/html/changelogs/AutoChangeLog-pr-11479.yml deleted file mode 100644 index efa34ac077d..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11479.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "TDSSS" -delete-after: True -changes: - - tweak: "Vampire rejuv wakes you up if you're asleep now" - - tweak: "Cling epinephrine wakes you up if you're asleep now" diff --git a/html/changelogs/AutoChangeLog-pr-11480.yml b/html/changelogs/AutoChangeLog-pr-11480.yml deleted file mode 100644 index a4fcc50ceaa..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11480.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Tayyyyyyy" -delete-after: True -changes: - - rscadd: "Messages window (My PMs in OOC tab)" diff --git a/html/changelogs/AutoChangeLog-pr-11482.yml b/html/changelogs/AutoChangeLog-pr-11482.yml deleted file mode 100644 index 65cc53a7f97..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11482.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TDSSS" -delete-after: True -changes: - - tweak: "Sling glare popup no longer lists invalid targets for glaring" diff --git a/html/changelogs/AutoChangeLog-pr-11483.yml b/html/changelogs/AutoChangeLog-pr-11483.yml deleted file mode 100644 index 635f5efede9..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11483.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "datlo" -delete-after: True -changes: - - bugfix: "The Syndicate will no longer hire golems as agents." - - tweak: "Banana juice and Banana honk will now heal everyone with the Comic Sans mutation instead of checking for the clown job" - - tweak: "Nothing will now check if the player has an active vow of silence instead of checking for the mime job" diff --git a/html/changelogs/AutoChangeLog-pr-11486.yml b/html/changelogs/AutoChangeLog-pr-11486.yml deleted file mode 100644 index c854e1f9c4c..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11486.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Tayyyyyyy" -delete-after: True -changes: - - tweak: "You no longer have to wait on others for ERT spawning" diff --git a/html/changelogs/AutoChangeLog-pr-11508.yml b/html/changelogs/AutoChangeLog-pr-11508.yml deleted file mode 100644 index ebe3ed56455..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11508.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "datlo" -delete-after: True -changes: - - bugfix: "Ghosts will no longer get the wrong role offered when a nukie -spawns a borg and will properly be informed whether they will spawn as a -nuke ops or a syndi cyborg." diff --git a/html/changelogs/AutoChangeLog-pr-11511.yml b/html/changelogs/AutoChangeLog-pr-11511.yml deleted file mode 100644 index c32d89bc2fc..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11511.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - bugfix: "Lighting now respects color blindness again." - - bugfix: "pAI flashlights now work properly." diff --git a/html/changelogs/AutoChangeLog-pr-11518.yml b/html/changelogs/AutoChangeLog-pr-11518.yml deleted file mode 100644 index 0ad85e1e84a..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11518.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "farie82" -delete-after: True -changes: - - bugfix: "can_equip now checks if you have the limbs required to equip something" diff --git a/html/changelogs/AutoChangeLog-pr-11520.yml b/html/changelogs/AutoChangeLog-pr-11520.yml deleted file mode 100644 index ffc477deba7..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11520.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Citinited" -delete-after: True -changes: - - bugfix: "Boo affects APCs again" - - bugfix: "Boo no longer fully charges when you enter your corpse" diff --git a/html/changelogs/AutoChangeLog-pr-11521.yml b/html/changelogs/AutoChangeLog-pr-11521.yml deleted file mode 100644 index 48a73a71cac..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11521.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - tweak: "Blob split consciousness ability now requires you to directly target a node you want to turn into another sentient overmind instead of selecting a nearest one" - - spellcheck: "Fixed and improved some descriptions regarding Blob offspring" diff --git a/html/changelogs/AutoChangeLog-pr-11523.yml b/html/changelogs/AutoChangeLog-pr-11523.yml deleted file mode 100644 index 654203e359b..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11523.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Fox McCloud" -delete-after: True -changes: - - bugfix: "Future proofs the coming Ticker subsystem" diff --git a/html/changelogs/AutoChangeLog-pr-11524.yml b/html/changelogs/AutoChangeLog-pr-11524.yml deleted file mode 100644 index e1036ef70a7..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11524.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Fox McCloud" -delete-after: True -changes: - - rscdel: "Removes the Process Scheduler" diff --git a/html/changelogs/AutoChangeLog-pr-11529.yml b/html/changelogs/AutoChangeLog-pr-11529.yml deleted file mode 100644 index 6de125cb71f..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11529.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Citinited" -delete-after: True -changes: - - tweak: "The button to close radial menus is much more obvious and easily-clickable now" diff --git a/html/changelogs/AutoChangeLog-pr-11533.yml b/html/changelogs/AutoChangeLog-pr-11533.yml deleted file mode 100644 index e1708e5901c..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11533.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - bugfix: "Rotatium can now be created properly." diff --git a/html/changelogs/AutoChangeLog-pr-11536.yml b/html/changelogs/AutoChangeLog-pr-11536.yml deleted file mode 100644 index 0fba2aa34e5..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11536.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "dovydas12345" -delete-after: True -changes: - - bugfix: "Fixes cryopod removing ambulance, secway keys" - - bugfix: "Fixes cryopod recovering the invisible headpocket item" diff --git a/html/changelogs/AutoChangeLog-pr-11537.yml b/html/changelogs/AutoChangeLog-pr-11537.yml deleted file mode 100644 index 304766c2b8d..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11537.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Akatos" -delete-after: True -changes: - - tweak: "Smartfridges now visually show approximate number of items inside" diff --git a/html/changelogs/AutoChangeLog-pr-11541.yml b/html/changelogs/AutoChangeLog-pr-11541.yml deleted file mode 100644 index a317a29455f..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11541.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Tayyyyyyy" -delete-after: True -changes: - - bugfix: "Admin jobs no longer announced" diff --git a/html/changelogs/AutoChangeLog-pr-11546.yml b/html/changelogs/AutoChangeLog-pr-11546.yml deleted file mode 100644 index 33a522e1d19..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11546.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Shadeykins" -delete-after: True -changes: - - bugfix: "Fixes a paper exploit." diff --git a/html/changelogs/AutoChangeLog-pr-11547.yml b/html/changelogs/AutoChangeLog-pr-11547.yml deleted file mode 100644 index d3cd23d8632..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11547.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "AffectedArc07" -delete-after: True -changes: - - tweak: "Tweaks some preference orders" diff --git a/html/changelogs/AutoChangeLog-pr-11551.yml b/html/changelogs/AutoChangeLog-pr-11551.yml deleted file mode 100644 index 5770e7a1488..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11551.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - bugfix: "Fixed a case where ghosts had an extra ghost icon visible on them" - - bugfix: "Fixed a case where some ghosts were too bright" diff --git a/html/changelogs/AutoChangeLog-pr-11553.yml b/html/changelogs/AutoChangeLog-pr-11553.yml deleted file mode 100644 index 9954dccfd28..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11553.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ty-Omaha" -delete-after: True -changes: - - tweak: "Changed admin take ticket color from neon green to Asay pink" diff --git a/html/changelogs/AutoChangeLog-pr-11554.yml b/html/changelogs/AutoChangeLog-pr-11554.yml deleted file mode 100644 index 4923c690400..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11554.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - bugfix: "You are now unable to swap forms with another changeling" diff --git a/html/changelogs/AutoChangeLog-pr-11555.yml b/html/changelogs/AutoChangeLog-pr-11555.yml deleted file mode 100644 index 63ff2434d6e..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11555.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - bugfix: "You can no longer hiss while muzzled" diff --git a/html/changelogs/AutoChangeLog-pr-11556.yml b/html/changelogs/AutoChangeLog-pr-11556.yml deleted file mode 100644 index 246cc070f24..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11556.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "AffectedArc07" -delete-after: True -changes: - - tweak: "Moved a global define" diff --git a/html/changelogs/AutoChangeLog-pr-11559.yml b/html/changelogs/AutoChangeLog-pr-11559.yml deleted file mode 100644 index 5bb8465ec94..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11559.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - tweak: "Upon purchasing Augmented Eyesight changeling ability, changeling immediately receives passive version of the ability" - - tweak: "Changelings in the lesser form can now toggle Augmented Eyesight ability" - - bugfix: "Changelings are now removed properly via Traitor Panel" - - bugfix: "Changelings do not get their action buttons bugged when using Swap Forms ability now" - - bugfix: "Action buttons should update their cooldown statuses more reliably" diff --git a/html/changelogs/AutoChangeLog-pr-11566.yml b/html/changelogs/AutoChangeLog-pr-11566.yml new file mode 100644 index 00000000000..09138dc9324 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11566.yml @@ -0,0 +1,5 @@ +author: "Arkatos" +delete-after: True +changes: + - rscadd: "You can ctrl-click any action button to lock/unlock its position" + - tweak: "All actions buttons now start with their position locked" diff --git a/html/changelogs/AutoChangeLog-pr-11567.yml b/html/changelogs/AutoChangeLog-pr-11567.yml deleted file mode 100644 index 8e0769768f9..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11567.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Couls" -delete-after: True -changes: - - bugfix: "t-t-t-typo!" diff --git a/html/changelogs/AutoChangeLog-pr-11573.yml b/html/changelogs/AutoChangeLog-pr-11573.yml deleted file mode 100644 index bb4c67a6cc3..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11573.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Shadeykins" -delete-after: True -changes: - - bugfix: "Fixes rogue pixels on breath masks/gas masks for Plasmamen." diff --git a/html/changelogs/AutoChangeLog-pr-11574.yml b/html/changelogs/AutoChangeLog-pr-11574.yml deleted file mode 100644 index 0acc59e9621..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11574.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Christasmurf" -delete-after: True -changes: - - bugfix: "Fixes a random pixel on the leather shoes" diff --git a/html/changelogs/AutoChangeLog-pr-11582.yml b/html/changelogs/AutoChangeLog-pr-11582.yml deleted file mode 100644 index 455dfcea14e..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11582.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "uc_guy" -delete-after: True -changes: - - bugfix: "Fixed \"Venus Human Traps\" being invisible." diff --git a/html/changelogs/AutoChangeLog-pr-11584.yml b/html/changelogs/AutoChangeLog-pr-11584.yml deleted file mode 100644 index 83db80c473f..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11584.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - bugfix: "Ghosts can now transition through space again. This is now done by clicking on the edge of space." diff --git a/html/changelogs/AutoChangeLog-pr-11585.yml b/html/changelogs/AutoChangeLog-pr-11585.yml deleted file mode 100644 index 053b6deb819..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11585.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Arkatos" -delete-after: True -changes: - - bugfix: "Changelings should now correctly receive their action buttons" - - bugfix: "Changelings now do not steal action buttons from other changelings" diff --git a/html/changelogs/AutoChangeLog-pr-11605.yml b/html/changelogs/AutoChangeLog-pr-11605.yml new file mode 100644 index 00000000000..46c791aaa32 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11605.yml @@ -0,0 +1,4 @@ +author: "Couls" +delete-after: True +changes: + - tweak: "Reworks the biohazard event to have a chance of giving a randomized advanced disease with 6 varying symptoms instead of a preset disease." diff --git a/html/changelogs/AutoChangeLog-pr-11620.yml b/html/changelogs/AutoChangeLog-pr-11620.yml deleted file mode 100644 index 6511722a427..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11620.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Citinited" -delete-after: True -changes: - - bugfix: "Fixes conveyor belts not moving items spawned via an autolathe. (And other possible behaviours when machines switch between speed and normal processes)" diff --git a/html/changelogs/AutoChangeLog-pr-11628.yml b/html/changelogs/AutoChangeLog-pr-11628.yml deleted file mode 100644 index 165e24173b7..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11628.yml +++ /dev/null @@ -1,14 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - rscadd: "Added custom explorer gas mask sprites for Grey/Drask." - - rscadd: "Added a lantern to the Hermit cave." - - rscadd: "Added a bone setter, bone gel, FixOVein, sterile masks and sterile gloves to the Lavaland Syndicate base." - - rscadd: "The pickaxes on the Lavaland labor camp have been replaced with safety variants. The flashlights have been replaced with lanterns." - - bugfix: "Fixed many species missing sprites for explorer gas masks and jumpsuits. They now use the humans icons until we have custom sprites." - - bugfix: "Resolved an issue with piping not working on the Lavaland mining bases." - - bugfix: "Fixed all items being free in the mining vendor." - - bugfix: "Fixed improper wiring to the turbine in the Lavaland Syndicate base." - - bugfix: "Fixed the Lavaland Syndicate base oxygen sensor not working." - - bugfix: "Moved the pipe dispenser in the Lavaland Syndicate base so it doesn't clip with tables." - - bugfix: "Fixed the Lavaland Syndicate base incinerator doors not working." diff --git a/html/changelogs/AutoChangeLog-pr-11630.yml b/html/changelogs/AutoChangeLog-pr-11630.yml deleted file mode 100644 index 043b23d37ac..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11630.yml +++ /dev/null @@ -1,21 +0,0 @@ -author: "Markolie and Ionward" -delete-after: True -changes: - - rscadd: "Added Tajaran, Vulpkanin, Unathi and Vox sprites for the explorer gas mask (thanks to Ionward!)" - - rscadd: "Added custom species sprites for the explorer suits and hoods (thanks to Ionward!)" - - rscadd: "Added missing surgical tools and a pet vendor to the animal hospital." - - rscadd: "Added a custom cigarette vendor to the beach biodome ruin." - - rscadd: "Added an autolathe and RPD to the Lavaland Syndicate base. Also added a custom cigarette vendor and made the vendors not charge money." - - rscadd: "Added tiny fans to the mining base and labor camp exist." - - rscadd: "A separate jobban for ghost roles has been added." - - bugfix: "The alternative sink now has directional sprites. This resolves an issue with shelters having sinks facing the wrong way." - - bugfix: "Fixed the Syndicate sleepers on the Lavaland Syndicate base pointing the wrong way when a ghost role spawns in." - - bugfix: "Fixed Lava being removed by the staff of lava not working. Also added a missing warning effect when the staff is turning regular turf into lava." - - bugfix: "Fixed random bookcases not spawning books (hopefully)." - - bugfix: "Fixed surgical drapes not having a sprite." - - bugfix: "Fixed being unable to modify the GPS tag of shelters." - - bugfix: "Fixed the Lavaland swarmers not eating anything." - - bugfix: "The ash drake swoop attack is no longer incredibly loud." - - tweak: "The Syndicate base self-destruct is now much more powerful and capable of destroying the entire base." - - tweak: "The flavor text of Ash Walkers and Syndicate operatives now clarifies what they can('t) do." - - tweak: "Ash walkers can no longer use machinery." diff --git a/html/changelogs/AutoChangeLog-pr-11634.yml b/html/changelogs/AutoChangeLog-pr-11634.yml new file mode 100644 index 00000000000..c51b73a64ae --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11634.yml @@ -0,0 +1,4 @@ +author: "Markolie" +delete-after: True +changes: + - rscadd: "The prison labor point system has been refactored so it works properly." diff --git a/html/changelogs/AutoChangeLog-pr-11641.yml b/html/changelogs/AutoChangeLog-pr-11641.yml deleted file mode 100644 index 8a74e6e0461..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11641.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - tweak: "Ash Walkers now once more have fine manipulation. Their lack of fine manipulation caused unintended side effects (such as them being unable to mine)." - - bugfix: "Ash Walkers (and other ghost spawner roles) can no longer be antagonist targets or become antagonists through the antagonist creation." - - bugfix: "Fixed the Lavaland Syndicate base incinerator buttons not working." - - bugfix: "Fixed the Syndicate communication agent spawning with a broken voice changer mask." - - bugfix: "Fixed the Disk Compartmentalizer not having a sprite." diff --git a/html/changelogs/AutoChangeLog-pr-11643.yml b/html/changelogs/AutoChangeLog-pr-11643.yml deleted file mode 100644 index 74fa2f18b4e..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11643.yml +++ /dev/null @@ -1,18 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - rscadd: "The Ancient Goliath now has a small chance of spawning instead of regular goliaths." - - rscadd: "Survival capsules now have a NanoMed." - - tweak: "Water bottles now behave as glass containers." - - tweak: "The behaviour of glass reagent containers has changed. When used on non-mobs, contents will now only be spilled on harm intent. When used on mobs, on any intent aside from harm the contents will be fed to the mob like regular drinks. On harm intent it will still be spilled." - - tweak: "Hairless hide can now be made wet using most sources of water (minimum volume of 10), instead of just washing machines." - - bugfix: "Added some additional offstation role checks to ensure ghost spawner roles don't become antagonists, are kidnap targets or are counted towards station goals." - - bugfix: "Fixed some piping in the Lavaland Syndicate base incinerator and made sure the vault door starts locked." - - bugfix: "Fixed the Lavaland swarmers getting stuck on propulsion." - - bugfix: "Fix goliath tentacles sometimes being left behind." - - bugfix: "The walls around the Lavaland Syndicate base turbine have been coated, to prevent them from starting a plasma fire in the base." - - bugfix: "Syndicate agents can now access the air alarms on the Lavaland Syndicate base." - - bugfix: "Air alarm control computers can no longer access the air alarms on the Lavaland Syndicate base." - - bugfix: "Fixed the disk compartmentalizer/drying rack missing a sprite under certain circumstances." - - bugfix: "Fixed the Lavaland Syndicate base triggering atmospherics alerts." - - bugfix: "You can now properly place tiles on basalt." diff --git a/html/changelogs/AutoChangeLog-pr-11656.yml b/html/changelogs/AutoChangeLog-pr-11656.yml deleted file mode 100644 index 5b0a8408162..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11656.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - bugfix: "An exploit with the sheet multiplier has been fixed." diff --git a/html/changelogs/AutoChangeLog-pr-11658.yml b/html/changelogs/AutoChangeLog-pr-11658.yml new file mode 100644 index 00000000000..a7deadb4af8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11658.yml @@ -0,0 +1,4 @@ +author: "Markolie" +delete-after: True +changes: + - rscadd: "Plating can now be removed (exposing the baseturf) using a welder." diff --git a/html/changelogs/AutoChangeLog-pr-11664.yml b/html/changelogs/AutoChangeLog-pr-11664.yml deleted file mode 100644 index 8acfb84a4f9..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11664.yml +++ /dev/null @@ -1,21 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - rscadd: "Portals can now be activated by clicking on them with or without an object. Ghosts can now also click on them to be taken to their destination." - - rscadd: "Portals now warn admins when they are used to teleport megafauna." - - tweak: "The singularity can now eat basalt and chasms on Lavaland. They get turned into lava." - - bugfix: "AI swarmers will no longer get stuck on effects (such as blood)." - - bugfix: "Fixed the spectral blade turning all ghosts visible." - - bugfix: "Fixed a runtime with assigning outfits to mindless mobs." - - bugfix: "Fixed certain alarms triggering despite being outside of station contact and the Syndicate base still triggering fire alarms." - - bugfix: "Fixed being unable to put the wormhole jaunter in the belt slot." - - bugfix: "Fixed the disk compartmentalizer not accepting disks." - - bugfix: "Gutlunches and Gubbucks will now reproduce properly." - - bugfix: "The necropolis chest cult clothing drop no longer spawns with a cult hood as well, as that's part of the suit itself." - - bugfix: "Goliath steaks can now be eaten properly." - - bugfix: "Fixed a stray light on the beach ruin." - - bugfix: "Lavaland ruins should no longer spawn on the Labor Camp." - - bugfix: "Ancient goliaths will now properly randomly spawn tentacles." - - bugfix: "The labor camp will now spawn properly with a processing console." - - bugfix: "Water turfs in the beach ruin (and other water turfs that previously didn't do so) will now properly apply water to you." - - bugfix: "Ash flora is now anchored." diff --git a/html/changelogs/AutoChangeLog-pr-11676.yml b/html/changelogs/AutoChangeLog-pr-11676.yml deleted file mode 100644 index cf6f4267e66..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11676.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Terilia" -delete-after: True -changes: - - rscadd: "Added the Donksoft sniper into the Trader spawnpool." diff --git a/html/changelogs/AutoChangeLog-pr-11688.yml b/html/changelogs/AutoChangeLog-pr-11688.yml deleted file mode 100644 index 638a332682c..00000000000 --- a/html/changelogs/AutoChangeLog-pr-11688.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Markolie" -delete-after: True -changes: - - bugfix: "Gutlunches will now eat properly." - - bugfix: "The tesla can no longer travel through wormholes." - - bugfix: "Fixed an issue with honkbot construction." diff --git a/html/changelogs/AutoChangeLog-pr-11804.yml b/html/changelogs/AutoChangeLog-pr-11804.yml new file mode 100644 index 00000000000..355e6f0a32e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11804.yml @@ -0,0 +1,4 @@ +author: "Markolie" +delete-after: True +changes: + - bugfix: "Fixed an issue where slimes wouldn't take damage from water in space." diff --git a/html/changelogs/AutoChangeLog-pr-11805.yml b/html/changelogs/AutoChangeLog-pr-11805.yml new file mode 100644 index 00000000000..32aeba3f9eb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11805.yml @@ -0,0 +1,4 @@ +author: "Markolie" +delete-after: True +changes: + - bugfix: "It is no longer possible to unanchor the surivval pod storage units." diff --git a/html/changelogs/AutoChangeLog-pr-11806.yml b/html/changelogs/AutoChangeLog-pr-11806.yml new file mode 100644 index 00000000000..f70b8e32b82 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11806.yml @@ -0,0 +1,4 @@ +author: "Tayyyyyyy" +delete-after: True +changes: + - bugfix: "autocomplete input mishandling single quotes (you can teleport to Wizard's den now)" diff --git a/html/changelogs/AutoChangeLog-pr-11812.yml b/html/changelogs/AutoChangeLog-pr-11812.yml new file mode 100644 index 00000000000..e5bad933f7e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11812.yml @@ -0,0 +1,5 @@ +author: "Couls" +delete-after: True +changes: + - rscadd: "adds a line to alert people as to why they're not getting blood from the monkeys" + - bugfix: "The vampires are finally off their monkey diet, theycan now suck blood from players and humanized monkeys" diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi index ea66e024a19..d3976bfff61 100644 Binary files a/icons/mob/actions/actions.dmi and b/icons/mob/actions/actions.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index ae285a5453a..47cb86a2c89 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 8b949a8e732..e4630c2764e 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 08aca040280..8027568e31b 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 60488151158..b18cb799817 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index 62f732a224f..6209ce84949 100644 Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ diff --git a/icons/mob/species/drask/mask.dmi b/icons/mob/species/drask/mask.dmi index dffedfb1c78..9b9c341feb3 100644 Binary files a/icons/mob/species/drask/mask.dmi and b/icons/mob/species/drask/mask.dmi differ diff --git a/icons/mob/species/drask/uniform.dmi b/icons/mob/species/drask/uniform.dmi index d29b598dec3..ab315263ed9 100644 Binary files a/icons/mob/species/drask/uniform.dmi and b/icons/mob/species/drask/uniform.dmi differ diff --git a/icons/mob/species/grey/mask.dmi b/icons/mob/species/grey/mask.dmi index 112895a6009..6d13b33c4bf 100644 Binary files a/icons/mob/species/grey/mask.dmi and b/icons/mob/species/grey/mask.dmi differ diff --git a/icons/mob/species/grey/uniform.dmi b/icons/mob/species/grey/uniform.dmi index e71e020ff4a..ddf0250fdc5 100644 Binary files a/icons/mob/species/grey/uniform.dmi and b/icons/mob/species/grey/uniform.dmi differ diff --git a/icons/mob/species/tajaran/mask.dmi b/icons/mob/species/tajaran/mask.dmi index 3b2c1891c07..f73989fe9b0 100644 Binary files a/icons/mob/species/tajaran/mask.dmi and b/icons/mob/species/tajaran/mask.dmi differ diff --git a/icons/mob/species/unathi/mask.dmi b/icons/mob/species/unathi/mask.dmi index 5274697cdc1..ba9be383855 100644 Binary files a/icons/mob/species/unathi/mask.dmi and b/icons/mob/species/unathi/mask.dmi differ diff --git a/icons/mob/species/vox/mask.dmi b/icons/mob/species/vox/mask.dmi index b836b78538f..7023b2c3247 100644 Binary files a/icons/mob/species/vox/mask.dmi and b/icons/mob/species/vox/mask.dmi differ diff --git a/icons/mob/species/vox/uniform.dmi b/icons/mob/species/vox/uniform.dmi index b8169f9bd51..18a3e07ce76 100644 Binary files a/icons/mob/species/vox/uniform.dmi and b/icons/mob/species/vox/uniform.dmi differ diff --git a/icons/mob/species/vulpkanin/mask.dmi b/icons/mob/species/vulpkanin/mask.dmi index 43b527266b8..e50c3421fb0 100644 Binary files a/icons/mob/species/vulpkanin/mask.dmi and b/icons/mob/species/vulpkanin/mask.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index e5102b7eee9..69f9e04895e 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index f158b1df20d..b3a04ce73bf 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index c39331ce8d4..78586b72dfc 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 469934ca932..f48f0e9f07a 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/interface.dmi b/icons/obj/interface.dmi index 3b64561d5e0..631bba214c8 100644 Binary files a/icons/obj/interface.dmi and b/icons/obj/interface.dmi differ diff --git a/nano/templates/labor_claim_console.tmpl b/nano/templates/labor_claim_console.tmpl new file mode 100644 index 00000000000..efbdb5796d6 --- /dev/null +++ b/nano/templates/labor_claim_console.tmpl @@ -0,0 +1,76 @@ + + + + +

      Ore values

      +
      + {{for data.ores}} +
      +
      + {{:value.ore}}: +
      +
      + {{:value.value}} +
      +
      + {{/for}} +
      + +

      Points

      +
      +
      +
      + ID: +
      +
      + {{:helper.link(data.id ? data.id_name : '-------------', null, { 'handle_id' : 1 })}} +
      +
      + {{if data.id}} +
      +
      + Points collected: +
      +
      + {{:data.points}} +
      +
      +
      +
      + Goal: +
      +
      + {{:data.goal}} +
      +
      +
      +
      + Unclaimed points: +
      +
      +
      {{:data.unclaimed_points}}
      + {{:helper.link('Claim points', null, { 'claim_points' : 1 }, data.unclaimed_points ? null : 'disabled')}} +
      +
      + {{/if}} +
      + +
      + {{:helper.link('Move shuttle', null, { 'move_shuttle' : 1 }, data.can_go_home ? null : 'disabled', 'link centerButton')}} +
      \ No newline at end of file diff --git a/paradise.dme b/paradise.dme index 24320509982..652c6ed01d6 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1,2420 +1,2421 @@ -// DM Environment file for paradise.dme. -// All manual changes should be made outside the BEGIN_ and END_ blocks. - // New source code should be placed in .dm files: choose File/New --> Code File. -// BEGIN_INTERNALS -// END_INTERNALS -// BEGIN_FILE_DIR -#define FILE_DIR . -// END_FILE_DIR -// BEGIN_PREFERENCES -#define DEBUG -// END_PREFERENCES -// BEGIN_INCLUDE -#include "_maps\__MAP_DEFINES.dm" -#include "_maps\cyberiad.dm" -#include "code\_compile_options.dm" -#include "code\hub.dm" -#include "code\world.dm" -#include "code\__DEFINES\_globals.dm" -#include "code\__DEFINES\_readme.dm" -#include "code\__DEFINES\_tick.dm" -#include "code\__DEFINES\admin.dm" -#include "code\__DEFINES\antagonists.dm" -#include "code\__DEFINES\atmospherics.dm" -#include "code\__DEFINES\bots.dm" -#include "code\__DEFINES\callbacks.dm" -#include "code\__DEFINES\clothing.dm" -#include "code\__DEFINES\combat.dm" -#include "code\__DEFINES\components.dm" -#include "code\__DEFINES\construction.dm" -#include "code\__DEFINES\contracts.dm" -#include "code\__DEFINES\crafting.dm" -#include "code\__DEFINES\error_handler.dm" -#include "code\__DEFINES\flags.dm" -#include "code\__DEFINES\game.dm" -#include "code\__DEFINES\gamemode.dm" -#include "code\__DEFINES\genetics.dm" -#include "code\__DEFINES\hud.dm" -#include "code\__DEFINES\hydroponics.dm" -#include "code\__DEFINES\inventory.dm" -#include "code\__DEFINES\is_helpers.dm" -#include "code\__DEFINES\language.dm" -#include "code\__DEFINES\layers.dm" -#include "code\__DEFINES\lighting.dm" -#include "code\__DEFINES\machines.dm" -#include "code\__DEFINES\math.dm" -#include "code\__DEFINES\MC.dm" -#include "code\__DEFINES\medal.dm" -#include "code\__DEFINES\misc.dm" -#include "code\__DEFINES\mobs.dm" -#include "code\__DEFINES\move_force.dm" -#include "code\__DEFINES\pda.dm" -#include "code\__DEFINES\pipes.dm" -#include "code\__DEFINES\preferences.dm" -#include "code\__DEFINES\qdel.dm" -#include "code\__DEFINES\radio.dm" -#include "code\__DEFINES\reagents.dm" -#include "code\__DEFINES\role_preferences.dm" -#include "code\__DEFINES\rolebans.dm" -#include "code\__DEFINES\shuttle.dm" -#include "code\__DEFINES\sight.dm" -#include "code\__DEFINES\sound.dm" -#include "code\__DEFINES\stat.dm" -#include "code\__DEFINES\station_goals.dm" -#include "code\__DEFINES\status_effects.dm" -#include "code\__DEFINES\subsystems.dm" -#include "code\__DEFINES\typeids.dm" -#include "code\__DEFINES\vv.dm" -#include "code\__DEFINES\zlevel.dm" -#include "code\__HELPERS\_logging.dm" -#include "code\__HELPERS\_string_lists.dm" -#include "code\__HELPERS\AnimationLibrary.dm" -#include "code\__HELPERS\cmp.dm" -#include "code\__HELPERS\constants.dm" -#include "code\__HELPERS\experimental.dm" -#include "code\__HELPERS\files.dm" -#include "code\__HELPERS\game.dm" -#include "code\__HELPERS\global_lists.dm" -#include "code\__HELPERS\icon_smoothing.dm" -#include "code\__HELPERS\icons.dm" -#include "code\__HELPERS\lists.dm" -#include "code\__HELPERS\maths.dm" -#include "code\__HELPERS\matrices.dm" -#include "code\__HELPERS\mobs.dm" -#include "code\__HELPERS\names.dm" -#include "code\__HELPERS\pronouns.dm" -#include "code\__HELPERS\qdel.dm" -#include "code\__HELPERS\sanitize_values.dm" -#include "code\__HELPERS\text.dm" -#include "code\__HELPERS\time.dm" -#include "code\__HELPERS\type2type.dm" -#include "code\__HELPERS\unique_ids.dm" -#include "code\__HELPERS\unsorted.dm" -#include "code\__HELPERS\sorts\__main.dm" -#include "code\__HELPERS\sorts\InsertSort.dm" -#include "code\__HELPERS\sorts\MergeSort.dm" -#include "code\__HELPERS\sorts\TimSort.dm" -#include "code\_DATASTRUCTURES\heap.dm" -#include "code\_DATASTRUCTURES\stacks.dm" -#include "code\_globalvars\configuration.dm" -#include "code\_globalvars\database.dm" -#include "code\_globalvars\game_modes.dm" -#include "code\_globalvars\genetics.dm" -#include "code\_globalvars\logging.dm" -#include "code\_globalvars\mapping.dm" -#include "code\_globalvars\misc.dm" -#include "code\_globalvars\unused.dm" -#include "code\_globalvars\lists\flavor_misc.dm" -#include "code\_globalvars\lists\fortunes.dm" -#include "code\_globalvars\lists\misc.dm" -#include "code\_globalvars\lists\mobs.dm" -#include "code\_globalvars\lists\names.dm" -#include "code\_globalvars\lists\objects.dm" -#include "code\_globalvars\lists\reagents.dm" -#include "code\_globalvars\lists\typecache.dm" -#include "code\_onclick\adjacent.dm" -#include "code\_onclick\ai.dm" -#include "code\_onclick\click.dm" -#include "code\_onclick\click_override.dm" -#include "code\_onclick\cyborg.dm" -#include "code\_onclick\drag_drop.dm" -#include "code\_onclick\item_attack.dm" -#include "code\_onclick\observer.dm" -#include "code\_onclick\other_mobs.dm" -#include "code\_onclick\overmind.dm" -#include "code\_onclick\rig.dm" -#include "code\_onclick\telekinesis.dm" -#include "code\_onclick\hud\_defines.dm" -#include "code\_onclick\hud\action_button.dm" -#include "code\_onclick\hud\ai.dm" -#include "code\_onclick\hud\alert.dm" -#include "code\_onclick\hud\alien.dm" -#include "code\_onclick\hud\alien_larva.dm" -#include "code\_onclick\hud\blob_overmind.dm" -#include "code\_onclick\hud\bot.dm" -#include "code\_onclick\hud\constructs.dm" -#include "code\_onclick\hud\devil.dm" -#include "code\_onclick\hud\fullscreen.dm" -#include "code\_onclick\hud\ghost.dm" -#include "code\_onclick\hud\guardian.dm" -#include "code\_onclick\hud\hud.dm" -#include "code\_onclick\hud\human.dm" -#include "code\_onclick\hud\monkey.dm" -#include "code\_onclick\hud\movable_screen_objects.dm" -#include "code\_onclick\hud\other_mobs.dm" -#include "code\_onclick\hud\picture_in_picture.dm" -#include "code\_onclick\hud\plane_master.dm" -#include "code\_onclick\hud\radial.dm" -#include "code\_onclick\hud\robot.dm" -#include "code\_onclick\hud\screen_objects.dm" -#include "code\_onclick\hud\swarmer.dm" -#include "code\ATMOSPHERICS\atmospherics.dm" -#include "code\ATMOSPHERICS\datum_icon_manager.dm" -#include "code\ATMOSPHERICS\datum_pipeline.dm" -#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm" -#include "code\ATMOSPHERICS\components\binary_devices\circulator.dm" -#include "code\ATMOSPHERICS\components\binary_devices\dp_vent_pump.dm" -#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm" -#include "code\ATMOSPHERICS\components\binary_devices\pump.dm" -#include "code\ATMOSPHERICS\components\binary_devices\valve.dm" -#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm" -#include "code\ATMOSPHERICS\components\omni_devices\_omni_extras.dm" -#include "code\ATMOSPHERICS\components\omni_devices\filter.dm" -#include "code\ATMOSPHERICS\components\omni_devices\mixer.dm" -#include "code\ATMOSPHERICS\components\omni_devices\omni_base.dm" -#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm" -#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm" -#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm" -#include "code\ATMOSPHERICS\components\trinary_devices\tvalve.dm" -#include "code\ATMOSPHERICS\components\unary_devices\cold_sink.dm" -#include "code\ATMOSPHERICS\components\unary_devices\generator_input.dm" -#include "code\ATMOSPHERICS\components\unary_devices\heat_exchanger.dm" -#include "code\ATMOSPHERICS\components\unary_devices\heat_source.dm" -#include "code\ATMOSPHERICS\components\unary_devices\outlet_injector.dm" -#include "code\ATMOSPHERICS\components\unary_devices\oxygen_generator.dm" -#include "code\ATMOSPHERICS\components\unary_devices\passive_vent.dm" -#include "code\ATMOSPHERICS\components\unary_devices\portables_connector.dm" -#include "code\ATMOSPHERICS\components\unary_devices\tank.dm" -#include "code\ATMOSPHERICS\components\unary_devices\thermal_plate.dm" -#include "code\ATMOSPHERICS\components\unary_devices\unary_base.dm" -#include "code\ATMOSPHERICS\components\unary_devices\vent_pump.dm" -#include "code\ATMOSPHERICS\components\unary_devices\vent_scrubber.dm" -#include "code\ATMOSPHERICS\pipes\cap.dm" -#include "code\ATMOSPHERICS\pipes\manifold.dm" -#include "code\ATMOSPHERICS\pipes\manifold4w.dm" -#include "code\ATMOSPHERICS\pipes\pipe.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_he.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_hidden.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_insulated.dm" -#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_visible.dm" -#include "code\controllers\configuration.dm" -#include "code\controllers\controller.dm" -#include "code\controllers\failsafe.dm" -#include "code\controllers\globals.dm" -#include "code\controllers\hooks-defs.dm" -#include "code\controllers\hooks.dm" -#include "code\controllers\master.dm" -#include "code\controllers\subsystem.dm" -#include "code\controllers\verbs.dm" -#include "code\controllers\subsystem\air.dm" -#include "code\controllers\subsystem\alarm.dm" -#include "code\controllers\subsystem\assets.dm" -#include "code\controllers\subsystem\atoms.dm" -#include "code\controllers\subsystem\events.dm" -#include "code\controllers\subsystem\fires.dm" -#include "code\controllers\subsystem\garbage.dm" -#include "code\controllers\subsystem\holiday.dm" -#include "code\controllers\subsystem\icon_smooth.dm" -#include "code\controllers\subsystem\idlenpcpool.dm" -#include "code\controllers\subsystem\ipintel.dm" -#include "code\controllers\subsystem\jobs.dm" -#include "code\controllers\subsystem\lighting.dm" -#include "code\controllers\subsystem\machinery.dm" -#include "code\controllers\subsystem\mapping.dm" -#include "code\controllers\subsystem\medals.dm" -#include "code\controllers\subsystem\mobs.dm" -#include "code\controllers\subsystem\nano_mob_hunter.dm" -#include "code\controllers\subsystem\nanoui.dm" -#include "code\controllers\subsystem\nightshift.dm" -#include "code\controllers\subsystem\npcpool.dm" -#include "code\controllers\subsystem\overlays.dm" -#include "code\controllers\subsystem\radio.dm" -#include "code\controllers\subsystem\shuttles.dm" -#include "code\controllers\subsystem\spacedrift.dm" -#include "code\controllers\subsystem\sun.dm" -#include "code\controllers\subsystem\throwing.dm" -#include "code\controllers\subsystem\ticker.dm" -#include "code\controllers\subsystem\timer.dm" -#include "code\controllers\subsystem\vote.dm" -#include "code\controllers\subsystem\weather.dm" -#include "code\controllers\subsystem\processing\fastprocess.dm" -#include "code\controllers\subsystem\processing\obj.dm" -#include "code\controllers\subsystem\processing\processing.dm" -#include "code\controllers\subsystem\tickets\mentor_tickets.dm" -#include "code\controllers\subsystem\tickets\tickets.dm" -#include "code\datums\action.dm" -#include "code\datums\ai_law_sets.dm" -#include "code\datums\ai_laws.dm" -#include "code\datums\beam.dm" -#include "code\datums\browser.dm" -#include "code\datums\callback.dm" -#include "code\datums\click_intercept.dm" -#include "code\datums\datacore.dm" -#include "code\datums\datum.dm" -#include "code\datums\datumvars.dm" -#include "code\datums\gas_mixture.dm" -#include "code\datums\holocall.dm" -#include "code\datums\hud.dm" -#include "code\datums\mind.dm" -#include "code\datums\mixed.dm" -#include "code\datums\mutable_appearance.dm" -#include "code\datums\periodic_news.dm" -#include "code\datums\pipe_datums.dm" -#include "code\datums\progressbar.dm" -#include "code\datums\radio.dm" -#include "code\datums\recipe.dm" -#include "code\datums\ruins.dm" -#include "code\datums\shuttles.dm" -#include "code\datums\soullink.dm" -#include "code\datums\spawners_menu.dm" -#include "code\datums\spell.dm" -#include "code\datums\statclick.dm" -#include "code\datums\supplypacks.dm" -#include "code\datums\uplink_item.dm" -#include "code\datums\vision_override.dm" -#include "code\datums\vr.dm" -#include "code\datums\cache\air_alarm.dm" -#include "code\datums\cache\apc.dm" -#include "code\datums\cache\cache.dm" -#include "code\datums\cache\crew.dm" -#include "code\datums\cache\powermonitor.dm" -#include "code\datums\components\_component.dm" -#include "code\datums\components\decal.dm" -#include "code\datums\components\ducttape.dm" -#include "code\datums\components\jestosterone.dm" -#include "code\datums\components\material_container.dm" -#include "code\datums\components\squeak.dm" -#include "code\datums\diseases\_disease.dm" -#include "code\datums\diseases\_MobProcs.dm" -#include "code\datums\diseases\anxiety.dm" -#include "code\datums\diseases\appendicitis.dm" -#include "code\datums\diseases\beesease.dm" -#include "code\datums\diseases\berserker.dm" -#include "code\datums\diseases\brainrot.dm" -#include "code\datums\diseases\cold.dm" -#include "code\datums\diseases\cold9.dm" -#include "code\datums\diseases\critical.dm" -#include "code\datums\diseases\fake_gbs.dm" -#include "code\datums\diseases\flu.dm" -#include "code\datums\diseases\fluspanish.dm" -#include "code\datums\diseases\food_poisoning.dm" -#include "code\datums\diseases\gbs.dm" -#include "code\datums\diseases\kingstons.dm" -#include "code\datums\diseases\kuru.dm" -#include "code\datums\diseases\lycancoughy.dm" -#include "code\datums\diseases\magnitis.dm" -#include "code\datums\diseases\pierrot_throat.dm" -#include "code\datums\diseases\retrovirus.dm" -#include "code\datums\diseases\rhumba_beat.dm" -#include "code\datums\diseases\transformation.dm" -#include "code\datums\diseases\tuberculosis.dm" -#include "code\datums\diseases\vampire.dm" -#include "code\datums\diseases\wizarditis.dm" -#include "code\datums\diseases\advance\advance.dm" -#include "code\datums\diseases\advance\presets.dm" -#include "code\datums\diseases\advance\symptoms\beard.dm" -#include "code\datums\diseases\advance\symptoms\choking.dm" -#include "code\datums\diseases\advance\symptoms\confusion.dm" -#include "code\datums\diseases\advance\symptoms\cough.dm" -#include "code\datums\diseases\advance\symptoms\damage_converter.dm" -#include "code\datums\diseases\advance\symptoms\deafness.dm" -#include "code\datums\diseases\advance\symptoms\dizzy.dm" -#include "code\datums\diseases\advance\symptoms\fever.dm" -#include "code\datums\diseases\advance\symptoms\fire.dm" -#include "code\datums\diseases\advance\symptoms\flesh_eating.dm" -#include "code\datums\diseases\advance\symptoms\hallucigen.dm" -#include "code\datums\diseases\advance\symptoms\headache.dm" -#include "code\datums\diseases\advance\symptoms\heal.dm" -#include "code\datums\diseases\advance\symptoms\itching.dm" -#include "code\datums\diseases\advance\symptoms\oxygen.dm" -#include "code\datums\diseases\advance\symptoms\sensory.dm" -#include "code\datums\diseases\advance\symptoms\shedding.dm" -#include "code\datums\diseases\advance\symptoms\shivering.dm" -#include "code\datums\diseases\advance\symptoms\skin.dm" -#include "code\datums\diseases\advance\symptoms\sneeze.dm" -#include "code\datums\diseases\advance\symptoms\symptoms.dm" -#include "code\datums\diseases\advance\symptoms\viral.dm" -#include "code\datums\diseases\advance\symptoms\vision.dm" -#include "code\datums\diseases\advance\symptoms\voice_change.dm" -#include "code\datums\diseases\advance\symptoms\vomit.dm" -#include "code\datums\diseases\advance\symptoms\weakness.dm" -#include "code\datums\diseases\advance\symptoms\weight.dm" -#include "code\datums\diseases\advance\symptoms\youth.dm" -#include "code\datums\helper_datums\construction_datum.dm" -#include "code\datums\helper_datums\events.dm" -#include "code\datums\helper_datums\global_iterator.dm" -#include "code\datums\helper_datums\hotkey_modes.dm" -#include "code\datums\helper_datums\icon_snapshot.dm" -#include "code\datums\helper_datums\input.dm" -#include "code\datums\helper_datums\map_template.dm" -#include "code\datums\helper_datums\teleport.dm" -#include "code\datums\helper_datums\topic_input.dm" -#include "code\datums\looping_sounds\looping_sound.dm" -#include "code\datums\looping_sounds\machinery_sounds.dm" -#include "code\datums\looping_sounds\thermal_drill.dm" -#include "code\datums\looping_sounds\weather.dm" -#include "code\datums\outfits\outfit.dm" -#include "code\datums\outfits\outfit_admin.dm" -#include "code\datums\ruins\lavaland.dm" -#include "code\datums\ruins\space.dm" -#include "code\datums\spells\area_teleport.dm" -#include "code\datums\spells\bloodcrawl.dm" -#include "code\datums\spells\chaplain.dm" -#include "code\datums\spells\charge.dm" -#include "code\datums\spells\cluwne.dm" -#include "code\datums\spells\conjure.dm" -#include "code\datums\spells\conjure_item.dm" -#include "code\datums\spells\construct_spells.dm" -#include "code\datums\spells\devil.dm" -#include "code\datums\spells\devil_boons.dm" -#include "code\datums\spells\dumbfire.dm" -#include "code\datums\spells\emplosion.dm" -#include "code\datums\spells\ethereal_jaunt.dm" -#include "code\datums\spells\explosion.dm" -#include "code\datums\spells\fake_gib.dm" -#include "code\datums\spells\genetic.dm" -#include "code\datums\spells\horsemask.dm" -#include "code\datums\spells\infinite_guns.dm" -#include "code\datums\spells\inflict_handler.dm" -#include "code\datums\spells\knock.dm" -#include "code\datums\spells\lichdom.dm" -#include "code\datums\spells\lightning.dm" -#include "code\datums\spells\magnet.dm" -#include "code\datums\spells\mime.dm" -#include "code\datums\spells\mind_transfer.dm" -#include "code\datums\spells\projectile.dm" -#include "code\datums\spells\rathens.dm" -#include "code\datums\spells\rod_form.dm" -#include "code\datums\spells\shapeshift.dm" -#include "code\datums\spells\summonitem.dm" -#include "code\datums\spells\touch_attacks.dm" -#include "code\datums\spells\trigger.dm" -#include "code\datums\spells\turf_teleport.dm" -#include "code\datums\spells\wizard.dm" -#include "code\datums\status_effects\buffs.dm" -#include "code\datums\status_effects\debuffs.dm" -#include "code\datums\status_effects\neutral.dm" -#include "code\datums\status_effects\status_effect.dm" -#include "code\datums\vr\level.dm" -#include "code\datums\weather\weather.dm" -#include "code\datums\weather\weather_types\ash_storm.dm" -#include "code\datums\weather\weather_types\floor_is_lava.dm" -#include "code\datums\weather\weather_types\radiation_storm.dm" -#include "code\datums\weather\weather_types\snow_storm.dm" -#include "code\datums\wires\airlock.dm" -#include "code\datums\wires\alarm.dm" -#include "code\datums\wires\apc.dm" -#include "code\datums\wires\autolathe.dm" -#include "code\datums\wires\camera.dm" -#include "code\datums\wires\explosive.dm" -#include "code\datums\wires\mulebot.dm" -#include "code\datums\wires\nuclearbomb.dm" -#include "code\datums\wires\particle_accelerator.dm" -#include "code\datums\wires\radio.dm" -#include "code\datums\wires\robot.dm" -#include "code\datums\wires\smartfridge.dm" -#include "code\datums\wires\suitstorage.dm" -#include "code\datums\wires\syndicatebomb.dm" -#include "code\datums\wires\tesla_coil.dm" -#include "code\datums\wires\vending.dm" -#include "code\datums\wires\wires.dm" -#include "code\defines\vox_sounds.dm" -#include "code\defines\procs\admin.dm" -#include "code\defines\procs\announce.dm" -#include "code\defines\procs\AStar.dm" -#include "code\defines\procs\dbcore.dm" -#include "code\defines\procs\radio.dm" -#include "code\defines\procs\records.dm" -#include "code\defines\procs\statistics.dm" -#include "code\game\alternate_appearance.dm" -#include "code\game\asteroid.dm" -#include "code\game\atoms.dm" -#include "code\game\atoms_movable.dm" -#include "code\game\data_huds.dm" -#include "code\game\shuttle_engines.dm" -#include "code\game\sound.dm" -#include "code\game\world.dm" -#include "code\game\area\ai_monitored.dm" -#include "code\game\area\areas.dm" -#include "code\game\area\Dynamic areas.dm" -#include "code\game\area\Space Station 13 areas.dm" -#include "code\game\area\areas\depot-areas.dm" -#include "code\game\area\areas\mining.dm" -#include "code\game\area\areas\ruins\lavaland.dm" -#include "code\game\dna\dna2.dm" -#include "code\game\dna\dna2_domutcheck.dm" -#include "code\game\dna\dna2_helpers.dm" -#include "code\game\dna\dna_modifier.dm" -#include "code\game\dna\genes\disabilities.dm" -#include "code\game\dna\genes\gene.dm" -#include "code\game\dna\genes\goon_disabilities.dm" -#include "code\game\dna\genes\goon_powers.dm" -#include "code\game\dna\genes\monkey.dm" -#include "code\game\dna\genes\powers.dm" -#include "code\game\dna\genes\vg_disabilities.dm" -#include "code\game\dna\genes\vg_powers.dm" -#include "code\game\gamemodes\factions.dm" -#include "code\game\gamemodes\game_mode.dm" -#include "code\game\gamemodes\intercept_report.dm" -#include "code\game\gamemodes\objective.dm" -#include "code\game\gamemodes\scoreboard.dm" -#include "code\game\gamemodes\setupgame.dm" -#include "code\game\gamemodes\steal_items.dm" -#include "code\game\gamemodes\autotraitor\autotraitor.dm" -#include "code\game\gamemodes\blob\blob.dm" -#include "code\game\gamemodes\blob\blob_finish.dm" -#include "code\game\gamemodes\blob\blob_report.dm" -#include "code\game\gamemodes\blob\overmind.dm" -#include "code\game\gamemodes\blob\powers.dm" -#include "code\game\gamemodes\blob\theblob.dm" -#include "code\game\gamemodes\blob\blobs\blob_mobs.dm" -#include "code\game\gamemodes\blob\blobs\core.dm" -#include "code\game\gamemodes\blob\blobs\factory.dm" -#include "code\game\gamemodes\blob\blobs\node.dm" -#include "code\game\gamemodes\blob\blobs\resource.dm" -#include "code\game\gamemodes\blob\blobs\shield.dm" -#include "code\game\gamemodes\blob\blobs\storage.dm" -#include "code\game\gamemodes\changeling\changeling.dm" -#include "code\game\gamemodes\changeling\changeling_power.dm" -#include "code\game\gamemodes\changeling\evolution_menu.dm" -#include "code\game\gamemodes\changeling\traitor_chan.dm" -#include "code\game\gamemodes\changeling\powers\absorb.dm" -#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm" -#include "code\game\gamemodes\changeling\powers\biodegrade.dm" -#include "code\game\gamemodes\changeling\powers\chameleon_skin.dm" -#include "code\game\gamemodes\changeling\powers\digitalcamo.dm" -#include "code\game\gamemodes\changeling\powers\epinephrine.dm" -#include "code\game\gamemodes\changeling\powers\fakedeath.dm" -#include "code\game\gamemodes\changeling\powers\fleshmend.dm" -#include "code\game\gamemodes\changeling\powers\headslug.dm" -#include "code\game\gamemodes\changeling\powers\hivemind.dm" -#include "code\game\gamemodes\changeling\powers\humanform.dm" -#include "code\game\gamemodes\changeling\powers\lesserform.dm" -#include "code\game\gamemodes\changeling\powers\linglink.dm" -#include "code\game\gamemodes\changeling\powers\mimic_voice.dm" -#include "code\game\gamemodes\changeling\powers\mutations.dm" -#include "code\game\gamemodes\changeling\powers\panacea.dm" -#include "code\game\gamemodes\changeling\powers\revive.dm" -#include "code\game\gamemodes\changeling\powers\shriek.dm" -#include "code\game\gamemodes\changeling\powers\spiders.dm" -#include "code\game\gamemodes\changeling\powers\strained_muscles.dm" -#include "code\game\gamemodes\changeling\powers\swap_form.dm" -#include "code\game\gamemodes\changeling\powers\tiny_prick.dm" -#include "code\game\gamemodes\changeling\powers\transform.dm" -#include "code\game\gamemodes\cult\cult.dm" -#include "code\game\gamemodes\cult\cult_comms.dm" -#include "code\game\gamemodes\cult\cult_datums.dm" -#include "code\game\gamemodes\cult\cult_items.dm" -#include "code\game\gamemodes\cult\cult_objectives.dm" -#include "code\game\gamemodes\cult\cult_structures.dm" -#include "code\game\gamemodes\cult\ritual.dm" -#include "code\game\gamemodes\cult\runes.dm" -#include "code\game\gamemodes\cult\talisman.dm" -#include "code\game\gamemodes\devil\devil.dm" -#include "code\game\gamemodes\devil\devil_game_mode.dm" -#include "code\game\gamemodes\devil\devilinfo.dm" -#include "code\game\gamemodes\devil\game_mode.dm" -#include "code\game\gamemodes\devil\objectives.dm" -#include "code\game\gamemodes\devil\contracts\friend.dm" -#include "code\game\gamemodes\devil\devil agent\devil_agent.dm" -#include "code\game\gamemodes\devil\imp\imp.dm" -#include "code\game\gamemodes\devil\true_devil\_true_devil.dm" -#include "code\game\gamemodes\devil\true_devil\inventory.dm" -#include "code\game\gamemodes\extended\extended.dm" -#include "code\game\gamemodes\heist\heist.dm" -#include "code\game\gamemodes\malfunction\Malf_Modules.dm" -#include "code\game\gamemodes\meteor\meteor.dm" -#include "code\game\gamemodes\meteor\meteors.dm" -#include "code\game\gamemodes\miniantags\abduction\abductee_objectives.dm" -#include "code\game\gamemodes\miniantags\abduction\abduction.dm" -#include "code\game\gamemodes\miniantags\abduction\abduction_gear.dm" -#include "code\game\gamemodes\miniantags\abduction\abduction_outfits.dm" -#include "code\game\gamemodes\miniantags\abduction\abduction_surgery.dm" -#include "code\game\gamemodes\miniantags\abduction\gland.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\camera.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\console.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\dispenser.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\experiment.dm" -#include "code\game\gamemodes\miniantags\abduction\machinery\pad.dm" -#include "code\game\gamemodes\miniantags\borer\borer.dm" -#include "code\game\gamemodes\miniantags\borer\borer_chemicals.dm" -#include "code\game\gamemodes\miniantags\borer\borer_event.dm" -#include "code\game\gamemodes\miniantags\borer\borer_html.dm" -#include "code\game\gamemodes\miniantags\bot_swarm\swarmer.dm" -#include "code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm" -#include "code\game\gamemodes\miniantags\guardian\guardian.dm" -#include "code\game\gamemodes\miniantags\guardian\types\assassin.dm" -#include "code\game\gamemodes\miniantags\guardian\types\bomb.dm" -#include "code\game\gamemodes\miniantags\guardian\types\charger.dm" -#include "code\game\gamemodes\miniantags\guardian\types\fire.dm" -#include "code\game\gamemodes\miniantags\guardian\types\healer.dm" -#include "code\game\gamemodes\miniantags\guardian\types\lightning.dm" -#include "code\game\gamemodes\miniantags\guardian\types\protector.dm" -#include "code\game\gamemodes\miniantags\guardian\types\ranged.dm" -#include "code\game\gamemodes\miniantags\guardian\types\standard.dm" -#include "code\game\gamemodes\miniantags\morph\morph.dm" -#include "code\game\gamemodes\miniantags\morph\morph_event.dm" -#include "code\game\gamemodes\miniantags\revenant\revenant.dm" -#include "code\game\gamemodes\miniantags\revenant\revenant_abilities.dm" -#include "code\game\gamemodes\miniantags\revenant\revenant_spawn_event.dm" -#include "code\game\gamemodes\miniantags\sintouched\objectives.dm" -#include "code\game\gamemodes\miniantags\slaughter\bloodcrawl.dm" -#include "code\game\gamemodes\miniantags\slaughter\slaughter.dm" -#include "code\game\gamemodes\nuclear\nuclear.dm" -#include "code\game\gamemodes\nuclear\nuclear_challenge.dm" -#include "code\game\gamemodes\nuclear\nuclearbomb.dm" -#include "code\game\gamemodes\nuclear\pinpointer.dm" -#include "code\game\gamemodes\revolution\revolution.dm" -#include "code\game\gamemodes\shadowling\ascendant_shadowling.dm" -#include "code\game\gamemodes\shadowling\shadowling.dm" -#include "code\game\gamemodes\shadowling\shadowling_abilities.dm" -#include "code\game\gamemodes\shadowling\shadowling_items.dm" -#include "code\game\gamemodes\shadowling\special_shadowling_abilities.dm" -#include "code\game\gamemodes\traitor\traitor.dm" -#include "code\game\gamemodes\vampire\traitor_vamp.dm" -#include "code\game\gamemodes\vampire\vampire.dm" -#include "code\game\gamemodes\vampire\vampire_powers.dm" -#include "code\game\gamemodes\wizard\artefact.dm" -#include "code\game\gamemodes\wizard\godhand.dm" -#include "code\game\gamemodes\wizard\raginmages.dm" -#include "code\game\gamemodes\wizard\rightandwrong.dm" -#include "code\game\gamemodes\wizard\soulstone.dm" -#include "code\game\gamemodes\wizard\spellbook.dm" -#include "code\game\gamemodes\wizard\wizard.dm" -#include "code\game\jobs\access.dm" -#include "code\game\jobs\job_exp.dm" -#include "code\game\jobs\job_objective.dm" -#include "code\game\jobs\job_scaling.dm" -#include "code\game\jobs\jobs.dm" -#include "code\game\jobs\whitelist.dm" -#include "code\game\jobs\job\central.dm" -#include "code\game\jobs\job\civilian.dm" -#include "code\game\jobs\job\engineering.dm" -#include "code\game\jobs\job\job.dm" -#include "code\game\jobs\job\medical.dm" -#include "code\game\jobs\job\science.dm" -#include "code\game\jobs\job\security.dm" -#include "code\game\jobs\job\silicon.dm" -#include "code\game\jobs\job\supervisor.dm" -#include "code\game\jobs\job\support.dm" -#include "code\game\jobs\job\support_chaplain.dm" -#include "code\game\jobs\job\syndicate.dm" -#include "code\game\jobs\job_objectives\science.dm" -#include "code\game\machinery\adv_med.dm" -#include "code\game\machinery\ai_slipper.dm" -#include "code\game\machinery\alarm.dm" -#include "code\game\machinery\atmo_control.dm" -#include "code\game\machinery\autolathe.dm" -#include "code\game\machinery\Beacon.dm" -#include "code\game\machinery\buttons.dm" -#include "code\game\machinery\cell_charger.dm" -#include "code\game\machinery\chiller.dm" -#include "code\game\machinery\cloning.dm" -#include "code\game\machinery\constructable_frame.dm" -#include "code\game\machinery\cryo.dm" -#include "code\game\machinery\cryopod.dm" -#include "code\game\machinery\dance_machine.dm" -#include "code\game\machinery\defib_mount.dm" -#include "code\game\machinery\deployable.dm" -#include "code\game\machinery\door_control.dm" -#include "code\game\machinery\doppler_array.dm" -#include "code\game\machinery\dye_generator.dm" -#include "code\game\machinery\firealarm.dm" -#include "code\game\machinery\flasher.dm" -#include "code\game\machinery\floodlight.dm" -#include "code\game\machinery\Freezer.dm" -#include "code\game\machinery\gameboard.dm" -#include "code\game\machinery\guestpass.dm" -#include "code\game\machinery\hologram.dm" -#include "code\game\machinery\holosign.dm" -#include "code\game\machinery\igniter.dm" -#include "code\game\machinery\iv_drip.dm" -#include "code\game\machinery\lightswitch.dm" -#include "code\game\machinery\machinery.dm" -#include "code\game\machinery\magnet.dm" -#include "code\game\machinery\mass_driver.dm" -#include "code\game\machinery\navbeacon.dm" -#include "code\game\machinery\newscaster.dm" -#include "code\game\machinery\OpTable.dm" -#include "code\game\machinery\overview.dm" -#include "code\game\machinery\PDApainter.dm" -#include "code\game\machinery\poolcontroller.dm" -#include "code\game\machinery\portable_tag_turret.dm" -#include "code\game\machinery\portable_turret.dm" -#include "code\game\machinery\quantum_pad.dm" -#include "code\game\machinery\recharger.dm" -#include "code\game\machinery\rechargestation.dm" -#include "code\game\machinery\recycler.dm" -#include "code\game\machinery\requests_console.dm" -#include "code\game\machinery\shieldgen.dm" -#include "code\game\machinery\Sleeper.dm" -#include "code\game\machinery\slotmachine.dm" -#include "code\game\machinery\snow_machine.dm" -#include "code\game\machinery\spaceheater.dm" -#include "code\game\machinery\status_display.dm" -#include "code\game\machinery\suit_storage_unit.dm" -#include "code\game\machinery\supply_display.dm" -#include "code\game\machinery\syndicatebeacon.dm" -#include "code\game\machinery\syndicatebomb.dm" -#include "code\game\machinery\teleporter.dm" -#include "code\game\machinery\transformer.dm" -#include "code\game\machinery\turntable.dm" -#include "code\game\machinery\turret_control.dm" -#include "code\game\machinery\vending.dm" -#include "code\game\machinery\washing_machine.dm" -#include "code\game\machinery\wishgranter.dm" -#include "code\game\machinery\atmoalter\area_atmos_computer.dm" -#include "code\game\machinery\atmoalter\canister.dm" -#include "code\game\machinery\atmoalter\meter.dm" -#include "code\game\machinery\atmoalter\portable_atmospherics.dm" -#include "code\game\machinery\atmoalter\pump.dm" -#include "code\game\machinery\atmoalter\scrubber.dm" -#include "code\game\machinery\atmoalter\zvent.dm" -#include "code\game\machinery\camera\camera.dm" -#include "code\game\machinery\camera\camera_assembly.dm" -#include "code\game\machinery\camera\motion.dm" -#include "code\game\machinery\camera\presets.dm" -#include "code\game\machinery\camera\tracking.dm" -#include "code\game\machinery\computer\ai_core.dm" -#include "code\game\machinery\computer\aifixer.dm" -#include "code\game\machinery\computer\arcade.dm" -#include "code\game\machinery\computer\atmos_alert.dm" -#include "code\game\machinery\computer\atmos_control.dm" -#include "code\game\machinery\computer\brigcells.dm" -#include "code\game\machinery\computer\buildandrepair.dm" -#include "code\game\machinery\computer\camera.dm" -#include "code\game\machinery\computer\camera_advanced.dm" -#include "code\game\machinery\computer\card.dm" -#include "code\game\machinery\computer\cloning.dm" -#include "code\game\machinery\computer\communications.dm" -#include "code\game\machinery\computer\computer.dm" -#include "code\game\machinery\computer\crew.dm" -#include "code\game\machinery\computer\depot.dm" -#include "code\game\machinery\computer\HolodeckControl.dm" -#include "code\game\machinery\computer\honkputer.dm" -#include "code\game\machinery\computer\law.dm" -#include "code\game\machinery\computer\medical.dm" -#include "code\game\machinery\computer\message.dm" -#include "code\game\machinery\computer\Operating.dm" -#include "code\game\machinery\computer\pod.dm" -#include "code\game\machinery\computer\pod_tracking_console.dm" -#include "code\game\machinery\computer\power.dm" -#include "code\game\machinery\computer\prisoner.dm" -#include "code\game\machinery\computer\robot.dm" -#include "code\game\machinery\computer\salvage_ship.dm" -#include "code\game\machinery\computer\security.dm" -#include "code\game\machinery\computer\skills.dm" -#include "code\game\machinery\computer\specops_shuttle.dm" -#include "code\game\machinery\computer\station_alert.dm" -#include "code\game\machinery\computer\store.dm" -#include "code\game\machinery\computer\syndicate_specops_shuttle.dm" -#include "code\game\machinery\computer\vr_control.dm" -#include "code\game\machinery\doors\airlock.dm" -#include "code\game\machinery\doors\airlock_control.dm" -#include "code\game\machinery\doors\airlock_electronics.dm" -#include "code\game\machinery\doors\airlock_types.dm" -#include "code\game\machinery\doors\alarmlock.dm" -#include "code\game\machinery\doors\brigdoors.dm" -#include "code\game\machinery\doors\checkForMultipleDoors.dm" -#include "code\game\machinery\doors\door.dm" -#include "code\game\machinery\doors\firedoor.dm" -#include "code\game\machinery\doors\poddoor.dm" -#include "code\game\machinery\doors\shutters.dm" -#include "code\game\machinery\doors\spacepod.dm" -#include "code\game\machinery\doors\unpowered.dm" -#include "code\game\machinery\doors\windowdoor.dm" -#include "code\game\machinery\embedded_controller\airlock_controllers.dm" -#include "code\game\machinery\embedded_controller\airlock_program.dm" -#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" -#include "code\game\machinery\embedded_controller\embedded_program_base.dm" -#include "code\game\machinery\pipe\construction.dm" -#include "code\game\machinery\pipe\pipe_dispenser.dm" -#include "code\game\machinery\telecomms\broadcaster.dm" -#include "code\game\machinery\telecomms\logbrowser.dm" -#include "code\game\machinery\telecomms\machine_interactions.dm" -#include "code\game\machinery\telecomms\ntsl2.dm" -#include "code\game\machinery\telecomms\presets.dm" -#include "code\game\machinery\telecomms\telecomunications.dm" -#include "code\game\machinery\telecomms\telemonitor.dm" -#include "code\game\machinery\telecomms\traffic_control.dm" -#include "code\game\magic\Uristrunes.dm" -#include "code\game\mecha\mech_bay.dm" -#include "code\game\mecha\mech_fabricator.dm" -#include "code\game\mecha\mecha.dm" -#include "code\game\mecha\mecha_actions.dm" -#include "code\game\mecha\mecha_construction_paths.dm" -#include "code\game\mecha\mecha_control_console.dm" -#include "code\game\mecha\mecha_modkit.dm" -#include "code\game\mecha\mecha_parts.dm" -#include "code\game\mecha\mecha_topic.dm" -#include "code\game\mecha\mecha_wreckage.dm" -#include "code\game\mecha\paintkits.dm" -#include "code\game\mecha\combat\combat.dm" -#include "code\game\mecha\combat\durand.dm" -#include "code\game\mecha\combat\gygax.dm" -#include "code\game\mecha\combat\honker.dm" -#include "code\game\mecha\combat\marauder.dm" -#include "code\game\mecha\combat\phazon.dm" -#include "code\game\mecha\combat\reticence.dm" -#include "code\game\mecha\equipment\mecha_equipment.dm" -#include "code\game\mecha\equipment\tools\medical_tools.dm" -#include "code\game\mecha\equipment\tools\mining_tools.dm" -#include "code\game\mecha\equipment\tools\other_tools.dm" -#include "code\game\mecha\equipment\tools\work_tools.dm" -#include "code\game\mecha\equipment\weapons\weapons.dm" -#include "code\game\mecha\medical\medical.dm" -#include "code\game\mecha\medical\odysseus.dm" -#include "code\game\mecha\working\ripley.dm" -#include "code\game\mecha\working\working.dm" -#include "code\game\objects\buckling.dm" -#include "code\game\objects\empulse.dm" -#include "code\game\objects\explosion.dm" -#include "code\game\objects\items.dm" -#include "code\game\objects\obj_defense.dm" -#include "code\game\objects\objs.dm" -#include "code\game\objects\structures.dm" -#include "code\game\objects\effects\alien_acid.dm" -#include "code\game\objects\effects\anomalies.dm" -#include "code\game\objects\effects\bump_teleporter.dm" -#include "code\game\objects\effects\effects.dm" -#include "code\game\objects\effects\forcefields.dm" -#include "code\game\objects\effects\gibs.dm" -#include "code\game\objects\effects\glowshroom.dm" -#include "code\game\objects\effects\landmarks.dm" -#include "code\game\objects\effects\manifest.dm" -#include "code\game\objects\effects\mapping_helpers.dm" -#include "code\game\objects\effects\mines.dm" -#include "code\game\objects\effects\misc.dm" -#include "code\game\objects\effects\overlays.dm" -#include "code\game\objects\effects\portals.dm" -#include "code\game\objects\effects\snowcloud.dm" -#include "code\game\objects\effects\spiders.dm" -#include "code\game\objects\effects\step_triggers.dm" -#include "code\game\objects\effects\decals\cleanable.dm" -#include "code\game\objects\effects\decals\contraband.dm" -#include "code\game\objects\effects\decals\crayon.dm" -#include "code\game\objects\effects\decals\decal.dm" -#include "code\game\objects\effects\decals\misc.dm" -#include "code\game\objects\effects\decals\remains.dm" -#include "code\game\objects\effects\decals\warning_stripes.dm" -#include "code\game\objects\effects\decals\Cleanable\aliens.dm" -#include "code\game\objects\effects\decals\Cleanable\fuel.dm" -#include "code\game\objects\effects\decals\Cleanable\humans.dm" -#include "code\game\objects\effects\decals\Cleanable\misc.dm" -#include "code\game\objects\effects\decals\Cleanable\robots.dm" -#include "code\game\objects\effects\decals\Cleanable\tracks.dm" -#include "code\game\objects\effects\decals\turfdecals\dirt.dm" -#include "code\game\objects\effects\decals\turfdecals\markings.dm" -#include "code\game\objects\effects\decals\turfdecals\tilecoloring.dm" -#include "code\game\objects\effects\decals\turfdecals\weather.dm" -#include "code\game\objects\effects\effect_system\effect_system.dm" -#include "code\game\objects\effects\effect_system\effects_chem_smoke.dm" -#include "code\game\objects\effects\effect_system\effects_explosion.dm" -#include "code\game\objects\effects\effect_system\effects_foam.dm" -#include "code\game\objects\effects\effect_system\effects_other.dm" -#include "code\game\objects\effects\effect_system\effects_smoke.dm" -#include "code\game\objects\effects\effect_system\effects_sparks.dm" -#include "code\game\objects\effects\effect_system\effects_water.dm" -#include "code\game\objects\effects\spawners\bombspawner.dm" -#include "code\game\objects\effects\spawners\gibspawner.dm" -#include "code\game\objects\effects\spawners\lootdrop.dm" -#include "code\game\objects\effects\spawners\random_barrier.dm" -#include "code\game\objects\effects\spawners\random_spawners.dm" -#include "code\game\objects\effects\spawners\vaultspawner.dm" -#include "code\game\objects\effects\spawners\windowspawner.dm" -#include "code\game\objects\effects\temporary_visuals\clockcult.dm" -#include "code\game\objects\effects\temporary_visuals\cult.dm" -#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" -#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" -#include "code\game\objects\items\ashtray.dm" -#include "code\game\objects\items\blueprints.dm" -#include "code\game\objects\items\bodybag.dm" -#include "code\game\objects\items\candle.dm" -#include "code\game\objects\items\cardboard_cutouts.dm" -#include "code\game\objects\items\changestone.dm" -#include "code\game\objects\items\contraband.dm" -#include "code\game\objects\items\control_wand.dm" -#include "code\game\objects\items\crayons.dm" -#include "code\game\objects\items\dehy_carp.dm" -#include "code\game\objects\items\documents.dm" -#include "code\game\objects\items\flag.dm" -#include "code\game\objects\items\latexballoon.dm" -#include "code\game\objects\items\misc.dm" -#include "code\game\objects\items\mixing_bowl.dm" -#include "code\game\objects\items\random_items.dm" -#include "code\game\objects\items\shooting_range.dm" -#include "code\game\objects\items\toys.dm" -#include "code\game\objects\items\trash.dm" -#include "code\game\objects\items\devices\aicard.dm" -#include "code\game\objects\items\devices\autopsy.dm" -#include "code\game\objects\items\devices\camera_bug.dm" -#include "code\game\objects\items\devices\chameleonproj.dm" -#include "code\game\objects\items\devices\flash.dm" -#include "code\game\objects\items\devices\flashlight.dm" -#include "code\game\objects\items\devices\floor_painter.dm" -#include "code\game\objects\items\devices\handheld_defib.dm" -#include "code\game\objects\items\devices\instruments.dm" -#include "code\game\objects\items\devices\laserpointer.dm" -#include "code\game\objects\items\devices\lightreplacer.dm" -#include "code\game\objects\items\devices\machineprototype.dm" -#include "code\game\objects\items\devices\megaphone.dm" -#include "code\game\objects\items\devices\multitool.dm" -#include "code\game\objects\items\devices\paicard.dm" -#include "code\game\objects\items\devices\pipe_painter.dm" -#include "code\game\objects\items\devices\pizza_bomb.dm" -#include "code\game\objects\items\devices\powersink.dm" -#include "code\game\objects\items\devices\scanners.dm" -#include "code\game\objects\items\devices\sensor_device.dm" -#include "code\game\objects\items\devices\taperecorder.dm" -#include "code\game\objects\items\devices\thermal_drill.dm" -#include "code\game\objects\items\devices\traitordevices.dm" -#include "code\game\objects\items\devices\transfer_valve.dm" -#include "code\game\objects\items\devices\uplinks.dm" -#include "code\game\objects\items\devices\voice.dm" -#include "code\game\objects\items\devices\whistle.dm" -#include "code\game\objects\items\devices\radio\beacon.dm" -#include "code\game\objects\items\devices\radio\electropack.dm" -#include "code\game\objects\items\devices\radio\encryptionkey.dm" -#include "code\game\objects\items\devices\radio\headset.dm" -#include "code\game\objects\items\devices\radio\intercom.dm" -#include "code\game\objects\items\devices\radio\radio.dm" -#include "code\game\objects\items\mountable_frames\air_alarm.dm" -#include "code\game\objects\items\mountable_frames\apc_frame.dm" -#include "code\game\objects\items\mountable_frames\buttons_switches.dm" -#include "code\game\objects\items\mountable_frames\extinguisher_frame.dm" -#include "code\game\objects\items\mountable_frames\fire_alarm.dm" -#include "code\game\objects\items\mountable_frames\frames.dm" -#include "code\game\objects\items\mountable_frames\intercom.dm" -#include "code\game\objects\items\mountable_frames\lights.dm" -#include "code\game\objects\items\mountable_frames\mountables.dm" -#include "code\game\objects\items\mountable_frames\newscaster_frame.dm" -#include "code\game\objects\items\robot\ai_upgrades.dm" -#include "code\game\objects\items\robot\robot_items.dm" -#include "code\game\objects\items\robot\robot_parts.dm" -#include "code\game\objects\items\robot\robot_upgrades.dm" -#include "code\game\objects\items\stacks\medical.dm" -#include "code\game\objects\items\stacks\nanopaste.dm" -#include "code\game\objects\items\stacks\rods.dm" -#include "code\game\objects\items\stacks\stack.dm" -#include "code\game\objects\items\stacks\stack_recipe.dm" -#include "code\game\objects\items\stacks\telecrystal.dm" -#include "code\game\objects\items\stacks\sheets\glass.dm" -#include "code\game\objects\items\stacks\sheets\leather.dm" -#include "code\game\objects\items\stacks\sheets\light.dm" -#include "code\game\objects\items\stacks\sheets\mineral.dm" -#include "code\game\objects\items\stacks\sheets\sheet_types.dm" -#include "code\game\objects\items\stacks\sheets\sheets.dm" -#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" -#include "code\game\objects\items\stacks\tiles\tile_types.dm" -#include "code\game\objects\items\weapons\AI_modules.dm" -#include "code\game\objects\items\weapons\alien_specific.dm" -#include "code\game\objects\items\weapons\bee_briefcase.dm" -#include "code\game\objects\items\weapons\cards_ids.dm" -#include "code\game\objects\items\weapons\cash.dm" -#include "code\game\objects\items\weapons\caution.dm" -#include "code\game\objects\items\weapons\chrono_eraser.dm" -#include "code\game\objects\items\weapons\cigs.dm" -#include "code\game\objects\items\weapons\clown_items.dm" -#include "code\game\objects\items\weapons\cosmetics.dm" -#include "code\game\objects\items\weapons\courtroom.dm" -#include "code\game\objects\items\weapons\defib.dm" -#include "code\game\objects\items\weapons\dice.dm" -#include "code\game\objects\items\weapons\disks.dm" -#include "code\game\objects\items\weapons\dna_injector.dm" -#include "code\game\objects\items\weapons\dnascrambler.dm" -#include "code\game\objects\items\weapons\explosives.dm" -#include "code\game\objects\items\weapons\extinguisher.dm" -#include "code\game\objects\items\weapons\fireworks.dm" -#include "code\game\objects\items\weapons\flamethrower.dm" -#include "code\game\objects\items\weapons\garrote.dm" -#include "code\game\objects\items\weapons\gift_wrappaper.dm" -#include "code\game\objects\items\weapons\handcuffs.dm" -#include "code\game\objects\items\weapons\highlander_swords.dm" -#include "code\game\objects\items\weapons\holosign.dm" -#include "code\game\objects\items\weapons\holy_weapons.dm" -#include "code\game\objects\items\weapons\kitchen.dm" -#include "code\game\objects\items\weapons\legcuffs.dm" -#include "code\game\objects\items\weapons\lighters.dm" -#include "code\game\objects\items\weapons\manuals.dm" -#include "code\game\objects\items\weapons\misc.dm" -#include "code\game\objects\items\weapons\mop.dm" -#include "code\game\objects\items\weapons\paint.dm" -#include "code\game\objects\items\weapons\paiwire.dm" -#include "code\game\objects\items\weapons\pneumaticCannon.dm" -#include "code\game\objects\items\weapons\powerfist.dm" -#include "code\game\objects\items\weapons\RCD.dm" -#include "code\game\objects\items\weapons\RCL.dm" -#include "code\game\objects\items\weapons\rpd.dm" -#include "code\game\objects\items\weapons\RSF.dm" -#include "code\game\objects\items\weapons\scissors.dm" -#include "code\game\objects\items\weapons\scrolls.dm" -#include "code\game\objects\items\weapons\shards.dm" -#include "code\game\objects\items\weapons\shields.dm" -#include "code\game\objects\items\weapons\signs.dm" -#include "code\game\objects\items\weapons\soap.dm" -#include "code\game\objects\items\weapons\staff.dm" -#include "code\game\objects\items\weapons\stock_parts.dm" -#include "code\game\objects\items\weapons\stunbaton.dm" -#include "code\game\objects\items\weapons\swords_axes_etc.dm" -#include "code\game\objects\items\weapons\tape.dm" -#include "code\game\objects\items\weapons\teleportation.dm" -#include "code\game\objects\items\weapons\teleprod.dm" -#include "code\game\objects\items\weapons\tools.dm" -#include "code\game\objects\items\weapons\twohanded.dm" -#include "code\game\objects\items\weapons\vending_items.dm" -#include "code\game\objects\items\weapons\weaponry.dm" -#include "code\game\objects\items\weapons\whetstone.dm" -#include "code\game\objects\items\weapons\grenades\atmosgrenade.dm" -#include "code\game\objects\items\weapons\grenades\bananade.dm" -#include "code\game\objects\items\weapons\grenades\chem_grenade.dm" -#include "code\game\objects\items\weapons\grenades\clowngrenade.dm" -#include "code\game\objects\items\weapons\grenades\clusterbuster.dm" -#include "code\game\objects\items\weapons\grenades\confetti.dm" -#include "code\game\objects\items\weapons\grenades\custom_grenades.dm" -#include "code\game\objects\items\weapons\grenades\emgrenade.dm" -#include "code\game\objects\items\weapons\grenades\flashbang.dm" -#include "code\game\objects\items\weapons\grenades\frag.dm" -#include "code\game\objects\items\weapons\grenades\ghettobomb.dm" -#include "code\game\objects\items\weapons\grenades\grenade.dm" -#include "code\game\objects\items\weapons\grenades\smokebomb.dm" -#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm" -#include "code\game\objects\items\weapons\grenades\syndieminibomb.dm" -#include "code\game\objects\items\weapons\implants\health.dm" -#include "code\game\objects\items\weapons\implants\implant.dm" -#include "code\game\objects\items\weapons\implants\implant_abductor.dm" -#include "code\game\objects\items\weapons\implants\implant_chem.dm" -#include "code\game\objects\items\weapons\implants\implant_death_alarm.dm" -#include "code\game\objects\items\weapons\implants\implant_explosive.dm" -#include "code\game\objects\items\weapons\implants\implant_freedom.dm" -#include "code\game\objects\items\weapons\implants\implant_krav_maga.dm" -#include "code\game\objects\items\weapons\implants\implant_mindshield.dm" -#include "code\game\objects\items\weapons\implants\implant_misc.dm" -#include "code\game\objects\items\weapons\implants\implant_storage.dm" -#include "code\game\objects\items\weapons\implants\implant_track.dm" -#include "code\game\objects\items\weapons\implants\implant_traitor.dm" -#include "code\game\objects\items\weapons\implants\implantcase.dm" -#include "code\game\objects\items\weapons\implants\implantchair.dm" -#include "code\game\objects\items\weapons\implants\implanter.dm" -#include "code\game\objects\items\weapons\implants\implantpad.dm" -#include "code\game\objects\items\weapons\implants\implantuplink.dm" -#include "code\game\objects\items\weapons\melee\energy.dm" -#include "code\game\objects\items\weapons\melee\misc.dm" -#include "code\game\objects\items\weapons\storage\artistic_toolbox.dm" -#include "code\game\objects\items\weapons\storage\backpack.dm" -#include "code\game\objects\items\weapons\storage\bags.dm" -#include "code\game\objects\items\weapons\storage\belt.dm" -#include "code\game\objects\items\weapons\storage\bible.dm" -#include "code\game\objects\items\weapons\storage\boxes.dm" -#include "code\game\objects\items\weapons\storage\briefcase.dm" -#include "code\game\objects\items\weapons\storage\fancy.dm" -#include "code\game\objects\items\weapons\storage\firstaid.dm" -#include "code\game\objects\items\weapons\storage\internal.dm" -#include "code\game\objects\items\weapons\storage\lockbox.dm" -#include "code\game\objects\items\weapons\storage\secure.dm" -#include "code\game\objects\items\weapons\storage\storage.dm" -#include "code\game\objects\items\weapons\storage\toolbox.dm" -#include "code\game\objects\items\weapons\storage\uplink_kits.dm" -#include "code\game\objects\items\weapons\storage\wallets.dm" -#include "code\game\objects\items\weapons\tanks\jetpack.dm" -#include "code\game\objects\items\weapons\tanks\tank_types.dm" -#include "code\game\objects\items\weapons\tanks\tanks.dm" -#include "code\game\objects\items\weapons\tanks\watertank.dm" -#include "code\game\objects\random\random.dm" -#include "code\game\objects\structures\aliens.dm" -#include "code\game\objects\structures\barsign.dm" -#include "code\game\objects\structures\bedsheet_bin.dm" -#include "code\game\objects\structures\coathanger.dm" -#include "code\game\objects\structures\curtains.dm" -#include "code\game\objects\structures\depot.dm" -#include "code\game\objects\structures\displaycase.dm" -#include "code\game\objects\structures\door_assembly.dm" -#include "code\game\objects\structures\door_assembly_types.dm" -#include "code\game\objects\structures\dresser.dm" -#include "code\game\objects\structures\electricchair.dm" -#include "code\game\objects\structures\engicart.dm" -#include "code\game\objects\structures\extinguisher.dm" -#include "code\game\objects\structures\false_walls.dm" -#include "code\game\objects\structures\flora.dm" -#include "code\game\objects\structures\fluff.dm" -#include "code\game\objects\structures\foodcart.dm" -#include "code\game\objects\structures\girders.dm" -#include "code\game\objects\structures\grille.dm" -#include "code\game\objects\structures\guillotine.dm" -#include "code\game\objects\structures\holosign.dm" -#include "code\game\objects\structures\inflatable.dm" -#include "code\game\objects\structures\janicart.dm" -#include "code\game\objects\structures\kitchen_spike.dm" -#include "code\game\objects\structures\ladders.dm" -#include "code\game\objects\structures\lamarr_cage.dm" -#include "code\game\objects\structures\lattice.dm" -#include "code\game\objects\structures\mineral_doors.dm" -#include "code\game\objects\structures\mirror.dm" -#include "code\game\objects\structures\misc.dm" -#include "code\game\objects\structures\mop_bucket.dm" -#include "code\game\objects\structures\morgue.dm" -#include "code\game\objects\structures\musician.dm" -#include "code\game\objects\structures\noticeboard.dm" -#include "code\game\objects\structures\plasticflaps.dm" -#include "code\game\objects\structures\reflector.dm" -#include "code\game\objects\structures\safe.dm" -#include "code\game\objects\structures\signs.dm" -#include "code\game\objects\structures\spirit_board.dm" -#include "code\game\objects\structures\statues.dm" -#include "code\game\objects\structures\table_frames.dm" -#include "code\game\objects\structures\tables_racks.dm" -#include "code\game\objects\structures\tank_dispenser.dm" -#include "code\game\objects\structures\target_stake.dm" -#include "code\game\objects\structures\watercloset.dm" -#include "code\game\objects\structures\windoor_assembly.dm" -#include "code\game\objects\structures\window.dm" -#include "code\game\objects\structures\crates_lockers\closets.dm" -#include "code\game\objects\structures\crates_lockers\crates.dm" -#include "code\game\objects\structures\crates_lockers\crittercrate.dm" -#include "code\game\objects\structures\crates_lockers\largecrate.dm" -#include "code\game\objects\structures\crates_lockers\walllocker.dm" -#include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm" -#include "code\game\objects\structures\crates_lockers\closets\coffin.dm" -#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm" -#include "code\game\objects\structures\crates_lockers\closets\fireaxe.dm" -#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" -#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" -#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" -#include "code\game\objects\structures\crates_lockers\closets\malfunction.dm" -#include "code\game\objects\structures\crates_lockers\closets\statue.dm" -#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" -#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\chaplain.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\depot.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\miscjobs.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" -#include "code\game\objects\structures\decor\decor.dm" -#include "code\game\objects\structures\decor\machinery\telecomms.dm" -#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm" -#include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" -#include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" -#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm" -#include "code\game\objects\structures\transit_tubes\station.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube.dm" -#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" -#include "code\game\turfs\simulated.dm" -#include "code\game\turfs\turf.dm" -#include "code\game\turfs\unsimulated.dm" -#include "code\game\turfs\simulated\floor.dm" -#include "code\game\turfs\simulated\minerals.dm" -#include "code\game\turfs\simulated\river.dm" -#include "code\game\turfs\simulated\shuttle.dm" -#include "code\game\turfs\simulated\walls.dm" -#include "code\game\turfs\simulated\walls_indestructible.dm" -#include "code\game\turfs\simulated\walls_mineral.dm" -#include "code\game\turfs\simulated\walls_misc.dm" -#include "code\game\turfs\simulated\walls_reinforced.dm" -#include "code\game\turfs\simulated\floor\asteroid.dm" -#include "code\game\turfs\simulated\floor\chasm.dm" -#include "code\game\turfs\simulated\floor\fancy_floor.dm" -#include "code\game\turfs\simulated\floor\indestructible.dm" -#include "code\game\turfs\simulated\floor\lava.dm" -#include "code\game\turfs\simulated\floor\light_floor.dm" -#include "code\game\turfs\simulated\floor\mineral.dm" -#include "code\game\turfs\simulated\floor\misc_floor.dm" -#include "code\game\turfs\simulated\floor\plasteel_floor.dm" -#include "code\game\turfs\simulated\floor\plating.dm" -#include "code\game\turfs\space\space.dm" -#include "code\game\turfs\space\transit.dm" -#include "code\game\turfs\unsimulated\beach.dm" -#include "code\game\turfs\unsimulated\floor.dm" -#include "code\game\turfs\unsimulated\walls.dm" -#include "code\game\verbs\ooc.dm" -#include "code\game\verbs\randomtip.dm" -#include "code\game\verbs\suicide.dm" -#include "code\game\verbs\who.dm" -#include "code\js\byjax.dm" -#include "code\js\menus.dm" -#include "code\LINDA\LINDA_fire.dm" -#include "code\LINDA\LINDA_system.dm" -#include "code\LINDA\LINDA_turf_tile.dm" -#include "code\modules\admin\admin.dm" -#include "code\modules\admin\admin_investigate.dm" -#include "code\modules\admin\admin_memo.dm" -#include "code\modules\admin\admin_ranks.dm" -#include "code\modules\admin\admin_verbs.dm" -#include "code\modules\admin\banappearance.dm" -#include "code\modules\admin\banjob.dm" -#include "code\modules\admin\create_mob.dm" -#include "code\modules\admin\create_object.dm" -#include "code\modules\admin\create_poll.dm" -#include "code\modules\admin\create_turf.dm" -#include "code\modules\admin\holder2.dm" -#include "code\modules\admin\ipintel.dm" -#include "code\modules\admin\IsBanned.dm" -#include "code\modules\admin\machine_upgrade.dm" -#include "code\modules\admin\NewBan.dm" -#include "code\modules\admin\player_panel.dm" -#include "code\modules\admin\secrets.dm" -#include "code\modules\admin\sql_notes.dm" -#include "code\modules\admin\stickyban.dm" -#include "code\modules\admin\topic.dm" -#include "code\modules\admin\ToRban.dm" -#include "code\modules\admin\watchlist.dm" -#include "code\modules\admin\DB ban\functions.dm" -#include "code\modules\admin\permissionverbs\permissionedit.dm" -#include "code\modules\admin\tickets\adminticketsverbs.dm" -#include "code\modules\admin\tickets\mentorticketsverbs.dm" -#include "code\modules\admin\verbs\adminhelp.dm" -#include "code\modules\admin\verbs\adminjump.dm" -#include "code\modules\admin\verbs\adminpm.dm" -#include "code\modules\admin\verbs\adminsay.dm" -#include "code\modules\admin\verbs\alt_check.dm" -#include "code\modules\admin\verbs\antag-ooc.dm" -#include "code\modules\admin\verbs\atmosdebug.dm" -#include "code\modules\admin\verbs\BrokenInhands.dm" -#include "code\modules\admin\verbs\cinematic.dm" -#include "code\modules\admin\verbs\custom_event.dm" -#include "code\modules\admin\verbs\deadsay.dm" -#include "code\modules\admin\verbs\debug.dm" -#include "code\modules\admin\verbs\diagnostics.dm" -#include "code\modules\admin\verbs\dice.dm" -#include "code\modules\admin\verbs\freeze.dm" -#include "code\modules\admin\verbs\getlogs.dm" -#include "code\modules\admin\verbs\gimmick_team.dm" -#include "code\modules\admin\verbs\honksquad.dm" -#include "code\modules\admin\verbs\infiltratorteam_syndicate.dm" -#include "code\modules\admin\verbs\map_template_loadverb.dm" -#include "code\modules\admin\verbs\mapping.dm" -#include "code\modules\admin\verbs\massmodvar.dm" -#include "code\modules\admin\verbs\modifyvariables.dm" -#include "code\modules\admin\verbs\one_click_antag.dm" -#include "code\modules\admin\verbs\onlyone.dm" -#include "code\modules\admin\verbs\onlyoneteam.dm" -#include "code\modules\admin\verbs\playsound.dm" -#include "code\modules\admin\verbs\possess.dm" -#include "code\modules\admin\verbs\pray.dm" -#include "code\modules\admin\verbs\randomverbs.dm" -#include "code\modules\admin\verbs\serialization.dm" -#include "code\modules\admin\verbs\space_transitions.dm" -#include "code\modules\admin\verbs\spawnfloorcluwne.dm" -#include "code\modules\admin\verbs\striketeam.dm" -#include "code\modules\admin\verbs\striketeam_syndicate.dm" -#include "code\modules\admin\verbs\ticklag.dm" -#include "code\modules\admin\verbs\toggledebugverbs.dm" -#include "code\modules\admin\verbs\tripAI.dm" -#include "code\modules\admin\verbs\vox_raiders.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" -#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" -#include "code\modules\admin\verbs\SDQL2\useful_procs.dm" -#include "code\modules\alarm\alarm.dm" -#include "code\modules\alarm\alarm_handler.dm" -#include "code\modules\alarm\atmosphere_alarm.dm" -#include "code\modules\alarm\burglar_alarm.dm" -#include "code\modules\alarm\camera_alarm.dm" -#include "code\modules\alarm\fire_alarm.dm" -#include "code\modules\alarm\motion_alarm.dm" -#include "code\modules\alarm\power_alarm.dm" -#include "code\modules\antagonists\_common\antag_datum.dm" -#include "code\modules\antagonists\_common\antag_helpers.dm" -#include "code\modules\antagonists\_common\antag_hud.dm" -#include "code\modules\antagonists\_common\antag_spawner.dm" -#include "code\modules\antagonists\_common\antag_team.dm" -#include "code\modules\antagonists\wishgranter\wishgranter.dm" -#include "code\modules\arcade\arcade_base.dm" -#include "code\modules\arcade\arcade_prize.dm" -#include "code\modules\arcade\claw_game.dm" -#include "code\modules\arcade\prize_counter.dm" -#include "code\modules\arcade\prize_datums.dm" -#include "code\modules\arcade\mob_hunt\battle_computer.dm" -#include "code\modules\arcade\mob_hunt\mob_avatar.dm" -#include "code\modules\arcade\mob_hunt\mob_cards.dm" -#include "code\modules\arcade\mob_hunt\mob_datums.dm" -#include "code\modules\arcade\mob_hunt\mob_type_datums.dm" -#include "code\modules\assembly\assembly.dm" -#include "code\modules\assembly\bomb.dm" -#include "code\modules\assembly\health.dm" -#include "code\modules\assembly\helpers.dm" -#include "code\modules\assembly\holder.dm" -#include "code\modules\assembly\igniter.dm" -#include "code\modules\assembly\infrared.dm" -#include "code\modules\assembly\mousetrap.dm" -#include "code\modules\assembly\proximity.dm" -#include "code\modules\assembly\shock_kit.dm" -#include "code\modules\assembly\signaler.dm" -#include "code\modules\assembly\timer.dm" -#include "code\modules\assembly\voice.dm" -#include "code\modules\atmos_automation\console.dm" -#include "code\modules\atmos_automation\statements.dm" -#include "code\modules\atmos_automation\implementation\digital_valves.dm" -#include "code\modules\atmos_automation\implementation\emitters.dm" -#include "code\modules\atmos_automation\implementation\injectors.dm" -#include "code\modules\atmos_automation\implementation\scrubbers.dm" -#include "code\modules\atmos_automation\implementation\sensors.dm" -#include "code\modules\atmos_automation\implementation\vent_pump.dm" -#include "code\modules\awaymissions\corpse.dm" -#include "code\modules\awaymissions\exile.dm" -#include "code\modules\awaymissions\gateway.dm" -#include "code\modules\awaymissions\loot.dm" -#include "code\modules\awaymissions\map_rng.dm" -#include "code\modules\awaymissions\pamphlet.dm" -#include "code\modules\awaymissions\trigger.dm" -#include "code\modules\awaymissions\zlevel.dm" -#include "code\modules\awaymissions\zvis.dm" -#include "code\modules\awaymissions\maploader\dmm_suite.dm" -#include "code\modules\awaymissions\maploader\reader.dm" -#include "code\modules\awaymissions\maploader\writer.dm" -#include "code\modules\awaymissions\mission_code\academy.dm" -#include "code\modules\awaymissions\mission_code\beach.dm" -#include "code\modules\awaymissions\mission_code\blackmarketpackers.dm" -#include "code\modules\awaymissions\mission_code\centcomAway.dm" -#include "code\modules\awaymissions\mission_code\challenge.dm" -#include "code\modules\awaymissions\mission_code\evil_santa.dm" -#include "code\modules\awaymissions\mission_code\spacebattle.dm" -#include "code\modules\awaymissions\mission_code\spacehotel.dm" -#include "code\modules\awaymissions\mission_code\stationCollision.dm" -#include "code\modules\awaymissions\mission_code\UO71-terrorspiders.dm" -#include "code\modules\awaymissions\mission_code\wildwest.dm" -#include "code\modules\awaymissions\mission_code\ghost_role_spawners\golems.dm" -#include "code\modules\awaymissions\mission_code\ghost_role_spawners\oldstation.dm" -#include "code\modules\awaymissions\mission_code\ruins\oldstation.dm" -#include "code\modules\awaymissions\mission_code\ruins\wizardcrash.dm" -#include "code\modules\buildmode\bm_mode.dm" -#include "code\modules\buildmode\buildmode.dm" -#include "code\modules\buildmode\buttons.dm" -#include "code\modules\buildmode\effects\line.dm" -#include "code\modules\buildmode\submodes\advanced.dm" -#include "code\modules\buildmode\submodes\area_edit.dm" -#include "code\modules\buildmode\submodes\atmos.dm" -#include "code\modules\buildmode\submodes\basic.dm" -#include "code\modules\buildmode\submodes\boom.dm" -#include "code\modules\buildmode\submodes\copy.dm" -#include "code\modules\buildmode\submodes\fill.dm" -#include "code\modules\buildmode\submodes\link.dm" -#include "code\modules\buildmode\submodes\mapgen.dm" -#include "code\modules\buildmode\submodes\save.dm" -#include "code\modules\buildmode\submodes\throwing.dm" -#include "code\modules\buildmode\submodes\variable_edit.dm" -#include "code\modules\busy_space\air_traffic.dm" -#include "code\modules\busy_space\loremaster.dm" -#include "code\modules\busy_space\organizations.dm" -#include "code\modules\client\asset_cache.dm" -#include "code\modules\client\client defines.dm" -#include "code\modules\client\client procs.dm" -#include "code\modules\client\message.dm" -#include "code\modules\client\view.dm" -#include "code\modules\client\preference\preferences.dm" -#include "code\modules\client\preference\preferences_mysql.dm" -#include "code\modules\client\preference\preferences_spawnpoints.dm" -#include "code\modules\client\preference\preferences_toggles.dm" -#include "code\modules\client\preference\loadout\gear_tweaks.dm" -#include "code\modules\client\preference\loadout\loadout.dm" -#include "code\modules\client\preference\loadout\loadout_accessories.dm" -#include "code\modules\client\preference\loadout\loadout_cosmetics.dm" -#include "code\modules\client\preference\loadout\loadout_donor.dm" -#include "code\modules\client\preference\loadout\loadout_general.dm" -#include "code\modules\client\preference\loadout\loadout_hat.dm" -#include "code\modules\client\preference\loadout\loadout_racial.dm" -#include "code\modules\client\preference\loadout\loadout_shoes.dm" -#include "code\modules\client\preference\loadout\loadout_suit.dm" -#include "code\modules\client\preference\loadout\loadout_uniform.dm" -#include "code\modules\clothing\chameleon.dm" -#include "code\modules\clothing\clothing.dm" -#include "code\modules\clothing\ears\ears.dm" -#include "code\modules\clothing\glasses\glasses.dm" -#include "code\modules\clothing\glasses\hud.dm" -#include "code\modules\clothing\gloves\boxing.dm" -#include "code\modules\clothing\gloves\color.dm" -#include "code\modules\clothing\gloves\miscellaneous.dm" -#include "code\modules\clothing\gloves\rings.dm" -#include "code\modules\clothing\head\collectable.dm" -#include "code\modules\clothing\head\hardhat.dm" -#include "code\modules\clothing\head\helmet.dm" -#include "code\modules\clothing\head\jobs.dm" -#include "code\modules\clothing\head\misc.dm" -#include "code\modules\clothing\head\misc_special.dm" -#include "code\modules\clothing\head\soft_caps.dm" -#include "code\modules\clothing\masks\boxing.dm" -#include "code\modules\clothing\masks\breath.dm" -#include "code\modules\clothing\masks\gasmask.dm" -#include "code\modules\clothing\masks\miscellaneous.dm" -#include "code\modules\clothing\patreon\glasses.dm" -#include "code\modules\clothing\patreon\hats.dm" -#include "code\modules\clothing\shoes\colour.dm" -#include "code\modules\clothing\shoes\magboots.dm" -#include "code\modules\clothing\shoes\miscellaneous.dm" -#include "code\modules\clothing\spacesuits\alien.dm" -#include "code\modules\clothing\spacesuits\breaches.dm" -#include "code\modules\clothing\spacesuits\chronosuit.dm" -#include "code\modules\clothing\spacesuits\ert.dm" -#include "code\modules\clothing\spacesuits\hardsuit.dm" -#include "code\modules\clothing\spacesuits\miscellaneous.dm" -#include "code\modules\clothing\spacesuits\plasmamen.dm" -#include "code\modules\clothing\spacesuits\syndi.dm" -#include "code\modules\clothing\spacesuits\void.dm" -#include "code\modules\clothing\spacesuits\rig\rig.dm" -#include "code\modules\clothing\spacesuits\rig\rig_armormod.dm" -#include "code\modules\clothing\spacesuits\rig\rig_attackby.dm" -#include "code\modules\clothing\spacesuits\rig\rig_pieces.dm" -#include "code\modules\clothing\spacesuits\rig\rig_verbs.dm" -#include "code\modules\clothing\spacesuits\rig\rig_wiring.dm" -#include "code\modules\clothing\spacesuits\rig\modules\combat.dm" -#include "code\modules\clothing\spacesuits\rig\modules\computer.dm" -#include "code\modules\clothing\spacesuits\rig\modules\modules.dm" -#include "code\modules\clothing\spacesuits\rig\modules\ninja.dm" -#include "code\modules\clothing\spacesuits\rig\modules\utility.dm" -#include "code\modules\clothing\spacesuits\rig\modules\vision.dm" -#include "code\modules\clothing\spacesuits\rig\suits\alien.dm" -#include "code\modules\clothing\spacesuits\rig\suits\combat.dm" -#include "code\modules\clothing\spacesuits\rig\suits\ert_suits.dm" -#include "code\modules\clothing\spacesuits\rig\suits\light.dm" -#include "code\modules\clothing\spacesuits\rig\suits\merc.dm" -#include "code\modules\clothing\spacesuits\rig\suits\station.dm" -#include "code\modules\clothing\suits\alien.dm" -#include "code\modules\clothing\suits\armor.dm" -#include "code\modules\clothing\suits\bio.dm" -#include "code\modules\clothing\suits\hood.dm" -#include "code\modules\clothing\suits\jobs.dm" -#include "code\modules\clothing\suits\labcoat.dm" -#include "code\modules\clothing\suits\miscellaneous.dm" -#include "code\modules\clothing\suits\storage.dm" -#include "code\modules\clothing\suits\utility.dm" -#include "code\modules\clothing\suits\wiz_robe.dm" -#include "code\modules\clothing\under\color.dm" -#include "code\modules\clothing\under\miscellaneous.dm" -#include "code\modules\clothing\under\oldstation_uni.dm" -#include "code\modules\clothing\under\pants.dm" -#include "code\modules\clothing\under\shorts.dm" -#include "code\modules\clothing\under\syndicate.dm" -#include "code\modules\clothing\under\accessories\accessory.dm" -#include "code\modules\clothing\under\accessories\armband.dm" -#include "code\modules\clothing\under\accessories\holster.dm" -#include "code\modules\clothing\under\accessories\storage.dm" -#include "code\modules\clothing\under\jobs\civilian.dm" -#include "code\modules\clothing\under\jobs\engineering.dm" -#include "code\modules\clothing\under\jobs\medsci.dm" -#include "code\modules\clothing\under\jobs\security.dm" -#include "code\modules\countdown\countdown.dm" -#include "code\modules\crafting\craft.dm" -#include "code\modules\crafting\guncrafting.dm" -#include "code\modules\crafting\recipes.dm" -#include "code\modules\customitems\item_defines.dm" -#include "code\modules\customitems\item_spawning.dm" -#include "code\modules\detective_work\detective_work.dm" -#include "code\modules\detective_work\evidence.dm" -#include "code\modules\detective_work\footprints_and_rag.dm" -#include "code\modules\detective_work\scanner.dm" -#include "code\modules\economy\Accounts.dm" -#include "code\modules\economy\Accounts_DB.dm" -#include "code\modules\economy\ATM.dm" -#include "code\modules\economy\Economy.dm" -#include "code\modules\economy\Economy_Events.dm" -#include "code\modules\economy\Economy_Events_Mundane.dm" -#include "code\modules\economy\Economy_TradeDestinations.dm" -#include "code\modules\economy\EFTPOS.dm" -#include "code\modules\economy\Job_Departments.dm" -#include "code\modules\economy\POS.dm" -#include "code\modules\economy\utils.dm" -#include "code\modules\error_handler\error_handler.dm" -#include "code\modules\error_handler\error_viewer.dm" -#include "code\modules\events\abductor.dm" -#include "code\modules\events\alien_infestation.dm" -#include "code\modules\events\anomaly.dm" -#include "code\modules\events\anomaly_bluespace.dm" -#include "code\modules\events\anomaly_flux.dm" -#include "code\modules\events\anomaly_grav.dm" -#include "code\modules\events\anomaly_pyro.dm" -#include "code\modules\events\anomaly_vortex.dm" -#include "code\modules\events\aurora_caelus.dm" -#include "code\modules\events\blob.dm" -#include "code\modules\events\brand_intelligence.dm" -#include "code\modules\events\carp_migration.dm" -#include "code\modules\events\communications_blackout.dm" -#include "code\modules\events\disease_outbreak.dm" -#include "code\modules\events\dust.dm" -#include "code\modules\events\electrical_storm.dm" -#include "code\modules\events\event.dm" -#include "code\modules\events\event_container.dm" -#include "code\modules\events\event_procs.dm" -#include "code\modules\events\false_alarm.dm" -#include "code\modules\events\floorcluwne.dm" -#include "code\modules\events\grid_check.dm" -#include "code\modules\events\headcrabs.dm" -#include "code\modules\events\immovable_rod.dm" -#include "code\modules\events\infestation.dm" -#include "code\modules\events\ion_storm.dm" -#include "code\modules\events\koi_mirgration.dm" -#include "code\modules\events\mass_hallucination.dm" -#include "code\modules\events\meaty_gore.dm" -#include "code\modules\events\meaty_ops.dm" -#include "code\modules\events\meaty_ores.dm" -#include "code\modules\events\meteors.dm" -#include "code\modules\events\money_hacker.dm" -#include "code\modules\events\money_lotto.dm" -#include "code\modules\events\money_spam.dm" -#include "code\modules\events\prison_break.dm" -#include "code\modules\events\radiation_storm.dm" -#include "code\modules\events\rogue_drones.dm" -#include "code\modules\events\sentience.dm" -#include "code\modules\events\slaughterevent.dm" -#include "code\modules\events\spacevine.dm" -#include "code\modules\events\spider_infestation.dm" -#include "code\modules\events\spider_terror.dm" -#include "code\modules\events\spontaneous_appendicitis.dm" -#include "code\modules\events\tear.dm" -#include "code\modules\events\tear_honk.dm" -#include "code\modules\events\traders.dm" -#include "code\modules\events\undead.dm" -#include "code\modules\events\vent_clog.dm" -#include "code\modules\events\wallrot.dm" -#include "code\modules\events\wormholes.dm" -#include "code\modules\events\wizard\ghost.dm" -#include "code\modules\examine\examine.dm" -#include "code\modules\examine\descriptions\atmospherics.dm" -#include "code\modules\examine\descriptions\engineering.dm" -#include "code\modules\examine\descriptions\medical.dm" -#include "code\modules\examine\descriptions\mobs.dm" -#include "code\modules\examine\descriptions\stacks.dm" -#include "code\modules\examine\descriptions\structures.dm" -#include "code\modules\examine\descriptions\turfs.dm" -#include "code\modules\examine\descriptions\weapons.dm" -#include "code\modules\ext_scripts\irc.dm" -#include "code\modules\ext_scripts\python.dm" -#include "code\modules\fancytitle\fancytitle.dm" -#include "code\modules\fish\fish_eggs.dm" -#include "code\modules\fish\fish_items.dm" -#include "code\modules\fish\fish_types.dm" -#include "code\modules\fish\fishtank.dm" -#include "code\modules\flufftext\Dreaming.dm" -#include "code\modules\flufftext\Hallucination.dm" -#include "code\modules\flufftext\TextFilters.dm" -#include "code\modules\food_and_drinks\food.dm" -#include "code\modules\food_and_drinks\drinks\drinks.dm" -#include "code\modules\food_and_drinks\drinks\bottler\bottler.dm" -#include "code\modules\food_and_drinks\drinks\bottler\bottler_recipes.dm" -#include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" -#include "code\modules\food_and_drinks\drinks\drinks\cans.dm" -#include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" -#include "code\modules\food_and_drinks\drinks\drinks\mugs.dm" -#include "code\modules\food_and_drinks\drinks\drinks\shotglass.dm" -#include "code\modules\food_and_drinks\food\condiment.dm" -#include "code\modules\food_and_drinks\food\customizables.dm" -#include "code\modules\food_and_drinks\food\snacks.dm" -#include "code\modules\food_and_drinks\food\foods\baked_goods.dm" -#include "code\modules\food_and_drinks\food\foods\bread.dm" -#include "code\modules\food_and_drinks\food\foods\candy.dm" -#include "code\modules\food_and_drinks\food\foods\desserts.dm" -#include "code\modules\food_and_drinks\food\foods\ethnic.dm" -#include "code\modules\food_and_drinks\food\foods\ingredients.dm" -#include "code\modules\food_and_drinks\food\foods\junkfood.dm" -#include "code\modules\food_and_drinks\food\foods\meat.dm" -#include "code\modules\food_and_drinks\food\foods\misc.dm" -#include "code\modules\food_and_drinks\food\foods\pasta.dm" -#include "code\modules\food_and_drinks\food\foods\pizza.dm" -#include "code\modules\food_and_drinks\food\foods\sandwiches.dm" -#include "code\modules\food_and_drinks\food\foods\seafood.dm" -#include "code\modules\food_and_drinks\food\foods\side_dishes.dm" -#include "code\modules\food_and_drinks\food\foods\soups.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\candy_maker.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\cereal_maker.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\cooker.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\food_grill.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\grill_new.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat_2.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\juicer.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\kitchen_machine.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\oven.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\oven_new.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm" -#include "code\modules\food_and_drinks\recipes\recipes_candy.dm" -#include "code\modules\food_and_drinks\recipes\recipes_grill.dm" -#include "code\modules\food_and_drinks\recipes\recipes_microwave.dm" -#include "code\modules\food_and_drinks\recipes\recipes_oven.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_table.dm" -#include "code\modules\games\52card.dm" -#include "code\modules\games\cards.dm" -#include "code\modules\games\tarot.dm" -#include "code\modules\holiday\christmas.dm" -#include "code\modules\holiday\holiday.dm" -#include "code\modules\hydroponics\biogenerator.dm" -#include "code\modules\hydroponics\fermenting_barrel.dm" -#include "code\modules\hydroponics\gene_modder.dm" -#include "code\modules\hydroponics\grown.dm" -#include "code\modules\hydroponics\growninedible.dm" -#include "code\modules\hydroponics\hydroitemdefines.dm" -#include "code\modules\hydroponics\hydroponics.dm" -#include "code\modules\hydroponics\plant_genes.dm" -#include "code\modules\hydroponics\sample.dm" -#include "code\modules\hydroponics\seed_extractor.dm" -#include "code\modules\hydroponics\seeds.dm" -#include "code\modules\hydroponics\beekeeping\beebox.dm" -#include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" -#include "code\modules\hydroponics\beekeeping\honey_frame.dm" -#include "code\modules\hydroponics\beekeeping\honeycomb.dm" -#include "code\modules\hydroponics\grown\ambrosia.dm" -#include "code\modules\hydroponics\grown\apple.dm" -#include "code\modules\hydroponics\grown\banana.dm" -#include "code\modules\hydroponics\grown\beans.dm" -#include "code\modules\hydroponics\grown\berries.dm" -#include "code\modules\hydroponics\grown\cannabis.dm" -#include "code\modules\hydroponics\grown\cereals.dm" -#include "code\modules\hydroponics\grown\chili.dm" -#include "code\modules\hydroponics\grown\citrus.dm" -#include "code\modules\hydroponics\grown\cocoa_vanilla.dm" -#include "code\modules\hydroponics\grown\corn.dm" -#include "code\modules\hydroponics\grown\eggplant.dm" -#include "code\modules\hydroponics\grown\flowers.dm" -#include "code\modules\hydroponics\grown\grass_carpet.dm" -#include "code\modules\hydroponics\grown\herbals.dm" -#include "code\modules\hydroponics\grown\kudzu.dm" -#include "code\modules\hydroponics\grown\melon.dm" -#include "code\modules\hydroponics\grown\misc.dm" -#include "code\modules\hydroponics\grown\mushrooms.dm" -#include "code\modules\hydroponics\grown\nettle.dm" -#include "code\modules\hydroponics\grown\nymph.dm" -#include "code\modules\hydroponics\grown\onion.dm" -#include "code\modules\hydroponics\grown\peanut.dm" -#include "code\modules\hydroponics\grown\pineapple.dm" -#include "code\modules\hydroponics\grown\potato.dm" -#include "code\modules\hydroponics\grown\pumpkin.dm" -#include "code\modules\hydroponics\grown\random.dm" -#include "code\modules\hydroponics\grown\replicapod.dm" -#include "code\modules\hydroponics\grown\root.dm" -#include "code\modules\hydroponics\grown\tea_coffee.dm" -#include "code\modules\hydroponics\grown\tobacco.dm" -#include "code\modules\hydroponics\grown\tomato.dm" -#include "code\modules\hydroponics\grown\towercap.dm" -#include "code\modules\karma\karma.dm" -#include "code\modules\library\admin.dm" -#include "code\modules\library\codex_gigas.dm" -#include "code\modules\library\lib_items.dm" -#include "code\modules\library\lib_machines.dm" -#include "code\modules\library\lib_readme.dm" -#include "code\modules\library\random_books.dm" -#include "code\modules\library\computers\base.dm" -#include "code\modules\library\computers\checkout.dm" -#include "code\modules\library\computers\public.dm" -#include "code\modules\lighting\__lighting_docs.dm" -#include "code\modules\lighting\lighting_area.dm" -#include "code\modules\lighting\lighting_atom.dm" -#include "code\modules\lighting\lighting_corner.dm" -#include "code\modules\lighting\lighting_object.dm" -#include "code\modules\lighting\lighting_setup.dm" -#include "code\modules\lighting\lighting_source.dm" -#include "code\modules\lighting\lighting_turf.dm" -#include "code\modules\logic\converter.dm" -#include "code\modules\logic\dual_input.dm" -#include "code\modules\logic\logic_base.dm" -#include "code\modules\logic\mono_input.dm" -#include "code\modules\map_fluff\cyberiad.dm" -#include "code\modules\map_fluff\delta.dm" -#include "code\modules\map_fluff\maps.dm" -#include "code\modules\map_fluff\metastation.dm" -#include "code\modules\martial_arts\adminfu.dm" -#include "code\modules\martial_arts\brawling.dm" -#include "code\modules\martial_arts\cqc.dm" -#include "code\modules\martial_arts\krav_maga.dm" -#include "code\modules\martial_arts\martial.dm" -#include "code\modules\martial_arts\mimejutsu.dm" -#include "code\modules\martial_arts\plasma_fist.dm" -#include "code\modules\martial_arts\sleeping_carp.dm" -#include "code\modules\martial_arts\wrestleing.dm" -#include "code\modules\mining\abandonedcrates.dm" -#include "code\modules\mining\coins.dm" -#include "code\modules\mining\equipment_locker.dm" -#include "code\modules\mining\explorer_gear.dm" -#include "code\modules\mining\machine_processing.dm" -#include "code\modules\mining\machine_stacking.dm" -#include "code\modules\mining\machine_unloading.dm" -#include "code\modules\mining\mine_items.dm" -#include "code\modules\mining\minebot.dm" -#include "code\modules\mining\mint.dm" -#include "code\modules\mining\money_bag.dm" -#include "code\modules\mining\ore.dm" -#include "code\modules\mining\satchel_ore_boxdm.dm" -#include "code\modules\mining\shelters.dm" -#include "code\modules\mining\equipment\marker_beacons.dm" -#include "code\modules\mining\equipment\survival_pod.dm" -#include "code\modules\mining\laborcamp\laborshuttle.dm" -#include "code\modules\mining\laborcamp\laborstacker.dm" -#include "code\modules\mining\lavaland\ash_flora.dm" -#include "code\modules\mining\lavaland\necropolis_chests.dm" -#include "code\modules\mining\lavaland\loot\ashdragon_loot.dm" -#include "code\modules\mining\lavaland\loot\bubblegum_loot.dm" -#include "code\modules\mining\lavaland\loot\colossus_loot.dm" -#include "code\modules\mining\lavaland\loot\hierophant_loot.dm" -#include "code\modules\mining\lavaland\loot\legion_loot.dm" -#include "code\modules\mining\lavaland\loot\tendril_loot.dm" -#include "code\modules\mob\abilities.dm" -#include "code\modules\mob\death.dm" -#include "code\modules\mob\emote.dm" -#include "code\modules\mob\hear_say.dm" -#include "code\modules\mob\holder.dm" -#include "code\modules\mob\inventory.dm" -#include "code\modules\mob\language.dm" -#include "code\modules\mob\login.dm" -#include "code\modules\mob\logout.dm" -#include "code\modules\mob\mob.dm" -#include "code\modules\mob\mob_defines.dm" -#include "code\modules\mob\mob_grab.dm" -#include "code\modules\mob\mob_helpers.dm" -#include "code\modules\mob\mob_movement.dm" -#include "code\modules\mob\mob_transformation_simple.dm" -#include "code\modules\mob\say.dm" -#include "code\modules\mob\status_procs.dm" -#include "code\modules\mob\transform_procs.dm" -#include "code\modules\mob\typing_indicator.dm" -#include "code\modules\mob\update_icons.dm" -#include "code\modules\mob\update_status.dm" -#include "code\modules\mob\camera\camera.dm" -#include "code\modules\mob\dead\dead.dm" -#include "code\modules\mob\dead\death.dm" -#include "code\modules\mob\dead\observer\login.dm" -#include "code\modules\mob\dead\observer\logout.dm" -#include "code\modules\mob\dead\observer\observer.dm" -#include "code\modules\mob\dead\observer\say.dm" -#include "code\modules\mob\dead\observer\spells.dm" -#include "code\modules\mob\living\autohiss.dm" -#include "code\modules\mob\living\damage_procs.dm" -#include "code\modules\mob\living\death.dm" -#include "code\modules\mob\living\default_language.dm" -#include "code\modules\mob\living\life.dm" -#include "code\modules\mob\living\living.dm" -#include "code\modules\mob\living\living_defense.dm" -#include "code\modules\mob\living\living_defines.dm" -#include "code\modules\mob\living\login.dm" -#include "code\modules\mob\living\logout.dm" -#include "code\modules\mob\living\say.dm" -#include "code\modules\mob\living\stat_states.dm" -#include "code\modules\mob\living\status_procs.dm" -#include "code\modules\mob\living\update_status.dm" -#include "code\modules\mob\living\carbon\_defines.dm" -#include "code\modules\mob\living\carbon\carbon.dm" -#include "code\modules\mob\living\carbon\carbon_defense.dm" -#include "code\modules\mob\living\carbon\carbon_defines.dm" -#include "code\modules\mob\living\carbon\death.dm" -#include "code\modules\mob\living\carbon\give.dm" -#include "code\modules\mob\living\carbon\life.dm" -#include "code\modules\mob\living\carbon\superheroes.dm" -#include "code\modules\mob\living\carbon\update_icons.dm" -#include "code\modules\mob\living\carbon\update_status.dm" -#include "code\modules\mob\living\carbon\alien\alien.dm" -#include "code\modules\mob\living\carbon\alien\alien_defense.dm" -#include "code\modules\mob\living\carbon\alien\death.dm" -#include "code\modules\mob\living\carbon\alien\life.dm" -#include "code\modules\mob\living\carbon\alien\login.dm" -#include "code\modules\mob\living\carbon\alien\logout.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\emote.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\empress.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\inventory.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\life.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm" -#include "code\modules\mob\living\carbon\alien\larva\emote.dm" -#include "code\modules\mob\living\carbon\alien\larva\inventory.dm" -#include "code\modules\mob\living\carbon\alien\larva\larva.dm" -#include "code\modules\mob\living\carbon\alien\larva\larva_defense.dm" -#include "code\modules\mob\living\carbon\alien\larva\life.dm" -#include "code\modules\mob\living\carbon\alien\larva\powers.dm" -#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" -#include "code\modules\mob\living\carbon\alien\special\facehugger.dm" -#include "code\modules\mob\living\carbon\brain\brain.dm" -#include "code\modules\mob\living\carbon\brain\brain_item.dm" -#include "code\modules\mob\living\carbon\brain\death.dm" -#include "code\modules\mob\living\carbon\brain\emote.dm" -#include "code\modules\mob\living\carbon\brain\life.dm" -#include "code\modules\mob\living\carbon\brain\login.dm" -#include "code\modules\mob\living\carbon\brain\MMI.dm" -#include "code\modules\mob\living\carbon\brain\MMI_radio.dm" -#include "code\modules\mob\living\carbon\brain\robotic_brain.dm" -#include "code\modules\mob\living\carbon\brain\say.dm" -#include "code\modules\mob\living\carbon\brain\update_status.dm" -#include "code\modules\mob\living\carbon\human\appearance.dm" -#include "code\modules\mob\living\carbon\human\body_accessories.dm" -#include "code\modules\mob\living\carbon\human\death.dm" -#include "code\modules\mob\living\carbon\human\emote.dm" -#include "code\modules\mob\living\carbon\human\examine.dm" -#include "code\modules\mob\living\carbon\human\human.dm" -#include "code\modules\mob\living\carbon\human\human_damage.dm" -#include "code\modules\mob\living\carbon\human\human_defense.dm" -#include "code\modules\mob\living\carbon\human\human_defines.dm" -#include "code\modules\mob\living\carbon\human\human_movement.dm" -#include "code\modules\mob\living\carbon\human\human_organs.dm" -#include "code\modules\mob\living\carbon\human\inventory.dm" -#include "code\modules\mob\living\carbon\human\life.dm" -#include "code\modules\mob\living\carbon\human\login.dm" -#include "code\modules\mob\living\carbon\human\logout.dm" -#include "code\modules\mob\living\carbon\human\npcs.dm" -#include "code\modules\mob\living\carbon\human\say.dm" -#include "code\modules\mob\living\carbon\human\status_procs.dm" -#include "code\modules\mob\living\carbon\human\update_icons.dm" -#include "code\modules\mob\living\carbon\human\update_stat.dm" -#include "code\modules\mob\living\carbon\human\species\_species.dm" -#include "code\modules\mob\living\carbon\human\species\abductor.dm" -#include "code\modules\mob\living\carbon\human\species\diona.dm" -#include "code\modules\mob\living\carbon\human\species\drask.dm" -#include "code\modules\mob\living\carbon\human\species\golem.dm" -#include "code\modules\mob\living\carbon\human\species\grey.dm" -#include "code\modules\mob\living\carbon\human\species\human.dm" -#include "code\modules\mob\living\carbon\human\species\kidan.dm" -#include "code\modules\mob\living\carbon\human\species\machine.dm" -#include "code\modules\mob\living\carbon\human\species\monkey.dm" -#include "code\modules\mob\living\carbon\human\species\nucleation.dm" -#include "code\modules\mob\living\carbon\human\species\plasmaman.dm" -#include "code\modules\mob\living\carbon\human\species\shadow.dm" -#include "code\modules\mob\living\carbon\human\species\shadowling.dm" -#include "code\modules\mob\living\carbon\human\species\skeleton.dm" -#include "code\modules\mob\living\carbon\human\species\skrell.dm" -#include "code\modules\mob\living\carbon\human\species\slime.dm" -#include "code\modules\mob\living\carbon\human\species\tajaran.dm" -#include "code\modules\mob\living\carbon\human\species\unathi.dm" -#include "code\modules\mob\living\carbon\human\species\vox.dm" -#include "code\modules\mob\living\carbon\human\species\vulpkanin.dm" -#include "code\modules\mob\living\carbon\human\species\wryn.dm" -#include "code\modules\mob\living\carbon\slime\death.dm" -#include "code\modules\mob\living\carbon\slime\emote.dm" -#include "code\modules\mob\living\carbon\slime\examine.dm" -#include "code\modules\mob\living\carbon\slime\life.dm" -#include "code\modules\mob\living\carbon\slime\powers.dm" -#include "code\modules\mob\living\carbon\slime\say.dm" -#include "code\modules\mob\living\carbon\slime\slime.dm" -#include "code\modules\mob\living\carbon\slime\subtypes.dm" -#include "code\modules\mob\living\carbon\slime\update_icons.dm" -#include "code\modules\mob\living\silicon\death.dm" -#include "code\modules\mob\living\silicon\emote.dm" -#include "code\modules\mob\living\silicon\laws.dm" -#include "code\modules\mob\living\silicon\login.dm" -#include "code\modules\mob\living\silicon\say.dm" -#include "code\modules\mob\living\silicon\silicon.dm" -#include "code\modules\mob\living\silicon\silicon_defense.dm" -#include "code\modules\mob\living\silicon\subsystems.dm" -#include "code\modules\mob\living\silicon\ai\ai.dm" -#include "code\modules\mob\living\silicon\ai\ai_defense.dm" -#include "code\modules\mob\living\silicon\ai\death.dm" -#include "code\modules\mob\living\silicon\ai\examine.dm" -#include "code\modules\mob\living\silicon\ai\latejoin.dm" -#include "code\modules\mob\living\silicon\ai\laws.dm" -#include "code\modules\mob\living\silicon\ai\life.dm" -#include "code\modules\mob\living\silicon\ai\login.dm" -#include "code\modules\mob\living\silicon\ai\logout.dm" -#include "code\modules\mob\living\silicon\ai\multicam.dm" -#include "code\modules\mob\living\silicon\ai\say.dm" -#include "code\modules\mob\living\silicon\ai\update_status.dm" -#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" -#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" -#include "code\modules\mob\living\silicon\ai\freelook\eye.dm" -#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" -#include "code\modules\mob\living\silicon\decoy\death.dm" -#include "code\modules\mob\living\silicon\decoy\decoy.dm" -#include "code\modules\mob\living\silicon\decoy\life.dm" -#include "code\modules\mob\living\silicon\pai\death.dm" -#include "code\modules\mob\living\silicon\pai\life.dm" -#include "code\modules\mob\living\silicon\pai\pai.dm" -#include "code\modules\mob\living\silicon\pai\personality.dm" -#include "code\modules\mob\living\silicon\pai\recruit.dm" -#include "code\modules\mob\living\silicon\pai\say.dm" -#include "code\modules\mob\living\silicon\pai\software.dm" -#include "code\modules\mob\living\silicon\pai\software_modules.dm" -#include "code\modules\mob\living\silicon\pai\update_status.dm" -#include "code\modules\mob\living\silicon\robot\component.dm" -#include "code\modules\mob\living\silicon\robot\death.dm" -#include "code\modules\mob\living\silicon\robot\emote.dm" -#include "code\modules\mob\living\silicon\robot\examine.dm" -#include "code\modules\mob\living\silicon\robot\inventory.dm" -#include "code\modules\mob\living\silicon\robot\laws.dm" -#include "code\modules\mob\living\silicon\robot\life.dm" -#include "code\modules\mob\living\silicon\robot\login.dm" -#include "code\modules\mob\living\silicon\robot\photos.dm" -#include "code\modules\mob\living\silicon\robot\robot.dm" -#include "code\modules\mob\living\silicon\robot\robot_damage.dm" -#include "code\modules\mob\living\silicon\robot\robot_defense.dm" -#include "code\modules\mob\living\silicon\robot\robot_items.dm" -#include "code\modules\mob\living\silicon\robot\robot_module_actions.dm" -#include "code\modules\mob\living\silicon\robot\robot_modules.dm" -#include "code\modules\mob\living\silicon\robot\robot_movement.dm" -#include "code\modules\mob\living\silicon\robot\syndicate.dm" -#include "code\modules\mob\living\silicon\robot\update_status.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm" -#include "code\modules\mob\living\silicon\robot\drone\update_status.dm" -#include "code\modules\mob\living\simple_animal\animal_defense.dm" -#include "code\modules\mob\living\simple_animal\constructs.dm" -#include "code\modules\mob\living\simple_animal\corpse.dm" -#include "code\modules\mob\living\simple_animal\parrot.dm" -#include "code\modules\mob\living\simple_animal\posessed_object.dm" -#include "code\modules\mob\living\simple_animal\powers.dm" -#include "code\modules\mob\living\simple_animal\shade.dm" -#include "code\modules\mob\living\simple_animal\simple_animal.dm" -#include "code\modules\mob\living\simple_animal\spawner.dm" -#include "code\modules\mob\living\simple_animal\tribbles.dm" -#include "code\modules\mob\living\simple_animal\bot\bot.dm" -#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm" -#include "code\modules\mob\living\simple_animal\bot\construction.dm" -#include "code\modules\mob\living\simple_animal\bot\ed209bot.dm" -#include "code\modules\mob\living\simple_animal\bot\emote.dm" -#include "code\modules\mob\living\simple_animal\bot\floorbot.dm" -#include "code\modules\mob\living\simple_animal\bot\griefsky.dm" -#include "code\modules\mob\living\simple_animal\bot\honkbot.dm" -#include "code\modules\mob\living\simple_animal\bot\medbot.dm" -#include "code\modules\mob\living\simple_animal\bot\mulebot.dm" -#include "code\modules\mob\living\simple_animal\bot\secbot.dm" -#include "code\modules\mob\living\simple_animal\bot\syndicate.dm" -#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" -#include "code\modules\mob\living\simple_animal\friendly\cat.dm" -#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" -#include "code\modules\mob\living\simple_animal\friendly\corgi.dm" -#include "code\modules\mob\living\simple_animal\friendly\corgi_powers.dm" -#include "code\modules\mob\living\simple_animal\friendly\crab.dm" -#include "code\modules\mob\living\simple_animal\friendly\deer.dm" -#include "code\modules\mob\living\simple_animal\friendly\diona.dm" -#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" -#include "code\modules\mob\living\simple_animal\friendly\fox.dm" -#include "code\modules\mob\living\simple_animal\friendly\lizard.dm" -#include "code\modules\mob\living\simple_animal\friendly\mouse.dm" -#include "code\modules\mob\living\simple_animal\friendly\penguin.dm" -#include "code\modules\mob\living\simple_animal\friendly\pet.dm" -#include "code\modules\mob\living\simple_animal\friendly\pug.dm" -#include "code\modules\mob\living\simple_animal\friendly\slime.dm" -#include "code\modules\mob\living\simple_animal\friendly\sloth.dm" -#include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm" -#include "code\modules\mob\living\simple_animal\hostile\alien.dm" -#include "code\modules\mob\living\simple_animal\hostile\bat.dm" -#include "code\modules\mob\living\simple_animal\hostile\bear.dm" -#include "code\modules\mob\living\simple_animal\hostile\bees.dm" -#include "code\modules\mob\living\simple_animal\hostile\carp.dm" -#include "code\modules\mob\living\simple_animal\hostile\creature.dm" -#include "code\modules\mob\living\simple_animal\hostile\deathsquid.dm" -#include "code\modules\mob\living\simple_animal\hostile\faithless.dm" -#include "code\modules\mob\living\simple_animal\hostile\feral_cat.dm" -#include "code\modules\mob\living\simple_animal\hostile\floorcluwne.dm" -#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" -#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" -#include "code\modules\mob\living\simple_animal\hostile\headslug.dm" -#include "code\modules\mob\living\simple_animal\hostile\hellhound.dm" -#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" -#include "code\modules\mob\living\simple_animal\hostile\hostile.dm" -#include "code\modules\mob\living\simple_animal\hostile\illusion.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle_animals.dm" -#include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" -#include "code\modules\mob\living\simple_animal\hostile\mimic.dm" -#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" -#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" -#include "code\modules\mob\living\simple_animal\hostile\russian.dm" -#include "code\modules\mob\living\simple_animal\hostile\spaceworms.dm" -#include "code\modules\mob\living\simple_animal\hostile\statue.dm" -#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" -#include "code\modules\mob\living\simple_animal\hostile\tree.dm" -#include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" -#include "code\modules\mob\living\simple_animal\hostile\winter_mobs.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining\basilisk.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining\goldgrub.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining\goliath.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining\gutlunch.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining\hivelord.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining\mining.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining\necropolis_tendril.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\fish.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\kangaroo.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\pet.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" -#include "code\modules\mob\living\simple_animal\hostile\retaliate\undead.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\__defines.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\actions.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\black.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\brown.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\chem.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\empress.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\ghost.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\gray.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\green.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\hive.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\mother.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\prince.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\princess.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\purple.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\queen.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\red.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\reproduction.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_ai.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_spiders.dm" -#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\white.dm" -#include "code\modules\mob\new_player\login.dm" -#include "code\modules\mob\new_player\logout.dm" -#include "code\modules\mob\new_player\new_player.dm" -#include "code\modules\mob\new_player\poll.dm" -#include "code\modules\mob\new_player\preferences_setup.dm" -#include "code\modules\mob\new_player\sprite_accessories\sprite_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\diona\diona_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\drask\drask_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\grey\grey_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\human\human_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\human\human_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\human\human_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_face.dm" -#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_optics.dm" -#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_head_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\nucleation\nucleation_face.dm" -#include "code\modules\mob\new_player\sprite_accessories\skrell\skrell_face.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_head_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_alt_heads.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_head_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vox\vox_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vox\vox_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\vox\vox_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\vox\vox_tail_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_body_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_facial_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_hair.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_accessories.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_tail_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\wryn\wryn_face.dm" -#include "code\modules\modular_computers\laptop_vendor.dm" -#include "code\modules\modular_computers\computers\item\computer.dm" -#include "code\modules\modular_computers\computers\item\computer_components.dm" -#include "code\modules\modular_computers\computers\item\computer_damage.dm" -#include "code\modules\modular_computers\computers\item\computer_power.dm" -#include "code\modules\modular_computers\computers\item\computer_ui.dm" -#include "code\modules\modular_computers\computers\item\laptop.dm" -#include "code\modules\modular_computers\computers\item\laptop_presets.dm" -#include "code\modules\modular_computers\computers\item\processor.dm" -#include "code\modules\modular_computers\computers\item\tablet.dm" -#include "code\modules\modular_computers\computers\item\tablet_presets.dm" -#include "code\modules\modular_computers\computers\machinery\console_presets.dm" -#include "code\modules\modular_computers\computers\machinery\modular_computer.dm" -#include "code\modules\modular_computers\computers\machinery\modular_console.dm" -#include "code\modules\modular_computers\file_system\computer_file.dm" -#include "code\modules\modular_computers\file_system\data.dm" -#include "code\modules\modular_computers\file_system\program.dm" -#include "code\modules\modular_computers\file_system\program_events.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" -#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" -#include "code\modules\modular_computers\file_system\programs\command\card.dm" -#include "code\modules\modular_computers\file_system\programs\command\comms.dm" -#include "code\modules\modular_computers\file_system\programs\engineering\alarm.dm" -#include "code\modules\modular_computers\file_system\programs\engineering\power_monitor.dm" -#include "code\modules\modular_computers\file_system\programs\engineering\sm_monitor.dm" -#include "code\modules\modular_computers\file_system\programs\generic\configurator.dm" -#include "code\modules\modular_computers\file_system\programs\generic\file_browser.dm" -#include "code\modules\modular_computers\file_system\programs\generic\ntdownloader.dm" -#include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm" -#include "code\modules\modular_computers\file_system\programs\generic\nttransfer.dm" -#include "code\modules\modular_computers\file_system\programs\research\airestorer.dm" -#include "code\modules\modular_computers\file_system\programs\research\ntmonitor.dm" -#include "code\modules\modular_computers\hardware\_hardware.dm" -#include "code\modules\modular_computers\hardware\ai_slot.dm" -#include "code\modules\modular_computers\hardware\battery_module.dm" -#include "code\modules\modular_computers\hardware\card_slot.dm" -#include "code\modules\modular_computers\hardware\CPU.dm" -#include "code\modules\modular_computers\hardware\hard_drive.dm" -#include "code\modules\modular_computers\hardware\network_card.dm" -#include "code\modules\modular_computers\hardware\portable_disk.dm" -#include "code\modules\modular_computers\hardware\printer.dm" -#include "code\modules\modular_computers\hardware\recharger.dm" -#include "code\modules\modular_computers\NTNet\NTNet.dm" -#include "code\modules\modular_computers\NTNet\NTNet_relay.dm" -#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" -#include "code\modules\nano\nanoexternal.dm" -#include "code\modules\nano\nanomapgen.dm" -#include "code\modules\nano\nanoui.dm" -#include "code\modules\nano\subsystem.dm" -#include "code\modules\nano\interaction\admin.dm" -#include "code\modules\nano\interaction\base.dm" -#include "code\modules\nano\interaction\conscious.dm" -#include "code\modules\nano\interaction\contained.dm" -#include "code\modules\nano\interaction\default.dm" -#include "code\modules\nano\interaction\ghost.dm" -#include "code\modules\nano\interaction\inventory.dm" -#include "code\modules\nano\interaction\inventory_deep.dm" -#include "code\modules\nano\interaction\not_incapacitated.dm" -#include "code\modules\nano\interaction\physical.dm" -#include "code\modules\nano\interaction\self.dm" -#include "code\modules\nano\interaction\zlevel.dm" -#include "code\modules\nano\modules\alarm_monitor.dm" -#include "code\modules\nano\modules\atmos_control.dm" -#include "code\modules\nano\modules\crew_monitor.dm" -#include "code\modules\nano\modules\ert_manager.dm" -#include "code\modules\nano\modules\human_appearance.dm" -#include "code\modules\nano\modules\law_manager.dm" -#include "code\modules\nano\modules\nano_module.dm" -#include "code\modules\nano\modules\power_monitor.dm" -#include "code\modules\ninja\energy_katana.dm" -#include "code\modules\ninja\suit\gloves.dm" -#include "code\modules\ninja\suit\head.dm" -#include "code\modules\ninja\suit\mask.dm" -#include "code\modules\ninja\suit\shoes.dm" -#include "code\modules\ninja\suit\suit.dm" -#include "code\modules\ninja\suit\suit_initialisation.dm" -#include "code\modules\paperwork\carbonpaper.dm" -#include "code\modules\paperwork\clipboard.dm" -#include "code\modules\paperwork\contract.dm" -#include "code\modules\paperwork\fax.dm" -#include "code\modules\paperwork\faxmachine.dm" -#include "code\modules\paperwork\filingcabinet.dm" -#include "code\modules\paperwork\folders.dm" -#include "code\modules\paperwork\frames.dm" -#include "code\modules\paperwork\handlabeler.dm" -#include "code\modules\paperwork\paper.dm" -#include "code\modules\paperwork\paper_bundle.dm" -#include "code\modules\paperwork\paperbin.dm" -#include "code\modules\paperwork\paperplane.dm" -#include "code\modules\paperwork\pen.dm" -#include "code\modules\paperwork\photocopier.dm" -#include "code\modules\paperwork\photography.dm" -#include "code\modules\paperwork\silicon_photography.dm" -#include "code\modules\paperwork\stamps.dm" -#include "code\modules\pda\ai.dm" -#include "code\modules\pda\app.dm" -#include "code\modules\pda\cart.dm" -#include "code\modules\pda\cart_apps.dm" -#include "code\modules\pda\core_apps.dm" -#include "code\modules\pda\messenger.dm" -#include "code\modules\pda\messenger_plugins.dm" -#include "code\modules\pda\mob_hunt_game_app.dm" -#include "code\modules\pda\PDA.dm" -#include "code\modules\pda\pdas.dm" -#include "code\modules\pda\radio.dm" -#include "code\modules\pda\utilities.dm" -#include "code\modules\persistence\persistence.dm" -#include "code\modules\power\apc.dm" -#include "code\modules\power\cable.dm" -#include "code\modules\power\cable_heavyduty.dm" -#include "code\modules\power\cable_logic.dm" -#include "code\modules\power\cell.dm" -#include "code\modules\power\generator.dm" -#include "code\modules\power\gravitygenerator.dm" -#include "code\modules\power\lighting.dm" -#include "code\modules\power\port_gen.dm" -#include "code\modules\power\power.dm" -#include "code\modules\power\powernet.dm" -#include "code\modules\power\smes.dm" -#include "code\modules\power\solar.dm" -#include "code\modules\power\terminal.dm" -#include "code\modules\power\tracker.dm" -#include "code\modules\power\treadmill.dm" -#include "code\modules\power\turbine.dm" -#include "code\modules\power\singularity\collector.dm" -#include "code\modules\power\singularity\containment_field.dm" -#include "code\modules\power\singularity\emitter.dm" -#include "code\modules\power\singularity\field_generator.dm" -#include "code\modules\power\singularity\generator.dm" -#include "code\modules\power\singularity\investigate.dm" -#include "code\modules\power\singularity\narsie.dm" -#include "code\modules\power\singularity\singularity.dm" -#include "code\modules\power\singularity\particle_accelerator\particle.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_chamber.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" -#include "code\modules\power\singularity\particle_accelerator\particle_power.dm" -#include "code\modules\power\supermatter\supermatter.dm" -#include "code\modules\power\tesla\coil.dm" -#include "code\modules\power\tesla\energy_ball.dm" -#include "code\modules\power\tesla\generator.dm" -#include "code\modules\procedural_mapping\mapGenerator.dm" -#include "code\modules\procedural_mapping\mapGeneratorModule.dm" -#include "code\modules\procedural_mapping\mapGeneratorReadme.dm" -#include "code\modules\procedural_mapping\mapGeneratorModules\helpers.dm" -#include "code\modules\procedural_mapping\mapGeneratorModules\nature.dm" -#include "code\modules\procedural_mapping\mapGenerators\asteroid.dm" -#include "code\modules\procedural_mapping\mapGenerators\nature.dm" -#include "code\modules\procedural_mapping\mapGenerators\syndicate.dm" -#include "code\modules\projectiles\ammunition.dm" -#include "code\modules\projectiles\firing.dm" -#include "code\modules\projectiles\gun.dm" -#include "code\modules\projectiles\gun_attachments.dm" -#include "code\modules\projectiles\projectile.dm" -#include "code\modules\projectiles\ammunition\ammo_casings.dm" -#include "code\modules\projectiles\ammunition\boxes.dm" -#include "code\modules\projectiles\ammunition\energy.dm" -#include "code\modules\projectiles\ammunition\magazines.dm" -#include "code\modules\projectiles\ammunition\special.dm" -#include "code\modules\projectiles\guns\alien.dm" -#include "code\modules\projectiles\guns\dartgun.dm" -#include "code\modules\projectiles\guns\energy.dm" -#include "code\modules\projectiles\guns\grenade_launcher.dm" -#include "code\modules\projectiles\guns\magic.dm" -#include "code\modules\projectiles\guns\medbeam.dm" -#include "code\modules\projectiles\guns\mounted.dm" -#include "code\modules\projectiles\guns\projectile.dm" -#include "code\modules\projectiles\guns\rocket.dm" -#include "code\modules\projectiles\guns\syringe_gun.dm" -#include "code\modules\projectiles\guns\throw.dm" -#include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" -#include "code\modules\projectiles\guns\energy\laser.dm" -#include "code\modules\projectiles\guns\energy\nuclear.dm" -#include "code\modules\projectiles\guns\energy\pulse.dm" -#include "code\modules\projectiles\guns\energy\special.dm" -#include "code\modules\projectiles\guns\energy\stun.dm" -#include "code\modules\projectiles\guns\energy\telegun.dm" -#include "code\modules\projectiles\guns\magic\staff.dm" -#include "code\modules\projectiles\guns\magic\wand.dm" -#include "code\modules\projectiles\guns\misc\blastcannon.dm" -#include "code\modules\projectiles\guns\projectile\automatic.dm" -#include "code\modules\projectiles\guns\projectile\bow.dm" -#include "code\modules\projectiles\guns\projectile\launchers.dm" -#include "code\modules\projectiles\guns\projectile\pistol.dm" -#include "code\modules\projectiles\guns\projectile\revolver.dm" -#include "code\modules\projectiles\guns\projectile\saw.dm" -#include "code\modules\projectiles\guns\projectile\shotgun.dm" -#include "code\modules\projectiles\guns\projectile\sniper.dm" -#include "code\modules\projectiles\guns\projectile\toy.dm" -#include "code\modules\projectiles\guns\throw\crossbow.dm" -#include "code\modules\projectiles\guns\throw\pielauncher.dm" -#include "code\modules\projectiles\projectile\beams.dm" -#include "code\modules\projectiles\projectile\bullets.dm" -#include "code\modules\projectiles\projectile\energy.dm" -#include "code\modules\projectiles\projectile\force.dm" -#include "code\modules\projectiles\projectile\magic.dm" -#include "code\modules\projectiles\projectile\reusable.dm" -#include "code\modules\projectiles\projectile\special.dm" -#include "code\modules\reagents\chem_splash.dm" -#include "code\modules\reagents\reagent_containers.dm" -#include "code\modules\reagents\reagent_dispenser.dm" -#include "code\modules\reagents\chemistry\colors.dm" -#include "code\modules\reagents\chemistry\holder.dm" -#include "code\modules\reagents\chemistry\readme.dm" -#include "code\modules\reagents\chemistry\reagents.dm" -#include "code\modules\reagents\chemistry\recipes.dm" -#include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm" -#include "code\modules\reagents\chemistry\machinery\chem_heater.dm" -#include "code\modules\reagents\chemistry\machinery\chem_master.dm" -#include "code\modules\reagents\chemistry\machinery\pandemic.dm" -#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" -#include "code\modules\reagents\chemistry\reagents\admin.dm" -#include "code\modules\reagents\chemistry\reagents\alcohol.dm" -#include "code\modules\reagents\chemistry\reagents\blob.dm" -#include "code\modules\reagents\chemistry\reagents\disease.dm" -#include "code\modules\reagents\chemistry\reagents\drink_base.dm" -#include "code\modules\reagents\chemistry\reagents\drink_cold.dm" -#include "code\modules\reagents\chemistry\reagents\drinks.dm" -#include "code\modules\reagents\chemistry\reagents\drugs.dm" -#include "code\modules\reagents\chemistry\reagents\food.dm" -#include "code\modules\reagents\chemistry\reagents\medicine.dm" -#include "code\modules\reagents\chemistry\reagents\misc.dm" -#include "code\modules\reagents\chemistry\reagents\paint.dm" -#include "code\modules\reagents\chemistry\reagents\paradise_pop.dm" -#include "code\modules\reagents\chemistry\reagents\pyrotechnic.dm" -#include "code\modules\reagents\chemistry\reagents\toxins.dm" -#include "code\modules\reagents\chemistry\reagents\water.dm" -#include "code\modules\reagents\chemistry\recipes\drinks.dm" -#include "code\modules\reagents\chemistry\recipes\drugs.dm" -#include "code\modules\reagents\chemistry\recipes\food.dm" -#include "code\modules\reagents\chemistry\recipes\medicine.dm" -#include "code\modules\reagents\chemistry\recipes\others.dm" -#include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" -#include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" -#include "code\modules\reagents\chemistry\recipes\toxins.dm" -#include "code\modules\reagents\reagent_containers\borghydro.dm" -#include "code\modules\reagents\reagent_containers\bottle.dm" -#include "code\modules\reagents\reagent_containers\dropper.dm" -#include "code\modules\reagents\reagent_containers\glass_containers.dm" -#include "code\modules\reagents\reagent_containers\hypospray.dm" -#include "code\modules\reagents\reagent_containers\iv_bag.dm" -#include "code\modules\reagents\reagent_containers\patch.dm" -#include "code\modules\reagents\reagent_containers\pill.dm" -#include "code\modules\reagents\reagent_containers\spray.dm" -#include "code\modules\reagents\reagent_containers\syringes.dm" -#include "code\modules\recycling\belt-placer.dm" -#include "code\modules\recycling\conveyor2.dm" -#include "code\modules\recycling\disposal-construction.dm" -#include "code\modules\recycling\disposal.dm" -#include "code\modules\recycling\sortingmachinery.dm" -#include "code\modules\research\circuitprinter.dm" -#include "code\modules\research\designs.dm" -#include "code\modules\research\destructive_analyzer.dm" -#include "code\modules\research\experimentor.dm" -#include "code\modules\research\message_server.dm" -#include "code\modules\research\protolathe.dm" -#include "code\modules\research\rd-readme.dm" -#include "code\modules\research\rdconsole.dm" -#include "code\modules\research\rdmachines.dm" -#include "code\modules\research\research.dm" -#include "code\modules\research\server.dm" -#include "code\modules\research\designs\AI_module_designs.dm" -#include "code\modules\research\designs\autolathe_designs.dm" -#include "code\modules\research\designs\biogenerator_designs.dm" -#include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\comp_board_designs.dm" -#include "code\modules\research\designs\computer_part_designs.dm" -#include "code\modules\research\designs\equipment_designs.dm" -#include "code\modules\research\designs\janitorial_designs.dm" -#include "code\modules\research\designs\machine_designs.dm" -#include "code\modules\research\designs\mecha_designs.dm" -#include "code\modules\research\designs\mechfabricator_designs.dm" -#include "code\modules\research\designs\medical_designs.dm" -#include "code\modules\research\designs\mining_designs.dm" -#include "code\modules\research\designs\misc_designs.dm" -#include "code\modules\research\designs\power_designs.dm" -#include "code\modules\research\designs\smelting_designs.dm" -#include "code\modules\research\designs\spacepod_designs.dm" -#include "code\modules\research\designs\stock_parts_designs.dm" -#include "code\modules\research\designs\telecomms_designs.dm" -#include "code\modules\research\designs\weapon_designs.dm" -#include "code\modules\research\xenobiology\xenobio_camera.dm" -#include "code\modules\research\xenobiology\xenobiology.dm" -#include "code\modules\response_team\ert.dm" -#include "code\modules\response_team\ert_outfits.dm" -#include "code\modules\ruins\ruin_areas.dm" -#include "code\modules\ruins\lavalandruin_code\animal_hospital.dm" -#include "code\modules\ruins\lavalandruin_code\ash_walker_den.dm" -#include "code\modules\ruins\lavalandruin_code\hermit.dm" -#include "code\modules\ruins\lavalandruin_code\seed_vault.dm" -#include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" -#include "code\modules\ruins\objects_and_mobs\gym.dm" -#include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" -#include "code\modules\security_levels\keycard authentication.dm" -#include "code\modules\security_levels\security levels.dm" -#include "code\modules\shuttle\assault_pod.dm" -#include "code\modules\shuttle\emergency.dm" -#include "code\modules\shuttle\ert.dm" -#include "code\modules\shuttle\navigation_computer.dm" -#include "code\modules\shuttle\on_move.dm" -#include "code\modules\shuttle\ripple.dm" -#include "code\modules\shuttle\shuttle.dm" -#include "code\modules\shuttle\shuttle_manipulator.dm" -#include "code\modules\shuttle\shuttle_rotate.dm" -#include "code\modules\shuttle\supply.dm" -#include "code\modules\shuttle\syndicate.dm" -#include "code\modules\shuttle\vox.dm" -#include "code\modules\space_management\heap_space_level.dm" -#include "code\modules\space_management\level_check.dm" -#include "code\modules\space_management\level_traits.dm" -#include "code\modules\space_management\space_chunk.dm" -#include "code\modules\space_management\space_level.dm" -#include "code\modules\space_management\space_transition.dm" -#include "code\modules\space_management\zlevel_manager.dm" -#include "code\modules\spacepods\construction.dm" -#include "code\modules\spacepods\equipment.dm" -#include "code\modules\spacepods\lock_buster.dm" -#include "code\modules\spacepods\parts.dm" -#include "code\modules\spacepods\spacepod.dm" -#include "code\modules\station_goals\bsa.dm" -#include "code\modules\station_goals\dna_vault.dm" -#include "code\modules\station_goals\shield.dm" -#include "code\modules\station_goals\station_goal.dm" -#include "code\modules\store\items.dm" -#include "code\modules\store\store.dm" -#include "code\modules\surgery\bones.dm" -#include "code\modules\surgery\cavity_implant.dm" -#include "code\modules\surgery\dental_implant.dm" -#include "code\modules\surgery\encased.dm" -#include "code\modules\surgery\generic.dm" -#include "code\modules\surgery\helpers.dm" -#include "code\modules\surgery\implant_removal.dm" -#include "code\modules\surgery\limb_augmentation.dm" -#include "code\modules\surgery\limb_reattach.dm" -#include "code\modules\surgery\organs_internal.dm" -#include "code\modules\surgery\other.dm" -#include "code\modules\surgery\plastic_surgery.dm" -#include "code\modules\surgery\remove_embedded_object.dm" -#include "code\modules\surgery\rig_removal.dm" -#include "code\modules\surgery\robotics.dm" -#include "code\modules\surgery\slime.dm" -#include "code\modules\surgery\surgery.dm" -#include "code\modules\surgery\tools.dm" -#include "code\modules\surgery\organs\augments_arms.dm" -#include "code\modules\surgery\organs\augments_eyes.dm" -#include "code\modules\surgery\organs\augments_internal.dm" -#include "code\modules\surgery\organs\autoimplanter.dm" -#include "code\modules\surgery\organs\blood.dm" -#include "code\modules\surgery\organs\body_egg.dm" -#include "code\modules\surgery\organs\ears.dm" -#include "code\modules\surgery\organs\eyes.dm" -#include "code\modules\surgery\organs\heart.dm" -#include "code\modules\surgery\organs\helpers.dm" -#include "code\modules\surgery\organs\kidneys.dm" -#include "code\modules\surgery\organs\liver.dm" -#include "code\modules\surgery\organs\lungs.dm" -#include "code\modules\surgery\organs\mmi_holder.dm" -#include "code\modules\surgery\organs\organ.dm" -#include "code\modules\surgery\organs\organ_external.dm" -#include "code\modules\surgery\organs\organ_icon.dm" -#include "code\modules\surgery\organs\organ_internal.dm" -#include "code\modules\surgery\organs\pain.dm" -#include "code\modules\surgery\organs\parasites.dm" -#include "code\modules\surgery\organs\robolimbs.dm" -#include "code\modules\surgery\organs\skeleton.dm" -#include "code\modules\surgery\organs\vocal_cords.dm" -#include "code\modules\surgery\organs\subtypes\abductor.dm" -#include "code\modules\surgery\organs\subtypes\diona.dm" -#include "code\modules\surgery\organs\subtypes\drask.dm" -#include "code\modules\surgery\organs\subtypes\grey.dm" -#include "code\modules\surgery\organs\subtypes\kidan.dm" -#include "code\modules\surgery\organs\subtypes\machine.dm" -#include "code\modules\surgery\organs\subtypes\nucleation.dm" -#include "code\modules\surgery\organs\subtypes\plasmaman.dm" -#include "code\modules\surgery\organs\subtypes\shadow.dm" -#include "code\modules\surgery\organs\subtypes\skrell.dm" -#include "code\modules\surgery\organs\subtypes\standard.dm" -#include "code\modules\surgery\organs\subtypes\tajaran.dm" -#include "code\modules\surgery\organs\subtypes\unathi.dm" -#include "code\modules\surgery\organs\subtypes\unbreakable.dm" -#include "code\modules\surgery\organs\subtypes\vox.dm" -#include "code\modules\surgery\organs\subtypes\vulpkanin.dm" -#include "code\modules\surgery\organs\subtypes\wryn.dm" -#include "code\modules\surgery\organs\subtypes\xenos.dm" -#include "code\modules\telesci\bscrystal.dm" -#include "code\modules\telesci\gps.dm" -#include "code\modules\telesci\telepad.dm" -#include "code\modules\telesci\telesci_computer.dm" -#include "code\modules\tooltip\tooltip.dm" -#include "code\modules\tram\tram.dm" -#include "code\modules\tram\tram_control_pad.dm" -#include "code\modules\tram\tram_floor.dm" -#include "code\modules\tram\tram_rail.dm" -#include "code\modules\tram\tram_wall.dm" -#include "code\modules\vehicle\ambulance.dm" -#include "code\modules\vehicle\atv.dm" -#include "code\modules\vehicle\janicart.dm" -#include "code\modules\vehicle\motorcycle.dm" -#include "code\modules\vehicle\secway.dm" -#include "code\modules\vehicle\snowmobile.dm" -#include "code\modules\vehicle\speedbike.dm" -#include "code\modules\vehicle\sportscar.dm" -#include "code\modules\vehicle\vehicle.dm" -#include "code\modules\vr\vr_avatar.dm" -#include "code\modules\vr\vr_controller.dm" -#include "code\modules\vr\vr_goggles.dm" -#include "code\modules\vr\vr_outfits.dm" -#include "goon\code\datums\browserOutput.dm" -#include "interface\interface.dm" -#include "interface\skin.dmf" -// END_INCLUDE +// DM Environment file for paradise.dme. +// All manual changes should be made outside the BEGIN_ and END_ blocks. + // New source code should be placed in .dm files: choose File/New --> Code File. +// BEGIN_INTERNALS +// END_INTERNALS +// BEGIN_FILE_DIR +#define FILE_DIR . +// END_FILE_DIR +// BEGIN_PREFERENCES +#define DEBUG +// END_PREFERENCES +// BEGIN_INCLUDE +#include "_maps\__MAP_DEFINES.dm" +#include "_maps\cyberiad.dm" +#include "code\_compile_options.dm" +#include "code\hub.dm" +#include "code\world.dm" +#include "code\__DEFINES\_globals.dm" +#include "code\__DEFINES\_readme.dm" +#include "code\__DEFINES\_tick.dm" +#include "code\__DEFINES\admin.dm" +#include "code\__DEFINES\antagonists.dm" +#include "code\__DEFINES\atmospherics.dm" +#include "code\__DEFINES\bots.dm" +#include "code\__DEFINES\callbacks.dm" +#include "code\__DEFINES\clothing.dm" +#include "code\__DEFINES\combat.dm" +#include "code\__DEFINES\components.dm" +#include "code\__DEFINES\construction.dm" +#include "code\__DEFINES\contracts.dm" +#include "code\__DEFINES\crafting.dm" +#include "code\__DEFINES\error_handler.dm" +#include "code\__DEFINES\flags.dm" +#include "code\__DEFINES\game.dm" +#include "code\__DEFINES\gamemode.dm" +#include "code\__DEFINES\genetics.dm" +#include "code\__DEFINES\hud.dm" +#include "code\__DEFINES\hydroponics.dm" +#include "code\__DEFINES\inventory.dm" +#include "code\__DEFINES\is_helpers.dm" +#include "code\__DEFINES\language.dm" +#include "code\__DEFINES\layers.dm" +#include "code\__DEFINES\lighting.dm" +#include "code\__DEFINES\machines.dm" +#include "code\__DEFINES\math.dm" +#include "code\__DEFINES\MC.dm" +#include "code\__DEFINES\medal.dm" +#include "code\__DEFINES\misc.dm" +#include "code\__DEFINES\mobs.dm" +#include "code\__DEFINES\move_force.dm" +#include "code\__DEFINES\pda.dm" +#include "code\__DEFINES\pipes.dm" +#include "code\__DEFINES\preferences.dm" +#include "code\__DEFINES\qdel.dm" +#include "code\__DEFINES\radio.dm" +#include "code\__DEFINES\reagents.dm" +#include "code\__DEFINES\role_preferences.dm" +#include "code\__DEFINES\rolebans.dm" +#include "code\__DEFINES\shuttle.dm" +#include "code\__DEFINES\sight.dm" +#include "code\__DEFINES\sound.dm" +#include "code\__DEFINES\stat.dm" +#include "code\__DEFINES\station_goals.dm" +#include "code\__DEFINES\status_effects.dm" +#include "code\__DEFINES\subsystems.dm" +#include "code\__DEFINES\typeids.dm" +#include "code\__DEFINES\vv.dm" +#include "code\__DEFINES\zlevel.dm" +#include "code\__HELPERS\_logging.dm" +#include "code\__HELPERS\_string_lists.dm" +#include "code\__HELPERS\AnimationLibrary.dm" +#include "code\__HELPERS\cmp.dm" +#include "code\__HELPERS\constants.dm" +#include "code\__HELPERS\experimental.dm" +#include "code\__HELPERS\files.dm" +#include "code\__HELPERS\game.dm" +#include "code\__HELPERS\global_lists.dm" +#include "code\__HELPERS\icon_smoothing.dm" +#include "code\__HELPERS\icons.dm" +#include "code\__HELPERS\lists.dm" +#include "code\__HELPERS\maths.dm" +#include "code\__HELPERS\matrices.dm" +#include "code\__HELPERS\mobs.dm" +#include "code\__HELPERS\names.dm" +#include "code\__HELPERS\pronouns.dm" +#include "code\__HELPERS\qdel.dm" +#include "code\__HELPERS\sanitize_values.dm" +#include "code\__HELPERS\text.dm" +#include "code\__HELPERS\time.dm" +#include "code\__HELPERS\type2type.dm" +#include "code\__HELPERS\unique_ids.dm" +#include "code\__HELPERS\unsorted.dm" +#include "code\__HELPERS\sorts\__main.dm" +#include "code\__HELPERS\sorts\InsertSort.dm" +#include "code\__HELPERS\sorts\MergeSort.dm" +#include "code\__HELPERS\sorts\TimSort.dm" +#include "code\_DATASTRUCTURES\heap.dm" +#include "code\_DATASTRUCTURES\stacks.dm" +#include "code\_globalvars\configuration.dm" +#include "code\_globalvars\database.dm" +#include "code\_globalvars\game_modes.dm" +#include "code\_globalvars\genetics.dm" +#include "code\_globalvars\logging.dm" +#include "code\_globalvars\mapping.dm" +#include "code\_globalvars\misc.dm" +#include "code\_globalvars\unused.dm" +#include "code\_globalvars\lists\flavor_misc.dm" +#include "code\_globalvars\lists\fortunes.dm" +#include "code\_globalvars\lists\misc.dm" +#include "code\_globalvars\lists\mobs.dm" +#include "code\_globalvars\lists\names.dm" +#include "code\_globalvars\lists\objects.dm" +#include "code\_globalvars\lists\reagents.dm" +#include "code\_globalvars\lists\typecache.dm" +#include "code\_onclick\adjacent.dm" +#include "code\_onclick\ai.dm" +#include "code\_onclick\click.dm" +#include "code\_onclick\click_override.dm" +#include "code\_onclick\cyborg.dm" +#include "code\_onclick\drag_drop.dm" +#include "code\_onclick\item_attack.dm" +#include "code\_onclick\observer.dm" +#include "code\_onclick\other_mobs.dm" +#include "code\_onclick\overmind.dm" +#include "code\_onclick\rig.dm" +#include "code\_onclick\telekinesis.dm" +#include "code\_onclick\hud\_defines.dm" +#include "code\_onclick\hud\action_button.dm" +#include "code\_onclick\hud\ai.dm" +#include "code\_onclick\hud\alert.dm" +#include "code\_onclick\hud\alien.dm" +#include "code\_onclick\hud\alien_larva.dm" +#include "code\_onclick\hud\blob_overmind.dm" +#include "code\_onclick\hud\bot.dm" +#include "code\_onclick\hud\constructs.dm" +#include "code\_onclick\hud\devil.dm" +#include "code\_onclick\hud\fullscreen.dm" +#include "code\_onclick\hud\ghost.dm" +#include "code\_onclick\hud\guardian.dm" +#include "code\_onclick\hud\hud.dm" +#include "code\_onclick\hud\human.dm" +#include "code\_onclick\hud\monkey.dm" +#include "code\_onclick\hud\movable_screen_objects.dm" +#include "code\_onclick\hud\other_mobs.dm" +#include "code\_onclick\hud\picture_in_picture.dm" +#include "code\_onclick\hud\plane_master.dm" +#include "code\_onclick\hud\radial.dm" +#include "code\_onclick\hud\robot.dm" +#include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\swarmer.dm" +#include "code\ATMOSPHERICS\atmospherics.dm" +#include "code\ATMOSPHERICS\datum_icon_manager.dm" +#include "code\ATMOSPHERICS\datum_pipeline.dm" +#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm" +#include "code\ATMOSPHERICS\components\binary_devices\circulator.dm" +#include "code\ATMOSPHERICS\components\binary_devices\dp_vent_pump.dm" +#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm" +#include "code\ATMOSPHERICS\components\binary_devices\pump.dm" +#include "code\ATMOSPHERICS\components\binary_devices\valve.dm" +#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm" +#include "code\ATMOSPHERICS\components\omni_devices\_omni_extras.dm" +#include "code\ATMOSPHERICS\components\omni_devices\filter.dm" +#include "code\ATMOSPHERICS\components\omni_devices\mixer.dm" +#include "code\ATMOSPHERICS\components\omni_devices\omni_base.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\tvalve.dm" +#include "code\ATMOSPHERICS\components\unary_devices\cold_sink.dm" +#include "code\ATMOSPHERICS\components\unary_devices\generator_input.dm" +#include "code\ATMOSPHERICS\components\unary_devices\heat_exchanger.dm" +#include "code\ATMOSPHERICS\components\unary_devices\heat_source.dm" +#include "code\ATMOSPHERICS\components\unary_devices\outlet_injector.dm" +#include "code\ATMOSPHERICS\components\unary_devices\oxygen_generator.dm" +#include "code\ATMOSPHERICS\components\unary_devices\passive_vent.dm" +#include "code\ATMOSPHERICS\components\unary_devices\portables_connector.dm" +#include "code\ATMOSPHERICS\components\unary_devices\tank.dm" +#include "code\ATMOSPHERICS\components\unary_devices\thermal_plate.dm" +#include "code\ATMOSPHERICS\components\unary_devices\unary_base.dm" +#include "code\ATMOSPHERICS\components\unary_devices\vent_pump.dm" +#include "code\ATMOSPHERICS\components\unary_devices\vent_scrubber.dm" +#include "code\ATMOSPHERICS\pipes\cap.dm" +#include "code\ATMOSPHERICS\pipes\manifold.dm" +#include "code\ATMOSPHERICS\pipes\manifold4w.dm" +#include "code\ATMOSPHERICS\pipes\pipe.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_he.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_hidden.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_insulated.dm" +#include "code\ATMOSPHERICS\pipes\simple\pipe_simple_visible.dm" +#include "code\controllers\configuration.dm" +#include "code\controllers\controller.dm" +#include "code\controllers\failsafe.dm" +#include "code\controllers\globals.dm" +#include "code\controllers\hooks-defs.dm" +#include "code\controllers\hooks.dm" +#include "code\controllers\master.dm" +#include "code\controllers\subsystem.dm" +#include "code\controllers\verbs.dm" +#include "code\controllers\subsystem\air.dm" +#include "code\controllers\subsystem\alarm.dm" +#include "code\controllers\subsystem\assets.dm" +#include "code\controllers\subsystem\atoms.dm" +#include "code\controllers\subsystem\events.dm" +#include "code\controllers\subsystem\fires.dm" +#include "code\controllers\subsystem\garbage.dm" +#include "code\controllers\subsystem\holiday.dm" +#include "code\controllers\subsystem\icon_smooth.dm" +#include "code\controllers\subsystem\idlenpcpool.dm" +#include "code\controllers\subsystem\ipintel.dm" +#include "code\controllers\subsystem\jobs.dm" +#include "code\controllers\subsystem\lighting.dm" +#include "code\controllers\subsystem\machinery.dm" +#include "code\controllers\subsystem\mapping.dm" +#include "code\controllers\subsystem\medals.dm" +#include "code\controllers\subsystem\mobs.dm" +#include "code\controllers\subsystem\nano_mob_hunter.dm" +#include "code\controllers\subsystem\nanoui.dm" +#include "code\controllers\subsystem\nightshift.dm" +#include "code\controllers\subsystem\npcpool.dm" +#include "code\controllers\subsystem\overlays.dm" +#include "code\controllers\subsystem\radio.dm" +#include "code\controllers\subsystem\shuttles.dm" +#include "code\controllers\subsystem\spacedrift.dm" +#include "code\controllers\subsystem\sun.dm" +#include "code\controllers\subsystem\throwing.dm" +#include "code\controllers\subsystem\ticker.dm" +#include "code\controllers\subsystem\timer.dm" +#include "code\controllers\subsystem\vote.dm" +#include "code\controllers\subsystem\weather.dm" +#include "code\controllers\subsystem\processing\fastprocess.dm" +#include "code\controllers\subsystem\processing\obj.dm" +#include "code\controllers\subsystem\processing\processing.dm" +#include "code\controllers\subsystem\tickets\mentor_tickets.dm" +#include "code\controllers\subsystem\tickets\tickets.dm" +#include "code\datums\action.dm" +#include "code\datums\ai_law_sets.dm" +#include "code\datums\ai_laws.dm" +#include "code\datums\beam.dm" +#include "code\datums\browser.dm" +#include "code\datums\callback.dm" +#include "code\datums\click_intercept.dm" +#include "code\datums\datacore.dm" +#include "code\datums\datum.dm" +#include "code\datums\datumvars.dm" +#include "code\datums\gas_mixture.dm" +#include "code\datums\holocall.dm" +#include "code\datums\hud.dm" +#include "code\datums\mind.dm" +#include "code\datums\mixed.dm" +#include "code\datums\mutable_appearance.dm" +#include "code\datums\periodic_news.dm" +#include "code\datums\pipe_datums.dm" +#include "code\datums\progressbar.dm" +#include "code\datums\radio.dm" +#include "code\datums\recipe.dm" +#include "code\datums\ruins.dm" +#include "code\datums\shuttles.dm" +#include "code\datums\soullink.dm" +#include "code\datums\spawners_menu.dm" +#include "code\datums\spell.dm" +#include "code\datums\statclick.dm" +#include "code\datums\supplypacks.dm" +#include "code\datums\uplink_item.dm" +#include "code\datums\vision_override.dm" +#include "code\datums\vr.dm" +#include "code\datums\cache\air_alarm.dm" +#include "code\datums\cache\apc.dm" +#include "code\datums\cache\cache.dm" +#include "code\datums\cache\crew.dm" +#include "code\datums\cache\powermonitor.dm" +#include "code\datums\components\_component.dm" +#include "code\datums\components\decal.dm" +#include "code\datums\components\ducttape.dm" +#include "code\datums\components\jestosterone.dm" +#include "code\datums\components\material_container.dm" +#include "code\datums\components\squeak.dm" +#include "code\datums\diseases\_disease.dm" +#include "code\datums\diseases\_MobProcs.dm" +#include "code\datums\diseases\anxiety.dm" +#include "code\datums\diseases\appendicitis.dm" +#include "code\datums\diseases\beesease.dm" +#include "code\datums\diseases\berserker.dm" +#include "code\datums\diseases\brainrot.dm" +#include "code\datums\diseases\cold.dm" +#include "code\datums\diseases\cold9.dm" +#include "code\datums\diseases\critical.dm" +#include "code\datums\diseases\fake_gbs.dm" +#include "code\datums\diseases\flu.dm" +#include "code\datums\diseases\fluspanish.dm" +#include "code\datums\diseases\food_poisoning.dm" +#include "code\datums\diseases\gbs.dm" +#include "code\datums\diseases\kingstons.dm" +#include "code\datums\diseases\kuru.dm" +#include "code\datums\diseases\lycancoughy.dm" +#include "code\datums\diseases\magnitis.dm" +#include "code\datums\diseases\pierrot_throat.dm" +#include "code\datums\diseases\retrovirus.dm" +#include "code\datums\diseases\rhumba_beat.dm" +#include "code\datums\diseases\transformation.dm" +#include "code\datums\diseases\tuberculosis.dm" +#include "code\datums\diseases\vampire.dm" +#include "code\datums\diseases\wizarditis.dm" +#include "code\datums\diseases\advance\advance.dm" +#include "code\datums\diseases\advance\presets.dm" +#include "code\datums\diseases\advance\symptoms\beard.dm" +#include "code\datums\diseases\advance\symptoms\choking.dm" +#include "code\datums\diseases\advance\symptoms\confusion.dm" +#include "code\datums\diseases\advance\symptoms\cough.dm" +#include "code\datums\diseases\advance\symptoms\damage_converter.dm" +#include "code\datums\diseases\advance\symptoms\deafness.dm" +#include "code\datums\diseases\advance\symptoms\dizzy.dm" +#include "code\datums\diseases\advance\symptoms\fever.dm" +#include "code\datums\diseases\advance\symptoms\fire.dm" +#include "code\datums\diseases\advance\symptoms\flesh_eating.dm" +#include "code\datums\diseases\advance\symptoms\hallucigen.dm" +#include "code\datums\diseases\advance\symptoms\headache.dm" +#include "code\datums\diseases\advance\symptoms\heal.dm" +#include "code\datums\diseases\advance\symptoms\itching.dm" +#include "code\datums\diseases\advance\symptoms\oxygen.dm" +#include "code\datums\diseases\advance\symptoms\sensory.dm" +#include "code\datums\diseases\advance\symptoms\shedding.dm" +#include "code\datums\diseases\advance\symptoms\shivering.dm" +#include "code\datums\diseases\advance\symptoms\skin.dm" +#include "code\datums\diseases\advance\symptoms\sneeze.dm" +#include "code\datums\diseases\advance\symptoms\symptoms.dm" +#include "code\datums\diseases\advance\symptoms\viral.dm" +#include "code\datums\diseases\advance\symptoms\vision.dm" +#include "code\datums\diseases\advance\symptoms\voice_change.dm" +#include "code\datums\diseases\advance\symptoms\vomit.dm" +#include "code\datums\diseases\advance\symptoms\weakness.dm" +#include "code\datums\diseases\advance\symptoms\weight.dm" +#include "code\datums\diseases\advance\symptoms\youth.dm" +#include "code\datums\helper_datums\construction_datum.dm" +#include "code\datums\helper_datums\events.dm" +#include "code\datums\helper_datums\global_iterator.dm" +#include "code\datums\helper_datums\hotkey_modes.dm" +#include "code\datums\helper_datums\icon_snapshot.dm" +#include "code\datums\helper_datums\input.dm" +#include "code\datums\helper_datums\map_template.dm" +#include "code\datums\helper_datums\teleport.dm" +#include "code\datums\helper_datums\topic_input.dm" +#include "code\datums\looping_sounds\looping_sound.dm" +#include "code\datums\looping_sounds\machinery_sounds.dm" +#include "code\datums\looping_sounds\thermal_drill.dm" +#include "code\datums\looping_sounds\weather.dm" +#include "code\datums\outfits\outfit.dm" +#include "code\datums\outfits\outfit_admin.dm" +#include "code\datums\ruins\lavaland.dm" +#include "code\datums\ruins\space.dm" +#include "code\datums\spells\area_teleport.dm" +#include "code\datums\spells\bloodcrawl.dm" +#include "code\datums\spells\chaplain.dm" +#include "code\datums\spells\charge.dm" +#include "code\datums\spells\cluwne.dm" +#include "code\datums\spells\conjure.dm" +#include "code\datums\spells\conjure_item.dm" +#include "code\datums\spells\construct_spells.dm" +#include "code\datums\spells\devil.dm" +#include "code\datums\spells\devil_boons.dm" +#include "code\datums\spells\dumbfire.dm" +#include "code\datums\spells\emplosion.dm" +#include "code\datums\spells\ethereal_jaunt.dm" +#include "code\datums\spells\explosion.dm" +#include "code\datums\spells\fake_gib.dm" +#include "code\datums\spells\genetic.dm" +#include "code\datums\spells\horsemask.dm" +#include "code\datums\spells\infinite_guns.dm" +#include "code\datums\spells\inflict_handler.dm" +#include "code\datums\spells\knock.dm" +#include "code\datums\spells\lichdom.dm" +#include "code\datums\spells\lightning.dm" +#include "code\datums\spells\magnet.dm" +#include "code\datums\spells\mime.dm" +#include "code\datums\spells\mind_transfer.dm" +#include "code\datums\spells\night_vision.dm" +#include "code\datums\spells\projectile.dm" +#include "code\datums\spells\rathens.dm" +#include "code\datums\spells\rod_form.dm" +#include "code\datums\spells\shapeshift.dm" +#include "code\datums\spells\summonitem.dm" +#include "code\datums\spells\touch_attacks.dm" +#include "code\datums\spells\trigger.dm" +#include "code\datums\spells\turf_teleport.dm" +#include "code\datums\spells\wizard.dm" +#include "code\datums\status_effects\buffs.dm" +#include "code\datums\status_effects\debuffs.dm" +#include "code\datums\status_effects\neutral.dm" +#include "code\datums\status_effects\status_effect.dm" +#include "code\datums\vr\level.dm" +#include "code\datums\weather\weather.dm" +#include "code\datums\weather\weather_types\ash_storm.dm" +#include "code\datums\weather\weather_types\floor_is_lava.dm" +#include "code\datums\weather\weather_types\radiation_storm.dm" +#include "code\datums\weather\weather_types\snow_storm.dm" +#include "code\datums\wires\airlock.dm" +#include "code\datums\wires\alarm.dm" +#include "code\datums\wires\apc.dm" +#include "code\datums\wires\autolathe.dm" +#include "code\datums\wires\camera.dm" +#include "code\datums\wires\explosive.dm" +#include "code\datums\wires\mulebot.dm" +#include "code\datums\wires\nuclearbomb.dm" +#include "code\datums\wires\particle_accelerator.dm" +#include "code\datums\wires\radio.dm" +#include "code\datums\wires\robot.dm" +#include "code\datums\wires\smartfridge.dm" +#include "code\datums\wires\suitstorage.dm" +#include "code\datums\wires\syndicatebomb.dm" +#include "code\datums\wires\tesla_coil.dm" +#include "code\datums\wires\vending.dm" +#include "code\datums\wires\wires.dm" +#include "code\defines\vox_sounds.dm" +#include "code\defines\procs\admin.dm" +#include "code\defines\procs\announce.dm" +#include "code\defines\procs\AStar.dm" +#include "code\defines\procs\dbcore.dm" +#include "code\defines\procs\radio.dm" +#include "code\defines\procs\records.dm" +#include "code\defines\procs\statistics.dm" +#include "code\game\alternate_appearance.dm" +#include "code\game\asteroid.dm" +#include "code\game\atoms.dm" +#include "code\game\atoms_movable.dm" +#include "code\game\data_huds.dm" +#include "code\game\shuttle_engines.dm" +#include "code\game\sound.dm" +#include "code\game\world.dm" +#include "code\game\area\ai_monitored.dm" +#include "code\game\area\areas.dm" +#include "code\game\area\Dynamic areas.dm" +#include "code\game\area\Space Station 13 areas.dm" +#include "code\game\area\areas\depot-areas.dm" +#include "code\game\area\areas\mining.dm" +#include "code\game\area\areas\ruins\lavaland.dm" +#include "code\game\dna\dna2.dm" +#include "code\game\dna\dna2_domutcheck.dm" +#include "code\game\dna\dna2_helpers.dm" +#include "code\game\dna\dna_modifier.dm" +#include "code\game\dna\genes\disabilities.dm" +#include "code\game\dna\genes\gene.dm" +#include "code\game\dna\genes\goon_disabilities.dm" +#include "code\game\dna\genes\goon_powers.dm" +#include "code\game\dna\genes\monkey.dm" +#include "code\game\dna\genes\powers.dm" +#include "code\game\dna\genes\vg_disabilities.dm" +#include "code\game\dna\genes\vg_powers.dm" +#include "code\game\gamemodes\factions.dm" +#include "code\game\gamemodes\game_mode.dm" +#include "code\game\gamemodes\intercept_report.dm" +#include "code\game\gamemodes\objective.dm" +#include "code\game\gamemodes\scoreboard.dm" +#include "code\game\gamemodes\setupgame.dm" +#include "code\game\gamemodes\steal_items.dm" +#include "code\game\gamemodes\autotraitor\autotraitor.dm" +#include "code\game\gamemodes\blob\blob.dm" +#include "code\game\gamemodes\blob\blob_finish.dm" +#include "code\game\gamemodes\blob\blob_report.dm" +#include "code\game\gamemodes\blob\overmind.dm" +#include "code\game\gamemodes\blob\powers.dm" +#include "code\game\gamemodes\blob\theblob.dm" +#include "code\game\gamemodes\blob\blobs\blob_mobs.dm" +#include "code\game\gamemodes\blob\blobs\core.dm" +#include "code\game\gamemodes\blob\blobs\factory.dm" +#include "code\game\gamemodes\blob\blobs\node.dm" +#include "code\game\gamemodes\blob\blobs\resource.dm" +#include "code\game\gamemodes\blob\blobs\shield.dm" +#include "code\game\gamemodes\blob\blobs\storage.dm" +#include "code\game\gamemodes\changeling\changeling.dm" +#include "code\game\gamemodes\changeling\changeling_power.dm" +#include "code\game\gamemodes\changeling\evolution_menu.dm" +#include "code\game\gamemodes\changeling\traitor_chan.dm" +#include "code\game\gamemodes\changeling\powers\absorb.dm" +#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm" +#include "code\game\gamemodes\changeling\powers\biodegrade.dm" +#include "code\game\gamemodes\changeling\powers\chameleon_skin.dm" +#include "code\game\gamemodes\changeling\powers\digitalcamo.dm" +#include "code\game\gamemodes\changeling\powers\epinephrine.dm" +#include "code\game\gamemodes\changeling\powers\fakedeath.dm" +#include "code\game\gamemodes\changeling\powers\fleshmend.dm" +#include "code\game\gamemodes\changeling\powers\headslug.dm" +#include "code\game\gamemodes\changeling\powers\hivemind.dm" +#include "code\game\gamemodes\changeling\powers\humanform.dm" +#include "code\game\gamemodes\changeling\powers\lesserform.dm" +#include "code\game\gamemodes\changeling\powers\linglink.dm" +#include "code\game\gamemodes\changeling\powers\mimic_voice.dm" +#include "code\game\gamemodes\changeling\powers\mutations.dm" +#include "code\game\gamemodes\changeling\powers\panacea.dm" +#include "code\game\gamemodes\changeling\powers\revive.dm" +#include "code\game\gamemodes\changeling\powers\shriek.dm" +#include "code\game\gamemodes\changeling\powers\spiders.dm" +#include "code\game\gamemodes\changeling\powers\strained_muscles.dm" +#include "code\game\gamemodes\changeling\powers\swap_form.dm" +#include "code\game\gamemodes\changeling\powers\tiny_prick.dm" +#include "code\game\gamemodes\changeling\powers\transform.dm" +#include "code\game\gamemodes\cult\cult.dm" +#include "code\game\gamemodes\cult\cult_comms.dm" +#include "code\game\gamemodes\cult\cult_datums.dm" +#include "code\game\gamemodes\cult\cult_items.dm" +#include "code\game\gamemodes\cult\cult_objectives.dm" +#include "code\game\gamemodes\cult\cult_structures.dm" +#include "code\game\gamemodes\cult\ritual.dm" +#include "code\game\gamemodes\cult\runes.dm" +#include "code\game\gamemodes\cult\talisman.dm" +#include "code\game\gamemodes\devil\devil.dm" +#include "code\game\gamemodes\devil\devil_game_mode.dm" +#include "code\game\gamemodes\devil\devilinfo.dm" +#include "code\game\gamemodes\devil\game_mode.dm" +#include "code\game\gamemodes\devil\objectives.dm" +#include "code\game\gamemodes\devil\contracts\friend.dm" +#include "code\game\gamemodes\devil\devil agent\devil_agent.dm" +#include "code\game\gamemodes\devil\imp\imp.dm" +#include "code\game\gamemodes\devil\true_devil\_true_devil.dm" +#include "code\game\gamemodes\devil\true_devil\inventory.dm" +#include "code\game\gamemodes\extended\extended.dm" +#include "code\game\gamemodes\heist\heist.dm" +#include "code\game\gamemodes\malfunction\Malf_Modules.dm" +#include "code\game\gamemodes\meteor\meteor.dm" +#include "code\game\gamemodes\meteor\meteors.dm" +#include "code\game\gamemodes\miniantags\abduction\abductee_objectives.dm" +#include "code\game\gamemodes\miniantags\abduction\abduction.dm" +#include "code\game\gamemodes\miniantags\abduction\abduction_gear.dm" +#include "code\game\gamemodes\miniantags\abduction\abduction_outfits.dm" +#include "code\game\gamemodes\miniantags\abduction\abduction_surgery.dm" +#include "code\game\gamemodes\miniantags\abduction\gland.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\camera.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\console.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\dispenser.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\experiment.dm" +#include "code\game\gamemodes\miniantags\abduction\machinery\pad.dm" +#include "code\game\gamemodes\miniantags\borer\borer.dm" +#include "code\game\gamemodes\miniantags\borer\borer_chemicals.dm" +#include "code\game\gamemodes\miniantags\borer\borer_event.dm" +#include "code\game\gamemodes\miniantags\borer\borer_html.dm" +#include "code\game\gamemodes\miniantags\bot_swarm\swarmer.dm" +#include "code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm" +#include "code\game\gamemodes\miniantags\guardian\guardian.dm" +#include "code\game\gamemodes\miniantags\guardian\types\assassin.dm" +#include "code\game\gamemodes\miniantags\guardian\types\bomb.dm" +#include "code\game\gamemodes\miniantags\guardian\types\charger.dm" +#include "code\game\gamemodes\miniantags\guardian\types\fire.dm" +#include "code\game\gamemodes\miniantags\guardian\types\healer.dm" +#include "code\game\gamemodes\miniantags\guardian\types\lightning.dm" +#include "code\game\gamemodes\miniantags\guardian\types\protector.dm" +#include "code\game\gamemodes\miniantags\guardian\types\ranged.dm" +#include "code\game\gamemodes\miniantags\guardian\types\standard.dm" +#include "code\game\gamemodes\miniantags\morph\morph.dm" +#include "code\game\gamemodes\miniantags\morph\morph_event.dm" +#include "code\game\gamemodes\miniantags\revenant\revenant.dm" +#include "code\game\gamemodes\miniantags\revenant\revenant_abilities.dm" +#include "code\game\gamemodes\miniantags\revenant\revenant_spawn_event.dm" +#include "code\game\gamemodes\miniantags\sintouched\objectives.dm" +#include "code\game\gamemodes\miniantags\slaughter\bloodcrawl.dm" +#include "code\game\gamemodes\miniantags\slaughter\slaughter.dm" +#include "code\game\gamemodes\nuclear\nuclear.dm" +#include "code\game\gamemodes\nuclear\nuclear_challenge.dm" +#include "code\game\gamemodes\nuclear\nuclearbomb.dm" +#include "code\game\gamemodes\nuclear\pinpointer.dm" +#include "code\game\gamemodes\revolution\revolution.dm" +#include "code\game\gamemodes\shadowling\ascendant_shadowling.dm" +#include "code\game\gamemodes\shadowling\shadowling.dm" +#include "code\game\gamemodes\shadowling\shadowling_abilities.dm" +#include "code\game\gamemodes\shadowling\shadowling_items.dm" +#include "code\game\gamemodes\shadowling\special_shadowling_abilities.dm" +#include "code\game\gamemodes\traitor\traitor.dm" +#include "code\game\gamemodes\vampire\traitor_vamp.dm" +#include "code\game\gamemodes\vampire\vampire.dm" +#include "code\game\gamemodes\vampire\vampire_powers.dm" +#include "code\game\gamemodes\wizard\artefact.dm" +#include "code\game\gamemodes\wizard\godhand.dm" +#include "code\game\gamemodes\wizard\raginmages.dm" +#include "code\game\gamemodes\wizard\rightandwrong.dm" +#include "code\game\gamemodes\wizard\soulstone.dm" +#include "code\game\gamemodes\wizard\spellbook.dm" +#include "code\game\gamemodes\wizard\wizard.dm" +#include "code\game\jobs\access.dm" +#include "code\game\jobs\job_exp.dm" +#include "code\game\jobs\job_objective.dm" +#include "code\game\jobs\job_scaling.dm" +#include "code\game\jobs\jobs.dm" +#include "code\game\jobs\whitelist.dm" +#include "code\game\jobs\job\central.dm" +#include "code\game\jobs\job\civilian.dm" +#include "code\game\jobs\job\engineering.dm" +#include "code\game\jobs\job\job.dm" +#include "code\game\jobs\job\medical.dm" +#include "code\game\jobs\job\science.dm" +#include "code\game\jobs\job\security.dm" +#include "code\game\jobs\job\silicon.dm" +#include "code\game\jobs\job\supervisor.dm" +#include "code\game\jobs\job\support.dm" +#include "code\game\jobs\job\support_chaplain.dm" +#include "code\game\jobs\job\syndicate.dm" +#include "code\game\jobs\job_objectives\science.dm" +#include "code\game\machinery\adv_med.dm" +#include "code\game\machinery\ai_slipper.dm" +#include "code\game\machinery\alarm.dm" +#include "code\game\machinery\atmo_control.dm" +#include "code\game\machinery\autolathe.dm" +#include "code\game\machinery\Beacon.dm" +#include "code\game\machinery\buttons.dm" +#include "code\game\machinery\cell_charger.dm" +#include "code\game\machinery\chiller.dm" +#include "code\game\machinery\cloning.dm" +#include "code\game\machinery\constructable_frame.dm" +#include "code\game\machinery\cryo.dm" +#include "code\game\machinery\cryopod.dm" +#include "code\game\machinery\dance_machine.dm" +#include "code\game\machinery\defib_mount.dm" +#include "code\game\machinery\deployable.dm" +#include "code\game\machinery\door_control.dm" +#include "code\game\machinery\doppler_array.dm" +#include "code\game\machinery\dye_generator.dm" +#include "code\game\machinery\firealarm.dm" +#include "code\game\machinery\flasher.dm" +#include "code\game\machinery\floodlight.dm" +#include "code\game\machinery\Freezer.dm" +#include "code\game\machinery\gameboard.dm" +#include "code\game\machinery\guestpass.dm" +#include "code\game\machinery\hologram.dm" +#include "code\game\machinery\holosign.dm" +#include "code\game\machinery\igniter.dm" +#include "code\game\machinery\iv_drip.dm" +#include "code\game\machinery\lightswitch.dm" +#include "code\game\machinery\machinery.dm" +#include "code\game\machinery\magnet.dm" +#include "code\game\machinery\mass_driver.dm" +#include "code\game\machinery\navbeacon.dm" +#include "code\game\machinery\newscaster.dm" +#include "code\game\machinery\OpTable.dm" +#include "code\game\machinery\overview.dm" +#include "code\game\machinery\PDApainter.dm" +#include "code\game\machinery\poolcontroller.dm" +#include "code\game\machinery\portable_tag_turret.dm" +#include "code\game\machinery\portable_turret.dm" +#include "code\game\machinery\quantum_pad.dm" +#include "code\game\machinery\recharger.dm" +#include "code\game\machinery\rechargestation.dm" +#include "code\game\machinery\recycler.dm" +#include "code\game\machinery\requests_console.dm" +#include "code\game\machinery\shieldgen.dm" +#include "code\game\machinery\Sleeper.dm" +#include "code\game\machinery\slotmachine.dm" +#include "code\game\machinery\snow_machine.dm" +#include "code\game\machinery\spaceheater.dm" +#include "code\game\machinery\status_display.dm" +#include "code\game\machinery\suit_storage_unit.dm" +#include "code\game\machinery\supply_display.dm" +#include "code\game\machinery\syndicatebeacon.dm" +#include "code\game\machinery\syndicatebomb.dm" +#include "code\game\machinery\teleporter.dm" +#include "code\game\machinery\transformer.dm" +#include "code\game\machinery\turntable.dm" +#include "code\game\machinery\turret_control.dm" +#include "code\game\machinery\vending.dm" +#include "code\game\machinery\washing_machine.dm" +#include "code\game\machinery\wishgranter.dm" +#include "code\game\machinery\atmoalter\area_atmos_computer.dm" +#include "code\game\machinery\atmoalter\canister.dm" +#include "code\game\machinery\atmoalter\meter.dm" +#include "code\game\machinery\atmoalter\portable_atmospherics.dm" +#include "code\game\machinery\atmoalter\pump.dm" +#include "code\game\machinery\atmoalter\scrubber.dm" +#include "code\game\machinery\atmoalter\zvent.dm" +#include "code\game\machinery\camera\camera.dm" +#include "code\game\machinery\camera\camera_assembly.dm" +#include "code\game\machinery\camera\motion.dm" +#include "code\game\machinery\camera\presets.dm" +#include "code\game\machinery\camera\tracking.dm" +#include "code\game\machinery\computer\ai_core.dm" +#include "code\game\machinery\computer\aifixer.dm" +#include "code\game\machinery\computer\arcade.dm" +#include "code\game\machinery\computer\atmos_alert.dm" +#include "code\game\machinery\computer\atmos_control.dm" +#include "code\game\machinery\computer\brigcells.dm" +#include "code\game\machinery\computer\buildandrepair.dm" +#include "code\game\machinery\computer\camera.dm" +#include "code\game\machinery\computer\camera_advanced.dm" +#include "code\game\machinery\computer\card.dm" +#include "code\game\machinery\computer\cloning.dm" +#include "code\game\machinery\computer\communications.dm" +#include "code\game\machinery\computer\computer.dm" +#include "code\game\machinery\computer\crew.dm" +#include "code\game\machinery\computer\depot.dm" +#include "code\game\machinery\computer\HolodeckControl.dm" +#include "code\game\machinery\computer\honkputer.dm" +#include "code\game\machinery\computer\law.dm" +#include "code\game\machinery\computer\medical.dm" +#include "code\game\machinery\computer\message.dm" +#include "code\game\machinery\computer\Operating.dm" +#include "code\game\machinery\computer\pod.dm" +#include "code\game\machinery\computer\pod_tracking_console.dm" +#include "code\game\machinery\computer\power.dm" +#include "code\game\machinery\computer\prisoner.dm" +#include "code\game\machinery\computer\robot.dm" +#include "code\game\machinery\computer\salvage_ship.dm" +#include "code\game\machinery\computer\security.dm" +#include "code\game\machinery\computer\skills.dm" +#include "code\game\machinery\computer\specops_shuttle.dm" +#include "code\game\machinery\computer\station_alert.dm" +#include "code\game\machinery\computer\store.dm" +#include "code\game\machinery\computer\syndicate_specops_shuttle.dm" +#include "code\game\machinery\computer\vr_control.dm" +#include "code\game\machinery\doors\airlock.dm" +#include "code\game\machinery\doors\airlock_control.dm" +#include "code\game\machinery\doors\airlock_electronics.dm" +#include "code\game\machinery\doors\airlock_types.dm" +#include "code\game\machinery\doors\alarmlock.dm" +#include "code\game\machinery\doors\brigdoors.dm" +#include "code\game\machinery\doors\checkForMultipleDoors.dm" +#include "code\game\machinery\doors\door.dm" +#include "code\game\machinery\doors\firedoor.dm" +#include "code\game\machinery\doors\poddoor.dm" +#include "code\game\machinery\doors\shutters.dm" +#include "code\game\machinery\doors\spacepod.dm" +#include "code\game\machinery\doors\unpowered.dm" +#include "code\game\machinery\doors\windowdoor.dm" +#include "code\game\machinery\embedded_controller\airlock_controllers.dm" +#include "code\game\machinery\embedded_controller\airlock_program.dm" +#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" +#include "code\game\machinery\embedded_controller\embedded_program_base.dm" +#include "code\game\machinery\pipe\construction.dm" +#include "code\game\machinery\pipe\pipe_dispenser.dm" +#include "code\game\machinery\telecomms\broadcaster.dm" +#include "code\game\machinery\telecomms\logbrowser.dm" +#include "code\game\machinery\telecomms\machine_interactions.dm" +#include "code\game\machinery\telecomms\ntsl2.dm" +#include "code\game\machinery\telecomms\presets.dm" +#include "code\game\machinery\telecomms\telecomunications.dm" +#include "code\game\machinery\telecomms\telemonitor.dm" +#include "code\game\machinery\telecomms\traffic_control.dm" +#include "code\game\magic\Uristrunes.dm" +#include "code\game\mecha\mech_bay.dm" +#include "code\game\mecha\mech_fabricator.dm" +#include "code\game\mecha\mecha.dm" +#include "code\game\mecha\mecha_actions.dm" +#include "code\game\mecha\mecha_construction_paths.dm" +#include "code\game\mecha\mecha_control_console.dm" +#include "code\game\mecha\mecha_modkit.dm" +#include "code\game\mecha\mecha_parts.dm" +#include "code\game\mecha\mecha_topic.dm" +#include "code\game\mecha\mecha_wreckage.dm" +#include "code\game\mecha\paintkits.dm" +#include "code\game\mecha\combat\combat.dm" +#include "code\game\mecha\combat\durand.dm" +#include "code\game\mecha\combat\gygax.dm" +#include "code\game\mecha\combat\honker.dm" +#include "code\game\mecha\combat\marauder.dm" +#include "code\game\mecha\combat\phazon.dm" +#include "code\game\mecha\combat\reticence.dm" +#include "code\game\mecha\equipment\mecha_equipment.dm" +#include "code\game\mecha\equipment\tools\medical_tools.dm" +#include "code\game\mecha\equipment\tools\mining_tools.dm" +#include "code\game\mecha\equipment\tools\other_tools.dm" +#include "code\game\mecha\equipment\tools\work_tools.dm" +#include "code\game\mecha\equipment\weapons\weapons.dm" +#include "code\game\mecha\medical\medical.dm" +#include "code\game\mecha\medical\odysseus.dm" +#include "code\game\mecha\working\ripley.dm" +#include "code\game\mecha\working\working.dm" +#include "code\game\objects\buckling.dm" +#include "code\game\objects\empulse.dm" +#include "code\game\objects\explosion.dm" +#include "code\game\objects\items.dm" +#include "code\game\objects\obj_defense.dm" +#include "code\game\objects\objs.dm" +#include "code\game\objects\structures.dm" +#include "code\game\objects\effects\alien_acid.dm" +#include "code\game\objects\effects\anomalies.dm" +#include "code\game\objects\effects\bump_teleporter.dm" +#include "code\game\objects\effects\effects.dm" +#include "code\game\objects\effects\forcefields.dm" +#include "code\game\objects\effects\gibs.dm" +#include "code\game\objects\effects\glowshroom.dm" +#include "code\game\objects\effects\landmarks.dm" +#include "code\game\objects\effects\manifest.dm" +#include "code\game\objects\effects\mapping_helpers.dm" +#include "code\game\objects\effects\mines.dm" +#include "code\game\objects\effects\misc.dm" +#include "code\game\objects\effects\overlays.dm" +#include "code\game\objects\effects\portals.dm" +#include "code\game\objects\effects\snowcloud.dm" +#include "code\game\objects\effects\spiders.dm" +#include "code\game\objects\effects\step_triggers.dm" +#include "code\game\objects\effects\decals\cleanable.dm" +#include "code\game\objects\effects\decals\contraband.dm" +#include "code\game\objects\effects\decals\crayon.dm" +#include "code\game\objects\effects\decals\decal.dm" +#include "code\game\objects\effects\decals\misc.dm" +#include "code\game\objects\effects\decals\remains.dm" +#include "code\game\objects\effects\decals\warning_stripes.dm" +#include "code\game\objects\effects\decals\Cleanable\aliens.dm" +#include "code\game\objects\effects\decals\Cleanable\fuel.dm" +#include "code\game\objects\effects\decals\Cleanable\humans.dm" +#include "code\game\objects\effects\decals\Cleanable\misc.dm" +#include "code\game\objects\effects\decals\Cleanable\robots.dm" +#include "code\game\objects\effects\decals\Cleanable\tracks.dm" +#include "code\game\objects\effects\decals\turfdecals\dirt.dm" +#include "code\game\objects\effects\decals\turfdecals\markings.dm" +#include "code\game\objects\effects\decals\turfdecals\tilecoloring.dm" +#include "code\game\objects\effects\decals\turfdecals\weather.dm" +#include "code\game\objects\effects\effect_system\effect_system.dm" +#include "code\game\objects\effects\effect_system\effects_chem_smoke.dm" +#include "code\game\objects\effects\effect_system\effects_explosion.dm" +#include "code\game\objects\effects\effect_system\effects_foam.dm" +#include "code\game\objects\effects\effect_system\effects_other.dm" +#include "code\game\objects\effects\effect_system\effects_smoke.dm" +#include "code\game\objects\effects\effect_system\effects_sparks.dm" +#include "code\game\objects\effects\effect_system\effects_water.dm" +#include "code\game\objects\effects\spawners\bombspawner.dm" +#include "code\game\objects\effects\spawners\gibspawner.dm" +#include "code\game\objects\effects\spawners\lootdrop.dm" +#include "code\game\objects\effects\spawners\random_barrier.dm" +#include "code\game\objects\effects\spawners\random_spawners.dm" +#include "code\game\objects\effects\spawners\vaultspawner.dm" +#include "code\game\objects\effects\spawners\windowspawner.dm" +#include "code\game\objects\effects\temporary_visuals\clockcult.dm" +#include "code\game\objects\effects\temporary_visuals\cult.dm" +#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" +#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" +#include "code\game\objects\items\ashtray.dm" +#include "code\game\objects\items\blueprints.dm" +#include "code\game\objects\items\bodybag.dm" +#include "code\game\objects\items\candle.dm" +#include "code\game\objects\items\cardboard_cutouts.dm" +#include "code\game\objects\items\changestone.dm" +#include "code\game\objects\items\contraband.dm" +#include "code\game\objects\items\control_wand.dm" +#include "code\game\objects\items\crayons.dm" +#include "code\game\objects\items\dehy_carp.dm" +#include "code\game\objects\items\documents.dm" +#include "code\game\objects\items\flag.dm" +#include "code\game\objects\items\latexballoon.dm" +#include "code\game\objects\items\misc.dm" +#include "code\game\objects\items\mixing_bowl.dm" +#include "code\game\objects\items\random_items.dm" +#include "code\game\objects\items\shooting_range.dm" +#include "code\game\objects\items\toys.dm" +#include "code\game\objects\items\trash.dm" +#include "code\game\objects\items\devices\aicard.dm" +#include "code\game\objects\items\devices\autopsy.dm" +#include "code\game\objects\items\devices\camera_bug.dm" +#include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\flash.dm" +#include "code\game\objects\items\devices\flashlight.dm" +#include "code\game\objects\items\devices\floor_painter.dm" +#include "code\game\objects\items\devices\handheld_defib.dm" +#include "code\game\objects\items\devices\instruments.dm" +#include "code\game\objects\items\devices\laserpointer.dm" +#include "code\game\objects\items\devices\lightreplacer.dm" +#include "code\game\objects\items\devices\machineprototype.dm" +#include "code\game\objects\items\devices\megaphone.dm" +#include "code\game\objects\items\devices\multitool.dm" +#include "code\game\objects\items\devices\paicard.dm" +#include "code\game\objects\items\devices\pipe_painter.dm" +#include "code\game\objects\items\devices\pizza_bomb.dm" +#include "code\game\objects\items\devices\powersink.dm" +#include "code\game\objects\items\devices\scanners.dm" +#include "code\game\objects\items\devices\sensor_device.dm" +#include "code\game\objects\items\devices\taperecorder.dm" +#include "code\game\objects\items\devices\thermal_drill.dm" +#include "code\game\objects\items\devices\traitordevices.dm" +#include "code\game\objects\items\devices\transfer_valve.dm" +#include "code\game\objects\items\devices\uplinks.dm" +#include "code\game\objects\items\devices\voice.dm" +#include "code\game\objects\items\devices\whistle.dm" +#include "code\game\objects\items\devices\radio\beacon.dm" +#include "code\game\objects\items\devices\radio\electropack.dm" +#include "code\game\objects\items\devices\radio\encryptionkey.dm" +#include "code\game\objects\items\devices\radio\headset.dm" +#include "code\game\objects\items\devices\radio\intercom.dm" +#include "code\game\objects\items\devices\radio\radio.dm" +#include "code\game\objects\items\mountable_frames\air_alarm.dm" +#include "code\game\objects\items\mountable_frames\apc_frame.dm" +#include "code\game\objects\items\mountable_frames\buttons_switches.dm" +#include "code\game\objects\items\mountable_frames\extinguisher_frame.dm" +#include "code\game\objects\items\mountable_frames\fire_alarm.dm" +#include "code\game\objects\items\mountable_frames\frames.dm" +#include "code\game\objects\items\mountable_frames\intercom.dm" +#include "code\game\objects\items\mountable_frames\lights.dm" +#include "code\game\objects\items\mountable_frames\mountables.dm" +#include "code\game\objects\items\mountable_frames\newscaster_frame.dm" +#include "code\game\objects\items\robot\ai_upgrades.dm" +#include "code\game\objects\items\robot\robot_items.dm" +#include "code\game\objects\items\robot\robot_parts.dm" +#include "code\game\objects\items\robot\robot_upgrades.dm" +#include "code\game\objects\items\stacks\medical.dm" +#include "code\game\objects\items\stacks\nanopaste.dm" +#include "code\game\objects\items\stacks\rods.dm" +#include "code\game\objects\items\stacks\stack.dm" +#include "code\game\objects\items\stacks\stack_recipe.dm" +#include "code\game\objects\items\stacks\telecrystal.dm" +#include "code\game\objects\items\stacks\sheets\glass.dm" +#include "code\game\objects\items\stacks\sheets\leather.dm" +#include "code\game\objects\items\stacks\sheets\light.dm" +#include "code\game\objects\items\stacks\sheets\mineral.dm" +#include "code\game\objects\items\stacks\sheets\sheet_types.dm" +#include "code\game\objects\items\stacks\sheets\sheets.dm" +#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" +#include "code\game\objects\items\stacks\tiles\tile_types.dm" +#include "code\game\objects\items\weapons\AI_modules.dm" +#include "code\game\objects\items\weapons\alien_specific.dm" +#include "code\game\objects\items\weapons\bee_briefcase.dm" +#include "code\game\objects\items\weapons\cards_ids.dm" +#include "code\game\objects\items\weapons\cash.dm" +#include "code\game\objects\items\weapons\caution.dm" +#include "code\game\objects\items\weapons\chrono_eraser.dm" +#include "code\game\objects\items\weapons\cigs.dm" +#include "code\game\objects\items\weapons\clown_items.dm" +#include "code\game\objects\items\weapons\cosmetics.dm" +#include "code\game\objects\items\weapons\courtroom.dm" +#include "code\game\objects\items\weapons\defib.dm" +#include "code\game\objects\items\weapons\dice.dm" +#include "code\game\objects\items\weapons\disks.dm" +#include "code\game\objects\items\weapons\dna_injector.dm" +#include "code\game\objects\items\weapons\dnascrambler.dm" +#include "code\game\objects\items\weapons\explosives.dm" +#include "code\game\objects\items\weapons\extinguisher.dm" +#include "code\game\objects\items\weapons\fireworks.dm" +#include "code\game\objects\items\weapons\flamethrower.dm" +#include "code\game\objects\items\weapons\garrote.dm" +#include "code\game\objects\items\weapons\gift_wrappaper.dm" +#include "code\game\objects\items\weapons\handcuffs.dm" +#include "code\game\objects\items\weapons\highlander_swords.dm" +#include "code\game\objects\items\weapons\holosign.dm" +#include "code\game\objects\items\weapons\holy_weapons.dm" +#include "code\game\objects\items\weapons\kitchen.dm" +#include "code\game\objects\items\weapons\legcuffs.dm" +#include "code\game\objects\items\weapons\lighters.dm" +#include "code\game\objects\items\weapons\manuals.dm" +#include "code\game\objects\items\weapons\misc.dm" +#include "code\game\objects\items\weapons\mop.dm" +#include "code\game\objects\items\weapons\paint.dm" +#include "code\game\objects\items\weapons\paiwire.dm" +#include "code\game\objects\items\weapons\pneumaticCannon.dm" +#include "code\game\objects\items\weapons\powerfist.dm" +#include "code\game\objects\items\weapons\RCD.dm" +#include "code\game\objects\items\weapons\RCL.dm" +#include "code\game\objects\items\weapons\rpd.dm" +#include "code\game\objects\items\weapons\RSF.dm" +#include "code\game\objects\items\weapons\scissors.dm" +#include "code\game\objects\items\weapons\scrolls.dm" +#include "code\game\objects\items\weapons\shards.dm" +#include "code\game\objects\items\weapons\shields.dm" +#include "code\game\objects\items\weapons\signs.dm" +#include "code\game\objects\items\weapons\soap.dm" +#include "code\game\objects\items\weapons\staff.dm" +#include "code\game\objects\items\weapons\stock_parts.dm" +#include "code\game\objects\items\weapons\stunbaton.dm" +#include "code\game\objects\items\weapons\swords_axes_etc.dm" +#include "code\game\objects\items\weapons\tape.dm" +#include "code\game\objects\items\weapons\teleportation.dm" +#include "code\game\objects\items\weapons\teleprod.dm" +#include "code\game\objects\items\weapons\tools.dm" +#include "code\game\objects\items\weapons\twohanded.dm" +#include "code\game\objects\items\weapons\vending_items.dm" +#include "code\game\objects\items\weapons\weaponry.dm" +#include "code\game\objects\items\weapons\whetstone.dm" +#include "code\game\objects\items\weapons\grenades\atmosgrenade.dm" +#include "code\game\objects\items\weapons\grenades\bananade.dm" +#include "code\game\objects\items\weapons\grenades\chem_grenade.dm" +#include "code\game\objects\items\weapons\grenades\clowngrenade.dm" +#include "code\game\objects\items\weapons\grenades\clusterbuster.dm" +#include "code\game\objects\items\weapons\grenades\confetti.dm" +#include "code\game\objects\items\weapons\grenades\custom_grenades.dm" +#include "code\game\objects\items\weapons\grenades\emgrenade.dm" +#include "code\game\objects\items\weapons\grenades\flashbang.dm" +#include "code\game\objects\items\weapons\grenades\frag.dm" +#include "code\game\objects\items\weapons\grenades\ghettobomb.dm" +#include "code\game\objects\items\weapons\grenades\grenade.dm" +#include "code\game\objects\items\weapons\grenades\smokebomb.dm" +#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm" +#include "code\game\objects\items\weapons\grenades\syndieminibomb.dm" +#include "code\game\objects\items\weapons\implants\health.dm" +#include "code\game\objects\items\weapons\implants\implant.dm" +#include "code\game\objects\items\weapons\implants\implant_abductor.dm" +#include "code\game\objects\items\weapons\implants\implant_chem.dm" +#include "code\game\objects\items\weapons\implants\implant_death_alarm.dm" +#include "code\game\objects\items\weapons\implants\implant_explosive.dm" +#include "code\game\objects\items\weapons\implants\implant_freedom.dm" +#include "code\game\objects\items\weapons\implants\implant_krav_maga.dm" +#include "code\game\objects\items\weapons\implants\implant_mindshield.dm" +#include "code\game\objects\items\weapons\implants\implant_misc.dm" +#include "code\game\objects\items\weapons\implants\implant_storage.dm" +#include "code\game\objects\items\weapons\implants\implant_track.dm" +#include "code\game\objects\items\weapons\implants\implant_traitor.dm" +#include "code\game\objects\items\weapons\implants\implantcase.dm" +#include "code\game\objects\items\weapons\implants\implantchair.dm" +#include "code\game\objects\items\weapons\implants\implanter.dm" +#include "code\game\objects\items\weapons\implants\implantpad.dm" +#include "code\game\objects\items\weapons\implants\implantuplink.dm" +#include "code\game\objects\items\weapons\melee\energy.dm" +#include "code\game\objects\items\weapons\melee\misc.dm" +#include "code\game\objects\items\weapons\storage\artistic_toolbox.dm" +#include "code\game\objects\items\weapons\storage\backpack.dm" +#include "code\game\objects\items\weapons\storage\bags.dm" +#include "code\game\objects\items\weapons\storage\belt.dm" +#include "code\game\objects\items\weapons\storage\bible.dm" +#include "code\game\objects\items\weapons\storage\boxes.dm" +#include "code\game\objects\items\weapons\storage\briefcase.dm" +#include "code\game\objects\items\weapons\storage\fancy.dm" +#include "code\game\objects\items\weapons\storage\firstaid.dm" +#include "code\game\objects\items\weapons\storage\internal.dm" +#include "code\game\objects\items\weapons\storage\lockbox.dm" +#include "code\game\objects\items\weapons\storage\secure.dm" +#include "code\game\objects\items\weapons\storage\storage.dm" +#include "code\game\objects\items\weapons\storage\toolbox.dm" +#include "code\game\objects\items\weapons\storage\uplink_kits.dm" +#include "code\game\objects\items\weapons\storage\wallets.dm" +#include "code\game\objects\items\weapons\tanks\jetpack.dm" +#include "code\game\objects\items\weapons\tanks\tank_types.dm" +#include "code\game\objects\items\weapons\tanks\tanks.dm" +#include "code\game\objects\items\weapons\tanks\watertank.dm" +#include "code\game\objects\random\random.dm" +#include "code\game\objects\structures\aliens.dm" +#include "code\game\objects\structures\barsign.dm" +#include "code\game\objects\structures\bedsheet_bin.dm" +#include "code\game\objects\structures\coathanger.dm" +#include "code\game\objects\structures\curtains.dm" +#include "code\game\objects\structures\depot.dm" +#include "code\game\objects\structures\displaycase.dm" +#include "code\game\objects\structures\door_assembly.dm" +#include "code\game\objects\structures\door_assembly_types.dm" +#include "code\game\objects\structures\dresser.dm" +#include "code\game\objects\structures\electricchair.dm" +#include "code\game\objects\structures\engicart.dm" +#include "code\game\objects\structures\extinguisher.dm" +#include "code\game\objects\structures\false_walls.dm" +#include "code\game\objects\structures\flora.dm" +#include "code\game\objects\structures\fluff.dm" +#include "code\game\objects\structures\foodcart.dm" +#include "code\game\objects\structures\girders.dm" +#include "code\game\objects\structures\grille.dm" +#include "code\game\objects\structures\guillotine.dm" +#include "code\game\objects\structures\holosign.dm" +#include "code\game\objects\structures\inflatable.dm" +#include "code\game\objects\structures\janicart.dm" +#include "code\game\objects\structures\kitchen_spike.dm" +#include "code\game\objects\structures\ladders.dm" +#include "code\game\objects\structures\lamarr_cage.dm" +#include "code\game\objects\structures\lattice.dm" +#include "code\game\objects\structures\mineral_doors.dm" +#include "code\game\objects\structures\mirror.dm" +#include "code\game\objects\structures\misc.dm" +#include "code\game\objects\structures\mop_bucket.dm" +#include "code\game\objects\structures\morgue.dm" +#include "code\game\objects\structures\musician.dm" +#include "code\game\objects\structures\noticeboard.dm" +#include "code\game\objects\structures\plasticflaps.dm" +#include "code\game\objects\structures\reflector.dm" +#include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\signs.dm" +#include "code\game\objects\structures\spirit_board.dm" +#include "code\game\objects\structures\statues.dm" +#include "code\game\objects\structures\table_frames.dm" +#include "code\game\objects\structures\tables_racks.dm" +#include "code\game\objects\structures\tank_dispenser.dm" +#include "code\game\objects\structures\target_stake.dm" +#include "code\game\objects\structures\watercloset.dm" +#include "code\game\objects\structures\windoor_assembly.dm" +#include "code\game\objects\structures\window.dm" +#include "code\game\objects\structures\crates_lockers\closets.dm" +#include "code\game\objects\structures\crates_lockers\crates.dm" +#include "code\game\objects\structures\crates_lockers\crittercrate.dm" +#include "code\game\objects\structures\crates_lockers\largecrate.dm" +#include "code\game\objects\structures\crates_lockers\walllocker.dm" +#include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm" +#include "code\game\objects\structures\crates_lockers\closets\coffin.dm" +#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm" +#include "code\game\objects\structures\crates_lockers\closets\fireaxe.dm" +#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" +#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" +#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" +#include "code\game\objects\structures\crates_lockers\closets\malfunction.dm" +#include "code\game\objects\structures\crates_lockers\closets\statue.dm" +#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" +#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\chaplain.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\depot.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\miscjobs.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" +#include "code\game\objects\structures\decor\decor.dm" +#include "code\game\objects\structures\decor\machinery\telecomms.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm" +#include "code\game\objects\structures\transit_tubes\station.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube.dm" +#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" +#include "code\game\turfs\simulated.dm" +#include "code\game\turfs\turf.dm" +#include "code\game\turfs\unsimulated.dm" +#include "code\game\turfs\simulated\floor.dm" +#include "code\game\turfs\simulated\minerals.dm" +#include "code\game\turfs\simulated\river.dm" +#include "code\game\turfs\simulated\shuttle.dm" +#include "code\game\turfs\simulated\walls.dm" +#include "code\game\turfs\simulated\walls_indestructible.dm" +#include "code\game\turfs\simulated\walls_mineral.dm" +#include "code\game\turfs\simulated\walls_misc.dm" +#include "code\game\turfs\simulated\walls_reinforced.dm" +#include "code\game\turfs\simulated\floor\asteroid.dm" +#include "code\game\turfs\simulated\floor\chasm.dm" +#include "code\game\turfs\simulated\floor\fancy_floor.dm" +#include "code\game\turfs\simulated\floor\indestructible.dm" +#include "code\game\turfs\simulated\floor\lava.dm" +#include "code\game\turfs\simulated\floor\light_floor.dm" +#include "code\game\turfs\simulated\floor\mineral.dm" +#include "code\game\turfs\simulated\floor\misc_floor.dm" +#include "code\game\turfs\simulated\floor\plasteel_floor.dm" +#include "code\game\turfs\simulated\floor\plating.dm" +#include "code\game\turfs\space\space.dm" +#include "code\game\turfs\space\transit.dm" +#include "code\game\turfs\unsimulated\beach.dm" +#include "code\game\turfs\unsimulated\floor.dm" +#include "code\game\turfs\unsimulated\walls.dm" +#include "code\game\verbs\ooc.dm" +#include "code\game\verbs\randomtip.dm" +#include "code\game\verbs\suicide.dm" +#include "code\game\verbs\who.dm" +#include "code\js\byjax.dm" +#include "code\js\menus.dm" +#include "code\LINDA\LINDA_fire.dm" +#include "code\LINDA\LINDA_system.dm" +#include "code\LINDA\LINDA_turf_tile.dm" +#include "code\modules\admin\admin.dm" +#include "code\modules\admin\admin_investigate.dm" +#include "code\modules\admin\admin_memo.dm" +#include "code\modules\admin\admin_ranks.dm" +#include "code\modules\admin\admin_verbs.dm" +#include "code\modules\admin\banappearance.dm" +#include "code\modules\admin\banjob.dm" +#include "code\modules\admin\create_mob.dm" +#include "code\modules\admin\create_object.dm" +#include "code\modules\admin\create_poll.dm" +#include "code\modules\admin\create_turf.dm" +#include "code\modules\admin\holder2.dm" +#include "code\modules\admin\ipintel.dm" +#include "code\modules\admin\IsBanned.dm" +#include "code\modules\admin\machine_upgrade.dm" +#include "code\modules\admin\NewBan.dm" +#include "code\modules\admin\player_panel.dm" +#include "code\modules\admin\secrets.dm" +#include "code\modules\admin\sql_notes.dm" +#include "code\modules\admin\stickyban.dm" +#include "code\modules\admin\topic.dm" +#include "code\modules\admin\ToRban.dm" +#include "code\modules\admin\watchlist.dm" +#include "code\modules\admin\DB ban\functions.dm" +#include "code\modules\admin\permissionverbs\permissionedit.dm" +#include "code\modules\admin\tickets\adminticketsverbs.dm" +#include "code\modules\admin\tickets\mentorticketsverbs.dm" +#include "code\modules\admin\verbs\adminhelp.dm" +#include "code\modules\admin\verbs\adminjump.dm" +#include "code\modules\admin\verbs\adminpm.dm" +#include "code\modules\admin\verbs\adminsay.dm" +#include "code\modules\admin\verbs\alt_check.dm" +#include "code\modules\admin\verbs\antag-ooc.dm" +#include "code\modules\admin\verbs\atmosdebug.dm" +#include "code\modules\admin\verbs\BrokenInhands.dm" +#include "code\modules\admin\verbs\cinematic.dm" +#include "code\modules\admin\verbs\custom_event.dm" +#include "code\modules\admin\verbs\deadsay.dm" +#include "code\modules\admin\verbs\debug.dm" +#include "code\modules\admin\verbs\diagnostics.dm" +#include "code\modules\admin\verbs\dice.dm" +#include "code\modules\admin\verbs\freeze.dm" +#include "code\modules\admin\verbs\getlogs.dm" +#include "code\modules\admin\verbs\gimmick_team.dm" +#include "code\modules\admin\verbs\honksquad.dm" +#include "code\modules\admin\verbs\infiltratorteam_syndicate.dm" +#include "code\modules\admin\verbs\map_template_loadverb.dm" +#include "code\modules\admin\verbs\mapping.dm" +#include "code\modules\admin\verbs\massmodvar.dm" +#include "code\modules\admin\verbs\modifyvariables.dm" +#include "code\modules\admin\verbs\one_click_antag.dm" +#include "code\modules\admin\verbs\onlyone.dm" +#include "code\modules\admin\verbs\onlyoneteam.dm" +#include "code\modules\admin\verbs\playsound.dm" +#include "code\modules\admin\verbs\possess.dm" +#include "code\modules\admin\verbs\pray.dm" +#include "code\modules\admin\verbs\randomverbs.dm" +#include "code\modules\admin\verbs\serialization.dm" +#include "code\modules\admin\verbs\space_transitions.dm" +#include "code\modules\admin\verbs\spawnfloorcluwne.dm" +#include "code\modules\admin\verbs\striketeam.dm" +#include "code\modules\admin\verbs\striketeam_syndicate.dm" +#include "code\modules\admin\verbs\ticklag.dm" +#include "code\modules\admin\verbs\toggledebugverbs.dm" +#include "code\modules\admin\verbs\tripAI.dm" +#include "code\modules\admin\verbs\vox_raiders.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" +#include "code\modules\admin\verbs\SDQL2\useful_procs.dm" +#include "code\modules\alarm\alarm.dm" +#include "code\modules\alarm\alarm_handler.dm" +#include "code\modules\alarm\atmosphere_alarm.dm" +#include "code\modules\alarm\burglar_alarm.dm" +#include "code\modules\alarm\camera_alarm.dm" +#include "code\modules\alarm\fire_alarm.dm" +#include "code\modules\alarm\motion_alarm.dm" +#include "code\modules\alarm\power_alarm.dm" +#include "code\modules\antagonists\_common\antag_datum.dm" +#include "code\modules\antagonists\_common\antag_helpers.dm" +#include "code\modules\antagonists\_common\antag_hud.dm" +#include "code\modules\antagonists\_common\antag_spawner.dm" +#include "code\modules\antagonists\_common\antag_team.dm" +#include "code\modules\antagonists\wishgranter\wishgranter.dm" +#include "code\modules\arcade\arcade_base.dm" +#include "code\modules\arcade\arcade_prize.dm" +#include "code\modules\arcade\claw_game.dm" +#include "code\modules\arcade\prize_counter.dm" +#include "code\modules\arcade\prize_datums.dm" +#include "code\modules\arcade\mob_hunt\battle_computer.dm" +#include "code\modules\arcade\mob_hunt\mob_avatar.dm" +#include "code\modules\arcade\mob_hunt\mob_cards.dm" +#include "code\modules\arcade\mob_hunt\mob_datums.dm" +#include "code\modules\arcade\mob_hunt\mob_type_datums.dm" +#include "code\modules\assembly\assembly.dm" +#include "code\modules\assembly\bomb.dm" +#include "code\modules\assembly\health.dm" +#include "code\modules\assembly\helpers.dm" +#include "code\modules\assembly\holder.dm" +#include "code\modules\assembly\igniter.dm" +#include "code\modules\assembly\infrared.dm" +#include "code\modules\assembly\mousetrap.dm" +#include "code\modules\assembly\proximity.dm" +#include "code\modules\assembly\shock_kit.dm" +#include "code\modules\assembly\signaler.dm" +#include "code\modules\assembly\timer.dm" +#include "code\modules\assembly\voice.dm" +#include "code\modules\atmos_automation\console.dm" +#include "code\modules\atmos_automation\statements.dm" +#include "code\modules\atmos_automation\implementation\digital_valves.dm" +#include "code\modules\atmos_automation\implementation\emitters.dm" +#include "code\modules\atmos_automation\implementation\injectors.dm" +#include "code\modules\atmos_automation\implementation\scrubbers.dm" +#include "code\modules\atmos_automation\implementation\sensors.dm" +#include "code\modules\atmos_automation\implementation\vent_pump.dm" +#include "code\modules\awaymissions\corpse.dm" +#include "code\modules\awaymissions\exile.dm" +#include "code\modules\awaymissions\gateway.dm" +#include "code\modules\awaymissions\loot.dm" +#include "code\modules\awaymissions\map_rng.dm" +#include "code\modules\awaymissions\pamphlet.dm" +#include "code\modules\awaymissions\trigger.dm" +#include "code\modules\awaymissions\zlevel.dm" +#include "code\modules\awaymissions\zvis.dm" +#include "code\modules\awaymissions\maploader\dmm_suite.dm" +#include "code\modules\awaymissions\maploader\reader.dm" +#include "code\modules\awaymissions\maploader\writer.dm" +#include "code\modules\awaymissions\mission_code\academy.dm" +#include "code\modules\awaymissions\mission_code\beach.dm" +#include "code\modules\awaymissions\mission_code\blackmarketpackers.dm" +#include "code\modules\awaymissions\mission_code\centcomAway.dm" +#include "code\modules\awaymissions\mission_code\challenge.dm" +#include "code\modules\awaymissions\mission_code\evil_santa.dm" +#include "code\modules\awaymissions\mission_code\spacebattle.dm" +#include "code\modules\awaymissions\mission_code\spacehotel.dm" +#include "code\modules\awaymissions\mission_code\stationCollision.dm" +#include "code\modules\awaymissions\mission_code\UO71-terrorspiders.dm" +#include "code\modules\awaymissions\mission_code\wildwest.dm" +#include "code\modules\awaymissions\mission_code\ghost_role_spawners\golems.dm" +#include "code\modules\awaymissions\mission_code\ghost_role_spawners\oldstation.dm" +#include "code\modules\awaymissions\mission_code\ruins\oldstation.dm" +#include "code\modules\awaymissions\mission_code\ruins\wizardcrash.dm" +#include "code\modules\buildmode\bm_mode.dm" +#include "code\modules\buildmode\buildmode.dm" +#include "code\modules\buildmode\buttons.dm" +#include "code\modules\buildmode\effects\line.dm" +#include "code\modules\buildmode\submodes\advanced.dm" +#include "code\modules\buildmode\submodes\area_edit.dm" +#include "code\modules\buildmode\submodes\atmos.dm" +#include "code\modules\buildmode\submodes\basic.dm" +#include "code\modules\buildmode\submodes\boom.dm" +#include "code\modules\buildmode\submodes\copy.dm" +#include "code\modules\buildmode\submodes\fill.dm" +#include "code\modules\buildmode\submodes\link.dm" +#include "code\modules\buildmode\submodes\mapgen.dm" +#include "code\modules\buildmode\submodes\save.dm" +#include "code\modules\buildmode\submodes\throwing.dm" +#include "code\modules\buildmode\submodes\variable_edit.dm" +#include "code\modules\busy_space\air_traffic.dm" +#include "code\modules\busy_space\loremaster.dm" +#include "code\modules\busy_space\organizations.dm" +#include "code\modules\client\asset_cache.dm" +#include "code\modules\client\client defines.dm" +#include "code\modules\client\client procs.dm" +#include "code\modules\client\message.dm" +#include "code\modules\client\view.dm" +#include "code\modules\client\preference\preferences.dm" +#include "code\modules\client\preference\preferences_mysql.dm" +#include "code\modules\client\preference\preferences_spawnpoints.dm" +#include "code\modules\client\preference\preferences_toggles.dm" +#include "code\modules\client\preference\loadout\gear_tweaks.dm" +#include "code\modules\client\preference\loadout\loadout.dm" +#include "code\modules\client\preference\loadout\loadout_accessories.dm" +#include "code\modules\client\preference\loadout\loadout_cosmetics.dm" +#include "code\modules\client\preference\loadout\loadout_donor.dm" +#include "code\modules\client\preference\loadout\loadout_general.dm" +#include "code\modules\client\preference\loadout\loadout_hat.dm" +#include "code\modules\client\preference\loadout\loadout_racial.dm" +#include "code\modules\client\preference\loadout\loadout_shoes.dm" +#include "code\modules\client\preference\loadout\loadout_suit.dm" +#include "code\modules\client\preference\loadout\loadout_uniform.dm" +#include "code\modules\clothing\chameleon.dm" +#include "code\modules\clothing\clothing.dm" +#include "code\modules\clothing\ears\ears.dm" +#include "code\modules\clothing\glasses\glasses.dm" +#include "code\modules\clothing\glasses\hud.dm" +#include "code\modules\clothing\gloves\boxing.dm" +#include "code\modules\clothing\gloves\color.dm" +#include "code\modules\clothing\gloves\miscellaneous.dm" +#include "code\modules\clothing\gloves\rings.dm" +#include "code\modules\clothing\head\collectable.dm" +#include "code\modules\clothing\head\hardhat.dm" +#include "code\modules\clothing\head\helmet.dm" +#include "code\modules\clothing\head\jobs.dm" +#include "code\modules\clothing\head\misc.dm" +#include "code\modules\clothing\head\misc_special.dm" +#include "code\modules\clothing\head\soft_caps.dm" +#include "code\modules\clothing\masks\boxing.dm" +#include "code\modules\clothing\masks\breath.dm" +#include "code\modules\clothing\masks\gasmask.dm" +#include "code\modules\clothing\masks\miscellaneous.dm" +#include "code\modules\clothing\patreon\glasses.dm" +#include "code\modules\clothing\patreon\hats.dm" +#include "code\modules\clothing\shoes\colour.dm" +#include "code\modules\clothing\shoes\magboots.dm" +#include "code\modules\clothing\shoes\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\alien.dm" +#include "code\modules\clothing\spacesuits\breaches.dm" +#include "code\modules\clothing\spacesuits\chronosuit.dm" +#include "code\modules\clothing\spacesuits\ert.dm" +#include "code\modules\clothing\spacesuits\hardsuit.dm" +#include "code\modules\clothing\spacesuits\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\plasmamen.dm" +#include "code\modules\clothing\spacesuits\syndi.dm" +#include "code\modules\clothing\spacesuits\void.dm" +#include "code\modules\clothing\spacesuits\rig\rig.dm" +#include "code\modules\clothing\spacesuits\rig\rig_armormod.dm" +#include "code\modules\clothing\spacesuits\rig\rig_attackby.dm" +#include "code\modules\clothing\spacesuits\rig\rig_pieces.dm" +#include "code\modules\clothing\spacesuits\rig\rig_verbs.dm" +#include "code\modules\clothing\spacesuits\rig\rig_wiring.dm" +#include "code\modules\clothing\spacesuits\rig\modules\combat.dm" +#include "code\modules\clothing\spacesuits\rig\modules\computer.dm" +#include "code\modules\clothing\spacesuits\rig\modules\modules.dm" +#include "code\modules\clothing\spacesuits\rig\modules\ninja.dm" +#include "code\modules\clothing\spacesuits\rig\modules\utility.dm" +#include "code\modules\clothing\spacesuits\rig\modules\vision.dm" +#include "code\modules\clothing\spacesuits\rig\suits\alien.dm" +#include "code\modules\clothing\spacesuits\rig\suits\combat.dm" +#include "code\modules\clothing\spacesuits\rig\suits\ert_suits.dm" +#include "code\modules\clothing\spacesuits\rig\suits\light.dm" +#include "code\modules\clothing\spacesuits\rig\suits\merc.dm" +#include "code\modules\clothing\spacesuits\rig\suits\station.dm" +#include "code\modules\clothing\suits\alien.dm" +#include "code\modules\clothing\suits\armor.dm" +#include "code\modules\clothing\suits\bio.dm" +#include "code\modules\clothing\suits\hood.dm" +#include "code\modules\clothing\suits\jobs.dm" +#include "code\modules\clothing\suits\labcoat.dm" +#include "code\modules\clothing\suits\miscellaneous.dm" +#include "code\modules\clothing\suits\storage.dm" +#include "code\modules\clothing\suits\utility.dm" +#include "code\modules\clothing\suits\wiz_robe.dm" +#include "code\modules\clothing\under\color.dm" +#include "code\modules\clothing\under\miscellaneous.dm" +#include "code\modules\clothing\under\oldstation_uni.dm" +#include "code\modules\clothing\under\pants.dm" +#include "code\modules\clothing\under\shorts.dm" +#include "code\modules\clothing\under\syndicate.dm" +#include "code\modules\clothing\under\accessories\accessory.dm" +#include "code\modules\clothing\under\accessories\armband.dm" +#include "code\modules\clothing\under\accessories\holster.dm" +#include "code\modules\clothing\under\accessories\storage.dm" +#include "code\modules\clothing\under\jobs\civilian.dm" +#include "code\modules\clothing\under\jobs\engineering.dm" +#include "code\modules\clothing\under\jobs\medsci.dm" +#include "code\modules\clothing\under\jobs\security.dm" +#include "code\modules\countdown\countdown.dm" +#include "code\modules\crafting\craft.dm" +#include "code\modules\crafting\guncrafting.dm" +#include "code\modules\crafting\recipes.dm" +#include "code\modules\customitems\item_defines.dm" +#include "code\modules\customitems\item_spawning.dm" +#include "code\modules\detective_work\detective_work.dm" +#include "code\modules\detective_work\evidence.dm" +#include "code\modules\detective_work\footprints_and_rag.dm" +#include "code\modules\detective_work\scanner.dm" +#include "code\modules\economy\Accounts.dm" +#include "code\modules\economy\Accounts_DB.dm" +#include "code\modules\economy\ATM.dm" +#include "code\modules\economy\Economy.dm" +#include "code\modules\economy\Economy_Events.dm" +#include "code\modules\economy\Economy_Events_Mundane.dm" +#include "code\modules\economy\Economy_TradeDestinations.dm" +#include "code\modules\economy\EFTPOS.dm" +#include "code\modules\economy\Job_Departments.dm" +#include "code\modules\economy\POS.dm" +#include "code\modules\economy\utils.dm" +#include "code\modules\error_handler\error_handler.dm" +#include "code\modules\error_handler\error_viewer.dm" +#include "code\modules\events\abductor.dm" +#include "code\modules\events\alien_infestation.dm" +#include "code\modules\events\anomaly.dm" +#include "code\modules\events\anomaly_bluespace.dm" +#include "code\modules\events\anomaly_flux.dm" +#include "code\modules\events\anomaly_grav.dm" +#include "code\modules\events\anomaly_pyro.dm" +#include "code\modules\events\anomaly_vortex.dm" +#include "code\modules\events\aurora_caelus.dm" +#include "code\modules\events\blob.dm" +#include "code\modules\events\brand_intelligence.dm" +#include "code\modules\events\carp_migration.dm" +#include "code\modules\events\communications_blackout.dm" +#include "code\modules\events\disease_outbreak.dm" +#include "code\modules\events\dust.dm" +#include "code\modules\events\electrical_storm.dm" +#include "code\modules\events\event.dm" +#include "code\modules\events\event_container.dm" +#include "code\modules\events\event_procs.dm" +#include "code\modules\events\false_alarm.dm" +#include "code\modules\events\floorcluwne.dm" +#include "code\modules\events\grid_check.dm" +#include "code\modules\events\headcrabs.dm" +#include "code\modules\events\immovable_rod.dm" +#include "code\modules\events\infestation.dm" +#include "code\modules\events\ion_storm.dm" +#include "code\modules\events\koi_mirgration.dm" +#include "code\modules\events\mass_hallucination.dm" +#include "code\modules\events\meaty_gore.dm" +#include "code\modules\events\meaty_ops.dm" +#include "code\modules\events\meaty_ores.dm" +#include "code\modules\events\meteors.dm" +#include "code\modules\events\money_hacker.dm" +#include "code\modules\events\money_lotto.dm" +#include "code\modules\events\money_spam.dm" +#include "code\modules\events\prison_break.dm" +#include "code\modules\events\radiation_storm.dm" +#include "code\modules\events\rogue_drones.dm" +#include "code\modules\events\sentience.dm" +#include "code\modules\events\slaughterevent.dm" +#include "code\modules\events\spacevine.dm" +#include "code\modules\events\spider_infestation.dm" +#include "code\modules\events\spider_terror.dm" +#include "code\modules\events\spontaneous_appendicitis.dm" +#include "code\modules\events\tear.dm" +#include "code\modules\events\tear_honk.dm" +#include "code\modules\events\traders.dm" +#include "code\modules\events\undead.dm" +#include "code\modules\events\vent_clog.dm" +#include "code\modules\events\wallrot.dm" +#include "code\modules\events\wormholes.dm" +#include "code\modules\events\wizard\ghost.dm" +#include "code\modules\examine\examine.dm" +#include "code\modules\examine\descriptions\atmospherics.dm" +#include "code\modules\examine\descriptions\engineering.dm" +#include "code\modules\examine\descriptions\medical.dm" +#include "code\modules\examine\descriptions\mobs.dm" +#include "code\modules\examine\descriptions\stacks.dm" +#include "code\modules\examine\descriptions\structures.dm" +#include "code\modules\examine\descriptions\turfs.dm" +#include "code\modules\examine\descriptions\weapons.dm" +#include "code\modules\ext_scripts\irc.dm" +#include "code\modules\ext_scripts\python.dm" +#include "code\modules\fancytitle\fancytitle.dm" +#include "code\modules\fish\fish_eggs.dm" +#include "code\modules\fish\fish_items.dm" +#include "code\modules\fish\fish_types.dm" +#include "code\modules\fish\fishtank.dm" +#include "code\modules\flufftext\Dreaming.dm" +#include "code\modules\flufftext\Hallucination.dm" +#include "code\modules\flufftext\TextFilters.dm" +#include "code\modules\food_and_drinks\food.dm" +#include "code\modules\food_and_drinks\drinks\drinks.dm" +#include "code\modules\food_and_drinks\drinks\bottler\bottler.dm" +#include "code\modules\food_and_drinks\drinks\bottler\bottler_recipes.dm" +#include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" +#include "code\modules\food_and_drinks\drinks\drinks\cans.dm" +#include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" +#include "code\modules\food_and_drinks\drinks\drinks\mugs.dm" +#include "code\modules\food_and_drinks\drinks\drinks\shotglass.dm" +#include "code\modules\food_and_drinks\food\condiment.dm" +#include "code\modules\food_and_drinks\food\customizables.dm" +#include "code\modules\food_and_drinks\food\snacks.dm" +#include "code\modules\food_and_drinks\food\foods\baked_goods.dm" +#include "code\modules\food_and_drinks\food\foods\bread.dm" +#include "code\modules\food_and_drinks\food\foods\candy.dm" +#include "code\modules\food_and_drinks\food\foods\desserts.dm" +#include "code\modules\food_and_drinks\food\foods\ethnic.dm" +#include "code\modules\food_and_drinks\food\foods\ingredients.dm" +#include "code\modules\food_and_drinks\food\foods\junkfood.dm" +#include "code\modules\food_and_drinks\food\foods\meat.dm" +#include "code\modules\food_and_drinks\food\foods\misc.dm" +#include "code\modules\food_and_drinks\food\foods\pasta.dm" +#include "code\modules\food_and_drinks\food\foods\pizza.dm" +#include "code\modules\food_and_drinks\food\foods\sandwiches.dm" +#include "code\modules\food_and_drinks\food\foods\seafood.dm" +#include "code\modules\food_and_drinks\food\foods\side_dishes.dm" +#include "code\modules\food_and_drinks\food\foods\soups.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\candy_maker.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\cereal_maker.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\cooker.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\food_grill.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\grill_new.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat_2.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\juicer.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\kitchen_machine.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\oven.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\oven_new.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm" +#include "code\modules\food_and_drinks\recipes\recipes_candy.dm" +#include "code\modules\food_and_drinks\recipes\recipes_grill.dm" +#include "code\modules\food_and_drinks\recipes\recipes_microwave.dm" +#include "code\modules\food_and_drinks\recipes\recipes_oven.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_table.dm" +#include "code\modules\games\52card.dm" +#include "code\modules\games\cards.dm" +#include "code\modules\games\tarot.dm" +#include "code\modules\holiday\christmas.dm" +#include "code\modules\holiday\holiday.dm" +#include "code\modules\hydroponics\biogenerator.dm" +#include "code\modules\hydroponics\fermenting_barrel.dm" +#include "code\modules\hydroponics\gene_modder.dm" +#include "code\modules\hydroponics\grown.dm" +#include "code\modules\hydroponics\growninedible.dm" +#include "code\modules\hydroponics\hydroitemdefines.dm" +#include "code\modules\hydroponics\hydroponics.dm" +#include "code\modules\hydroponics\plant_genes.dm" +#include "code\modules\hydroponics\sample.dm" +#include "code\modules\hydroponics\seed_extractor.dm" +#include "code\modules\hydroponics\seeds.dm" +#include "code\modules\hydroponics\beekeeping\beebox.dm" +#include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" +#include "code\modules\hydroponics\beekeeping\honey_frame.dm" +#include "code\modules\hydroponics\beekeeping\honeycomb.dm" +#include "code\modules\hydroponics\grown\ambrosia.dm" +#include "code\modules\hydroponics\grown\apple.dm" +#include "code\modules\hydroponics\grown\banana.dm" +#include "code\modules\hydroponics\grown\beans.dm" +#include "code\modules\hydroponics\grown\berries.dm" +#include "code\modules\hydroponics\grown\cannabis.dm" +#include "code\modules\hydroponics\grown\cereals.dm" +#include "code\modules\hydroponics\grown\chili.dm" +#include "code\modules\hydroponics\grown\citrus.dm" +#include "code\modules\hydroponics\grown\cocoa_vanilla.dm" +#include "code\modules\hydroponics\grown\corn.dm" +#include "code\modules\hydroponics\grown\eggplant.dm" +#include "code\modules\hydroponics\grown\flowers.dm" +#include "code\modules\hydroponics\grown\grass_carpet.dm" +#include "code\modules\hydroponics\grown\herbals.dm" +#include "code\modules\hydroponics\grown\kudzu.dm" +#include "code\modules\hydroponics\grown\melon.dm" +#include "code\modules\hydroponics\grown\misc.dm" +#include "code\modules\hydroponics\grown\mushrooms.dm" +#include "code\modules\hydroponics\grown\nettle.dm" +#include "code\modules\hydroponics\grown\nymph.dm" +#include "code\modules\hydroponics\grown\onion.dm" +#include "code\modules\hydroponics\grown\peanut.dm" +#include "code\modules\hydroponics\grown\pineapple.dm" +#include "code\modules\hydroponics\grown\potato.dm" +#include "code\modules\hydroponics\grown\pumpkin.dm" +#include "code\modules\hydroponics\grown\random.dm" +#include "code\modules\hydroponics\grown\replicapod.dm" +#include "code\modules\hydroponics\grown\root.dm" +#include "code\modules\hydroponics\grown\tea_coffee.dm" +#include "code\modules\hydroponics\grown\tobacco.dm" +#include "code\modules\hydroponics\grown\tomato.dm" +#include "code\modules\hydroponics\grown\towercap.dm" +#include "code\modules\karma\karma.dm" +#include "code\modules\library\admin.dm" +#include "code\modules\library\codex_gigas.dm" +#include "code\modules\library\lib_items.dm" +#include "code\modules\library\lib_machines.dm" +#include "code\modules\library\lib_readme.dm" +#include "code\modules\library\random_books.dm" +#include "code\modules\library\computers\base.dm" +#include "code\modules\library\computers\checkout.dm" +#include "code\modules\library\computers\public.dm" +#include "code\modules\lighting\__lighting_docs.dm" +#include "code\modules\lighting\lighting_area.dm" +#include "code\modules\lighting\lighting_atom.dm" +#include "code\modules\lighting\lighting_corner.dm" +#include "code\modules\lighting\lighting_object.dm" +#include "code\modules\lighting\lighting_setup.dm" +#include "code\modules\lighting\lighting_source.dm" +#include "code\modules\lighting\lighting_turf.dm" +#include "code\modules\logic\converter.dm" +#include "code\modules\logic\dual_input.dm" +#include "code\modules\logic\logic_base.dm" +#include "code\modules\logic\mono_input.dm" +#include "code\modules\map_fluff\cyberiad.dm" +#include "code\modules\map_fluff\delta.dm" +#include "code\modules\map_fluff\maps.dm" +#include "code\modules\map_fluff\metastation.dm" +#include "code\modules\martial_arts\adminfu.dm" +#include "code\modules\martial_arts\brawling.dm" +#include "code\modules\martial_arts\cqc.dm" +#include "code\modules\martial_arts\krav_maga.dm" +#include "code\modules\martial_arts\martial.dm" +#include "code\modules\martial_arts\mimejutsu.dm" +#include "code\modules\martial_arts\plasma_fist.dm" +#include "code\modules\martial_arts\sleeping_carp.dm" +#include "code\modules\martial_arts\wrestleing.dm" +#include "code\modules\mining\abandonedcrates.dm" +#include "code\modules\mining\coins.dm" +#include "code\modules\mining\equipment_locker.dm" +#include "code\modules\mining\explorer_gear.dm" +#include "code\modules\mining\machine_processing.dm" +#include "code\modules\mining\machine_stacking.dm" +#include "code\modules\mining\machine_unloading.dm" +#include "code\modules\mining\mine_items.dm" +#include "code\modules\mining\minebot.dm" +#include "code\modules\mining\mint.dm" +#include "code\modules\mining\money_bag.dm" +#include "code\modules\mining\ore.dm" +#include "code\modules\mining\satchel_ore_boxdm.dm" +#include "code\modules\mining\shelters.dm" +#include "code\modules\mining\equipment\marker_beacons.dm" +#include "code\modules\mining\equipment\survival_pod.dm" +#include "code\modules\mining\laborcamp\laborshuttle.dm" +#include "code\modules\mining\laborcamp\laborstacker.dm" +#include "code\modules\mining\lavaland\ash_flora.dm" +#include "code\modules\mining\lavaland\necropolis_chests.dm" +#include "code\modules\mining\lavaland\loot\ashdragon_loot.dm" +#include "code\modules\mining\lavaland\loot\bubblegum_loot.dm" +#include "code\modules\mining\lavaland\loot\colossus_loot.dm" +#include "code\modules\mining\lavaland\loot\hierophant_loot.dm" +#include "code\modules\mining\lavaland\loot\legion_loot.dm" +#include "code\modules\mining\lavaland\loot\tendril_loot.dm" +#include "code\modules\mob\abilities.dm" +#include "code\modules\mob\death.dm" +#include "code\modules\mob\emote.dm" +#include "code\modules\mob\hear_say.dm" +#include "code\modules\mob\holder.dm" +#include "code\modules\mob\inventory.dm" +#include "code\modules\mob\language.dm" +#include "code\modules\mob\login.dm" +#include "code\modules\mob\logout.dm" +#include "code\modules\mob\mob.dm" +#include "code\modules\mob\mob_defines.dm" +#include "code\modules\mob\mob_grab.dm" +#include "code\modules\mob\mob_helpers.dm" +#include "code\modules\mob\mob_movement.dm" +#include "code\modules\mob\mob_transformation_simple.dm" +#include "code\modules\mob\say.dm" +#include "code\modules\mob\status_procs.dm" +#include "code\modules\mob\transform_procs.dm" +#include "code\modules\mob\typing_indicator.dm" +#include "code\modules\mob\update_icons.dm" +#include "code\modules\mob\update_status.dm" +#include "code\modules\mob\camera\camera.dm" +#include "code\modules\mob\dead\dead.dm" +#include "code\modules\mob\dead\death.dm" +#include "code\modules\mob\dead\observer\login.dm" +#include "code\modules\mob\dead\observer\logout.dm" +#include "code\modules\mob\dead\observer\observer.dm" +#include "code\modules\mob\dead\observer\say.dm" +#include "code\modules\mob\dead\observer\spells.dm" +#include "code\modules\mob\living\autohiss.dm" +#include "code\modules\mob\living\damage_procs.dm" +#include "code\modules\mob\living\death.dm" +#include "code\modules\mob\living\default_language.dm" +#include "code\modules\mob\living\life.dm" +#include "code\modules\mob\living\living.dm" +#include "code\modules\mob\living\living_defense.dm" +#include "code\modules\mob\living\living_defines.dm" +#include "code\modules\mob\living\login.dm" +#include "code\modules\mob\living\logout.dm" +#include "code\modules\mob\living\say.dm" +#include "code\modules\mob\living\stat_states.dm" +#include "code\modules\mob\living\status_procs.dm" +#include "code\modules\mob\living\update_status.dm" +#include "code\modules\mob\living\carbon\_defines.dm" +#include "code\modules\mob\living\carbon\carbon.dm" +#include "code\modules\mob\living\carbon\carbon_defense.dm" +#include "code\modules\mob\living\carbon\carbon_defines.dm" +#include "code\modules\mob\living\carbon\death.dm" +#include "code\modules\mob\living\carbon\give.dm" +#include "code\modules\mob\living\carbon\life.dm" +#include "code\modules\mob\living\carbon\superheroes.dm" +#include "code\modules\mob\living\carbon\update_icons.dm" +#include "code\modules\mob\living\carbon\update_status.dm" +#include "code\modules\mob\living\carbon\alien\alien.dm" +#include "code\modules\mob\living\carbon\alien\alien_defense.dm" +#include "code\modules\mob\living\carbon\alien\death.dm" +#include "code\modules\mob\living\carbon\alien\life.dm" +#include "code\modules\mob\living\carbon\alien\login.dm" +#include "code\modules\mob\living\carbon\alien\logout.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\emote.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\empress.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\inventory.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\life.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm" +#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm" +#include "code\modules\mob\living\carbon\alien\larva\emote.dm" +#include "code\modules\mob\living\carbon\alien\larva\inventory.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva_defense.dm" +#include "code\modules\mob\living\carbon\alien\larva\life.dm" +#include "code\modules\mob\living\carbon\alien\larva\powers.dm" +#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" +#include "code\modules\mob\living\carbon\alien\special\facehugger.dm" +#include "code\modules\mob\living\carbon\brain\brain.dm" +#include "code\modules\mob\living\carbon\brain\brain_item.dm" +#include "code\modules\mob\living\carbon\brain\death.dm" +#include "code\modules\mob\living\carbon\brain\emote.dm" +#include "code\modules\mob\living\carbon\brain\life.dm" +#include "code\modules\mob\living\carbon\brain\login.dm" +#include "code\modules\mob\living\carbon\brain\MMI.dm" +#include "code\modules\mob\living\carbon\brain\MMI_radio.dm" +#include "code\modules\mob\living\carbon\brain\robotic_brain.dm" +#include "code\modules\mob\living\carbon\brain\say.dm" +#include "code\modules\mob\living\carbon\brain\update_status.dm" +#include "code\modules\mob\living\carbon\human\appearance.dm" +#include "code\modules\mob\living\carbon\human\body_accessories.dm" +#include "code\modules\mob\living\carbon\human\death.dm" +#include "code\modules\mob\living\carbon\human\emote.dm" +#include "code\modules\mob\living\carbon\human\examine.dm" +#include "code\modules\mob\living\carbon\human\human.dm" +#include "code\modules\mob\living\carbon\human\human_damage.dm" +#include "code\modules\mob\living\carbon\human\human_defense.dm" +#include "code\modules\mob\living\carbon\human\human_defines.dm" +#include "code\modules\mob\living\carbon\human\human_movement.dm" +#include "code\modules\mob\living\carbon\human\human_organs.dm" +#include "code\modules\mob\living\carbon\human\inventory.dm" +#include "code\modules\mob\living\carbon\human\life.dm" +#include "code\modules\mob\living\carbon\human\login.dm" +#include "code\modules\mob\living\carbon\human\logout.dm" +#include "code\modules\mob\living\carbon\human\npcs.dm" +#include "code\modules\mob\living\carbon\human\say.dm" +#include "code\modules\mob\living\carbon\human\status_procs.dm" +#include "code\modules\mob\living\carbon\human\update_icons.dm" +#include "code\modules\mob\living\carbon\human\update_stat.dm" +#include "code\modules\mob\living\carbon\human\species\_species.dm" +#include "code\modules\mob\living\carbon\human\species\abductor.dm" +#include "code\modules\mob\living\carbon\human\species\diona.dm" +#include "code\modules\mob\living\carbon\human\species\drask.dm" +#include "code\modules\mob\living\carbon\human\species\golem.dm" +#include "code\modules\mob\living\carbon\human\species\grey.dm" +#include "code\modules\mob\living\carbon\human\species\human.dm" +#include "code\modules\mob\living\carbon\human\species\kidan.dm" +#include "code\modules\mob\living\carbon\human\species\machine.dm" +#include "code\modules\mob\living\carbon\human\species\monkey.dm" +#include "code\modules\mob\living\carbon\human\species\nucleation.dm" +#include "code\modules\mob\living\carbon\human\species\plasmaman.dm" +#include "code\modules\mob\living\carbon\human\species\shadow.dm" +#include "code\modules\mob\living\carbon\human\species\shadowling.dm" +#include "code\modules\mob\living\carbon\human\species\skeleton.dm" +#include "code\modules\mob\living\carbon\human\species\skrell.dm" +#include "code\modules\mob\living\carbon\human\species\slime.dm" +#include "code\modules\mob\living\carbon\human\species\tajaran.dm" +#include "code\modules\mob\living\carbon\human\species\unathi.dm" +#include "code\modules\mob\living\carbon\human\species\vox.dm" +#include "code\modules\mob\living\carbon\human\species\vulpkanin.dm" +#include "code\modules\mob\living\carbon\human\species\wryn.dm" +#include "code\modules\mob\living\carbon\slime\death.dm" +#include "code\modules\mob\living\carbon\slime\emote.dm" +#include "code\modules\mob\living\carbon\slime\examine.dm" +#include "code\modules\mob\living\carbon\slime\life.dm" +#include "code\modules\mob\living\carbon\slime\powers.dm" +#include "code\modules\mob\living\carbon\slime\say.dm" +#include "code\modules\mob\living\carbon\slime\slime.dm" +#include "code\modules\mob\living\carbon\slime\subtypes.dm" +#include "code\modules\mob\living\carbon\slime\update_icons.dm" +#include "code\modules\mob\living\silicon\death.dm" +#include "code\modules\mob\living\silicon\emote.dm" +#include "code\modules\mob\living\silicon\laws.dm" +#include "code\modules\mob\living\silicon\login.dm" +#include "code\modules\mob\living\silicon\say.dm" +#include "code\modules\mob\living\silicon\silicon.dm" +#include "code\modules\mob\living\silicon\silicon_defense.dm" +#include "code\modules\mob\living\silicon\subsystems.dm" +#include "code\modules\mob\living\silicon\ai\ai.dm" +#include "code\modules\mob\living\silicon\ai\ai_defense.dm" +#include "code\modules\mob\living\silicon\ai\death.dm" +#include "code\modules\mob\living\silicon\ai\examine.dm" +#include "code\modules\mob\living\silicon\ai\latejoin.dm" +#include "code\modules\mob\living\silicon\ai\laws.dm" +#include "code\modules\mob\living\silicon\ai\life.dm" +#include "code\modules\mob\living\silicon\ai\login.dm" +#include "code\modules\mob\living\silicon\ai\logout.dm" +#include "code\modules\mob\living\silicon\ai\multicam.dm" +#include "code\modules\mob\living\silicon\ai\say.dm" +#include "code\modules\mob\living\silicon\ai\update_status.dm" +#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" +#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm" +#include "code\modules\mob\living\silicon\ai\freelook\eye.dm" +#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" +#include "code\modules\mob\living\silicon\decoy\death.dm" +#include "code\modules\mob\living\silicon\decoy\decoy.dm" +#include "code\modules\mob\living\silicon\decoy\life.dm" +#include "code\modules\mob\living\silicon\pai\death.dm" +#include "code\modules\mob\living\silicon\pai\life.dm" +#include "code\modules\mob\living\silicon\pai\pai.dm" +#include "code\modules\mob\living\silicon\pai\personality.dm" +#include "code\modules\mob\living\silicon\pai\recruit.dm" +#include "code\modules\mob\living\silicon\pai\say.dm" +#include "code\modules\mob\living\silicon\pai\software.dm" +#include "code\modules\mob\living\silicon\pai\software_modules.dm" +#include "code\modules\mob\living\silicon\pai\update_status.dm" +#include "code\modules\mob\living\silicon\robot\component.dm" +#include "code\modules\mob\living\silicon\robot\death.dm" +#include "code\modules\mob\living\silicon\robot\emote.dm" +#include "code\modules\mob\living\silicon\robot\examine.dm" +#include "code\modules\mob\living\silicon\robot\inventory.dm" +#include "code\modules\mob\living\silicon\robot\laws.dm" +#include "code\modules\mob\living\silicon\robot\life.dm" +#include "code\modules\mob\living\silicon\robot\login.dm" +#include "code\modules\mob\living\silicon\robot\photos.dm" +#include "code\modules\mob\living\silicon\robot\robot.dm" +#include "code\modules\mob\living\silicon\robot\robot_damage.dm" +#include "code\modules\mob\living\silicon\robot\robot_defense.dm" +#include "code\modules\mob\living\silicon\robot\robot_items.dm" +#include "code\modules\mob\living\silicon\robot\robot_module_actions.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules.dm" +#include "code\modules\mob\living\silicon\robot\robot_movement.dm" +#include "code\modules\mob\living\silicon\robot\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\update_status.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm" +#include "code\modules\mob\living\silicon\robot\drone\update_status.dm" +#include "code\modules\mob\living\simple_animal\animal_defense.dm" +#include "code\modules\mob\living\simple_animal\constructs.dm" +#include "code\modules\mob\living\simple_animal\corpse.dm" +#include "code\modules\mob\living\simple_animal\parrot.dm" +#include "code\modules\mob\living\simple_animal\posessed_object.dm" +#include "code\modules\mob\living\simple_animal\powers.dm" +#include "code\modules\mob\living\simple_animal\shade.dm" +#include "code\modules\mob\living\simple_animal\simple_animal.dm" +#include "code\modules\mob\living\simple_animal\spawner.dm" +#include "code\modules\mob\living\simple_animal\tribbles.dm" +#include "code\modules\mob\living\simple_animal\bot\bot.dm" +#include "code\modules\mob\living\simple_animal\bot\cleanbot.dm" +#include "code\modules\mob\living\simple_animal\bot\construction.dm" +#include "code\modules\mob\living\simple_animal\bot\ed209bot.dm" +#include "code\modules\mob\living\simple_animal\bot\emote.dm" +#include "code\modules\mob\living\simple_animal\bot\floorbot.dm" +#include "code\modules\mob\living\simple_animal\bot\griefsky.dm" +#include "code\modules\mob\living\simple_animal\bot\honkbot.dm" +#include "code\modules\mob\living\simple_animal\bot\medbot.dm" +#include "code\modules\mob\living\simple_animal\bot\mulebot.dm" +#include "code\modules\mob\living\simple_animal\bot\secbot.dm" +#include "code\modules\mob\living\simple_animal\bot\syndicate.dm" +#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" +#include "code\modules\mob\living\simple_animal\friendly\cat.dm" +#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" +#include "code\modules\mob\living\simple_animal\friendly\corgi.dm" +#include "code\modules\mob\living\simple_animal\friendly\corgi_powers.dm" +#include "code\modules\mob\living\simple_animal\friendly\crab.dm" +#include "code\modules\mob\living\simple_animal\friendly\deer.dm" +#include "code\modules\mob\living\simple_animal\friendly\diona.dm" +#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" +#include "code\modules\mob\living\simple_animal\friendly\fox.dm" +#include "code\modules\mob\living\simple_animal\friendly\lizard.dm" +#include "code\modules\mob\living\simple_animal\friendly\mouse.dm" +#include "code\modules\mob\living\simple_animal\friendly\penguin.dm" +#include "code\modules\mob\living\simple_animal\friendly\pet.dm" +#include "code\modules\mob\living\simple_animal\friendly\pug.dm" +#include "code\modules\mob\living\simple_animal\friendly\slime.dm" +#include "code\modules\mob\living\simple_animal\friendly\sloth.dm" +#include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm" +#include "code\modules\mob\living\simple_animal\hostile\alien.dm" +#include "code\modules\mob\living\simple_animal\hostile\bat.dm" +#include "code\modules\mob\living\simple_animal\hostile\bear.dm" +#include "code\modules\mob\living\simple_animal\hostile\bees.dm" +#include "code\modules\mob\living\simple_animal\hostile\carp.dm" +#include "code\modules\mob\living\simple_animal\hostile\creature.dm" +#include "code\modules\mob\living\simple_animal\hostile\deathsquid.dm" +#include "code\modules\mob\living\simple_animal\hostile\faithless.dm" +#include "code\modules\mob\living\simple_animal\hostile\feral_cat.dm" +#include "code\modules\mob\living\simple_animal\hostile\floorcluwne.dm" +#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" +#include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" +#include "code\modules\mob\living\simple_animal\hostile\headslug.dm" +#include "code\modules\mob\living\simple_animal\hostile\hellhound.dm" +#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" +#include "code\modules\mob\living\simple_animal\hostile\hostile.dm" +#include "code\modules\mob\living\simple_animal\hostile\illusion.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle_animals.dm" +#include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" +#include "code\modules\mob\living\simple_animal\hostile\mimic.dm" +#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" +#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" +#include "code\modules\mob\living\simple_animal\hostile\russian.dm" +#include "code\modules\mob\living\simple_animal\hostile\spaceworms.dm" +#include "code\modules\mob\living\simple_animal\hostile\statue.dm" +#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" +#include "code\modules\mob\living\simple_animal\hostile\tree.dm" +#include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" +#include "code\modules\mob\living\simple_animal\hostile\winter_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" +#include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining\basilisk.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining\goldgrub.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining\goliath.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining\gutlunch.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining\hivelord.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining\mining.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining\necropolis_tendril.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\fish.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\kangaroo.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\pet.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\undead.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\__defines.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\actions.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\black.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\brown.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\chem.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\empress.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\ghost.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\gray.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\green.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\hive.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\mother.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\prince.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\princess.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\purple.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\queen.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\red.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\reproduction.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_ai.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_spiders.dm" +#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\white.dm" +#include "code\modules\mob\new_player\login.dm" +#include "code\modules\mob\new_player\logout.dm" +#include "code\modules\mob\new_player\new_player.dm" +#include "code\modules\mob\new_player\poll.dm" +#include "code\modules\mob\new_player\preferences_setup.dm" +#include "code\modules\mob\new_player\sprite_accessories\sprite_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\diona\diona_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\drask\drask_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\grey\grey_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\human\human_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\human\human_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\human\human_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_face.dm" +#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\ipc\ipc_optics.dm" +#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\kidan\kidan_head_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\nucleation\nucleation_face.dm" +#include "code\modules\mob\new_player\sprite_accessories\skrell\skrell_face.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_head_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_alt_heads.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\unathi\unathi_head_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vox\vox_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vox\vox_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\vox\vox_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\vox\vox_tail_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_tail_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\wryn\wryn_face.dm" +#include "code\modules\modular_computers\laptop_vendor.dm" +#include "code\modules\modular_computers\computers\item\computer.dm" +#include "code\modules\modular_computers\computers\item\computer_components.dm" +#include "code\modules\modular_computers\computers\item\computer_damage.dm" +#include "code\modules\modular_computers\computers\item\computer_power.dm" +#include "code\modules\modular_computers\computers\item\computer_ui.dm" +#include "code\modules\modular_computers\computers\item\laptop.dm" +#include "code\modules\modular_computers\computers\item\laptop_presets.dm" +#include "code\modules\modular_computers\computers\item\processor.dm" +#include "code\modules\modular_computers\computers\item\tablet.dm" +#include "code\modules\modular_computers\computers\item\tablet_presets.dm" +#include "code\modules\modular_computers\computers\machinery\console_presets.dm" +#include "code\modules\modular_computers\computers\machinery\modular_computer.dm" +#include "code\modules\modular_computers\computers\machinery\modular_console.dm" +#include "code\modules\modular_computers\file_system\computer_file.dm" +#include "code\modules\modular_computers\file_system\data.dm" +#include "code\modules\modular_computers\file_system\program.dm" +#include "code\modules\modular_computers\file_system\program_events.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" +#include "code\modules\modular_computers\file_system\programs\command\card.dm" +#include "code\modules\modular_computers\file_system\programs\command\comms.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\alarm.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\power_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\sm_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\generic\configurator.dm" +#include "code\modules\modular_computers\file_system\programs\generic\file_browser.dm" +#include "code\modules\modular_computers\file_system\programs\generic\ntdownloader.dm" +#include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm" +#include "code\modules\modular_computers\file_system\programs\generic\nttransfer.dm" +#include "code\modules\modular_computers\file_system\programs\research\airestorer.dm" +#include "code\modules\modular_computers\file_system\programs\research\ntmonitor.dm" +#include "code\modules\modular_computers\hardware\_hardware.dm" +#include "code\modules\modular_computers\hardware\ai_slot.dm" +#include "code\modules\modular_computers\hardware\battery_module.dm" +#include "code\modules\modular_computers\hardware\card_slot.dm" +#include "code\modules\modular_computers\hardware\CPU.dm" +#include "code\modules\modular_computers\hardware\hard_drive.dm" +#include "code\modules\modular_computers\hardware\network_card.dm" +#include "code\modules\modular_computers\hardware\portable_disk.dm" +#include "code\modules\modular_computers\hardware\printer.dm" +#include "code\modules\modular_computers\hardware\recharger.dm" +#include "code\modules\modular_computers\NTNet\NTNet.dm" +#include "code\modules\modular_computers\NTNet\NTNet_relay.dm" +#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\nano\nanoexternal.dm" +#include "code\modules\nano\nanomapgen.dm" +#include "code\modules\nano\nanoui.dm" +#include "code\modules\nano\subsystem.dm" +#include "code\modules\nano\interaction\admin.dm" +#include "code\modules\nano\interaction\base.dm" +#include "code\modules\nano\interaction\conscious.dm" +#include "code\modules\nano\interaction\contained.dm" +#include "code\modules\nano\interaction\default.dm" +#include "code\modules\nano\interaction\ghost.dm" +#include "code\modules\nano\interaction\inventory.dm" +#include "code\modules\nano\interaction\inventory_deep.dm" +#include "code\modules\nano\interaction\not_incapacitated.dm" +#include "code\modules\nano\interaction\physical.dm" +#include "code\modules\nano\interaction\self.dm" +#include "code\modules\nano\interaction\zlevel.dm" +#include "code\modules\nano\modules\alarm_monitor.dm" +#include "code\modules\nano\modules\atmos_control.dm" +#include "code\modules\nano\modules\crew_monitor.dm" +#include "code\modules\nano\modules\ert_manager.dm" +#include "code\modules\nano\modules\human_appearance.dm" +#include "code\modules\nano\modules\law_manager.dm" +#include "code\modules\nano\modules\nano_module.dm" +#include "code\modules\nano\modules\power_monitor.dm" +#include "code\modules\ninja\energy_katana.dm" +#include "code\modules\ninja\suit\gloves.dm" +#include "code\modules\ninja\suit\head.dm" +#include "code\modules\ninja\suit\mask.dm" +#include "code\modules\ninja\suit\shoes.dm" +#include "code\modules\ninja\suit\suit.dm" +#include "code\modules\ninja\suit\suit_initialisation.dm" +#include "code\modules\paperwork\carbonpaper.dm" +#include "code\modules\paperwork\clipboard.dm" +#include "code\modules\paperwork\contract.dm" +#include "code\modules\paperwork\fax.dm" +#include "code\modules\paperwork\faxmachine.dm" +#include "code\modules\paperwork\filingcabinet.dm" +#include "code\modules\paperwork\folders.dm" +#include "code\modules\paperwork\frames.dm" +#include "code\modules\paperwork\handlabeler.dm" +#include "code\modules\paperwork\paper.dm" +#include "code\modules\paperwork\paper_bundle.dm" +#include "code\modules\paperwork\paperbin.dm" +#include "code\modules\paperwork\paperplane.dm" +#include "code\modules\paperwork\pen.dm" +#include "code\modules\paperwork\photocopier.dm" +#include "code\modules\paperwork\photography.dm" +#include "code\modules\paperwork\silicon_photography.dm" +#include "code\modules\paperwork\stamps.dm" +#include "code\modules\pda\ai.dm" +#include "code\modules\pda\app.dm" +#include "code\modules\pda\cart.dm" +#include "code\modules\pda\cart_apps.dm" +#include "code\modules\pda\core_apps.dm" +#include "code\modules\pda\messenger.dm" +#include "code\modules\pda\messenger_plugins.dm" +#include "code\modules\pda\mob_hunt_game_app.dm" +#include "code\modules\pda\PDA.dm" +#include "code\modules\pda\pdas.dm" +#include "code\modules\pda\radio.dm" +#include "code\modules\pda\utilities.dm" +#include "code\modules\persistence\persistence.dm" +#include "code\modules\power\apc.dm" +#include "code\modules\power\cable.dm" +#include "code\modules\power\cable_heavyduty.dm" +#include "code\modules\power\cable_logic.dm" +#include "code\modules\power\cell.dm" +#include "code\modules\power\generator.dm" +#include "code\modules\power\gravitygenerator.dm" +#include "code\modules\power\lighting.dm" +#include "code\modules\power\port_gen.dm" +#include "code\modules\power\power.dm" +#include "code\modules\power\powernet.dm" +#include "code\modules\power\smes.dm" +#include "code\modules\power\solar.dm" +#include "code\modules\power\terminal.dm" +#include "code\modules\power\tracker.dm" +#include "code\modules\power\treadmill.dm" +#include "code\modules\power\turbine.dm" +#include "code\modules\power\singularity\collector.dm" +#include "code\modules\power\singularity\containment_field.dm" +#include "code\modules\power\singularity\emitter.dm" +#include "code\modules\power\singularity\field_generator.dm" +#include "code\modules\power\singularity\generator.dm" +#include "code\modules\power\singularity\investigate.dm" +#include "code\modules\power\singularity\narsie.dm" +#include "code\modules\power\singularity\singularity.dm" +#include "code\modules\power\singularity\particle_accelerator\particle.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_chamber.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_power.dm" +#include "code\modules\power\supermatter\supermatter.dm" +#include "code\modules\power\tesla\coil.dm" +#include "code\modules\power\tesla\energy_ball.dm" +#include "code\modules\power\tesla\generator.dm" +#include "code\modules\procedural_mapping\mapGenerator.dm" +#include "code\modules\procedural_mapping\mapGeneratorModule.dm" +#include "code\modules\procedural_mapping\mapGeneratorReadme.dm" +#include "code\modules\procedural_mapping\mapGeneratorModules\helpers.dm" +#include "code\modules\procedural_mapping\mapGeneratorModules\nature.dm" +#include "code\modules\procedural_mapping\mapGenerators\asteroid.dm" +#include "code\modules\procedural_mapping\mapGenerators\nature.dm" +#include "code\modules\procedural_mapping\mapGenerators\syndicate.dm" +#include "code\modules\projectiles\ammunition.dm" +#include "code\modules\projectiles\firing.dm" +#include "code\modules\projectiles\gun.dm" +#include "code\modules\projectiles\gun_attachments.dm" +#include "code\modules\projectiles\projectile.dm" +#include "code\modules\projectiles\ammunition\ammo_casings.dm" +#include "code\modules\projectiles\ammunition\boxes.dm" +#include "code\modules\projectiles\ammunition\energy.dm" +#include "code\modules\projectiles\ammunition\magazines.dm" +#include "code\modules\projectiles\ammunition\special.dm" +#include "code\modules\projectiles\guns\alien.dm" +#include "code\modules\projectiles\guns\dartgun.dm" +#include "code\modules\projectiles\guns\energy.dm" +#include "code\modules\projectiles\guns\grenade_launcher.dm" +#include "code\modules\projectiles\guns\magic.dm" +#include "code\modules\projectiles\guns\medbeam.dm" +#include "code\modules\projectiles\guns\mounted.dm" +#include "code\modules\projectiles\guns\projectile.dm" +#include "code\modules\projectiles\guns\rocket.dm" +#include "code\modules\projectiles\guns\syringe_gun.dm" +#include "code\modules\projectiles\guns\throw.dm" +#include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" +#include "code\modules\projectiles\guns\energy\laser.dm" +#include "code\modules\projectiles\guns\energy\nuclear.dm" +#include "code\modules\projectiles\guns\energy\pulse.dm" +#include "code\modules\projectiles\guns\energy\special.dm" +#include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\energy\telegun.dm" +#include "code\modules\projectiles\guns\magic\staff.dm" +#include "code\modules\projectiles\guns\magic\wand.dm" +#include "code\modules\projectiles\guns\misc\blastcannon.dm" +#include "code\modules\projectiles\guns\projectile\automatic.dm" +#include "code\modules\projectiles\guns\projectile\bow.dm" +#include "code\modules\projectiles\guns\projectile\launchers.dm" +#include "code\modules\projectiles\guns\projectile\pistol.dm" +#include "code\modules\projectiles\guns\projectile\revolver.dm" +#include "code\modules\projectiles\guns\projectile\saw.dm" +#include "code\modules\projectiles\guns\projectile\shotgun.dm" +#include "code\modules\projectiles\guns\projectile\sniper.dm" +#include "code\modules\projectiles\guns\projectile\toy.dm" +#include "code\modules\projectiles\guns\throw\crossbow.dm" +#include "code\modules\projectiles\guns\throw\pielauncher.dm" +#include "code\modules\projectiles\projectile\beams.dm" +#include "code\modules\projectiles\projectile\bullets.dm" +#include "code\modules\projectiles\projectile\energy.dm" +#include "code\modules\projectiles\projectile\force.dm" +#include "code\modules\projectiles\projectile\magic.dm" +#include "code\modules\projectiles\projectile\reusable.dm" +#include "code\modules\projectiles\projectile\special.dm" +#include "code\modules\reagents\chem_splash.dm" +#include "code\modules\reagents\reagent_containers.dm" +#include "code\modules\reagents\reagent_dispenser.dm" +#include "code\modules\reagents\chemistry\colors.dm" +#include "code\modules\reagents\chemistry\holder.dm" +#include "code\modules\reagents\chemistry\readme.dm" +#include "code\modules\reagents\chemistry\reagents.dm" +#include "code\modules\reagents\chemistry\recipes.dm" +#include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm" +#include "code\modules\reagents\chemistry\machinery\chem_heater.dm" +#include "code\modules\reagents\chemistry\machinery\chem_master.dm" +#include "code\modules\reagents\chemistry\machinery\pandemic.dm" +#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" +#include "code\modules\reagents\chemistry\reagents\admin.dm" +#include "code\modules\reagents\chemistry\reagents\alcohol.dm" +#include "code\modules\reagents\chemistry\reagents\blob.dm" +#include "code\modules\reagents\chemistry\reagents\disease.dm" +#include "code\modules\reagents\chemistry\reagents\drink_base.dm" +#include "code\modules\reagents\chemistry\reagents\drink_cold.dm" +#include "code\modules\reagents\chemistry\reagents\drinks.dm" +#include "code\modules\reagents\chemistry\reagents\drugs.dm" +#include "code\modules\reagents\chemistry\reagents\food.dm" +#include "code\modules\reagents\chemistry\reagents\medicine.dm" +#include "code\modules\reagents\chemistry\reagents\misc.dm" +#include "code\modules\reagents\chemistry\reagents\paint.dm" +#include "code\modules\reagents\chemistry\reagents\paradise_pop.dm" +#include "code\modules\reagents\chemistry\reagents\pyrotechnic.dm" +#include "code\modules\reagents\chemistry\reagents\toxins.dm" +#include "code\modules\reagents\chemistry\reagents\water.dm" +#include "code\modules\reagents\chemistry\recipes\drinks.dm" +#include "code\modules\reagents\chemistry\recipes\drugs.dm" +#include "code\modules\reagents\chemistry\recipes\food.dm" +#include "code\modules\reagents\chemistry\recipes\medicine.dm" +#include "code\modules\reagents\chemistry\recipes\others.dm" +#include "code\modules\reagents\chemistry\recipes\pyrotechnics.dm" +#include "code\modules\reagents\chemistry\recipes\slime_extracts.dm" +#include "code\modules\reagents\chemistry\recipes\toxins.dm" +#include "code\modules\reagents\reagent_containers\borghydro.dm" +#include "code\modules\reagents\reagent_containers\bottle.dm" +#include "code\modules\reagents\reagent_containers\dropper.dm" +#include "code\modules\reagents\reagent_containers\glass_containers.dm" +#include "code\modules\reagents\reagent_containers\hypospray.dm" +#include "code\modules\reagents\reagent_containers\iv_bag.dm" +#include "code\modules\reagents\reagent_containers\patch.dm" +#include "code\modules\reagents\reagent_containers\pill.dm" +#include "code\modules\reagents\reagent_containers\spray.dm" +#include "code\modules\reagents\reagent_containers\syringes.dm" +#include "code\modules\recycling\belt-placer.dm" +#include "code\modules\recycling\conveyor2.dm" +#include "code\modules\recycling\disposal-construction.dm" +#include "code\modules\recycling\disposal.dm" +#include "code\modules\recycling\sortingmachinery.dm" +#include "code\modules\research\circuitprinter.dm" +#include "code\modules\research\designs.dm" +#include "code\modules\research\destructive_analyzer.dm" +#include "code\modules\research\experimentor.dm" +#include "code\modules\research\message_server.dm" +#include "code\modules\research\protolathe.dm" +#include "code\modules\research\rd-readme.dm" +#include "code\modules\research\rdconsole.dm" +#include "code\modules\research\rdmachines.dm" +#include "code\modules\research\research.dm" +#include "code\modules\research\server.dm" +#include "code\modules\research\designs\AI_module_designs.dm" +#include "code\modules\research\designs\autolathe_designs.dm" +#include "code\modules\research\designs\biogenerator_designs.dm" +#include "code\modules\research\designs\bluespace_designs.dm" +#include "code\modules\research\designs\comp_board_designs.dm" +#include "code\modules\research\designs\computer_part_designs.dm" +#include "code\modules\research\designs\equipment_designs.dm" +#include "code\modules\research\designs\janitorial_designs.dm" +#include "code\modules\research\designs\machine_designs.dm" +#include "code\modules\research\designs\mecha_designs.dm" +#include "code\modules\research\designs\mechfabricator_designs.dm" +#include "code\modules\research\designs\medical_designs.dm" +#include "code\modules\research\designs\mining_designs.dm" +#include "code\modules\research\designs\misc_designs.dm" +#include "code\modules\research\designs\power_designs.dm" +#include "code\modules\research\designs\smelting_designs.dm" +#include "code\modules\research\designs\spacepod_designs.dm" +#include "code\modules\research\designs\stock_parts_designs.dm" +#include "code\modules\research\designs\telecomms_designs.dm" +#include "code\modules\research\designs\weapon_designs.dm" +#include "code\modules\research\xenobiology\xenobio_camera.dm" +#include "code\modules\research\xenobiology\xenobiology.dm" +#include "code\modules\response_team\ert.dm" +#include "code\modules\response_team\ert_outfits.dm" +#include "code\modules\ruins\ruin_areas.dm" +#include "code\modules\ruins\lavalandruin_code\animal_hospital.dm" +#include "code\modules\ruins\lavalandruin_code\ash_walker_den.dm" +#include "code\modules\ruins\lavalandruin_code\hermit.dm" +#include "code\modules\ruins\lavalandruin_code\seed_vault.dm" +#include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" +#include "code\modules\ruins\objects_and_mobs\gym.dm" +#include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" +#include "code\modules\security_levels\keycard authentication.dm" +#include "code\modules\security_levels\security levels.dm" +#include "code\modules\shuttle\assault_pod.dm" +#include "code\modules\shuttle\emergency.dm" +#include "code\modules\shuttle\ert.dm" +#include "code\modules\shuttle\navigation_computer.dm" +#include "code\modules\shuttle\on_move.dm" +#include "code\modules\shuttle\ripple.dm" +#include "code\modules\shuttle\shuttle.dm" +#include "code\modules\shuttle\shuttle_manipulator.dm" +#include "code\modules\shuttle\shuttle_rotate.dm" +#include "code\modules\shuttle\supply.dm" +#include "code\modules\shuttle\syndicate.dm" +#include "code\modules\shuttle\vox.dm" +#include "code\modules\space_management\heap_space_level.dm" +#include "code\modules\space_management\level_check.dm" +#include "code\modules\space_management\level_traits.dm" +#include "code\modules\space_management\space_chunk.dm" +#include "code\modules\space_management\space_level.dm" +#include "code\modules\space_management\space_transition.dm" +#include "code\modules\space_management\zlevel_manager.dm" +#include "code\modules\spacepods\construction.dm" +#include "code\modules\spacepods\equipment.dm" +#include "code\modules\spacepods\lock_buster.dm" +#include "code\modules\spacepods\parts.dm" +#include "code\modules\spacepods\spacepod.dm" +#include "code\modules\station_goals\bsa.dm" +#include "code\modules\station_goals\dna_vault.dm" +#include "code\modules\station_goals\shield.dm" +#include "code\modules\station_goals\station_goal.dm" +#include "code\modules\store\items.dm" +#include "code\modules\store\store.dm" +#include "code\modules\surgery\bones.dm" +#include "code\modules\surgery\cavity_implant.dm" +#include "code\modules\surgery\dental_implant.dm" +#include "code\modules\surgery\encased.dm" +#include "code\modules\surgery\generic.dm" +#include "code\modules\surgery\helpers.dm" +#include "code\modules\surgery\implant_removal.dm" +#include "code\modules\surgery\limb_augmentation.dm" +#include "code\modules\surgery\limb_reattach.dm" +#include "code\modules\surgery\organs_internal.dm" +#include "code\modules\surgery\other.dm" +#include "code\modules\surgery\plastic_surgery.dm" +#include "code\modules\surgery\remove_embedded_object.dm" +#include "code\modules\surgery\rig_removal.dm" +#include "code\modules\surgery\robotics.dm" +#include "code\modules\surgery\slime.dm" +#include "code\modules\surgery\surgery.dm" +#include "code\modules\surgery\tools.dm" +#include "code\modules\surgery\organs\augments_arms.dm" +#include "code\modules\surgery\organs\augments_eyes.dm" +#include "code\modules\surgery\organs\augments_internal.dm" +#include "code\modules\surgery\organs\autoimplanter.dm" +#include "code\modules\surgery\organs\blood.dm" +#include "code\modules\surgery\organs\body_egg.dm" +#include "code\modules\surgery\organs\ears.dm" +#include "code\modules\surgery\organs\eyes.dm" +#include "code\modules\surgery\organs\heart.dm" +#include "code\modules\surgery\organs\helpers.dm" +#include "code\modules\surgery\organs\kidneys.dm" +#include "code\modules\surgery\organs\liver.dm" +#include "code\modules\surgery\organs\lungs.dm" +#include "code\modules\surgery\organs\mmi_holder.dm" +#include "code\modules\surgery\organs\organ.dm" +#include "code\modules\surgery\organs\organ_external.dm" +#include "code\modules\surgery\organs\organ_icon.dm" +#include "code\modules\surgery\organs\organ_internal.dm" +#include "code\modules\surgery\organs\pain.dm" +#include "code\modules\surgery\organs\parasites.dm" +#include "code\modules\surgery\organs\robolimbs.dm" +#include "code\modules\surgery\organs\skeleton.dm" +#include "code\modules\surgery\organs\vocal_cords.dm" +#include "code\modules\surgery\organs\subtypes\abductor.dm" +#include "code\modules\surgery\organs\subtypes\diona.dm" +#include "code\modules\surgery\organs\subtypes\drask.dm" +#include "code\modules\surgery\organs\subtypes\grey.dm" +#include "code\modules\surgery\organs\subtypes\kidan.dm" +#include "code\modules\surgery\organs\subtypes\machine.dm" +#include "code\modules\surgery\organs\subtypes\nucleation.dm" +#include "code\modules\surgery\organs\subtypes\plasmaman.dm" +#include "code\modules\surgery\organs\subtypes\shadow.dm" +#include "code\modules\surgery\organs\subtypes\skrell.dm" +#include "code\modules\surgery\organs\subtypes\standard.dm" +#include "code\modules\surgery\organs\subtypes\tajaran.dm" +#include "code\modules\surgery\organs\subtypes\unathi.dm" +#include "code\modules\surgery\organs\subtypes\unbreakable.dm" +#include "code\modules\surgery\organs\subtypes\vox.dm" +#include "code\modules\surgery\organs\subtypes\vulpkanin.dm" +#include "code\modules\surgery\organs\subtypes\wryn.dm" +#include "code\modules\surgery\organs\subtypes\xenos.dm" +#include "code\modules\telesci\bscrystal.dm" +#include "code\modules\telesci\gps.dm" +#include "code\modules\telesci\telepad.dm" +#include "code\modules\telesci\telesci_computer.dm" +#include "code\modules\tooltip\tooltip.dm" +#include "code\modules\tram\tram.dm" +#include "code\modules\tram\tram_control_pad.dm" +#include "code\modules\tram\tram_floor.dm" +#include "code\modules\tram\tram_rail.dm" +#include "code\modules\tram\tram_wall.dm" +#include "code\modules\vehicle\ambulance.dm" +#include "code\modules\vehicle\atv.dm" +#include "code\modules\vehicle\janicart.dm" +#include "code\modules\vehicle\motorcycle.dm" +#include "code\modules\vehicle\secway.dm" +#include "code\modules\vehicle\snowmobile.dm" +#include "code\modules\vehicle\speedbike.dm" +#include "code\modules\vehicle\sportscar.dm" +#include "code\modules\vehicle\vehicle.dm" +#include "code\modules\vr\vr_avatar.dm" +#include "code\modules\vr\vr_controller.dm" +#include "code\modules\vr\vr_goggles.dm" +#include "code\modules\vr\vr_outfits.dm" +#include "goon\code\datums\browserOutput.dm" +#include "interface\interface.dm" +#include "interface\skin.dmf" +// END_INCLUDE \ No newline at end of file diff --git a/sound/effects/warble.ogg b/sound/effects/warble.ogg new file mode 100644 index 00000000000..420ae974c83 Binary files /dev/null and b/sound/effects/warble.ogg differ