diff --git a/.editorconfig b/.editorconfig index 471170c449ec..ffa130255107 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,3 +1,5 @@ +root = true + [*] indent_style = tab indent_size = 4 diff --git a/.github/AUTODOC_GUIDE.md b/.github/AUTODOC_GUIDE.md index 0e1bcbb2cfb0..89dff2d50706 100644 --- a/.github/AUTODOC_GUIDE.md +++ b/.github/AUTODOC_GUIDE.md @@ -1,9 +1,8 @@ # dmdoc -[DOCUMENTATION]: https://codedocs.shiptest.net/ -[BYOND]: https://secure.byond.com/ - -[DMDOC]: https://github.com/SpaceManiac/SpacemanDMM/tree/master/src/dmdoc +[documentation]: https://codedocs.shiptest.net/ +[byond]: https://secure.byond.com/ +[dmdoc]: https://github.com/SpaceManiac/SpacemanDMM/tree/master/src/dmdoc [DMDOC] is a documentation generator for DreamMaker, the scripting language of the [BYOND] game engine. It produces simple static HTML files based on @@ -16,6 +15,7 @@ This gives new developers a clickable reference [DOCUMENTATION] they can browse gain understanding of the /tg/code codebase structure and api reference. ## Documenting code on /tg/code + We use block comments to document procs and classes, and we use `///` line comments when documenting individual variables. @@ -25,22 +25,24 @@ We also require that when you touch older code, you must document the functions have touched in the process of updating that code ### Required -A class *must* always be autodocumented, and all public functions *must* be documented -All class level defined variables *must* be documented +A class _must_ always be autodocumented, and all public functions _must_ be documented -Internal functions *should* be documented, but may not be +All class level defined variables _must_ be documented + +Internal functions _should_ be documented, but may not be A public function is any function that a developer might reasonably call while using or interacting with your object. Internal functions are helper functions that your public functions rely on to implement logic - ### Documenting a proc + When documenting a proc, we give a short one line description (as this is shown next to the proc definition in the list of all procs for a type or global namespace), then a longer paragraph which will be shown when the user clicks on the proc to jump to it's definition + ``` /** * Short description of the proc @@ -54,12 +56,14 @@ the proc to jump to it's definition ``` ### Documenting a class + We first give the name of the class as a header, this can be omitted if the name is just going to be the typepath of the class, as dmdoc uses that by default Then we give a short oneline description of the class Finally we give a longer multi paragraph description of the class and it's details + ``` /** * # Classname (Can be omitted if it's just going to be the typepath) @@ -74,13 +78,16 @@ Finally we give a longer multi paragraph description of the class and it's detai ``` ### Documenting a variable + Give a short explanation of what the variable is in the context of the class. + ``` /// Type path of item to go in suit slot var/suit = null ``` ## Module level description of code + Modules are the best way to describe the structure/intent of a package of code where you don't want to be tied to the formal layout of the class structure. @@ -92,7 +99,9 @@ you would like. [Here is a representative example of what you might write](https://codedocs.shiptest.net/code/game/atoms.html) ## Special variables + You can use certain special template variables in DM DOC comments and they will be expanded + ``` [DEFINE_NAME] - Expands to a link to the define definition if documented [/mob] - Expands to a link to the docs for the /mob class diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index ab1842b3bc3b..64a36fb4c17b 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -17,10 +17,14 @@ First things first, we want to make it clear how you can contribute (if you've n ## Getting Started Shiptest doesn't usually have a list of goals and features to add; we instead allow freedom for contributors to suggest and create their ideas for the game. That doesn't mean we aren't determined to squash bugs, which unfortunately pop up a lot due to the deep complexity of the game. Here are some useful starting guides, if you want to contribute or if you want to know what challenges you can tackle with zero knowledge about the game's code structure. + This needs to be updated still + If you want to contribute the first thing you'll need to do is [set up Git](https://wiki.white-sands.space/Setting_up_git) so you can download the source code. After setting it up, optionally navigate your git commandline to the project folder and run the command: 'git config blame.ignoreRevsFile .git-blame-ignore-revs' + + You can of course, as always, ask for help on the discord channels, or the forums, We're just here to have fun and help out, so please don't expect professional support. ## Meet the Team @@ -46,6 +50,7 @@ They also control the general "perspective" of the game - how sprites should gen The Head Mapper controls ships and all variants of shuttles, including their balance and cost. Final decision on whether or not a shuttle is added is at their discretion and cannot be vetoed by anyone other than the Head Coder. ### Maintainer Code of Conduct + Maintainers are expected to maintain the codebase in its entirety. This means that maintainers are in charge of pull requests, issues, and the Git discussion board. Maintainers have say on what will and will not be merged. Maintainers should assign themselves to pull requests that they are claiming and reviewing and should respect when others assign themselves to a pull request and not interfere except in situations where they believe a pull request to be heavily detrimental to the codebase or its playerbase. **Maintainers are not server admins and should not use their rank on the server to perform admin related tasks except where asked to by a Senior Admin or higher.** ## Specifications @@ -53,9 +58,11 @@ Maintainers are expected to maintain the codebase in its entirety. This means th As mentioned before, you are expected to follow these specifications in order to make everyone's lives easier. It'll save both your time and ours, by making sure you don't have to make any changes and we don't have to ask you to. Thank you for reading this section! ### Object Oriented Code + As BYOND's Dream Maker (henceforth "DM") is an object-oriented language, code must be object-oriented when possible in order to be more flexible when adding content to it. If you don't know what "object-oriented" means, we highly recommend you do some light research to grasp the basics. ### All BYOND paths must contain the full path + (i.e. absolute pathing) DM will allow you nest almost any type keyword into a block, such as: @@ -110,24 +117,31 @@ The previous code made compliant: ``` ### No overriding type safety checks + The use of the : operator to override type safety checks is not allowed. You must cast the variable to the proper type. ### Type paths must begin with a / + eg: `/datum/thing`, not `datum/thing` ### Paths must be in snake case + eg: `/obj/handheld_tool`, not `/obj/handheldTool` ### Improve code in any files you touch + If there is legacy code in a file you are modifying it is also your responsibility to bring the old code up to standards. In general this means that if you are expanding upon a proc that has single letter var names, improperly formatted var names, etc you should be modernizing that proc. **This does not mean you have to refactor the entirety of the file, although doing so would be appreciated.** ### Type paths must be lowercase + eg: `/datum/thing/blue`, not `datum/thing/BLUE` or `datum/thing/Blue` ### Datum type paths must began with "datum" + In DM, this is optional, but omitting it makes finding definitions harder. ### Do not use text/string based type paths + It is rarely allowed to put type paths in a text format, as there are no compile errors if the type path no longer exists. Here is an example: ```DM @@ -139,29 +153,37 @@ var/path_type = "/obj/item/baseball_bat" ``` ### Use var/name format when declaring variables + While DM allows other ways of declaring variables, this one should be used for consistency. ### Tabs, not spaces + You must use tabs to indent your code, NOT SPACES. ### No hacky code -Hacky code, such as adding specific checks, is highly discouraged and only allowed when there is ***no*** other option. (Protip: 'I couldn't immediately think of a proper way so thus there must be no other option' is not gonna cut it here! If you can't think of anything else, say that outright and admit that you need help with it. Maintainers exist for exactly that reason.) + +Hacky code, such as adding specific checks, is highly discouraged and only allowed when there is **_no_** other option. (Protip: 'I couldn't immediately think of a proper way so thus there must be no other option' is not gonna cut it here! If you can't think of anything else, say that outright and admit that you need help with it. Maintainers exist for exactly that reason.) You can avoid hacky code by using object-oriented methodologies, such as overriding a function (called "procs" in DM) or sectioning code into functions and then overriding them as required. ### No duplicated code + Copying code from one place to another may be suitable for small, short-time projects, but /tg/station is a long-term project and highly discourages this. Instead you can use object orientation, or simply placing repeated code in a function, to obey this specification easily. ### Document your code + Our codebase uses an interpreter called SpacemanDMM which includes the helpful ability to provide tooltips and inform you of documentation for various procs and vars. You are required to document any code you add so that it is readable and understandable to the maintainers of the codebase and also to other contributors. eg: + ```dm /// This proc causes the object to do a thing to the target mob /obj/proc/do_thing(mob/target) ``` + eg2: + ```dm /* This is a special proc that causes the target mob to instantly gib itself * If the argument recurse_contents is passed a truthy value all mobs inside the contents are also gibbed @@ -176,44 +198,55 @@ eg2: ``` ### Use self-explanatory var names + When adding any new vars to a type, they must be self-explanatory and concise. eg:`var/ticks_to_explosion` instead of `var/tte` ### Asyncronous proc calls + If there is something that must be done via an asyncronous call, it is required that it be done using the INVOKE_ASYNC macro. ### Signal Handlers + If you are registering signal handlers onto a type, the signal handler must have the SIGNAL_HANDLER definition and cannot sleep. If there is code in your signal handler that requires use of the sleep proc you must have your signal hander handle it via an invoke async call. ### Data caching + Types and procs that need to create or load large amounts of data that (should) never change needs to be cached into a static var so that in the event the proc needs to load the data again instead of recreating the data it has a cache that it can pull from, this reduces overhead and memory usage. + ### Startup/Runtime tradeoffs with lists and the "hidden" init proc + First, read the comments in [this BYOND thread](http://www.byond.com/forum/?post=2086980&page=2#comment19776775), starting where the link takes you. There are two key points here: -1) Defining a list in the variable's definition calls a hidden proc - init. If you have to define a list at startup, do so in New() (or preferably Initialize()) and avoid the overhead of a second call (Init() and then New()) +1. Defining a list in the variable's definition calls a hidden proc - init. If you have to define a list at startup, do so in New() (or preferably Initialize()) and avoid the overhead of a second call (Init() and then New()) -2) It also consumes more memory to the point where the list is actually required, even if the object in question may never use it! +2. It also consumes more memory to the point where the list is actually required, even if the object in question may never use it! Remember: although this tradeoff makes sense in many cases, it doesn't cover them all. Think carefully about your addition before deciding if you need to use it. ### Prefer `Initialize()` over `New()` when possible + Our game controller is pretty good at handling long operations and lag, but it can't control what happens when the map is loaded, which calls `New` for all atoms on the map. If you're creating a new atom, use the `Initialize` proc to do what you would normally do in `New`. This cuts down on the number of proc calls needed when the world is loaded. See here for details on `Initialize`: https://github.com/tgstation/tgstation/blob/master/code/game/atoms.dm#L49 While we normally encourage (and in some cases, even require) bringing out of date code up to date when you make unrelated changes near the out of date code, that is not the case for `New` -> `Initialize` conversions. These systems are generally more dependant on parent and children procs so unrelated random conversions of existing things can cause bugs that take months to figure out. ### No magic numbers or strings + This means stuff like having a "mode" variable for an object set to "1" or "2" with no clear indicator of what that means. Make these #defines with a name that more clearly states what it's for. For instance: -````DM + +```DM /datum/proc/do_the_thing(thing_to_do) switch(thing_to_do) if(1) (...) if(2) (...) -```` +``` + There's no indication of what "1" and "2" mean! Instead, you'd do something like this: -````DM + +```DM #define DO_THE_THING_REALLY_HARD 1 #define DO_THE_THING_EFFICIENTLY 2 /datum/proc/do_the_thing(thing_to_do) @@ -222,27 +255,33 @@ There's no indication of what "1" and "2" mean! Instead, you'd do something like (...) if(DO_THE_THING_EFFICIENTLY) (...) -```` +``` + This is clearer and enhances readability of your code! Get used to doing it! ### Control statements + (if, while, for, etc) -* All control statements must not contain code on the same line as the statement (`if (blah) return`) -* All control statements comparing a variable to a number should use the formula of `thing` `operator` `number`, not the reverse (eg: `if (count <= 10)` not `if (10 >= count)`) +- All control statements must not contain code on the same line as the statement (`if (blah) return`) +- All control statements comparing a variable to a number should use the formula of `thing` `operator` `number`, not the reverse (eg: `if (count <= 10)` not `if (10 >= count)`) ### Use early return + Do not enclose a proc in an if-block when returning on a condition is more feasible This is bad: -````DM + +```DM /datum/datum1/proc/proc1() if (thing1) if (!thing2) if (thing3 == 30) do stuff -```` +``` + This is good: -````DM + +```DM /datum/datum1/proc/proc1() if (!thing1) return @@ -251,123 +290,137 @@ This is good: if (thing3 != 30) return do stuff -```` +``` + This prevents nesting levels from getting deeper then they need to be. ### Develop Secure Code -* Player input must always be escaped safely, we recommend you use stripped_input in all cases where you would use input. Essentially, just always treat input from players as inherently malicious and design with that use case in mind +- Player input must always be escaped safely, we recommend you use stripped_input in all cases where you would use input. Essentially, just always treat input from players as inherently malicious and design with that use case in mind -* Calls to the database must be escaped properly - use sanitizeSQL to escape text based database entries from players or admins, and isnum() for number based database entries from players or admins. +- Calls to the database must be escaped properly - use sanitizeSQL to escape text based database entries from players or admins, and isnum() for number based database entries from players or admins. -* All calls to topics must be checked for correctness. Topic href calls can be easily faked by clients, so you should ensure that the call is valid for the state the item is in. Do not rely on the UI code to provide only valid topic calls, because it won't. +- All calls to topics must be checked for correctness. Topic href calls can be easily faked by clients, so you should ensure that the call is valid for the state the item is in. Do not rely on the UI code to provide only valid topic calls, because it won't. -* Information that players could use to metagame (that is, to identify round information and/or antagonist type via information that would not be available to them in character) should be kept as administrator only. +- Information that players could use to metagame (that is, to identify round information and/or antagonist type via information that would not be available to them in character) should be kept as administrator only. -* It is recommended as well you do not expose information about the players - even something as simple as the number of people who have readied up at the start of the round can and has been used to try to identify the round type. +- It is recommended as well you do not expose information about the players - even something as simple as the number of people who have readied up at the start of the round can and has been used to try to identify the round type. -* Where you have code that can cause large-scale modification and *FUN*, make sure you start it out locked behind one of the default admin roles - use common sense to determine which role fits the level of damage a function could do. +- Where you have code that can cause large-scale modification and _FUN_, make sure you start it out locked behind one of the default admin roles - use common sense to determine which role fits the level of damage a function could do. ### Files -* Because runtime errors do not give the full path, try to avoid having files with the same name across folders. -* File names should not be mixed case, or contain spaces or any character that would require escaping in a uri. +- Because runtime errors do not give the full path, try to avoid having files with the same name across folders. -* Files and path accessed and referenced by code above simply being #included should be strictly lowercase to avoid issues on filesystems where case matters. +- File names should not be mixed case, or contain spaces or any character that would require escaping in a uri. + +- Files and path accessed and referenced by code above simply being #included should be strictly lowercase to avoid issues on filesystems where case matters. ### SQL -* Do not use the shorthand sql insert format (where no column names are specified) because it unnecessarily breaks all queries on minor column changes and prevents using these tables for tracking outside related info such as in a connected site/forum. -* All changes to the database's layout(schema) must be specified in the database changelog in SQL, as well as reflected in the schema files +- Do not use the shorthand sql insert format (where no column names are specified) because it unnecessarily breaks all queries on minor column changes and prevents using these tables for tracking outside related info such as in a connected site/forum. + +- All changes to the database's layout(schema) must be specified in the database changelog in SQL, as well as reflected in the schema files -* Any time the schema is changed the `schema_revision` table and `DB_MAJOR_VERSION` or `DB_MINOR_VERSION` defines must be incremented. +- Any time the schema is changed the `schema_revision` table and `DB_MAJOR_VERSION` or `DB_MINOR_VERSION` defines must be incremented. -* Queries must never specify the database, be it in code, or in text files in the repo. +- Queries must never specify the database, be it in code, or in text files in the repo. -* Primary keys are inherently immutable and you must never do anything to change the primary key of a row or entity. This includes preserving auto increment numbers of rows when copying data to a table in a conversion script. No amount of bitching about gaps in ids or out of order ids will save you from this policy. +- Primary keys are inherently immutable and you must never do anything to change the primary key of a row or entity. This includes preserving auto increment numbers of rows when copying data to a table in a conversion script. No amount of bitching about gaps in ids or out of order ids will save you from this policy. ### Mapping Standards -* TGM Format & Map Merge - * All new maps submitted to the repo through a pull request must be in TGM format (unless there is a valid reason present to have it in the default BYOND format.) This is done using the [Map Merge](https://github.com/tgstation/tgstation/wiki/Map-Merger) utility included in the repo to convert the file to TGM format. - * Likewise, you MUST run Map Merge prior to opening your PR when updating existing maps to minimize the change differences (even when using third party mapping programs such as FastDMM.) - * Failure to run Map Merge on a map after using third party mapping programs (such as FastDMM) greatly increases the risk of the map's key dictionary becoming corrupted by future edits after running map merge. Resolving the corruption issue involves rebuilding the map's key dictionary; id est rewriting all the keys contained within the map by reconverting it from BYOND to TGM format - which creates very large differences that ultimately delay the PR process and is extremely likely to cause merge conflicts with other pull requests. -* Variable Editing (Var-edits) - * While var-editing an item within the editor is perfectly fine, it is preferred that when you are changing the base behavior of an item (how it functions) that you make a new subtype of that item within the code, especially if you plan to use the item in multiple locations on the same map, or across multiple maps. This makes it easier to make corrections as needed to all instances of the item at one time as opposed to having to find each instance of it and change them all individually. - * Subtypes only intended to be used on away mission or ruin maps should be contained within an .dm file with a name corresponding to that map within `code\modules\awaymissions` or `code\modules\ruins` respectively. This is so in the event that the map is removed, that subtype will be removed at the same time as well to minimize leftover/unused data within the repo. - * Please attempt to clean out any dirty variables that may be contained within items you alter through var-editing. For example, due to how DM functions, changing the `pixel_x` variable from 23 to 0 will leave a dirty record in the map's code of `pixel_x = 0`. Likewise this can happen when changing an item's icon to something else and then back. This can lead to some issues where an item's icon has changed within the code, but becomes broken on the map due to it still attempting to use the old entry. - * Areas should not be var-edited on a map to change it's name or attributes. All areas of a single type and it's altered instances are considered the same area within the code, and editing their variables on a map can lead to issues with powernets and event subsystems which are difficult to debug. +- TGM Format & Map Merge + + - All new maps submitted to the repo through a pull request must be in TGM format (unless there is a valid reason present to have it in the default BYOND format.) This is done using the [Map Merge](https://github.com/tgstation/tgstation/wiki/Map-Merger) utility included in the repo to convert the file to TGM format. + - Likewise, you MUST run Map Merge prior to opening your PR when updating existing maps to minimize the change differences (even when using third party mapping programs such as FastDMM.) + - Failure to run Map Merge on a map after using third party mapping programs (such as FastDMM) greatly increases the risk of the map's key dictionary becoming corrupted by future edits after running map merge. Resolving the corruption issue involves rebuilding the map's key dictionary; id est rewriting all the keys contained within the map by reconverting it from BYOND to TGM format - which creates very large differences that ultimately delay the PR process and is extremely likely to cause merge conflicts with other pull requests. + +- Variable Editing (Var-edits) + - While var-editing an item within the editor is perfectly fine, it is preferred that when you are changing the base behavior of an item (how it functions) that you make a new subtype of that item within the code, especially if you plan to use the item in multiple locations on the same map, or across multiple maps. This makes it easier to make corrections as needed to all instances of the item at one time as opposed to having to find each instance of it and change them all individually. + - Subtypes only intended to be used on away mission or ruin maps should be contained within an .dm file with a name corresponding to that map within `code\modules\awaymissions` or `code\modules\ruins` respectively. This is so in the event that the map is removed, that subtype will be removed at the same time as well to minimize leftover/unused data within the repo. + - Please attempt to clean out any dirty variables that may be contained within items you alter through var-editing. For example, due to how DM functions, changing the `pixel_x` variable from 23 to 0 will leave a dirty record in the map's code of `pixel_x = 0`. Likewise this can happen when changing an item's icon to something else and then back. This can lead to some issues where an item's icon has changed within the code, but becomes broken on the map due to it still attempting to use the old entry. + - Areas should not be var-edited on a map to change it's name or attributes. All areas of a single type and it's altered instances are considered the same area within the code, and editing their variables on a map can lead to issues with powernets and event subsystems which are difficult to debug. ### User Interfaces -* All new player-facing user interfaces must use TGUI. -* Raw HTML is permitted for admin and debug UIs. -* Documentation for TGUI can be found at: - * [tgui/README.md](../tgui/README.md) - * [tgui/tutorial-and-examples.md](../tgui/docs/tutorial-and-examples.md) + +- All new player-facing user interfaces must use TGUI. +- Raw HTML is permitted for admin and debug UIs. +- Documentation for TGUI can be found at: + - [tgui/README.md](../tgui/README.md) + - [tgui/tutorial-and-examples.md](../tgui/docs/tutorial-and-examples.md) ### Other Notes -* Code should be modular where possible; if you are working on a new addition, then strongly consider putting it in its own file unless it makes sense to put it with similar ones (i.e. a new tool would go in the "tools.dm" file) -* Bloated code may be necessary to add a certain feature, which means there has to be a judgement over whether the feature is worth having or not. You can help make this decision easier by making sure your code is modular. +- Code should be modular where possible; if you are working on a new addition, then strongly consider putting it in its own file unless it makes sense to put it with similar ones (i.e. a new tool would go in the "tools.dm" file) -* You are expected to help maintain the code that you add, meaning that if there is a problem then you are likely to be approached in order to fix any issues, runtimes, or bugs. +- Bloated code may be necessary to add a certain feature, which means there has to be a judgement over whether the feature is worth having or not. You can help make this decision easier by making sure your code is modular. -* Do not divide when you can easily convert it to multiplication. (ie `4/2` should be done as `4*0.5`) +- You are expected to help maintain the code that you add, meaning that if there is a problem then you are likely to be approached in order to fix any issues, runtimes, or bugs. -* If you used regex to replace code during development of your code, post the regex in your PR for the benefit of future developers and downstream users. +- Do not divide when you can easily convert it to multiplication. (ie `4/2` should be done as `4*0.5`) -* Changes to the `/config` tree must be made in a way that allows for updating server deployments while preserving previous behaviour. This is due to the fact that the config tree is to be considered owned by the user and not necessarily updated alongside the remainder of the code. The code to preserve previous behaviour may be removed at some point in the future given the OK by maintainers. +- If you used regex to replace code during development of your code, post the regex in your PR for the benefit of future developers and downstream users. -* The dlls section of tgs3.json is not designed for dlls that are purely `call()()`ed since those handles are closed between world reboots. Only put in dlls that may have to exist between world reboots. +- Changes to the `/config` tree must be made in a way that allows for updating server deployments while preserving previous behaviour. This is due to the fact that the config tree is to be considered owned by the user and not necessarily updated alongside the remainder of the code. The code to preserve previous behaviour may be removed at some point in the future given the OK by maintainers. + +- The dlls section of tgs3.json is not designed for dlls that are purely `call()()`ed since those handles are closed between world reboots. Only put in dlls that may have to exist between world reboots. #### Enforced not enforced + The following coding styles are not only not enforced at all, but are generally frowned upon to change for little to no reason: -* English/British spelling on var/proc names - * Color/Colour - both are fine, but keep in mind that BYOND uses `color` as a base variable -* Spaces after control statements - * `if()` and `if ()` - nobody cares! +- English/British spelling on var/proc names + - Color/Colour - both are fine, but keep in mind that BYOND uses `color` as a base variable +- Spaces after control statements + - `if()` and `if ()` - nobody cares! ### Operators + #### Spacing -* Operators that should be separated by spaces - * Boolean and logic operators like &&, || <, >, ==, etc (but not !) - * Bitwise AND & - * Argument separator operators like , (and ; when used in a forloop) - * Assignment operators like = or += or the like -* Operators that should not be separated by spaces - * Bitwise OR | - * Access operators like . and : - * Parentheses () - * logical not ! +- Operators that should be separated by spaces + - Boolean and logic operators like &&, || <, >, ==, etc (but not !) + - Bitwise AND & + - Argument separator operators like , (and ; when used in a forloop) + - Assignment operators like = or += or the like +- Operators that should not be separated by spaces + - Bitwise OR | + - Access operators like . and : + - Parentheses () + - logical not ! -Math operators like +, -, /, *, etc are up in the air, just choose which version looks more readable. +Math operators like +, -, /, \*, etc are up in the air, just choose which version looks more readable. #### Use -* Bitwise AND - '&' - * Should be written as ```bitfield & bitflag``` NEVER ```bitflag & bitfield```, both are valid, but the latter is confusing and nonstandard. -* Associated lists declarations must have their key value quoted if it's a string - * WRONG: list(a = "b") - * RIGHT: list("a" = "b") + +- Bitwise AND - '&' + - Should be written as `bitfield & bitflag` NEVER `bitflag & bitfield`, both are valid, but the latter is confusing and nonstandard. +- Associated lists declarations must have their key value quoted if it's a string + - WRONG: list(a = "b") + - RIGHT: list("a" = "b") ### Dream Maker Quirks/Tricks + Like all languages, Dream Maker has its quirks, some of them are beneficial to us, like these #### In-To for-loops -```for(var/i = 1, i <= some_value, i++)``` is a fairly standard way to write an incremental for loop in most languages (especially those in the C family), but DM's ```for(var/i in 1 to some_value)``` syntax is oddly faster than its implementation of the former syntax; where possible, it's advised to use DM's syntax. (Note, the ```to``` keyword is inclusive, so it automatically defaults to replacing ```<=```; if you want ```<``` then you should write it as ```1 to some_value-1```). -HOWEVER, if either ```some_value``` or ```i``` changes within the body of the for (underneath the ```for(...)``` header) or if you are looping over a list AND changing the length of the list then you can NOT use this type of for-loop! +`for(var/i = 1, i <= some_value, i++)` is a fairly standard way to write an incremental for loop in most languages (especially those in the C family), but DM's `for(var/i in 1 to some_value)` syntax is oddly faster than its implementation of the former syntax; where possible, it's advised to use DM's syntax. (Note, the `to` keyword is inclusive, so it automatically defaults to replacing `<=`; if you want `<` then you should write it as `1 to some_value-1`). + +HOWEVER, if either `some_value` or `i` changes within the body of the for (underneath the `for(...)` header) or if you are looping over a list AND changing the length of the list then you can NOT use this type of for-loop! ### for(var/A in list) VS for(var/i in 1 to list.len) + The former is faster than the latter, as shown by the following profile results: https://file.house/zy7H.png Code used for the test in a readable format: https://pastebin.com/w50uERkG - #### Istypeless for loops + A name for a differing syntax for writing for-each style loops in DM. It's NOT DM's standard syntax, hence why this is considered a quirk. Take a look at this: + ```DM var/list/bag_of_items = list(sword, apple, coinpouch, sword, sword) var/obj/item/sword/best_sword @@ -375,7 +428,9 @@ for(var/obj/item/sword/S in bag_of_items) if(!best_sword || S.damage > best_sword.damage) best_sword = S ``` -The above is a simple proc for checking all swords in a container and returning the one with the highest damage, and it uses DM's standard syntax for a for-loop by specifying a type in the variable of the for's header that DM interprets as a type to filter by. It performs this filter using ```istype()``` (or some internal-magic similar to ```istype()``` - this is BYOND, after all). This is fine in its current state for ```bag_of_items```, but if ```bag_of_items``` contained ONLY swords, or only SUBTYPES of swords, then the above is inefficient. For example: + +The above is a simple proc for checking all swords in a container and returning the one with the highest damage, and it uses DM's standard syntax for a for-loop by specifying a type in the variable of the for's header that DM interprets as a type to filter by. It performs this filter using `istype()` (or some internal-magic similar to `istype()` - this is BYOND, after all). This is fine in its current state for `bag_of_items`, but if `bag_of_items` contained ONLY swords, or only SUBTYPES of swords, then the above is inefficient. For example: + ```DM var/list/bag_of_swords = list(sword, sword, sword, sword) var/obj/item/sword/best_sword @@ -383,10 +438,12 @@ for(var/obj/item/sword/S in bag_of_swords) if(!best_sword || S.damage > best_sword.damage) best_sword = S ``` + specifies a type for DM to filter by. With the previous example that's perfectly fine, we only want swords, but here the bag only contains swords? Is DM still going to try to filter because we gave it a type to filter by? YES, and here comes the inefficiency. Wherever a list (or other container, such as an atom (in which case you're technically accessing their special contents list, but that's irrelevant)) contains datums of the same datatype or subtypes of the datatype you require for your loop's body, -you can circumvent DM's filtering and automatic ```istype()``` checks by writing the loop as such: +you can circumvent DM's filtering and automatic `istype()` checks by writing the loop as such: + ```DM var/list/bag_of_swords = list(sword, sword, sword, sword) var/obj/item/sword/best_sword @@ -395,18 +452,22 @@ for(var/s in bag_of_swords) if(!best_sword || S.damage > best_sword.damage) best_sword = S ``` + Of course, if the list contains data of a mixed type then the above optimisation is DANGEROUS, as it will blindly typecast all data in the list as the specified type, even if it isn't really that type, causing runtime errors. #### Dot variable -Like other languages in the C family, DM has a ```.``` or "Dot" operator, used for accessing variables/members/functions of an object instance. + +Like other languages in the C family, DM has a `.` or "Dot" operator, used for accessing variables/members/functions of an object instance. eg: + ```DM var/mob/living/carbon/human/H = YOU_THE_READER H.gib() ``` -However, DM also has a dot variable, accessed just as ```.``` on its own, defaulting to a value of null. Now, what's special about the dot operator is that it is automatically returned (as in the ```return``` statement) at the end of a proc, provided the proc does not already manually return (```return count``` for example.) Why is this special? -With ```.``` being everpresent in every proc, can we use it as a temporary variable? Of course we can! However, the ```.``` operator cannot replace a typecasted variable - it can hold data any other var in DM can, it just can't be accessed as one, although the ```.``` operator is compatible with a few operators that look weird but work perfectly fine, such as: ```.++``` for incrementing ```.'s``` value, or ```.[1]``` for accessing the first element of ```.```, provided that it's a list. +However, DM also has a dot variable, accessed just as `.` on its own, defaulting to a value of null. Now, what's special about the dot operator is that it is automatically returned (as in the `return` statement) at the end of a proc, provided the proc does not already manually return (`return count` for example.) Why is this special? + +With `.` being everpresent in every proc, can we use it as a temporary variable? Of course we can! However, the `.` operator cannot replace a typecasted variable - it can hold data any other var in DM can, it just can't be accessed as one, although the `.` operator is compatible with a few operators that look weird but work perfectly fine, such as: `.++` for incrementing `.'s` value, or `.[1]` for accessing the first element of `.`, provided that it's a list. ## Globals versus static @@ -418,6 +479,7 @@ mob global thing = TRUE ``` + This does NOT mean that you can access it everywhere like a global var. Instead, it means that that var will only exist once for all instances of its type, in this case that var will only exist once for all mobs - it's shared across everything in its type. (Much more like the keyword `static` in other languages like PHP/C++/C#/Java) Isn't that confusing? @@ -428,27 +490,27 @@ There is also an undocumented keyword called `static` that has the same behaviou There is no strict process when it comes to merging pull requests. Pull requests will sometimes take a while before they are looked at by a maintainer; the bigger the change, the more time it will take before they are accepted into the code. Every team member is a volunteer who is giving up their own time to help maintain and contribute, so please be courteous and respectful. Here are some helpful ways to make it easier for you and for the maintainers when making a pull request. -* Make sure your pull request complies to the requirements outlined here +- Make sure your pull request complies to the requirements outlined here -* You are going to be expected to document all your changes in the pull request. Failing to do so will mean delaying it as we will have to question why you made the change. On the other hand, you can speed up the process by making the pull request readable and easy to understand, with diagrams or before/after data. +- You are going to be expected to document all your changes in the pull request. Failing to do so will mean delaying it as we will have to question why you made the change. On the other hand, you can speed up the process by making the pull request readable and easy to understand, with diagrams or before/after data. -* We ask that you use the changelog system to document your change, which prevents our players from being caught unaware by changes. +- We ask that you use the changelog system to document your change, which prevents our players from being caught unaware by changes. -* If you are proposing multiple changes, which change many different aspects of the code, you are expected to section them off into different pull requests in order to make it easier to review them and to deny/accept the changes that are deemed acceptable. (This is called atomization, if someone asks you to do it.) +- If you are proposing multiple changes, which change many different aspects of the code, you are expected to section them off into different pull requests in order to make it easier to review them and to deny/accept the changes that are deemed acceptable. (This is called atomization, if someone asks you to do it.) -* If your pull request rebalances something or adds a large new feature, it may be put up to vote. This vote will usually end 24 hours after it is announced. If the vote passes, the code has not been substantially changed since the vote began, and no maintainers have any pending requested changes, the pull request will likely be merged. If a maintainer deems it so, a controversial tag will be added to the PR, which then requires all votes to require a ratio of 1:2 of likes to dislikes to pass (subject to the topic of the PR), and the vote will go on for at least double the normal time. +- If your pull request rebalances something or adds a large new feature, it may be put up to vote. This vote will usually end 24 hours after it is announced. If the vote passes, the code has not been substantially changed since the vote began, and no maintainers have any pending requested changes, the pull request will likely be merged. If a maintainer deems it so, a controversial tag will be added to the PR, which then requires all votes to require a ratio of 1:2 of likes to dislikes to pass (subject to the topic of the PR), and the vote will go on for at least double the normal time. -* Reverts of major features must be done three to four weeks (at minimum) after the PR that added it, unless said feature has a server-affecting exploit or error. Reverts of smaller features and rebalances must be done at minimum one week after. +- Reverts of major features must be done three to four weeks (at minimum) after the PR that added it, unless said feature has a server-affecting exploit or error. Reverts of smaller features and rebalances must be done at minimum one week after. -* Pull requests that are made as alternatives with few changes will be closed by maintainers. Use suggestions on the original pull request instead. +- Pull requests that are made as alternatives with few changes will be closed by maintainers. Use suggestions on the original pull request instead. -* If your pull request is accepted, the code you add no longer belongs exclusively to you but to everyone; everyone is free to work on it, but you are also free to support or object to any changes being made, which will likely hold more weight, as you're the one who added the feature. It is a shame this has to be explicitly said, but there have been cases where this would've saved some trouble. +- If your pull request is accepted, the code you add no longer belongs exclusively to you but to everyone; everyone is free to work on it, but you are also free to support or object to any changes being made, which will likely hold more weight, as you're the one who added the feature. It is a shame this has to be explicitly said, but there have been cases where this would've saved some trouble. -* Please explain why you are submitting the pull request, and how you think your change will be beneficial to the game. Failure to do so will be grounds for rejecting the PR. +- Please explain why you are submitting the pull request, and how you think your change will be beneficial to the game. Failure to do so will be grounds for rejecting the PR. -* If your pull request is not finished make sure it is at least testable in a live environment, or at the very least mark it as a draft. Pull requests that do not at least meet this requirement will be closed. You may request a maintainer reopen the pull request when you're ready, or make a new one. +- If your pull request is not finished make sure it is at least testable in a live environment, or at the very least mark it as a draft. Pull requests that do not at least meet this requirement will be closed. You may request a maintainer reopen the pull request when you're ready, or make a new one. -* While we have no issue helping contributors (and especially new contributors) bring reasonably sized contributions up to standards via the pull request review process, larger contributions are expected to pass a higher bar of completeness and code quality *before* you open a pull request. Maintainers may close such pull requests that are deemed to be substantially flawed. You should take some time to discuss with maintainers or other contributors on how to improve the changes. +- While we have no issue helping contributors (and especially new contributors) bring reasonably sized contributions up to standards via the pull request review process, larger contributions are expected to pass a higher bar of completeness and code quality _before_ you open a pull request. Maintainers may close such pull requests that are deemed to be substantially flawed. You should take some time to discuss with maintainers or other contributors on how to improve the changes. ## Porting features/sprites/sounds/tools from other codebases @@ -457,13 +519,16 @@ If you are porting features/tools from other codebases, you must give the origin Regarding sprites & sounds, you must credit the artist and possibly the codebase. All /tg/station assets including icons and sound are under a [Creative Commons 3.0 BY-SA license](https://creativecommons.org/licenses/by-sa/3.0/) unless otherwise indicated. However if you are porting assets from GoonStation or usually any assets under the [Creative Commons 3.0 BY-NC-SA license](https://creativecommons.org/licenses/by-nc-sa/3.0/) are to go into the 'goon' folder of the /tg/station codebase. ## Banned content + Do not add any of the following in a Pull Request or risk getting the PR closed: -* National Socialist Party of Germany content, National Socialist Party of Germany related content, or National Socialist Party of Germany references -* Code where one line of code is split across mutiple lines (except for multiple, separate strings and comments; in those cases, existing longer lines must not be split up) -* Code adding, removing, or updating the availability of alien races/species/human mutants without prior approval. Pull requests attempting to add or remove features from said races/species/mutants require prior approval as well. -* Code which violates GitHub's [terms of service](https://github.com/site/terms). + +- National Socialist Party of Germany content, National Socialist Party of Germany related content, or National Socialist Party of Germany references +- Code where one line of code is split across mutiple lines (except for multiple, separate strings and comments; in those cases, existing longer lines must not be split up) +- Code adding, removing, or updating the availability of alien races/species/human mutants without prior approval. Pull requests attempting to add or remove features from said races/species/mutants require prior approval as well. +- Code which violates GitHub's [terms of service](https://github.com/site/terms). Just because something isn't on this list doesn't mean that it's acceptable. Use common sense above all else. ## Line Endings -All newly created, uploaded, or modified files in this codebase are required to be using the Unix Schema for line endings. That means the only acceptable line ending is '__\n__', not '__\r\n__' nor '__\r\r__' + +All newly created, uploaded, or modified files in this codebase are required to be using the Unix Schema for line endings. That means the only acceptable line ending is '**\n**', not '**\r\n**' nor '**\r\r**' diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index a5c9737e8f89..51ac5900a69b 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -3,7 +3,7 @@ github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: shiptest_ss13 open_collective: # Replace with a single Open Collective username -ko_fi: # +ko_fi: # tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index fbcbb15ede0d..09fb3498042e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -3,11 +3,11 @@ name: Bug report about: Create a report to help reproduce and fix an issue title: "[BUG]" labels: Bug -assignees: '' - +assignees: "" --- + ## Round ID: + ## Name of feature: + ### Related Pull Request on other codebase: + ### Additional Info: + diff --git a/.github/MAPS_AND_AWAY_MISSIONS.md b/.github/MAPS_AND_AWAY_MISSIONS.md index d1f7d94f7021..5e437d293d2a 100644 --- a/.github/MAPS_AND_AWAY_MISSIONS.md +++ b/.github/MAPS_AND_AWAY_MISSIONS.md @@ -1,8 +1,8 @@ # MAPS -All maps have their own code file that is in the base of the _maps directory. Maps are loaded dynamically when the game starts. Follow this guideline when adding your own map, to your fork, for easy compatibility. +All maps have their own code file that is in the base of the \_maps directory. Maps are loaded dynamically when the game starts. Follow this guideline when adding your own map, to your fork, for easy compatibility. -The map that will be loaded for the upcoming round is determined by reading data/next_map.json, which is a copy of the json files found in the _maps tree. If this file does not exist, the default map from config/maps.txt will be loaded. Failing that, BoxStation will be loaded. If you want to set a specific map to load next round you can use the Change Map verb in game before restarting the server or copy a json from _maps to data/next_map.json before starting the server. Also, for debugging purposes, ticking a corresponding map's code file in Dream Maker will force that map to load every round. +The map that will be loaded for the upcoming round is determined by reading data/next_map.json, which is a copy of the json files found in the \_maps tree. If this file does not exist, the default map from config/maps.txt will be loaded. Failing that, BoxStation will be loaded. If you want to set a specific map to load next round you can use the Change Map verb in game before restarting the server or copy a json from \_maps to data/next_map.json before starting the server. Also, for debugging purposes, ticking a corresponding map's code file in Dream Maker will force that map to load every round. If you are hosting a server, and want randomly picked maps to be played each round, you can enable map rotation in [config.txt](config/config.txt) and then set the maps to be picked in the [maps.txt](config/maps.txt) file. diff --git a/.github/POLICYCONFIG.md b/.github/POLICYCONFIG.md index 0e5e46260baf..f0745f4f2a12 100644 --- a/.github/POLICYCONFIG.md +++ b/.github/POLICYCONFIG.md @@ -3,9 +3,11 @@ Welcome to this short guide to the POLICY config mechanism. You are probably reading this guide because you have been informed your antagonist or ghost role needs to support policy configuration. ## Requirements + It is a requirement of /tg/station development that all ghost roles, antags, minor antags and event mobs of any kind must support the policy system when implemented. ## What is policy configuration + Policy configuration is a json file that the administrators of a server can edit, which contains a dictionary of keywords -> string message. The policy text for a specific keyword should be displayed when relevant and appropriate, to allow server administrators to define the broad strokes of policy for some feature or mob. @@ -25,10 +27,13 @@ This will return a configured string of text, or blank/null if no policy string This is also accessible to the user if they use `/client/verb/policy()` which will display to them a list of all the policy texts for keywords applicable to the mob, you can add/modify the list of keywords by modifying the `get_policy_keywords()` proc of a mob type where that is relevant. ### Example + Here is a simple example taken from the slime pyroclastic event + ``` var/policy = get_policy(ROLE_PYROCLASTIC_SLIME) if (policy) to_chat(S, policy) ``` + It's recommended to use a define for your policy keyword to make it easily changeable by a developer diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index f204eb0a7236..d8e1a4830773 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -10,6 +10,7 @@ ## Changelog + :cl: add: Added new things add: Added more things diff --git a/.github/RUNNING_A_SERVER.md b/.github/RUNNING_A_SERVER.md index bdcd00556fa9..1d0d7f248f4e 100644 --- a/.github/RUNNING_A_SERVER.md +++ b/.github/RUNNING_A_SERVER.md @@ -1,4 +1,5 @@ # INSTALLATION + First-time installation should be fairly straightforward. First, you'll need BYOND installed. You can get it from https://www.byond.com/download. Once you've done that, extract the game files to wherever you want to keep them. This is a @@ -56,7 +57,7 @@ as these store your server configuration, player preferences and banlist. Then, extract the new files (preferably into a clean directory, but updating in place should work fine), copy your /config and /data folders back into the new install, overwriting when prompted except if we've specified otherwise, and -recompile the game. Once you start the server up again, you should be running +recompile the game. Once you start the server up again, you should be running the new version. ## HOSTING @@ -67,7 +68,7 @@ https://github.com/tgstation/tgstation-server ## SQL SETUP -The SQL backend requires a Mariadb server running 10.2 or later. Mysql is not supported but Mariadb is a drop in replacement for mysql. SQL is required for the library, stats tracking, admin notes, and job-only bans, among other features, mostly related to server administration. Your server details go in /config/dbconfig.txt, and the SQL schema is in /SQL/tgstation_schema.sql and /SQL/tgstation_schema_prefix.sql depending on if you want table prefixes. More detailed setup instructions are located here: https://wiki.white-sands.space/Downloading_the_source_code#Setting_up_the_database +The SQL backend requires a Mariadb server running 10.2 or later. Mysql is not supported but Mariadb is a drop in replacement for mysql. SQL is required for the library, stats tracking, admin notes, and job-only bans, among other features, mostly related to server administration. Your server details go in /config/dbconfig.txt, and the SQL schema is in /SQL/tgstation_schema.sql and /SQL/tgstation_schema_prefix.sql depending on if you want table prefixes. More detailed setup instructions are located here: https://wiki.white-sands.space/Downloading_the_source_code#Setting_up_the_database If you are hosting a testing server on windows you can use a standalone version of MariaDB pre load with a blank (but initialized) tgdb database. Find them here: https://tgstation13.download/database/ Just unzip and run for a working (but insecure) database server. Includes a zipped copy of the data folder for easy resetting back to square one. @@ -77,8 +78,8 @@ Web delivery of game resources makes it quicker for players to join and reduces 1. Edit compile_options.dm to set the `PRELOAD_RSC` define to `0` 1. Add a url to config/external_rsc_urls pointing to a .zip file containing the .rsc. - * If you keep up to date with White Sands you could reuse White Sands' rsc cdn at https://cdn.white-sands.space/rsc/tgstation.rsc. Otherwise you can use cdn services like CDN77 or cloudflare (requires adding a page rule to enable caching of the zip), or roll your own cdn using route 53 and vps providers. - * Regardless even offloading the rsc to a website without a CDN will be a massive improvement over the in game system for transferring files. + - If you keep up to date with White Sands you could reuse White Sands' rsc cdn at https://cdn.white-sands.space/rsc/tgstation.rsc. Otherwise you can use cdn services like CDN77 or cloudflare (requires adding a page rule to enable caching of the zip), or roll your own cdn using route 53 and vps providers. + - Regardless even offloading the rsc to a website without a CDN will be a massive improvement over the in game system for transferring files. ## IRC BOT SETUP diff --git a/.github/keylabeler.yml b/.github/keylabeler.yml index f15303e9a10b..2e60303ed4ef 100644 --- a/.github/keylabeler.yml +++ b/.github/keylabeler.yml @@ -9,51 +9,51 @@ caseSensitive: false # Explicit keyword mappings to labels. Form of match:label. Required. labelMappings: - "fix:": &fix_type Fix - "fixes:": *fix_type - "bugfix:": *fix_type - "[critical]": *fix_type - "[fix]": *fix_type - "[bugfix]": *fix_type - "[runtime]": *fix_type - "[bug]": Bug - "rsctweak:": &tweak_type Tweak - "tweak:": *tweak_type - "tweaks:": *tweak_type - "soundadd:": Sound - "sounddel:": Sound - "add:": &add_type Feature - "adds:": *add_type - "rscadd:": *add_type - "[enhancement]": *add_type - "[qol]": *add_type - "[feature]": *add_type - "del:": &del_type Removal - "dels:": *del_type - "rscdel:": *del_type - "[removal]": *del_type - "[revert]": *del_type - "imageadd:": Sprites - "imagedel:": Sprites - "typo:": &typo_type Grammar and Formatting - "spellcheck:": *typo_type - "balance:": &balance_type Balance/Rebalance - "rebalance:": *balance_type - "[rebalance]": *balance_type - "[balance]": *balance_type - "tgs:": &tgs_type TGS - "[tgs]": *tgs_type - "[dmapi]": *tgs_type - "code_imp:": &code_type Code Improvement - "code:": *code_type - "refactor:": Refactor - "config:": Config Update - "admin:": Administration - "server:": server - "[dnm]": &dnm_type Do not merge - "[do not merge]": *dnm_type - "[tgui]": &ui_type tgui - "[ui]": *ui_type - "[rework]": Rework - "[wiki]": Wiki Edit - "[wip]": WIP + "fix:": &fix_type Fix + "fixes:": *fix_type + "bugfix:": *fix_type + "[critical]": *fix_type + "[fix]": *fix_type + "[bugfix]": *fix_type + "[runtime]": *fix_type + "[bug]": Bug + "rsctweak:": &tweak_type Tweak + "tweak:": *tweak_type + "tweaks:": *tweak_type + "soundadd:": Sound + "sounddel:": Sound + "add:": &add_type Feature + "adds:": *add_type + "rscadd:": *add_type + "[enhancement]": *add_type + "[qol]": *add_type + "[feature]": *add_type + "del:": &del_type Removal + "dels:": *del_type + "rscdel:": *del_type + "[removal]": *del_type + "[revert]": *del_type + "imageadd:": Sprites + "imagedel:": Sprites + "typo:": &typo_type Grammar and Formatting + "spellcheck:": *typo_type + "balance:": &balance_type Balance/Rebalance + "rebalance:": *balance_type + "[rebalance]": *balance_type + "[balance]": *balance_type + "tgs:": &tgs_type TGS + "[tgs]": *tgs_type + "[dmapi]": *tgs_type + "code_imp:": &code_type Code Improvement + "code:": *code_type + "refactor:": Refactor + "config:": Config Update + "admin:": Administration + "server:": server + "[dnm]": &dnm_type Do not merge + "[do not merge]": *dnm_type + "[tgui]": &ui_type tgui + "[ui]": *ui_type + "[rework]": Rework + "[wiki]": Wiki Edit + "[wip]": WIP diff --git a/.github/labeler.yml b/.github/labeler.yml index b0f6bdd21e35..45585acfbc16 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,44 +1,44 @@ Admin: - - 'code/modules/admin/**' + - "code/modules/admin/**" # Any file within the config subfolder Config: - - 'config/**' + - "config/**" Dependencies: - - '**/package.json' - - '**/package-lock.json' - - '**/yarn.lock' + - "**/package.json" + - "**/package-lock.json" + - "**/yarn.lock" # When the .DME is changed DME Edit: - - './*.dme' - - '**/*.dme' + - "./*.dme" + - "**/*.dme" # Any .dmi changes Sprites: - - '**/*.dmi' + - "**/*.dmi" # Changes to a .dmm or anything in the _map subfolder Map Change: - - '**/*.dmm' - - '_maps/**' + - "**/*.dmm" + - "_maps/**" # Any changes to .ogg files are marked as sound Sound: - - '**/*.ogg' + - "**/*.ogg" # Changes to the SQL subfolder SQL: - - 'SQL/**' + - "SQL/**" # Changes to the tgui subfolder tgui: - - 'tgui/**' + - "tgui/**" # Changes to the .Github subfolder Github: - - '.github/**' + - ".github/**" Deprecated Modularization: - - 'whitesands/**' + - "whitesands/**" diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 7d444ebb36c3..d96fe95f500a 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -2,10 +2,10 @@ name: Checks on: push: branches: - - master + - master pull_request: branches: - - master + - master jobs: run_linters: name: Run Linters @@ -14,50 +14,53 @@ jobs: - uses: actions/checkout@v2 with: ref: master - - name: Python setup - uses: actions/setup-python@v1 - with: - python-version: "3.9" - uses: actions/checkout@v2 - - name: Setup cache - id: cache-spacemandmm - uses: actions/cache@v2 + - name: Restore SpacemanDMM cache + uses: actions/cache@v3 + with: + path: ~/SpacemanDMM + key: ${{ runner.os }}-spacemandmm-${{ secrets.CACHE_PURGE_KEY }} + - name: Restore Yarn cache + uses: actions/cache@v3 with: - path: ~/dreamchecker - key: ${{ runner.os }}-spacemandmm-cache-${{ hashFiles('dependencies.sh') }} - - name: Install SpacemanDMM - if: steps.cache-spacemandmm.outputs.cache-hit != 'true' - run: bash tools/ci/install_spaceman_dmm.sh dreamchecker + path: tgui/.yarn/cache + key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-build-${{ secrets.CACHE_PURGE_KEY }}- + ${{ runner.os }}-build- + ${{ runner.os }}- - name: Install Tools run: | - pip install setuptools + pip3 install setuptools bash tools/ci/install_node.sh + bash tools/ci/install_byond.sh bash tools/ci/install_spaceman_dmm.sh dreamchecker - bash tools/ci/install_auxmos.sh tools/bootstrap/python -c '' - - name: Check line endings - uses: AODocs/check-eol@v1.1 - name: Run Linters run: | + tools/build/build --ci lint tgui-test bash tools/ci/check_filedirs.sh shiptest.dme bash tools/ci/check_changelogs.sh - find . -name "*.php" -print0 | xargs -0 -n1 php -l - find . -name "*.json" -not -path "*/node_modules/*" -print0 | xargs -0 tools/bootstrap/python ./tools/json_verifier.py - tgui/bin/tgui --lint + bash tools/ci/check_misc.sh bash tools/ci/check_grep.sh - tools/bootstrap/python -m ci.check_regex --log-changes-only tools/bootstrap/python -m dmi.test tools/bootstrap/python -m mapmerge2.dmm_test ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 - - name: Annotate Regex Matches - if: always() - run: | - cat check_regex_output.txt - name: Annotate Lints uses: yogstation13/DreamAnnotate@v1 if: always() with: outputFile: output-annotations.txt + - uses: actions/setup-python@v1 + with: + python-version: "3.9" + - name: Run Check Regex + run: | + tools/bootstrap/python -m ci.check_regex --log-changes-only + - name: Annotate Regex Matches + if: always() + run: | + cat check_regex_output.txt compile_all_maps: name: Compile Maps @@ -79,14 +82,15 @@ jobs: run: bash tools/ci/install_byond.sh - name: Compile All Maps run: | + bash tools/ci/install_byond.sh source $HOME/BYOND/byond/bin/byondsetup - tools/bootstrap/python tools/ci/template_dm_generator.py - tgui/bin/tgui --build - bash tools/ci/dm.sh -DCIBUILDING -DCITESTING -DALL_MAPS shiptest.dme + tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS -DFULL_INIT run_all_tests: name: Integration Tests runs-on: ubuntu-20.04 + strategy: + fail-fast: false services: mysql: image: mysql:latest @@ -122,11 +126,14 @@ jobs: - name: Install auxmos run: | bash tools/ci/install_auxmos.sh - - name: Compile and run tests + - name: Compile Tests + run: | + bash tools/ci/install_byond.sh + source $HOME/BYOND/byond/bin/byondsetup + tools/build/build --ci dm -DCIBUILDING -DANSICOLORS + - name: Run Tests run: | source $HOME/BYOND/byond/bin/byondsetup - tgui/bin/tgui --build - bash tools/ci/dm.sh -DCIBUILDING shiptest.dme bash tools/ci/run_server.sh test_windows: @@ -135,8 +142,19 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v2 + - name: Restore Yarn cache + uses: actions/cache@v3 + with: + path: tgui/.yarn/cache + key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-build-${{ secrets.CACHE_PURGE_KEY }}- + ${{ runner.os }}-build- + ${{ runner.os }}- - name: Compile run: pwsh tools/ci/build.ps1 + env: + DM_EXE: "C:\\byond\\bin\\dm.exe" - name: Create artifact run: | md deploy diff --git a/.github/workflows/codeowner_reviews.yml b/.github/workflows/codeowner_reviews.yml index 994b33f01a7c..cf4ec4138afb 100644 --- a/.github/workflows/codeowner_reviews.yml +++ b/.github/workflows/codeowner_reviews.yml @@ -5,7 +5,6 @@ on: pull_request_target jobs: assign-users: - runs-on: ubuntu-latest steps: @@ -22,5 +21,5 @@ jobs: if: steps.CodeOwnersParser.outputs.owners != '' uses: tgstation/RequestReviewFromUser@v1 with: - separator: ' ' + separator: " " users: ${{ steps.CodeOwnersParser.outputs.owners }} diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml index 3c43df7a164e..d245073cc3ab 100644 --- a/.github/workflows/compile_changelogs.yml +++ b/.github/workflows/compile_changelogs.yml @@ -22,7 +22,7 @@ jobs: if: steps.value_holder.outputs.CL_ENABLED uses: actions/setup-python@v1 with: - python-version: '3.9' + python-version: "3.9" - name: "Install deps" if: steps.value_holder.outputs.CL_ENABLED run: | diff --git a/.github/workflows/dmi5.yml b/.github/workflows/dmi5.yml index b90705ec0129..7bf0a832206c 100644 --- a/.github/workflows/dmi5.yml +++ b/.github/workflows/dmi5.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: ParadiseSS13/DMI5Checker@v1 - with: - icons-path: 'icons' + - uses: actions/checkout@v2 + - uses: ParadiseSS13/DMI5Checker@v1 + with: + icons-path: "icons" diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index 1475d82727a7..ba85ed9f4424 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -2,7 +2,7 @@ name: Generate documentation on: push: branches: - - master + - master jobs: generate_documentation: if: "!contains(github.event.head_commit.message, '[ci skip]')" diff --git a/.github/workflows/round_id_linker.yml b/.github/workflows/round_id_linker.yml index 311ee7613c02..a70344d794ea 100644 --- a/.github/workflows/round_id_linker.yml +++ b/.github/workflows/round_id_linker.yml @@ -7,6 +7,6 @@ jobs: link_rounds: runs-on: ubuntu-20.04 steps: - - uses: shiptest-ss13/round_linker@master - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} + - uses: shiptest-ss13/round_linker@master + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 179ebc68a5cc..e51f59c279a3 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -2,20 +2,19 @@ name: Mark stale issues and pull requests on: schedule: - - cron: "0 0 * * *" + - cron: "0 0 * * *" jobs: stale: - runs-on: ubuntu-20.04 steps: - - uses: actions/stale@v4 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-pr-message: "This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~ 14 days, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself" - days-before-stale: 14 - days-before-close: 7 - days-before-issue-stale: -1 - stale-pr-label: 'Stale' - exempt-pr-labels: 'RED LABEL, Test Merged, Test Merge Candidate, Stale Exempt' + - uses: actions/stale@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-pr-message: "This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~ 14 days, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself" + days-before-stale: 14 + days-before-close: 7 + days-before-issue-stale: -1 + stale-pr-label: "Stale" + exempt-pr-labels: "RED LABEL, Test Merged, Test Merge Candidate, Stale Exempt" diff --git a/.github/workflows/update_tgs_dmapi.yml b/.github/workflows/update_tgs_dmapi.yml index bbb93d24e0cf..0eb898628424 100644 --- a/.github/workflows/update_tgs_dmapi.yml +++ b/.github/workflows/update_tgs_dmapi.yml @@ -10,36 +10,36 @@ jobs: runs-on: ubuntu-20.04 name: Update the TGS DMAPI steps: - - name: Clone - uses: actions/checkout@v2 + - name: Clone + uses: actions/checkout@v2 - - name: Branch - run: | - git branch -f tgs-dmapi-update - git checkout tgs-dmapi-update - git reset --hard master + - name: Branch + run: | + git branch -f tgs-dmapi-update + git checkout tgs-dmapi-update + git reset --hard master - - name: Apply DMAPI update - uses: tgstation/tgs-dmapi-updater@v2 - with: - header-path: 'code/__DEFINES/tgs.dm' - library-path: 'code/modules/tgs' + - name: Apply DMAPI update + uses: tgstation/tgs-dmapi-updater@v2 + with: + header-path: "code/__DEFINES/tgs.dm" + library-path: "code/modules/tgs" - - name: Commit and Push - run: | - git config user.name github-actions - git config user.email action@github.com - git add . - git commit -m 'Update TGS DMAPI' - git push -f -u origin tgs-dmapi-update + - name: Commit and Push + run: | + git config user.name github-actions + git config user.email action@github.com + git add . + git commit -m 'Update TGS DMAPI' + git push -f -u origin tgs-dmapi-update - - name: Create Pull Request - uses: repo-sync/pull-request@v2 - with: - source_branch: "tgs-dmapi-update" - destination_branch: "master" - pr_title: "Automatic TGS DMAPI Update" - pr_body: "This pull request updates the TGS DMAPI to the latest version. Please note any breaking or unimplemented changes before merging." - pr_label: "Tools" - pr_allow_empty: false - github_token: ${{ secrets.GITHUB_TOKEN }} + - name: Create Pull Request + uses: repo-sync/pull-request@v2 + with: + source_branch: "tgs-dmapi-update" + destination_branch: "master" + pr_title: "Automatic TGS DMAPI Update" + pr_body: "This pull request updates the TGS DMAPI to the latest version. Please note any breaking or unimplemented changes before merging." + pr_label: "Tools" + pr_allow_empty: false + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 67300f07139d..6a3f09fd6245 100644 --- a/.gitignore +++ b/.gitignore @@ -7,10 +7,16 @@ #Ignore byond config folder. /cfg/**/* +# Ignore compiled linux libs in the root folder, e.g. librust_g.so +/*.so + #Ignore compiled files and other files generated during compilation. *.mdme +*.mdme.* *.dmb *.rsc +*.m.dme +*.test.dme *.lk *.int *.backup @@ -49,27 +55,6 @@ __pycache__/ *.py[cod] *$py.class -# C extensions -#*.so - -# Distribution / packaging -.Python -env/ -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -*.egg-info/ -.installed.cfg -*.egg - # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. @@ -77,8 +62,7 @@ var/ *.spec # Installer logs -pip-log.txt -pip-delete-this-directory.txt +pip-*.txt # Unit test / coverage reports htmlcov/ @@ -88,7 +72,6 @@ htmlcov/ .cache nosetests.xml coverage.xml -*,cover .hypothesis/ # Translations @@ -97,10 +80,6 @@ coverage.xml # Django stuff: *.log -local_settings.py - -# Flask instance folder -instance/ # Scrapy stuff: .scrapy @@ -108,9 +87,6 @@ instance/ # Sphinx documentation docs/_build/ -# PyBuilder -target/ - # IPython Notebook .ipynb_checkpoints @@ -123,10 +99,6 @@ celerybeat-schedule # dotenv .env -# virtualenv -venv/ -ENV/ - # IntelliJ IDEA / PyCharm (with plugin) .idea @@ -149,12 +121,6 @@ Desktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ -# Windows Installer files -#*.cab -#*.msi -#*.msm -#*.msp - # Windows shortcuts *.lnk @@ -195,10 +161,10 @@ Temporary Items #Visual studio stuff *.vscode/* -tools/MapAtmosFixer/MapAtmosFixer/obj/* -tools/MapAtmosFixer/MapAtmosFixer/bin/* -tools/obfStringGenerator/.vs/* -tools/obfStringGenerator/x64/* +/tools/MapAtmosFixer/MapAtmosFixer/obj/* +/tools/MapAtmosFixer/MapAtmosFixer/bin/* +/tools/CreditsTool/bin/* +/tools/CreditsTool/obj/* #GitHub Atom .atom-build.json @@ -223,20 +189,19 @@ tools/obfStringGenerator/x64/* !/config/title_screens/images/exclude #Linux docker -tools/LinuxOneShot/SetupProgram/obj/* -tools/LinuxOneShot/SetupProgram/bin/* -tools/LinuxOneShot/SetupProgram/.vs -tools/LinuxOneShot/Database -tools/LinuxOneShot/TGS_Config -tools/LinuxOneShot/TGS_Instances -tools/LinuxOneShot/TGS_Logs - -# Common build tooling -!/tools/build -code/modules/tgui/USE_BUILD_BAT_INSTEAD_OF_DREAM_MAKER.dm +/tools/LinuxOneShot/SetupProgram/obj/* +/tools/LinuxOneShot/SetupProgram/bin/* +/tools/LinuxOneShot/SetupProgram/.vs +/tools/LinuxOneShot/Database +/tools/LinuxOneShot/TGS_Config +/tools/LinuxOneShot/TGS_Instances +/tools/LinuxOneShot/TGS_Logs + +# JavaScript tools +**/node_modules + +# Screenshot tests +/artifacts # tool-generated files check_regex_output.txt - -# vsc ionide cache -.ionide/symbolCache.db diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 11d27b55d347..eab5bcfd4be4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,11 +1,11 @@ build: - stage: build - rules: - - if: $CI_MERGE_REQUEST_IID || $CI_COMMIT_REF_NAME == "master" - changes: - - tgui/**/*.js - - tgui/**/*.scss - when: always - image: node:lts - script: - - tgui/bin/tgui --ci + stage: build + rules: + - if: $CI_MERGE_REQUEST_IID || $CI_COMMIT_REF_NAME == "master" + changes: + - tgui/**/*.js + - tgui/**/*.scss + when: always + image: node:lts + script: + - tgui/bin/tgui --ci diff --git a/.vscode/extensions.json b/.vscode/extensions.json index cd4a7fa1b717..3e21a9cf446c 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,6 +5,7 @@ "EditorConfig.EditorConfig", "arcanis.vscode-zipfs", "dbaeumer.vscode-eslint", - "anturk.dmi-editor" + "anturk.dmi-editor", + "esbenp.prettier-vscode" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index a564517648d9..ee251eb53460 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,22 +7,23 @@ "editor.renderWhitespace": "all", "editor.trimAutoWhitespace": true, "editor.tabSize": 4, - - "eslint.nodePath": "tgui/.yarn/sdks", - "eslint.workingDirectories": [ - "./tgui" - ], - "dreammaker.extoolsDLL": "byond-extools.dll", + "eslint.nodePath": "./tgui/.yarn/sdks", + "eslint.workingDirectories": ["./tgui"], + "prettier.prettierPath": "./tgui/.yarn/sdks/prettier/index.js", + "typescript.tsdk": "./tgui/.yarn/sdks/typescript/lib", + "typescript.enablePromptUseWorkspaceTsdk": true, "search.exclude": { - "tgui/.yarn": true, - "tgui/.pnp.*": true + "**/.yarn": true, + "**/.pnp.*": true }, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + }, + "files.insertFinalNewline": true, "gitlens.advanced.blame.customArguments": ["-w"], - + "tgstationTestExplorer.project.resultsType": "json", "[python]": { - "gitlens.codeLens.symbolScopes": [ - "!Module" - ], + "gitlens.codeLens.symbolScopes": ["!Module"], "editor.wordBasedSuggestions": false, "editor.insertSpaces": true, "editor.tabSize": 4 @@ -31,18 +32,39 @@ "editor.insertSpaces": true, "editor.tabSize": 2, "editor.autoIndent": "advanced", - "gitlens.codeLens.scopes": [ - "document" - ] + "gitlens.codeLens.scopes": ["document"] }, "[json]": { "editor.quickSuggestions": { "strings": true }, "editor.suggest.insertMode": "replace", - "gitlens.codeLens.scopes": [ - "document" - ] + "gitlens.codeLens.scopes": ["document"] + }, + "[javascript]": { + "editor.rulers": [80], + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "[javascriptreact]": { + "editor.rulers": [80], + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "[typescript]": { + "editor.rulers": [80], + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "[typescriptreact]": { + "editor.rulers": [80], + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "[scss]": { + "editor.rulers": [80], + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true }, "editor.guides.indentation": true } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index d8402cad8676..e5f15008212b 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -7,10 +7,7 @@ "windows": { "command": ".\\tools\\build\\build.bat" }, - "problemMatcher": [ - "$dreammaker", - "$eslint-stylish" - ], + "problemMatcher": ["$dreammaker", "$eslint-stylish"], "group": { "kind": "build", "isDefault": true @@ -21,9 +18,7 @@ { "type": "dreammaker", "dme": "shiptest.dme", - "problemMatcher": [ - "$dreammaker" - ], + "problemMatcher": ["$dreammaker"], "group": "build", "label": "dm: build - shiptest.dme" }, @@ -33,9 +28,7 @@ "windows": { "command": ".\\tgui\\bin\\tgui.bat" }, - "problemMatcher": [ - "$eslint-stylish" - ], + "problemMatcher": ["$eslint-stylish"], "group": "build", "label": "tgui: build" }, diff --git a/README.md b/README.md index 9b1b70fcfb79..0c3f8281189c 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,12 @@ [![forthebadge](https://forthebadge.com/images/badges/built-with-resentment.svg)](https://forthebadge.com) [![forthebadge](https://forthebadge.com/images/badges/contains-technical-debt.svg)](https://user-images.githubusercontent.com/8171642/50290880-ffef5500-043a-11e9-8270-a2e5b697c86c.png) [![forinfinityandbyond](https://user-images.githubusercontent.com/5211576/29499758-4efff304-85e6-11e7-8267-62919c3688a9.gif)](https://www.reddit.com/r/SS13/comments/5oplxp/what_is_the_main_problem_with_byond_as_an_engine/dclbu1a) -* **Website:** -* **Patreon:** -* **Wiki:** -* **Code Docs:** -* **Discord:** -* **Coderbus Discord:** +- **Website:** +- **Patreon:** +- **Wiki:** +- **Code Docs:** +- **Discord:** +- **Coderbus Discord:** This is the codebase for the Ship-based Shiptest flavoured fork of SpaceStation 13. @@ -33,13 +33,13 @@ Shiptest is a thrill-packed round-based exploration and roleplaying game set aga ## CODEBASE CREDITS -* Whitesands, for the original codebase -* /tg/, for the original codebase of the original codebase -* BeeStation, for the many QoL changes -* Oracle, for the inspiration and wonderful features and sprites -* Interstation, for bridging the gap between Oracle and Modern /tg/ -* YogStation, for multiple different features -* Baystation, for the initial overmap concept and sprites +- Whitesands, for the original codebase +- /tg/, for the original codebase of the original codebase +- BeeStation, for the many QoL changes +- Oracle, for the inspiration and wonderful features and sprites +- Interstation, for bridging the gap between Oracle and Modern /tg/ +- YogStation, for multiple different features +- Baystation, for the initial overmap concept and sprites And thank you to any other codebase not mentioned here that has been used in the code. Your wonderful contributions are known. @@ -54,7 +54,7 @@ See LICENSE and GPLv3.txt for more details. The TGS DMAPI API is licensed as a subproject under the MIT license. -See the footer of [code/__DEFINES/tgs.dm](./code/__DEFINES/tgs.dm) and [code/modules/tgs/LICENSE](./code/modules/tgs/LICENSE) for the MIT license. +See the footer of [code/\_\_DEFINES/tgs.dm](./code/__DEFINES/tgs.dm) and [code/modules/tgs/LICENSE](./code/modules/tgs/LICENSE) for the MIT license. All assets including icons and sound are under a [Creative Commons 3.0 BY-SA license](https://creativecommons.org/licenses/by-sa/3.0/) unless otherwise indicated. diff --git a/TGS3.json b/TGS3.json index 39b75bd913c0..0a9efe4e852d 100644 --- a/TGS3.json +++ b/TGS3.json @@ -1,22 +1,11 @@ { - "documentation": "/tg/station server 3 configuration file", - "changelog": { - "script": "tools/ss13_genchangelog.py", - "arguments": "html/changelog.html html/changelogs", - "pip_dependancies": [ - "PyYaml", - "beautifulsoup4" - ] - }, - "synchronize_paths": [ - "html/changelog.html", - "html/changelogs/*" - ], - "static_directories": [ - "config", - "data" - ], - "dlls": [ - "libmariadb.dll" - ] - } + "documentation": "/tg/station server 3 configuration file", + "changelog": { + "script": "tools/ss13_genchangelog.py", + "arguments": "html/changelog.html html/changelogs", + "pip_dependancies": ["PyYaml", "beautifulsoup4"] + }, + "synchronize_paths": ["html/changelog.html", "html/changelogs/*"], + "static_directories": ["config", "data"], + "dlls": ["libmariadb.dll"] +} diff --git a/_maps/RandomRuins/BeachRuins/beach_colony.dmm b/_maps/RandomRuins/BeachRuins/beach_colony.dmm index 4472f26851ba..db74651509af 100644 --- a/_maps/RandomRuins/BeachRuins/beach_colony.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_colony.dmm @@ -1,1450 +1,1426 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ag" = ( +/obj/effect/overlay/palmtree_l, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) "aW" = ( -/obj/item/stack/sheet/plasteel/fifty, -/turf/open/floor/plating/rust, +/obj/item/instrument/guitar, +/turf/open/floor/carpet/blue, /area/ruin/unpowered) -"bf" = ( -/obj/structure/mineral_door/wood, -/turf/template_noop, +"bt" = ( +/obj/structure/flora/ausbushes/leafybush, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"bB" = ( -/obj/effect/decal/remains/human/grave, -/obj/effect/spawner/lootdrop/mafia_outfit, -/obj/effect/spawner/lootdrop/armory_contraband, -/turf/template_noop, -/area/template_noop) -"bP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/template_noop, +"bO" = ( +/turf/closed/wall/mineral/sandstone, +/area/ruin/unpowered) +"cr" = ( +/obj/item/reagent_containers/food/snacks/kebab/rat/double, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"cC" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) "cS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"dm" = ( -/obj/effect/turf_decal/solarpanel, -/obj/item/solar_assembly, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/template_noop, -/area/template_noop) -"ec" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/template_noop, -/area/template_noop) -"eI" = ( -/obj/effect/turf_decal/solarpanel, -/obj/item/solar_assembly, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/template_noop, -/area/template_noop) -"fh" = ( -/obj/structure/frame/machine, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"fr" = ( -/turf/open/floor/plating/rust, -/area/ruin/unpowered) -"fw" = ( -/obj/effect/spawner/lootdrop/salvage_capacitor, -/obj/effect/spawner/lootdrop/salvage_laser, -/obj/effect/spawner/lootdrop/salvage_manipulator, -/obj/effect/spawner/lootdrop/salvage_matter_bin, -/obj/effect/spawner/lootdrop/salvage_scanning, -/turf/open/floor/plating/rust, -/area/ruin/unpowered) -"fT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/template_noop, -/area/template_noop) -"gh" = ( -/obj/effect/spawner/lootdrop/costume, -/turf/open/floor/plating/rust, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"gE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/item/stack/sheet/metal/twenty, -/turf/open/floor/plating/rust, +"dE" = ( +/obj/item/seeds/cocoapod, +/turf/open/floor/plating/dirt/jungle, /area/ruin/unpowered) -"gK" = ( -/obj/structure/cable{ - icon_state = "1-2" +"dH" = ( +/obj/structure/fence{ + icon_state = "corner" }, -/turf/template_noop, -/area/template_noop) -"hD" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"hM" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/floodlight, -/turf/template_noop, -/area/template_noop) -"io" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, +"fd" = ( +/obj/item/cultivator/rake, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/unpowered) +"fj" = ( +/obj/item/storage/cans/sixbeer, +/turf/open/floor/carpet/orange, +/area/ruin/unpowered) +"fC" = ( +/obj/structure/flora/tree/palm, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) +"gn" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"ir" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable{ - icon_state = "0-8" +"gv" = ( +/obj/structure/fluff/beach_umbrella/cap, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) +"hh" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) +"hQ" = ( +/obj/structure/fence{ + dir = 5; + icon_state = "corner" }, -/turf/open/floor/plating/rust, -/area/ruin/unpowered) -"jX" = ( -/obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/snacks/rationpack, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"ka" = ( -/obj/structure/bed, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"lk" = ( -/obj/structure/chair{ +"iJ" = ( +/obj/structure/railing{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/item/melee/roastingstick, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"kd" = ( +/obj/effect/mob_spawn/human/corpse/pirate, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"kV" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "carp" + }, +/turf/open/floor/concrete, /area/ruin/unpowered) "lr" = ( -/turf/closed/wall/mineral/wood, +/obj/item/toy/beach_ball, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) "lD" = ( -/obj/effect/spawner/lootdrop/prison_contraband, -/turf/template_noop, +/obj/structure/fence, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"mb" = ( -/obj/structure/cable{ - icon_state = "1-2" +"mt" = ( +/turf/open/floor/wood, +/area/ruin/unpowered) +"mI" = ( +/obj/structure/toilet{ + dir = 4; + pixel_y = 3 }, -/obj/item/stack/sheet/plasteel/fifty, -/turf/open/floor/plating/rust, -/area/ruin/unpowered) -"mh" = ( -/obj/machinery/power/floodlight, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-4" +/obj/structure/sink/kitchen{ + dir = 8; + pixel_x = 15 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/ruin/unpowered) -"nr" = ( -/obj/structure/mineral_door/wood, -/turf/open/floor/plating/rust, +"nl" = ( +/obj/item/shovel/spade, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) -"nT" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/template_noop, -/area/template_noop) -"oJ" = ( -/obj/structure/mineral_door/wood, -/obj/structure/cable{ - icon_state = "1-2" +"ns" = ( +/obj/structure/fence{ + icon_state = "door_closed" }, -/turf/open/floor/plating/rust, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"pv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-8" +"nB" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"on" = ( +/obj/structure/table/wood, +/obj/item/clothing/glasses/sunglasses/garb{ + pixel_y = -5 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/item/clothing/glasses/sunglasses/big{ + pixel_y = 9 }, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"pB" = ( -/obj/structure/chair, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/ruin/unpowered) -"pN" = ( -/obj/effect/turf_decal/solarpanel, -/obj/item/solar_assembly, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "1-4" +"pp" = ( +/obj/structure/chair/plastic{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-8" +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"pv" = ( +/turf/open/floor/plating/beach/sand{ + icon_state = "sand_dug" }, -/turf/template_noop, -/area/template_noop) +/area/ruin/unpowered) +"pN" = ( +/turf/open/floor/concrete, +/area/ruin/unpowered) +"pU" = ( +/obj/structure/fluff/fokoff_sign, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"pY" = ( +/obj/structure/bonfire/prelit, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) "qq" = ( -/obj/effect/turf_decal/solarpanel, -/obj/item/solar_assembly, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/template_noop, -/area/template_noop) -"qD" = ( -/obj/machinery/power/floodlight, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/plasteel, +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) -"qP" = ( -/obj/item/stack/sheet/cotton/cloth/ten, -/turf/open/floor/plating/rust, +"qG" = ( +/obj/item/clothing/suit/space/hardsuit/carp/old, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"qR" = ( -/obj/structure/cable{ - icon_state = "1-8" +"qP" = ( +/obj/structure/window/reinforced{ + dir = 8 }, -/turf/template_noop, -/area/template_noop) -"rM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/statue/sandstone/assistant, -/turf/open/floor/plasteel, +/obj/structure/window/reinforced, +/obj/item/storage/firstaid/o2, +/turf/open/floor/wood, /area/ruin/unpowered) -"sH" = ( -/obj/structure/cable{ - icon_state = "4-8" +"rD" = ( +/obj/structure/bed, +/obj/item/bedsheet/dorms, +/turf/open/floor/wood, +/area/ruin/unpowered) +"ta" = ( +/turf/open/floor/carpet/blue, +/area/ruin/unpowered) +"ug" = ( +/obj/structure/closet/crate/freezer{ + name = "Cooler" + }, +/obj/item/reagent_containers/food/drinks/ice, +/obj/item/reagent_containers/food/drinks/colocup, +/obj/item/reagent_containers/food/drinks/colocup, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "Beer advertised to be the best in space."; + name = "Masterbrand Beer" }, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/turf/open/floor/plating/rust, -/area/ruin/unpowered) -"sY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/statue/gold/cmo, -/turf/open/floor/plasteel, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "Beer advertised to be the best in space."; + name = "Masterbrand Beer" + }, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "Beer advertised to be the best in space."; + name = "Masterbrand Beer" + }, +/obj/item/reagent_containers/food/drinks/beer/light, +/obj/item/reagent_containers/food/drinks/beer/light, +/obj/item/reagent_containers/food/drinks/beer/light, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) "uw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/closed/wall/rust, +/obj/structure/flora/rock/beach, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) -"wU" = ( -/obj/item/reagent_containers/food/snacks/badrecipe, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +"vG" = ( +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/turf/open/floor/carpet/purple, /area/ruin/unpowered) -"xl" = ( -/obj/structure/cable{ - icon_state = "0-2" +"wb" = ( +/obj/structure/window/reinforced{ + dir = 1 }, -/obj/machinery/power/terminal{ +/obj/structure/window/reinforced{ dir = 8 }, -/turf/template_noop, -/area/template_noop) -"yg" = ( -/obj/structure/mineral_door/wood, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, +/obj/structure/table/wood, +/obj/item/megaphone, +/turf/open/floor/wood, /area/ruin/unpowered) -"yP" = ( -/obj/item/storage/firstaid{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/storage/firstaid, -/turf/open/floor/plating/rust, +"wf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/grille, +/obj/structure/curtain, +/turf/open/floor/wood, /area/ruin/unpowered) -"Bc" = ( -/turf/closed/wall/rust, +"xK" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"Bv" = ( -/obj/structure/bed, -/turf/template_noop, +"xT" = ( +/obj/item/stack/sheet/sandblock, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) -"Dd" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +"Ap" = ( +/obj/structure/fluff/beach_umbrella/security, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) -"Dr" = ( -/obj/structure/cable{ - icon_state = "2-4" +"AV" = ( +/obj/item/storage/crayons, +/turf/open/floor/concrete, +/area/ruin/unpowered) +"CR" = ( +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/item/stack/sheet/metal/twenty, -/turf/open/floor/plating/rust, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/chair/stool, +/obj/item/storage/backpack/duffelbag, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Dl" = ( +/obj/structure/mineral_door/sandstone, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"EF" = ( -/obj/structure/cable{ - icon_state = "4-8" +"Dx" = ( +/obj/item/toy/crayon/spraycan{ + pixel_x = -5; + pixel_y = 6 }, -/obj/item/stack/sheet/metal/twenty, -/turf/open/floor/plating/rust, +/obj/item/toy/crayon/spraycan{ + pixel_x = 6; + pixel_y = 3 + }, +/turf/open/floor/concrete, /area/ruin/unpowered) -"EM" = ( -/obj/structure/chair{ +"EB" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/structure/fence{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"EC" = ( +/obj/item/toy/beach_ball/holoball/dodgeball, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) "Fm" = ( -/obj/item/coin/gold, -/obj/item/coin/gold, -/obj/item/coin/gold, -/obj/item/coin/gold, -/turf/open/floor/plating/rust, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) -"FW" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable, -/turf/template_noop, +"FV" = ( +/obj/effect/overlay/palmtree_r, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) -"GD" = ( -/obj/item/chair, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, +"FW" = ( +/mob/living/simple_animal/hostile/carp, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"He" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-8" +"Gh" = ( +/obj/structure/fence{ + dir = 9; + icon_state = "corner" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) "Hg" = ( -/obj/structure/barricade/sandbags, -/turf/template_noop, -/area/template_noop) -"HP" = ( -/obj/structure/mineral_door/wood, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, +/obj/machinery/hydroponics/soil, +/turf/open/floor/plating/dirt/jungle, /area/ruin/unpowered) -"Ii" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, +"IV" = ( +/obj/item/stack/ore/glass/beach, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) -"Ij" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/bonfire, -/turf/open/floor/plasteel, +"Ja" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"Jb" = ( +/obj/item/seeds/cocoapod/vanillapod, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/unpowered) +"JX" = ( +/obj/structure/mineral_door/sandstone, +/turf/open/floor/wood, +/area/ruin/unpowered) +"KA" = ( +/turf/open/floor/plating/dirt/jungle, /area/ruin/unpowered) -"Kh" = ( -/obj/machinery/power/smes, -/obj/structure/cable, -/turf/template_noop, -/area/template_noop) "KM" = ( /turf/template_noop, /area/template_noop) +"Ld" = ( +/obj/structure/fluff/beach_umbrella/science, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) "Li" = ( -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/water/beach/deep, +/area/ruin/unpowered) +"Lz" = ( +/obj/structure/fluff/beach_umbrella/engine, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) +"ML" = ( +/obj/item/reagent_containers/glass/bucket/wooden, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/unpowered) +"Nl" = ( +/obj/item/toy/seashell, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) +"Nz" = ( +/turf/open/floor/plasteel/stairs/old, +/area/ruin/unpowered) +"NG" = ( +/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag{ + pixel_x = 13 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/item/toy/plush/carpplushie{ + desc = "An adorable stuffed toy that resembles a space carp with a gun."; + name = "glock-ness monster plushie" }, -/turf/template_noop, -/area/template_noop) -"ML" = ( -/obj/effect/decal/remains/human/grave, -/obj/effect/spawner/lootdrop/mafia_outfit, -/obj/item/kitchen/knife/combat/bone, -/turf/template_noop, -/area/template_noop) -"Nb" = ( -/obj/item/stack/sheet/metal/twenty, -/turf/open/floor/plating/rust, -/area/ruin/unpowered) -"Nk" = ( -/obj/effect/decal/remains/human/grave, -/obj/effect/spawner/lootdrop/mafia_outfit, -/obj/item/melee/baseball_bat/bone, -/turf/template_noop, -/area/template_noop) +/turf/open/water/beach/deep, +/area/ruin/unpowered) +"NL" = ( +/obj/structure/closet/cabinet, +/obj/item/storage/backpack/duffelbag, +/obj/item/clothing/under/shorts/purple, +/obj/item/clothing/shoes/cookflops{ + desc = "A very fashionable pair of flip flops."; + name = "flip-flops" + }, +/obj/item/clothing/neck/beads, +/obj/item/clothing/under/color/red, +/obj/item/clothing/under/color/white, +/turf/open/floor/wood, +/area/ruin/unpowered) "Oa" = ( -/obj/item/reagent_containers/food/snacks/badrecipe, -/obj/item/reagent_containers/food/snacks/badrecipe, -/obj/item/reagent_containers/food/snacks/badrecipe, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"OJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/statue/bone/rib, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"Pq" = ( -/obj/machinery/power/floodlight, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/melee/skateboard/pro, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Om" = ( +/obj/structure/fence{ + dir = 10; + icon_state = "corner" }, -/obj/structure/cable{ - icon_state = "0-4" +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"Pd" = ( +/obj/item/grown/log/tree, +/obj/item/grown/log/tree, +/obj/item/grown/log/tree, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"Px" = ( +/obj/structure/chair/plastic{ + dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) -"RJ" = ( -/obj/structure/mineral_door/wood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +"Qf" = ( +/turf/open/floor/concrete/slab_1, /area/ruin/unpowered) -"Sc" = ( -/obj/effect/spawner/lootdrop/armory_contraband, -/turf/open/floor/plating/rust, +"RK" = ( +/obj/item/toy/beach_ball/holoball/dodgeball, +/obj/item/melee/skateboard/hoverboard, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) -"Tc" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" +"RM" = ( +/obj/structure/sink/puddle, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/unpowered) +"RV" = ( +/obj/structure/chair/plastic{ + dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"SS" = ( +/turf/open/floor/carpet/red, +/area/ruin/unpowered) +"Te" = ( +/obj/structure/railing, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) "Tr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" +/obj/item/reagent_containers/food/drinks/colocup{ + pixel_x = -7; + pixel_y = -2 }, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"TK" = ( -/turf/template_noop, +/obj/item/reagent_containers/food/drinks/colocup{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/carpet/red, /area/ruin/unpowered) "TW" = ( -/obj/item/chair, -/turf/template_noop, +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"TZ" = ( +/turf/open/floor/carpet/purple, /area/ruin/unpowered) "US" = ( -/obj/effect/spawner/lootdrop/random_prosthetic, -/turf/open/floor/plating/rust, +/turf/open/water/beach, /area/ruin/unpowered) "Vn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/dresser, -/turf/open/floor/plasteel, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"Vx" = ( +/obj/structure/table/rolling, +/obj/item/reagent_containers/food/snacks/kebab/fiesta, +/obj/item/reagent_containers/food/snacks/kebab/fiesta{ + pixel_y = 7 + }, +/obj/item/reagent_containers/food/snacks/kebab/fiesta{ + pixel_y = 13 + }, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"VG" = ( +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/concrete, +/area/ruin/unpowered) +"VX" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) "Ww" = ( -/obj/item/chair, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/item/melee/roastingstick, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) "Xd" = ( -/obj/structure/bed{ - layer = 2.899; - pixel_y = 12 +/obj/structure/railing{ + dir = 4 }, -/obj/structure/bed, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"Xe" = ( +/obj/item/storage/cans/sixbeer, +/turf/open/floor/plating/grass/beach, +/area/ruin/unpowered) +"Xh" = ( +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) +"Xo" = ( +/obj/structure/statue/sandstone/assistant, +/turf/open/floor/plating/beach/sand, /area/ruin/unpowered) "Xr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"YV" = ( -/obj/item/stack/sheet/mineral/wood/fifty, -/turf/open/floor/plating/rust, -/area/ruin/unpowered) -"Zs" = ( -/obj/effect/turf_decal/solarpanel, -/obj/item/solar_assembly, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "1-4" +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) +"Xz" = ( +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-8" +/turf/open/floor/wood, +/area/ruin/unpowered) +"Yi" = ( +/obj/item/toy/plush/lizardplushie{ + name = "Soaks-The-Rays" }, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/carpet/orange, +/area/ruin/unpowered) +"Yq" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "#" }, -/turf/template_noop, -/area/template_noop) +/turf/open/floor/concrete, +/area/ruin/unpowered) "Zz" = ( -/obj/item/reagent_containers/food/snacks/badrecipe, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) +"ZA" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/plating/grass/beach, /area/ruin/unpowered) "ZI" = ( -/obj/machinery/porta_turret/syndicate, -/turf/template_noop, -/area/template_noop) +/turf/open/floor/plating/beach/sand, +/area/ruin/unpowered) (1,1,1) = {" KM KM KM -Bc -Bc -Bc -Bc -Bc -Bc -Bc -Bc -Bc -Bc -Bc -KM -KM -KM -Bc -Bc -Bc -lr -lr -lr -lr -lr -lr -lr -lr KM KM -"} -(2,1,1) = {" KM +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn KM KM -Bc -Bc -Bc -Bc -Bc -Bc -Bc -Bc KM -Hg KM KM KM KM KM -Hg KM -lr -Dd -Dd -lr -pB -hD -Dd -lr KM KM "} -(3,1,1) = {" -KM +(2,1,1) = {" KM KM -Bc -Bc -Oa -Oa -Oa -wU -Bc -Bc KM +bO +bO +bO +bO +bO +bO +Vn +cC +Vn Hg -KM -ML +Hg +dE +Jb +Hg +Hg +Vn +Vn +gn +nB +Vn +Vn KM KM KM -Hg KM -lr -Dd -Dd -lr -Dd -Dd -Dd -lr KM KM "} -(4,1,1) = {" -KM +(3,1,1) = {" KM KM -Bc -Bc +bO +NL +mt Oa -Oa -Oa -wU -Bc -Bc -KM +bO +mI +JX +Vn +Vn Hg -KM -KM -KM -KM -KM +KA +KA +ML +RM +KA +KA Hg -KM -lr -cS -Tr -yg -Tr -Tr -qD -lr +Vn +Vn +Vn +Vn +ZA +Vn +Vn +Vn +Ja KM KM "} -(5,1,1) = {" -KM +(4,1,1) = {" KM KM -Bc -Bc -Oa -Oa -Oa -wU -Bc -Bc -KM +bO +mt +mt +mt +bO +bO +bO +Vn +Vn +Vn Hg -KM -KM -KM -KM -KM Hg -ZI -lr -io -Dd -lr -Dd -Dd -Dd -lr -KM -KM -"} -(6,1,1) = {" -KM -KM -KM -Bc -Bc -Oa -Oa -wU -wU -Bc -Bc -KM +KA +fd Hg +Hg +Vn +Vn +Vn +cS +Vn +Vn +Vn +Vn +Vn +Vn +Vn KM +"} +(5,1,1) = {" KM +bO +mt +mt +mt +Dl +Vn +Vn +Vn +Vn +gn +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn +bt +Vn +gn +Vn +Xe +pp +Vn +cr +Vn KM +"} +(6,1,1) = {" KM -KM -Hg -KM -lr -io -Dd -lr +bO +rD +on +rD +bO +Vn +cC +Vn +bt +Vn +ZI +Xr +ZI +ZI +ZI +Vn +Vn +Vn +Vn +Vn +Vn +Vn +Vn Vn Xd -Dd -lr -KM +Vn +Px +Vn KM "} (7,1,1) = {" KM -KM -KM -Bc -Bc -wU -wU -mh -wU -Bc -Bc -KM -Hg -Nk -KM -KM -KM -KM -Hg -KM -lr -Pq -Dd -lr -lr -lr -lr -lr -KM +Vn +bO +wf +bO +Vn +Vn +Vn +Vn +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +Vn +Vn +Vn +gn +xK +Te +pY +iJ +Pd +Vn KM "} (8,1,1) = {" KM -KM -KM -Bc -Bc -wU -wU +ZA +Vn +Vn +Vn +Vn +ZI Zz -wU -Bc -Bc -KM -Hg -KM -KM -KM -KM -KM -Hg -KM -lr -io -Dd -lr +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +Xr +ZI +ZI +Vn +Vn +Vn +Vn Ww -hD -Dd -lr -KM +VX +Vn +Px +Vn KM "} (9,1,1) = {" -KM -KM -KM -Bc -Bc -wU -wU -io -Dd -Bc -Bc -KM -Hg -KM -KM -KM -KM -KM -Hg -KM -lr -io -Dd -lr -Dd -Dd -Dd -lr -KM +Vn +Vn +Vn +Vn +ZI +ZI +ZI +ZI +ZI +ZI +qq +ZI +ZI +ZI +fC +Zz +ZI +ZI +ZI +ZI +Zz +ZI +Vn +Vn +RV +Vn +Vx +Vn +Vn KM "} (10,1,1) = {" -KM -KM -KM -Bc -Bc -Dd -jX -Zz -Dd -Bc -Bc +Vn +cS +Vn +ZI +ZI +ZI +ZI +ZI +RK +ZI +ZI ZI -Hg -bB -KM -KM -KM -KM -Hg -KM -lr Xr -Tr -yg -Tr -Tr -qD -lr -KM +ZI +ZI +ZI +ZI +Xr +ZI +ZI +ZI +Xr +Vn +Vn +Vn +Vn +Vn +gn +Vn KM "} (11,1,1) = {" -KM -KM -KM -Bc -Bc -Dd -wU -io -wU -Bc -Bc -KM -KM -KM -KM -KM -KM -KM -KM -KM -lr -io -Dd -lr -Dd -Dd -Dd -lr -KM -KM +Ja +Vn +Vn +ZI +ZI +ZI +Zz +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +Vn +Vn +cC +Gh +lD +lD +Om +Vn "} (12,1,1) = {" -KM -KM -KM -Bc -Bc -wU -Dd +Vn +Vn +gn Zz -Dd -Bc -lr -nr -lr -lr -lr -lr -lr -lr -lr -nr -lr -io -Dd -lr +ZI +ZI +ZI +ZI +ZI +ZI +Xr +ZI +ZI +uw +US +US +ZI +ZI +Zz +ZI +ZI +ZI +Vn +Vn +Vn +TW +FW +cS +TW Vn -ka -Dd -lr -KM -KM "} (13,1,1) = {" -KM -KM -KM -Bc -Bc -Dd -Dd -Pq -Dd -Bc -lr -Dd -Dd -Dd -Dd -Dd -Dd -OJ -rM -Dd -lr -Pq -Dd -lr -lr -lr -lr -lr -KM -KM +Vn +Vn +ZI +ZI +ZI +ZI +fC +ZI +Ap +ZI +ZI +ZI +ZI +US +US +US +US +ZI +ZI +pv +IV +ZI +Vn +Vn +Vn +TW +Vn +FW +TW +pU "} (14,1,1) = {" -KM -KM -Bc -RJ -Dd -Dd -Dd -He -Tr -Tr -yg -Tr -Tc -GD -Tr -Ii -Tr -Tr -Tr +ZA +Vn +ZI +ZI +ZI +ZI +ZI +ZI Tr -yg +SS +ZI +ZI +US +US +US +US +US +ZI +ZI +Xh +nl pv -Dd -lr -TK -TK -TK -Bc -KM -KM +ZI +Vn +Vn +TW +qG +Vn +ns +Vn "} (15,1,1) = {" -KM -KM -KM -Bc -Bc -Dd -Dd -Dd -Dd -Bc -lr -pB -hD -lk -Dd -Pq -Dd -Ij -Dd -Dd -lr -io -Dd -lr -TK +cS +Vn +Zz +ZI +ZI +Xr +ZI +ZI +ZI +ZI +ZI +ZI +US +US +US +US +US +ZI +ZI +xT +pv +IV +ZI +nB +Vn TW -TK -Bc -KM -KM +Vn +cC +TW +Vn "} (16,1,1) = {" -KM -KM -KM -Bc -Bc -fh -Bc -Dd -Dd -Bc -lr -EM -hD -lk -Dd -io -Dd -Dd -Dd -Dd -lr -He -Tr -yg -bP -bP +Vn +Vn +ZI +ZI +ZI +ZI +ZI +ZI +ug +Nl +ZI +US +US +US +Li +US +US +US +ZI +Xo +xT +ZI +ZI +Xr +Vn +TW FW -Bc -KM -KM +kd +EB +ZA "} (17,1,1) = {" -KM -KM -KM -Bc -Bc -KM -fh -Dd -Dd -Bc -lr -Dd -Dd -Dd -Dd -io -Dd -sY -Dd -Dd -lr -Dd -Dd +Vn +Vn +Zz +ZI +ZI +fC +ZI +Ld +ZI +ZI +ZI +US +US +US +Li +Li +US +US +ZI +ZI +ZI lr -TK -TK +ZI +ZI +Vn +hQ lD -Bc -KM -KM +lD +dH +Vn "} (18,1,1) = {" -KM -KM -KM -Bc -Bc -Bc -Bc -Bc -Bc -Bc -lr -lr -lr -lr -lr -HP -lr -lr -lr -lr -lr -Dd -Dd -lr -TK -Bv -TK -Bc -KM -KM -"} +Vn +ZI +ZI +ZI +ZI +ZI +ZI +vG +TZ +ZI +ZI +US +US +Li +Li +Li +US +US +ZI +Xr +EC +ZI +ZI +ZI +gn +Vn +Vn +Vn +Vn +Vn +"} (19,1,1) = {" -KM -KM -KM -Bc -Bc -Bc -Bc -lr -lr -lr -lr -YV -YV -lr -KM -fT -KM -Bc -KM -KM -lr -lr -lr +Xr +ZI +ZI +ZI +Zz +ZI +ZI lr -Bc -Bc -Bc -Bc -KM -KM +ZI +ZI +ZI +US +US +Li +Li +Li +US +US +ZI +ZI +ZI +ZI +EC +ZI +Vn +bt +Vn +Vn +Vn +Vn "} (20,1,1) = {" -KM -KM -KM -KM -KM -KM -KM -lr -Sc -Nb -Nb -Nb -Nb -lr -KM -fT -KM -Bc -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM +ZI +ZI +fC +ZI +Xr +ZI +ZI +ZI +ZI +ZI +ZI +US +US +Li +NG +Li +US +US +ZI +ZI +ZI +ZI +ZI +ZI +Vn +Vn +Vn +Vn +Vn +Vn "} (21,1,1) = {" -KM -KM -KM -KM -KM -KM -KM -lr -Nb -gh -Dr -gE -mb -oJ -gK +ZI +ZI +ZI +qq +ZI +ZI +ZI +gv +ZI +ZI +ZI +US +US Li -KM -Bc -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM +Li +Li +US +US +ZI +ZI +hh +hh +hh +ZI +Vn +Vn +Ja +Vn +cS +Vn "} (22,1,1) = {" KM -KM -KM -KM -KM -KM -KM -lr +ZI +ZI +ZI +ZI +ZI +ZI +ta aW -Nb -sH -Nb -fw -lr -KM -hM -KM -Bc -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM +ZI +ZI +US +US +US +Li +Li +US +US +ZI +ZI +ZI +ZI +ZI +ZI +Qf +Qf +Qf +Qf +Qf KM "} (23,1,1) = {" KM -KM -KM -KM -KM -KM -KM -lr -fr -Nb -EF -Nb -fr -lr -KM -fT -KM -Bc -KM -KM -KM -KM -KM -KM -eI -eI -eI -KM -KM -KM -"} -(24,1,1) = {" -KM -KM -KM -KM -KM -KM -KM -lr -YV -YV -ir -fw +Zz +ZI +ZI +ZI +ZI +Xr +ZI +ZI +ZI +Zz +ZI US -lr -KM -ec -Kh -Bc -KM -KM -eI -eI -eI -nT -Zs -Zs +US +Li +US +US +US +ZI +ZI +EC +ZI +ZI +ZI +Qf +AV pN +Yq +Qf KM +"} +(24,1,1) = {" KM +ZI +ZI +ZI +Lz +ZI +ZI +ZI +ZI +ZI +ZI +ZI +US +US +US +US +US +US +ZI +ZI +ZI +Zz +ZI +ZI +Qf +pN +pN +pN +Qf KM "} (25,1,1) = {" KM -KM -KM -KM -KM -KM -KM -lr +ZI +ZI +ag +Yi +ZI +ZI +wb qP Fm -fr -yP -fr -lr -KM -KM -xl +ZI +ZI +US +US +US +US +US uw -gK -gK -dm -Zs -Zs -qR -qq -qq -qq -KM -KM +ZI +ZI +ZI +ZI +ZI +ZI +Qf +Dx +kV +VG +Qf KM "} (26,1,1) = {" KM -KM -KM -KM -KM -KM -KM -lr -fr -fr -fr -fr -fr -lr -KM -KM -KM -Bc -KM -KM -qq -qq +ZI +ZI +FV +fj +ZI +ZI +CR +Xz +Nz +ZI +ZI +uw +US +US +US +ZI +ZI +ZI +fC qq -KM -KM -KM -KM -KM -KM +ZI +ZI +Vn +Qf +Qf +Qf +Qf +Qf KM "} (27,1,1) = {" KM -KM -KM -KM -KM -KM -KM -lr -fr -fr -fr -fr -fr -lr -Bc -bf -Bc -Bc -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM +ZI +ZI +ZI +Xr +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +Xr +ZI +ZI +ZI +ZI +ZI +Vn +cC +Vn +Vn +Vn KM KM "} (28,1,1) = {" KM KM -KM -KM -KM -KM -KM -lr -fr -fr -fr -fr -fr -lr -KM -Bc -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM +ZI +ZI +ZI +ZI +ZI +ZI +Xr +ZI +ZI +ZI +ZI +Xr +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +Vn +Vn +Vn +Vn +Vn +ZA KM KM "} @@ -1454,28 +1430,28 @@ KM KM KM KM -KM -KM -lr -fr -fr -fr -fr -fr -lr -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM -KM +ZI +Zz +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +ZI +Zz +ZI +ZI +ZI +Xr +Vn +Vn +Vn +Vn +Vn KM KM KM @@ -1488,23 +1464,23 @@ KM KM KM KM -lr -lr -lr -lr -lr -lr -lr -KM -KM -KM -KM -KM -KM -KM -KM -KM KM +ZI +ZI +ZI +ZI +Zz +ZI +ZI +ZI +ZI +ZI +ZI +ZI +Vn +Vn +Vn +gn KM KM KM diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm index 03b8afc1f0aa..c69a522c9c4c 100644 --- a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm @@ -133,7 +133,6 @@ /area/ruin/powered) "Ch" = ( /obj/structure/table/wood/fancy, -/obj/structure/table/wood/fancy, /turf/open/floor/carpet/red, /area/ruin/powered) "Ds" = ( diff --git a/_maps/RandomRuins/IceRuins/icemoon_hydroponics_lab.dmm b/_maps/RandomRuins/IceRuins/icemoon_hydroponics_lab.dmm new file mode 100644 index 000000000000..c82e03ccb807 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_hydroponics_lab.dmm @@ -0,0 +1,3451 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"ac" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/hydroponics/constructable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"ag" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/cable_coil/yellow{ + pixel_x = 3; + pixel_y = -2; + amount = 2 + }, +/obj/item/wallframe/camera{ + pixel_x = -7; + pixel_y = 4 + }, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"am" = ( +/obj/machinery/microwave, +/obj/structure/table, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"aC" = ( +/obj/item/book/manual/hydroponics_pod_people{ + pixel_y = 0 + }, +/obj/structure/table, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"aJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"bd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"bg" = ( +/obj/machinery/light/dim, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/nutrient/ez{ + pixel_x = -5; + pixel_y = 11 + }, +/obj/item/reagent_containers/food/snacks/grown/tomato{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/green, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"bq" = ( +/obj/structure/table, +/obj/item/seeds/replicapod{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 6 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"bv" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/item/ammo_casing/caseless{ + pixel_y = -9; + pixel_x = -9; + dir = 5 + }, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/red{ + dir = 5 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"bA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"bD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/energybar{ + pixel_x = -1; + pixel_y = 3 + }, +/obj/structure/table, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"bP" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/powered/hydroponicslab) +"bV" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"ct" = ( +/obj/structure/table, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 5 + }, +/obj/item/seeds/cabbage{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"cu" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"da" = ( +/obj/structure/table, +/obj/item/seeds/watermelon{ + pixel_x = -13; + pixel_y = 12 + }, +/obj/item/toy/figure/botanist, +/turf/open/floor/plating, +/area/ruin/powered/hydroponicslab) +"dw" = ( +/obj/item/toy/katana, +/turf/open/floor/plating, +/area/ruin/powered/hydroponicslab) +"dB" = ( +/obj/effect/decal/cleanable/food/plant_smudge, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"dD" = ( +/obj/effect/turf_decal/corner_techfloor_grid/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner_techfloor_grid/diagonal, +/obj/effect/turf_decal/spline/fancy/grey, +/obj/effect/turf_decal/spline/fancy/grey{ + dir = 1 + }, +/obj/machinery/door/airlock/research, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"ed" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"eh" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"eD" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/effect/turf_decal/spline/plain/bar{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"eX" = ( +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"fd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"fM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"fN" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/blood/BMinus{ + desc = "Contains blood used for transfusion. Must be attached to an IV drip. Something is scribbled on the back in bright blue letters: ICARUS" + }, +/obj/item/reagent_containers/blood/OMinus{ + desc = "Contains blood used for transfusion. Must be attached to an IV drip. Something is scribbled on the back in blue letters: DAEDALUS" + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"fO" = ( +/turf/open/floor/plating/rust, +/area/ruin/powered/hydroponicslab) +"gb" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 9 + }, +/obj/effect/turf_decal/spline/fancy/bar{ + dir = 9 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"gf" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/caseless{ + pixel_y = -9; + pixel_x = 11; + dir = 10 + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/effect/turf_decal/spline/fancy/red{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"gl" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/effect/turf_decal/spline/plain/bar{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"gz" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/corner/lime{ + dir = 4; + color = "#B7D993" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"gA" = ( +/turf/open/floor/plating/snowed/temperatre{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/surface/outdoors) +"gC" = ( +/obj/structure/table, +/obj/item/seeds/berry{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"gM" = ( +/obj/item/ammo_casing/caseless{ + pixel_x = 8; + pixel_y = 4; + dir = 8 + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 1 + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/corner/orange{ + dir = 8; + color = "#C3630C" + }, +/obj/effect/turf_decal/spline/fancy/corner/orange{ + dir = 4; + color = "#C3630C" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"gO" = ( +/obj/structure/table, +/obj/item/shovel/spade{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/machinery/light/dim{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"gP" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/fernybush, +/mob/living/simple_animal/hostile/venus_human_trap, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"gU" = ( +/obj/structure/curtain, +/obj/machinery/shower{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/hydroponicslab) +"gV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/rust, +/area/ruin/powered/hydroponicslab) +"hd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"hg" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/corner/bar{ + dir = 1; + color = "#791500" + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"hs" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 6 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"hw" = ( +/obj/effect/decal/cleanable/blood/drip{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/ammo_casing/caseless{ + pixel_x = -8; + pixel_y = 6; + dir = 9 + }, +/obj/effect/turf_decal/corner_techfloor_grid, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/spline/fancy/corner/orange{ + color = "#C3630C" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"hF" = ( +/mob/living/simple_animal/hostile/venus_human_trap, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"hJ" = ( +/turf/closed/wall/r_wall, +/area/ruin/powered/hydroponicslab) +"hZ" = ( +/obj/item/stack/cable_coil/yellow{ + pixel_x = 1; + pixel_y = -2; + amount = 2 + }, +/obj/item/wallframe/camera{ + pixel_x = -6; + pixel_y = 6 + }, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"ic" = ( +/obj/effect/decal/cleanable/food/tomato_smudge, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/orange, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"ij" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/bar{ + dir = 8 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"iw" = ( +/obj/effect/turf_decal/borderfloorblack/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/corner/bar{ + dir = 8; + color = "#791500" + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"iz" = ( +/obj/structure/table, +/obj/item/seeds/starthistle/corpse_flower{ + pixel_y = 3; + pixel_x = 3 + }, +/obj/item/reagent_containers/glass/bottle/nutrient/l4z{ + pixel_x = -10; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"iB" = ( +/obj/effect/mob_spawn/human/scientist, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"iH" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/suit/hooded/wintercoat/security{ + pixel_y = 0 + }, +/obj/item/clothing/shoes/winterboots{ + pixel_y = 0 + }, +/obj/item/ammo_box/magazine/m45{ + pixel_y = 0 + }, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/red{ + dir = 6 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"iJ" = ( +/obj/item/trash/chips{ + pixel_x = -1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"iQ" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/grown/tomato/blood{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/seeds/tomato/killer{ + pixel_y = -9; + pixel_x = -2 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"iY" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/lime, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"jh" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"jl" = ( +/obj/effect/decal/cleanable/food/salt, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"jr" = ( +/obj/structure/table, +/obj/item/circuitboard/machine/hydroponics{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"jC" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"jY" = ( +/obj/machinery/light/small, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"kr" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"kw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"kS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 6 + }, +/obj/structure/frame/machine, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"lj" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"lk" = ( +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/corner/purple{ + dir = 1; + color = "#AE8CA8" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"lw" = ( +/obj/structure/table, +/obj/item/plant_analyzer{ + pixel_x = 13; + pixel_y = 4 + }, +/obj/item/cultivator, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"lF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/bar{ + dir = 1 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"mb" = ( +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/corner/lime{ + dir = 8; + color = "#B7D993" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"md" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"me" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"mu" = ( +/mob/living/simple_animal/hostile/venus_human_trap, +/obj/effect/turf_decal/borderfloorblack{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/bar{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"mQ" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/item/shard{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/shard{ + pixel_x = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/red{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"mU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table, +/obj/item/clothing/shoes/winterboots{ + pixel_y = 5; + pixel_x = 3 + }, +/obj/item/clothing/shoes/winterboots{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"mW" = ( +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 12; + pixel_x = 11 + }, +/obj/effect/decal/cleanable/blood/splatter, +/obj/item/ammo_casing/caseless{ + pixel_y = 4; + dir = 5; + pixel_x = 2 + }, +/obj/effect/turf_decal/corner_techfloor_grid, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/corner/purple{ + color = "#AE8CA8" + }, +/obj/effect/turf_decal/spline/fancy/corner/purple{ + dir = 8; + color = "#AE8CA8" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"nh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/window/brigdoor/northright, +/obj/effect/turf_decal/borderfloorblack{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/bar{ + dir = 5 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"ni" = ( +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/corner/green{ + dir = 1; + color = "#99BB76" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"nj" = ( +/obj/structure/table, +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/item/stack/cable_coil/yellow{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/circuitboard/machine/hydroponics{ + pixel_y = 2; + pixel_x = -3 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"nn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"nq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"nt" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"nD" = ( +/obj/item/stack/cable_coil/yellow{ + pixel_x = 7; + pixel_y = -4; + amount = 2 + }, +/obj/item/wallframe/camera{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"nI" = ( +/obj/effect/decal/cleanable/food/plant_smudge, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/corner/orange{ + dir = 4; + color = "#C3630C" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"nL" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/table, +/obj/item/wrench{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/screwdriver{ + pixel_x = 2 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"nP" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"nS" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 5 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"oo" = ( +/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/ammo_casing/caseless{ + pixel_x = -5; + pixel_y = 9; + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"oK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_techfloor_grid, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/spline/fancy/corner/lime{ + color = "#B7D993" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"oO" = ( +/mob/living/simple_animal/hostile/killertomato, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/corner/green{ + dir = 1; + color = "#99BB76" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"oT" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_x = -1; + pixel_y = 5 + }, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"oY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 6 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"pj" = ( +/obj/structure/table, +/obj/item/seeds/apple{ + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"pn" = ( +/obj/structure/table, +/obj/item/seeds/glowshroom{ + pixel_y = -1; + pixel_x = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"pE" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/diethylamine{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/reagent_containers/glass/bottle{ + pixel_x = -6 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"pG" = ( +/mob/living/simple_animal/hostile/killertomato, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"pL" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/hydroponicslab) +"pR" = ( +/obj/machinery/light/dim{ + dir = 1 + }, +/obj/structure/table, +/obj/item/multitool{ + pixel_x = 4; + pixel_y = 7 + }, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"qc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 5 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"qh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/cable_coil/yellow{ + pixel_x = 2; + pixel_y = -4; + amount = 2 + }, +/obj/item/wallframe/camera{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 5 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"qt" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/grown/tomato{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 6 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"qB" = ( +/mob/living/simple_animal/hostile/killertomato, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/tile/plasteel/tech, +/turf/open/floor/plating, +/area/ruin/powered/hydroponicslab) +"qN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/powered/hydroponicslab) +"ri" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/warning/biohazard{ + pixel_x = 32 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"si" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"ss" = ( +/obj/machinery/door/airlock/highsecurity, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"sv" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/bar{ + dir = 5 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"sx" = ( +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"sK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/tile/plasteel/tech, +/turf/open/floor/plating, +/area/ruin/powered/hydroponicslab) +"sM" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"tk" = ( +/obj/effect/mob_spawn/human/botanist, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/hatchet{ + pixel_x = -5; + pixel_y = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"to" = ( +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = -1 + }, +/obj/machinery/light/dim, +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/caseless{ + pixel_x = 6; + pixel_y = 6; + dir = 5 + }, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/orange, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"tE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"tP" = ( +/obj/structure/table, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/effect/turf_decal/spline/plain/bar{ + dir = 10 + }, +/obj/structure/sign/warning/radiation{ + pixel_x = -32 + }, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"tQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"tS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/junglebush, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"uo" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"up" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/effect/turf_decal/spline/plain/bar{ + dir = 9 + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"uz" = ( +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/obj/effect/turf_decal/corner_techfloor_grid, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/spline/fancy/corner/green{ + color = "#99BB76" + }, +/obj/effect/turf_decal/spline/fancy/corner/green{ + dir = 8; + color = "#99BB76" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"uX" = ( +/obj/structure/table, +/obj/item/seeds/plump/walkingmushroom, +/obj/machinery/light/dim{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"uZ" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/turf_decal/corner_techfloor_grid/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner_techfloor_grid/diagonal, +/obj/effect/turf_decal/spline/fancy/grey{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/grey, +/obj/machinery/door/airlock, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"vc" = ( +/obj/structure/table, +/obj/structure/sign/poster/contraband/kudzu{ + pixel_x = -32 + }, +/obj/item/seeds/kudzu{ + pixel_y = 2; + pixel_x = -3 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/effect/turf_decal/spline/plain/bar{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"vg" = ( +/obj/machinery/door/window/brigdoor{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"vm" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"vH" = ( +/obj/structure/table/wood, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"xb" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/ammonia{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/reagent_containers/glass/bottle/diethylamine{ + pixel_x = -6; + pixel_y = 12 + }, +/obj/item/reagent_containers/glass/bottle/ethanol{ + pixel_x = -4; + pixel_y = 2 + }, +/turf/open/floor/plating/rust, +/area/ruin/powered/hydroponicslab) +"xx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"xE" = ( +/obj/machinery/door/airlock, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"xJ" = ( +/obj/effect/decal/cleanable/blood/gibs/torso, +/obj/item/ammo_casing/caseless{ + pixel_y = 12; + pixel_x = -7 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/powered/hydroponicslab) +"yi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/trash/boritos{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"ys" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/bar{ + dir = 4 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"yV" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/bar{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"zw" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp{ + pixel_y = 5; + pixel_x = -1 + }, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"zy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/purple, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"zH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can{ + pixel_x = 5; + pixel_y = -6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"zN" = ( +/obj/item/pen/blue{ + pixel_y = -2; + pixel_x = -6 + }, +/obj/item/paper/crumpled/bloody/fluff/ruins/hydroponicslab/researcher{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"zO" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"zT" = ( +/obj/machinery/door/airlock/grunge, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/turf_decal/corner_techfloor_grid/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/corner_techfloor_grid/diagonal, +/obj/effect/turf_decal/spline/fancy/grey{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/grey{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"zV" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/turf_decal/corner_techfloor_grid/diagonal, +/obj/effect/turf_decal/corner_techfloor_grid/diagonal{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/grey{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/grey{ + dir = 8 + }, +/obj/machinery/door/airlock/security, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Ac" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4; + pixel_x = 15 + }, +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/powered/hydroponicslab) +"AL" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"AT" = ( +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"Bc" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/machinery/light/small/broken{ + dir = 1 + }, +/obj/item/ammo_casing/caseless{ + pixel_y = -1; + dir = 5; + pixel_x = 3 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/red{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Bx" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"BC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Cg" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/effect/turf_decal/spline/plain/bar, +/obj/structure/sign/warning/fire{ + pixel_y = 32 + }, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"Cr" = ( +/obj/machinery/biogenerator, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"CD" = ( +/obj/item/paper/crumpled/bloody/fluff/ruins/hydroponicslab, +/turf/closed/mineral/snowmountain/icemoon, +/area/icemoon/surface/outdoors) +"CG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"Dj" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 1 + }, +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/nutrient/ez{ + pixel_x = 4; + pixel_y = 7 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"DA" = ( +/obj/effect/turf_decal/spline/plain/bar{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/window/brigdoor/eastright, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"DH" = ( +/obj/structure/closet/secure_closet/freezer/fridge/open, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"DK" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"DO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"DV" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"Eb" = ( +/obj/effect/turf_decal/corner_techfloor_grid, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/spline/fancy/corner/lime{ + color = "#B7D993" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Eo" = ( +/obj/item/trash/sosjerky{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"Ey" = ( +/turf/template_noop, +/area/template_noop) +"EV" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/nutrient/l4z{ + pixel_x = -7; + pixel_y = 1 + }, +/obj/item/reagent_containers/glass/bottle/nutrient/ez{ + pixel_x = 4; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Fy" = ( +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/spline/fancy/bar, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"FO" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/clothing/under/rank/security/officer{ + pixel_x = 7; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/shreds, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 1 + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/corner/red{ + dir = 4; + color = "#B4696A" + }, +/obj/effect/turf_decal/spline/fancy/corner/red{ + dir = 1; + color = "#B4696A" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Gr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/hydroponics/constructable, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"Gy" = ( +/mob/living/simple_animal/hostile/killertomato, +/obj/effect/decal/cleanable/food/tomato_smudge, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4; + pixel_x = 15 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"GK" = ( +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/caseless{ + pixel_x = 8; + pixel_y = -5 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"GN" = ( +/obj/machinery/door/airlock/engineering, +/turf/open/floor/plasteel/stairs, +/area/ruin/powered/hydroponicslab) +"GP" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = 1; + pixel_y = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/powered/hydroponicslab) +"He" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle{ + pixel_x = 7; + pixel_y = 8 + }, +/obj/item/reagent_containers/glass/bottle/sodium{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Hg" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"HF" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/purple, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"HK" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"Ik" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/security, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"IQ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/bag/plants/portaseeder{ + pixel_x = 3; + pixel_y = 0 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"IR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"Je" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/stack/rods{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/shard{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/shard{ + pixel_x = 4 + }, +/obj/effect/turf_decal/borderfloorblack, +/obj/effect/turf_decal/spline/fancy/bar, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"Jn" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/grown/tomato{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 5 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"JD" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"JS" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/orange, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"JZ" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 5 + }, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"Kr" = ( +/obj/structure/chair/office, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"Ks" = ( +/obj/structure/table, +/obj/item/flamethrower/full/tank{ + pixel_x = 11; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/effect/turf_decal/spline/plain/bar, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"KD" = ( +/obj/structure/table, +/obj/item/seeds/cherry{ + pixel_x = 9; + pixel_y = 6 + }, +/obj/item/seeds/carrot{ + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"LM" = ( +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 1 + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/corner/lime{ + dir = 4; + color = "#B7D993" + }, +/obj/effect/turf_decal/spline/fancy/corner/lime{ + dir = 1; + color = "#B7D993" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Mx" = ( +/mob/living/simple_animal/hostile/killertomato, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Mz" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/red{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"MN" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 11 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/hydroponicslab) +"MV" = ( +/mob/living/simple_animal/hostile/killertomato, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"MZ" = ( +/obj/effect/decal/cleanable/food/tomato_smudge, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/corner/green{ + dir = 8; + color = "#99BB76" + }, +/obj/effect/turf_decal/spline/fancy/corner/green{ + dir = 4; + color = "#99BB76" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Nd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/borderfloorblack{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/bar{ + dir = 10 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/powered/hydroponicslab) +"Nf" = ( +/obj/item/paper/guides/jobs/hydroponics{ + pixel_y = 5 + }, +/obj/structure/table, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Nl" = ( +/obj/machinery/seed_extractor, +/obj/machinery/light/dim{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Nv" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"NA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle{ + pixel_x = 7; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/snacks/grown/tomato/blood{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/reagent_containers/glass/bottle/nutrient/rh{ + pixel_y = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"NT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 1 + }, +/obj/structure/frame/machine, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Oz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/lime{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Pa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"Ph" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Pj" = ( +/obj/item/stack/cable_coil/yellow{ + pixel_x = 1; + pixel_y = 4; + amount = 2 + }, +/obj/item/wallframe/camera{ + pixel_x = -11; + pixel_y = 6 + }, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"Pz" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/vault, +/area/ruin/powered/hydroponicslab) +"PQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/plastic, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"PR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/ausbushes/stalkybush, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"PY" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"Qm" = ( +/obj/structure/showcase/machinery/tv, +/obj/structure/table, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"Qt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/snacks/chips{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/structure/table, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"Qu" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"QA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"QT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"Ri" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/green, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"RV" = ( +/mob/living/simple_animal/hostile/killertomato, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/green, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"RX" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/nutrient/rh{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/glass/bottle/mutagen{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/green{ + dir = 5 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"So" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/decal/cleanable/greenglow, +/obj/effect/turf_decal/spline/fancy/purple, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Sq" = ( +/obj/effect/decal/cleanable/food/tomato_smudge, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"SW" = ( +/obj/item/clothing/shoes/jackboots{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/red{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Ti" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/powered/hydroponicslab) +"TR" = ( +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"Uh" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/lime, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"UF" = ( +/obj/structure/table, +/obj/item/pen{ + pixel_x = -6 + }, +/obj/item/paper/crumpled/bloody/fluff/ruins/hydroponicslab/officer{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/red, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"UK" = ( +/obj/structure/toilet{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/hydroponicslab) +"Va" = ( +/obj/item/trash/cheesie{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"Vd" = ( +/obj/structure/table, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 1 + }, +/obj/item/reagent_containers/glass/bottle/diethylamine{ + pixel_x = -4; + pixel_y = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Vo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/door/window/brigdoor{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"Vy" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/mutagen{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/reagent_containers/glass/bottle/nutrient/ez{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"VH" = ( +/obj/structure/table, +/obj/item/seeds/cannabis{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/paper/fluff/ruins/hydroponicslab/botanist{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/pen{ + pixel_x = -9 + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"VN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/light, +/turf/open/floor/grass, +/area/ruin/powered/hydroponicslab) +"We" = ( +/turf/closed/wall/r_wall/rust, +/area/ruin/powered/hydroponicslab) +"Wi" = ( +/obj/structure/marker_beacon, +/turf/open/floor/plating/snowed/temperatre{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/surface/outdoors) +"WK" = ( +/obj/item/stack/cable_coil/yellow{ + pixel_x = 4; + pixel_y = -2; + amount = 2 + }, +/obj/item/wallframe/camera{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Xt" = ( +/obj/structure/table/wood, +/obj/item/folder{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/pen/fountain{ + pixel_x = -6; + pixel_y = 1 + }, +/turf/open/floor/wood/walnut, +/area/ruin/powered/hydroponicslab) +"XC" = ( +/obj/effect/decal/cleanable/food/tomato_smudge, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 4 + }, +/obj/effect/turf_decal/corner_techfloor_grid, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/corner/orange{ + dir = 1; + color = "#C3630C" + }, +/obj/effect/turf_decal/spline/fancy/corner/orange{ + color = "#C3630C" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"YO" = ( +/obj/machinery/computer/security{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/red, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"Zd" = ( +/turf/closed/mineral/snowmountain/icemoon, +/area/icemoon/surface/outdoors) +"Zm" = ( +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 4 + }, +/obj/effect/turf_decal/corner_techfloor_grid, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/corner/purple{ + dir = 1; + color = "#AE8CA8" + }, +/obj/effect/turf_decal/spline/fancy/corner/purple{ + color = "#AE8CA8" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) +"ZN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/grown/mushroom/amanita{ + pixel_y = 5 + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/effect/turf_decal/spline/fancy/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/powered/hydroponicslab) + +(1,1,1) = {" +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Zd +Zd +Zd +Zd +Ey +Ey +Ey +Ey +Zd +Zd +Zd +Zd +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +"} +(2,1,1) = {" +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +Ey +"} +(3,1,1) = {" +Ey +Ey +Ey +Ey +Ey +Ey +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +DV +Ey +Ey +Ey +Ey +Ey +Ey +Ey +"} +(4,1,1) = {" +Ey +Ey +Ey +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +DV +DV +Ey +Ey +Ey +Ey +Ey +Ey +"} +(5,1,1) = {" +Ey +Ey +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +hJ +We +hJ +hJ +Zd +Zd +Zd +DV +DV +DV +DV +Ey +Ey +Ey +Ey +Ey +"} +(6,1,1) = {" +Ey +Zd +Zd +Zd +Zd +CD +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +hJ +UK +gU +hJ +Zd +Zd +DV +DV +DV +DV +Zd +Zd +Ey +Ey +Ey +Ey +"} +(7,1,1) = {" +Ey +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +hJ +We +We +hJ +hJ +pL +MN +hJ +Zd +Zd +DV +DV +DV +Zd +Zd +Zd +Zd +Zd +Ey +Ey +"} +(8,1,1) = {" +Ey +Zd +Zd +Zd +We +hJ +We +hJ +We +hJ +Zd +Zd +Zd +hJ +am +Qt +DH +We +xE +hJ +hJ +Zd +DV +DV +DV +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Ey +"} +(9,1,1) = {" +Zd +Zd +Zd +Zd +We +VH +WK +jl +jC +hJ +Zd +Zd +Zd +We +bD +CG +me +Va +TR +DO +We +Zd +DV +DV +DV +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Ey +"} +(10,1,1) = {" +Zd +Zd +Zd +Zd +hJ +Cr +sK +GP +zy +We +hJ +We +hJ +hJ +pR +IR +lj +zH +Nv +Eo +We +Zd +DV +DV +DV +DV +DV +Zd +Zd +Zd +Zd +Zd +Ey +"} +(11,1,1) = {" +Zd +Zd +Zd +Zd +hJ +Nl +bV +He +So +hJ +gf +SW +mQ +hJ +Pj +iJ +Qm +PQ +yi +HK +hJ +Zd +Zd +DV +DV +DV +DV +DV +Zd +Zd +Zd +Zd +Ey +"} +(12,1,1) = {" +Zd +Zd +Zd +Zd +We +Vd +dB +xb +HF +hJ +Bc +pG +YO +We +TR +fM +hJ +We +hJ +hJ +hJ +Zd +Zd +Zd +DV +DV +DV +DV +DV +Zd +Zd +Zd +Zd +"} +(13,1,1) = {" +Zd +Zd +Zd +Zd +hJ +nS +lk +Vy +mW +zV +FO +xJ +UF +hJ +si +hJ +hJ +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +DV +DV +DV +Zd +Zd +Zd +Zd +"} +(14,1,1) = {" +Ey +Zd +Zd +Zd +hJ +hJ +qc +Zm +oY +We +bv +Mz +iH +hJ +TR +DO +We +hJ +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +DV +DV +DV +DV +Zd +Zd +Zd +"} +(15,1,1) = {" +Ey +Zd +Zd +Zd +Zd +We +hJ +dD +hJ +We +We +Ik +We +hJ +QT +me +DO +hJ +hJ +We +hJ +hJ +Zd +Zd +Zd +Wi +gA +DV +DV +DV +Zd +Zd +Zd +"} +(16,1,1) = {" +Ey +Zd +Zd +Zd +hJ +hJ +JD +gM +GK +nD +hJ +TR +TR +zw +IR +xx +TR +hJ +mU +ag +oT +hJ +Zd +Wi +gA +gA +gA +gA +gA +Zd +Zd +Zd +Zd +"} +(17,1,1) = {" +Ey +Zd +Zd +Zd +hJ +ZN +nI +gC +KD +JS +hJ +Pa +Kr +Xt +aJ +xx +TR +ed +AT +AT +bd +ed +gA +gA +gA +gA +gA +Wi +Zd +Zd +Zd +Zd +Zd +"} +(18,1,1) = {" +Ey +Zd +Zd +Zd +hJ +IQ +gV +pn +Nf +to +hJ +TR +DO +JZ +IR +PY +DO +We +AT +Pz +ab +hJ +Zd +gA +Wi +gA +Zd +Zd +Zd +Zd +Zd +Zd +Zd +"} +(19,1,1) = {" +Ey +Zd +Zd +Zd +We +uX +sx +pj +da +ic +We +vH +vH +vH +aJ +xx +jY +We +hJ +hJ +We +hJ +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +"} +(20,1,1) = {" +Ey +Zd +Zd +Zd +hJ +iz +fd +dB +hw +BC +GN +AL +hd +kw +Ti +QA +hZ +hJ +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +"} +(21,1,1) = {" +Zd +Zd +Zd +Zd +hJ +nn +sM +XC +BC +hJ +hJ +hJ +tQ +Qu +QA +TR +hJ +hJ +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +"} +(22,1,1) = {" +Zd +Zd +Zd +Zd +hJ +We +hJ +uZ +We +hJ +dw +We +hJ +hJ +We +hJ +We +Zd +Zd +Zd +Zd +Zd +hJ +hJ +We +hJ +We +Zd +Zd +Zd +Zd +Zd +Zd +"} +(23,1,1) = {" +Zd +Zd +Zd +Zd +hJ +lw +EV +MZ +Mx +hJ +hJ +hJ +nq +kr +Oz +hJ +Zd +Zd +Zd +Zd +hJ +hJ +We +up +vc +tP +hJ +Zd +Zd +Zd +Zd +Zd +Zd +"} +(24,1,1) = {" +Ey +Zd +Zd +Zd +hJ +pE +Ac +sx +Sq +Ph +hJ +fN +gz +cu +iY +We +hJ +hJ +We +We +hJ +gb +Nd +gl +DA +eD +hJ +We +We +Zd +Zd +Zd +Ey +"} +(25,1,1) = {" +Ey +Zd +Zd +Zd +We +Dj +Gy +vm +MV +Ri +hJ +jr +oo +sK +mb +nL +nj +We +bd +nP +We +lF +iw +ij +mu +jh +uo +tS +hJ +Zd +Zd +Zd +Ey +"} +(26,1,1) = {" +Ey +Zd +Zd +Zd +We +gO +tk +NA +gV +bg +We +NT +iB +zN +sx +fO +Uh +ss +AT +eh +ss +sv +hg +Bx +Fy +Vo +nt +Hg +hJ +Zd +Zd +Zd +Ey +"} +(27,1,1) = {" +Ey +Zd +Zd +Zd +hJ +RX +oO +cu +qB +uz +zT +LM +bP +qN +Eb +bA +kS +hJ +tE +ri +hJ +Ks +vg +hF +Je +nt +gP +VN +hJ +Zd +Zd +Zd +Ey +"} +(28,1,1) = {" +Ey +Zd +Zd +Zd +hJ +hJ +qh +ni +dB +RV +hJ +DK +eX +oK +hs +hJ +We +hJ +hJ +hJ +hJ +Cg +nh +ys +yV +zO +PR +ac +We +Zd +Zd +Zd +Ey +"} +(29,1,1) = {" +Ey +Zd +Zd +Zd +Zd +hJ +We +Jn +iQ +qt +We +ct +aC +bq +We +hJ +Zd +Zd +Zd +Zd +hJ +We +We +hJ +We +Gr +md +hJ +hJ +Zd +Zd +Zd +Ey +"} +(30,1,1) = {" +Ey +Ey +Zd +Zd +Zd +Zd +hJ +hJ +We +hJ +hJ +hJ +hJ +We +We +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +We +hJ +hJ +hJ +Zd +Zd +Zd +Ey +Ey +"} +(31,1,1) = {" +Ey +Ey +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Ey +Ey +"} +(32,1,1) = {" +Ey +Ey +Ey +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Ey +Ey +Ey +"} +(33,1,1) = {" +Ey +Ey +Ey +Ey +Ey +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Zd +Ey +Ey +Ey +Ey +Ey +Zd +Zd +Zd +Zd +Zd +Ey +Ey +Ey +Ey +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm index 6fd155ad8c1f..52156897046c 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm @@ -723,7 +723,7 @@ "rH" = ( /obj/effect/turf_decal/corner/white/diagonal, /obj/machinery/vending/wallmed{ - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable/blue{ icon_state = "1-2" @@ -1327,7 +1327,7 @@ /turf/open/floor/plating/asteroid/snow/icemoon, /area/ruin/unpowered/corprejectrooms) "En" = ( -/obj/item/gun/ballistic/automatic/proto, +/obj/item/gun/ballistic/automatic/smg/proto, /obj/structure/rack, /obj/item/firing_pin, /turf/open/floor/vault, diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm index 3d3319ceb10b..d9961a69886a 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm @@ -290,7 +290,6 @@ dir = 10 }, /obj/structure/table/reinforced, -/obj/structure/table/reinforced, /obj/item/trash/plate, /obj/effect/turf_decal/corner/red/diagonal, /turf/open/floor/plasteel/white, @@ -596,7 +595,7 @@ }, /obj/machinery/power/apc/unlocked{ dir = 4; - pixel_x = 26 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "0-8" diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_slimerancher.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_slimerancher.dmm index c163c10a6071..db9bf679a07d 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_slimerancher.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_slimerancher.dmm @@ -281,7 +281,7 @@ /area/ruin/powered/slimerancher/house) "ld" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -538,7 +538,7 @@ /area/ruin/powered/slimerancher/house) "ur" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/processor/slime{ rating_amount = 2; @@ -600,7 +600,7 @@ pixel_x = -40 }, /obj/structure/extinguisher_cabinet{ - pixel_x = -24 + pixel_x = -25 }, /turf/closed/wall/r_wall, /area/ruin/powered/slimerancher) @@ -664,7 +664,7 @@ /area/ruin/powered/slimerancher/prison) "wo" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -708,7 +708,7 @@ /area/ruin/powered/slimerancher/maints) "yn" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/stack/sheet/glass/fifty, /obj/structure/rack, @@ -787,7 +787,7 @@ /obj/machinery/button/door{ id = "slimerancherlockdown"; name = "Facility Lockdown"; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/mineral/plastitanium/red/brig, /area/ruin/powered/slimerancher/prison) @@ -969,7 +969,7 @@ /obj/machinery/button/door{ id = "slimerancherlockdown"; name = "Facility Lockdown"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/wood, /area/ruin/powered/slimerancher/house) @@ -1109,8 +1109,8 @@ /obj/machinery/button/door{ id = "slimerancherlockdown"; name = "Facility Lockdown"; - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /turf/open/floor/wood, /area/ruin/powered/slimerancher/house) @@ -1225,7 +1225,7 @@ /obj/machinery/button/door{ id = "slimerancherlockdown"; name = "Facility Lockdown"; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/slimerancher/prison) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm index dbd56d34f119..c890253b7b62 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm @@ -213,7 +213,6 @@ dir = 1 }, /obj/structure/table/wood, -/obj/structure/table/wood, /obj/item/paicard, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -661,7 +660,7 @@ /area/ruin/powered) "Ec" = ( /obj/machinery/door/poddoor/shuttledock{ - name = "stolen shuttle storage" + name = "Stolen Shuttle Storage" }, /turf/open/floor/plating, /area/ruin/powered) @@ -918,7 +917,7 @@ "Rj" = ( /obj/machinery/door/poddoor/shutters{ id = "abandonednewcopshuttle"; - name = "shuttle dock" + name = "Shuttle Dock" }, /turf/open/floor/plating, /area/ruin/powered) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm index ac8094e8ddfa..5f29bba97a0b 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm @@ -52,7 +52,6 @@ /area/ruin/unpowered) "cr" = ( /obj/structure/barricade/sandbags, -/obj/structure/barricade/sandbags, /turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/surface/outdoors) "ct" = ( @@ -75,7 +74,6 @@ }, /area/ruin/unpowered) "fd" = ( -/obj/structure/barricade/wooden/snowed, /obj/structure/barricade/wooden/crude/snow, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/ruin/unpowered) @@ -112,7 +110,6 @@ /area/ruin/unpowered) "hg" = ( /obj/structure/barricade/wooden/snowed, -/obj/structure/barricade/wooden/snowed, /turf/open/floor/wood{ initial_gas_mix = "ICEMOON_ATMOS" }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm index 36e4db69397e..40d8929942ef 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm @@ -291,7 +291,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/light{ dir = 4 @@ -379,7 +379,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/blue{ dir = 1 @@ -561,7 +561,6 @@ /turf/open/floor/plating/icemoon, /area/ruin/space/has_grav/ancientstation/medbay) "bG" = ( -/obj/structure/lattice, /turf/closed/wall, /area/ruin/space/has_grav/ancientstation/betastorage) "bH" = ( @@ -850,7 +849,7 @@ /area/ruin/space/has_grav/ancientstation) "cr" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/betacorridor) @@ -1186,7 +1185,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/green{ dir = 1 @@ -1257,7 +1256,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1579,7 +1578,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/item/storage/backpack/old, @@ -1802,7 +1801,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/rnd) @@ -2188,7 +2187,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/rnd) @@ -2421,7 +2420,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Delta Station Artifical Program Core APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/effect/decal/cleanable/blood/gibs/old, @@ -2724,7 +2723,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/alien/drone, @@ -2956,7 +2955,7 @@ "hj" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3153,7 +3152,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/red, /obj/effect/turf_decal/corner/red{ @@ -3291,7 +3290,7 @@ /obj/effect/decal/cleanable/oil, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/yellow{ dir = 1 @@ -3761,7 +3760,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Charlie Engineering APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/effect/turf_decal/corner/yellow, @@ -3902,7 +3901,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/white{ dir = 1 @@ -4391,7 +4390,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -4546,7 +4545,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Charlie Main Corridor APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/structure/cable, @@ -4628,7 +4627,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Beta Atmospherics APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/effect/decal/cleanable/dirt, @@ -4938,7 +4937,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) @@ -5209,7 +5208,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Delta Station Corridor APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, @@ -5350,7 +5349,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/engi) @@ -5358,7 +5357,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/yellow, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, @@ -5512,7 +5511,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "1-2" @@ -6050,7 +6049,6 @@ /turf/closed/wall, /area/ruin/space/has_grav/ancientstation/betacorridor) "nj" = ( -/obj/structure/lattice, /turf/closed/mineral/snowmountain/cavern/icemoon, /area/icemoon/underground/unexplored) "nl" = ( @@ -6204,7 +6202,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/yellow{ dir = 1 @@ -6340,7 +6338,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/yellow{ dir = 1 @@ -6436,7 +6434,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks{ @@ -6907,7 +6905,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/xenoblood/xgibs/up, /obj/structure/cable{ @@ -6929,7 +6927,7 @@ /obj/effect/decal/cleanable/glass, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating/icemoon{ icon_state = "platingdmg3" @@ -7242,7 +7240,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -8039,7 +8037,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks, @@ -8121,7 +8119,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -8217,7 +8215,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light{ dir = 8 @@ -8283,7 +8281,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -8747,7 +8745,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/betacorridor) diff --git a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm index d09666f2d75f..616726dcc836 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm @@ -56,7 +56,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /obj/structure/spacevine, /turf/open/floor/plating, @@ -89,7 +89,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /obj/structure/frame/machine, /obj/structure/spacevine, @@ -244,7 +244,7 @@ }, /obj/machinery/flasher{ id = "Cell 1"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable/orange{ icon_state = "2-8" @@ -286,7 +286,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating/rust, /area/ruin/jungle/interceptor/porthall) @@ -747,7 +747,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24; + pixel_x = 25; pixel_y = -6 }, /obj/machinery/firealarm{ @@ -919,11 +919,11 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/starhall) @@ -982,7 +982,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /obj/structure/spacevine, /turf/open/floor/plating, @@ -1209,7 +1209,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating/airless, /area/ruin/jungle/interceptor/crashsite) @@ -1292,7 +1292,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24; + pixel_x = 25; pixel_y = -6 }, /obj/machinery/firealarm{ @@ -1663,7 +1663,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/starlauncherone) @@ -1786,7 +1786,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24; + pixel_x = 25; pixel_y = -9 }, /obj/machinery/firealarm{ @@ -1891,7 +1891,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/starhall) @@ -2197,7 +2197,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating/airless, /area/ruin/jungle/interceptor/starhall) @@ -2217,7 +2217,7 @@ pixel_y = 6 }, /obj/structure/mirror{ - pixel_x = 24; + pixel_x = 25; pixel_y = 6 }, /obj/structure/cable/green{ @@ -2589,7 +2589,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /obj/structure/spacevine, /turf/open/floor/plating, @@ -2615,7 +2615,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/starlaunchertwo) @@ -2645,7 +2645,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating/rust, /area/ruin/jungle/interceptor/forehall) @@ -2950,7 +2950,7 @@ "yw" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /obj/item/shard, /obj/structure/grille, @@ -3020,7 +3020,7 @@ /obj/effect/turf_decal/industrial/warning/fulltile, /obj/machinery/door/poddoor{ id = "portpodbay"; - name = "Port Podbay blast door" + name = "Port Podbay Blast Door" }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/crashsite) @@ -3414,7 +3414,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24; + pixel_x = 25; pixel_y = -6 }, /obj/machinery/firealarm{ @@ -3497,7 +3497,7 @@ }, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/security) @@ -3542,7 +3542,7 @@ "DG" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/firealarm{ - pixel_y = 24; + pixel_y = 25; pixel_x = 5 }, /obj/machinery/light_switch{ @@ -3937,7 +3937,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/afthall) @@ -4354,7 +4354,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24; + pixel_x = 25; pixel_y = -6 }, /turf/open/floor/plating/rust, @@ -4363,7 +4363,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /obj/structure/spacevine, /obj/structure/spacevine, @@ -5231,7 +5231,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24; + pixel_x = 25; pixel_y = -6 }, /obj/machinery/firealarm{ @@ -5648,7 +5648,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /obj/structure/frame/machine, /obj/item/stack/cable_coil/cut/orange, @@ -5711,7 +5711,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/crashsite) @@ -6295,7 +6295,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/poddoor/shutters/preopen{ id = "condorwindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/porthall) diff --git a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm index fd2100d29cde..96e2f10d0f11 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm @@ -168,7 +168,7 @@ /obj/effect/decal/cleanable/blood/tracks, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/dirt/dust, -/obj/item/gun/ballistic/automatic/aks74u, +/obj/item/gun/ballistic/automatic/smg/aks74u, /obj/item/ammo_casing{ dir = 10; pixel_x = -7; @@ -413,7 +413,7 @@ }, /obj/machinery/light_switch{ pixel_x = 8; - pixel_y = 24; + pixel_y = 25; state_open = 1 }, /obj/effect/decal/cleanable/blood/bubblegum, @@ -1300,7 +1300,7 @@ "uS" = ( /obj/machinery/door/poddoor/shutters{ id = "chemdoors"; - name = "MedTech chemical manufacturing facility shutters" + name = "MedTech Chemical Manufacturing Facility Shutters" }, /turf/open/floor/plating, /area/ship/science/storage) @@ -1646,7 +1646,7 @@ /obj/machinery/door/airlock/command{ id_tag = "office_bolts"; locked = 1; - name = "Facility director's office" + name = "Facility Director's Office" }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -1831,7 +1831,7 @@ /area/ship/bridge) "CV" = ( /obj/machinery/door/airlock/research{ - name = "Chemical factory" + name = "Chemical Factory" }, /obj/effect/decal/cleanable/blood/tracks{ dir = 8 @@ -1914,7 +1914,7 @@ /area/ruin/jungle) "Ei" = ( /obj/machinery/door/airlock/research{ - name = "Chemical factory" + name = "Chemical Factory" }, /turf/open/floor/plasteel/white, /area/ship/science/storage) @@ -2649,7 +2649,7 @@ }, /obj/effect/decal/cleanable/blood/tracks, /obj/machinery/door/airlock/research{ - name = "Chemical factory" + name = "Chemical Factory" }, /turf/open/floor/plasteel/white, /area/ship/science/storage) @@ -3320,7 +3320,7 @@ /area/ship/medical) "XO" = ( /obj/machinery/door/airlock/public{ - name = "MedTech chemical manufacturing facility" + name = "MedTech Chemical Manufacturing Facility" }, /turf/open/floor/plasteel/tech, /area/ship/hallway) diff --git a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm index 1d2537ca991a..7f3751d9d91b 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm @@ -196,7 +196,7 @@ /area/ruin/powered) "rN" = ( /obj/structure/closet/crate/secure/weapon, -/obj/item/gun/ballistic/automatic/c20r, +/obj/item/gun/ballistic/automatic/smg/c20r, /obj/item/ammo_box/magazine/smgm45, /obj/item/ammo_box/magazine/smgm45, /turf/open/floor/plating, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm index fc837fc81c73..6c9c48308a55 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm @@ -137,7 +137,7 @@ "JO" = ( /obj/machinery/door/airlock/highsecurity{ hackProof = 1; - name = "secure airlock" + name = "Secure Airlock" }, /turf/open/floor/mineral/plastitanium{ name = "base floor" diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm index 5dcaec5f400b..b617c2b773dc 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm @@ -83,7 +83,6 @@ /area/lavaland/surface) "av" = ( /obj/structure/barricade/wooden/crude, -/obj/structure/barricade/wooden, /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/plating/asteroid/basalt/wasteland, /area/ruin/unpowered/elephant_graveyard) @@ -436,7 +435,7 @@ /obj/effect/decal/cleanable/glass, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/door/airlock/shuttle{ - name = "archaeology shuttle airlock" + name = "Archaeology Shuttle Airlock" }, /turf/open/floor/mineral/titanium/purple, /area/ruin/powered/graveyard_shuttle) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm index 0cd3c5c13e54..708308f69632 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm @@ -300,7 +300,7 @@ id = "golemloading"; name = "Cargo Blast Door Control"; pixel_x = -5; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/trimline/yellow/arrow_cw{ dir = 4 @@ -1079,14 +1079,14 @@ id = "golemloading"; name = "Cargo Blast Door Control"; pixel_x = -5; - pixel_y = -24 + pixel_y = -25 }, /obj/item/storage/firstaid/regular, /obj/machinery/button/door{ id = "golemwindows"; name = "Window Blast Door Control"; pixel_x = 5; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/trimline/blue/line, /obj/effect/turf_decal/corner/neutral{ diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 757ce0575f78..70dca28c27d8 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -21,7 +21,7 @@ "ag" = ( /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/red{ dir = 1 @@ -195,7 +195,7 @@ /obj/machinery/power/apc/syndicate{ dir = 8; name = "Chemistry APC"; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -255,7 +255,7 @@ "cI" = ( /obj/machinery/power/apc/syndicate{ name = "Experimentation Lab APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/corner/neutral{ @@ -309,7 +309,7 @@ /obj/machinery/power/apc/syndicate{ dir = 1; name = "Virology APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -511,7 +511,7 @@ /area/ruin/unpowered/syndicate_lava_base/cargo) "dL" = ( /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/crate, /obj/item/extinguisher{ @@ -671,7 +671,7 @@ /obj/item/reagent_containers/dropper, /obj/machinery/airalarm/syndicate{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/item/screwdriver/nuke{ @@ -1065,7 +1065,7 @@ "eN" = ( /obj/machinery/airalarm/syndicate{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -1433,7 +1433,7 @@ }, /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/table, /obj/item/clothing/suit/hazardvest, @@ -1525,7 +1525,7 @@ dir = 8 }, /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -1766,7 +1766,7 @@ "gU" = ( /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/sink{ dir = 4; @@ -1806,7 +1806,7 @@ idDoor = "lavaland_syndie_virology_interior"; idSelf = "lavaland_syndie_virology_control"; name = "Virology Access Button"; - pixel_x = -24; + pixel_x = -25; pixel_y = 8; req_access_txt = "150" }, @@ -2163,7 +2163,7 @@ /obj/item/ammo_box/magazine/m10mm, /obj/item/ammo_box/magazine/sniper_rounds, /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/grimy, /area/ruin/unpowered/syndicate_lava_base/dormitories) @@ -2188,7 +2188,7 @@ /obj/structure/table/wood, /obj/item/ammo_box/magazine/m10mm, /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/grimy, /area/ruin/unpowered/syndicate_lava_base/dormitories) @@ -2510,7 +2510,7 @@ /area/ruin/unpowered/syndicate_lava_base/dormitories) "iB" = ( /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, @@ -2679,7 +2679,7 @@ id = "syndie_lavaland_vault"; name = "Vault Bolt Control"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; pixel_y = 8; req_access_txt = "150"; specialfunctions = 4 @@ -2787,7 +2787,7 @@ dir = 4 }, /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/grimy, /area/ruin/unpowered/syndicate_lava_base/dormitories) @@ -2803,7 +2803,7 @@ dir = 8 }, /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/grimy, /area/ruin/unpowered/syndicate_lava_base/dormitories) @@ -3089,7 +3089,7 @@ "kq" = ( /obj/machinery/airalarm/syndicate{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/vending/coffee{ extended_inventory = 1 @@ -3664,7 +3664,7 @@ "lL" = ( /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light/small{ dir = 8 @@ -3733,7 +3733,7 @@ "lU" = ( /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/chair/stool, /obj/effect/turf_decal/corner/neutral{ @@ -3792,7 +3792,7 @@ }, /obj/machinery/airalarm/syndicate{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -3913,7 +3913,7 @@ /obj/machinery/light/small, /obj/machinery/power/apc/syndicate{ name = "Bar APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable, /turf/open/floor/wood, @@ -4127,7 +4127,7 @@ }, /obj/machinery/button/ignition/incinerator/syndicatelava{ pixel_x = 6; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning, /obj/effect/decal/cleanable/dirt, @@ -4349,7 +4349,7 @@ "nH" = ( /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light/small{ dir = 8 @@ -4434,7 +4434,7 @@ /obj/machinery/power/apc/syndicate{ dir = 4; name = "Medbay APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -4537,7 +4537,7 @@ }, /obj/machinery/power/apc/syndicate{ name = "Telecommunications APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -4711,7 +4711,7 @@ idDoor = "lavaland_syndie_virology_exterior"; idSelf = "lavaland_syndie_virology_control"; name = "Virology Access Button"; - pixel_y = -24; + pixel_y = -25; req_access_txt = "150" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4738,7 +4738,7 @@ idInterior = "lavaland_syndie_virology_interior"; idSelf = "lavaland_syndie_virology_control"; name = "Virology Access Console"; - pixel_x = 24; + pixel_x = 25; pixel_y = -5; req_access_txt = "150" }, @@ -4775,7 +4775,7 @@ }, /obj/machinery/airalarm/syndicate{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -4922,7 +4922,7 @@ /obj/machinery/power/apc/syndicate{ dir = 1; name = "Engineering APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 9 @@ -5087,7 +5087,7 @@ "vE" = ( /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -5170,7 +5170,7 @@ dir = 1 }, /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -5939,7 +5939,7 @@ /obj/machinery/power/apc/syndicate{ dir = 8; name = "Primary Hallway APC"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/red{ dir = 1 @@ -5991,7 +5991,7 @@ }, /obj/machinery/power/apc/syndicate{ name = "Dormitories APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral, /obj/structure/cable{ @@ -6552,7 +6552,7 @@ /obj/machinery/power/apc/syndicate{ dir = 1; name = "Cargo Bay APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/emcloset/anchored, /obj/effect/decal/cleanable/dirt, @@ -6621,7 +6621,7 @@ /obj/machinery/power/apc/syndicate{ dir = 1; name = "Arrival Hallway APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/red{ dir = 1 diff --git a/_maps/RandomRuins/ReebeRuins/reebe_arena.dmm b/_maps/RandomRuins/ReebeRuins/reebe_arena.dmm index 69a2cd67058a..86bd4a91ac71 100644 --- a/_maps/RandomRuins/ReebeRuins/reebe_arena.dmm +++ b/_maps/RandomRuins/ReebeRuins/reebe_arena.dmm @@ -5,7 +5,6 @@ /area/template_noop) "bi" = ( /obj/structure/lattice/clockwork, -/obj/structure/lattice/clockwork, /turf/template_noop, /area/template_noop) "dM" = ( diff --git a/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm b/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm index ca1866270cdd..b894cb7b21cb 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm @@ -61,7 +61,7 @@ /obj/structure/table, /obj/machinery/button/door{ pixel_x = 6; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/white, /area/ruin/unpowered) @@ -76,7 +76,7 @@ "fV" = ( /obj/machinery/button/door{ pixel_x = 6; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -126,6 +126,7 @@ "ks" = ( /obj/machinery/computer/rdconsole/core, /obj/effect/decal/cleanable/dirt, +/obj/item/research_notes/loot/big, /turf/open/floor/plasteel/white, /area/ruin/unpowered) "kz" = ( @@ -330,7 +331,7 @@ "zz" = ( /obj/machinery/button/door{ pixel_x = 6; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light_switch{ pixel_x = -7; @@ -497,6 +498,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/asteroid/rockplanet/lit, /area/ruin/unpowered) +"NV" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/unpowered) "Od" = ( /obj/structure/table, /obj/item/hemostat, @@ -656,7 +660,7 @@ "YK" = ( /obj/structure/disposalpipe/broken, /obj/machinery/light_switch{ - pixel_x = -24; + pixel_x = -25; pixel_y = 8 }, /turf/open/floor/plating{ @@ -665,7 +669,7 @@ /area/ruin/unpowered) (1,1,1) = {" -Ts +NV aO Ts Ts @@ -675,18 +679,18 @@ Ts Ts Ts Ts -Ts +NV Cq Cq Cq Cq Cq Cq +NV Ts Ts Ts -Ts -Ts +NV Cq "} (2,1,1) = {" @@ -700,14 +704,14 @@ Ts vc HD Rg -Ts -Ts +NV +NV Gk -Ts -Ts -Ts -Ts -Ts +NV +NV +NV +NV +NV MQ rW MQ @@ -725,14 +729,14 @@ Ts Od cB Gb -Ts +NV aq Cu -Ts +NV Jg LN Jg -Ts +NV MQ MQ MQ @@ -753,11 +757,11 @@ oM Ts Vp Vp -Ts +NV lE tc yH -Ts +NV rW MQ MQ @@ -778,11 +782,11 @@ oJ Ts oa lv -Ts +NV UH rB UH -Ts +NV MQ MQ MQ @@ -807,7 +811,7 @@ TF Jx lv Jx -Ts +NV MQ MQ MQ @@ -828,11 +832,11 @@ Tl Ts lv Vp -Ts +NV Jx NP nS -Ts +NV MQ rW MQ @@ -853,11 +857,11 @@ Vp Ts lv Vp -Ts +NV fB WJ ha -Ts +NV MQ MQ MQ @@ -878,15 +882,15 @@ uD Ts Vp Vp -Ts -Ts -Ts -Ts -Ts -Ts +NV +NV +NV +NV +NV +NV DJ Lt -Ts +NV Cq "} (10,1,1) = {" @@ -903,7 +907,7 @@ sO Ts Vp lv -Ts +NV FH Vx Cu @@ -915,7 +919,7 @@ Cq Cq "} (11,1,1) = {" -Ts +NV Ts fp uQ @@ -925,10 +929,10 @@ Jx ET RV oh -Ts +NV Vp Vp -Ts +NV zz YE tW @@ -1016,16 +1020,16 @@ Cq "} (15,1,1) = {" ra -Ts -Ts -Ts -Ts -Ts +NV +NV +NV +NV +NV Ts oY JY -Ts -Ts +NV +NV Cu oa aI diff --git a/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm index 76ec242020bb..e22746ebc098 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm @@ -38,7 +38,7 @@ /turf/open/floor/bronze, /area/ruin/powered) "hb" = ( -/obj/machinery/quantumpad, +/mob/living/simple_animal/hostile/jungle/mook, /turf/open/floor/bronze, /area/ruin/powered) "hm" = ( @@ -64,6 +64,11 @@ /obj/structure/trap/chill, /turf/open/floor/bronze, /area/ruin/powered) +"jG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/bronze, +/area/ruin/powered) "jK" = ( /obj/effect/decal/cleanable/robot_debris/limb, /turf/open/floor/bronze, @@ -253,6 +258,11 @@ /obj/effect/decal/remains/human, /turf/open/floor/bronze, /area/ruin/powered) +"Ju" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/bronze, +/area/ruin/powered) "Nr" = ( /turf/open/floor/plating/asteroid/rockplanet/lit, /area/overmap_encounter/planetoid/rockplanet/explored) @@ -417,7 +427,7 @@ XY gA Ji lm -NP +hb Bh WK tI @@ -567,15 +577,15 @@ OB "} (13,1,1) = {" Qs -hb +NP NP jK -WK +jG Bh WK Os NP -zj +Ju YQ XY EB diff --git a/_maps/RandomRuins/RockRuins/rockplanet_crash_cult.dmm b/_maps/RandomRuins/RockRuins/rockplanet_crash_cult.dmm index d34163decf35..2cab2c6e52dd 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_crash_cult.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_crash_cult.dmm @@ -143,7 +143,7 @@ }, /obj/machinery/advanced_airlock_controller{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/item/flashlight/glowstick/red{ on = 1 @@ -169,7 +169,7 @@ }, /obj/effect/turf_decal/corner/blue, /obj/machinery/airalarm/directional/south{ - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ruin/unpowered) @@ -182,7 +182,6 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/cult/friendly, -/obj/structure/barricade/wooden, /obj/structure/barricade/wooden/crude, /turf/open/floor/plasteel/cult, /area/ruin/unpowered) @@ -196,7 +195,7 @@ dir = 1 }, /obj/machinery/airalarm/directional/north{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ruin/unpowered) @@ -254,7 +253,6 @@ icon_state = "1-2" }, /obj/machinery/door/airlock/cult/friendly, -/obj/structure/barricade/wooden, /obj/structure/barricade/wooden/crude, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/plasteel/cult, @@ -542,7 +540,7 @@ dir = 4 }, /obj/machinery/airalarm/directional/north{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel/cult, @@ -654,7 +652,7 @@ "wB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/item/radio/intercom/wideband{ - pixel_x = -24; + pixel_x = -25; pixel_y = 28 }, /turf/open/floor/plating, @@ -817,7 +815,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump, /obj/machinery/advanced_airlock_controller{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ruin/unpowered) @@ -991,7 +989,7 @@ "Hl" = ( /obj/effect/turf_decal/corner/brown, /obj/machinery/airalarm/directional/south{ - pixel_y = -24 + pixel_y = -25 }, /obj/structure/rack, /obj/item/pickaxe/emergency, diff --git a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm new file mode 100644 index 000000000000..c7da9a5dae8f --- /dev/null +++ b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm @@ -0,0 +1,4092 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ak" = ( +/turf/open/floor/plating/asteroid/rockplanet, +/area/ruin/powered) +"aB" = ( +/turf/closed/mineral/random/asteroid/rockplanet, +/area/ruin/powered) +"aG" = ( +/turf/open/floor/plating/asteroid/rockplanet/cracked, +/area/ruin/powered) +"aT" = ( +/obj/structure/flora/tree/cactus, +/turf/open/floor/plating/asteroid/rockplanet/cracked, +/area/ruin/powered) +"bc" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/rockplanet/cracked, +/area/ruin/powered) +"bf" = ( +/turf/closed/indestructible/reinforced, +/area/ruin/powered) +"bh" = ( +/obj/machinery/light/dim, +/turf/open/floor/plating/asteroid/rockplanet/cracked, +/area/ruin/powered) +"br" = ( +/obj/machinery/light/dim, +/turf/open/floor/plating/asteroid/rockplanet, +/area/ruin/powered) +"bw" = ( +/obj/structure/rack, +/obj/item/construction/rcd/loaded, +/obj/machinery/light/dim{ + dir = 1 + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"bz" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/sheet/mineral/gold/fifty, +/obj/machinery/light/dim{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"bO" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/closed/wall/r_wall, +/area/ruin/powered) +"bQ" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"bR" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"cb" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"cd" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/closed/wall/r_wall/rust, +/area/ruin/powered) +"cg" = ( +/obj/structure/rack, +/obj/item/stack/sheet/mineral/gold/twenty, +/obj/item/circuitboard/machine/protolathe{ + pixel_x = -7; + pixel_y = 4 + }, +/obj/item/circuitboard/computer/research, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"ck" = ( +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/jungle/mega_arachnid{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"co" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"cq" = ( +/obj/structure/rack, +/obj/item/melee/greykingsword, +/obj/machinery/power/apc/auto_name/north, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"cv" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/ruin/powered) +"cy" = ( +/obj/structure/table/wood/reinforced, +/obj/machinery/computer/secure_data/laptop, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"cQ" = ( +/obj/machinery/computer, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"dr" = ( +/obj/structure/table/wood/reinforced, +/obj/machinery/computer/med_data/laptop, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/newspaper{ + pixel_x = 8; + pixel_y = -6 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"du" = ( +/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/closed/wall/r_wall/rust, +/area/ruin/powered) +"dJ" = ( +/obj/structure/rack, +/obj/item/storage/firstaid/tactical, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"dN" = ( +/turf/open/floor/plating, +/area/ruin/powered) +"dO" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"dU" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/sheet/mineral/gold/twenty, +/obj/item/organ/cyberimp/arm/esword, +/turf/open/floor/plating, +/area/ruin/powered) +"eh" = ( +/obj/machinery/power/smes/magical, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space/basic, +/area/ruin/powered) +"ei" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"em" = ( +/obj/structure/table/wood/reinforced, +/obj/item/melee/classic_baton{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/shield/riot{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/grenade/chem_grenade/teargas{ + pixel_x = -5; + pixel_y = 15 + }, +/obj/machinery/power/apc/auto_name/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"eA" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"eG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"eJ" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"eK" = ( +/obj/structure/table/wood/reinforced, +/obj/item/paper_bin{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/pen/fountain{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/assembly/timer{ + pixel_x = -7; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"fe" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/powered) +"fq" = ( +/obj/machinery/door/keycard/stockroom, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"fF" = ( +/obj/machinery/door/keycard/stockroom, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"fJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/indestructible/reinforced, +/area/ruin/powered) +"fX" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"ga" = ( +/obj/structure/table/wood/reinforced, +/obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/ammo_box/foambox/riot{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"gp" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"gr" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"gv" = ( +/turf/open/floor/plating/rust, +/area/ruin/powered) +"gx" = ( +/obj/structure/filingcabinet/employment, +/obj/structure/safe/floor, +/obj/item/keycard/office, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"gA" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/powered) +"gP" = ( +/obj/machinery/door/keycard/office, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"hf" = ( +/obj/machinery/door/keycard/office, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"hg" = ( +/obj/structure/flora/tree/cactus, +/turf/open/floor/plating/asteroid/rockplanet, +/area/ruin/powered) +"hi" = ( +/turf/closed/wall, +/area/ruin/powered) +"hj" = ( +/turf/closed/wall/rust, +/area/ruin/powered) +"hE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/rust, +/area/ruin/powered) +"hJ" = ( +/turf/closed/wall/r_wall, +/area/ruin/powered) +"hQ" = ( +/obj/machinery/light, +/obj/structure/closet/secure_closet/wall{ + dir = 4; + pixel_x = -27 + }, +/obj/item/storage/firstaid/ancient, +/obj/item/clothing/neck/stethoscope, +/obj/item/grenade/chem_grenade/teargas{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/grenade/chem_grenade/teargas, +/turf/open/floor/plating, +/area/ruin/powered) +"hV" = ( +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"if" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"ig" = ( +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"iE" = ( +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"iS" = ( +/turf/closed/wall/r_wall/rust, +/area/ruin/powered) +"je" = ( +/obj/machinery/door/keycard/entry, +/turf/open/floor/plating, +/area/ruin/powered) +"jq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/keycard/entry, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"jB" = ( +/obj/machinery/vending/sovietsoda, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"jL" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"jO" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/closed/wall/rust, +/area/ruin/powered) +"jR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/rust, +/area/ruin/powered) +"ko" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/ruin/powered) +"kx" = ( +/obj/machinery/door/airlock/highsecurity, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"ky" = ( +/obj/structure/door_assembly/door_assembly_highsecurity, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"kC" = ( +/obj/machinery/door/keycard, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"kI" = ( +/obj/machinery/door/keycard, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"kM" = ( +/obj/structure/railing/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"kU" = ( +/obj/structure/railing, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"lb" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"lg" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"ln" = ( +/obj/structure/railing/corner, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"lw" = ( +/obj/structure/railing, +/obj/machinery/light/dim{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"lC" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"lN" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"lQ" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"mc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"mi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"mu" = ( +/obj/structure/railing/corner, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"my" = ( +/obj/structure/railing, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"mE" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"mR" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"mS" = ( +/obj/structure/railing, +/obj/machinery/light/dim{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"no" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"nq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"nt" = ( +/obj/structure/railing/corner, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"ob" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"oe" = ( +/obj/structure/railing/corner, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"oh" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"oj" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"ol" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/engine, +/area/ruin/powered) +"oo" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"ow" = ( +/obj/structure/railing, +/obj/structure/chair/plastic, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"oG" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/structure/table/greyscale, +/obj/item/trash/semki{ + pixel_y = 11 + }, +/obj/item/laser_pointer/red{ + pixel_y = 3 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"oI" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"oY" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"pm" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"px" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"pC" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"pE" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"pG" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"pP" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/structure/railing/corner, +/turf/open/floor/engine, +/area/ruin/powered) +"pU" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/floor/engine, +/area/ruin/powered) +"qb" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/table/greyscale, +/obj/item/laser_pointer/blue{ + pixel_x = 10; + pixel_y = 9 + }, +/obj/item/megaphone, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"qm" = ( +/obj/structure/railing, +/obj/structure/chair/plastic, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"qt" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"qv" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"qy" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"qG" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"qL" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"rh" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"rm" = ( +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/engine, +/area/ruin/powered) +"ro" = ( +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"rv" = ( +/obj/machinery/recycler/deathtrap, +/turf/open/floor/engine, +/area/ruin/powered) +"rO" = ( +/obj/machinery/conveyor/auto, +/turf/open/floor/engine, +/area/ruin/powered) +"rS" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"rW" = ( +/obj/structure/railing/corner, +/turf/open/floor/engine, +/area/ruin/powered) +"sd" = ( +/obj/structure/railing, +/turf/open/floor/engine, +/area/ruin/powered) +"st" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/ruin/powered) +"sx" = ( +/obj/structure/railing/corner, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/ruin/powered) +"sC" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"sH" = ( +/obj/structure/railing/corner, +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/engine, +/area/ruin/powered) +"sV" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"td" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"te" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"tu" = ( +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/turf/open/floor/engine, +/area/ruin/powered) +"tw" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"tC" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"tR" = ( +/turf/open/floor/engine, +/area/ruin/powered) +"tU" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"ug" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"uu" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"uz" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"uC" = ( +/obj/machinery/plate_press, +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"uQ" = ( +/obj/structure/plasticflaps/opaque, +/turf/open/floor/engine, +/area/ruin/powered) +"uT" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"vi" = ( +/obj/structure/sign/warning/electricshock, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/ruin/powered) +"vs" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"vz" = ( +/obj/machinery/disposal/deliveryChute, +/turf/open/floor/engine, +/area/ruin/powered) +"vJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"vK" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"vN" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"vZ" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"wL" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/dim{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"xc" = ( +/obj/structure/railing, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"xg" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"xq" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"xs" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/structure/sign/number/eight{ + icon_state = "0" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"xx" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/sign/number/eight{ + icon_state = "1" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"xH" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"xY" = ( +/obj/machinery/light/dim{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"xZ" = ( +/obj/machinery/light/dim{ + dir = 8 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"yk" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/engine, +/area/ruin/powered) +"yr" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"yw" = ( +/obj/machinery/power/emitter/ctf{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"yy" = ( +/obj/machinery/conveyor/inverted, +/obj/structure/grille, +/obj/structure/cable, +/obj/item/keycard/entry, +/obj/machinery/light/dim{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"yV" = ( +/obj/machinery/conveyor/inverted, +/obj/structure/grille, +/obj/structure/cable, +/obj/machinery/light/dim{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"za" = ( +/obj/machinery/power/emitter/ctf{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"zg" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/turf/open/floor/engine, +/area/ruin/powered) +"zh" = ( +/obj/structure/railing, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"zy" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/dim{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"zB" = ( +/obj/structure/table/greyscale{ + pixel_y = 8 + }, +/obj/item/storage/toolbox/emergency{ + pixel_y = 13 + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"zC" = ( +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"zK" = ( +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Ae" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs/old{ + dir = 8 + }, +/area/ruin/powered) +"Ai" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"Ak" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"An" = ( +/obj/structure/table/greyscale, +/obj/item/stack/license_plates/empty/fifty{ + pixel_y = 6 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"AT" = ( +/obj/structure/table/greyscale, +/obj/item/stack/medical/gauze/improvised{ + pixel_x = -4; + pixel_y = 10 + }, +/obj/item/storage/firstaid/brute{ + pixel_y = 5 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"AY" = ( +/obj/structure/fence/door/opened{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"Bm" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"Br" = ( +/obj/machinery/conveyor/inverted, +/turf/open/floor/engine, +/area/ruin/powered) +"Bz" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/turf_decal/number/zero, +/turf/open/floor/engine, +/area/ruin/powered) +"BC" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"BE" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/turf/open/floor/engine, +/area/ruin/powered) +"BN" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/machinery/light/dim{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"BQ" = ( +/obj/structure/table/greyscale, +/obj/item/keycard, +/turf/open/floor/engine, +/area/ruin/powered) +"BR" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/obj/effect/turf_decal/number/zero, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"BW" = ( +/obj/structure/fence/door/opened{ + dir = 8 + }, +/turf/open/floor/plasteel/stairs/old{ + dir = 4 + }, +/area/ruin/powered) +"Cg" = ( +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"Ci" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/greyscale, +/obj/item/storage/firstaid/regular{ + pixel_y = 14 + }, +/obj/item/stack/medical/gauze/improvised{ + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"Cn" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/rust, +/area/ruin/powered) +"CK" = ( +/obj/structure/sign/poster/official/moth/hardhats, +/turf/closed/wall, +/area/ruin/powered) +"CW" = ( +/obj/structure/table/greyscale, +/obj/item/clothing/head/collectable/hardhat{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/clothing/head/hardhat, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"Db" = ( +/obj/structure/fluff/broken_flooring{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"Dd" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Dn" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs/old{ + dir = 8 + }, +/area/ruin/powered) +"Dp" = ( +/obj/structure/table/greyscale, +/obj/item/storage/toolbox/drone{ + pixel_x = -1; + pixel_y = 5 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"DE" = ( +/obj/structure/table/greyscale, +/obj/item/stack/license_plates/empty/fifty{ + pixel_x = -9; + pixel_y = 7 + }, +/obj/item/stack/license_plates/empty/fifty, +/turf/open/floor/engine, +/area/ruin/powered) +"DI" = ( +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/engine, +/area/ruin/powered) +"DO" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"Ep" = ( +/obj/structure/railing/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"Ew" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/engine, +/area/ruin/powered) +"EB" = ( +/obj/machinery/conveyor/inverted, +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/engine, +/area/ruin/powered) +"EE" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/structure/sign/number/four, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"EG" = ( +/obj/structure/table/greyscale, +/turf/open/floor/engine, +/area/ruin/powered) +"EK" = ( +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/obj/machinery/light/dim, +/turf/open/floor/engine, +/area/ruin/powered) +"Fa" = ( +/obj/machinery/conveyor/auto, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/obj/item/shard/plasma, +/turf/open/floor/engine, +/area/ruin/powered) +"Fb" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/obj/structure/sign/number/five, +/turf/open/floor/engine, +/area/ruin/powered) +"Fp" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs/old{ + dir = 4 + }, +/area/ruin/powered) +"Fu" = ( +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"Fw" = ( +/obj/structure/table/greyscale, +/obj/item/melee/baton/cattleprod{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_y = 9 + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"FA" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/broken{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"FC" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"FE" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/sign/number/eight{ + icon_state = "0" + }, +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/engine, +/area/ruin/powered) +"FK" = ( +/obj/structure/railing/corner, +/obj/structure/sign/number/eight{ + icon_state = "2" + }, +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/engine, +/area/ruin/powered) +"FR" = ( +/obj/machinery/light/dim{ + dir = 4 + }, +/obj/structure/railing, +/turf/open/floor/engine, +/area/ruin/powered) +"FU" = ( +/obj/machinery/light/dim{ + dir = 8 + }, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"FV" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"Ga" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"Go" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"Gu" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"Gv" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"Gz" = ( +/obj/machinery/conveyor/auto, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/turf/open/floor/engine, +/area/ruin/powered) +"GB" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/broken{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"GE" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"GJ" = ( +/obj/machinery/plate_press, +/obj/machinery/conveyor/auto, +/turf/open/floor/engine, +/area/ruin/powered) +"GN" = ( +/obj/structure/plasticflaps, +/turf/open/floor/engine, +/area/ruin/powered) +"GO" = ( +/obj/structure/table/greyscale, +/obj/item/keycard/stockroom, +/turf/open/floor/engine, +/area/ruin/powered) +"GS" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"GU" = ( +/obj/effect/turf_decal/number/zero, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"GV" = ( +/turf/template_noop, +/area/template_noop) +"Hs" = ( +/obj/effect/turf_decal/number/three, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"HG" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"HL" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"HT" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"Ie" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Ii" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"Ik" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/obj/machinery/light/dim, +/obj/structure/sign/number/eight{ + icon_state = "caution" + }, +/turf/open/floor/engine, +/area/ruin/powered) +"Ip" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"It" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"IA" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/obj/item/shard, +/turf/open/floor/engine, +/area/ruin/powered) +"IF" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"IM" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"IO" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Jj" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Jr" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"Jt" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/engine, +/area/ruin/powered) +"Jy" = ( +/obj/structure/railing{ + dir = 9 + }, +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/plating, +/area/ruin/powered) +"JB" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/item/chair/plastic{ + dir = 1; + pixel_y = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"JC" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/table/greyscale, +/obj/item/megaphone, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"JO" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/obj/structure/railing{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"JV" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"Kb" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"Kj" = ( +/obj/structure/fence/door, +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"Kn" = ( +/obj/structure/fence/door, +/obj/effect/turf_decal/industrial/warning/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"Kr" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"KC" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"KJ" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/engine, +/area/ruin/powered) +"KL" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"KT" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/table/greyscale, +/obj/item/stack/spacecash/c1000{ + pixel_y = 10 + }, +/obj/item/toy/cards/deck/syndicate{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/toy/cards/deck/kotahi, +/turf/open/floor/plating, +/area/ruin/powered) +"Lb" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Lp" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/ruin/powered) +"Lu" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"LO" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"LP" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"LQ" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"LT" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"Mb" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"Me" = ( +/obj/machinery/light/dim, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Mp" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"Mr" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"MN" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Na" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Nn" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"NK" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"NP" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"NR" = ( +/obj/machinery/light/dim, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"NU" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"NX" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/vending/cola/sodie, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/powered) +"Oo" = ( +/obj/structure/table/greyscale, +/obj/item/trash/cheesie{ + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"OA" = ( +/obj/structure/sign/poster/contraband/missing_gloves, +/turf/closed/wall, +/area/ruin/powered) +"OB" = ( +/obj/structure/holosign/barrier/engineering, +/turf/open/floor/plating, +/area/ruin/powered) +"Pa" = ( +/obj/structure/sign/warning/testchamber, +/turf/closed/wall, +/area/ruin/powered) +"Ph" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/vending/snack/green, +/turf/open/floor/plating, +/area/ruin/powered) +"Pt" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"PT" = ( +/turf/open/floor/plasteel/stairs/old, +/area/ruin/powered) +"PU" = ( +/obj/structure/rack, +/obj/item/trash/candy, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/storage/toolbox/drone, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Qd" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"Qr" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Qu" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/stairs/old, +/area/ruin/powered) +"QA" = ( +/obj/machinery/light/broken{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs/old, +/area/ruin/powered) +"QR" = ( +/obj/structure/closet/secure/loot, +/obj/machinery/light/broken{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/suit/toggle/hazard, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Rd" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"Rp" = ( +/obj/structure/closet/secure/loot, +/obj/machinery/light/dim{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/suit/toggle/hazard, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"RB" = ( +/obj/machinery/light/dim{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/stairs/old, +/area/ruin/powered) +"RM" = ( +/obj/effect/spawner/structure/window/hollow/reinforced, +/turf/open/floor/plating, +/area/ruin/powered) +"RQ" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plating, +/area/ruin/powered) +"Sh" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/trash/pistachios, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/storage/toolbox/drone, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Sk" = ( +/obj/machinery/light/dim{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/cracked, +/area/ruin/powered) +"Sm" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Sp" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"St" = ( +/obj/machinery/light/broken{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet, +/area/ruin/powered) +"Su" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 13 + }, +/obj/item/newspaper{ + pixel_x = -5 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"SH" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"SJ" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 13 + }, +/obj/item/newspaper{ + pixel_y = -3 + }, +/obj/item/newspaper{ + pixel_x = 5; + pixel_y = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"SW" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"Tu" = ( +/obj/structure/holosign/barrier/engineering, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"TM" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"TU" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/rockplanet, +/area/ruin/powered) +"Ui" = ( +/obj/machinery/door/airlock/public/glass, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"UH" = ( +/obj/structure/fence/door/opened, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"UJ" = ( +/obj/structure/fence/door, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"UL" = ( +/obj/machinery/door/airlock/public/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"UU" = ( +/obj/machinery/light/broken{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet, +/area/ruin/powered) +"UX" = ( +/obj/machinery/light/dim{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Vr" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plating, +/area/ruin/powered) +"Vu" = ( +/obj/machinery/vending/sovietsoda, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Vv" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Wf" = ( +/obj/item/kirbyplants/dead{ + desc = "It doesn't look very healthy..."; + name = "potted plant"; + pixel_y = 10 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Wi" = ( +/obj/machinery/light/dim{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Wl" = ( +/obj/machinery/light/dim{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/cracked, +/area/ruin/powered) +"Wx" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"WH" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"WK" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"WM" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/mob/living/simple_animal/hostile/jungle/mook, +/turf/open/floor/plasteel/grimy, +/area/ruin/powered) +"WZ" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"XO" = ( +/obj/structure/fluff/broken_flooring, +/turf/open/floor/plating, +/area/ruin/powered) +"XT" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"XX" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/obj/item/pen/fourcolor{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"Yb" = ( +/obj/structure/table/wood, +/obj/item/paper/pamphlet{ + pixel_x = 11; + pixel_y = -5 + }, +/obj/item/paper/pamphlet{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/paper/pamphlet, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"Yg" = ( +/obj/structure/table/wood, +/obj/item/paper/pamphlet{ + pixel_x = 5; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/empty{ + pixel_x = -9; + pixel_y = 12 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"Yl" = ( +/obj/structure/table/wood, +/obj/item/kirbyplants{ + pixel_y = 13 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"Ys" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"YG" = ( +/obj/machinery/light/dim{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet, +/area/ruin/powered) +"YJ" = ( +/obj/item/chair/plastic{ + dir = 1; + pixel_y = 12 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"YR" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"YU" = ( +/obj/machinery/light/broken, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/patterned, +/area/ruin/powered) +"Zc" = ( +/obj/machinery/light/dim, +/obj/structure/table/wood, +/obj/item/newspaper{ + pixel_y = 5 + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"Zd" = ( +/obj/machinery/door/airlock/glass_large, +/turf/open/floor/plating, +/area/ruin/powered) +"Zl" = ( +/obj/machinery/door/airlock/glass_large, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"ZN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"ZX" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) + +(1,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +ak +hg +ak +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(2,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +aG +ak +aG +aG +hg +aG +aG +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(3,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +GV +GV +ak +ak +aG +aG +aB +aB +aB +aG +aG +ak +ak +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(4,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +GV +ak +ak +ak +aG +aB +aB +hj +hj +CK +hi +ak +ak +aG +aG +aG +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(5,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +aG +aG +aG +aG +aB +aB +aB +hj +zB +CW +hi +ak +aG +aG +aG +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(6,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +ak +aG +aG +hi +hj +hj +hi +hi +zC +Db +hi +hj +hi +hj +hj +ak +aG +aG +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(7,1,1) = {" +GV +GV +GV +GV +GV +GV +ak +aG +aT +hi +hi +oe +qG +uu +wL +zK +Dd +FA +GE +Ie +IO +hj +hj +aG +aG +aG +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(8,1,1) = {" +GV +GV +GV +GV +GV +GV +ak +aG +aG +hj +kM +oh +qL +uz +xc +Ae +Dn +FC +uz +qL +Jj +LP +hj +aG +aT +aG +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(9,1,1) = {" +GV +GV +GV +GV +GV +ak +ak +aG +aB +hi +kU +oj +rh +rh +xg +Ai +tR +rW +rh +rh +Jr +LQ +hj +hj +aG +aG +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(10,1,1) = {" +GV +GV +GV +GV +GV +ak +ak +aB +aB +hi +lb +ol +rm +uC +xq +Ak +Ai +sd +GJ +ro +Jt +LT +NX +hj +ak +aG +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(11,1,1) = {" +GV +GV +GV +GV +ak +aB +aB +aB +hi +hi +kU +ol +ro +uQ +xs +An +Dp +FE +uQ +ro +Jt +Mb +Oo +hi +ak +aG +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(12,1,1) = {" +GV +GV +GV +GV +aB +aB +aB +bf +hi +jB +lg +oo +ro +uQ +xx +AT +DE +FK +uQ +ro +Jy +LO +hi +hi +ak +aG +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(13,1,1) = {" +GV +GV +GV +aB +aB +bf +bf +bf +hj +jL +dN +ow +ro +uC +xH +Ai +tR +sd +GJ +ro +JB +Me +hj +aB +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(14,1,1) = {" +GV +GV +GV +aB +aB +bf +eh +fJ +hE +jO +ln +oG +ro +uQ +xY +tR +DI +FR +GN +ro +JC +Mp +hj +aB +ak +ak +ak +ak +ak +aG +aG +aG +aG +aG +aG +ak +ak +GV +GV +GV +GV +"} +(15,1,1) = {" +GV +GV +GV +aB +aB +bf +bf +bf +bf +jR +lw +ol +rv +uQ +hJ +AY +DO +hJ +GO +rv +Jt +LT +hi +aB +aB +aG +aG +aG +aG +TU +aG +aG +aT +aG +aG +aG +ak +GV +GV +GV +GV +"} +(16,1,1) = {" +GV +GV +GV +ak +aB +aB +aB +bf +bf +jR +lC +ol +ro +uQ +xZ +xg +Ep +FU +uQ +ro +Jt +LQ +hi +hi +aB +aG +Sk +aG +aG +ak +UU +aG +aG +Sk +aG +ak +ak +ak +ak +GV +GV +"} +(17,1,1) = {" +GV +GV +ak +aG +aG +ak +aB +aB +bf +ko +lN +oI +rO +rO +yk +pG +Ew +yk +te +te +JO +Mr +Dd +Pa +hi +RM +hi +RM +hj +hj +hi +RM +RM +hi +hj +hj +ak +ak +aG +aG +GV +"} +(18,1,1) = {" +GV +aG +aG +aG +ak +bO +ei +fX +hJ +ko +lC +oY +rS +uT +uT +Bm +sC +uT +uT +uT +JV +LQ +Cg +PT +QA +Qu +PT +zC +Dd +Ui +UX +gv +Wx +XT +YJ +hi +hi +ak +aG +aG +aG +"} +(19,1,1) = {" +GV +aT +bc +bh +bO +cv +em +ga +hQ +ko +kU +pm +rW +rh +yr +vs +vs +FV +tR +Ii +Kb +Mb +hi +hj +hj +hi +hi +Su +SW +hi +Vr +zC +Dd +Dd +zC +Dd +Zd +vZ +ak +ak +aG +"} +(20,1,1) = {" +GV +bc +aG +aG +bQ +cy +eA +gp +hV +ko +lQ +oo +sd +uQ +yw +yw +uQ +Ga +GS +Ik +hj +hj +OA +PU +QR +RQ +hi +hj +hi +hi +Vu +zC +WH +XX +zC +Dd +dN +qG +ak +aG +aG +"} +(21,1,1) = {" +GV +ak +ak +ak +bR +cQ +eG +gr +if +kx +mc +px +st +vi +yy +Br +EB +Br +GU +tR +Kj +MN +Dd +gv +zK +Dd +Sm +Dd +Tu +UH +zC +dN +WK +Yb +Db +YU +hi +hg +ak +aG +aG +"} +(22,1,1) = {" +GV +ak +ak +ak +bR +cQ +eJ +eG +eA +ky +mi +pC +sx +vi +yV +Br +Br +Br +Hs +Ai +Kn +Na +OB +Qd +Rd +zC +Sp +SH +Dd +UJ +zC +gv +WM +Yg +gv +Zc +hi +ak +ak +aT +aG +"} +(23,1,1) = {" +GV +ak +ak +ak +cb +dr +eG +gv +ig +hJ +mu +pE +sd +uQ +za +za +uQ +Go +HG +Ik +hi +hi +Pa +Qr +Rp +Sh +hi +hi +hj +hi +Vv +Dd +WZ +Yl +dN +zC +Zl +ZX +ak +ak +ak +"} +(24,1,1) = {" +GV +GV +ak +br +cd +du +eK +gx +iE +hJ +my +pG +sC +uT +uT +rS +uT +Gu +Ai +Ip +Kr +Mr +hi +hi +hj +hj +hi +SJ +TM +hi +Wf +gv +zC +zC +Dd +zC +ZN +GE +ak +aG +ak +"} +(25,1,1) = {" +GV +GV +GV +ak +aG +cd +fe +gA +iS +hJ +mE +pG +sH +vs +rh +Bz +EE +rh +rh +xg +Ew +LQ +gv +Qu +RB +PT +PT +zC +zC +UL +Wi +zC +XO +Ys +YR +hj +hj +ak +ak +ak +ak +"} +(26,1,1) = {" +GV +GV +ak +ak +aG +aG +aB +aB +aB +hJ +my +pP +sV +vz +zg +BC +BC +te +Gv +It +KC +Nn +zC +Pa +hi +RM +hi +RM +hi +hi +hj +RM +RM +hj +hj +hj +aG +aG +ak +ak +GV +"} +(27,1,1) = {" +GV +ak +aB +aB +aB +aB +aB +aB +bf +hi +mR +pU +td +vJ +vz +BE +BC +Gv +HL +td +KJ +NK +hi +hi +aB +ak +St +ak +ak +aG +Wl +aG +aG +YG +ak +aG +aG +aG +ak +GV +GV +"} +(28,1,1) = {" +ak +aB +aB +bf +bf +bf +bf +bf +bf +hj +mS +pU +ro +td +hJ +BN +BC +hJ +td +IA +KJ +LT +hi +aB +aB +aG +aG +ak +aG +aG +aG +aG +aG +aG +aG +aG +aG +ak +GV +GV +GV +"} +(29,1,1) = {" +ak +aB +bf +bf +cg +dJ +bf +bf +bf +hj +no +qb +te +tR +te +BQ +EG +rO +rO +rO +KL +NP +hi +aB +aG +aG +aG +ak +ak +hg +aG +ak +ak +aG +aG +ak +GV +GV +GV +GV +GV +"} +(30,1,1) = {" +aB +aB +bf +bw +ck +dN +fq +gP +je +kC +nq +qm +tu +tw +hJ +ro +EK +hJ +tw +BC +KT +NR +hi +aG +aG +ak +ak +ak +ak +ak +ak +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +"} +(31,1,1) = {" +aB +aB +bf +bz +co +dO +fF +hf +jq +kI +nt +pE +tw +vK +vz +ro +Fa +Gv +HT +tw +Lb +IO +hi +hj +aG +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(32,1,1) = {" +aB +aB +bf +bf +cq +dU +bf +bf +bf +hi +lC +qt +tC +vz +rO +ro +ro +Gz +Gv +IF +JV +NK +Ph +hj +aG +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(33,1,1) = {" +aB +aB +aB +bf +bf +bf +bf +bf +bf +hi +ob +pG +sC +rS +uT +BR +Fb +uT +uT +Gu +Lp +Mr +Pt +hj +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(34,1,1) = {" +GV +aB +aB +aB +aB +aB +aB +aB +bf +hj +lC +pm +tR +tR +tR +Ai +tR +tR +tR +Ak +Lp +LQ +hj +hj +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(35,1,1) = {" +GV +aG +aG +aG +aG +ak +ak +aB +aB +hj +lQ +qv +tU +vN +zh +BW +Fp +Ga +tU +vN +Lu +NU +hj +aG +hg +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(36,1,1) = {" +GV +GV +aG +ak +ak +ak +ak +aG +aG +hj +hj +qy +ug +vZ +zy +Cg +zC +GB +ug +IM +LO +hi +hi +aG +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(37,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +hg +aG +ak +hj +hj +hj +hi +hi +zC +Fu +hi +hi +hj +hj +hi +aG +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(38,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +GV +ak +ak +aB +aB +aB +aB +hi +Ci +Fw +hi +aG +aG +aG +aT +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(39,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +GV +GV +aG +aG +aG +aB +aB +hj +Cn +hi +hi +aG +aG +aG +aG +aG +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(40,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +aG +ak +ak +aB +aB +aB +ak +aG +aG +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(41,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +ak +ak +ak +ak +ak +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} +(42,1,1) = {" +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +ak +hg +ak +ak +ak +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +GV +"} diff --git a/_maps/RandomRuins/RockRuins/rockplanet_netherworld.dmm b/_maps/RandomRuins/RockRuins/rockplanet_netherworld.dmm deleted file mode 100644 index d7c7e5338fec..000000000000 --- a/_maps/RandomRuins/RockRuins/rockplanet_netherworld.dmm +++ /dev/null @@ -1,2053 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aA" = ( -/obj/item/shard{ - pixel_x = -7 - }, -/obj/item/shard{ - icon_state = "medium"; - pixel_x = 12 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/engine, -/area/ruin/powered) -"bd" = ( -/obj/effect/turf_decal/number/eight, -/obj/structure/fluff/divine/powerpylon, -/turf/open/floor/engine, -/area/ruin/powered) -"bn" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/turf/open/floor/plating, -/area/ruin/powered) -"bI" = ( -/obj/structure/closet/crate/necropolis, -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"bL" = ( -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"ce" = ( -/turf/open/floor/carpet/purple, -/area/ruin/powered) -"cm" = ( -/turf/open/floor/plating/rust, -/area/ruin/powered) -"cA" = ( -/obj/effect/decal/cleanable/glass, -/obj/item/shard{ - icon_state = "small"; - pixel_x = -7; - pixel_y = -14 - }, -/turf/open/floor/carpet/purple, -/area/ruin/powered) -"cF" = ( -/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier, -/obj/structure/table/reinforced, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor7" - }, -/obj/effect/turf_decal/corner/black/half, -/obj/effect/turf_decal/corner/bottlegreen/border{ - dir = 1 - }, -/obj/effect/decal/cleanable/glass, -/obj/item/shard{ - icon_state = "medium"; - pixel_x = 4 - }, -/obj/item/flashlight/lamp, -/turf/open/floor/plasteel/white, -/area/ruin/powered) -"cX" = ( -/obj/structure/table/reinforced, -/obj/machinery/light/dim, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"di" = ( -/mob/living/simple_animal/hostile/netherworld, -/obj/effect/gibspawner/generic/animal, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"dG" = ( -/obj/item/shard{ - pixel_x = 9; - pixel_y = -12 - }, -/obj/structure/destructible/cult/talisman, -/turf/open/floor/engine, -/area/ruin/powered) -"dK" = ( -/obj/structure/closet/syndicate, -/obj/item/kinetic_crusher/old, -/obj/machinery/light/dim, -/turf/open/floor/plating/rust, -/area/ruin/powered) -"dP" = ( -/mob/living/simple_animal/hostile/netherworld, -/obj/machinery/light/dim, -/turf/open/floor/plating, -/area/ruin/powered) -"dR" = ( -/obj/structure/closet/crate/radiation, -/obj/item/geiger_counter, -/obj/item/geiger_counter, -/obj/item/geiger_counter, -/turf/open/floor/plating, -/area/ruin/powered) -"ea" = ( -/obj/item/target/clown, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"es" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor7" - }, -/obj/effect/decal/cleanable/blood/gibs/limb, -/obj/effect/decal/cleanable/glass, -/obj/item/shard{ - pixel_y = -8 - }, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"et" = ( -/obj/effect/gibspawner/human, -/turf/open/floor/plasteel/white, -/area/ruin/powered) -"ex" = ( -/obj/effect/decal/fakelattice, -/turf/template_noop, -/area/ruin/powered) -"eE" = ( -/obj/effect/turf_decal/number/three, -/obj/structure/fluff/divine/powerpylon, -/turf/open/floor/engine, -/area/ruin/powered) -"eJ" = ( -/obj/effect/turf_decal/number/seven, -/turf/open/floor/engine, -/area/ruin/powered) -"fd" = ( -/obj/structure/destructible/cult/forge, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"fg" = ( -/obj/effect/gibspawner/generic/animal, -/obj/effect/gibspawner/generic/animal, -/turf/open/floor/plating, -/area/ruin/powered) -"fn" = ( -/obj/structure/destructible/cult/pylon, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"fv" = ( -/obj/structure/door_assembly/door_assembly_mhatch, -/turf/open/floor/plating/rust, -/area/ruin/powered) -"fw" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating/rust, -/area/ruin/powered) -"fD" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced/tinted/frosted{ - dir = 1 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"fO" = ( -/turf/template_noop, -/area/template_noop) -"gn" = ( -/obj/effect/gibspawner/generic/animal, -/turf/open/indestructible/necropolis{ - icon_state = "necro3" - }, -/area/ruin/powered) -"gr" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/black/half, -/obj/effect/turf_decal/corner/bottlegreen/border{ - dir = 1 - }, -/obj/structure/window/reinforced/tinted/frosted{ - dir = 1 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/white, -/area/ruin/powered) -"gP" = ( -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/structure/window/reinforced/spawner/west, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"hc" = ( -/obj/item/grenade/chem_grenade/smart_metal_foam, -/turf/open/floor/engine, -/area/ruin/powered) -"hi" = ( -/obj/structure/spawner/ice_moon/demonic_portal{ - faction = list("nether"); - max_mobs = 5; - mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo,/mob/living/simple_animal/hostile/netherworld,/mob/living/simple_animal/hostile/netherworld/blankbody,/mob/living/simple_animal/hostile/eyeball,/mob/living/simple_animal/hostile/asteroid/ice_demon,/mob/living/simple_animal/hostile/blob/blobspore,/mob/living/simple_animal/hostile/illusion,/mob/living/simple_animal/imp,/mob/living/simple_animal/hostile/skeleton,/mob/living/simple_animal/hostile/faithless,/mob/living/simple_animal/hostile/retaliate/spaceman,/mob/living/simple_animal/hostile/killertomato,/mob/living/simple_animal/hostile/construct/proteon/hostile); - name = "netherworld link" - }, -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"hP" = ( -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plating, -/area/ruin/powered) -"iJ" = ( -/obj/item/paper{ - info = "Damn this place to hell I have no idea what happen here but I ran here into this room they were building I got no idea whats going to happen now." - }, -/turf/open/floor/engine, -/area/ruin/powered) -"iQ" = ( -/obj/structure/radioactive/supermatter{ - desc = "An strange crystal with the power to leak large amout of radiation."; - name = "object #752-2" - }, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/turf/open/indestructible/necropolis{ - icon_state = "necro3" - }, -/area/ruin/powered) -"iU" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor7" - }, -/obj/effect/decal/cleanable/blood/gibs/torso, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"jj" = ( -/obj/item/shard{ - icon_state = "medium"; - pixel_x = 4 - }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"jn" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/black/half, -/obj/effect/turf_decal/corner/bottlegreen/border{ - dir = 1 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/white, -/area/ruin/powered) -"ku" = ( -/obj/structure/destructible/cult/pylon, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"kD" = ( -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"kI" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"kK" = ( -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"kP" = ( -/obj/machinery/light/broken{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/powered) -"lg" = ( -/turf/closed/wall/r_wall/rust, -/area/ruin/powered) -"lq" = ( -/obj/structure/spawner/ice_moon/demonic_portal{ - faction = list("nether"); - max_mobs = 5; - mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo,/mob/living/simple_animal/hostile/netherworld,/mob/living/simple_animal/hostile/netherworld/blankbody,/mob/living/simple_animal/hostile/eyeball,/mob/living/simple_animal/hostile/asteroid/ice_demon,/mob/living/simple_animal/hostile/blob/blobspore,/mob/living/simple_animal/hostile/illusion,/mob/living/simple_animal/imp,/mob/living/simple_animal/hostile/skeleton,/mob/living/simple_animal/hostile/faithless,/mob/living/simple_animal/hostile/retaliate/spaceman,/mob/living/simple_animal/hostile/killertomato,/mob/living/simple_animal/hostile/construct/proteon/hostile); - name = "netherworld link" - }, -/obj/effect/gibspawner/generic/animal, -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"lv" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"lK" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/black/half, -/obj/effect/turf_decal/corner/bottlegreen/border{ - dir = 1 - }, -/obj/structure/window/reinforced/tinted/frosted{ - dir = 1 - }, -/obj/effect/decal/cleanable/glass, -/obj/item/shard{ - icon_state = "small"; - pixel_x = 8 - }, -/turf/open/floor/plasteel/white, -/area/ruin/powered) -"lM" = ( -/obj/effect/gibspawner/human, -/obj/effect/decal/fakelattice, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor7" - }, -/turf/open/floor/plating, -/area/ruin/powered) -"ma" = ( -/obj/structure/closet/syndicate, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"mh" = ( -/obj/item/shard{ - icon_state = "medium"; - pixel_x = -12 - }, -/obj/effect/gibspawner/generic/animal, -/obj/effect/turf_decal/number/seven, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/turf/open/floor/engine, -/area/ruin/powered) -"mN" = ( -/obj/structure/closet/syndicate, -/obj/machinery/light/dim{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"nF" = ( -/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor6" - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"nI" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plating, -/area/ruin/powered) -"nS" = ( -/obj/structure/door_assembly/door_assembly_hatch, -/turf/open/floor/plating, -/area/ruin/powered) -"ou" = ( -/obj/effect/decal/remains/human, -/obj/item/defibrillator/compact/combat/loaded/nanotrasen{ - pixel_x = 9; - pixel_y = -8 - }, -/obj/item/clothing/head/hardhat/dblue, -/turf/open/floor/engine, -/area/ruin/powered) -"ow" = ( -/obj/structure/destructible/cult/pylon, -/turf/open/floor/plating/rust, -/area/ruin/powered) -"oC" = ( -/obj/structure/fluff/divine/powerpylon, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"oH" = ( -/obj/effect/gibspawner/human, -/turf/open/floor/plating/rust, -/area/ruin/powered) -"oQ" = ( -/obj/machinery/door/airlock/hatch, -/turf/open/floor/plating/rust, -/area/ruin/powered) -"oU" = ( -/obj/item/shard{ - icon_state = "medium"; - pixel_y = 11 - }, -/turf/open/floor/engine, -/area/ruin/powered) -"pd" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"pr" = ( -/obj/effect/gibspawner/generic/animal, -/turf/open/floor/plasteel/vaporwave, -/area/ruin/powered) -"pu" = ( -/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"qd" = ( -/obj/effect/gibspawner/generic/animal, -/obj/item/target/clown, -/turf/open/indestructible/necropolis{ - icon_state = "necro2" - }, -/area/ruin/powered) -"qf" = ( -/obj/item/shard{ - pixel_y = -8 - }, -/turf/open/floor/carpet/purple, -/area/ruin/powered) -"qy" = ( -/obj/item/shard{ - pixel_x = 8 - }, -/obj/effect/decal/cleanable/glass, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"qH" = ( -/obj/item/shard{ - pixel_y = -2 - }, -/obj/effect/decal/cleanable/glass, -/turf/closed/wall/r_wall/rust, -/area/ruin/powered) -"qU" = ( -/obj/item/shard{ - pixel_y = -8 - }, -/obj/effect/decal/cleanable/glass, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"ro" = ( -/obj/structure/closet/infinite{ - name = "object #804" - }, -/turf/open/floor/engine, -/area/ruin/powered) -"rI" = ( -/obj/effect/gibspawner/generic/animal, -/turf/open/floor/plating, -/area/ruin/powered) -"rV" = ( -/obj/effect/decal/cleanable/glass, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"sG" = ( -/obj/effect/gibspawner/human, -/turf/open/floor/plating, -/area/ruin/powered) -"sU" = ( -/mob/living/simple_animal/hostile/netherworld/blankbody, -/turf/open/floor/engine, -/area/ruin/powered) -"tq" = ( -/obj/effect/turf_decal/number/four, -/turf/open/floor/engine, -/area/ruin/powered) -"tu" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor7" - }, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"uz" = ( -/obj/structure/table/reinforced, -/obj/item/flashlight/lamp, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"uZ" = ( -/obj/structure/destructible/cult/pylon, -/turf/open/floor/plating, -/area/ruin/powered) -"vh" = ( -/obj/machinery/light/dim{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"vF" = ( -/obj/structure/fluff/divine/powerpylon, -/turf/open/floor/plating, -/area/ruin/powered) -"vV" = ( -/obj/effect/gibspawner/generic/animal, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"wi" = ( -/obj/item/shard, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"xV" = ( -/obj/machinery/light/dim{ - dir = 8 - }, -/turf/open/floor/plasteel/vaporwave, -/area/ruin/powered) -"yc" = ( -/obj/effect/gibspawner/generic/animal, -/mob/living/simple_animal/hostile/clown/mutant/blob{ - faction = list("nether"); - name = "Something that was once a human" - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"yD" = ( -/obj/effect/decal/fakelattice, -/turf/open/floor/plating, -/area/ruin/powered) -"yQ" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"zi" = ( -/turf/open/floor/plasteel/white, -/area/ruin/powered) -"zm" = ( -/obj/effect/decal/cleanable/glass, -/obj/item/organ/brain, -/turf/open/indestructible/necropolis{ - icon_state = "necro2" - }, -/area/ruin/powered) -"zp" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor7" - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"Ac" = ( -/obj/item/shard{ - icon_state = "small"; - pixel_x = -7; - pixel_y = -14 - }, -/obj/item/shard{ - icon_state = "small"; - pixel_x = 8 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/engine, -/area/ruin/powered) -"As" = ( -/obj/item/shard{ - pixel_x = -7 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/engine, -/area/ruin/powered) -"Ba" = ( -/obj/item/shard{ - icon_state = "medium" - }, -/obj/effect/decal/cleanable/glass, -/obj/structure/fluff/divine/powerpylon, -/turf/open/floor/engine, -/area/ruin/powered) -"Bi" = ( -/obj/effect/gibspawner/human, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"Bp" = ( -/obj/effect/turf_decal/number/eight, -/turf/open/floor/engine, -/area/ruin/powered) -"Bw" = ( -/obj/structure/door_assembly/door_assembly_hatch, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"BW" = ( -/obj/effect/decal/fakelattice, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor2" - }, -/obj/item/shard{ - pixel_y = -2 - }, -/turf/open/floor/plating, -/area/ruin/powered) -"Cf" = ( -/mob/living/simple_animal/hostile/netherworld, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"CB" = ( -/obj/structure/closet/radiation, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/head/radiation, -/turf/open/floor/plating, -/area/ruin/powered) -"Ds" = ( -/obj/effect/gibspawner/generic/animal, -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"DC" = ( -/obj/effect/gibspawner/generic/animal, -/obj/item/clothing/glasses/godeye{ - desc = "A strange eye, said to belong to a very old being with the power to twist the world around him."; - name = "eye of Yog-Soggoth" - }, -/turf/open/indestructible/necropolis{ - icon_state = "necro3" - }, -/area/ruin/powered) -"DU" = ( -/mob/living/simple_animal/hostile/netherworld/blankbody, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"Eh" = ( -/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/turf/open/floor/engine, -/area/ruin/powered) -"EN" = ( -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"EV" = ( -/obj/structure/table/reinforced, -/obj/structure/sign/poster/retro/nanotrasen_logo_80s{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"FN" = ( -/obj/structure/window/reinforced/spawner/east, -/turf/open/floor/engine, -/area/ruin/powered) -"Ge" = ( -/obj/machinery/door/airlock/hatch, -/turf/open/floor/plating, -/area/ruin/powered) -"Gq" = ( -/obj/structure/spawner/ice_moon/demonic_portal{ - faction = list("nether"); - max_mobs = 5; - mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo,/mob/living/simple_animal/hostile/netherworld,/mob/living/simple_animal/hostile/netherworld/blankbody,/mob/living/simple_animal/hostile/eyeball,/mob/living/simple_animal/hostile/asteroid/ice_demon,/mob/living/simple_animal/hostile/blob/blobspore,/mob/living/simple_animal/hostile/illusion,/mob/living/simple_animal/imp,/mob/living/simple_animal/hostile/skeleton,/mob/living/simple_animal/hostile/faithless,/mob/living/simple_animal/hostile/retaliate/spaceman,/mob/living/simple_animal/hostile/killertomato,/mob/living/simple_animal/hostile/construct/proteon/hostile); - name = "netherworld link" - }, -/obj/effect/gibspawner/human, -/turf/open/indestructible/necropolis{ - icon_state = "necro2" - }, -/area/ruin/powered) -"Gs" = ( -/obj/effect/decal/cleanable/glass, -/obj/effect/turf_decal/radiation{ - pixel_y = 30 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"GV" = ( -/obj/structure/sign/poster/retro/nanotrasen_logo_80s{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"Hk" = ( -/obj/machinery/door/airlock/hatch, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"Hv" = ( -/obj/item/shard{ - icon_state = "medium" - }, -/obj/effect/decal/cleanable/glass, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"HV" = ( -/obj/structure/closet/syndicate, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"Ie" = ( -/obj/structure/fluff/divine/powerpylon, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor3" - }, -/turf/open/floor/engine, -/area/ruin/powered) -"IA" = ( -/turf/closed/wall/r_wall, -/area/ruin/powered) -"IB" = ( -/obj/effect/gibspawner/generic/animal, -/obj/effect/gibspawner/generic/animal, -/obj/machinery/light/dim, -/turf/open/indestructible/necropolis{ - icon_state = "necro2" - }, -/area/ruin/powered) -"IY" = ( -/obj/structure/spawner/ice_moon/demonic_portal{ - faction = list("nether"); - max_mobs = 5; - mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo,/mob/living/simple_animal/hostile/netherworld,/mob/living/simple_animal/hostile/netherworld/blankbody,/mob/living/simple_animal/hostile/netherworld/blankbody,/mob/living/simple_animal/hostile/eyeball,/mob/living/simple_animal/hostile/asteroid/ice_demon,/mob/living/simple_animal/hostile/blob/blobspore,/mob/living/simple_animal/hostile/illusion,/mob/living/simple_animal/imp,/mob/living/simple_animal/hostile/skeleton,/mob/living/simple_animal/hostile/faithless,/mob/living/simple_animal/hostile/retaliate/spaceman,/mob/living/simple_animal/hostile/killertomato,/mob/living/simple_animal/hostile/construct/proteon/hostile); - name = "netherworld link" - }, -/obj/effect/gibspawner/generic/animal, -/obj/effect/gibspawner/generic/animal, -/turf/open/indestructible/necropolis{ - icon_state = "necro2" - }, -/area/ruin/powered) -"Jh" = ( -/obj/item/shard{ - icon_state = "small"; - pixel_y = 10 - }, -/obj/item/shard{ - icon_state = "small"; - pixel_y = -9 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/engine, -/area/ruin/powered) -"Jm" = ( -/obj/effect/turf_decal/number/zero, -/turf/open/floor/engine, -/area/ruin/powered) -"Jq" = ( -/turf/open/floor/plasteel/vaporwave, -/area/ruin/powered) -"Ju" = ( -/obj/structure/closet/syndicate, -/obj/item/kinetic_crusher/old, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"JB" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/obj/machinery/light/broken{ - dir = 4 - }, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"JK" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"JW" = ( -/mob/living/simple_animal/hostile/netherworld/blankbody, -/obj/effect/gibspawner/generic/animal, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"JY" = ( -/obj/structure/closet/radiation, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/head/radiation, -/turf/open/floor/plating/rust, -/area/ruin/powered) -"Kq" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/turf/open/floor/plasteel/white, -/area/ruin/powered) -"KB" = ( -/obj/effect/decal/fakelattice, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/obj/effect/decal/cleanable/blood/gibs/up, -/obj/effect/decal/cleanable/glass, -/obj/item/shard{ - pixel_y = -8 - }, -/turf/open/floor/plating, -/area/ruin/powered) -"KK" = ( -/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"Ly" = ( -/obj/effect/decal/fakelattice, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor2" - }, -/turf/open/floor/plating, -/area/ruin/powered) -"LC" = ( -/obj/effect/turf_decal/radiation{ - pixel_y = -30 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"LS" = ( -/obj/structure/spawner/ice_moon/demonic_portal{ - faction = list("nether"); - max_mobs = 5; - mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo,/mob/living/simple_animal/hostile/netherworld,/mob/living/simple_animal/hostile/netherworld/blankbody,/mob/living/simple_animal/hostile/eyeball,/mob/living/simple_animal/hostile/asteroid/ice_demon,/mob/living/simple_animal/hostile/blob/blobspore,/mob/living/simple_animal/hostile/illusion,/mob/living/simple_animal/imp,/mob/living/simple_animal/hostile/skeleton,/mob/living/simple_animal/hostile/faithless,/mob/living/simple_animal/hostile/retaliate/spaceman,/mob/living/simple_animal/hostile/killertomato,/mob/living/simple_animal/hostile/construct/proteon/hostile); - name = "netherworld link" - }, -/turf/open/floor/plasteel/vaporwave, -/area/ruin/powered) -"LW" = ( -/obj/effect/gibspawner/generic/animal, -/obj/item/organ/brain, -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"LX" = ( -/obj/item/reagent_containers/spray/chemsprayer/janitor, -/turf/open/floor/engine, -/area/ruin/powered) -"Mp" = ( -/mob/living/simple_animal/hostile/clown/mutant/blob{ - faction = list("nether"); - name = "Something that was once a human" - }, -/turf/open/floor/engine, -/area/ruin/powered) -"MZ" = ( -/obj/structure/destructible/cult/talisman, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor3" - }, -/turf/open/floor/engine, -/area/ruin/powered) -"Nb" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor2" - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"Nh" = ( -/obj/effect/decal/fakelattice, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor7" - }, -/turf/open/floor/plating, -/area/ruin/powered) -"Nv" = ( -/obj/effect/gibspawner/generic/animal, -/obj/effect/turf_decal/number/five, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/turf/open/floor/engine, -/area/ruin/powered) -"NR" = ( -/obj/effect/gibspawner/generic/animal, -/obj/item/crusher_trophy/miner_eye{ - name = "eye of the endless hunger" - }, -/turf/open/floor/plating, -/area/ruin/powered) -"Ou" = ( -/obj/structure/fluff/divine/powerpylon, -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"OF" = ( -/obj/structure/destructible/cult/forge, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor2" - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"OK" = ( -/turf/open/indestructible/necropolis{ - icon_state = "necro3" - }, -/area/ruin/powered) -"OU" = ( -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"OW" = ( -/obj/structure/sign/poster/retro/nanotrasen_logo_80s{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"OZ" = ( -/obj/effect/decal/cleanable/glass, -/obj/effect/gibspawner/generic/animal, -/obj/structure/destructible/cult/tome, -/turf/open/floor/engine, -/area/ruin/powered) -"Po" = ( -/obj/effect/decal/cleanable/glass, -/obj/structure/destructible/cult/pylon, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"PS" = ( -/obj/effect/gibspawner/generic/animal, -/obj/item/organ/brain, -/turf/open/indestructible/necropolis{ - icon_state = "necro2" - }, -/area/ruin/powered) -"Qo" = ( -/obj/structure/spawner/ice_moon/demonic_portal{ - faction = list("nether"); - max_mobs = 5; - mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo,/mob/living/simple_animal/hostile/netherworld,/mob/living/simple_animal/hostile/netherworld/blankbody,/mob/living/simple_animal/hostile/eyeball,/mob/living/simple_animal/hostile/asteroid/ice_demon,/mob/living/simple_animal/hostile/blob/blobspore,/mob/living/simple_animal/hostile/illusion,/mob/living/simple_animal/imp,/mob/living/simple_animal/hostile/skeleton,/mob/living/simple_animal/hostile/faithless,/mob/living/simple_animal/hostile/retaliate/spaceman,/mob/living/simple_animal/hostile/killertomato,/mob/living/simple_animal/hostile/construct/proteon/hostile); - name = "netherworld link" - }, -/obj/effect/gibspawner/generic/animal, -/turf/open/indestructible/necropolis{ - icon_state = "necro2" - }, -/area/ruin/powered) -"Qz" = ( -/obj/structure/destructible/cult/tome, -/turf/open/floor/engine, -/area/ruin/powered) -"QE" = ( -/obj/structure/foamedmetal/resin, -/turf/open/space/basic, -/area/ruin/powered) -"QI" = ( -/obj/effect/gibspawner/human, -/obj/structure/closet/radiation, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/head/radiation, -/obj/item/clothing/head/radiation, -/turf/open/floor/plating, -/area/ruin/powered) -"Rp" = ( -/turf/open/floor/plating, -/area/ruin/powered) -"RB" = ( -/mob/living/simple_animal/hostile/netherworld/migo, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"St" = ( -/turf/open/floor/engine, -/area/ruin/powered) -"Tc" = ( -/obj/effect/decal/cleanable/glass, -/turf/open/floor/engine, -/area/ruin/powered) -"Tt" = ( -/obj/effect/gibspawner/generic/animal, -/mob/living/simple_animal/hostile/clown/mutant/blob{ - faction = list("nether"); - name = "Something that was once a human" - }, -/obj/item/documents/nanotrasen, -/turf/open/indestructible/necropolis{ - icon_state = "necro2" - }, -/area/ruin/powered) -"TG" = ( -/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor7" - }, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor2" - }, -/turf/open/floor/plating, -/area/ruin/powered) -"TI" = ( -/mob/living/simple_animal/hostile/netherworld, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"TP" = ( -/obj/structure/table/reinforced, -/obj/item/stock_parts/cell/infinite{ - desc = "A label says the word ouroboros."; - name = "object #378 " - }, -/obj/effect/turf_decal/industrial/warning/full, -/turf/open/floor/engine, -/area/ruin/powered) -"TS" = ( -/obj/effect/gibspawner/human, -/obj/structure/table/reinforced, -/obj/machinery/light/dim{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"TT" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/machinery/light/dim, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"Ui" = ( -/obj/item/shard{ - icon_state = "medium"; - pixel_x = -12 - }, -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/engine, -/area/ruin/powered) -"Uj" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/turf/open/floor/engine, -/area/ruin/powered) -"UH" = ( -/mob/living/simple_animal/hostile/netherworld, -/turf/open/floor/plating, -/area/ruin/powered) -"UY" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/cult, -/area/ruin/powered) -"Vq" = ( -/obj/machinery/door/airlock/hatch, -/turf/open/floor/plasteel/white, -/area/ruin/powered) -"WQ" = ( -/obj/structure/fluff/divine/powerpylon, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"Xg" = ( -/obj/effect/decal/cleanable/generic, -/obj/effect/gibspawner/generic/animal, -/turf/open/floor/plating, -/area/ruin/powered) -"Xo" = ( -/obj/item/shard{ - pixel_x = 7 - }, -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/generic, -/obj/effect/turf_decal/industrial/warning/fulltile, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"XV" = ( -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"Yv" = ( -/obj/effect/decal/cleanable/generic, -/obj/effect/gibspawner/generic/animal, -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/structure/window/reinforced/spawner/west, -/turf/open/floor/plasteel/dark, -/area/ruin/powered) -"Zb" = ( -/obj/machinery/light/dim, -/turf/open/indestructible/necropolis{ - icon_state = "necro3" - }, -/area/ruin/powered) -"Zp" = ( -/turf/open/indestructible/necropolis{ - icon_state = "necro2" - }, -/area/ruin/powered) -"ZE" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating, -/area/ruin/powered) -"ZI" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "floor7" - }, -/obj/effect/decal/cleanable/blood/gibs/limb, -/obj/machinery/light/dim{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/powered) -"ZL" = ( -/obj/machinery/light/dim{ - dir = 1 - }, -/turf/open/floor/carpet/purple, -/area/ruin/powered) -"ZQ" = ( -/obj/effect/gibspawner/human, -/obj/effect/decal/cleanable/blood{ - icon_state = "floor4" - }, -/turf/open/indestructible/necropolis, -/area/ruin/powered) -"ZW" = ( -/obj/effect/decal/fakelattice, -/turf/open/floor/plating/rust, -/area/ruin/powered) - -(1,1,1) = {" -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -"} -(2,1,1) = {" -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -IA -IA -IA -IA -IA -IA -IA -IA -IA -fO -fO -fO -fO -"} -(3,1,1) = {" -lg -IA -lg -lg -lg -fO -fO -IA -IA -IA -IA -IA -fO -fO -fO -fO -fO -lg -fd -RB -OW -xV -Jq -DU -kD -IA -fO -fO -fO -fO -"} -(4,1,1) = {" -IA -qd -ea -ea -lg -fO -IA -IA -St -St -St -IA -IA -fO -fO -fO -fO -lg -OF -pu -JK -OU -Jq -LS -kD -IA -fO -fO -fO -fO -"} -(5,1,1) = {" -lg -lq -Tt -Zb -IA -fO -IA -St -ou -St -Bp -St -IA -IA -IA -IA -IA -cm -Nb -kD -JW -OU -Jq -pr -vV -lg -fO -fO -fO -fO -"} -(6,1,1) = {" -lg -NR -Ds -hi -IA -fO -IA -yD -yD -ro -Jm -iJ -Ge -QE -QE -QE -Rp -nS -OU -kD -kD -OU -OU -pr -Jq -lg -fO -fO -fO -fO -"} -(7,1,1) = {" -lg -rI -rI -DC -IA -fO -IA -yD -yD -LX -tq -hc -IA -IA -IA -IA -IA -IA -lg -IA -IA -Hk -IA -cm -lg -IA -fO -fO -fO -fO -"} -(8,1,1) = {" -lg -Rp -rI -rI -lg -fO -IA -IA -yD -yD -St -IA -IA -fO -fO -fO -fO -fO -fO -fO -lg -OU -IA -fO -fO -fO -fO -fO -fO -fO -"} -(9,1,1) = {" -lg -vF -rI -fg -lg -fO -fO -IA -IA -IA -IA -IA -fO -fO -fO -fO -fO -fO -fO -fO -cm -OU -IA -fO -fO -fO -fO -fO -fO -fO -"} -(10,1,1) = {" -lg -Rp -Rp -rI -lg -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -IA -OU -IA -IA -IA -fO -fO -fO -fO -fO -"} -(11,1,1) = {" -IA -Rp -yD -uZ -IA -fO -fO -lg -IA -lg -lg -IA -fO -fO -fO -fO -IA -lg -IA -lg -IA -Hk -IA -Rp -IA -IA -fO -fO -fO -fO -"} -(12,1,1) = {" -lg -Rp -Rp -dP -lg -fO -lg -lg -Eh -St -St -lg -lg -fO -ex -ex -lg -EV -OU -WQ -OU -Rp -kK -Zp -Ds -IA -IA -fO -fO -fO -"} -(13,1,1) = {" -lg -Rp -Rp -Rp -lg -fO -lg -MZ -Ie -Uj -eE -St -lg -lg -cm -lg -lg -yQ -ow -OU -OU -Rp -hP -cm -Qo -Rp -IA -fO -fO -fO -"} -(14,1,1) = {" -lg -Rp -Rp -yD -lg -fO -lg -Qz -St -TP -eJ -St -IA -JY -Rp -fw -IA -TS -rI -Xg -Xg -Xg -vV -OU -OK -IB -IA -fO -fO -fO -"} -(15,1,1) = {" -IA -UH -yD -yD -lg -fO -IA -dG -Ba -sU -bd -Mp -IA -QI -oH -ZE -IA -uz -sG -sG -OU -TI -kD -kD -TI -OK -IA -fO -fO -fO -"} -(16,1,1) = {" -lg -yD -yD -yD -lg -fO -IA -lg -aA -Jh -FN -lg -lg -CB -sG -dR -cm -yQ -Bi -Bi -ku -kD -kD -kD -kD -kI -IA -fO -fO -fO -"} -(17,1,1) = {" -lg -nI -nI -nI -lg -fO -ZW -rV -Hv -EN -gP -Yv -IA -JY -Rp -dR -IA -yQ -kD -kD -OU -OU -KK -cm -OU -uz -IA -fO -fO -fO -"} -(18,1,1) = {" -lg -OU -OU -TT -lg -IA -ZW -OU -OU -cm -OU -LC -IA -IA -fv -lg -lg -kD -kD -OU -di -vV -cm -cm -ku -yQ -IA -fO -fO -fO -"} -(19,1,1) = {" -lg -OU -cm -bL -oQ -OU -OU -OU -OU -Po -OU -XV -Hk -UY -kD -kD -OU -vV -vV -yc -vV -OU -OU -OU -Bi -cX -lg -fO -fO -fO -"} -(20,1,1) = {" -lg -OU -OU -pd -lg -lg -IA -Gs -OU -OU -wi -LC -IA -lg -lg -IA -IA -vh -vV -OU -OU -OU -OU -Rp -WQ -yQ -IA -fO -fO -fO -"} -(21,1,1) = {" -IA -GV -fn -OU -lg -fO -IA -jj -qU -Cf -qy -Xo -IA -fO -fO -fO -IA -IA -Bw -IA -IA -IA -IA -Ge -IA -lg -lg -fO -fO -fO -"} -(22,1,1) = {" -IA -OU -zp -Rp -lg -fO -lg -lg -Ac -Ui -As -qH -lg -fO -fO -fO -IA -ce -ce -ce -lK -iU -ZI -Ly -Rp -zi -lg -fO -fO -fO -"} -(23,1,1) = {" -IA -nF -zp -oC -IA -fO -lg -OZ -zm -Tc -mh -oU -lg -fO -fO -fO -IA -ZL -ce -cA -cF -es -KB -lM -zi -zi -lg -kP -Rp -Rp -"} -(24,1,1) = {" -IA -cm -cm -tu -IA -fO -cm -Ou -PS -iQ -Nv -Uj -IA -fO -fO -fO -IA -ce -Zp -qf -jn -BW -Nh -Rp -et -zi -Vq -Rp -sG -Rp -"} -(25,1,1) = {" -IA -WQ -OU -zp -IA -fO -lg -St -bI -LW -IY -OK -lg -fO -fO -fO -IA -lv -Gq -OK -fD -ZQ -bn -TG -et -zi -lg -kP -sG -sG -"} -(26,1,1) = {" -IA -IA -Hk -IA -IA -fO -lg -lg -gn -Ds -St -lg -IA -fO -fO -fO -IA -lv -OK -ce -gr -kD -JB -Kq -zi -zi -cm -fO -fO -fO -"} -(27,1,1) = {" -IA -ma -cm -Ju -IA -fO -fO -lg -IA -lg -ZW -IA -fO -fO -fO -fO -IA -IA -IA -IA -IA -IA -IA -cm -lg -IA -lg -fO -fO -fO -"} -(28,1,1) = {" -IA -mN -kD -dK -lg -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -"} -(29,1,1) = {" -IA -HV -OU -Ju -IA -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -"} -(30,1,1) = {" -IA -IA -IA -lg -lg -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -fO -"} diff --git a/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm b/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm new file mode 100644 index 000000000000..fe9e234ae6e8 --- /dev/null +++ b/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm @@ -0,0 +1,2429 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/structure/chair/stool/bar{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"al" = ( +/obj/structure/barricade/wooden, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered) +"an" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"aJ" = ( +/obj/structure/table/wood/fancy/red_gold, +/obj/item/toy/cards/deck/syndicate, +/turf/open/floor/carpet/nanoweave, +/area/ruin/unpowered) +"bi" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/small{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"bC" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor3-old" + }, +/obj/item/reagent_containers/hypospray/medipen{ + desc = "A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge. Contains a powerful preservative that can delay decomposition when applied to a dead body. This one is spent."; + icon_state = "medipen0"; + list_reagents = null; + name = "spent epinephrine medipen"; + pixel_x = 3; + pixel_y = -8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 4 + }, +/turf/open/floor/wood/walnut, +/area/ruin/unpowered) +"bK" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/tequila{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"cf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered) +"ch" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"ci" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered) +"cr" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/small{ + pixel_x = 1; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"cH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ruin/unpowered) +"dw" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/end, +/turf/open/floor/plasteel/grimy, +/area/ruin/unpowered) +"dF" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor5-old" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 6 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"dP" = ( +/mob/living/simple_animal/hostile/netherworld/migo, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/ruin/unpowered) +"dS" = ( +/mob/living/simple_animal/hostile/mining_drone/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"dW" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/shaker{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/reagent_containers/glass/rag{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"dZ" = ( +/obj/structure/railing{ + color = "#BA8C63" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"ei" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered) +"eF" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/candle{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ruin/unpowered) +"eJ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"eM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"eS" = ( +/obj/item/chair/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"eX" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/curtain, +/obj/effect/decal/cleanable/vomit/old{ + icon_state = "vomit_4-old" + }, +/mob/living/simple_animal/hostile/netherworld, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor2-old" + }, +/obj/item/storage/firstaid{ + pixel_x = -6; + pixel_y = 2 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"fo" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"fs" = ( +/obj/item/chair/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"fu" = ( +/obj/structure/table/wood/fancy/red_gold, +/obj/item/stack/spacecash/c500{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave, +/area/ruin/unpowered) +"fL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered) +"fN" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"fO" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"fZ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/black, +/area/ruin/unpowered) +"gq" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/candle{ + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"gL" = ( +/obj/structure/railing{ + color = "#BA8C63" + }, +/obj/structure/railing/corner{ + color = "#BA8C63"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"hj" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/barman_recipes{ + pixel_x = -2; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/flask{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 8 + }, +/turf/open/floor/wood/walnut, +/area/ruin/unpowered) +"hp" = ( +/obj/structure/sink{ + dir = 1 + }, +/obj/structure/mirror{ + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor6-old" + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"ib" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"im" = ( +/obj/item/clothing/mask/breath{ + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/tank/internals/emergency_oxygen/engi/empty{ + pixel_x = -18; + pixel_y = -6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/ebony, +/area/ruin/unpowered) +"it" = ( +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"iS" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/bottle{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"jz" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/mob/living/simple_animal/hostile/netherworld/migo, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"jQ" = ( +/mob/living/simple_animal/hostile/netherworld, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"jW" = ( +/obj/structure/barricade/wooden/crude, +/obj/structure/door_assembly/door_assembly_wood{ + anchored = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"kb" = ( +/obj/structure/barricade/wooden/crude, +/obj/machinery/door/airlock/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/maple, +/area/ruin/unpowered) +"kd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ruin/unpowered) +"kh" = ( +/obj/item/ammo_casing/caseless{ + pixel_x = -4; + pixel_y = -7 + }, +/obj/item/ammo_casing/caseless{ + pixel_x = 9; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblack, +/area/ruin/unpowered) +"kq" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor6-old" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/ebony{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered) +"la" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green, +/area/ruin/unpowered) +"lH" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/candle{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"lI" = ( +/obj/effect/spawner/structure/window, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/ruin/unpowered) +"lM" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 4 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered) +"lT" = ( +/obj/item/ammo_casing/caseless{ + pixel_x = -3; + pixel_y = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/unpowered) +"lV" = ( +/obj/structure/sink{ + pixel_y = 16 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/vomit/old{ + icon_state = "vomit_1-old" + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"lW" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/under/rank/civilian/bartender{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/clothing/shoes/laceup{ + pixel_x = -6; + pixel_y = -10 + }, +/obj/item/clothing/suit/armor/vest/alt{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_x = -10; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor5-old" + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 4 + }, +/mob/living/simple_animal/hostile/illusion, +/turf/open/floor/wood/walnut, +/area/ruin/unpowered) +"mh" = ( +/obj/machinery/vending/boozeomat/all_access, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"mC" = ( +/obj/structure/railing{ + color = "#BA8C63" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered) +"mE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/ruin/unpowered) +"mZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"ou" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered) +"oN" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/candle{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered) +"pe" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"pp" = ( +/obj/structure/railing{ + color = "#BA8C63"; + dir = 10 + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"pz" = ( +/obj/structure/chair/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"pM" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/candle{ + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ruin/unpowered) +"pO" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"pV" = ( +/obj/item/ammo_casing/caseless{ + pixel_x = 6; + pixel_y = -10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblack, +/area/ruin/unpowered) +"pY" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"qd" = ( +/obj/structure/door_assembly/door_assembly_wood{ + anchored = 1 + }, +/turf/open/floor/wood/maple, +/area/ruin/unpowered) +"qh" = ( +/obj/structure/door_assembly/door_assembly_silver{ + anchored = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"qy" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"rh" = ( +/obj/item/chair/stool/bar{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"rB" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 6 + }, +/turf/open/floor/wood/walnut, +/area/ruin/unpowered) +"rT" = ( +/obj/structure/sink{ + dir = 1 + }, +/obj/structure/mirror{ + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"sj" = ( +/obj/structure/railing/corner{ + color = "#BA8C63" + }, +/obj/item/ammo_casing/caseless{ + pixel_x = -4; + pixel_y = -7 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"sF" = ( +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/netherworld/migo, +/turf/open/floor/wood, +/area/ruin/unpowered) +"to" = ( +/obj/structure/closet/cabinet, +/obj/item/storage/bag/money/vault, +/obj/item/stack/spacecash/c1000, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 5 + }, +/turf/open/floor/wood/walnut, +/area/ruin/unpowered) +"tK" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"tL" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor2-old" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/unpowered) +"tO" = ( +/obj/structure/closet/crate/bin, +/obj/item/broken_bottle{ + pixel_x = -6; + pixel_y = -4 + }, +/obj/item/paper/crumpled{ + pixel_x = 1; + pixel_y = -5 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_y = -6 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 10 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken2" + }, +/area/ruin/unpowered) +"tR" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"tZ" = ( +/obj/structure/barricade/wooden, +/obj/effect/spawner/structure/window, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered) +"ud" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered) +"ul" = ( +/obj/machinery/vending/classicbeats, +/turf/open/floor/carpet/green, +/area/ruin/unpowered) +"uS" = ( +/obj/structure/barricade/wooden, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/ruin/unpowered) +"va" = ( +/obj/machinery/chem_master/condimaster{ + desc = "Used to mix booze. You can see a Coondimaster label lazily covered up."; + name = "Hoochmaster 2000" + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 9 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken2" + }, +/area/ruin/unpowered) +"ve" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered) +"wu" = ( +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"wD" = ( +/turf/open/floor/carpet/black, +/area/ruin/unpowered) +"wJ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered) +"wQ" = ( +/obj/item/stack/medical/mesh{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/ebony, +/area/ruin/unpowered) +"wZ" = ( +/obj/machinery/door/airlock/silver, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"xc" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/candle{ + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"xl" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/cognac{ + pixel_x = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"xE" = ( +/obj/structure/railing/corner{ + color = "#BA8C63"; + dir = 4 + }, +/obj/item/gun/ballistic/automatic/pistol/no_mag, +/obj/item/ammo_casing/caseless{ + pixel_x = 6; + pixel_y = -10 + }, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"xH" = ( +/obj/structure/table/wood/fancy/red_gold, +/obj/item/stack/spacecash/c200{ + pixel_x = -4; + pixel_y = -6 + }, +/obj/item/coin/iron{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/coin/iron{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/coin/iron{ + pixel_x = -6; + pixel_y = 6 + }, +/turf/open/floor/carpet/nanoweave, +/area/ruin/unpowered) +"yn" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/candle{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"yp" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor7-old" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"yQ" = ( +/obj/structure/door_assembly/door_assembly_silver{ + anchored = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"zm" = ( +/obj/structure/railing/corner{ + color = "#BA8C63"; + dir = 8 + }, +/obj/item/ammo_casing/caseless{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/ammo_casing/caseless{ + pixel_x = 6; + pixel_y = -10 + }, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor7-old" + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ruin/unpowered) +"zC" = ( +/obj/item/clothing/neck/tie/black, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/ebony{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"zG" = ( +/obj/structure/chair/stool/bar{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Aa" = ( +/obj/structure/dresser, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = -4; + pixel_y = 12 + }, +/obj/item/storage/firstaid{ + empty = 1; + pixel_x = -12; + pixel_y = -9 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 5 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"Ab" = ( +/obj/structure/toilet, +/obj/structure/curtain, +/obj/effect/decal/cleanable/vomit/old{ + icon_state = "vomit_3-old" + }, +/mob/living/simple_animal/hostile/cockroach/glockroach, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"Ad" = ( +/obj/structure/table/wood, +/obj/machinery/reagentgrinder{ + pixel_y = 8 + }, +/obj/item/storage/box/drinkingglasses, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 8 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered) +"AO" = ( +/obj/machinery/door/airlock/silver, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"AR" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered) +"AY" = ( +/obj/structure/musician/piano, +/turf/open/floor/carpet/green, +/area/ruin/unpowered) +"Bz" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"BI" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered) +"CC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"CG" = ( +/obj/item/chair/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered) +"CH" = ( +/obj/structure/sink{ + pixel_y = 16 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"Dj" = ( +/mob/living/simple_animal/hostile/netherworld/migo, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"Dt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30" + }, +/turf/open/floor/wood/walnut, +/area/ruin/unpowered) +"Dw" = ( +/obj/item/chair/stool/bar, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"DT" = ( +/obj/structure/table/wood/fancy/red_gold, +/obj/item/stack/spacecash/c100{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/coin/gold{ + pixel_x = 4; + pixel_y = 5 + }, +/turf/open/floor/carpet/nanoweave, +/area/ruin/unpowered) +"DW" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"DX" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"FN" = ( +/obj/item/shard, +/obj/structure/barricade/wooden/crude, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered) +"FW" = ( +/obj/structure/chair/stool/bar, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Gd" = ( +/obj/structure/railing{ + color = "#BA8C63"; + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Gr" = ( +/obj/structure/barricade/wooden, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/ruin/unpowered) +"Gw" = ( +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/netherworld/migo, +/turf/open/floor/carpet/green, +/area/ruin/unpowered) +"GG" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor3-old" + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"GT" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor5-old" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"GZ" = ( +/obj/structure/railing/corner{ + color = "#BA8C63"; + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/ruin/unpowered) +"Hu" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor6-old" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Hz" = ( +/obj/structure/chair/stool{ + dir = 8 + }, +/turf/open/floor/carpet/green, +/area/ruin/unpowered) +"HY" = ( +/obj/structure/chair/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Ih" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_y = 4 + }, +/obj/item/lighter{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30" + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered) +"Im" = ( +/obj/structure/chair/stool/bar{ + pixel_x = 16 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Iz" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/ruin/unpowered) +"IB" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"IJ" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor5-old" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Jj" = ( +/obj/item/stack/medical/mesh{ + pixel_x = 12; + pixel_y = -7 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 1 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken6" + }, +/area/ruin/unpowered) +"Kd" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Ku" = ( +/obj/structure/railing/corner{ + color = "#BA8C63"; + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/ruin/unpowered) +"KX" = ( +/obj/structure/toilet, +/obj/structure/curtain, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor7-old" + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"Ls" = ( +/mob/living/simple_animal/hostile/cockroach/glockroach, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"LY" = ( +/obj/structure/railing/corner{ + color = "#BA8C63"; + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"Mp" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ruin/unpowered) +"Ms" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"MG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblack, +/area/ruin/unpowered) +"MR" = ( +/turf/open/floor/wood, +/area/ruin/unpowered) +"MW" = ( +/obj/structure/railing{ + color = "#BA8C63" + }, +/obj/structure/railing/corner{ + color = "#BA8C63" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Na" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ruin/unpowered) +"Nc" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ruin/unpowered) +"Nz" = ( +/obj/item/shard{ + icon_state = "small" + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered) +"NI" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/ruin/unpowered) +"NM" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/curtain, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"NS" = ( +/obj/item/chair/stool{ + dir = 8 + }, +/turf/open/floor/carpet/green, +/area/ruin/unpowered) +"OX" = ( +/obj/machinery/door/airlock/silver, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor4-old" + }, +/turf/open/floor/plasteel/freezer, +/area/ruin/unpowered) +"Pe" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"Pn" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/unpowered) +"Po" = ( +/obj/item/chair/stool/bar{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"PL" = ( +/obj/effect/decal/cleanable/generic, +/obj/item/storage/box/papersack{ + pixel_x = -8; + pixel_y = -3 + }, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"PU" = ( +/obj/item/megaphone{ + pixel_x = 10; + pixel_y = 16 + }, +/obj/item/candle/tribal_torch{ + pixel_x = 16 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblack, +/area/ruin/unpowered) +"Qf" = ( +/obj/item/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Qr" = ( +/turf/open/floor/carpet/royalblack, +/area/ruin/unpowered) +"Qx" = ( +/obj/item/chair/stool/bar, +/turf/open/floor/wood, +/area/ruin/unpowered) +"QB" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"QC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) +"QT" = ( +/obj/machinery/jukebox, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"QZ" = ( +/obj/structure/closet/crate/wooden, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"Ri" = ( +/turf/template_noop, +/area/template_noop) +"Sm" = ( +/obj/item/ammo_casing/shotgun/buckshot, +/obj/item/ammo_casing/shotgun/buckshot{ + pixel_x = 5; + pixel_y = -3 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"SR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"To" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered) +"Tr" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Tt" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_x = -5 + }, +/obj/item/candle{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/book{ + desc = "Retells the moments of a bartender in this saloon. Find out it's pages have been lost to time."; + icon_state = "book4"; + name = "bartender's diary"; + pixel_x = 15; + pixel_y = 4 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 10 + }, +/turf/open/floor/wood/walnut, +/area/ruin/unpowered) +"Tv" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/civilian/bartender/purple, +/obj/item/clothing/under/rank/civilian/bartender/skirt, +/obj/item/toy/figure/bartender, +/obj/item/clothing/head/collectable/tophat, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 9 + }, +/turf/open/floor/wood/walnut, +/area/ruin/unpowered) +"TM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Un" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/candle{ + pixel_y = 6 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"UB" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/reagent_containers/food/drinks/bottle/vermouth{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/drinks/bottle/wine{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/bottle/kahlua{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/bottle/grappa{ + pixel_x = -6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Ve" = ( +/turf/open/floor/carpet/green, +/area/ruin/unpowered) +"VE" = ( +/obj/structure/chair/stool/bar{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"VG" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/obj/effect/decal/cleanable/glass, +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered) +"VN" = ( +/obj/structure/table/wood/fancy/black, +/obj/structure/sign/poster/official/high_class_martini{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Wj" = ( +/obj/structure/barricade/wooden, +/obj/item/shard{ + icon_state = "small" + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered) +"Wl" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/ruin/unpowered) +"Wu" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/cigbutt/cigarbutt{ + pixel_y = -6 + }, +/obj/item/broken_bottle{ + pixel_x = -6; + pixel_y = -4 + }, +/obj/item/paper/crumpled{ + pixel_x = 8; + pixel_y = -6 + }, +/obj/item/paper/crumpled{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/item/broken_bottle{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/spawner/lootdrop/gloves, +/obj/effect/spawner/lootdrop/glowstick, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/ruin/unpowered) +"WS" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered) +"Xa" = ( +/obj/item/ammo_casing/caseless, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor6-old" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered) +"Xi" = ( +/obj/item/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Xn" = ( +/obj/item/stack/medical/gauze{ + amount = 2; + pixel_x = 4; + pixel_y = 13 + }, +/obj/item/stack/medical/suture{ + amount = 4; + pixel_x = 7 + }, +/obj/item/stack/medical/suture{ + amount = 1; + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/healthanalyzer{ + pixel_x = -4; + pixel_y = -13 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 4 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken5" + }, +/area/ruin/unpowered) +"XI" = ( +/obj/item/chair/stool/bar, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor7-old" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/ruin/unpowered) +"XZ" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/lootdrop/maintenance/five, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Yj" = ( +/obj/structure/barricade/wooden, +/obj/item/shard{ + icon_state = "medium" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/ruin/unpowered) +"Ym" = ( +/obj/item/chair/stool/bar{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Yo" = ( +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/ruin/unpowered) +"Yx" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/machinery/chem_dispenser/drinks{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"YG" = ( +/obj/structure/chair/stool/bar{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"Zd" = ( +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/ruin/unpowered) +"Zn" = ( +/obj/item/chair/stool/bar{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/unpowered) +"Zu" = ( +/obj/structure/chair/wood{ + pixel_x = 16; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 8 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken3" + }, +/area/ruin/unpowered) +"ZA" = ( +/obj/item/chair/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered) +"ZE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + color = "#543C30"; + dir = 8 + }, +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken" + }, +/area/ruin/unpowered) +"ZM" = ( +/obj/item/chair/wood, +/turf/open/floor/wood, +/area/ruin/unpowered) +"ZZ" = ( +/obj/item/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered) + +(1,1,1) = {" +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +it +"} +(2,1,1) = {" +Ri +Ri +Ri +Ri +Ri +Ri +Ri +Ri +it +Zd +Zd +Ri +Ri +Ri +Ri +Ri +Ri +Ri +it +Zd +"} +(3,1,1) = {" +Ri +Ri +Ri +Ri +Ri +Zd +it +Zd +Zd +Zd +it +it +Zd +Zd +Zd +Zd +it +Zd +Zd +Ri +"} +(4,1,1) = {" +Ri +Ri +Ri +Ri +Zd +dP +Zd +Zd +Zd +it +Zd +Zd +Zd +it +Zd +it +Zd +Zd +it +Ri +"} +(5,1,1) = {" +Ri +Ri +Ri +Ri +it +Zd +Zd +Pn +Pn +Wj +ou +Pn +Pn +Pn +Yj +uS +Pn +AR +Zd +Zd +"} +(6,1,1) = {" +Ri +Ri +Ri +Zd +Zd +Zd +it +Pn +va +Ad +hj +tO +Pn +Tv +ZE +Zu +Tt +Pn +Zd +it +"} +(7,1,1) = {" +Ri +Ri +Zd +it +Zd +Zd +Zd +AR +Jj +wQ +kq +Dt +kb +ve +im +zC +Ih +Pn +it +Zd +"} +(8,1,1) = {" +Ri +Zd +Zd +Zd +it +Zd +jQ +Wl +to +lM +bC +dF +Pn +Aa +lW +Xn +rB +AR +it +Ri +"} +(9,1,1) = {" +Zd +it +Pn +Pn +AR +Pn +Pn +Pn +Pn +Wl +Pn +qd +Pn +Pn +Pn +Pn +Pn +Pn +Zd +Zd +"} +(10,1,1) = {" +it +Zd +Pn +CG +gq +fO +ZA +pM +fO +FW +xc +Hu +mh +UB +Yx +tR +VN +Pn +Zd +it +"} +(11,1,1) = {" +it +Zd +Gr +eM +QC +QC +QC +cf +MR +Qx +iS +Mp +tL +Na +Na +dw +fN +lI +it +Zd +"} +(12,1,1) = {" +Zd +dS +Nz +CC +ib +pO +MR +pY +sF +ci +QC +yp +QC +Sm +QC +ci +Ms +Yj +it +Zd +"} +(13,1,1) = {" +Zd +it +Pn +fZ +fZ +fZ +fo +lH +BI +MR +cr +xl +an +bi +bK +dW +yn +Pn +pp +Dj +"} +(14,1,1) = {" +Ri +Yo +Pn +Ve +la +fZ +wJ +Xi +QC +QC +YG +Zn +zG +XI +Dw +Po +aa +Pn +mC +it +"} +(15,1,1) = {" +Zd +Wu +Pn +NS +Ve +fZ +fZ +eM +mE +MR +QC +MR +pY +IJ +kh +GT +tK +Pn +MW +Ku +"} +(16,1,1) = {" +Zd +PL +Pn +ul +Gw +PU +fZ +fo +ZM +QC +mE +fs +lH +jz +pV +lT +Xa +jW +zm +LY +"} +(17,1,1) = {" +Ri +Zd +Pn +AY +la +MG +fZ +pz +lH +QB +Bz +MR +ZZ +pe +MG +Qr +ud +wu +sj +xE +"} +(18,1,1) = {" +Zd +QZ +Pn +Hz +la +fZ +wD +fo +IB +QC +cf +QC +Mp +fN +MG +eJ +mZ +Pn +gL +GZ +"} +(19,1,1) = {" +Zd +Pe +Pn +la +la +wD +eJ +qy +BI +QC +pY +QC +MR +VE +rh +qy +QT +Pn +dZ +Zd +"} +(20,1,1) = {" +it +Iz +Pn +fZ +wD +fZ +fo +MR +QC +ZZ +Un +QB +Im +aJ +DT +cf +pe +Pn +Gd +it +"} +(21,1,1) = {" +Zd +Zd +FN +eJ +ch +cH +sF +QC +MR +QC +IB +QC +NI +xH +fu +QC +fN +VG +it +Zd +"} +(22,1,1) = {" +it +it +tZ +fL +QC +QC +MR +cf +QC +MR +WS +QC +QC +Ym +zG +MR +XZ +ou +Zd +it +"} +(23,1,1) = {" +Zd +it +Pn +HY +oN +Qf +eS +eF +DW +ib +ib +TM +ib +ib +kd +SR +DX +Pn +Zd +it +"} +(24,1,1) = {" +Zd +Zd +Pn +Wl +AR +AR +Pn +Pn +Pn +Wl +Pn +Nc +Pn +AR +To +Pn +Pn +Pn +Zd +Zd +"} +(25,1,1) = {" +Ri +it +Zd +Zd +Zd +it +Pn +Ab +AO +hp +Pn +Tr +Pn +CH +yQ +NM +AR +it +Zd +Ri +"} +(26,1,1) = {" +Ri +Ri +Zd +it +Zd +Zd +Pn +Pn +Pn +rT +Pn +ei +Pn +lV +Pn +Pn +Pn +Zd +Zd +Ri +"} +(27,1,1) = {" +Ri +Ri +Ri +Zd +it +it +AR +KX +yQ +Ls +wZ +Kd +qh +GG +OX +eX +Pn +Zd +Ri +Ri +"} +(28,1,1) = {" +Ri +Ri +Ri +Ri +Zd +it +Pn +Pn +Pn +Pn +Pn +al +Pn +Pn +Pn +Pn +Pn +Zd +it +Ri +"} +(29,1,1) = {" +Ri +Ri +Ri +Ri +Ri +Zd +it +it +Zd +Zd +it +it +Zd +it +Zd +Zd +it +Zd +it +Ri +"} +(30,1,1) = {" +Ri +Ri +Ri +Ri +Ri +Ri +Zd +Zd +it +Dj +Zd +Zd +it +Zd +it +Zd +Zd +Ri +Zd +it +"} diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_adobe.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_adobe.dmm index 6038152131f7..5012d599d7df 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_adobe.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_adobe.dmm @@ -42,7 +42,7 @@ /area/whitesands/surface/outdoors) "n" = ( /obj/structure/table, -/obj/item/gun/ballistic/automatic/aks74u, +/obj/item/gun/ballistic/automatic/smg/aks74u, /obj/item/ammo_box/magazine/aks74u, /turf/open/floor/plating/asteroid/whitesands/dried, /area/whitesands/surface/outdoors) diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm index 32663b364968..d3d1f6a9f30e 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm @@ -236,7 +236,6 @@ /area/whitesands/surface/outdoors) "zh" = ( /obj/structure/table/wood, -/obj/structure/table/wood, /turf/open/floor/wood, /area/whitesands/surface/outdoors) "AW" = ( diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm index d64dbad927bb..9f5eb3f4df8f 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm @@ -651,7 +651,7 @@ /area/whitesands/surface/outdoors) "qs" = ( /obj/machinery/door/airlock/security/glass{ - name = "Break room" + name = "Break Room" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 8 @@ -796,7 +796,6 @@ /area/whitesands/surface/outdoors) "tu" = ( /obj/structure/chair/stool, -/obj/structure/chair/stool, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm index 79e39b7ed311..152d41ccddf2 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation.dmm @@ -460,7 +460,7 @@ "uK" = ( /obj/machinery/power/apc{ name = "Worn-out APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable{ icon_state = "0-4" diff --git a/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm b/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm index aa617cb2a062..1b581c110fd1 100644 --- a/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm +++ b/_maps/RandomRuins/SpaceRuins/Fast_Food.dmm @@ -332,7 +332,6 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/powered/macspace) "aI" = ( -/obj/structure/table, /obj/structure/table/wood/fancy/blue, /obj/effect/turf_decal/corner/white{ dir = 1 @@ -1647,13 +1646,11 @@ /turf/open/floor/mineral/titanium, /area/ruin/space/has_grav/powered/macspace) "jH" = ( -/obj/structure/table, /obj/structure/table/wood/fancy/blue, /obj/item/reagent_containers/food/snacks/pizza/margherita, /turf/open/floor/carpet, /area/ruin/space/has_grav/powered/macspace) "yl" = ( -/obj/structure/table, /obj/structure/table/wood/fancy/blue, /obj/item/reagent_containers/food/snacks/burger/brain, /turf/open/floor/carpet, @@ -1673,7 +1670,6 @@ /turf/open/floor/mineral/titanium/airless, /area/ruin/space/has_grav/powered/macspace) "LY" = ( -/obj/structure/table, /obj/structure/table/wood/fancy/blue, /obj/item/reagent_containers/food/snacks/burger/jelly/slime, /turf/open/floor/carpet, diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm index fb1f2f411a7f..bd8e9edcfb33 100644 --- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm +++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm @@ -1457,7 +1457,7 @@ /turf/open/floor/plating/airless, /area/ruin/unpowered) "Nk" = ( -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /turf/open/floor/plating/airless{ icon_state = "platingdmg3" }, diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index cd2a940db128..78d883dbcd47 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -38,7 +38,7 @@ /obj/machinery/button/door{ id = "bigderelictshipdock"; name = "tradepost entry doors"; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/cargobay) @@ -62,7 +62,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Cargo Bay APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/structure/cable{ @@ -319,7 +319,7 @@ /obj/machinery/button/door{ id = "bigderelictship"; name = "shuttle cargo doors"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/alien/weeds{ color = "#4BAE56"; @@ -645,7 +645,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Power Storage APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/structure/cable{ @@ -688,7 +688,7 @@ /area/ruin/space/has_grav/derelictoutpost/cargobay) "ch" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost) @@ -711,7 +711,7 @@ /obj/machinery/power/apc{ dir = 2; name = "Tradepost APC"; - pixel_y = -24; + pixel_y = -25; start_charge = 0 }, /obj/structure/cable{ @@ -838,7 +838,7 @@ /obj/machinery/door/airlock/public/glass, /obj/machinery/door/poddoor{ id = "bigderelictcheckpoint"; - name = "checkpoint security doors" + name = "Checkpoint Security Doors" }, /obj/structure/cable{ icon_state = "4-8" @@ -1704,7 +1704,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Cargo Storage APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/structure/cable{ @@ -1830,7 +1830,7 @@ /obj/machinery/button/door{ id = "bigderelictcheckpoint"; name = "security checkpoint control"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/alien/weeds{ color = "#4BAE56"; @@ -2063,7 +2063,7 @@ /area/ruin/space/has_grav/derelictoutpost/cargostorage) "EZ" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plasteel, diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index d737907ad81f..5d7b809a516f 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -14,7 +14,7 @@ /obj/machinery/button/door{ id = "packerMed"; pixel_x = 0; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating/airless, /area/awaymission/BMPship/Midship) @@ -29,7 +29,7 @@ /obj/machinery/button/door{ id = "packerMed"; pixel_x = 0; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Midship) @@ -200,7 +200,7 @@ /obj/machinery/button/door{ id = "packerMine"; pixel_x = 0; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel, /area/awaymission/BMPship/Midship) @@ -214,7 +214,7 @@ /obj/machinery/button/door{ id = "packerMine"; pixel_x = 0; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating/asteroid/airless, /area/awaymission/BMPship/Midship) @@ -543,7 +543,7 @@ dir = 1; environ = 0; equipment = 3; - pixel_y = 24; + pixel_y = 25; req_access = null }, /turf/open/floor/carpet, @@ -981,7 +981,7 @@ dir = 1; environ = 0; equipment = 3; - pixel_y = 24; + pixel_y = 25; req_access = null }, /turf/open/floor/plating, @@ -1302,7 +1302,7 @@ }, /obj/machinery/power/apc/unlocked{ dir = 1; - pixel_y = 24; + pixel_y = 25; req_access = null }, /obj/effect/turf_decal/corner/bar, diff --git a/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm b/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm index e911f31440da..8fba3670be83 100644 --- a/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm +++ b/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm @@ -192,7 +192,6 @@ /area/ruin/unpowered) "jq" = ( /obj/structure/lattice, -/obj/structure/lattice, /turf/open/space/basic, /area/space) "jN" = ( @@ -283,7 +282,7 @@ icon_state = "0-4" }, /obj/machinery/power/apc/away{ - pixel_x = -24; + pixel_x = -25; start_charge = 0 }, /obj/item/ammo_casing/spent{ diff --git a/_maps/RandomRuins/SpaceRuins/fueldepot.dmm b/_maps/RandomRuins/SpaceRuins/fueldepot.dmm index 43d50c4ac42a..64fff663949e 100644 --- a/_maps/RandomRuins/SpaceRuins/fueldepot.dmm +++ b/_maps/RandomRuins/SpaceRuins/fueldepot.dmm @@ -298,7 +298,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/greenglow, @@ -807,7 +807,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "pirateshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -882,7 +882,7 @@ /area/ruin/unpowered) "CZ" = ( /obj/machinery/door/airlock/hatch{ - name = "external access hatch" + name = "External Access Hatch" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 diff --git a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm index 93a6ecf5bd59..e826fe880ec0 100644 --- a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm +++ b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm @@ -808,7 +808,7 @@ "kf" = ( /obj/machinery/power/apc/highcap/ten_k{ dir = 1; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "2-4" @@ -936,7 +936,7 @@ "AY" = ( /obj/machinery/power/apc/highcap/ten_k{ dir = 1; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "0-2" diff --git a/_maps/RandomRuins/SpaceRuins/lab4071.dmm b/_maps/RandomRuins/SpaceRuins/lab4071.dmm index c128fc11956a..a7afbde2429d 100644 --- a/_maps/RandomRuins/SpaceRuins/lab4071.dmm +++ b/_maps/RandomRuins/SpaceRuins/lab4071.dmm @@ -164,7 +164,6 @@ /area/ruin/space/has_grav/crazylab/watchpost) "dI" = ( /obj/structure/lattice, -/obj/structure/lattice, /turf/open/space/basic, /area/ruin/space/has_grav/crazylab/outside) "dJ" = ( @@ -966,7 +965,7 @@ /obj/machinery/button/door{ id = 98; name = "Lab Shutters"; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/mineral/titanium/white, /area/ruin/space/has_grav/crazylab/chem) @@ -2883,7 +2882,6 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/crazylab/airlock) "LV" = ( -/obj/structure/lattice, /obj/structure/cable{ icon_state = "4-8" }, @@ -2891,7 +2889,6 @@ /turf/open/space/basic, /area/ruin/space/has_grav/crazylab/bomb) "Mb" = ( -/obj/structure/lattice, /obj/structure/cable{ icon_state = "2-8" }, @@ -3004,7 +3001,6 @@ /area/ruin/space/has_grav/crazylab/airlock) "Oq" = ( /obj/structure/lattice, -/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "1-4" }, @@ -3012,15 +3008,12 @@ /area/ruin/space/has_grav/crazylab/bomb) "Ow" = ( /obj/structure/lattice, -/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" }, /turf/open/space/basic, /area/ruin/space/has_grav/crazylab/bomb) "OA" = ( -/obj/structure/lattice, -/obj/structure/lattice/catwalk, /obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" @@ -3028,8 +3021,6 @@ /turf/open/space/basic, /area/ruin/space/has_grav/crazylab/bomb) "OP" = ( -/obj/structure/lattice, -/obj/structure/lattice, /obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "2-8" @@ -3160,15 +3151,12 @@ /turf/open/space/basic, /area/ruin/space/has_grav/crazylab/airlock) "Qu" = ( -/obj/structure/lattice, /obj/machinery/light/floor, /obj/structure/lattice, -/obj/structure/lattice/catwalk, /turf/open/space/basic, /area/ruin/space/has_grav/crazylab/bomb) "Qv" = ( /obj/structure/lattice, -/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "2-8" }, @@ -3270,14 +3258,11 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/crazylab/airlock) "RQ" = ( -/obj/structure/lattice, /obj/machinery/light/floor, /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/ruin/space/has_grav/crazylab/bomb) "RT" = ( -/obj/structure/lattice, -/obj/structure/lattice, /obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "1-4" @@ -3286,7 +3271,6 @@ /area/ruin/space/has_grav/crazylab/bomb) "Sa" = ( /obj/structure/lattice, -/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "4-8" }, @@ -3365,14 +3349,12 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/crazylab/airlock) "TC" = ( -/obj/structure/lattice, /obj/machinery/power/apc/auto_name/east, /obj/structure/cable, /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/ruin/space/has_grav/crazylab/bomb) "TJ" = ( -/obj/structure/lattice, /turf/closed/wall/mineral/plastitanium, /area/ruin/space/has_grav/crazylab/bomb) "TK" = ( diff --git a/_maps/RandomRuins/SpaceRuins/ntfacility.dmm b/_maps/RandomRuins/SpaceRuins/ntfacility.dmm index a2921283c1ec..eaba817e1c7d 100644 --- a/_maps/RandomRuins/SpaceRuins/ntfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/ntfacility.dmm @@ -3,19 +3,19 @@ /obj/machinery/button/door{ id = "a"; name = "door lock"; - pixel_x = -24; + pixel_x = -25; pixel_y = -7 }, /obj/machinery/button/door{ id = "medical_lock_cmo"; name = "door lock"; - pixel_x = -24; + pixel_x = -25; pixel_y = 9 }, /obj/machinery/button/door{ id = "medical_lock_medlock"; name = "door lock"; - pixel_x = -24; + pixel_x = -25; pixel_y = 1 }, /obj/effect/decal/cleanable/dirt/dust, @@ -394,7 +394,7 @@ id = "medical_lock_lobby"; name = "door lock"; pixel_x = -8; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, @@ -882,13 +882,13 @@ /obj/machinery/button/door{ id = "b"; name = "door lock"; - pixel_x = -24; + pixel_x = -25; pixel_y = 10 }, /obj/machinery/button/door{ id = "captain_lock"; name = "door lock"; - pixel_x = -24; + pixel_x = -25; pixel_y = 1 }, /turf/open/floor/carpet/blue, @@ -1456,13 +1456,13 @@ id = "celock"; name = "door lock"; pixel_x = 6; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/button/door{ id = "c"; name = "door lock"; pixel_x = -6; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, diff --git a/_maps/RandomRuins/SpaceRuins/nuclear_dump.dmm b/_maps/RandomRuins/SpaceRuins/nuclear_dump.dmm index 7b653c873408..087714156a58 100644 --- a/_maps/RandomRuins/SpaceRuins/nuclear_dump.dmm +++ b/_maps/RandomRuins/SpaceRuins/nuclear_dump.dmm @@ -295,7 +295,6 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/powered) "zY" = ( -/obj/structure/lattice, /turf/closed/wall, /area/space/nearstation) "AO" = ( @@ -436,7 +435,6 @@ /area/ruin/space/has_grav/storage/materials2) "Oc" = ( /obj/structure/lattice, -/obj/structure/lattice, /turf/template_noop, /area/space/nearstation) "Oq" = ( @@ -565,7 +563,7 @@ /area/ruin/space/has_grav/powered) "Yg" = ( /obj/machinery/advanced_airlock_controller{ - pixel_y = -24 + pixel_y = -25 }, /obj/effect/mob_spawn/human/corpse/russian, /obj/item/tank/internals/emergency_oxygen/empty, diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index e406e21de9e2..c5bff11a56f4 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -352,7 +352,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/light{ dir = 4 @@ -457,7 +457,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Charlie Station Bridge APC"; - pixel_y = 24; + pixel_y = 25; start_charge = 0 }, /obj/effect/decal/cleanable/cobweb, @@ -648,7 +648,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Delta Station Artifical Program Core APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/effect/decal/cleanable/blood/gibs/old, @@ -1047,7 +1047,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/mining) @@ -1372,7 +1372,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1420,7 +1420,6 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/mining) "dC" = ( -/obj/structure/lattice, /turf/closed/mineral/random, /area/ruin/unpowered) "dD" = ( @@ -1848,7 +1847,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/rnd) @@ -1955,7 +1954,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Beta Station Main Corridor APC"; - pixel_y = 24; + pixel_y = 25; start_charge = 0 }, /obj/structure/cable{ @@ -2368,7 +2367,7 @@ "fI" = ( /obj/machinery/power/apc{ name = "Beta Station Mining Equipment APC "; - pixel_y = -24; + pixel_y = -25; start_charge = 0 }, /obj/effect/turf_decal/corner/brown{ @@ -2735,7 +2734,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -2906,7 +2905,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Charlie Security APC"; - pixel_x = -24; + pixel_x = -25; start_charge = 0 }, /obj/effect/turf_decal/corner/red{ @@ -2984,7 +2983,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, @@ -3023,7 +3022,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Delta Station RnD APC"; - pixel_y = 24; + pixel_y = 25; start_charge = 0 }, /obj/structure/cable{ @@ -3148,7 +3147,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Beta Station Medbay APC"; - pixel_y = 24; + pixel_y = 25; start_charge = 0 }, /obj/effect/turf_decal/corner/blue, @@ -3432,7 +3431,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable{ icon_state = "4-8" @@ -3444,7 +3443,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/betacorridor) @@ -3866,7 +3865,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Charlie Engineering APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/effect/turf_decal/corner/yellow, @@ -3903,7 +3902,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/sec) @@ -3938,7 +3937,7 @@ /obj/structure/closet/crate/bin, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable{ icon_state = "4-8" @@ -4171,7 +4170,7 @@ }, /obj/machinery/power/apc{ name = "Charlie Station Garden APC "; - pixel_y = -24; + pixel_y = -25; start_charge = 0 }, /obj/item/reagent_containers/glass/bottle/nutrient/ez, @@ -4451,7 +4450,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -4768,7 +4767,7 @@ "kj" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/proto) @@ -5491,7 +5490,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/engi) @@ -5500,7 +5499,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/yellow, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -5559,7 +5558,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light_switch{ pixel_x = 0; @@ -5576,7 +5575,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/airless, /area/ruin/space/has_grav/ancientstation/medbay) @@ -5700,7 +5699,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Delta Station Corridor APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -6197,7 +6196,7 @@ "nh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/food/egg_smudge, /obj/structure/cable{ @@ -6212,7 +6211,6 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/kitchen) "nj" = ( -/obj/structure/lattice, /turf/closed/mineral/plasma, /area/ruin/unpowered) "nk" = ( @@ -6254,7 +6252,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Charlie Station Kitchen APC"; - pixel_y = 24; + pixel_y = 25; start_charge = 0 }, /obj/machinery/light/small{ @@ -6338,7 +6336,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/ancientstation/betastorage) @@ -6437,7 +6435,6 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/ancientstation/betastorage) "nE" = ( -/obj/structure/lattice, /turf/closed/wall/rust, /area/ruin/space/has_grav/ancientstation/betastorage) "nF" = ( @@ -6788,7 +6785,7 @@ "ok" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, @@ -6807,7 +6804,7 @@ "om" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -6957,7 +6954,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Beta Storage APC"; - pixel_x = -24; + pixel_x = -25; start_charge = 0 }, /obj/structure/cable, @@ -7474,7 +7471,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Charlie Main Corridor APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/item/stack/sheet/glass{ @@ -7881,7 +7878,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Beta Atmospherics APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/effect/decal/cleanable/dirt, @@ -7898,7 +7895,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Delta Prototype Lab APC"; - pixel_y = 24; + pixel_y = 25; start_charge = 0 }, /obj/structure/cable{ @@ -8092,7 +8089,7 @@ /obj/effect/decal/cleanable/glass, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating/airless{ icon_state = "platingdmg3" @@ -8537,7 +8534,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks, @@ -8624,7 +8621,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light{ dir = 8 diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm index 9a3f0b0b3759..3b2e61b9a1b6 100644 --- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -97,7 +97,7 @@ "as" = ( /obj/machinery/door/poddoor{ id = "onehalf_drone1ext"; - name = "mining drone bay blast door" + name = "Mining Drone Bay Blast Door" }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -107,7 +107,7 @@ "at" = ( /obj/machinery/door/poddoor{ id = "onehalf_drone2ext"; - name = "mining drone bay blast door" + name = "Mining Drone Bay Blast Door" }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -117,7 +117,7 @@ "au" = ( /obj/machinery/door/poddoor/preopen{ id = "onehalf_drone3ext"; - name = "mining drone bay blast door" + name = "Mining Drone Bay Blast Door" }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -127,7 +127,7 @@ "av" = ( /obj/machinery/door/poddoor{ id = "onehalf_drone4ext"; - name = "mining drone bay blast door" + name = "Mining Drone Bay Blast Door" }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -240,7 +240,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Crew Quarters APC"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/onehalf/dorms_med) @@ -248,7 +248,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/poddoor{ id = "onehalf_drone1int"; - name = "mining drone bay blast door" + name = "Mining Drone Bay Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/drone_bay) @@ -256,7 +256,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/poddoor{ id = "onehalf_drone2int"; - name = "mining drone bay blast door" + name = "Mining Drone Bay Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/drone_bay) @@ -264,7 +264,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/poddoor{ id = "onehalf_drone3int"; - name = "mining drone bay blast door" + name = "Mining Drone Bay Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/drone_bay) @@ -272,7 +272,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/poddoor{ id = "onehalf_drone4int"; - name = "mining drone bay blast door" + name = "Mining Drone Bay Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/drone_bay) @@ -331,7 +331,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Mining Drone Bay APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -610,7 +610,7 @@ /obj/machinery/power/apc{ dir = 2; name = "Hallway APC"; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/airless, /area/ruin/space/has_grav/onehalf/hallway) @@ -751,7 +751,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; - name = "bridge blast door" + name = "Bridge Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/bridge) @@ -788,7 +788,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Bridge APC"; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/onehalf/bridge) @@ -840,7 +840,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; - name = "bridge blast door" + name = "Bridge Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/bridge) @@ -893,7 +893,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; - name = "bridge blast door" + name = "Bridge Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/bridge) @@ -955,7 +955,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; - name = "bridge blast door" + name = "Bridge Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/bridge) @@ -975,7 +975,7 @@ "cC" = ( /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; - name = "bridge blast door" + name = "Bridge Blast Door" }, /obj/machinery/door/airlock/command/glass{ name = "Bridge" @@ -1089,7 +1089,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; - name = "bridge blast door" + name = "Bridge Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/bridge) @@ -1158,7 +1158,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; - name = "bridge blast door" + name = "Bridge Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/bridge) @@ -1172,7 +1172,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; - name = "bridge blast door" + name = "Bridge Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/bridge) @@ -1186,7 +1186,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "bridge_onehalf"; - name = "bridge blast door" + name = "Bridge Blast Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/onehalf/bridge) diff --git a/_maps/RandomRuins/SpaceRuins/oretruck.dmm b/_maps/RandomRuins/SpaceRuins/oretruck.dmm index 1571d68d9550..cda5dfa1677e 100644 --- a/_maps/RandomRuins/SpaceRuins/oretruck.dmm +++ b/_maps/RandomRuins/SpaceRuins/oretruck.dmm @@ -1133,7 +1133,7 @@ }, /obj/machinery/door/window{ dir = 4; - name = "Engine access" + name = "Engine Access" }, /obj/structure/window/reinforced{ dir = 8 @@ -1373,7 +1373,6 @@ "JB" = ( /obj/structure/window/reinforced/fulltile, /obj/structure/grille, -/turf/closed/mineral/random/asteroid, /area/template_noop) "JS" = ( /obj/effect/turf_decal/industrial/warning, @@ -1634,7 +1633,7 @@ }, /obj/machinery/door/window{ dir = 4; - name = "Engine access" + name = "Engine Access" }, /obj/structure/window/reinforced{ dir = 8 diff --git a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm index 3b6e3bd6fc98..0fd9a236e71f 100644 --- a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm +++ b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm @@ -553,7 +553,7 @@ /area/ruin/space/has_grav/storage/central) "gD" = ( /obj/machinery/power/apc/auto_name/north{ - pixel_y = 24; + pixel_y = 25; start_charge = 0 }, /obj/effect/decal/cleanable/ash, @@ -564,7 +564,7 @@ /area/ruin/space/has_grav/storage/materials1) "gG" = ( /obj/machinery/power/apc/auto_name/west{ - pixel_x = -24; + pixel_x = -25; start_charge = 0 }, /obj/structure/cable{ @@ -630,7 +630,7 @@ /area/ruin/space/has_grav/storage/materials1) "lG" = ( /obj/machinery/power/apc/auto_name/east{ - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/effect/decal/cleanable/vomit, @@ -647,7 +647,7 @@ /area/ruin/space/has_grav/storage/central) "mF" = ( /obj/machinery/power/apc/auto_name/east{ - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/structure/cable{ @@ -730,7 +730,7 @@ /area/ruin/space/has_grav/storage/central) "vJ" = ( /obj/machinery/power/apc/auto_name/west{ - pixel_x = -24; + pixel_x = -25; start_charge = 0 }, /obj/structure/cable{ @@ -812,7 +812,7 @@ /area/ruin/space/has_grav/storage/central) "In" = ( /obj/machinery/power/apc/auto_name/south{ - pixel_y = -24; + pixel_y = -25; start_charge = 0 }, /obj/structure/cable{ @@ -855,7 +855,7 @@ /area/ruin/space/has_grav/storage/materials1) "Mh" = ( /obj/machinery/power/apc/auto_name/south{ - pixel_y = -24; + pixel_y = -25; start_charge = 0 }, /obj/structure/cable{ @@ -921,7 +921,7 @@ /area/ruin/space/has_grav/storage/central) "SY" = ( /obj/machinery/power/apc/auto_name/east{ - pixel_x = 24; + pixel_x = 25; start_charge = 0 }, /obj/structure/cable, diff --git a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm index eb8fd85f8b51..01ac0c6dae3c 100644 --- a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm +++ b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm @@ -366,7 +366,7 @@ /area/ruin/space/has_grav/syndicircle/research) "kK" = ( /obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/c20r{ +/obj/item/gun/ballistic/automatic/smg/c20r{ pixel_x = 4; pixel_y = -4 }, @@ -1249,7 +1249,6 @@ /area/ruin/space/has_grav/syndicircle/halls) "HF" = ( /obj/structure/lattice, -/obj/structure/lattice, /turf/open/space/basic, /area/template_noop) "HV" = ( @@ -1828,7 +1827,6 @@ /area/ruin/space/has_grav/syndicircle/escape) "Xt" = ( /obj/structure/barricade/sandbags, -/obj/structure/barricade/sandbags, /turf/open/floor/plating/sandy_dirt, /area/ruin/space/has_grav/syndicircle/training) "XA" = ( diff --git a/_maps/RandomRuins/SpaceRuins/scav_mining.dmm b/_maps/RandomRuins/SpaceRuins/scav_mining.dmm index d04ae57696ef..e580bc1be525 100644 --- a/_maps/RandomRuins/SpaceRuins/scav_mining.dmm +++ b/_maps/RandomRuins/SpaceRuins/scav_mining.dmm @@ -105,7 +105,7 @@ /area/ruin/space/has_grav/scav_mining/core) "cs" = ( /obj/machinery/airalarm/directional/west{ - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ruin/space/has_grav/scav_mining/dorm) @@ -505,7 +505,7 @@ /area/ruin/space/has_grav/scav_mining/core) "JB" = ( /obj/machinery/airalarm/directional/south{ - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/scav_mining/entrance) @@ -613,7 +613,7 @@ /area/ruin/space/has_grav/scav_mining/entrance) "Sd" = ( /obj/machinery/power/apc/auto_name/east{ - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable, /turf/open/floor/plating, @@ -636,7 +636,7 @@ /area/ruin/space/has_grav/scav_mining/entrance) "Ti" = ( /obj/machinery/power/apc/auto_name/east{ - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "0-8" @@ -695,7 +695,7 @@ /area/ruin/space/has_grav) "Xg" = ( /obj/machinery/airalarm/directional/north{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ruin/space/has_grav/scav_mining/core) @@ -722,7 +722,7 @@ "YF" = ( /obj/structure/table, /obj/machinery/power/apc/auto_name/west{ - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "0-2" @@ -748,7 +748,7 @@ dir = 4 }, /obj/machinery/advanced_airlock_controller{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small/broken, /turf/open/floor/plating/airless, diff --git a/_maps/RandomRuins/SpaceRuins/transport18.dmm b/_maps/RandomRuins/SpaceRuins/transport18.dmm index eee273747011..0a7a8e88354d 100644 --- a/_maps/RandomRuins/SpaceRuins/transport18.dmm +++ b/_maps/RandomRuins/SpaceRuins/transport18.dmm @@ -160,7 +160,7 @@ /area/ruin/space/has_grav/transport18mid) "eY" = ( /obj/item/wallframe/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, @@ -438,7 +438,7 @@ /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt/dust, /obj/item/wallframe/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/button/door{ id = "transp19"; @@ -1572,7 +1572,7 @@ broken = 1; desc = "Oh no, seven years of bad luck!"; icon_state = "mirror_broke"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/sink{ pixel_y = 20 diff --git a/_maps/RandomRuins/WasteRuins/rockplanet_unhonorable.dmm b/_maps/RandomRuins/WasteRuins/rockplanet_unhonorable.dmm index 6af7da2482a0..f8f61c6fb4de 100644 --- a/_maps/RandomRuins/WasteRuins/rockplanet_unhonorable.dmm +++ b/_maps/RandomRuins/WasteRuins/rockplanet_unhonorable.dmm @@ -55,7 +55,7 @@ /area/ruin) "q" = ( /obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/ak47/nt, +/obj/item/gun/ballistic/automatic/assualt/ak47/nt, /turf/open/floor/plating/rust, /area/ruin) "r" = ( diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm index 8b76eda8ee0c..5344796ed185 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm @@ -396,7 +396,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "sgwindowshut"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ruin/unpowered) diff --git a/_maps/RandomRuins/deprecated/TheDerelict.dmm b/_maps/RandomRuins/deprecated/TheDerelict.dmm index 417fe717b22a..75c463269628 100644 --- a/_maps/RandomRuins/deprecated/TheDerelict.dmm +++ b/_maps/RandomRuins/deprecated/TheDerelict.dmm @@ -1078,7 +1078,7 @@ /obj/structure/table, /obj/machinery/power/apc{ name = "Worn-out APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/spawner/lootdrop/maintenance, /obj/structure/cable, @@ -1433,7 +1433,7 @@ "gB" = ( /obj/machinery/power/apc{ name = "Worn-out APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable, /turf/open/floor/plasteel/airless, @@ -1706,7 +1706,7 @@ /area/ruin/space/derelict/medical/chapel) "hG" = ( /obj/machinery/door/morgue{ - name = "coffin storage"; + name = "Coffin Storage"; req_access_txt = "22" }, /turf/open/floor/plasteel/dark, @@ -2225,7 +2225,7 @@ "jz" = ( /obj/machinery/power/apc{ name = "Worn-out APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable, /turf/open/floor/plasteel/white/airless, @@ -2389,7 +2389,7 @@ "kr" = ( /obj/machinery/power/apc{ name = "Worn-out APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable, /turf/open/floor/plasteel, @@ -2503,7 +2503,7 @@ "la" = ( /obj/machinery/power/apc{ name = "Worn-out APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable, /turf/open/floor/plasteel/airless, @@ -3169,7 +3169,7 @@ equipment = 0; lighting = 0; name = "Worn-out APC"; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable, /turf/open/floor/plating/airless, @@ -3430,7 +3430,7 @@ "ud" = ( /obj/machinery/power/apc{ name = "Worn-out APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable{ icon_state = "0-8" @@ -3514,7 +3514,7 @@ areastring = "/area/ruin/space/derelict/atmospherics"; dir = 1; name = "Worn-out APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "0-4" @@ -3990,7 +3990,7 @@ equipment = 0; lighting = 0; name = "Starboard Solar APC"; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable, /obj/structure/cable{ @@ -4044,7 +4044,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Worn-out APC"; - pixel_x = -24; + pixel_x = -25; start_charge = 0 }, /obj/structure/cable, @@ -4335,7 +4335,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Worn-out APC"; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "1-2" @@ -4508,7 +4508,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Worn-out APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "0-2" diff --git a/_maps/RandomRuins/deprecated/caravanambush.dmm b/_maps/RandomRuins/deprecated/caravanambush.dmm index 96faa78b94ce..56ea1fc7bff9 100644 --- a/_maps/RandomRuins/deprecated/caravanambush.dmm +++ b/_maps/RandomRuins/deprecated/caravanambush.dmm @@ -76,14 +76,14 @@ /obj/machinery/power/apc{ dir = 8; name = "Tiny Freighter APC"; - pixel_x = -24; + pixel_x = -25; req_access = null; start_charge = 0 }, /obj/machinery/button/door{ id = "caravantrade2_cargo_port"; name = "Cargo Blast Door Control"; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small{ dir = 1 @@ -162,14 +162,14 @@ /obj/machinery/power/apc{ dir = 8; name = "Tiny Freighter APC"; - pixel_x = -24; + pixel_x = -25; req_access = null; start_charge = 0 }, /obj/machinery/button/door{ id = "caravantrade3_cargo_port"; name = "Cargo Blast Door Control"; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small{ dir = 1 @@ -213,7 +213,7 @@ /obj/machinery/button/door{ id = "caravantrade2_cargo_starboard"; name = "Cargo Blast Door Control"; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small, /turf/open/floor/plasteel/dark/airless, @@ -289,7 +289,7 @@ "aO" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/blood, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -359,7 +359,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -524,7 +524,7 @@ /obj/machinery/button/door{ id = "caravantrade3_cargo_port"; name = "Cargo Blast Door Control"; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark/airless, /area/shuttle/caravan/freighter3) @@ -719,7 +719,7 @@ "hz" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/blue{ dir = 4 @@ -776,7 +776,7 @@ /obj/machinery/button/door{ id = "caravantrade2_cargo_port"; name = "Cargo Blast Door Control"; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small{ dir = 1 @@ -843,7 +843,7 @@ "ie" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1057,7 +1057,7 @@ /obj/machinery/button/door{ id = "caravantrade3_cargo_starboard"; name = "Cargo Blast Door Control"; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark/airless, /area/shuttle/caravan/freighter3) @@ -1113,7 +1113,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/airless, /area/shuttle/caravan/freighter2) diff --git a/_maps/RandomRuins/deprecated/deepstorage.dmm b/_maps/RandomRuins/deprecated/deepstorage.dmm index 08dddccfe653..5a8085ff6149 100644 --- a/_maps/RandomRuins/deprecated/deepstorage.dmm +++ b/_maps/RandomRuins/deprecated/deepstorage.dmm @@ -151,7 +151,7 @@ /obj/structure/table, /obj/machinery/reagentgrinder, /obj/machinery/airalarm/away{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/white{ dir = 1 @@ -204,7 +204,7 @@ /obj/machinery/power/apc/away{ dir = 2; name = "Recycling APC"; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ruin/space/has_grav/deepstorage/crusher) @@ -254,7 +254,7 @@ /obj/item/stack/packageWrap, /obj/effect/turf_decal/industrial/hatch/yellow, /obj/machinery/airalarm/away{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -487,13 +487,13 @@ "bb" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/airalarm/away{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/light, /area/ruin/space/has_grav/deepstorage/hydroponics) "bc" = ( /obj/structure/sink/kitchen{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/white{ dir = 1 @@ -630,7 +630,7 @@ "br" = ( /obj/structure/extinguisher_cabinet{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 8; @@ -699,7 +699,7 @@ /obj/machinery/microwave, /obj/structure/extinguisher_cabinet{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/white{ dir = 1 @@ -852,7 +852,7 @@ /obj/machinery/power/apc/away{ dir = 2; name = "Kitchen APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/white{ dir = 1 @@ -970,7 +970,7 @@ "bV" = ( /obj/machinery/airalarm/away{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden/layer1, @@ -1010,7 +1010,7 @@ /area/ruin/space/has_grav/deepstorage) "bY" = ( /obj/machinery/airalarm/away{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, /turf/open/floor/plasteel/freezer, @@ -1018,7 +1018,7 @@ "bZ" = ( /obj/structure/table, /obj/machinery/airalarm/away{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/bar, /obj/effect/turf_decal/corner/bar{ @@ -1094,7 +1094,7 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Hydroponics APC"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/deepstorage/hydroponics) @@ -1312,7 +1312,7 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Storage APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -1324,7 +1324,7 @@ pixel_x = 11 }, /obj/structure/mirror{ - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden/layer1, /turf/open/floor/plasteel/freezer, @@ -1361,7 +1361,7 @@ /obj/machinery/vending/cigarette, /obj/structure/extinguisher_cabinet{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/bar, /obj/effect/turf_decal/corner/bar{ @@ -1806,7 +1806,7 @@ /obj/machinery/power/apc/away{ dir = 2; name = "Main Area APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning/corner, /obj/effect/decal/cleanable/dirt, @@ -2000,7 +2000,7 @@ }, /obj/machinery/airalarm/away{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/deepstorage/armory) @@ -2161,7 +2161,7 @@ }, /obj/structure/extinguisher_cabinet{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden/layer1, @@ -2186,7 +2186,7 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Armory APC"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/deepstorage/armory) @@ -2243,7 +2243,7 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Dormitory APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden/layer1, @@ -2323,7 +2323,7 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_x = 32 }, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/ammo_box/magazine/wt550m9{ pixel_y = 12 }, @@ -2373,20 +2373,20 @@ /obj/machinery/button/door{ id = "bunkerexterior"; name = "exterior blast door access"; - pixel_x = -24; + pixel_x = -25; pixel_y = -8; req_access_txt = "200" }, /obj/machinery/button/door{ id = "bunkerinterior"; name = "interior blast door access"; - pixel_x = -24; + pixel_x = -25; req_access_txt = "200" }, /obj/machinery/button/door{ id = "bunkershutter"; name = "hallway shutter toggle"; - pixel_x = -24; + pixel_x = -25; pixel_y = 8; req_access_txt = "200" }, @@ -2452,7 +2452,7 @@ /obj/machinery/power/apc/away{ dir = 1; name = "Airlock Control APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -2559,7 +2559,7 @@ /area/ruin/space/has_grav/deepstorage) "eS" = ( /obj/machinery/airalarm/away{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/green/visible, @@ -2599,7 +2599,7 @@ /obj/machinery/power/apc/away{ dir = 8; name = "Power and Atmospherics APC"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -2616,7 +2616,7 @@ "eX" = ( /obj/structure/extinguisher_cabinet{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -2799,7 +2799,7 @@ "fu" = ( /obj/machinery/airalarm/away{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -3063,7 +3063,7 @@ }, /obj/machinery/airalarm/away{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -3098,7 +3098,7 @@ }, /obj/structure/extinguisher_cabinet{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, diff --git a/_maps/RandomRuins/deprecated/forgottenship.dmm b/_maps/RandomRuins/deprecated/forgottenship.dmm index 1320059d9105..c48c7077d17d 100644 --- a/_maps/RandomRuins/deprecated/forgottenship.dmm +++ b/_maps/RandomRuins/deprecated/forgottenship.dmm @@ -20,7 +20,7 @@ "ae" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external{ - name = "Syndicate ship airlock"; + name = "Syndicate Ship Airlock"; req_one_access_txt = "150" }, /turf/open/floor/mineral/plastitanium, @@ -98,7 +98,7 @@ /obj/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor{ id = "fslockdown"; - name = "Ship blast door"; + name = "Ship Blast Door"; state_open = 1 }, /turf/open/floor/mineral/plastitanium, @@ -243,7 +243,7 @@ /area/ruin/space/has_grav/syndicate_forgotten_ship) "aU" = ( /obj/machinery/door/airlock/external{ - name = "Syndicate ship airlock"; + name = "Syndicate Ship Airlock"; req_one_access_txt = "150" }, /turf/open/floor/mineral/plastitanium, @@ -407,12 +407,12 @@ /area/ruin/space/has_grav/syndicate_forgotten_ship) "bx" = ( /obj/machinery/door/airlock/grunge{ - name = "Captain's room"; + name = "Captain's Room"; req_one_access_txt = "150" }, /obj/machinery/door/poddoor{ id = "fscaproom"; - name = "Captain's blast door"; + name = "Captain's Blast Door"; state_open = 1 }, /turf/open/floor/carpet/royalblack, @@ -513,7 +513,7 @@ /area/ruin/space/has_grav/syndicate_forgotten_ship) "bP" = ( /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/syndicate_forgotten_ship) @@ -630,12 +630,12 @@ /area/ruin/space/has_grav/syndicate_forgotten_ship) "ch" = ( /obj/machinery/door/airlock/grunge{ - name = "Captain's room"; + name = "Captain's Room"; req_one_access_txt = "150" }, /obj/machinery/door/poddoor{ id = "fscaproom"; - name = "Captain's blast door"; + name = "Captain's Blast Door"; state_open = 1 }, /turf/open/floor/mineral/plastitanium/red, @@ -682,7 +682,7 @@ /obj/structure/filingcabinet, /obj/machinery/door/window{ dir = 8; - name = "Syndicate interior door"; + name = "Syndicate Interior Door"; req_one_access_txt = "150" }, /turf/open/floor/mineral/plastitanium/red, @@ -690,7 +690,7 @@ "cp" = ( /obj/machinery/door/window{ armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 70, "acid" = 100); - name = "Control room"; + name = "Control Room"; req_one_access_txt = "150" }, /turf/open/floor/mineral/plastitanium/red, @@ -785,7 +785,7 @@ "cJ" = ( /obj/machinery/door/window{ dir = 1; - name = "Spare equipment"; + name = "Spare Equipment"; req_one_access_txt = "150" }, /turf/open/floor/mineral/plastitanium/red, @@ -1178,7 +1178,7 @@ /area/ruin/space/has_grav/syndicate_forgotten_ship) "tu" = ( /obj/machinery/door/airlock/external{ - name = "Syndicate ship airlock"; + name = "Syndicate Ship Airlock"; req_one_access_txt = "150" }, /obj/structure/cable{ @@ -1226,7 +1226,7 @@ /area/ruin/space/has_grav/syndicate_forgotten_ship) "BZ" = ( /obj/machinery/door/airlock/external{ - name = "Syndicate ship airlock"; + name = "Syndicate Ship Airlock"; req_one_access_txt = "150" }, /obj/structure/fans/tiny, @@ -1239,7 +1239,7 @@ /obj/machinery/power/apc/syndicate{ dir = 1; name = "Syndicate Cargo Pod APC"; - pixel_y = 24; + pixel_y = 25; start_charge = 0 }, /obj/structure/closet/crate/secure/gear{ @@ -1319,7 +1319,7 @@ "Qd" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external{ - name = "Syndicate ship airlock"; + name = "Syndicate Ship Airlock"; req_one_access_txt = "150" }, /obj/structure/cable{ @@ -1353,7 +1353,7 @@ /obj/machinery/power/apc/syndicate{ dir = 1; name = "Syndicate Forgotten Ship APC"; - pixel_y = 24; + pixel_y = 25; start_charge = 0 }, /obj/structure/cable{ diff --git a/_maps/RandomRuins/deprecated/listeningstation.dmm b/_maps/RandomRuins/deprecated/listeningstation.dmm index a3cad319448d..b584ddc5736d 100644 --- a/_maps/RandomRuins/deprecated/listeningstation.dmm +++ b/_maps/RandomRuins/deprecated/listeningstation.dmm @@ -13,7 +13,7 @@ dir = 2 }, /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -245,7 +245,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/listeningstation) @@ -260,7 +260,7 @@ id = "syndie_listeningpost_external"; name = "External Bolt Control"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; req_access_txt = "150"; specialfunctions = 4 }, @@ -564,7 +564,7 @@ /area/ruin/space/has_grav/listeningstation) "aU" = ( /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/baseturf_helper/asteroid/airless, @@ -696,7 +696,7 @@ }, /obj/machinery/airalarm/syndicate{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -882,7 +882,7 @@ /obj/machinery/power/apc/syndicate{ dir = 4; name = "Syndicate Listening Post APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -1034,7 +1034,7 @@ /obj/machinery/light/small, /obj/machinery/airalarm/syndicate{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ diff --git a/_maps/RandomRuins/deprecated/oldAIsat.dmm b/_maps/RandomRuins/deprecated/oldAIsat.dmm index ec986d4a4f73..4ca95a8dbefe 100644 --- a/_maps/RandomRuins/deprecated/oldAIsat.dmm +++ b/_maps/RandomRuins/deprecated/oldAIsat.dmm @@ -46,7 +46,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Worn-out APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "0-4" diff --git a/_maps/RandomRuins/deprecated/whitesands_surface_crash_bar.dmm b/_maps/RandomRuins/deprecated/whitesands_surface_crash_bar.dmm index c17eef0961f1..a39d4e6b2fd0 100644 --- a/_maps/RandomRuins/deprecated/whitesands_surface_crash_bar.dmm +++ b/_maps/RandomRuins/deprecated/whitesands_surface_crash_bar.dmm @@ -292,7 +292,6 @@ /area/whitesands/surface/outdoors) "pk" = ( /obj/structure/lattice, -/obj/structure/lattice, /turf/open/floor/plating/asteroid/whitesands/dried, /area/whitesands/surface/outdoors) "qe" = ( @@ -824,7 +823,6 @@ /area/whitesands/surface/outdoors) "Np" = ( /obj/structure/lattice, -/obj/structure/lattice, /turf/open/floor/plating/asteroid/whitesands, /area/whitesands/surface/outdoors) "Nr" = ( diff --git a/_maps/RandomRuins/deprecated/whitesands_surface_crash_cargo.dmm b/_maps/RandomRuins/deprecated/whitesands_surface_crash_cargo.dmm index 400181ae3d42..f2972508789c 100644 --- a/_maps/RandomRuins/deprecated/whitesands_surface_crash_cargo.dmm +++ b/_maps/RandomRuins/deprecated/whitesands_surface_crash_cargo.dmm @@ -262,7 +262,7 @@ icon_state = "2-8" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/outline/yellow, /obj/structure/table, @@ -397,7 +397,7 @@ /obj/machinery/button/door{ id = "whiteship_starboard"; name = "Starboard Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /turf/open/floor/plasteel/dark, @@ -637,14 +637,14 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/whitesands/surface/outdoors) "Po" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small/built{ dir = 1 diff --git a/_maps/RandomRuins/deprecated/whiteshipruin_box.dmm b/_maps/RandomRuins/deprecated/whiteshipruin_box.dmm index deb91645bae5..e19fe1a1112c 100644 --- a/_maps/RandomRuins/deprecated/whiteshipruin_box.dmm +++ b/_maps/RandomRuins/deprecated/whiteshipruin_box.dmm @@ -91,7 +91,7 @@ "q" = ( /obj/machinery/door/poddoor{ id = "oldship_ruin_gun"; - name = "pod bay door" + name = "Pod Bay Door" }, /turf/open/floor/plating, /area/ruin/space/has_grav/whiteship/box) diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 1d7838483ae0..ebf5f8c3ede6 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -48,7 +48,7 @@ dir = 1; environ = 3; equipment = 3; - pixel_y = 23; + pixel_y = 25; req_access = null }, /turf/open/floor/carpet, @@ -446,7 +446,7 @@ "bD" = ( /obj/machinery/button/door{ id = "AcademyAuto"; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) @@ -1286,7 +1286,7 @@ dir = 1; environ = 3; equipment = 3; - pixel_y = 23; + pixel_y = 25; req_access = null }, /turf/open/floor/plasteel/grimy, @@ -1397,7 +1397,6 @@ /area/awaymission/academy) "eA" = ( /obj/machinery/door/airlock/public/glass, -/obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -2646,7 +2645,7 @@ dir = 1; environ = 3; equipment = 3; - pixel_y = 23; + pixel_y = 25; req_access = null }, /turf/open/floor/plasteel, @@ -3712,7 +3711,7 @@ dir = 1; environ = 3; equipment = 3; - pixel_y = 23; + pixel_y = 25; req_access = null }, /obj/structure/cable{ @@ -4059,7 +4058,7 @@ "lp" = ( /obj/machinery/power/apc{ dir = 1; - pixel_y = 23 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "0-8" @@ -4163,7 +4162,7 @@ "lK" = ( /obj/effect/immovablerod{ dir = 4; - + }, /obj/structure/cable, /obj/structure/cable{ @@ -4507,7 +4506,7 @@ /obj/machinery/button/door{ id = "AcademyGate"; name = "Skeleton Storage Control"; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/wood, /area/awaymission/academy/headmaster) diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm index e61874d205cb..de2ff724812d 100644 --- a/_maps/RandomZLevels/SnowCabin.dmm +++ b/_maps/RandomZLevels/SnowCabin.dmm @@ -251,7 +251,7 @@ /area/awaymission/cabin) "aR" = ( /obj/machinery/door/window/westright{ - name = "fireplace" + name = "Fireplace" }, /obj/structure/fireplace, /obj/effect/decal/cleanable/dirt, @@ -272,7 +272,7 @@ /area/awaymission/cabin) "aT" = ( /obj/machinery/door/window/eastleft{ - name = "fireplace" + name = "Fireplace" }, /obj/structure/fireplace, /obj/effect/decal/cleanable/dirt, @@ -281,7 +281,7 @@ "aU" = ( /obj/structure/fireplace, /obj/machinery/door/window/westright{ - name = "fireplace" + name = "Fireplace" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -293,7 +293,7 @@ "aW" = ( /obj/structure/fireplace, /obj/machinery/door/window/eastleft{ - name = "fireplace" + name = "Fireplace" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -336,7 +336,7 @@ /area/awaymission/cabin) "bg" = ( /obj/machinery/door/window/westleft{ - name = "manager's desk" + name = "Manager's Desk" }, /turf/open/floor/carpet, /area/awaymission/cabin) @@ -802,7 +802,7 @@ "cS" = ( /obj/machinery/button/door{ id = "garage_cabin"; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/awaymission/cabin) @@ -1223,7 +1223,7 @@ "eq" = ( /obj/machinery/door/poddoor/shutters{ id = "garage_cabin"; - name = "garage door" + name = "Garage Door" }, /obj/structure/fans/tiny, /turf/open/floor/plating/snowed/temperatre, @@ -2594,7 +2594,7 @@ /area/awaymission/cabin) "hg" = ( /obj/machinery/door/airlock/maintenance{ - name = "janitor closet" + name = "Janitor Closet" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -2666,7 +2666,7 @@ /area/awaymission/cabin) "hy" = ( /obj/machinery/door/airlock/maintenance{ - name = "heater storage" + name = "Heater Storage" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -2908,7 +2908,7 @@ /area/awaymission/cabin/caves/sovietcave) "io" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = -24; + pixel_x = -25; pixel_y = 0 }, /turf/open/floor/wood, @@ -3683,7 +3683,6 @@ }, /area/awaymission/cabin/caves) "kv" = ( -/obj/structure/barricade/wooden/snowed, /obj/structure/barricade/wooden/crude/snow, /obj/effect/light_emitter{ name = "outdoor light"; @@ -5305,7 +5304,7 @@ /obj/machinery/power/apc{ dir = 1; name = "cabin APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ diff --git a/_maps/RandomZLevels/TheBeach.dmm b/_maps/RandomZLevels/TheBeach.dmm index e7581b1621c6..af223ef0f79a 100644 --- a/_maps/RandomZLevels/TheBeach.dmm +++ b/_maps/RandomZLevels/TheBeach.dmm @@ -307,9 +307,9 @@ "bi" = ( /obj/machinery/button/door{ id = "changlinhut2"; - name = "changing room lock"; + name = "Changing Room lock"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; specialfunctions = 4 }, /turf/open/floor/wood, @@ -317,9 +317,9 @@ "bj" = ( /obj/machinery/button/door{ id = "changlinhut1"; - name = "changing room lock"; + name = "Changing Room lock"; normaldoorcontrol = 1; - pixel_x = -24; + pixel_x = -25; specialfunctions = 4 }, /turf/open/floor/wood, @@ -335,7 +335,7 @@ id = "theloveshack1"; name = "door lock"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; specialfunctions = 4 }, /obj/item/bedsheet/dorms, @@ -347,7 +347,7 @@ id = "theloveshack2"; name = "door lock"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; specialfunctions = 4 }, /obj/item/bedsheet/dorms, @@ -359,7 +359,7 @@ id = "theloveshack3"; name = "door lock"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; specialfunctions = 4 }, /obj/item/bedsheet/dorms, @@ -390,14 +390,14 @@ "bs" = ( /obj/machinery/door/airlock/sandstone{ id_tag = "changlinhut2"; - name = "changing room" + name = "Changing Room" }, /turf/open/floor/wood, /area/awaymission/beach) "bt" = ( /obj/machinery/door/airlock/sandstone{ id_tag = "changlinhut1"; - name = "changing room" + name = "Changing Room" }, /turf/open/floor/wood, /area/awaymission/beach) @@ -564,7 +564,7 @@ id = "toilet1"; name = "restroom lock"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; specialfunctions = 4 }, /obj/effect/turf_decal/sand, @@ -575,7 +575,7 @@ id = "toilet2"; name = "restroom lock"; normaldoorcontrol = 1; - pixel_x = -24; + pixel_x = -25; specialfunctions = 4 }, /obj/effect/turf_decal/sand, @@ -587,7 +587,7 @@ id = "loveshack"; name = "love shack lock"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; specialfunctions = 4 }, /obj/item/bedsheet/red, @@ -599,7 +599,7 @@ id = "theloveshack4"; name = "door lock"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; specialfunctions = 4 }, /obj/item/bedsheet/dorms, @@ -617,7 +617,7 @@ id = "theloveshack5"; name = "door lock"; normaldoorcontrol = 1; - pixel_x = 24; + pixel_x = 25; specialfunctions = 4 }, /obj/item/bedsheet/dorms, @@ -626,7 +626,7 @@ "bX" = ( /obj/machinery/door/airlock/sandstone{ id_tag = "toilet1"; - name = "restroom stall" + name = "Restroom Stall" }, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel/white, @@ -634,7 +634,7 @@ "bY" = ( /obj/machinery/door/airlock/sandstone{ id_tag = "toilet2"; - name = "restroom stall" + name = "Restroom Stall" }, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel/white, diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index 1baae519a404..d915bc67e1d1 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -778,7 +778,7 @@ /area/awaymission/challenge/end) "cw" = ( /obj/structure/rack, -/obj/item/gun/ballistic/automatic/l6_saw, +/obj/item/gun/ballistic/automatic/hmg/l6_saw, /turf/open/floor/wood, /area/awaymission/challenge/end) "cx" = ( diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 86ccd7d94254..91a3d20b5e23 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -292,7 +292,7 @@ }, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24; + pixel_x = 25; req_access = null; req_access_txt = "150" }, @@ -354,7 +354,7 @@ /area/awaymission/moonoutpost19/syndicate) "cd" = ( /obj/machinery/airalarm/unlocked{ - pixel_y = 24; + pixel_y = 25; req_access = null; req_access_txt = "150" }, @@ -421,7 +421,7 @@ dir = 4 }, /obj/machinery/airalarm/unlocked{ - pixel_y = 24; + pixel_y = 25; req_access = null }, /obj/structure/cable{ @@ -561,7 +561,7 @@ /obj/structure/chair/wood, /obj/machinery/airalarm{ dir = 4; - pixel_x = -24; + pixel_x = -25; req_access = null; req_access_txt = "150" }, @@ -591,7 +591,7 @@ "dk" = ( /obj/machinery/airalarm{ dir = 8; - pixel_x = 24; + pixel_x = 25; req_access = null; req_access_txt = "150" }, @@ -903,13 +903,13 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaybiohazard"; - name = "Acid-Proof biohazard containment door" + name = "Acid-Proof Biohazard Containment Door" }, /obj/machinery/door/poddoor{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaybiohazard"; layer = 2.9; - name = "Acid-Proof biohazard containment door" + name = "Acid-Proof Biohazard Containment Door" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating{ @@ -1061,7 +1061,7 @@ dir = 1 }, /obj/machinery/airalarm/unlocked{ - pixel_y = 24; + pixel_y = 25; req_access = null }, /obj/structure/alien/weeds, @@ -1071,7 +1071,7 @@ /area/awaymission/moonoutpost19/research) "fh" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/table, /obj/item/storage/box/beakers{ @@ -1116,7 +1116,7 @@ /obj/machinery/processor, /obj/machinery/airalarm/unlocked{ dir = 8; - pixel_x = 24; + pixel_x = 25; req_access = null }, /obj/effect/turf_decal/corner/white{ @@ -1244,7 +1244,7 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door" + name = "Acid-Proof Containment Chamber Blast Door" }, /obj/item/stack/cable_coil/cut, /turf/open/floor/plating{ @@ -1485,7 +1485,7 @@ /area/awaymission/moonoutpost19/research) "he" = ( /obj/machinery/airalarm{ - pixel_y = 24; + pixel_y = 25; req_access = null; req_access_txt = "150" }, @@ -1539,7 +1539,7 @@ /obj/machinery/door/poddoor{ id = "AwayRD"; layer = 2.9; - name = "privacy shutter" + name = "Privacy Shutter" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating{ @@ -1721,7 +1721,7 @@ "ij" = ( /obj/machinery/airalarm/unlocked{ dir = 4; - pixel_x = -24; + pixel_x = -25; req_access = null }, /obj/machinery/light/small{ @@ -2070,7 +2070,7 @@ /area/awaymission/moonoutpost19/arrivals) "jI" = ( /obj/machinery/airalarm/unlocked{ - pixel_y = 24; + pixel_y = 25; req_access = null }, /turf/open/floor/plasteel{ @@ -2282,7 +2282,7 @@ "kJ" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -2292,7 +2292,7 @@ "kO" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -2415,7 +2415,7 @@ /obj/structure/chair/wood, /obj/machinery/airalarm/unlocked{ dir = 8; - pixel_x = 24; + pixel_x = 25; req_access = null }, /turf/open/floor/carpet{ @@ -2913,7 +2913,7 @@ }, /obj/machinery/airalarm/unlocked{ dir = 8; - pixel_x = 24; + pixel_x = 25; req_access = null }, /turf/open/floor/carpet{ @@ -3027,7 +3027,7 @@ "nj" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel{ dir = 8; @@ -3500,7 +3500,7 @@ pixel_y = 2 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/white{ dir = 1 @@ -3613,7 +3613,7 @@ dir = 1; locked = 0; name = "Worn-out APC"; - pixel_y = 24; + pixel_y = 25; start_charge = 100 }, /obj/structure/cable{ @@ -3807,7 +3807,7 @@ pixel_y = -2 }, /obj/machinery/airalarm/unlocked{ - pixel_y = 24; + pixel_y = 25; req_access = null }, /obj/effect/turf_decal/corner/red{ @@ -4038,7 +4038,7 @@ "ux" = ( /obj/machinery/airalarm/unlocked{ dir = 8; - pixel_x = 24; + pixel_x = 25; req_access = null }, /obj/effect/turf_decal/corner/neutral, @@ -4977,7 +4977,7 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door" + name = "Acid-Proof Containment Chamber Blast Door" }, /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -5012,7 +5012,7 @@ "Gf" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ @@ -5414,7 +5414,7 @@ }, /obj/machinery/airalarm/unlocked{ dir = 8; - pixel_x = 24; + pixel_x = 25; req_access = null }, /obj/effect/turf_decal/corner/purple, @@ -5430,7 +5430,7 @@ /obj/item/storage/box, /obj/machinery/airalarm/unlocked{ dir = 4; - pixel_x = -24; + pixel_x = -25; req_access = null }, /obj/effect/turf_decal/corner/bar, @@ -5564,7 +5564,7 @@ "Lo" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/machinery/airalarm{ - pixel_y = 24; + pixel_y = 25; req_access = null; req_access_txt = "150" }, @@ -5618,7 +5618,7 @@ "LG" = ( /obj/machinery/power/apc/highcap/fifteen_k{ name = "Worn-out APC"; - pixel_y = -24; + pixel_y = -25; req_access_txt = "150"; start_charge = 0 }, @@ -5788,7 +5788,7 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door" + name = "Acid-Proof Containment Chamber Blast Door" }, /obj/machinery/atmospherics/pipe/simple/general/visible{ desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; @@ -5850,7 +5850,7 @@ dir = 1 }, /obj/machinery/airalarm/unlocked{ - pixel_y = 24; + pixel_y = 25; req_access = null }, /obj/item/paper/fluff/awaymissions/moonoutpost19/log/gerald, @@ -6061,7 +6061,7 @@ "Ps" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -6297,7 +6297,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/unlocked{ dir = 8; - pixel_x = 24; + pixel_x = 25; req_access = null }, /obj/effect/turf_decal/corner/white{ @@ -6465,7 +6465,7 @@ dir = 4; locked = 0; name = "Worn-out APC"; - pixel_x = 24; + pixel_x = 25; start_charge = 100 }, /obj/effect/turf_decal/corner/purple, @@ -6816,7 +6816,7 @@ /obj/machinery/door/poddoor/preopen{ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; - name = "Acid-Proof containment chamber blast door" + name = "Acid-Proof Containment Chamber Blast Door" }, /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -6965,7 +6965,7 @@ dir = 1 }, /obj/machinery/airalarm/unlocked{ - pixel_y = 24; + pixel_y = 25; req_access = null }, /obj/effect/turf_decal/corner/purple{ @@ -7012,7 +7012,7 @@ "Yp" = ( /obj/machinery/airalarm{ dir = 8; - pixel_x = 24; + pixel_x = 25; req_access = null; req_access_txt = "150" }, @@ -7199,7 +7199,7 @@ desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaybiohazard"; layer = 2.9; - name = "Acid-Proof biohazard containment door" + name = "Acid-Proof Biohazard Containment Door" }, /obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plasteel{ diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index cd5b6c28e5d0..da31b3cc789d 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -298,7 +298,7 @@ }, /obj/machinery/airalarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/yellow, /obj/effect/turf_decal/corner/yellow{ @@ -837,7 +837,7 @@ /obj/item/storage/firstaid/regular, /obj/machinery/airalarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/gateway) @@ -918,7 +918,7 @@ name = "panic lockdown button" }, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/purple{ dir = 1 @@ -1591,8 +1591,8 @@ /area/awaymission/research/interior/security) "dU" = ( /obj/structure/rack, -/obj/item/gun/ballistic/automatic/wt550, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9, /obj/effect/turf_decal/corner/red{ @@ -1653,7 +1653,7 @@ "eb" = ( /obj/machinery/door/poddoor{ id = "cryopodg2"; - name = "cryogenetic genetics blastdoor" + name = "Cryogenetic Genetics Blastdoor" }, /turf/open/floor/plasteel/stairs, /area/awaymission/research/interior/genetics) @@ -1688,7 +1688,7 @@ /area/awaymission/research/interior) "ej" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/yellow, /obj/effect/turf_decal/corner/yellow{ @@ -1817,7 +1817,7 @@ /area/awaymission/research/interior/cryo) "ew" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/purple{ dir = 1 @@ -2032,7 +2032,7 @@ "eT" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) @@ -2195,7 +2195,7 @@ /area/awaymission/research/interior/security) "fu" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/red, /obj/effect/turf_decal/corner/red{ @@ -3090,7 +3090,7 @@ "hK" = ( /obj/machinery/door/poddoor{ id = "cryopodg1"; - name = "cryogenetic genetics blastdoor" + name = "Cryogenetic Genetics Blastdoor" }, /turf/open/floor/plasteel/stairs{ dir = 1 @@ -3141,7 +3141,7 @@ }, /obj/structure/sign/directions/evac{ pixel_x = 32; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/green{ dir = 1 @@ -3519,7 +3519,7 @@ }, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/purple{ dir = 1 @@ -3617,7 +3617,7 @@ /area/awaymission/research/interior/dorm) "iZ" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/blue, /turf/open/floor/plasteel/white, @@ -3685,7 +3685,6 @@ /area/awaymission/research/interior/medbay) "ji" = ( /obj/machinery/door/airlock/glass_large, -/turf/closed/mineral, /area/awaymission/research/exterior) "jj" = ( /obj/structure/dresser, @@ -4827,7 +4826,7 @@ }, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/spline/plain/yellow{ dir = 4 @@ -5291,7 +5290,7 @@ "mX" = ( /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/green{ dir = 1 @@ -5412,7 +5411,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Security APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" @@ -5555,7 +5554,7 @@ /obj/machinery/power/apc/highcap/fifteen_k{ dir = 4; name = "Vault APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "0-8" @@ -5595,7 +5594,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Escape APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" @@ -5677,7 +5676,7 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Cryostatis APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/purple{ dir = 1 @@ -5843,7 +5842,7 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Genetics APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable, /obj/structure/cable{ @@ -5913,7 +5912,7 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Dorms APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "1-2" @@ -6115,7 +6114,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Medbay APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "0-8" @@ -6126,7 +6125,7 @@ /obj/machinery/power/apc/highcap/fifteen_k{ dir = 4; name = "Gateway APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "0-2" @@ -6339,7 +6338,7 @@ auto_name = 1; dir = 4; name = "Engineering APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "0-2" @@ -6533,7 +6532,7 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 4; name = "Genetics APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "1-2" diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index bcf821ad6fa2..35a6bdd328a5 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -568,7 +568,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Dorms APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable/yellow{ icon_state = "0-2" @@ -706,7 +706,7 @@ /area/awaymission/snowdin/post/kitchen) "cf" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/spider/stickyweb, /obj/effect/decal/cleanable/dirt, @@ -716,7 +716,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Kitchen APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "0-2" @@ -1390,7 +1390,7 @@ /obj/machinery/power/apc{ dir = 2; name = "Gateway APC"; - pixel_y = -24; + pixel_y = -25; req_access = 150 }, /obj/structure/cable/yellow{ @@ -1406,7 +1406,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Research Center APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "4-8" @@ -1435,7 +1435,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Mess Hall APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -1775,7 +1775,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Outpost Hallway APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -2069,7 +2069,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Garage APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -2574,7 +2574,7 @@ /obj/structure/table, /obj/machinery/airalarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/item/paper_bin, /turf/open/floor/plasteel, @@ -2652,7 +2652,7 @@ dir = 4 }, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/awaymission/snowdin/post/garage) @@ -2761,7 +2761,7 @@ "iX" = ( /obj/structure/table, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -2878,7 +2878,7 @@ /obj/machinery/button/door{ id = "snowdin_gate"; pixel_x = 7; - pixel_y = -24 + pixel_y = -25 }, /obj/item/disk/holodisk/snowdin/welcometodie, /turf/open/floor/plasteel, @@ -3246,7 +3246,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Custodials APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "0-2" @@ -3256,7 +3256,7 @@ "kE" = ( /obj/structure/table, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark, /area/awaymission/snowdin/post/custodials) @@ -3339,7 +3339,7 @@ "la" = ( /obj/structure/filingcabinet, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/awaymission/snowdin/post/garage) @@ -4179,8 +4179,8 @@ "mY" = ( /obj/machinery/button/door{ id = "snowdingarage1"; - name = "garage door toggle"; - pixel_x = -24; + name = "Garage Door toggle"; + pixel_x = -25; pixel_y = -7 }, /turf/open/floor/plating, @@ -4309,7 +4309,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Engineering APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "4-8" @@ -4354,7 +4354,7 @@ "nB" = ( /obj/machinery/door/poddoor/shutters{ id = "snowdingarage1"; - name = "garage door" + name = "Garage Door" }, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -4541,7 +4541,7 @@ "ot" = ( /obj/machinery/firealarm{ dir = 2; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/awaymission/snowdin/post/hydro) @@ -4555,7 +4555,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Hydroponics APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -5147,7 +5147,7 @@ /obj/machinery/button/door{ id = "snowdinturbinegas"; name = "Turbine Gas Release"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable{ icon_state = "4-8" @@ -5199,7 +5199,7 @@ /area/awaymission/snowdin/post/cavern2) "rg" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/engine/cult, /area/awaymission/snowdin/post/cavern2) @@ -5407,9 +5407,9 @@ idDoor = "snowdin_turbine_interior"; idSelf = "snowdin_turbine_access"; layer = 3.1; - name = "Turbine airlock control"; + name = "Turbine Airlock Control"; pixel_x = 8; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/engine, /area/awaymission/snowdin/post/engineering) @@ -5429,9 +5429,9 @@ /obj/machinery/doorButtons/access_button{ idDoor = "snowdin_turbine_exterior"; idSelf = "snowdin_turbine_access"; - name = "Turbine airlock control"; + name = "Turbine Airlock Control"; pixel_x = -8; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/sign/warning/fire{ pixel_y = -32 @@ -5528,7 +5528,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Main Outpost APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable/yellow, /obj/structure/cable/yellow{ @@ -6021,7 +6021,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Main Outpost APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "0-2" @@ -6117,7 +6117,7 @@ /area/awaymission/snowdin/cave/cavern) "uy" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern1) @@ -6808,7 +6808,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Main Outpost APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable/yellow, /turf/open/floor/plating, @@ -7297,7 +7297,7 @@ "zo" = ( /obj/machinery/door/poddoor/shutters{ id = "snowdingarage2"; - name = "garage door" + name = "Garage Door" }, /turf/open/floor/plating, /area/awaymission/snowdin/post/minipost) @@ -7357,9 +7357,9 @@ /obj/machinery/light/small, /obj/machinery/button/door{ id = "snowdingarage2"; - name = "garage door toggle"; + name = "Garage Door toggle"; pixel_x = -7; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/minipost) @@ -7803,7 +7803,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Recon Post APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "0-2" @@ -9137,7 +9137,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Robotics APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable/yellow{ icon_state = "1-2" @@ -9231,7 +9231,7 @@ "Ia" = ( /obj/machinery/door/poddoor/shutters{ id = "snowdingarage3"; - name = "garage door" + name = "Garage Door" }, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main) @@ -9305,9 +9305,9 @@ "Iw" = ( /obj/machinery/button/door{ id = "snowdingarage3"; - name = "garage door toggle"; + name = "Garage Door toggle"; pixel_x = 7; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main) @@ -9399,7 +9399,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Main Outpost APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "4-8" @@ -9413,7 +9413,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Mechbay APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -9744,7 +9744,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Mining Post APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -9813,7 +9813,7 @@ /obj/effect/turf_decal/industrial/warning, /obj/machinery/airalarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating{ icon_state = "platingdmg1" @@ -10051,7 +10051,7 @@ }, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/corner/neutral, @@ -10132,7 +10132,7 @@ "LT" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/green{ dir = 1 @@ -10552,7 +10552,7 @@ /area/awaymission/snowdin/post/cavern2) "MP" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/sign/warning/docking{ pixel_x = 32 @@ -10658,7 +10658,7 @@ "Ng" = ( /obj/machinery/firealarm{ dir = 2; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/green{ dir = 1 @@ -10754,7 +10754,7 @@ /area/awaymission/snowdin/post) "Ns" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -11330,7 +11330,7 @@ /obj/effect/turf_decal/industrial/warning, /obj/machinery/airalarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel, /area/awaymission/snowdin/post/mining_main/robotics) @@ -11682,7 +11682,7 @@ /area/awaymission/snowdin/cave) "PB" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -12132,7 +12132,7 @@ "QA" = ( /obj/machinery/door/poddoor/shutters{ id = "snowdingarageunder2"; - name = "garage door" + name = "Garage Door" }, /obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plasteel, @@ -12163,7 +12163,7 @@ }, /obj/machinery/firealarm{ dir = 2; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -12183,7 +12183,7 @@ /area/awaymission/snowdin/post/engineering) "QH" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/bar, /obj/effect/turf_decal/corner/bar{ @@ -12416,15 +12416,15 @@ "Rh" = ( /obj/machinery/button/door{ id = "snowdingarageunder2"; - name = "right garage door toggle"; + name = "right Garage Door toggle"; pixel_x = 7; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/button/door{ id = "snowdingarageunder"; - name = "left garage door toggle"; + name = "left Garage Door toggle"; pixel_x = -7; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning/corner{ dir = 1 @@ -12770,7 +12770,7 @@ /area/awaymission/snowdin/post/dorm) "Sc" = ( /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/corner/neutral{ @@ -12855,7 +12855,7 @@ pixel_y = 5 }, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/red{ dir = 1 @@ -13191,7 +13191,7 @@ /obj/machinery/power/apc{ dir = 1; name = "Security Outpost APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable/yellow{ icon_state = "0-4" @@ -13510,7 +13510,7 @@ "TN" = ( /obj/machinery/door/poddoor/shutters{ id = "snowdingarageunder"; - name = "garage door" + name = "Garage Door" }, /obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plasteel, @@ -13553,7 +13553,7 @@ /obj/machinery/button/ignition{ id = "snowdin_turbine_ignitor"; pixel_x = 6; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/yellow, /obj/effect/turf_decal/corner/yellow{ @@ -13906,7 +13906,7 @@ }, /obj/machinery/firealarm{ dir = 2; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/blue{ dir = 4 @@ -14158,7 +14158,7 @@ "Vr" = ( /obj/machinery/firealarm{ dir = 2; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/corner/neutral{ @@ -15611,7 +15611,7 @@ "Za" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/white{ dir = 1 @@ -15638,7 +15638,7 @@ "Zd" = ( /obj/machinery/firealarm{ dir = 2; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/bar, /obj/effect/turf_decal/corner/bar{ @@ -15650,7 +15650,7 @@ /obj/structure/table, /obj/item/clothing/glasses/hud/health, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/blue{ dir = 4 @@ -15870,7 +15870,7 @@ icon_state = "4-8" }, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/yellow{ dir = 1 diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index 8bcaee9f3158..c59cbfefff8a 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -77,7 +77,7 @@ /area/awaymission/spacebattle/syndicate2) "at" = ( /obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/c20r, +/obj/item/gun/ballistic/automatic/smg/c20r, /turf/open/floor/mineral/plastitanium/red, /area/awaymission/spacebattle/syndicate2) "aw" = ( @@ -1356,7 +1356,7 @@ /area/awaymission/spacebattle/cruiser) "fp" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/gun/ballistic/automatic/c20r, +/obj/item/gun/ballistic/automatic/smg/c20r, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -1381,7 +1381,7 @@ /area/awaymission/spacebattle/cruiser) "fr" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) "fs" = ( @@ -1539,7 +1539,7 @@ /area/awaymission/spacebattle/cruiser) "fN" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/gun/ballistic/automatic/c20r, +/obj/item/gun/ballistic/automatic/smg/c20r, /obj/item/ammo_casing/c10mm, /obj/item/ammo_casing/c10mm, /obj/effect/decal/cleanable/blood, @@ -1740,7 +1740,7 @@ /obj/machinery/button/door{ id = "spacebattlestorage"; name = "Secure Storage"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) @@ -2323,7 +2323,7 @@ /area/awaymission/spacebattle/cruiser) "iu" = ( /obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/gun/ballistic/automatic/c20r, +/obj/item/gun/ballistic/automatic/smg/c20r, /turf/open/floor/plasteel{ icon_state = "damaged2" }, @@ -2469,7 +2469,6 @@ /area/awaymission/spacebattle/secret) "jn" = ( /obj/machinery/door/airlock/plasma, -/turf/closed/wall/mineral/plasma, /area/awaymission/spacebattle/secret) "jo" = ( /obj/item/clothing/suit/space/hardsuit/wizard, @@ -2770,7 +2769,7 @@ /area/awaymission/spacebattle/cruiser) "kl" = ( /obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel, /area/awaymission/spacebattle/cruiser) diff --git a/_maps/RandomZLevels/speedway.dmm b/_maps/RandomZLevels/speedway.dmm index 8c316adbaeb0..b0b0ae526ac8 100644 --- a/_maps/RandomZLevels/speedway.dmm +++ b/_maps/RandomZLevels/speedway.dmm @@ -526,7 +526,7 @@ id = "racepodbay"; name = "Pod Door Control"; pixel_x = 6; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/awaymission/speedway/track) @@ -633,7 +633,6 @@ /area/awaymission/speedway/lounge) "wr" = ( /obj/structure/lattice, -/obj/structure/lattice, /turf/open/space/basic, /area/awaymission/speedway/track) "wE" = ( diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index 198b7871e6df..0abd86a015ff 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -89,14 +89,14 @@ id = "UO45_Elevator"; name = "Elevator Doors"; pixel_x = 6; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/button/door{ desc = "A remote control-switch to call the elevator to your level."; id = "UO45_useless"; name = "B1"; pixel_x = -6; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/button/door{ desc = "A remote control-switch to call the elevator to your level."; @@ -134,7 +134,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/bar, /obj/effect/turf_decal/corner/bar{ @@ -188,14 +188,14 @@ id = "UO45_useless"; name = "Call Elevator"; pixel_x = -6; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/button/door{ desc = "A remote control-switch for the elevator doors."; id = "UO45_Elevator"; name = "Elevator Doors"; pixel_x = 6; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -428,7 +428,7 @@ /obj/machinery/light/small, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/freezer{ heat_capacity = 1e+006 @@ -450,7 +450,7 @@ "bx" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -801,7 +801,7 @@ dir = 1 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -815,7 +815,7 @@ dir = 1 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -1153,7 +1153,7 @@ /area/awaymission/undergroundoutpost45/central) "dm" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -1181,7 +1181,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel{ dir = 8; @@ -1789,7 +1789,7 @@ /obj/machinery/light/small, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -1819,7 +1819,7 @@ "fU" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/camera{ c_tag = "Central Hallway"; @@ -2149,7 +2149,7 @@ /area/awaymission/undergroundoutpost45/research) "gY" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small{ dir = 1 @@ -2164,7 +2164,7 @@ /area/awaymission/undergroundoutpost45/research) "gZ" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 @@ -2206,7 +2206,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -2215,7 +2215,7 @@ "hg" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -2332,7 +2332,7 @@ "ic" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/chair{ @@ -2614,7 +2614,7 @@ "jg" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/camera{ c_tag = "Gateway Chamber"; @@ -2813,7 +2813,7 @@ "jK" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 @@ -3010,7 +3010,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "ko" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -3145,7 +3145,7 @@ "lf" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -3187,7 +3187,7 @@ icon_state = "2-4" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -3400,7 +3400,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/poddoor/shutters/preopen{ id = "UO45_rdprivacy"; - name = "privacy shutters" + name = "Privacy Shutters" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -3410,7 +3410,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "UO45_rdprivacy"; - name = "privacy shutters" + name = "Privacy Shutters" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -3450,7 +3450,7 @@ dir = 1 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 @@ -3477,7 +3477,7 @@ dir = 1 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/chair/wood{ dir = 8 @@ -3644,7 +3644,7 @@ "nh" = ( /obj/machinery/door/poddoor{ id = "UO45_Secure Storage"; - name = "secure storage" + name = "Secure Storage" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -4023,7 +4023,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/light/small{ dir = 4 @@ -4182,7 +4182,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -4538,7 +4538,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 @@ -4556,7 +4556,7 @@ "qv" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/carpet{ heat_capacity = 1e+006 @@ -4568,7 +4568,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/freezer{ heat_capacity = 1e+006 @@ -4675,7 +4675,7 @@ }, /obj/machinery/airalarm/server{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/rnd/server{ req_access = null @@ -4837,7 +4837,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel{ dir = 8; @@ -4871,7 +4871,7 @@ /obj/machinery/power/apc/highcap/fifteen_k{ dir = 8; name = "UO45 Engineering APC"; - pixel_x = -24; + pixel_x = -25; req_access = null; req_access_txt = "201"; start_charge = 100 @@ -5207,7 +5207,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "UO45_Engineering"; - name = "engineering security door" + name = "Engineering Security Door" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -5431,7 +5431,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "UO45_Engineering"; - name = "engineering security door" + name = "Engineering Security Door" }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -6001,7 +6001,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -6229,7 +6229,7 @@ dir = 4 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -6796,7 +6796,7 @@ "wC" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ @@ -6938,7 +6938,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/secure_closet/miner{ req_access = null; @@ -7009,7 +7009,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "1-2" @@ -7273,7 +7273,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/closet/crate, /obj/item/stack/sheet/mineral/plasma{ @@ -7307,7 +7307,7 @@ "xZ" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, @@ -7599,7 +7599,7 @@ "yF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4; - + }, /obj/structure/table, /obj/item/book/manual/chef_recipes, @@ -7609,9 +7609,6 @@ /obj/effect/turf_decal/corner/white{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -7743,7 +7740,7 @@ dir = 2; locked = 0; name = "UO45 Research Division APC"; - pixel_y = -24; + pixel_y = -25; req_access = null; start_charge = 100 }, @@ -7756,16 +7753,13 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "0-8" }, /obj/machinery/power/apc/highcap/fifteen_k{ locked = 0; name = "UO45 Research Division APC"; - pixel_y = -24; + pixel_y = -25; req_access = null; start_charge = 100 }, @@ -7859,17 +7853,6 @@ /obj/effect/turf_decal/corner/red{ dir = 8 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/item/storage/belt/security, -/obj/item/assembly/flash/handheld, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet{ - icon_state = "sec"; - name = "security officer's locker"; - req_access_txt = "201" - }, /obj/effect/turf_decal/corner/red{ dir = 1 }, @@ -7931,9 +7914,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -7958,7 +7938,7 @@ "zB" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/camera{ c_tag = "Kitchen"; @@ -8051,7 +8031,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 8 @@ -8130,7 +8110,7 @@ dir = 2; locked = 0; name = "UO45 Mining APC"; - pixel_y = -24; + pixel_y = -25; req_access = null; start_charge = 100 }, @@ -8150,28 +8130,6 @@ /obj/effect/turf_decal/corner/brown{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/structure/cable, -/obj/machinery/power/apc/highcap/fifteen_k{ - locked = 0; - name = "UO45 Mining APC"; - pixel_y = -24; - req_access = null; - start_charge = 100 - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/engineering_personal{ - icon_state = "mining"; - locked = 0; - name = "miner's equipment"; - req_access = null; - req_access_txt = "201" - }, /obj/item/storage/backpack/satchel/eng, /obj/item/clothing/gloves/fingerless, /obj/effect/turf_decal/corner/brown, @@ -8200,9 +8158,6 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/conveyor{ id = "UO45_mining" }, @@ -8246,9 +8201,6 @@ /obj/effect/turf_decal/industrial/outline/yellow{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plasteel{ @@ -8263,9 +8215,6 @@ /obj/effect/turf_decal/corner/green{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/item/kirbyplants{ layer = 5 }, @@ -8466,7 +8415,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/green, /obj/effect/turf_decal/corner/green{ @@ -8640,14 +8589,11 @@ "CF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5; - + }, /obj/effect/turf_decal/corner/neutral{ dir = 4 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, @@ -8848,9 +8794,6 @@ /obj/effect/turf_decal/corner/neutral{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, @@ -8875,7 +8818,7 @@ /area/awaymission/undergroundoutpost45/central) "DM" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small{ dir = 1 @@ -8936,18 +8879,6 @@ /obj/effect/turf_decal/corner/red{ dir = 8 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/item/restraints/handcuffs, -/obj/item/assembly/flash/handheld, -/obj/item/reagent_containers/spray/pepper, -/obj/structure/closet/secure_closet{ - icon_state = "sec"; - name = "security officer's locker"; - req_access_txt = "201" - }, /obj/effect/turf_decal/corner/red, /obj/effect/turf_decal/corner/red{ dir = 4 @@ -9007,7 +8938,7 @@ /area/awaymission/undergroundoutpost45/gateway) "Ev" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small{ dir = 1 @@ -9069,7 +9000,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "UO45_Engineering"; - name = "engineering security door" + name = "Engineering Security Door" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/industrial/hatch/yellow, @@ -9085,10 +9016,6 @@ /obj/effect/turf_decal/industrial/outline/yellow{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/structure/closet/firecloset, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -9111,7 +9038,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/preopen{ id = "UO45_biohazard"; - name = "biohazard containment door" + name = "Biohazard Containment Door" }, /obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plasteel{ @@ -9254,15 +9181,12 @@ }, /obj/machinery/firealarm{ dir = 2; - pixel_y = 24 + pixel_y = 25 }, /obj/item/multitool, /obj/effect/turf_decal/corner/yellow{ dir = 1 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/light{ dir = 1 }, @@ -9279,7 +9203,7 @@ pixel_y = 5 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/multitool, /obj/effect/turf_decal/corner/yellow{ @@ -9414,7 +9338,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -9429,7 +9353,7 @@ "Gn" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/corner/white{ @@ -9495,9 +9419,6 @@ /obj/effect/turf_decal/corner/white{ dir = 1 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/corner/blue{ @@ -9518,9 +9439,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -9603,9 +9521,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -9641,7 +9556,7 @@ "GU" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light/small{ dir = 8 @@ -9675,10 +9590,6 @@ /obj/effect/turf_decal/industrial/outline/yellow{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/structure/closet/emcloset, /obj/item/clothing/mask/breath, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -9776,9 +9687,6 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/conveyor{ id = "UO45_mining" }, @@ -9825,9 +9733,6 @@ /obj/effect/turf_decal/industrial/warning{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "2-4" }, @@ -10095,9 +10000,6 @@ /obj/effect/turf_decal/corner/green{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/effect/turf_decal/corner/green, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -10156,7 +10058,7 @@ desc = "A remote control-switch for the engineering security doors."; id = "UO45_Engineering"; name = "Engineering Lockdown"; - pixel_x = 24; + pixel_x = 25; pixel_y = 6; req_access_txt = "201" }, @@ -10175,27 +10077,6 @@ /obj/effect/turf_decal/corner/red{ dir = 8 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/button/door{ - desc = "A remote control-switch for the engineering security doors."; - id = "UO45_Engineering"; - name = "Engineering Lockdown"; - pixel_x = 24; - pixel_y = 6; - req_access_txt = "201" - }, -/obj/item/clothing/suit/armor/vest, -/obj/item/clothing/head/helmet, -/obj/structure/closet/secure_closet{ - icon_state = "sec"; - name = "security officer's locker"; - req_access_txt = "201" - }, /obj/effect/turf_decal/corner/red, /obj/effect/turf_decal/corner/red{ dir = 4 @@ -10228,9 +10109,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -10256,7 +10134,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -10269,15 +10147,12 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -10392,7 +10267,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/corner/neutral{ @@ -10416,7 +10291,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "UO45_Engineering"; - name = "engineering security door" + name = "Engineering Security Door" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -10467,7 +10342,7 @@ "JI" = ( /obj/machinery/firealarm{ dir = 2; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/tank_dispenser{ pixel_x = -1 @@ -10481,11 +10356,8 @@ /obj/effect/turf_decal/corner/red{ dir = 8 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/tank_dispenser{ pixel_x = -1 @@ -10637,9 +10509,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, @@ -10677,7 +10546,7 @@ desc = "A remote control-switch for the security privacy shutters."; id = "UO45_EngineeringOffice"; name = "Privacy Shutters"; - pixel_x = -24; + pixel_x = -25; pixel_y = 6; req_access_txt = "201" }, @@ -10702,7 +10571,7 @@ /area/awaymission/undergroundoutpost45/gateway) "Km" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light{ dir = 1 @@ -10744,7 +10613,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/neutral, /obj/effect/turf_decal/corner/neutral{ @@ -10771,9 +10640,6 @@ /obj/effect/turf_decal/corner/white{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/table/reinforced, /obj/structure/window/reinforced{ dir = 1 @@ -10817,7 +10683,7 @@ dir = 2; locked = 0; name = "Hydroponics APC"; - pixel_y = -24; + pixel_y = -25; req_access = null; start_charge = 100 }, @@ -10828,9 +10694,6 @@ /obj/effect/turf_decal/corner/green{ dir = 8 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/camera{ c_tag = "Hydroponics"; dir = 1; @@ -10839,7 +10702,7 @@ /obj/machinery/power/apc/highcap/fifteen_k{ locked = 0; name = "Hydroponics APC"; - pixel_y = -24; + pixel_y = -25; req_access = null; start_charge = 100 }, @@ -10942,9 +10805,6 @@ /obj/effect/turf_decal/industrial/outline/yellow{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 }, @@ -11043,18 +10903,6 @@ /obj/effect/turf_decal/corner/white{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/item/storage/backpack/satchel/tox, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/suit/toggle/labcoat/science, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet{ - icon_state = "rd"; - name = "research director's locker"; - req_access_txt = "201" - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -11300,7 +11148,7 @@ "Ma" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/filingcabinet, @@ -11439,9 +11287,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/effect/turf_decal/corner/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 @@ -11498,7 +11343,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/corner/bar, @@ -11638,10 +11483,6 @@ /obj/effect/turf_decal/corner/neutral{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/machinery/door/firedoor, /obj/effect/turf_decal/corner/neutral, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -11744,9 +11585,6 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/conveyor{ id = "UO45_mining" }, @@ -11892,9 +11730,6 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/components/binary/valve, /obj/effect/turf_decal/industrial/warning{ dir = 4 @@ -11919,9 +11754,6 @@ /obj/effect/turf_decal/corner/neutral{ dir = 1 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -12016,7 +11848,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/bar, /obj/effect/turf_decal/corner/bar{ @@ -12044,7 +11876,7 @@ desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination."; id = "UO45_biohazard"; name = "Biohazard Door Control"; - pixel_y = -24; + pixel_y = -25; req_access_txt = "201" }, /obj/effect/decal/cleanable/dirt, @@ -12265,10 +12097,6 @@ /obj/effect/turf_decal/industrial/warning{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/structure/closet/firecloset, /obj/machinery/light/small, /obj/structure/sign/warning/securearea{ pixel_y = -32 @@ -12428,7 +12256,7 @@ dir = 1; locked = 0; name = "UO45 Bar APC"; - pixel_y = 24; + pixel_y = 25; req_access = null; start_charge = 100 }, @@ -12485,9 +12313,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -12537,9 +12362,6 @@ /obj/effect/turf_decal/industrial/warning{ dir = 5 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/mineral/processing_unit{ dir = 1 }, @@ -12599,9 +12421,6 @@ /obj/effect/turf_decal/industrial/outline/yellow{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 10 }, @@ -12678,7 +12497,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/yellow{ dir = 8 @@ -12755,7 +12574,7 @@ "Su" = ( /obj/structure/table, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/hand_labeler, @@ -12790,9 +12609,6 @@ /obj/effect/turf_decal/corner/neutral{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/corner/neutral, /turf/open/floor/plasteel{ @@ -12803,7 +12619,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/preopen{ id = "UO45_Engineering"; - name = "engineering security door" + name = "Engineering Security Door" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -12893,7 +12709,7 @@ "SW" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/camera{ c_tag = "Research Division East"; @@ -12903,12 +12719,9 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/camera{ c_tag = "Research Division East"; @@ -12951,10 +12764,6 @@ /obj/effect/turf_decal/industrial/outline/yellow{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/structure/closet/firecloset, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -13063,7 +12872,7 @@ dir = 2; locked = 0; name = "UO45 Gateway APC"; - pixel_y = -24; + pixel_y = -25; req_access = null; start_charge = 100 }, @@ -13073,14 +12882,11 @@ /obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable, /obj/machinery/power/apc/highcap/fifteen_k{ locked = 0; name = "UO45 Gateway APC"; - pixel_y = -24; + pixel_y = -25; req_access = null; start_charge = 100 }, @@ -13118,7 +12924,7 @@ "TR" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/rack, /obj/item/clothing/shoes/magboots, @@ -13174,10 +12980,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -13411,9 +13213,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -13437,7 +13236,7 @@ }, /obj/machinery/firealarm{ dir = 2; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/green{ dir = 1 @@ -13445,9 +13244,6 @@ /obj/effect/turf_decal/corner/green{ dir = 4 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/light{ dir = 1 }, @@ -13455,7 +13251,7 @@ dir = 4 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/green{ dir = 1 @@ -13470,7 +13266,7 @@ "Vk" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/bar, /obj/effect/turf_decal/corner/bar{ @@ -13488,9 +13284,6 @@ /obj/effect/turf_decal/corner/bar{ dir = 1 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/vending/boozeomat, /obj/effect/turf_decal/corner/bar, /obj/effect/turf_decal/corner/bar{ @@ -13503,7 +13296,7 @@ "Vq" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light{ dir = 8 @@ -13567,9 +13360,6 @@ /obj/effect/turf_decal/industrial/outline/yellow{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/portable_atmospherics/scrubber, /obj/effect/turf_decal/industrial/outline/yellow, @@ -13739,14 +13529,6 @@ /obj/effect/turf_decal/corner/white{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/structure/closet/secure_closet{ - locked = 0; - name = "kitchen Cabinet"; - req_access_txt = "201" - }, /obj/item/reagent_containers/food/condiment/flour, /obj/item/reagent_containers/food/condiment/flour, /obj/item/reagent_containers/food/condiment/sugar, @@ -13882,7 +13664,7 @@ "WH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10; - + }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -13890,9 +13672,6 @@ /obj/effect/turf_decal/corner/neutral{ dir = 4 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, @@ -14014,15 +13793,12 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -14032,7 +13808,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/corner/purple, @@ -14228,9 +14004,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -14264,10 +14037,6 @@ /obj/effect/turf_decal/corner/purple{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/machinery/door/firedoor, /obj/structure/cable{ icon_state = "4-8" }, @@ -14396,7 +14165,7 @@ icon_state = "4-8" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14453,15 +14222,15 @@ id = "UO45_Engineering"; name = "Engineering Lockdown"; pixel_x = -6; - pixel_y = -24; + pixel_y = -25; req_access_txt = "201" }, /obj/machinery/button/door{ - desc = "A remote control-switch for secure storage."; + desc = "A remote control-switch for Secure Storage."; id = "UO45_Secure Storage"; name = "Engineering Secure Storage"; pixel_x = 6; - pixel_y = -24; + pixel_y = -25; req_access_txt = "201" }, /obj/effect/turf_decal/corner/neutral{ @@ -14494,9 +14263,6 @@ /obj/effect/turf_decal/corner/white{ dir = 1 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/light/small, /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/structure/window/reinforced{ @@ -14632,7 +14398,7 @@ icon_state = "4-8" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -14658,9 +14424,6 @@ /obj/effect/turf_decal/corner/neutral{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -14675,9 +14438,6 @@ /obj/effect/turf_decal/corner/neutral{ dir = 2 }, -/obj{ - name = "---Merge conflict marker---" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/corner/neutral, diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm index d738e9780617..15a9fd4cbf5f 100644 --- a/_maps/RandomZLevels/wildwest.dmm +++ b/_maps/RandomZLevels/wildwest.dmm @@ -651,7 +651,6 @@ /area/space/nearstation) "cu" = ( /obj/structure/lattice, -/obj/structure/lattice, /turf/open/space, /area/space/nearstation) "cv" = ( diff --git a/_maps/_basemap.dm b/_maps/_basemap.dm index 7636c64c2a99..fa90eedff88a 100644 --- a/_maps/_basemap.dm +++ b/_maps/_basemap.dm @@ -1,6 +1,12 @@ -// #define LOWMEMORYMODE //uncomment this to load centcom and runtime station and thats it. +/// VERY IMPORTANT FOR RUNNING FAST IN PRODUCTION! +/// If you define this flag, more things will init during initializations rather than when they're needed, such as planetoids. +//#define FULL_INIT -#include "map_files\generic\CentCom.dmm" +#ifdef FULL_INIT + #include "map_files\generic\CentCom.dmm" +#else + #include "map_files\generic\blank.dmm" +#endif #ifndef LOWMEMORYMODE #ifdef ALL_MAPS diff --git a/_maps/configs/IndiCaravanTypeA.json b/_maps/configs/IndiCaravanTypeA.json index 3d445753d46f..a01622b8d672 100644 --- a/_maps/configs/IndiCaravanTypeA.json +++ b/_maps/configs/IndiCaravanTypeA.json @@ -6,33 +6,27 @@ "prefix": "ISV", "namelists": "GENREAL, SPACE", "roundstart": true, - "job_slots": - { - "Captain": - { + "job_slots": { + "Captain": { "outfit": "/datum/outfit/job/captain/western", "officer": true, "slots": 1 }, - "Ship's Doctor": - { + "Ship's Doctor": { "outfit": "/datum/outfit/job/doctor", "slots": 1 }, - "Engine Technician": - { + "Engine Technician": { "outfit": "/datum/outfit/job/atmos", "slots": 1 }, - "Asteroid Miner": - { + "Asteroid Miner": { "outfit": "/datum/outfit/job/miner/hazard", - "slots":1 + "slots": 1 }, - "Fauna Researcher": - { + "Fauna Researcher": { "outfit": "/datum/job/scientist", - "slots":1 + "slots": 1 }, "Assistant": 1 }, diff --git a/_maps/configs/bogatyr.json b/_maps/configs/bogatyr.json index a8dbd240789e..3325028ef536 100644 --- a/_maps/configs/bogatyr.json +++ b/_maps/configs/bogatyr.json @@ -13,7 +13,6 @@ "Uchenyy": { "outfit": "/datum/outfit/job/scientist", "slots": 1 - }, "Shakhter": { "outfit": "/datum/outfit/job/miner", diff --git a/_maps/configs/cascade.json b/_maps/configs/cascade.json index 8100ed7174dd..6cbe7fc11560 100644 --- a/_maps/configs/cascade.json +++ b/_maps/configs/cascade.json @@ -16,21 +16,17 @@ "slots": 2 }, "Quartermaster": 1, - - "Deck Assistant":{ + "Deck Assistant": { "outfit": "/datum/outfit/syndicate_empty/sbc", "slots": 3 }, - "Union Engineer": { "outfit": "/datum/outfit/job/engineer/gec", "slots": 1 }, "Paramedic": { - "outfit" : "/datum/outfit/job/paramedic/syndicate/gorlex", + "outfit": "/datum/outfit/job/paramedic/syndicate/gorlex", "slots": 1 } - - }, - "cost": 700 + } } diff --git a/_maps/configs/chapel.json b/_maps/configs/chapel.json index a5d67d1382ba..7dcbd68f5afc 100644 --- a/_maps/configs/chapel.json +++ b/_maps/configs/chapel.json @@ -2,7 +2,7 @@ "map_name": "Shepherd-Class Space Monastery", "map_short_name": "Shepherd-class", "map_path": "_maps/shuttles/shiptest/chapel.dmm", - "map_id" : "chapel", + "map_id": "chapel", "job_slots": { "Chaplain": 1, "Curator": 1, diff --git a/_maps/configs/cricket.json b/_maps/configs/cricket.json index 38eb329104ca..10a19be5367f 100644 --- a/_maps/configs/cricket.json +++ b/_maps/configs/cricket.json @@ -2,7 +2,7 @@ "map_name": "Cricket-Class Solgov Intel Scout", "map_short_name": "Solgov Cricket", "map_path": "_maps/shuttles/shiptest/solgov_cricket.dmm", - "map_id" : "solgov_cricket", + "map_id": "solgov_cricket", "job_slots": { "Captain": 1, "SolGov Representative": 1, diff --git a/_maps/configs/diner.json b/_maps/configs/diner.json index e4a3f3161c43..346cbfe7edd6 100644 --- a/_maps/configs/diner.json +++ b/_maps/configs/diner.json @@ -12,8 +12,8 @@ "Janitor": 1, "Waiter": { "outfit": "/datum/outfit/job/assistant/waiter", -"slots": 2 - } + "slots": 2 + } }, "cost": 750 } diff --git a/_maps/configs/diner_b.json b/_maps/configs/diner_b.json index 5b3e78a7e127..1402b811bd6e 100644 --- a/_maps/configs/diner_b.json +++ b/_maps/configs/diner_b.json @@ -11,12 +11,12 @@ "Janitor": 1, "Security Officer": { "outfit": "/datum/outfit/job/security/corporate", -"slots":1 -}, + "slots": 1 + }, "Waiter": { "outfit": "/datum/outfit/job/assistant/waiter/syndicate", -"slots": 2 - } + "slots": 2 + } }, "cost": 750 } diff --git a/_maps/configs/dwayne.json b/_maps/configs/dwayne.json index 4f02370569d8..1e22e280147f 100644 --- a/_maps/configs/dwayne.json +++ b/_maps/configs/dwayne.json @@ -15,11 +15,11 @@ "Foreman": { "outfit": "/datum/outfit/job/quartermaster/western", "slots": 1 - }, + }, "Ship's Doctor": { "outfit": "/datum/outfit/job/doctor", "slots": 1 - }, + }, "Ship's Engineer": { "outfit": "/datum/outfit/job/engineer/hazard", "slots": 1 diff --git a/_maps/configs/engineeringmess.json b/_maps/configs/engineeringmess.json index 0848a9538544..89bbbd9e6377 100644 --- a/_maps/configs/engineeringmess.json +++ b/_maps/configs/engineeringmess.json @@ -33,6 +33,5 @@ "outfit": "/datum/outfit/job/miner", "slots": 2 } - }, - "cost": 750 + } } diff --git a/_maps/configs/geneva.json b/_maps/configs/geneva.json index 470eabc44c30..8451929f29f3 100644 --- a/_maps/configs/geneva.json +++ b/_maps/configs/geneva.json @@ -27,10 +27,9 @@ "slots": 1 }, "Paramedic": { - "outfit" : "/datum/outfit/job/paramedic/syndicate/gorlex", + "outfit": "/datum/outfit/job/paramedic/syndicate/gorlex", "slots": 1 } }, "cost": 500 } - diff --git a/_maps/configs/goon.json b/_maps/configs/goon.json index 494660a606a1..0533d6158078 100644 --- a/_maps/configs/goon.json +++ b/_maps/configs/goon.json @@ -12,4 +12,3 @@ }, "cost": 300 } - \ No newline at end of file diff --git a/_maps/configs/gorlex_hyena.json b/_maps/configs/gorlex_hyena.json index 61689d8c0e07..e29f9c4be963 100644 --- a/_maps/configs/gorlex_hyena.json +++ b/_maps/configs/gorlex_hyena.json @@ -1,4 +1,5 @@ -{ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", +{ + "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "prefix": "SSV", "namelists": ["GENERAL", "NATURAL_AGGRESSIVE", "BEASTS", "WEAPONS"], "map_name": "Hyena-class Wrecking Tug", diff --git a/_maps/configs/gun_dealer.json b/_maps/configs/gun_dealer.json index 97b2f7f5418a..fb0554c78752 100644 --- a/_maps/configs/gun_dealer.json +++ b/_maps/configs/gun_dealer.json @@ -1,7 +1,7 @@ { "map_name": "Halftrack-Class Merchant Vessel", "prefix": "ISV", - "namelists": ["MERCHANTILE","WEAPON"], + "namelists": ["MERCHANTILE", "WEAPON"], "map_short_name": "Halftrack-Class", "map_path": "_maps/shuttles/shiptest/gun_dealer.dmm", "map_id": "gun_dealer", diff --git a/_maps/configs/independent_rigger.json b/_maps/configs/independent_rigger.json index 55f988667a1e..86b721ea4af7 100644 --- a/_maps/configs/independent_rigger.json +++ b/_maps/configs/independent_rigger.json @@ -1,7 +1,7 @@ { "map_name": "Riggs-class Sloop", "prefix": "SV", - "namelists": ["GENERAL", "SPACE","NATURAL","NATURAL_AGGRESSIVE"], + "namelists": ["GENERAL", "SPACE", "NATURAL", "NATURAL_AGGRESSIVE"], "map_short_name": "Riggs-class", "map_path": "_maps/shuttles/shiptest/independent_rigger.dmm", "map_id": "rigger", @@ -21,7 +21,7 @@ "Ship's Doctor": { "outfit": "/datum/outfit/job/doctor", "slots": 1 - }, + }, "Machinist's Mate": { "outfit": "/datum/outfit/job/engineer", "slots": 2 diff --git a/_maps/configs/inteq_colossus.json b/_maps/configs/inteq_colossus.json index dd0799f53e6d..f67ccd49e56c 100644 --- a/_maps/configs/inteq_colossus.json +++ b/_maps/configs/inteq_colossus.json @@ -16,7 +16,7 @@ "outfit": "/datum/outfit/job/engineer/inteq", "slots": 1 }, - "Corpsman":{ + "Corpsman": { "outfit": "/datum/outfit/job/paramedic/inteq", "slots": 1 }, diff --git a/_maps/configs/kilo.json b/_maps/configs/kilo.json index dd419927e625..83cf838ef765 100644 --- a/_maps/configs/kilo.json +++ b/_maps/configs/kilo.json @@ -14,11 +14,11 @@ "Foreman": { "outfit": "/datum/outfit/job/quartermaster/western", "slots": 1 - }, + }, "Ship's Doctor": { "outfit": "/datum/outfit/job/doctor", "slots": 1 - }, + }, "Ship's Engineer": { "outfit": "/datum/outfit/job/engineer/hazard", "slots": 1 diff --git a/_maps/configs/komodo.json b/_maps/configs/komodo.json index b8cf6dc54537..e2c6bb3c7548 100644 --- a/_maps/configs/komodo.json +++ b/_maps/configs/komodo.json @@ -1,5 +1,5 @@ { - "prefix": "SSV", + "prefix": "SSV", "namelists": ["GENERAL", "NATURAL_AGGRESSIVE", "BEASTS", "WEAPONS"], "map_name": "Komodo-class Warship", "map_short_name": "Komodo-class", @@ -16,7 +16,7 @@ "officer": true, "slots": 1 }, - "Medic":{ + "Medic": { "outfit": "/datum/outfit/job/doctor/syndicate_komodo", "slots": 1 }, @@ -24,7 +24,7 @@ "outfit": "/datum/outfit/job/engineer/syndicate/gorlex", "slots": 1 }, - "Trooper":{ + "Trooper": { "outfit": "/datum/outfit/job/security/syndicate/gorlex", "slots": 3 }, @@ -32,12 +32,10 @@ "outfit": "/datum/outfit/job/assistant/syndicate/gorlex", "slots": 2 }, - "Bridge officer":{ + "Bridge officer": { "outfit": "/datum/outfit/job/head_of_personnel/syndicate", - "slots": 1} - - - + "slots": 1 + } }, "cost": 500 } diff --git a/_maps/configs/luxembourg.json b/_maps/configs/luxembourg.json index 6cfeab6caf32..9d1f84e4d126 100644 --- a/_maps/configs/luxembourg.json +++ b/_maps/configs/luxembourg.json @@ -13,4 +13,3 @@ }, "cost": 600 } - \ No newline at end of file diff --git a/_maps/configs/metis.json b/_maps/configs/metis.json index 8d11d8ad5dab..e68d4ccb62d3 100644 --- a/_maps/configs/metis.json +++ b/_maps/configs/metis.json @@ -9,28 +9,23 @@ "outfit": "/datum/outfit/job/rd", "officer": true, "slots": 1 - }, "Invertebrate Xenofauna Morphology Analyst": { "outfit": "/datum/outfit/job/scientist/xenobiologist", "slots": 1 - }, "Hostile Planetary Exobiologist": { "outfit": "/datum/outfit/job/scientist/xenobiologist/fauna", "slots": 1 - }, "Mechatronic Hydraulics Calibration Engineer": { "outfit": "/datum/outfit/job/roboticist/mechatronicengineer", "slots": 1 - }, "Positronic Reliability Technician": { "outfit": "/datum/outfit/job/roboticist/biomechanicalengineer", "slots": 1 - }, "Ionic Dynamo Engineer": { "outfit": "/datum/outfit/job/roboticist/engineer", @@ -39,22 +34,18 @@ "Percussive Acquisitions-Focused Minerologist": { "outfit": "/datum/outfit/job/miner/scientist", "slots": 1 - }, "Mechanosynthesis Specialist": { "outfit": "/datum/outfit/job/scientist/naniteresearcher", "slots": 1 - }, "Plasmic Pyrolysis Researcher": { "outfit": "/datum/outfit/job/scientist/seniorscientist", "slots": 1 - }, "Fiberboard Containment Inspector": { "outfit": "/datum/outfit/job/scientist/juniorscientist", "slots": 1 - }, "Hyphenated-Specialist": { "outfit": "/datum/outfit/job/scientist/juniorscientist", diff --git a/_maps/configs/nanotrasent_powerrangers.json b/_maps/configs/nanotrasent_powerrangers.json index d4b5ebeb343d..249b87edd29f 100644 --- a/_maps/configs/nanotrasent_powerrangers.json +++ b/_maps/configs/nanotrasent_powerrangers.json @@ -20,7 +20,7 @@ "LP Engineering Specialist": { "outfit": "/datum/outfit/job/lp/engineer", "slots": 1 - }, + }, "LP Security Specialist": { "outfit": "/datum/outfit/job/lp/security", "slots": 1 diff --git a/_maps/configs/nemo-class.json b/_maps/configs/nemo-class.json index d2bbd036580d..91c68ef60e22 100644 --- a/_maps/configs/nemo-class.json +++ b/_maps/configs/nemo-class.json @@ -8,28 +8,28 @@ "job_slots": { "Research Director": 1, "Fauna Researcher": { - "outfit": "/datum/outfit/job/scientist", - "slots": 1 - }, + "outfit": "/datum/outfit/job/scientist", + "slots": 1 + }, "Fauna Retrieval Specialist": { - "outfit": "/datum/outfit/job/miner/scientist", - "slots": 1 - }, + "outfit": "/datum/outfit/job/miner/scientist", + "slots": 1 + }, "Excavator": { - "outfit": "/datum/outfit/job/miner/hazard", - "slots": 1 - }, + "outfit": "/datum/outfit/job/miner/hazard", + "slots": 1 + }, "Mech Pilot": { - "outfit": "/datum/outfit/job/roboticist/technician", - "slots": 1 - }, + "outfit": "/datum/outfit/job/roboticist/technician", + "slots": 1 + }, "Ship Engineer": { - "outfit": "/datum/outfit/job/engineer/maintenancetechnician", - "slots": 1 - }, + "outfit": "/datum/outfit/job/engineer/maintenancetechnician", + "slots": 1 + }, "Atmospheric Technician": 1, "Curator": 1, "Assistant": 1 }, "cost": 600 -} \ No newline at end of file +} diff --git a/_maps/configs/ntsv_osprey.json b/_maps/configs/ntsv_osprey.json index dbe6b8f76db0..82749a8f2c43 100644 --- a/_maps/configs/ntsv_osprey.json +++ b/_maps/configs/ntsv_osprey.json @@ -2,7 +2,13 @@ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Osprey-class Exploration Ship", "prefix": "NTSV", - "namelists": ["GENERAL", "SPACE", "BRITISH_NAVY", "MYTHOLOGICAL", "WEAPONS"], + "namelists": [ + "GENERAL", + "SPACE", + "BRITISH_NAVY", + "MYTHOLOGICAL", + "WEAPONS" + ], "map_short_name": "Osprey-class", "map_path": "_maps/shuttles/shiptest/ntsv_osprey.dmm", "map_id": "ntsv_osprey", diff --git a/_maps/configs/pubby.json b/_maps/configs/pubby.json index e3303f24f336..c30d167e1ab5 100644 --- a/_maps/configs/pubby.json +++ b/_maps/configs/pubby.json @@ -20,7 +20,6 @@ "outfit": "/datum/outfit/job/security/nanotrasen", "slots": 2 } - }, "cost": 500 } diff --git a/_maps/configs/scav.json b/_maps/configs/scav.json index f2828f65226e..42eec0cfb824 100644 --- a/_maps/configs/scav.json +++ b/_maps/configs/scav.json @@ -2,7 +2,7 @@ "map_name": "Scav-class Drifter", "map_short_name": "Scav-class", "prefix": "ISV", - "namelists": ["BEASTS", "SPACE" ], + "namelists": ["BEASTS", "SPACE"], "map_path": "_maps/shuttles/shiptest/scav.dmm", "map_id": "scav", "roundstart": true, diff --git a/_maps/configs/schmiedeberg-class.json b/_maps/configs/schmiedeberg-class.json index 3e78e7bbe273..cf6603f88c15 100644 --- a/_maps/configs/schmiedeberg-class.json +++ b/_maps/configs/schmiedeberg-class.json @@ -11,4 +11,4 @@ "Assistant": 3 }, "cost": 600 -} \ No newline at end of file +} diff --git a/_maps/configs/synapse.json b/_maps/configs/synapse.json index 7788c8bf37a2..1b3512951bb2 100644 --- a/_maps/configs/synapse.json +++ b/_maps/configs/synapse.json @@ -11,5 +11,5 @@ "Chemist": 1, "Medical Doctor": 2 }, - "cost":150 + "cost": 150 } diff --git a/_maps/configs/tour_cruise_ship.json b/_maps/configs/tour_cruise_ship.json index 186856f502e8..5bb3dc4ec96f 100644 --- a/_maps/configs/tour_cruise_ship.json +++ b/_maps/configs/tour_cruise_ship.json @@ -31,4 +31,4 @@ } }, "cost": 600 -} \ No newline at end of file +} diff --git a/_maps/configs/tranq.json b/_maps/configs/tranq.json index 68fdbb8afc1b..15f5876d3c06 100644 --- a/_maps/configs/tranq.json +++ b/_maps/configs/tranq.json @@ -14,11 +14,11 @@ "Scholar": { "outfit": "/datum/outfit/job/curator/librarian", "slots": 1 - }, + }, "Medical Tenant": { "outfit": "/datum/outfit/job/chemist/pharmacologist", "slots": 1 - }, + }, "Engineering Tenant": { "outfit": "/datum/outfit/job/engineer/electrician", "slots": 1 diff --git a/_maps/configs/twinkleshine.json b/_maps/configs/twinkleshine.json index 01fb2e903666..965b6cd2b446 100644 --- a/_maps/configs/twinkleshine.json +++ b/_maps/configs/twinkleshine.json @@ -14,19 +14,19 @@ "officer": true, "slots": 1 }, - "Medic":{ + "Medic": { "outfit": "/datum/outfit/syndicate_empty/sbc/med", "slots": 2 }, - "Mechanic":{ + "Mechanic": { "outfit": "/datum/outfit/syndicate_empty/sbc/engi", "slots": 2 }, - "Trooper":{ + "Trooper": { "outfit": "/datum/outfit/syndicate_empty/sbc/assault", "slots": 5 }, - "Deck Assistant":{ + "Deck Assistant": { "outfit": "/datum/outfit/syndicate_empty/sbc", "slots": 2 } diff --git a/_maps/example_ship_config.json b/_maps/example_ship_config.json index e18294b63ed8..66a86b8f9bf2 100644 --- a/_maps/example_ship_config.json +++ b/_maps/example_ship_config.json @@ -5,6 +5,8 @@ "prefix": "STSV", "namelists": ["GENERAL", "SPACE", "FANTASY", "WEAPONS"], "map_path": "_maps/shuttles/shiptest/null.dmm", + "map_id": "null", + "limit": 2, "job_slots": { "The First Slot will always be the 'captain' that the purchaser becomes.": { "outfit": "/datum/outfit/job/captain", diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index b19fa41425b2..8d9a03d08f14 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -370,7 +370,7 @@ "akv" = ( /obj/machinery/door/poddoor/shuttledock{ checkdir = 1; - name = "syndicate blast door"; + name = "Syndicate Blast Door"; turftype = /turf/open/floor/plating/asteroid/snow }, /turf/open/floor/plating, @@ -1219,7 +1219,7 @@ /area/centcom/ferry) "ape" = ( /obj/machinery/keycard_auth{ - pixel_y = -24 + pixel_y = -25 }, /obj/structure/table/reinforced, /obj/machinery/recharger, @@ -1376,7 +1376,7 @@ "aqp" = ( /obj/structure/closet/secure_closet/ertCom, /obj/structure/sign/directions/command{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel, @@ -2158,7 +2158,7 @@ "aud" = ( /obj/machinery/door/poddoor/shutters{ id = "nukeop_ready"; - name = "shuttle dock" + name = "Shuttle Dock" }, /turf/open/floor/plating, /area/syndicate_mothership/control) @@ -2873,7 +2873,7 @@ "axD" = ( /obj/structure/closet/secure_closet/ertEngi, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning{ dir = 6 @@ -3124,7 +3124,7 @@ /obj/structure/table/reinforced, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/blue{ dir = 4 @@ -3543,7 +3543,7 @@ /obj/structure/closet/secure_closet/ertSec, /obj/structure/sign/directions/security{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -3702,7 +3702,7 @@ /obj/item/pen/blue, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -4931,7 +4931,7 @@ /obj/machinery/power/apc{ dir = 4; name = "Briefing Area APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -5584,7 +5584,7 @@ }, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -5711,7 +5711,7 @@ "aMk" = ( /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -6200,14 +6200,14 @@ layer = 3.5; name = "CC Customs 1 Control"; pixel_x = 8; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/button/door/indestructible{ id = "XCCcustoms2"; layer = 3.5; name = "CC Customs 2 Control"; pixel_x = -8; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/red, /obj/effect/turf_decal/corner/red{ @@ -6608,14 +6608,14 @@ id = "XCCFerry"; name = "Hanger Bay Shutters"; pixel_x = -8; - pixel_y = 24; + pixel_y = 25; req_access_txt = "101" }, /obj/machinery/button/door/indestructible{ id = "XCCsec3"; name = "CC Main Access Control"; pixel_x = 8; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/button/door/indestructible{ id = "XCCsec1"; @@ -7522,7 +7522,7 @@ "aQh" = ( /obj/structure/closet/secure_closet/security, /obj/item/storage/belt/security/full, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/crowbar/red, /obj/machinery/light{ @@ -7659,7 +7659,7 @@ }, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -7972,7 +7972,7 @@ /obj/machinery/button/door/indestructible{ id = "XCCsec1"; name = "CC Shutter 1 Control"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning{ dir = 10 @@ -8192,7 +8192,7 @@ /obj/machinery/button/door/indestructible{ id = "XCCFerry"; name = "Hanger Bay Shutters"; - pixel_y = 24; + pixel_y = 25; req_access_txt = "101" }, /obj/effect/turf_decal/industrial/warning{ @@ -8447,8 +8447,8 @@ id = "XCCcustoms1"; layer = 3; name = "CC Emergency Docks Control"; - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -8921,7 +8921,7 @@ "aTf" = ( /obj/structure/closet/secure_closet/ertEngi, /obj/structure/sign/directions/engineering{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel, @@ -9364,7 +9364,7 @@ }, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -9496,7 +9496,7 @@ /obj/structure/table/reinforced, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -9717,7 +9717,7 @@ /area/tdome/tdomeadmin) "aUL" = ( /obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/flashlight/seclite, /obj/structure/noticeboard{ pixel_y = 28 @@ -9884,7 +9884,7 @@ }, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -10394,7 +10394,7 @@ "aWh" = ( /obj/structure/closet/secure_closet/security, /obj/item/storage/belt/security/full, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/crowbar/red, /obj/effect/turf_decal/corner/neutral{ @@ -10566,7 +10566,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -10788,7 +10788,7 @@ }, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -10814,7 +10814,7 @@ }, /obj/machinery/power/apc{ name = "Briefing Room APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -10940,7 +10940,7 @@ /obj/structure/closet/secure_closet/ertMed, /obj/structure/sign/directions/medical{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -11624,7 +11624,7 @@ /obj/item/pen/fourcolor, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -12417,7 +12417,7 @@ /obj/item/book/codex_gigas, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -12731,7 +12731,7 @@ "eAl" = ( /obj/structure/closet/secure_closet/security, /obj/item/storage/belt/security/full, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/crowbar/red, /obj/effect/turf_decal/industrial/warning{ @@ -13255,7 +13255,7 @@ "hyx" = ( /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/filingcabinet/filingcabinet, /obj/effect/turf_decal/corner/neutral{ @@ -13376,7 +13376,7 @@ /obj/machinery/power/apc{ dir = 8; name = "Commander's Office APC"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/warning, /obj/effect/decal/cleanable/dirt, @@ -13458,7 +13458,7 @@ "iUb" = ( /obj/structure/closet/secure_closet/security, /obj/item/storage/belt/security/full, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/crowbar/red, /obj/effect/turf_decal/industrial/warning{ @@ -13550,8 +13550,8 @@ /obj/machinery/button/door/indestructible{ id = "XCCsec3"; name = "XCC Shutter 3 Control"; - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -13628,7 +13628,7 @@ }, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -13649,7 +13649,7 @@ "jPr" = ( /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/brown{ dir = 1 @@ -13711,8 +13711,8 @@ id = "XCCsecdepartment"; layer = 3; name = "CC Security Checkpoint Control"; - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning{ dir = 10 @@ -13755,8 +13755,8 @@ /obj/machinery/button/door/indestructible{ id = "XCCsec3"; name = "XCC Shutter 3 Control"; - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning{ dir = 6 @@ -13859,7 +13859,7 @@ "kTF" = ( /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/filingcabinet/filingcabinet, /obj/effect/turf_decal/corner/neutral{ @@ -14156,7 +14156,7 @@ /obj/structure/closet/secure_closet/quartermaster, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plasteel, @@ -14290,7 +14290,7 @@ "nIp" = ( /obj/structure/closet/secure_closet/security, /obj/item/storage/belt/security/full, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/crowbar/red, /obj/effect/turf_decal/industrial/warning{ @@ -14624,7 +14624,7 @@ "pvH" = ( /obj/structure/table/reinforced, /obj/item/storage/lockbox/loyalty, -/obj/item/gun/ballistic/automatic/ar, +/obj/item/gun/ballistic/automatic/assualt/ar, /obj/machinery/light{ dir = 1 }, @@ -14789,7 +14789,7 @@ "qsF" = ( /obj/machinery/airalarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/warning{ dir = 8 @@ -15018,7 +15018,7 @@ /obj/structure/bookcase/random, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -15406,7 +15406,7 @@ /area/ctf) "tub" = ( /obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/flashlight/seclite, /obj/effect/turf_decal/industrial/warning{ dir = 8 @@ -15563,7 +15563,7 @@ }, /obj/item/radio, /obj/machinery/airalarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel, @@ -15621,7 +15621,7 @@ /obj/machinery/computer/security/wooden_tv, /obj/item/storage/secure/safe{ pixel_x = 32; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -15708,7 +15708,7 @@ /obj/item/assembly/flash/handheld, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -15777,7 +15777,7 @@ "vpf" = ( /obj/structure/closet/secure_closet/security, /obj/item/storage/belt/security/full, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/crowbar/red, /obj/effect/turf_decal/industrial/warning{ @@ -15941,7 +15941,7 @@ /area/ctf) "wsh" = ( /obj/machinery/keycard_auth{ - pixel_y = -24 + pixel_y = -25 }, /obj/structure/table/reinforced, /obj/item/stack/packageWrap, @@ -16010,7 +16010,7 @@ /obj/structure/filingcabinet/filingcabinet, /obj/machinery/airalarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning{ dir = 9 @@ -16116,7 +16116,7 @@ /obj/item/pen/fourcolor, /obj/machinery/airalarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 diff --git a/_maps/map_files/generic/blank.dmm b/_maps/map_files/generic/blank.dmm new file mode 100644 index 000000000000..b8744ca3eca5 --- /dev/null +++ b/_maps/map_files/generic/blank.dmm @@ -0,0 +1,16450 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space/basic, +/area/space) +"b" = ( +/turf/closed/indestructible/riveted, +/area/awaymission/errorroom) +"p" = ( +/turf/closed/mineral/ash_rock, +/area/awaymission/errorroom) +"t" = ( +/obj/effect/landmark/error, +/turf/open/floor/plating/ashplanet/wateryrock{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + planetary_atmos = 0 + }, +/area/awaymission/errorroom) +"D" = ( +/turf/closed/indestructible/riveted, +/area/start) +"F" = ( +/obj/item/rupee, +/turf/open/floor/plating/ashplanet/wateryrock{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + planetary_atmos = 0 + }, +/area/awaymission/errorroom) +"I" = ( +/turf/open/floor/holofloor/hyperspace, +/area/space) +"J" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/floor/holofloor/hyperspace, +/area/space) +"L" = ( +/turf/closed/indestructible/splashscreen, +/area/start) +"N" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/floor/holofloor/hyperspace, +/area/centcom/supplypod/flyMeToTheMoon) +"P" = ( +/obj/structure/signpost/salvation{ + icon = 'icons/obj/structures.dmi'; + icon_state = "ladder10"; + invisibility = 100 + }, +/turf/open/floor/plating/ashplanet/wateryrock{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + planetary_atmos = 0 + }, +/area/awaymission/errorroom) +"R" = ( +/obj/structure/speaking_tile, +/turf/closed/mineral/ash_rock, +/area/awaymission/errorroom) +"T" = ( +/turf/open/floor/plating/ashplanet/wateryrock{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + planetary_atmos = 0 + }, +/area/awaymission/errorroom) +"U" = ( +/obj/effect/landmark/start/new_player, +/turf/open/floor/plating, +/area/start) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +L +a +b +b +b +b +b +b +b +b +b +b +b +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +p +p +p +p +p +p +p +p +b +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +F +F +F +T +F +F +F +p +b +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +F +F +F +T +F +F +F +p +b +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +F +F +F +T +F +F +F +p +b +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +T +T +T +T +T +T +T +p +b +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +F +F +F +T +T +T +T +p +b +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +U +D +D +D +D +D +D +D +a +b +R +F +F +F +T +T +t +P +p +b +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +F +F +F +T +T +T +T +p +b +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +T +T +T +T +T +T +T +p +b +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +F +F +F +T +F +F +F +p +b +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +F +F +F +T +F +F +F +p +b +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +F +F +F +T +F +F +F +p +b +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +p +p +p +p +p +p +p +p +p +b +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +D +D +D +D +D +D +D +D +D +D +D +D +D +D +D +a +b +b +b +b +b +b +b +b +b +b +b +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(24,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +J +J +J +J +J +I +I +I +I +J +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +J +N +N +N +J +I +I +I +I +J +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +J +N +N +N +J +I +I +I +I +J +a +"} +(28,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +J +N +N +N +J +I +I +I +I +J +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +J +J +J +J +J +I +I +I +I +J +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(33,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(34,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +I +I +I +I +I +I +I +I +I +I +I +I +I +J +a +"} +(35,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +a +"} +(36,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(37,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(38,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(39,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(40,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(41,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(42,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(43,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(44,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(45,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(46,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(47,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(48,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(49,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(50,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(51,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(52,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(53,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(54,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(55,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(56,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(57,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(58,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(59,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(60,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(61,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(62,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(63,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(64,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(65,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(66,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(67,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(68,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(69,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(70,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(71,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(72,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(73,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(74,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(75,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(76,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(77,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(78,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(79,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(80,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(81,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(82,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(83,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(84,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(85,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(86,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(87,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(88,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(89,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(90,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(91,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(92,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(93,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(94,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(95,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(96,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(97,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(98,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(99,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(100,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(101,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(102,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(103,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(104,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(105,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(106,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(107,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(108,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(109,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(110,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(111,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(112,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(113,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(114,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(115,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(116,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(117,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(118,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(119,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(120,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(121,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(122,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(123,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(124,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(125,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(126,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(127,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/ship_config_schema.json b/_maps/ship_config_schema.json index 37e234909b5a..e238a1cb4a02 100644 --- a/_maps/ship_config_schema.json +++ b/_maps/ship_config_schema.json @@ -29,14 +29,29 @@ "uniqueItems": true, "items": { "type": "string", - "enum": ["GENERAL", "PIRATES", "BRITISH_NAVY", "MERCANTILE", "REVOLUTIONARY", "SPACE", "NATURAL", "NATURAL_AGGRESSIVE", "BEASTS", "MYTHOLOGICAL", "HISTORICAL", "WEAPONS", "PILLS", "ENGINEERING"] + "enum": [ + "GENERAL", + "PIRATES", + "BRITISH_NAVY", + "MERCANTILE", + "REVOLUTIONARY", + "SPACE", + "NATURAL", + "NATURAL_AGGRESSIVE", + "BEASTS", + "MYTHOLOGICAL", + "HISTORICAL", + "WEAPONS", + "PILLS", + "ENGINEERING" + ] } }, "map_path": { "title": "Map File Path", "type": "string", "description": "The path to the ship class's map file. Use forward slashes (/) for directories, and include the .dmm extension. Map files must be somewhere under the _maps folder.", - "pattern": "^_maps\/([a-zA-Z0-9_/.]*)dmm$" + "pattern": "^_maps/([a-zA-Z0-9_/.]*)dmm$" }, "map_id": { "title": "Map ID (DEPRECATED)", @@ -60,7 +75,7 @@ "outfit": { "type": "string", "description": "The name of the outfit that will be placed in this slot. Must be exact, will error if not found in the code.", - "pattern": "^\/datum\/outfit\/(.*)$" + "pattern": "^/datum/outfit/(.*)$" }, "officer": { "type": "boolean", @@ -92,8 +107,5 @@ } }, - "required": [ - "map_name", - "map_path" - ] + "required": ["map_name", "map_path"] } diff --git a/_maps/shuttles/misc/infiltrator_advanced.dmm b/_maps/shuttles/misc/infiltrator_advanced.dmm index 9b40fb432f80..542e775efa8e 100644 --- a/_maps/shuttles/misc/infiltrator_advanced.dmm +++ b/_maps/shuttles/misc/infiltrator_advanced.dmm @@ -6,7 +6,7 @@ /obj/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "syndieshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /turf/open/floor/plating, @@ -661,7 +661,7 @@ /obj/effect/turf_decal/box, /obj/machinery/airalarm/syndicate{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/pod/dark, /area/shuttle/syndicate/eva) @@ -776,7 +776,7 @@ }, /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod/dark, @@ -1027,7 +1027,7 @@ }, /obj/machinery/airalarm/syndicate{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning{ dir = 6 @@ -1041,7 +1041,7 @@ }, /obj/machinery/airalarm/syndicate{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/industrial/warning{ @@ -1215,7 +1215,7 @@ /obj/effect/turf_decal/industrial/outline/yellow, /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/warning, /turf/open/floor/pod/dark, @@ -1343,7 +1343,7 @@ pixel_x = 26 }, /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/pod/dark, /area/shuttle/syndicate/armory) @@ -1352,7 +1352,7 @@ pixel_y = 28 }, /obj/structure/sink{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/outline/yellow, /obj/effect/turf_decal/industrial/warning{ @@ -1585,7 +1585,7 @@ aidisabled = 1; area = "/area/shuttle/syndicate/bridge"; name = "Infiltrator E.V.A APC"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable{ icon_state = "0-4" @@ -1674,11 +1674,11 @@ area = "/area/shuttle/syndicate/hallway"; dir = 1; name = "Infiltrator APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/airalarm/syndicate{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "0-8" @@ -1801,7 +1801,7 @@ }, /obj/machinery/airalarm/syndicate{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/mineral/plastitanium/red, @@ -1875,7 +1875,7 @@ area = "/area/shuttle/syndicate/medical"; dir = 8; name = "Infiltrator Medical APC"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -1911,7 +1911,7 @@ area = "/area/shuttle/syndicate/armory"; dir = 4; name = "Infiltrator Armory APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "0-8" @@ -2068,7 +2068,7 @@ area = "/area/shuttle/syndicate/airlock"; dir = 4; name = "Infiltrator Airlock APC"; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "0-2" @@ -2127,7 +2127,7 @@ /obj/machinery/button/door{ id = "infiltrator_medbay"; name = "Infiltrator Medical Bay Toggle"; - pixel_x = 24; + pixel_x = 25; req_access_txt = "150" }, /obj/structure/cable{ @@ -2166,7 +2166,7 @@ }, /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "1-2" @@ -2182,7 +2182,7 @@ area = "/area/shuttle/syndicate/eva"; dir = 1; name = "Infiltrator E.V.A APC"; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "0-2" @@ -2303,7 +2303,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/syndicate{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "1-2" @@ -2406,7 +2406,7 @@ /obj/machinery/button/door{ id = "infiltrator_armorybay"; name = "Infiltrator Armory Bay Toggle"; - pixel_x = -24; + pixel_x = -25; req_access_txt = "150" }, /obj/structure/cable{ diff --git a/_maps/shuttles/misc/pirate_default.dmm b/_maps/shuttles/misc/pirate_default.dmm index 4498cc8081fe..cd9bce1cfb43 100644 --- a/_maps/shuttles/misc/pirate_default.dmm +++ b/_maps/shuttles/misc/pirate_default.dmm @@ -8,7 +8,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, @@ -93,7 +93,7 @@ "ak" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ @@ -160,7 +160,7 @@ id = "piratebridgebolt"; name = "Bridge Bolt Control"; normaldoorcontrol = 1; - pixel_y = -24; + pixel_y = -25; specialfunctions = 4 }, /obj/effect/turf_decal/corner/red, @@ -175,7 +175,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, @@ -290,7 +290,7 @@ /area/shuttle/pirate) "ax" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -335,7 +335,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/red{ dir = 1 @@ -443,7 +443,7 @@ name = "External Bolt Control"; normaldoorcontrol = 1; pixel_x = -4; - pixel_y = -24; + pixel_y = -25; specialfunctions = 4 }, /obj/effect/turf_decal/industrial/warning/corner{ @@ -459,7 +459,7 @@ name = "External Bolt Control"; normaldoorcontrol = 1; pixel_x = 4; - pixel_y = -24; + pixel_y = -25; specialfunctions = 4 }, /obj/effect/turf_decal/industrial/warning/corner, @@ -516,7 +516,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/red, /obj/effect/turf_decal/corner/red{ @@ -546,7 +546,7 @@ icon_state = "control_kill"; lethal = 1; locked = 0; - pixel_y = -24; + pixel_y = -25; req_access = null }, /obj/effect/turf_decal/corner/red{ @@ -587,7 +587,7 @@ dir = 1 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -632,7 +632,7 @@ /area/shuttle/pirate) "bu" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -678,7 +678,7 @@ "bC" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/light/small{ dir = 4 @@ -740,7 +740,7 @@ "bK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sink{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/toilet{ dir = 8 @@ -781,7 +781,7 @@ aidisabled = 1; dir = 1; name = "Pirate Corvette APC"; - pixel_y = 24; + pixel_y = 25; req_access = null }, /obj/structure/reagent_dispensers/watertank, @@ -994,7 +994,7 @@ /obj/machinery/atmospherics/components/unary/tank/air, /obj/effect/turf_decal/industrial/outline/yellow, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -1021,7 +1021,7 @@ /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/industrial/outline/yellow, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -1163,7 +1163,7 @@ /area/shuttle/pirate) "OD" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/sign/poster/contraband/random{ pixel_x = 32 @@ -1194,7 +1194,7 @@ dir = 4 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/contraband/random{ @@ -1241,7 +1241,7 @@ dir = 1 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/table, diff --git a/_maps/shuttles/misc/ruin_caravan_victim.dmm b/_maps/shuttles/misc/ruin_caravan_victim.dmm index 1a868525ed8f..79ff4cd2f3d2 100644 --- a/_maps/shuttles/misc/ruin_caravan_victim.dmm +++ b/_maps/shuttles/misc/ruin_caravan_victim.dmm @@ -44,7 +44,7 @@ /area/ship/crew) "bg" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -80,7 +80,7 @@ /obj/machinery/button/door{ id = "caravantrade1_cargo"; name = "Cargo Blast Door Control"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/crate, /obj/item/stack/sheet/mineral/diamond{ @@ -96,7 +96,7 @@ dir = 4 }, /obj/structure/sink{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, @@ -346,7 +346,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -459,7 +459,7 @@ "qM" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, @@ -506,7 +506,7 @@ pixel_y = 5 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/airless, @@ -575,7 +575,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/button/door{ id = "caravantrade1_cabin1"; @@ -877,7 +877,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/blood, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -933,7 +933,7 @@ /area/ship/cargo) "GJ" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -957,7 +957,7 @@ dir = 1 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1182,7 +1182,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/button/door{ id = "caravantrade1_cabin2"; @@ -1251,7 +1251,7 @@ /obj/structure/table, /obj/machinery/cell_charger, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/stack/cable_coil/yellow{ pixel_x = 12; @@ -1328,7 +1328,7 @@ "UW" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ @@ -1425,7 +1425,7 @@ "WU" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, diff --git a/_maps/shuttles/misc/ruin_pirate_cutter.dmm b/_maps/shuttles/misc/ruin_pirate_cutter.dmm index 01355f95d946..22b574be3e21 100644 --- a/_maps/shuttles/misc/ruin_pirate_cutter.dmm +++ b/_maps/shuttles/misc/ruin_pirate_cutter.dmm @@ -104,7 +104,7 @@ /obj/item/bedsheet/brown, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/red{ dir = 8 @@ -228,7 +228,7 @@ "jo" = ( /obj/structure/table, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/ammo_box/a40mm, /obj/effect/turf_decal/corner/neutral{ @@ -348,7 +348,7 @@ /obj/item/storage/firstaid/fire, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -505,7 +505,7 @@ "pZ" = ( /obj/structure/tank_dispenser/oxygen, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -875,7 +875,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/power/apc/auto_name/west, /obj/machinery/power/terminal{ @@ -892,7 +892,7 @@ "DY" = ( /obj/structure/closet/crate/secure/loot, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -1071,7 +1071,7 @@ /obj/effect/turf_decal/industrial/hatch/yellow, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -1232,7 +1232,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/holopad/emergency/command, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/misc/ruin_syndicate_dropship.dmm b/_maps/shuttles/misc/ruin_syndicate_dropship.dmm index 1c97267db010..f5cd652c56dd 100644 --- a/_maps/shuttles/misc/ruin_syndicate_dropship.dmm +++ b/_maps/shuttles/misc/ruin_syndicate_dropship.dmm @@ -2,7 +2,7 @@ "al" = ( /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, @@ -27,7 +27,7 @@ "bo" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/crew) @@ -39,7 +39,7 @@ id = "caravansyndicate3_bolt_starboard"; name = "External Bolt Control"; normaldoorcontrol = 1; - pixel_x = -24; + pixel_x = -25; pixel_y = -6; req_access_txt = "150"; specialfunctions = 4 @@ -266,7 +266,7 @@ id = "caravansyndicate3_bolt_port"; name = "External Bolt Control"; normaldoorcontrol = 1; - pixel_x = -24; + pixel_x = -25; pixel_y = 6; req_access_txt = "150"; specialfunctions = 4 @@ -333,7 +333,7 @@ "EO" = ( /obj/structure/chair/comfy/shuttle, /obj/machinery/airalarm/syndicate{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod/dark, @@ -355,7 +355,7 @@ "Gx" = ( /obj/machinery/airalarm/syndicate{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/crew) @@ -648,7 +648,7 @@ "ZZ" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/holopad/emergency/command, diff --git a/_maps/shuttles/shiptest/IndiCaravanTypeA.dmm b/_maps/shuttles/shiptest/IndiCaravanTypeA.dmm index bb32938c055b..6736ec047566 100644 --- a/_maps/shuttles/shiptest/IndiCaravanTypeA.dmm +++ b/_maps/shuttles/shiptest/IndiCaravanTypeA.dmm @@ -68,8 +68,8 @@ dir = 1 }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /obj/machinery/computer/rdconsole, /turf/open/floor/plasteel/white, @@ -244,7 +244,7 @@ "dW" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, @@ -274,7 +274,7 @@ /obj/machinery/button/door{ id = "ModShip_thruster_port"; name = "thruster doors"; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, @@ -500,7 +500,7 @@ "iY" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/frame/machine, /turf/open/floor/plasteel/tech, @@ -512,7 +512,7 @@ id = "modwindows"; name = "Full Lockdown"; pixel_x = 2; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/button/door{ id = "modbridge"; @@ -564,8 +564,8 @@ pixel_x = -8 }, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /obj/structure/sign/poster/contraband/random{ pixel_y = 32 @@ -610,7 +610,7 @@ }, /obj/machinery/door/poddoor{ id = "ModShip_thruster_starboard"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -670,7 +670,7 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/hatch{ - name = "external airlock" + name = "External Airlock" }, /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -962,7 +962,7 @@ /obj/item/reagent_containers/food/drinks/bottle/vodka, /obj/item/storage/pill_bottle/potassiodide, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -1090,8 +1090,8 @@ dir = 4 }, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/machinery/computer/monitor{ dir = 8 @@ -1134,7 +1134,7 @@ }, /obj/machinery/door/poddoor{ id = "ModShip_thruster_port"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -1282,7 +1282,7 @@ /obj/machinery/door/firedoor/heavy, /obj/machinery/door/poddoor{ id = "cargoblastdoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/cargo) @@ -1543,7 +1543,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -1620,11 +1620,11 @@ /area/ship/cargo) "Eu" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /obj/structure/table/reinforced, /obj/item/paper_bin{ @@ -1642,8 +1642,8 @@ /area/ship/bridge) "EL" = ( /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /obj/machinery/firealarm{ dir = 2; @@ -1839,7 +1839,7 @@ }, /obj/machinery/door/poddoor{ id = "ModShip_thruster_port"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -1925,7 +1925,7 @@ dir = 1; id = "ModShip_thruster_starboard"; name = "thruster doors"; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/crate/radiation, /obj/item/stack/sheet/mineral/plasma/five, @@ -1968,7 +1968,7 @@ }, /obj/machinery/door/poddoor{ id = "ModShip_thruster_starboard"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -2067,7 +2067,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/robot_debris, /obj/structure/reagent_dispensers/fueltank, @@ -2179,7 +2179,7 @@ dir = 9 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/table/glass, /obj/item/reagent_containers/spray/cleaner, @@ -2274,7 +2274,7 @@ "PF" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/window/reinforced{ dir = 8 @@ -2699,8 +2699,8 @@ dir = 4 }, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ @@ -2741,8 +2741,8 @@ dir = 1 }, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /obj/machinery/computer/operating, /turf/open/floor/plasteel/white, @@ -2824,8 +2824,8 @@ dir = 8 }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -2908,8 +2908,8 @@ /obj/machinery/button/door{ id = "cargoblastdoors"; name = "Blast Door Control"; - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/cargo) diff --git a/_maps/shuttles/shiptest/Syndicate_Cascade.dmm b/_maps/shuttles/shiptest/Syndicate_Cascade.dmm index ca21bf5f2401..581baf0bbb30 100644 --- a/_maps/shuttles/shiptest/Syndicate_Cascade.dmm +++ b/_maps/shuttles/shiptest/Syndicate_Cascade.dmm @@ -96,7 +96,7 @@ name = "Robotics Operating Table" }, /obj/machinery/defibrillator_mount/loaded{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -1319,7 +1319,7 @@ dir = 1 }, /obj/machinery/advanced_airlock_controller{ - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/industrial/warning, /obj/structure/closet/emcloset/anchored, diff --git a/_maps/shuttles/shiptest/amogus_sus.dmm b/_maps/shuttles/shiptest/amogus_sus.dmm index 5f37f95a49a2..b258e5344455 100644 --- a/_maps/shuttles/shiptest/amogus_sus.dmm +++ b/_maps/shuttles/shiptest/amogus_sus.dmm @@ -110,7 +110,7 @@ pixel_x = 12 }, /obj/structure/mirror{ - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/white{ dir = 1 @@ -169,7 +169,7 @@ pixel_y = 32 }, /obj/machinery/vending/security/wall{ - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/wood, /area/ship/security) @@ -211,7 +211,7 @@ "cV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/computer/cryopod{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/dresser, /turf/open/floor/wood, @@ -236,7 +236,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 @@ -270,7 +270,7 @@ "dC" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel, /area/ship/cargo) @@ -331,7 +331,7 @@ "ec" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/cryopod{ dir = 1 @@ -404,7 +404,7 @@ /obj/machinery/button/door{ id = "amogusdoors"; name = "Blast Door Control"; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/mass_driver{ id = "ejected" @@ -467,7 +467,7 @@ "fr" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/borderfloor, /obj/effect/turf_decal/corner/white/half{ @@ -510,7 +510,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/red/diagonal, /turf/open/floor/plasteel/white, @@ -601,7 +601,7 @@ /area/ship/hallway/port) "gZ" = ( /obj/machinery/advanced_airlock_controller{ - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4, /turf/open/floor/plasteel/dark, @@ -630,7 +630,7 @@ /area/ship/engineering/atmospherics) "hk" = ( /obj/machinery/advanced_airlock_controller{ - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4{ dir = 1 @@ -709,7 +709,7 @@ "ie" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel, /area/ship/engineering/atmospherics) @@ -776,7 +776,7 @@ "iO" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/effect/turf_decal/corner/bottlegreen/full, @@ -791,7 +791,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, @@ -826,7 +826,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/engineering/electrical) @@ -974,7 +974,7 @@ "kK" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/table, /obj/machinery/light/small, @@ -1017,7 +1017,7 @@ /area/ship/hallway/starboard) "lj" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/table, /obj/machinery/microwave, @@ -1301,7 +1301,7 @@ "oS" = ( /obj/machinery/door/poddoor{ id = "amogusdoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/structure/fans/tiny, /turf/open/floor/plating, @@ -1364,7 +1364,7 @@ "pw" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral/three_quarters{ dir = 8 @@ -1388,7 +1388,7 @@ /obj/item/storage/bag/ore, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel, /area/ship/cargo) @@ -1430,7 +1430,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating, @@ -1471,7 +1471,7 @@ "qU" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/engineering/engine) @@ -1596,7 +1596,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating, @@ -1719,7 +1719,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/engineering/electrical) @@ -1753,7 +1753,7 @@ "tt" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/ship/engineering) @@ -1777,7 +1777,7 @@ /obj/structure/curtain/bounty, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/wood, /area/ship/crew) @@ -1834,7 +1834,7 @@ "uv" = ( /obj/structure/table/glass, /obj/machinery/vending/wallmed{ - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/door/window/eastright, /obj/item/storage/firstaid/fire, @@ -1894,7 +1894,7 @@ /area/ship/engineering) "vc" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/catwalk/over/plated_catwalk/dark, /turf/open/floor/plating, @@ -2331,7 +2331,7 @@ "zT" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/wood, /area/ship/crew/office) @@ -2441,7 +2441,7 @@ "Bo" = ( /obj/structure/bookcase/random, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -2547,7 +2547,7 @@ "Dp" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ship/engineering/engine) @@ -2804,7 +2804,7 @@ /area/ship/cargo) "GT" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 @@ -2962,7 +2962,7 @@ "IG" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/fore) @@ -3154,7 +3154,7 @@ "Kg" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/borderfloor, /obj/effect/turf_decal/corner/white/half{ @@ -3178,7 +3178,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/box, /turf/open/floor/plasteel/dark, @@ -3196,7 +3196,7 @@ /area/ship/medical) "KC" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/ship/hallway/fore) @@ -3215,7 +3215,7 @@ "Lb" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/table/reinforced, /obj/effect/turf_decal/corner/neutral/three_quarters{ @@ -3339,7 +3339,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel, /area/ship/hallway/starboard) @@ -4094,7 +4094,7 @@ "Uw" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/table/wood, /obj/item/paper_bin, @@ -4167,7 +4167,7 @@ "Vk" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/carpet/blue, @@ -4331,7 +4331,7 @@ "WX" = ( /obj/machinery/camera/autoname, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/ship/hallway/port) @@ -4578,7 +4578,7 @@ /area/ship/security) "ZD" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/neutral/three_quarters, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/shiptest/bar_ship.dmm b/_maps/shuttles/shiptest/bar_ship.dmm index dbd7bd7aeaf2..aa5c2aab853e 100644 --- a/_maps/shuttles/shiptest/bar_ship.dmm +++ b/_maps/shuttles/shiptest/bar_ship.dmm @@ -12,7 +12,7 @@ "bk" = ( /obj/structure/table/reinforced, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/storage/box/donkpockets, /obj/effect/turf_decal/corner/white/half, @@ -39,7 +39,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/box, /obj/item/reagent_containers/food/snacks/meat/slab/monkey, @@ -84,8 +84,8 @@ icon_state = "1-2" }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /turf/open/floor/carpet/nanoweave, /area/ship/crew) @@ -109,8 +109,8 @@ icon_state = "1-8" }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /obj/machinery/holopad, /turf/open/floor/plasteel/freezer, @@ -134,7 +134,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/wood, /area/ship/crew) @@ -375,7 +375,7 @@ "ie" = ( /obj/machinery/advanced_airlock_controller{ locked = 0; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/chair, /obj/item/radio/intercom{ @@ -387,7 +387,7 @@ /obj/machinery/light, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/mono/dark, /area/ship/crew/canteen) @@ -424,8 +424,8 @@ /area/ship/crew/canteen) "jv" = ( /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /turf/open/floor/plasteel, /area/ship/cargo) @@ -480,7 +480,7 @@ /area/ship/crew/canteen) "ly" = ( /obj/machinery/advanced_airlock_controller{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4{ dir = 4 @@ -866,7 +866,7 @@ /obj/machinery/hydroponics/constructable, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -967,7 +967,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/soap/deluxe, /turf/open/floor/plasteel/patterned, @@ -1258,7 +1258,7 @@ /area/ship/crew/canteen) "AW" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning/corner{ dir = 4 @@ -1336,8 +1336,8 @@ /area/ship/bridge) "Cx" = ( /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /turf/open/floor/plasteel/mono, /area/ship/bridge) @@ -1398,7 +1398,7 @@ pixel_x = -12 }, /obj/structure/mirror{ - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/patterned, /area/ship/crew/canteen) @@ -1466,7 +1466,7 @@ /area/ship/maintenance) "DK" = ( /obj/machinery/door/airlock/external/glass{ - name = "internal airlock" + name = "Internal Airlock" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 @@ -1618,8 +1618,8 @@ icon_state = "1-4" }, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/structure/cable{ icon_state = "1-2" @@ -2023,7 +2023,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ship/maintenance) @@ -2165,7 +2165,7 @@ "Qn" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel, /area/ship/crew/canteen) @@ -2215,7 +2215,7 @@ }, /obj/item/folder, /obj/machinery/computer/cryopod{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/wood, /area/ship/crew) @@ -2445,8 +2445,8 @@ /obj/machinery/button/door{ id = "cargoblastdoors"; name = "Blast Door Control"; - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /turf/open/floor/plasteel, /area/ship/cargo) @@ -2603,7 +2603,7 @@ /area/ship/crew) "ZH" = ( /obj/machinery/door/airlock/external/glass{ - name = "internal airlock" + name = "Internal Airlock" }, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) @@ -2618,8 +2618,8 @@ icon_state = "4-8" }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = -24 + pixel_x = -25; + pixel_y = -25 }, /turf/open/floor/plasteel, /area/ship/crew/hydroponics) diff --git a/_maps/shuttles/shiptest/bar_ship_b.dmm b/_maps/shuttles/shiptest/bar_ship_b.dmm index 0fbcc8ccac05..8ea69057e200 100644 --- a/_maps/shuttles/shiptest/bar_ship_b.dmm +++ b/_maps/shuttles/shiptest/bar_ship_b.dmm @@ -35,7 +35,7 @@ "bM" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -77,8 +77,8 @@ icon_state = "1-2" }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /turf/open/floor/mineral/plastitanium, /area/ship/crew) @@ -98,8 +98,8 @@ icon_state = "4-8" }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 @@ -122,7 +122,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/vending/autodrobe, /turf/open/floor/carpet/nanoweave/red, @@ -378,7 +378,7 @@ "ie" = ( /obj/machinery/advanced_airlock_controller{ locked = 0; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/chair, /obj/item/radio/intercom{ @@ -388,7 +388,7 @@ /area/ship/crew/canteen) "iP" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning/corner{ dir = 4 @@ -441,8 +441,8 @@ /area/ship/crew/canteen) "jv" = ( /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning, /turf/open/floor/pod/dark, @@ -722,7 +722,7 @@ pixel_x = -12 }, /obj/structure/mirror{ - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/patterned, /area/ship/crew/canteen) @@ -996,8 +996,8 @@ /area/ship/crew/canteen) "vb" = ( /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/item/storage/box/ingredients/wildcard, /obj/item/storage/box/ingredients/wildcard, @@ -1179,7 +1179,6 @@ /area/ship/crew/canteen) "zD" = ( /obj/structure/chair/stool, -/obj/structure/chair/stool, /turf/open/floor/carpet/black, /area/ship/crew/canteen) "zE" = ( @@ -1222,7 +1221,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable{ icon_state = "1-4" @@ -1390,7 +1389,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/soap/syndie, /turf/open/floor/plasteel/patterned, @@ -1471,8 +1470,8 @@ icon_state = "1-4" }, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /turf/open/floor/plating, /area/ship/maintenance) @@ -1575,8 +1574,8 @@ /obj/machinery/button/door{ id = "cargoblastdoors"; name = "Blast Door Control"; - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /turf/open/floor/pod/dark, /area/ship/cargo) @@ -1630,7 +1629,7 @@ /obj/machinery/light, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/red, /area/ship/crew/canteen) @@ -1965,7 +1964,7 @@ "Qn" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/red, /area/ship/crew/canteen) @@ -2013,7 +2012,7 @@ }, /obj/item/folder, /obj/machinery/computer/cryopod{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/storage/firstaid/medical{ icon_state = "bezerk"; @@ -2384,7 +2383,7 @@ "Xd" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/item/radio/intercom{ pixel_y = 20 @@ -2471,7 +2470,7 @@ "Yr" = ( /obj/structure/table/reinforced, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/storage/box/donkpockets, /obj/effect/spawner/lootdrop/donkpockets, @@ -2534,8 +2533,8 @@ icon_state = "4-8" }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = -24 + pixel_x = -25; + pixel_y = -25 }, /turf/open/floor/plasteel/freezer{ color = "#8D8B8B" diff --git a/_maps/shuttles/shiptest/bogatyr.dmm b/_maps/shuttles/shiptest/bogatyr.dmm index dfec00723fdb..0d565f788581 100644 --- a/_maps/shuttles/shiptest/bogatyr.dmm +++ b/_maps/shuttles/shiptest/bogatyr.dmm @@ -242,13 +242,13 @@ /obj/machinery/button/door{ id = "bogatyr_windows"; name = "window lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = 7 }, /obj/machinery/button/door{ id = "bogatyr_bridge"; name = "bridge lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /obj/machinery/light/small, @@ -1427,8 +1427,8 @@ "Ux" = ( /obj/machinery/button/door{ id = "blastdoors"; - name = "cargo bay blast doors"; - pixel_x = -24 + name = "Cargo Bay Blast Doors"; + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/mineral/plastitanium, diff --git a/_maps/shuttles/shiptest/cargotide.dmm b/_maps/shuttles/shiptest/cargotide.dmm index c3732b9728eb..d3d363df1c88 100644 --- a/_maps/shuttles/shiptest/cargotide.dmm +++ b/_maps/shuttles/shiptest/cargotide.dmm @@ -104,7 +104,7 @@ }, /obj/machinery/door/poddoor{ id = "baydoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -154,7 +154,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "baydoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -409,7 +409,7 @@ "qt" = ( /obj/machinery/door/poddoor/shutters{ desc = "Heavy duty metal shutters that open mechanically. This one appears to lack proper setup, thus functionally useless."; - name = "broken shutters" + name = "Broken Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/fore) @@ -497,7 +497,7 @@ "sF" = ( /obj/machinery/button/door{ id = "Tcargotide1"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/item/trash/semki, @@ -1001,7 +1001,7 @@ open_state = "crateopen" }, /obj/machinery/computer/cryopod{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ship/crew) diff --git a/_maps/shuttles/shiptest/carrier.dmm b/_maps/shuttles/shiptest/carrier.dmm index 7fb32d2554b5..cd1a3e6b7f91 100644 --- a/_maps/shuttles/shiptest/carrier.dmm +++ b/_maps/shuttles/shiptest/carrier.dmm @@ -88,14 +88,10 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, /turf/open/floor/plasteel/dark, /area/ship/engineering) @@ -480,7 +476,7 @@ dir = 10 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/central) @@ -1968,7 +1964,7 @@ "xL" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/central) diff --git a/_maps/shuttles/shiptest/chapel.dmm b/_maps/shuttles/shiptest/chapel.dmm index 6e9c161feafd..9221fa0f8aa4 100644 --- a/_maps/shuttles/shiptest/chapel.dmm +++ b/_maps/shuttles/shiptest/chapel.dmm @@ -31,7 +31,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_bridgewindow"; - name = "window shutters" + name = "Window Shutters" }, /turf/open/floor/plating, /area/ship/crew/library) @@ -166,7 +166,7 @@ /obj/machinery/button/door{ id = "chapel_orm"; name = "ORM Shutter Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 8 }, /obj/item/pickaxe/rusted, @@ -394,7 +394,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_bridgewindow"; - name = "window shutters" + name = "Window Shutters" }, /turf/open/floor/plating, /area/ship/bridge) @@ -594,7 +594,7 @@ }, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_bridgelock"; - name = "privacy shutters" + name = "Privacy Shutters" }, /obj/structure/grille, /obj/effect/spawner/structure/window/reinforced, @@ -618,7 +618,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_medshutter"; - name = "privacy shutters" + name = "Privacy Shutters" }, /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -640,14 +640,14 @@ }, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_bridgelock"; - name = "privacy shutters" + name = "Privacy Shutters" }, /turf/open/floor/carpet, /area/ship/bridge) "kc" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_bridgelock"; - name = "privacy shutters" + name = "Privacy Shutters" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 1 @@ -683,7 +683,7 @@ /obj/machinery/door/window/westleft, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_engshutter"; - name = "engineering shutters" + name = "Engineering Shutters" }, /obj/machinery/door/firedoor/heavy, /turf/open/floor/plasteel, @@ -853,7 +853,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_backwindow"; - name = "window shutters" + name = "Window Shutters" }, /turf/open/floor/plating, /area/ship/crew/chapel/office) @@ -882,7 +882,7 @@ /obj/item/lighter, /obj/item/toner, /obj/structure/extinguisher_cabinet{ - pixel_x = 24 + pixel_x = 25 }, /obj/item/table_bell/brass, /turf/open/floor/wood, @@ -1213,7 +1213,7 @@ dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/carpet/nanoweave/blue, /area/ship/crew/chapel/office) @@ -1513,7 +1513,7 @@ /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_engshutter"; - name = "engineering shutters" + name = "Engineering Shutters" }, /obj/machinery/door/firedoor/heavy, /obj/structure/window/reinforced/spawner/west, @@ -1539,7 +1539,7 @@ }, /obj/machinery/door/poddoor/shutters{ id = "chapel_orm"; - name = "access shutters" + name = "Access Shutters" }, /turf/open/floor/plating, /area/ship/engineering/electrical) @@ -1808,7 +1808,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_backwindow"; - name = "window shutters" + name = "Window Shutters" }, /turf/open/floor/plating, /area/ship/crew/chapel) @@ -2270,7 +2270,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_medshutter"; - name = "privacy shutters" + name = "Privacy Shutters" }, /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -2375,7 +2375,7 @@ "GZ" = ( /obj/structure/chair/office, /obj/machinery/light_switch{ - pixel_x = 24 + pixel_x = 25 }, /obj/effect/landmark/start/librarian, /turf/open/floor/wood, @@ -2402,7 +2402,7 @@ dir = 4 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -2681,7 +2681,7 @@ /obj/machinery/door/window/westright, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_engshutter"; - name = "engineering shutters" + name = "Engineering Shutters" }, /obj/machinery/door/firedoor/heavy, /turf/open/floor/plasteel, @@ -2786,7 +2786,7 @@ /obj/item/storage/box/disks_plantgene, /obj/machinery/airalarm/directional/north, /obj/machinery/light_switch{ - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/wood, /area/ship/storage) @@ -2903,7 +2903,7 @@ /area/ship/hallway/port) "Oh" = ( /obj/machinery/advanced_airlock_controller{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -3198,7 +3198,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_medshutter"; - name = "privacy shutters" + name = "Privacy Shutters" }, /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -3214,7 +3214,7 @@ }, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_bridgewindow"; - name = "window shutters" + name = "Window Shutters" }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -3458,7 +3458,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_backwindow"; - name = "window shutters" + name = "Window Shutters" }, /turf/open/floor/plating, /area/ship/medical/morgue) @@ -3532,7 +3532,7 @@ dir = 1 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) @@ -3945,7 +3945,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_bridgewindow"; - name = "window shutters" + name = "Window Shutters" }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -3970,7 +3970,7 @@ }, /obj/machinery/door/poddoor/shutters/preopen{ id = "chapel_bridgewindow"; - name = "window shutters" + name = "Window Shutters" }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) diff --git a/_maps/shuttles/shiptest/corp_high.dmm b/_maps/shuttles/shiptest/corp_high.dmm index e637344caea8..5ad0715c8cdc 100644 --- a/_maps/shuttles/shiptest/corp_high.dmm +++ b/_maps/shuttles/shiptest/corp_high.dmm @@ -300,7 +300,7 @@ "dM" = ( /obj/structure/table, /obj/machinery/light_switch{ - pixel_x = 24; + pixel_x = 25; pixel_y = 10 }, /obj/structure/reagent_dispensers/peppertank{ @@ -422,7 +422,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chwindow"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/engineering) @@ -1012,7 +1012,7 @@ dir = 8 }, /obj/machinery/advanced_airlock_controller{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ship/hallway/starboard) @@ -1196,7 +1196,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chwindow"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/engineering) @@ -1464,7 +1464,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "corpcargobay1"; - name = "cargo bay exterior blast door" + name = "Cargo Bay Exterior Blast Door" }, /turf/open/floor/engine/hull/interior, /area/ship/cargo) @@ -1916,7 +1916,7 @@ "Bu" = ( /obj/machinery/button/door{ id = "chmaint"; - pixel_x = -24; + pixel_x = -25; pixel_y = -25 }, /turf/open/floor/carpet/nanoweave/purple, @@ -2031,7 +2031,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chwindow"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/crew/dorm) @@ -2109,7 +2109,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chwindow"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/bridge) @@ -2187,7 +2187,7 @@ pixel_x = -12 }, /obj/structure/mirror{ - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/red/diagonal, /turf/open/floor/plasteel/white, @@ -2414,7 +2414,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chwindow"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/hallway/starboard) @@ -2470,7 +2470,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chwindow"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/crew/chapel/office) @@ -2654,7 +2654,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chmeet"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/crew/office) @@ -2734,8 +2734,8 @@ }, /obj/machinery/button/door{ id = "chmaint"; - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /obj/structure/catwalk/over/plated_catwalk/dark, /turf/open/floor/plating, @@ -3052,7 +3052,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chwindow"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/engineering) @@ -3154,7 +3154,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chwindow"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/engineering) @@ -3298,7 +3298,7 @@ "VC" = ( /obj/machinery/door/poddoor{ id = "corpcargobay2"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -3521,7 +3521,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "chwindow"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/crew) @@ -3555,7 +3555,7 @@ }, /obj/machinery/door/poddoor{ id = "corpcargobay2"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plasteel/patterned/ridged{ color = "#4c535b" diff --git a/_maps/shuttles/shiptest/engi_moth.dmm b/_maps/shuttles/shiptest/engi_moth.dmm index 8a0f14047507..1ec727cad735 100644 --- a/_maps/shuttles/shiptest/engi_moth.dmm +++ b/_maps/shuttles/shiptest/engi_moth.dmm @@ -993,7 +993,7 @@ "oh" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/radio/intercom{ pixel_x = 32 @@ -1010,7 +1010,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -1096,7 +1096,7 @@ dir = 9 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/mineral/plastitanium, /area/ship/science/robotics) @@ -1725,7 +1725,7 @@ dir = 1 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/mineral/plastitanium, /area/ship/crew) @@ -2899,7 +2899,7 @@ }, /obj/effect/turf_decal/techfloor/orange/corner, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/tech/grid, /area/ship/engineering) diff --git a/_maps/shuttles/shiptest/engineeringmess.dmm b/_maps/shuttles/shiptest/engineeringmess.dmm index 17ccaa491019..7e95c7b34b1d 100644 --- a/_maps/shuttles/shiptest/engineeringmess.dmm +++ b/_maps/shuttles/shiptest/engineeringmess.dmm @@ -10,7 +10,7 @@ icon_state = "4-8" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/insectguts, /turf/open/floor/plating, @@ -1172,7 +1172,7 @@ /obj/structure/bedsheetbin, /obj/machinery/computer/cryopod{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/royalblue, /area/ship/crew/dorm) @@ -1241,14 +1241,13 @@ icon_state = "4-10" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/railing/corner, /turf/open/floor/plating/airless, /area/ship/hallway) "kM" = ( /obj/structure/lattice/catwalk, -/obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable/green{ @@ -1461,7 +1460,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -1487,7 +1486,7 @@ dir = 4; id = "Storage Bay Blast"; name = "Storage Bay Doors Control"; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating/airless, /area/ship/external) @@ -1629,7 +1628,7 @@ dir = 4; id = "C02 Chamber Blast"; name = "C02 Chamber Vent Control"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/oil, /turf/open/floor/plating, @@ -1667,7 +1666,7 @@ icon_state = "4-8" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/brown/border{ dir = 1 @@ -2186,7 +2185,7 @@ "uU" = ( /obj/machinery/camera/autoname, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/stairs{ dir = 4 @@ -2878,7 +2877,7 @@ /obj/machinery/firealarm{ dir = 4; pixel_x = 26; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/stellar, /area/ship/crew/canteen) @@ -2900,7 +2899,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/radiation{ dir = 4 @@ -2945,7 +2944,7 @@ "BK" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/royalblue, /area/ship/crew/dorm) @@ -3316,7 +3315,7 @@ dir = 4; id = "N2 Chamber Blast"; name = "N2 Chamber Vent Control"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/plating, @@ -3878,7 +3877,7 @@ /obj/machinery/button/door{ dir = 4; name = "02 Chamber Vent Control"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/plating, @@ -3978,7 +3977,7 @@ dir = 4; id = "Storage Bay Blast"; name = "Storage Bay Doors Control"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/radiation{ dir = 10 @@ -4125,6 +4124,10 @@ /turf/open/floor/plasteel/grimy, /area/ship/crew/canteen) "NB" = ( +/obj/structure/closet/firecloset/wall{ + dir = 8; + pixel_x = 28 + }, /obj/machinery/door/airlock/hatch, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 @@ -4142,10 +4145,6 @@ /obj/structure/closet/emcloset/wall{ pixel_y = 28 }, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, @@ -4156,7 +4155,7 @@ dir = 4; id = "Plasma Chamber Blast"; name = "Plasma Chamber Vent Control"; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -4223,7 +4222,6 @@ /turf/open/floor/plating, /area/ship/engineering/atmospherics) "Om" = ( -/obj/structure/lattice/catwalk, /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering/atmospherics) "Ot" = ( diff --git a/_maps/shuttles/shiptest/golem_ship.dmm b/_maps/shuttles/shiptest/golem_ship.dmm index 500b557c3fe0..60d586a0e6a8 100644 --- a/_maps/shuttles/shiptest/golem_ship.dmm +++ b/_maps/shuttles/shiptest/golem_ship.dmm @@ -320,14 +320,14 @@ id = "golemloading"; name = "Cargo Blast Door Control"; pixel_x = -5; - pixel_y = -24 + pixel_y = -25 }, /obj/item/storage/firstaid/regular, /obj/machinery/button/door{ id = "golemwindows"; name = "Window Blast Door Control"; pixel_x = 5; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/trimline/blue/line, /obj/effect/turf_decal/corner/neutral{ @@ -2685,7 +2685,7 @@ id = "golemloading"; name = "Cargo Blast Door Control"; pixel_x = -5; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/trimline/yellow/arrow_cw{ dir = 4 diff --git a/_maps/shuttles/shiptest/gorlex_Komodo.dmm b/_maps/shuttles/shiptest/gorlex_Komodo.dmm index 6fe20604c2cc..92c10ae2dc4e 100644 --- a/_maps/shuttles/shiptest/gorlex_Komodo.dmm +++ b/_maps/shuttles/shiptest/gorlex_Komodo.dmm @@ -186,7 +186,7 @@ "bA" = ( /obj/machinery/door/poddoor{ id = "syndie_warship_cargo"; - name = "Cargo hatch" + name = "Cargo Hatch" }, /obj/structure/fans/tiny, /turf/open/floor/plasteel/tech/grid, @@ -202,7 +202,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "syndiewarship_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/hallway/central) @@ -267,7 +267,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "syndiewarship_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/crew) @@ -298,7 +298,7 @@ /area/ship/hallway/central) "cR" = ( /obj/machinery/door/airlock/hatch{ - name = "Cargo bay" + name = "Cargo Bay" }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -379,7 +379,7 @@ icon_state = "1-2" }, /obj/machinery/door/airlock/hatch{ - name = "Weapons platform" + name = "Weapons Platform" }, /turf/open/floor/mineral/plastitanium/red, /area/ship/maintenance/starboard) @@ -512,7 +512,7 @@ /obj/effect/turf_decal/borderfloorblack, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/tech, /area/ship/maintenance/port) @@ -893,7 +893,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable{ icon_state = "4-8" @@ -1116,7 +1116,7 @@ dir = 4 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" @@ -1335,7 +1335,7 @@ /obj/machinery/button/door{ id = "warship_engines"; name = "Engine shutters"; - pixel_y = -24; + pixel_y = -25; dir = 1 }, /turf/open/floor/plasteel/stairs{ @@ -1378,7 +1378,7 @@ }, /obj/machinery/door/poddoor{ id = "warship_engines"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/engineering) @@ -1389,7 +1389,7 @@ /obj/structure/window/plasma/reinforced/spawner, /obj/machinery/door/poddoor{ id = "warship_engines"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /obj/machinery/door/window/eastleft{ dir = 1; @@ -1547,7 +1547,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/carpet/red_gold, /area/ship/crew) @@ -1679,7 +1679,7 @@ /obj/effect/turf_decal/industrial/outline/yellow, /obj/effect/decal/cleanable/greenglow, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" @@ -1722,7 +1722,7 @@ }, /obj/effect/turf_decal/industrial/fire, /obj/structure/guncase, -/obj/item/gun/ballistic/automatic/c20r, +/obj/item/gun/ballistic/automatic/smg/c20r, /obj/structure/railing{ dir = 4 }, @@ -1792,7 +1792,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "syndiewarship_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/engineering) @@ -1800,7 +1800,7 @@ /obj/machinery/button/door{ id = "syndie_mechbay"; name = "mechbay door"; - pixel_y = -24; + pixel_y = -25; dir = 1 }, /obj/effect/decal/cleanable/dirt/dust, @@ -1945,7 +1945,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/holofloor/wood, /area/ship/crew) @@ -2203,7 +2203,7 @@ }, /obj/machinery/door/poddoor{ id = "warship_engines"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/engineering) @@ -2261,7 +2261,7 @@ name = "tactical chair" }, /obj/item/radio/intercom{ - pixel_y = 24; + pixel_y = 25; pixel_x = 4 }, /obj/machinery/light_switch{ @@ -2464,7 +2464,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/mineral/plastitanium, /area/ship/medical) @@ -2484,7 +2484,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/power/apc/auto_name/north, /obj/structure/cable{ @@ -2697,7 +2697,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "syndiewarship_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/crew/canteen) @@ -2911,7 +2911,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -2929,7 +2929,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "1-2" @@ -3168,7 +3168,7 @@ /obj/machinery/button/door{ id = "syndie_mechbay"; name = "mechbay door"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor{ dir = 5 @@ -3378,7 +3378,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor{ dir = 1 @@ -3586,7 +3586,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 @@ -3769,7 +3769,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "1-2" @@ -3816,7 +3816,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/item/radio/intercom{ - pixel_y = 24; + pixel_y = 25; pixel_x = 4 }, /obj/machinery/light_switch{ @@ -3856,7 +3856,7 @@ /area/ship/hallway/central) "Lt" = ( /obj/machinery/door/airlock/hatch{ - name = "captain's office"; + name = "Captain's Office"; req_access_txt = "20" }, /obj/machinery/door/firedoor, @@ -3965,7 +3965,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "warshipbridge"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/bridge) @@ -4169,7 +4169,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/storage/box/firingpins{ pixel_x = 21 @@ -4271,7 +4271,7 @@ /obj/structure/window/plasma/reinforced/spawner, /obj/machinery/door/poddoor{ id = "warship_engines"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /obj/machinery/door/window/eastright{ dir = 1; @@ -4467,7 +4467,7 @@ "RT" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ - name = "Weapons platform" + name = "Weapons Platform" }, /obj/structure/barricade/wooden/crude, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -4716,7 +4716,7 @@ "Ux" = ( /obj/machinery/door/poddoor/shutters{ id = "syndie_mechbay"; - name = "mech bay" + name = "Mechbay" }, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ @@ -4791,7 +4791,7 @@ icon_state = "1-2" }, /obj/machinery/door/airlock/hatch{ - name = "Command hall"; + name = "Command Hall"; req_access_txt = "19" }, /turf/open/floor/plasteel/dark, @@ -4885,7 +4885,7 @@ pixel_y = 3 }, /obj/machinery/light_switch{ - pixel_x = -24; + pixel_x = -25; dir = 4; pixel_y = 10 }, @@ -5005,7 +5005,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "syndiewarship_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/medical) @@ -5035,7 +5035,7 @@ /obj/effect/turf_decal/trimline/bar/filled/line, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/vomit/old{ pixel_y = -1; @@ -5290,7 +5290,7 @@ /obj/effect/turf_decal/borderfloorblack, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating{ icon_state = "platingdmg3" @@ -5318,11 +5318,11 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light_switch{ pixel_x = -8; - pixel_y = -24; + pixel_y = -25; dir = 1 }, /obj/structure/cable{ diff --git a/_maps/shuttles/shiptest/gorlex_hyena.dmm b/_maps/shuttles/shiptest/gorlex_hyena.dmm index 829c5fa69537..ec533db88781 100644 --- a/_maps/shuttles/shiptest/gorlex_hyena.dmm +++ b/_maps/shuttles/shiptest/gorlex_hyena.dmm @@ -74,7 +74,7 @@ "bV" = ( /obj/machinery/door/poddoor/shutters{ id = "wreckerarmory"; - name = "security shutters" + name = "Security Shutters" }, /obj/effect/turf_decal/industrial/warning, /obj/effect/turf_decal/industrial/warning{ @@ -117,7 +117,7 @@ }, /obj/machinery/door/poddoor/shutters{ id = "wreckerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/storage) @@ -284,7 +284,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/outline, /turf/open/floor/mineral/plastitanium, @@ -294,7 +294,7 @@ dir = 4 }, /obj/machinery/advanced_airlock_controller{ - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/borderfloor{ dir = 4 @@ -387,7 +387,6 @@ /turf/open/floor/carpet/black, /area/ship/bridge) "hy" = ( -/obj/structure/lattice, /obj/structure/sign/number/eight{ dir = 1 }, @@ -413,7 +412,7 @@ id = "wreckercargobay"; name = "cargo bay doors"; pixel_x = 10; - pixel_y = -24 + pixel_y = -25 }, /obj/item/gps/mining{ pixel_x = 9; @@ -549,7 +548,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "wreckerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/storage) @@ -636,7 +635,7 @@ /obj/machinery/button/door{ id = "wreckerarmory"; name = "armory shutters"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/outline, /turf/open/floor/mineral/plastitanium, @@ -663,7 +662,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) @@ -728,7 +727,7 @@ /obj/machinery/button/door{ id = "wreckerarmory"; name = "armory shutters"; - pixel_y = 24; + pixel_y = 25; req_one_access_txt = "list(19)" }, /obj/structure/cable{ @@ -798,7 +797,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "wreckerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/bridge) @@ -819,7 +818,6 @@ /turf/open/floor/plasteel/tech, /area/ship/cargo) "oO" = ( -/obj/structure/lattice, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/fore) "oR" = ( @@ -844,7 +842,7 @@ icon_state = "2-4" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -931,7 +929,7 @@ dir = 8; id = "wrecker_engine_stbd"; name = "thruster doors"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/maintenance/starboard) @@ -979,7 +977,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -1039,7 +1037,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "wreckercargobay"; - name = "cargo bay exterior blast door" + name = "Cargo Bay Exterior Blast Door" }, /obj/effect/turf_decal/industrial/warning/fulltile, /obj/effect/decal/cleanable/dirt/dust, @@ -1059,7 +1057,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/industrial/warning/fulltile, /obj/machinery/door/airlock/hatch{ - name = "external airlock" + name = "External Airlock" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -1127,7 +1125,7 @@ /obj/item/clothing/mask/gas/syndicate, /obj/machinery/light_switch{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/black, /area/ship/bridge) @@ -1152,7 +1150,7 @@ dir = 1 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/tech/grid, /area/ship/storage) @@ -1203,7 +1201,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/tech, /area/ship/hallway/central) @@ -1242,7 +1240,7 @@ /obj/machinery/button/door{ dir = 8; id = "wreckerwindows"; - name = "window shutters"; + name = "Window Shutters"; pixel_x = -5; pixel_y = 5 }, @@ -1671,7 +1669,7 @@ dir = 1; id = "wrecker_engine_port"; name = "thruster doors"; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/port) @@ -1715,7 +1713,7 @@ pixel_x = -12 }, /obj/structure/mirror{ - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/mineral/plastitanium, /area/ship/crew/dorm) @@ -1763,7 +1761,7 @@ /obj/machinery/door/firedoor/border_only, /obj/machinery/door/poddoor/shutters{ id = "wreckerarmory"; - name = "security shutters" + name = "Security Shutters" }, /turf/open/floor/plasteel/tech/grid, /area/ship/security/armory) @@ -1830,7 +1828,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/mineral/plastitanium, /area/ship/crew/dorm) @@ -1883,7 +1881,7 @@ "Gm" = ( /obj/machinery/atmospherics/pipe/layer_manifold, /obj/machinery/door/airlock/hatch{ - name = "external airlock" + name = "External Airlock" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ @@ -1914,7 +1912,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/port) @@ -1926,7 +1924,7 @@ dir = 1; id = "wreckercargobay"; name = "cargo bay doors"; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/floor, /turf/open/floor/plasteel/mono/dark, @@ -1992,7 +1990,7 @@ }, /obj/machinery/computer/cryopod{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning/full, /obj/effect/decal/cleanable/dirt/dust, @@ -2083,7 +2081,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "wreckercargobay"; - name = "cargo bay exterior blast door" + name = "Cargo Bay Exterior Blast Door" }, /obj/effect/turf_decal/industrial/warning/fulltile, /turf/open/floor/plating, @@ -2142,7 +2140,7 @@ "KA" = ( /obj/machinery/door/window/northleft{ dir = 2; - name = "captain's bunk" + name = "Captain's Bunk" }, /turf/open/floor/carpet/black, /area/ship/bridge) @@ -2197,7 +2195,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/door/poddoor/shutters{ id = "wreckerarmory"; - name = "security shutters" + name = "Security Shutters" }, /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel/tech/grid, @@ -2236,7 +2234,7 @@ "Lg" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/weightmachine/weightlifter, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, @@ -2285,11 +2283,11 @@ dir = 4 }, /obj/structure/rack, -/obj/item/syndie_crusher{ +/obj/item/kinetic_crusher/syndie_crusher{ pixel_x = 5; pixel_y = -2 }, -/obj/item/syndie_crusher{ +/obj/item/kinetic_crusher/syndie_crusher{ pixel_x = 5; pixel_y = 6 }, @@ -2378,7 +2376,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/ship/crew/dorm) @@ -2395,7 +2393,7 @@ "NN" = ( /obj/machinery/door/poddoor{ id = "wreckercargobay"; - name = "cargo bay exterior blast door" + name = "Cargo Bay Exterior Blast Door" }, /obj/structure/fans/tiny, /obj/effect/turf_decal/industrial/warning/fulltile, @@ -2497,7 +2495,7 @@ dir = 1; id = "wreckerarmory"; name = "armory shutters"; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/outline, /turf/open/floor/mineral/plastitanium, @@ -2529,7 +2527,7 @@ dir = 1; id = "wreckerarmory"; name = "armory shutters"; - pixel_y = -24; + pixel_y = -25; req_one_access_txt = "list(19)" }, /obj/structure/cable{ @@ -2568,7 +2566,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/door/poddoor/shutters{ id = "wreckerarmory"; - name = "security shutters" + name = "Security Shutters" }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -2603,7 +2601,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "wreckerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/cargo/office) @@ -2638,7 +2636,6 @@ /turf/open/floor/plating, /area/ship/storage) "Rn" = ( -/obj/structure/lattice, /obj/machinery/porta_turret/centcom_shuttle/ballistic{ dir = 1; name = "ship turret"; @@ -2665,7 +2662,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "wreckerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/crew/dorm) @@ -2785,7 +2782,6 @@ /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "TY" = ( -/obj/structure/lattice, /obj/structure/sign/number/four{ dir = 1 }, @@ -2972,7 +2968,7 @@ /obj/item/card/mining_access_card, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/item/tank/jetpack/suit, /obj/item/radio/headset/syndicate/alt, @@ -2999,7 +2995,7 @@ /obj/machinery/door/firedoor/border_only, /obj/machinery/door/poddoor/shutters{ id = "wreckerarmory"; - name = "security shutters" + name = "Security Shutters" }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -3154,7 +3150,6 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/maintenance/fore) "Yf" = ( -/obj/structure/lattice, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/maintenance/fore) "Yv" = ( @@ -3193,7 +3188,7 @@ "YI" = ( /obj/machinery/door/poddoor/shutters{ id = "wreckerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -3224,7 +3219,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/door/poddoor/shutters{ id = "wreckerarmory"; - name = "security shutters" + name = "Security Shutters" }, /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel/tech/grid, diff --git a/_maps/shuttles/shiptest/gun_dealer.dmm b/_maps/shuttles/shiptest/gun_dealer.dmm index bef053e365b6..9fcc60da63ee 100644 --- a/_maps/shuttles/shiptest/gun_dealer.dmm +++ b/_maps/shuttles/shiptest/gun_dealer.dmm @@ -12,7 +12,7 @@ "aT" = ( /obj/item/radio/intercom{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/table/reinforced, /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted, @@ -48,7 +48,7 @@ "bX" = ( /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -73,7 +73,7 @@ /obj/machinery/atmospherics/pipe/layer_manifold, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -102,7 +102,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -118,7 +118,7 @@ dir = 9 }, /obj/machinery/computer/cryopod{ - pixel_y = -24; + pixel_y = -25; dir = 1 }, /obj/machinery/light/small{ @@ -187,11 +187,11 @@ "fn" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/closet/crate/secure/weapon, /obj/item/storage/box/lethalshot, @@ -212,13 +212,13 @@ /area/ship/maintenance/port) "fT" = ( /obj/item/radio/intercom{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/secure_closet/security, /obj/item/gun/ballistic/shotgun/bulldog/unrestricted, /obj/item/gun/ballistic/shotgun/bulldog/unrestricted, -/obj/item/gun/ballistic/automatic/l6_saw, -/obj/item/gun/ballistic/automatic/l6_saw, +/obj/item/gun/ballistic/automatic/hmg/l6_saw, +/obj/item/gun/ballistic/automatic/hmg/l6_saw, /obj/item/ammo_box/magazine/m12g/slug, /obj/item/ammo_box/magazine/m12g/slug, /obj/item/ammo_box/magazine/m12g/slug, @@ -299,7 +299,7 @@ /obj/effect/turf_decal/industrial/warning, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -317,7 +317,7 @@ /obj/machinery/door/firedoor/border_only, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/suit_storage_unit, /obj/item/tank/internals/oxygen, @@ -362,7 +362,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/gun/ballistic/automatic/vector{ +/obj/item/gun/ballistic/automatic/smg/vector{ spawnwithmagazine = 0 }, /obj/item/ammo_box/magazine/smgm9mm/rubbershot, @@ -401,7 +401,7 @@ "kH" = ( /obj/item/radio/intercom{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/power/terminal, /obj/structure/cable/yellow, @@ -513,7 +513,7 @@ "mP" = ( /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -666,7 +666,7 @@ icon_state = "4-8" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark, /area/ship/storage) @@ -713,7 +713,7 @@ /obj/item/flashlight/seclite, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/clothing/head/helmet/sec, /obj/item/clothing/head/helmet/sec, @@ -790,14 +790,14 @@ /obj/item/kirbyplants/random, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/aft) "tO" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/extinguisher_cabinet{ pixel_x = -32 @@ -845,7 +845,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/nanoweave, /area/ship/bridge) @@ -899,7 +899,7 @@ }, /obj/item/radio/intercom{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/industrial/hatch/red, @@ -1007,7 +1007,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/aft) @@ -1038,7 +1038,7 @@ /obj/machinery/recharger, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/carpet/nanoweave, /area/ship/bridge) @@ -1177,7 +1177,7 @@ "FE" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/rack, /obj/item/gun/energy/e_gun, @@ -1196,7 +1196,7 @@ /obj/effect/turf_decal/industrial/warning, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -1241,7 +1241,7 @@ /area/ship/maintenance/starboard) "Hk" = ( /obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted, +/obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted, /obj/item/ammo_box/magazine/toy/smg, /obj/item/ammo_box/magazine/toy/smg, /obj/item/ammo_box/magazine/toy/smg, @@ -1329,7 +1329,7 @@ /obj/item/wrench/crescent, /obj/item/radio/intercom{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -1343,7 +1343,7 @@ "JA" = ( /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1354,7 +1354,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/power/terminal, /obj/structure/cable, @@ -1366,7 +1366,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/nanoweave, /area/ship/crew) @@ -1412,7 +1412,7 @@ "KR" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/light{ dir = 4 @@ -1425,7 +1425,7 @@ /area/ship/security/armory) "KW" = ( /obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted, +/obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/unrestricted, /obj/item/ammo_box/magazine/toy/m762, /obj/item/ammo_box/magazine/toy/m762, /obj/item/ammo_box/magazine/toy/m762, @@ -1495,8 +1495,8 @@ /obj/structure/closet/secure_closet/security, /obj/item/gun/ballistic/automatic/pistol/deagle, /obj/item/gun/ballistic/automatic/pistol/deagle, -/obj/item/gun/ballistic/automatic/ak47, -/obj/item/gun/ballistic/automatic/ak47, +/obj/item/gun/ballistic/automatic/assualt/ak47, +/obj/item/gun/ballistic/automatic/assualt/ak47, /obj/item/ammo_box/magazine/ak47, /obj/item/ammo_box/magazine/ak47, /obj/item/ammo_box/magazine/ak47, @@ -1533,7 +1533,7 @@ /obj/machinery/light/small, /obj/item/radio/intercom{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/cell_charger, /turf/open/floor/carpet/nanoweave, @@ -1574,7 +1574,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -1589,7 +1589,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -1602,7 +1602,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light, /turf/open/floor/plasteel/dark, @@ -1610,7 +1610,7 @@ "Po" = ( /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1625,7 +1625,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/trimline/orange/filled/line{ dir = 8 @@ -1664,7 +1664,7 @@ "PH" = ( /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1723,7 +1723,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/power/terminal, /obj/structure/cable, @@ -1792,7 +1792,7 @@ "SH" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/security/range) @@ -1834,7 +1834,7 @@ /obj/structure/filingcabinet/medical, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/aft) @@ -1889,7 +1889,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/trimline/orange/filled/line{ dir = 4 @@ -1924,7 +1924,7 @@ /turf/open/floor/carpet/nanoweave, /area/ship/crew) "UX" = ( -/obj/item/gun/ballistic/automatic/vector{ +/obj/item/gun/ballistic/automatic/smg/vector{ spawnwithmagazine = 0 }, /obj/item/ammo_box/magazine/smgm9mm/rubbershot, @@ -1982,7 +1982,7 @@ "Vs" = ( /obj/item/radio/intercom/wideband{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 @@ -2005,7 +2005,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -2097,7 +2097,7 @@ /obj/machinery/light/small, /obj/item/radio/intercom{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/nanoweave, /area/ship/bridge) @@ -2177,7 +2177,7 @@ /obj/machinery/vending/cola/random, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/aft) diff --git a/_maps/shuttles/shiptest/hightide.dmm b/_maps/shuttles/shiptest/hightide.dmm index ba839fbdc27d..a0954a7c45a7 100644 --- a/_maps/shuttles/shiptest/hightide.dmm +++ b/_maps/shuttles/shiptest/hightide.dmm @@ -277,7 +277,7 @@ /area/ship/cargo) "ko" = ( /obj/machinery/door/airlock/maintenance_hatch{ - name = "wrench storage" + name = "Wrench Storage" }, /obj/structure/cable{ icon_state = "4-8" @@ -394,7 +394,7 @@ "ob" = ( /obj/item/radio/intercom/wideband{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ship/maintenance/fore) diff --git a/_maps/shuttles/shiptest/independant_pill.dmm b/_maps/shuttles/shiptest/independant_pill.dmm index bd1ed0045177..2bedca346545 100644 --- a/_maps/shuttles/shiptest/independant_pill.dmm +++ b/_maps/shuttles/shiptest/independant_pill.dmm @@ -31,7 +31,7 @@ density = 0 }, /obj/machinery/power/apc/auto_name/west{ - pixel_x = -6 + pixel_x = -25 }, /obj/structure/window/reinforced/spawner{ dir = 8 diff --git a/_maps/shuttles/shiptest/independent_litieguai.dmm b/_maps/shuttles/shiptest/independent_litieguai.dmm index 8bdaf1fc4be1..0727f7fd2304 100644 --- a/_maps/shuttles/shiptest/independent_litieguai.dmm +++ b/_maps/shuttles/shiptest/independent_litieguai.dmm @@ -16,7 +16,7 @@ /obj/effect/turf_decal/industrial/outline/red, /obj/item/radio/intercom{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/suit_storage_unit/inherit, /turf/open/floor/plasteel, @@ -59,14 +59,14 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/bridge) "ck" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/sign/poster/retro/smile{ pixel_y = -32 @@ -116,7 +116,7 @@ /obj/machinery/atmospherics/pipe/layer_manifold, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -145,14 +145,14 @@ }, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) "ed" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/hatch/red, /obj/structure/frame/machine, @@ -167,7 +167,7 @@ dir = 9 }, /obj/machinery/computer/cryopod{ - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small{ dir = 4 @@ -249,7 +249,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/showroomfloor, /area/ship/medical) @@ -259,7 +259,7 @@ "fT" = ( /obj/machinery/computer/operating, /obj/item/radio/intercom{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/hatch/red, /turf/open/floor/plasteel/showroomfloor, @@ -354,7 +354,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) @@ -414,7 +414,7 @@ "kH" = ( /obj/item/radio/intercom{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/power/terminal, /obj/structure/cable/yellow, @@ -686,7 +686,7 @@ pixel_x = 12 }, /obj/structure/mirror{ - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/firealarm{ dir = 1; @@ -737,7 +737,7 @@ /obj/item/flashlight/seclite, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/clothing/head/helmet/sec, /obj/item/clothing/head/helmet/sec, @@ -819,7 +819,7 @@ /obj/item/kirbyplants/random, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel, /area/ship/hallway/aft) @@ -830,7 +830,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health, @@ -882,7 +882,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/nanoweave, /area/ship/bridge) @@ -956,7 +956,7 @@ }, /obj/item/radio/intercom{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/industrial/hatch/red, @@ -1112,7 +1112,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/storage) @@ -1155,7 +1155,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "1-2" @@ -1405,7 +1405,7 @@ /obj/item/wrench/crescent, /obj/item/radio/intercom{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -1420,7 +1420,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/medical) @@ -1434,7 +1434,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/power/terminal, /obj/structure/cable, @@ -1492,7 +1492,7 @@ /obj/item/reagent_containers/glass/beaker/large, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/closet/wall/white/chem{ dir = 1; @@ -1579,7 +1579,7 @@ /obj/machinery/light/small, /obj/item/radio/intercom{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/cell_charger, /turf/open/floor/plasteel/grimy, @@ -1628,7 +1628,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -1643,7 +1643,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -1696,7 +1696,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/crew) @@ -1755,7 +1755,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/power/terminal, /obj/structure/cable, @@ -1890,7 +1890,7 @@ /obj/structure/filingcabinet/medical, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/nanoweave/beige, /area/ship/medical) @@ -1993,7 +1993,7 @@ /turf/open/floor/plasteel/grimy, /area/ship/crew) "UX" = ( -/obj/item/gun/ballistic/automatic/vector{ +/obj/item/gun/ballistic/automatic/smg/vector{ spawnwithmagazine = 0 }, /obj/item/ammo_box/magazine/smgm9mm/rubbershot, @@ -2054,7 +2054,7 @@ "Vs" = ( /obj/item/radio/intercom/wideband{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 @@ -2091,7 +2091,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "traumawindows"; - name = "window blast door" + name = "Window Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -2206,7 +2206,7 @@ /obj/machinery/light/small, /obj/item/radio/intercom{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/nanoweave, /area/ship/bridge) diff --git a/_maps/shuttles/shiptest/independent_rigger.dmm b/_maps/shuttles/shiptest/independent_rigger.dmm index 4ae8791369cb..550866b0b4a7 100644 --- a/_maps/shuttles/shiptest/independent_rigger.dmm +++ b/_maps/shuttles/shiptest/independent_rigger.dmm @@ -3,7 +3,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -12,7 +12,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /obj/structure/curtain, @@ -67,7 +67,7 @@ /obj/item/paper_bin, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/table/wood, /obj/item/folder/red, @@ -82,14 +82,13 @@ "aN" = ( /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, /area/ship/crew) "aT" = ( -/obj/structure/lattice, /turf/closed/wall/mineral/plastitanium, /area/ship/construction) "bc" = ( @@ -102,7 +101,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -326,7 +325,7 @@ "eK" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plating, @@ -341,7 +340,7 @@ /obj/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 @@ -439,7 +438,7 @@ "fy" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small, /turf/open/floor/plasteel/tech/techmaint, @@ -584,7 +583,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/grimy, /area/ship/crew) @@ -592,7 +591,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -632,7 +631,7 @@ /obj/structure/table, /obj/machinery/microwave, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/yellow/diagonal, /obj/structure/sign/poster/official/random{ @@ -643,7 +642,7 @@ "iH" = ( /obj/structure/closet/crate, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/circuitboard/machine/circuit_imprinter, /obj/effect/spawner/lootdrop/maintenance/three, @@ -746,7 +745,7 @@ }, /obj/machinery/door/poddoor{ id = "riggerwindows"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -988,7 +987,7 @@ "lT" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/crate/bin, /obj/effect/turf_decal/industrial/outline/yellow, @@ -1061,7 +1060,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -1212,7 +1211,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small{ dir = 8 @@ -1231,7 +1230,7 @@ dir = 1 }, /obj/machinery/door/window/southright{ - name = "Science Officer's desk" + name = "Science Officer's Desk" }, /obj/machinery/autolathe, /turf/open/floor/plasteel/tech, @@ -1288,7 +1287,7 @@ dir = 4; id = "riggerdoors"; name = "Blast Door Control"; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/cargo) @@ -1401,7 +1400,7 @@ /area/ship/engineering) "rJ" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plating, @@ -1498,7 +1497,7 @@ "sT" = ( /obj/machinery/door/poddoor{ id = "riggerdoors"; - name = "mech bay blast door" + name = "Mech Bay Blast Door" }, /obj/structure/fans/tiny, /turf/open/floor/engine/hull/interior, @@ -1524,7 +1523,7 @@ /area/ship/crew) "tr" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/structure/chair, @@ -1535,7 +1534,7 @@ dir = 1 }, /obj/machinery/advanced_airlock_controller{ - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 @@ -1589,7 +1588,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/security) @@ -1611,7 +1610,7 @@ }, /obj/machinery/door/poddoor{ id = "riggerwindows"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -1689,7 +1688,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -1832,7 +1831,7 @@ }, /obj/machinery/door/poddoor{ id = "riggerwindows"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -2006,7 +2005,7 @@ "yo" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plating, @@ -2054,7 +2053,7 @@ }, /obj/machinery/door/poddoor{ id = "riggerwindows"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -2079,7 +2078,7 @@ }, /obj/machinery/door/poddoor{ id = "riggerwindows"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -2121,7 +2120,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -2132,7 +2131,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -2334,7 +2333,6 @@ /turf/open/floor/plasteel/white, /area/ship/crew/canteen) "Ce" = ( -/obj/structure/lattice, /turf/closed/wall/mineral/plastitanium, /area/ship/crew) "Cn" = ( @@ -2484,7 +2482,7 @@ }, /obj/machinery/computer/cryopod{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning{ dir = 5 @@ -2530,7 +2528,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ @@ -2592,7 +2590,7 @@ /obj/structure/catwalk/over, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/engineering) @@ -2647,7 +2645,7 @@ "Fe" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/southleft{ - name = "First Mate's desk"; + name = "First Mate's Desk"; req_access_txt = "16" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ @@ -2901,7 +2899,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -3020,7 +3018,7 @@ /obj/effect/turf_decal/corner/white/mono, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/green/border{ dir = 10 @@ -3128,7 +3126,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -3291,7 +3289,7 @@ }, /obj/machinery/light_switch{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/medical) @@ -3306,7 +3304,7 @@ dir = 1 }, /obj/machinery/door/window/southleft{ - name = "Science Officer's desk" + name = "Science Officer's Desk" }, /obj/item/clipboard, /obj/item/stamp/rd{ @@ -3440,7 +3438,7 @@ }, /obj/machinery/light_switch{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/blue, /area/ship/bridge) @@ -3456,7 +3454,7 @@ /obj/structure/filingcabinet/medical, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/borderfloor{ dir = 6 @@ -3502,7 +3500,7 @@ dir = 10 }, /obj/machinery/light_switch{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/grimy, /area/ship/security) @@ -3511,14 +3509,14 @@ dir = 4; id = "riggerdoors"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /obj/machinery/button/door{ dir = 4; id = "riggerwindows"; name = "Window Lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /obj/machinery/light{ @@ -3583,7 +3581,7 @@ }, /obj/machinery/door/poddoor{ id = "riggerwindows"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -3594,7 +3592,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -3669,7 +3667,7 @@ /obj/machinery/power/apc/auto_name/west, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/emcloset, /obj/effect/turf_decal/industrial/outline/yellow, @@ -3702,7 +3700,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -3719,7 +3717,7 @@ "RO" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 10 @@ -3762,7 +3760,7 @@ /obj/machinery/washing_machine, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/patterned, /area/ship/crew) @@ -3878,7 +3876,7 @@ "TH" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light, /obj/structure/chair{ @@ -3915,7 +3913,7 @@ /area/ship/maintenance/starboard) "TS" = ( /obj/structure/mirror{ - pixel_x = 24 + pixel_x = 25 }, /obj/structure/sink{ dir = 8; @@ -3924,7 +3922,7 @@ /obj/machinery/light/small, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/patterned, /area/ship/crew) @@ -3964,7 +3962,7 @@ /obj/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /turf/open/floor/plating, @@ -4014,7 +4012,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/engineering) @@ -4058,7 +4056,7 @@ "VF" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/emcloset, /obj/machinery/light/small{ @@ -4089,7 +4087,7 @@ /obj/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /turf/open/floor/plating, @@ -4210,7 +4208,7 @@ /obj/effect/turf_decal/industrial/loading, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/ore_box, /turf/open/floor/plasteel/tech/techmaint, @@ -4344,7 +4342,7 @@ /area/ship/engineering/atmospherics) "Yc" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" @@ -4477,7 +4475,7 @@ /obj/structure/table/glass, /obj/effect/turf_decal/borderfloor/cee, /obj/machinery/defibrillator_mount/loaded{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark, /area/ship/medical) diff --git a/_maps/shuttles/shiptest/inteq_colossus.dmm b/_maps/shuttles/shiptest/inteq_colossus.dmm index 17299f0b3642..651ce76fd60b 100644 --- a/_maps/shuttles/shiptest/inteq_colossus.dmm +++ b/_maps/shuttles/shiptest/inteq_colossus.dmm @@ -26,8 +26,7 @@ pixel_x = 5; pixel_y = 5 }, -/obj/item/gun/ballistic/automatic/vector{ - automatic = 0; +/obj/item/gun/ballistic/automatic/smg/vector{ mag_type = /obj/item/ammo_box/magazine/smgm9mm; pixel_y = -2 }, @@ -72,7 +71,7 @@ icon_state = "0-4" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/tech/grid, /area/ship/crew/cryo) @@ -296,7 +295,7 @@ }, /obj/machinery/door/poddoor{ id = "colossus_windows"; - name = "window shield" + name = "Window Shield" }, /turf/open/floor/plating, /area/ship/crew) @@ -445,11 +444,11 @@ /obj/structure/catwalk/over/plated_catwalk/dark, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/engineering) @@ -598,7 +597,7 @@ /area/ship/crew/office) "gm" = ( /obj/machinery/computer/cryopod{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/catwalk/over/plated_catwalk, /obj/structure/cable{ @@ -864,7 +863,7 @@ id = "colossus_thrusters"; name = "Thruster Shield Control"; pixel_x = -6; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner_techfloor_gray{ dir = 4 @@ -891,7 +890,7 @@ /obj/item/clothing/suit/space/hardsuit/security/independent/inteq, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/trimline/yellow/line{ dir = 8 @@ -1058,7 +1057,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) @@ -1075,7 +1074,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor{ id = "colossus_windows"; - name = "window shield" + name = "Window Shield" }, /turf/open/floor/plating, /area/ship/crew/office) @@ -1181,7 +1180,7 @@ /obj/structure/curtain/bounty, /obj/item/bedsheet/brown, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/carpet/black, /area/ship/crew) @@ -1258,7 +1257,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/patterned, /area/ship/cargo) @@ -1318,13 +1317,13 @@ id = "colossus_starboard"; name = "Starboard Cargo Door Control"; pixel_x = 6; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/button/door{ id = "colossus_port"; name = "Port Cargo Door Control"; pixel_x = -6; - pixel_y = 24 + pixel_y = 25 }, /obj/item/storage/fancy/cigarettes/cigars/havana, /obj/item/lighter{ @@ -1530,7 +1529,7 @@ }, /obj/machinery/door/poddoor{ id = "colossus_windows"; - name = "window shield" + name = "Window Shield" }, /turf/open/floor/plating, /area/ship/hallway/fore) @@ -1576,7 +1575,7 @@ dir = 8 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -1680,7 +1679,7 @@ id = "colossus_thrusters"; name = "Thruster Shield Control"; pixel_x = -6; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -1883,7 +1882,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/advanced_airlock_controller{ - pixel_x = 24; + pixel_x = 25; req_access = null }, /obj/item/radio/intercom{ @@ -1986,7 +1985,7 @@ /obj/structure/reagent_dispensers/fueltank, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/firealarm{ pixel_y = 28 @@ -1998,7 +1997,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor{ id = "colossus_windows"; - name = "window shield" + name = "Window Shield" }, /turf/open/floor/plating, /area/ship/crew) @@ -2117,7 +2116,7 @@ }, /obj/machinery/door/poddoor{ id = "colossus_windows"; - name = "window shield" + name = "Window Shield" }, /turf/open/floor/plating, /area/ship/crew/office) @@ -2125,11 +2124,11 @@ /obj/structure/closet/crate/trashcart, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/spawner/lootdrop/spacegym, /obj/effect/spawner/lootdrop/spacegym, @@ -2492,7 +2491,7 @@ id = "colossus_windows"; name = "Window Lockdown"; pixel_x = -6; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, @@ -2590,7 +2589,7 @@ id = "colossus_port"; name = "Port Cargo Door Control"; pixel_x = 6; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/caution, /obj/structure/ore_box, @@ -2715,7 +2714,7 @@ id = "colossus_port"; name = "Port Cargo Door Control"; pixel_x = -6; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/caution, /turf/open/floor/plasteel/patterned/cargo_one, @@ -3099,7 +3098,7 @@ }, /obj/machinery/door/poddoor{ id = "colossus_windows"; - name = "window shield" + name = "Window Shield" }, /turf/open/floor/plating, /area/ship/bridge) @@ -3327,7 +3326,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/patterned, /area/ship/crew/toilet) @@ -3365,7 +3364,7 @@ /obj/effect/turf_decal/siding/thinplating, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/fore) @@ -3419,7 +3418,7 @@ id = "colossus_starboard"; name = "Starboard Cargo Door Control"; pixel_x = -6; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/caution{ dir = 1 @@ -3540,7 +3539,7 @@ /obj/machinery/light, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/crew/office) @@ -3637,7 +3636,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/ship/crew/office) @@ -3787,7 +3786,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor{ id = "colossus_windows"; - name = "window shield" + name = "Window Shield" }, /turf/open/floor/plating, /area/ship/crew/cryo) @@ -4005,7 +4004,7 @@ }, /obj/machinery/door/poddoor{ id = "colossus_windows"; - name = "window shield" + name = "Window Shield" }, /turf/open/floor/plating, /area/ship/bridge) @@ -4090,7 +4089,7 @@ id = "colossus_starboard"; name = "Starboard Cargo Door Control"; pixel_x = 6; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/caution{ dir = 1 @@ -4152,7 +4151,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/door/firedoor/border_only{ dir = 1 @@ -4167,7 +4166,7 @@ /obj/effect/turf_decal/siding/thinplating, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/door/firedoor/border_only{ dir = 4 @@ -4304,7 +4303,7 @@ }, /obj/machinery/door/poddoor{ id = "colossus_windows"; - name = "window shield" + name = "Window Shield" }, /turf/open/floor/plating, /area/ship/engineering) diff --git a/_maps/shuttles/shiptest/isv_roberts.dmm b/_maps/shuttles/shiptest/isv_roberts.dmm index de4522e09727..2bf20e5e6b69 100644 --- a/_maps/shuttles/shiptest/isv_roberts.dmm +++ b/_maps/shuttles/shiptest/isv_roberts.dmm @@ -143,7 +143,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "tidedoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -196,7 +196,7 @@ /obj/machinery/button/door{ id = "tidedoors"; name = "Blast Door Control"; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/suit_storage_unit/independent/engineering, /turf/open/floor/plating, @@ -629,7 +629,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "tidedoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, @@ -664,7 +664,7 @@ list_reagents = list(/datum/reagent/consumable/ethanol/vodka = 100) }, /obj/machinery/computer/cryopod{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/areaeditor/shuttle, /turf/open/floor/plating, diff --git a/_maps/shuttles/shiptest/lamia.dmm b/_maps/shuttles/shiptest/lamia.dmm index a62c486e12fd..6c3c6212cb42 100644 --- a/_maps/shuttles/shiptest/lamia.dmm +++ b/_maps/shuttles/shiptest/lamia.dmm @@ -1745,7 +1745,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/east, /obj/structure/sink{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/wood, /area/ship/crew/canteen/kitchen) diff --git a/_maps/shuttles/shiptest/masinyane.dmm b/_maps/shuttles/shiptest/masinyane.dmm index 127ac8c3d8af..1c1268ab52f7 100644 --- a/_maps/shuttles/shiptest/masinyane.dmm +++ b/_maps/shuttles/shiptest/masinyane.dmm @@ -34,7 +34,7 @@ }, /obj/machinery/computer/cryopod{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light{ dir = 8 @@ -79,7 +79,7 @@ dir = 8; id = "masi_engi"; name = "engine emergency shielding"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/engineering) @@ -97,7 +97,7 @@ dir = 8; id = "masi_engi"; name = "engine emergency shielding"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/engineering) @@ -128,7 +128,7 @@ }, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/airlock/external/glass{ - name = "internal airlock" + name = "Internal Airlock" }, /turf/open/floor/plating, /area/ship/engineering) @@ -146,7 +146,7 @@ }, /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/hatch{ - name = "external maintenance hatch" + name = "External Maintenance Hatch" }, /turf/open/floor/plating, /area/ship/engineering) @@ -193,7 +193,7 @@ }, /obj/machinery/door/poddoor{ id = "masinyane_blastdoors"; - name = "masinyane entrance doors" + name = "Masinyane Entrance Doors" }, /turf/open/floor/plasteel/tech, /area/ship/bridge) @@ -271,7 +271,7 @@ }, /obj/machinery/door/poddoor/preopen{ id = "masi_engi"; - name = "emergency engine shielding" + name = "Emergency Engine Shielding" }, /obj/structure/cable{ icon_state = "0-8" @@ -315,7 +315,7 @@ }, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/airlock/external/glass{ - name = "internal airlock" + name = "Internal Airlock" }, /turf/open/floor/plasteel/tech, /area/ship/bridge) @@ -428,7 +428,7 @@ /obj/machinery/button/door{ id = "masinyane_windowshield"; name = "shutters"; - pixel_x = 24; + pixel_x = 25; pixel_y = 30 }, /obj/item/radio/intercom{ @@ -447,7 +447,7 @@ dir = 8 }, /obj/machinery/door/airlock/hatch{ - name = "thruster maintenance" + name = "Thruster Maintenance" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -471,7 +471,7 @@ }, /obj/machinery/door/poddoor{ id = "masinyane_blastdoors"; - name = "masinyane entrance doors" + name = "Masinyane Entrance Doors" }, /turf/open/floor/plasteel/tech, /area/ship/bridge) @@ -529,7 +529,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor{ id = "masinyane_windowshield"; - name = "Cockpit Emergency Blast door" + name = "Cockpit Emergency Blast Door" }, /turf/open/floor/plating, /area/ship/bridge) @@ -543,7 +543,7 @@ /obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/layer_manifold/visible, /obj/machinery/door/airlock/external/glass{ - name = "internal airlock" + name = "Internal Airlock" }, /turf/open/floor/plating, /area/ship/engineering) @@ -720,7 +720,7 @@ /obj/machinery/airalarm/all_access{ dir = 8; name = "air filtration controller"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) diff --git a/_maps/shuttles/shiptest/metis.dmm b/_maps/shuttles/shiptest/metis.dmm index 78e3f23a2a6a..399d81427d9d 100644 --- a/_maps/shuttles/shiptest/metis.dmm +++ b/_maps/shuttles/shiptest/metis.dmm @@ -15,7 +15,7 @@ /obj/structure/table/reinforced, /obj/machinery/button/door{ id = "foreshutter"; - name = "window shutters" + name = "Window Shutters" }, /turf/open/floor/mineral/titanium/tiled/blue, /area/ship/bridge) @@ -291,13 +291,13 @@ /area/ship/science/xenobiology) "eT" = ( /obj/effect/decal/cleanable/xenoblood, -/mob/living/simple_animal/hostile/hivebot/strong, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, +/obj/effect/spawner/lootdrop/randomthreat, /turf/open/floor/mineral/titanium/tiled/white, /area/ship/hallway/aft) "eU" = ( @@ -533,7 +533,7 @@ /turf/open/floor/mineral/titanium/tiled/white, /area/ship/hallway/aft) "hP" = ( -/mob/living/simple_animal/hostile/alien/sentinel, +/obj/effect/spawner/lootdrop/xenospawner, /turf/open/floor/mineral/titanium/tiled, /area/ship/crew/canteen) "hR" = ( @@ -791,6 +791,7 @@ }, /obj/machinery/airalarm/directional/east, /obj/structure/curtain, +/obj/effect/spawner/lootdrop/thirtyfive_percent_borerspawner, /turf/open/floor/mineral/titanium/tiled, /area/ship/crew/toilet) "lu" = ( @@ -2173,7 +2174,6 @@ /turf/open/floor/plating, /area/ship/crew/office) "DT" = ( -/mob/living/simple_animal/hostile/hivebot/range, /obj/structure/cable{ icon_state = "1-2" }, @@ -2181,6 +2181,7 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/spawner/lootdrop/randomthreat, /turf/open/floor/mineral/titanium/tiled/white, /area/ship/hallway/aft) "DV" = ( @@ -2295,6 +2296,9 @@ /obj/effect/decal/cleanable/blood/gibs, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/item/reagent_containers/dropper{ + pixel_y = -4 + }, /turf/open/floor/mineral/titanium/tiled/white, /area/ship/science/xenobiology) "Fo" = ( @@ -2464,13 +2468,13 @@ /turf/open/floor/mineral/titanium/tiled/purple, /area/ship/science/robotics) "Hj" = ( -/mob/living/simple_animal/hostile/alien, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 1 }, +/obj/effect/spawner/lootdrop/xenospawner, /turf/open/floor/plating, /area/ship/science/xenobiology) "Ho" = ( @@ -2950,6 +2954,9 @@ /obj/structure/table/reinforced, /obj/item/slime_scanner, /obj/structure/disposalpipe/segment, +/obj/item/reagent_containers/dropper{ + pixel_y = -4 + }, /turf/open/floor/mineral/titanium/tiled/purple, /area/ship/science/xenobiology) "Mg" = ( @@ -3243,9 +3250,6 @@ /turf/open/floor/mineral/titanium/tiled/purple, /area/ship/science/xenobiology) "PY" = ( -/mob/living/simple_animal/hostile/alien/sentinel{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ icon_state = "1-6" @@ -3256,6 +3260,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, +/obj/effect/spawner/lootdrop/xenospawner, /turf/open/floor/mineral/titanium/tiled/white, /area/ship/hallway/aft) "Qg" = ( @@ -3335,7 +3340,7 @@ /turf/open/floor/mineral/titanium/tiled/white, /area/ship/hallway/aft) "Rj" = ( -/mob/living/simple_animal/hostile/hivebot/strong, +/obj/effect/spawner/lootdrop/randomthreat, /turf/open/floor/mineral/titanium/tiled, /area/ship/science/robotics) "Rk" = ( @@ -3663,7 +3668,7 @@ /obj/structure/AIcore, /obj/item/mmi/posibrain, /obj/machinery/turretid{ - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/circuit/green, /area/ship/science/ai_chamber) @@ -3720,10 +3725,10 @@ /turf/closed/wall/mineral/titanium, /area/ship/science/robotics) "VQ" = ( -/mob/living/simple_animal/hostile/hivebot/mechanic, /obj/structure/cable{ icon_state = "4-9" }, +/obj/effect/spawner/lootdrop/randomthreat, /turf/open/floor/circuit/green, /area/ship/science/ai_chamber) "VS" = ( @@ -3887,12 +3892,6 @@ /obj/machinery/camera/autoname{ dir = 5 }, -/mob/living/simple_animal/borer{ - borer_alert = "Become a neutered cortical borer? (Warning, You can no longer be cloned!)"; - is_team_borer = 0; - name = "neutered cortical borer"; - pixel_x = -1 - }, /obj/item/radio{ broadcasting = 1; pixel_x = 11; @@ -3906,6 +3905,7 @@ pixel_x = 1; pixel_y = 4 }, +/mob/living/simple_animal/borer/sterile, /turf/open/floor/plating, /area/ship/science/xenobiology) "Xx" = ( @@ -4008,13 +4008,13 @@ /turf/open/floor/plating, /area/ship/storage) "Yk" = ( -/mob/living/simple_animal/hostile/hivebot, /obj/structure/cable{ icon_state = "4-8" }, /obj/structure/cable{ icon_state = "5-8" }, +/obj/effect/spawner/lootdrop/randomthreat, /turf/open/floor/mineral/titanium/tiled, /area/ship/science/robotics) "Yo" = ( @@ -4128,7 +4128,7 @@ pixel_y = 27 }, /obj/machinery/button/flasher{ - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/door/window/brigdoor/southleft{ dir = 8 diff --git a/_maps/shuttles/shiptest/mining_ship_all.dmm b/_maps/shuttles/shiptest/mining_ship_all.dmm index 8ef0de579c9f..aa0696a1acf4 100644 --- a/_maps/shuttles/shiptest/mining_ship_all.dmm +++ b/_maps/shuttles/shiptest/mining_ship_all.dmm @@ -1394,8 +1394,8 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/effect/turf_decal/corner/white/mono, /obj/effect/turf_decal/corner/blue/border, @@ -1816,8 +1816,8 @@ }, /obj/effect/turf_decal/corner/yellow, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 @@ -2015,8 +2015,8 @@ icon_state = "1-2" }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = -24 + pixel_x = -25; + pixel_y = -25 }, /obj/effect/turf_decal/techfloor{ dir = 10 @@ -2131,8 +2131,8 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 diff --git a/_maps/shuttles/shiptest/minutemen_carina.dmm b/_maps/shuttles/shiptest/minutemen_carina.dmm index 8f4a813bb109..786dab33b8bc 100644 --- a/_maps/shuttles/shiptest/minutemen_carina.dmm +++ b/_maps/shuttles/shiptest/minutemen_carina.dmm @@ -88,7 +88,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "space_cops_bay"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine/hull, @@ -153,7 +153,7 @@ /obj/machinery/washing_machine, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, @@ -182,7 +182,7 @@ /area/ship/external) "cB" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/turf_decal/industrial/outline/yellow, @@ -214,7 +214,7 @@ "da" = ( /obj/machinery/door/poddoor{ id = "space_cops_port_launcher"; - name = "port mass driver blast door" + name = "Port Mass Driver Blast Door" }, /obj/structure/fans/tiny, /turf/open/floor/plating, @@ -233,7 +233,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "space_cops_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -250,7 +250,7 @@ pixel_x = 32 }, /obj/machinery/advanced_airlock_controller{ - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/patterned/ridged, @@ -510,7 +510,7 @@ /obj/item/ammo_box/magazine/m45/rubbershot, /obj/item/ammo_box/magazine/m45/rubbershot, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/red{ dir = 1 @@ -648,7 +648,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "space_cops_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/hallway/starboard) @@ -769,7 +769,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/tech, /area/ship/security/prison) @@ -873,7 +873,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "space_cops_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -1110,7 +1110,7 @@ }, /obj/machinery/atmospherics/pipe/simple/green/hidden/layer4, /obj/structure/mirror{ - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/patterned, /area/ship/crew) @@ -1257,7 +1257,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "space_cops_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -1294,7 +1294,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "space_cops_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/hallway/port) @@ -1376,7 +1376,7 @@ "qw" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/patterned, /area/ship/security) @@ -1865,7 +1865,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "space_cops_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -2033,7 +2033,7 @@ id = "space_cops_port_launcher"; name = "port mass driver button"; pixel_x = 7; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/industrial/loading{ @@ -2139,7 +2139,7 @@ /area/ship/crew) "ym" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light{ dir = 1 @@ -2217,7 +2217,7 @@ /obj/structure/table, /obj/machinery/microwave, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/mono, /area/ship/crew) @@ -2288,7 +2288,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/landmark/start/assistant, /turf/open/floor/carpet/nanoweave, @@ -2303,7 +2303,7 @@ id = "space_cops_starboard_launcher"; name = "starboard mass driver button"; pixel_x = 7; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/industrial/loading{ @@ -2340,7 +2340,7 @@ dir = 4 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/ship/hallway/port) @@ -2360,7 +2360,7 @@ pixel_x = 32 }, /obj/machinery/advanced_airlock_controller{ - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/patterned/ridged, /area/ship/hallway/starboard) @@ -2399,7 +2399,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel, /area/ship/hallway/starboard) @@ -2534,7 +2534,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -2612,7 +2612,7 @@ /area/ship/hallway/starboard) "DT" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/sign/warning/nosmoking{ pixel_x = 32 @@ -2714,7 +2714,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "space_cops_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -3016,7 +3016,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel, /area/ship/hallway/central) @@ -3255,8 +3255,8 @@ /obj/machinery/button/door{ id = "space_cops_warden"; name = "Desk Shutter"; - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/effect/turf_decal/corner/red, /obj/effect/turf_decal/corner/red{ @@ -3376,7 +3376,7 @@ /obj/effect/turf_decal/industrial/loading, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel, /area/ship/medical) @@ -3507,7 +3507,7 @@ "Ql" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 @@ -3521,7 +3521,7 @@ "Qu" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/bed, /obj/item/bedsheet/blue, @@ -3545,7 +3545,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/techfloor/orange/corner{ dir = 4 @@ -3663,7 +3663,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -3737,7 +3737,7 @@ "St" = ( /obj/machinery/door/poddoor{ id = "space_cops_starboard_launcher"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/structure/fans/tiny, /turf/open/floor/plating, @@ -3962,7 +3962,7 @@ "Ur" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/patterned, /area/ship/cargo) @@ -4122,7 +4122,7 @@ /obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "space_cops_windows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -4155,7 +4155,7 @@ /obj/machinery/button/door{ id = "space_cops_bay"; name = "Cargo Bay Doors"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/traffic{ dir = 8 @@ -4171,7 +4171,7 @@ "Xm" = ( /obj/machinery/door/poddoor{ id = "space_cops_bay"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/structure/fans/tiny, /obj/effect/decal/cleanable/dirt, @@ -4354,7 +4354,7 @@ "ZK" = ( /obj/machinery/flasher{ id = "Cell 1"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/grey/diagonal, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/shuttles/shiptest/nanotrasen_gecko.dmm b/_maps/shuttles/shiptest/nanotrasen_gecko.dmm index c37f96830238..4574c64eaf38 100644 --- a/_maps/shuttles/shiptest/nanotrasen_gecko.dmm +++ b/_maps/shuttles/shiptest/nanotrasen_gecko.dmm @@ -4550,7 +4550,7 @@ "Vu" = ( /obj/machinery/door/poddoor{ id = "gecko_engine_vent"; - name = "combustion chamber vent" + name = "Combustion Chamber Vent" }, /turf/open/floor/engine, /area/ship/engineering/incinerator) diff --git a/_maps/shuttles/shiptest/nanotrasen_goon.dmm b/_maps/shuttles/shiptest/nanotrasen_goon.dmm index 7cac303f1a4a..89736a6818c6 100644 --- a/_maps/shuttles/shiptest/nanotrasen_goon.dmm +++ b/_maps/shuttles/shiptest/nanotrasen_goon.dmm @@ -808,7 +808,7 @@ "Rw" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/mineral/titanium, /area/ship/crew) diff --git a/_maps/shuttles/shiptest/nanotrasen_powerrangers.dmm b/_maps/shuttles/shiptest/nanotrasen_powerrangers.dmm index 093c9b4989a6..16391e781d44 100644 --- a/_maps/shuttles/shiptest/nanotrasen_powerrangers.dmm +++ b/_maps/shuttles/shiptest/nanotrasen_powerrangers.dmm @@ -95,7 +95,7 @@ dir = 4 }, /obj/machinery/door/poddoor/shutters/preopen{ - name = "commissioner's shutters"; + name = "Commissioner's Shutters"; id = "commshut" }, /turf/open/floor/plasteel/dark, @@ -1954,7 +1954,7 @@ }, /obj/machinery/door/airlock/command/glass/lp/commissioner, /obj/machinery/door/poddoor/shutters/preopen{ - name = "commissioner's shutters"; + name = "Commissioner's Shutters"; id = "commshut" }, /turf/open/floor/plasteel/dark, @@ -2051,7 +2051,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "outerouter"; - name = "outer aft shutters" + name = "Outer Aft Shutters" }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -2446,7 +2446,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/layer_manifold/visible, /obj/machinery/door/poddoor/shutters/preopen{ - name = "inner aft shutters"; + name = "Inner Aft Shutters"; id = "outerinner" }, /turf/open/floor/plasteel/dark, @@ -2503,7 +2503,7 @@ }, /obj/machinery/door/airlock/command/glass/lp/bridge, /obj/machinery/door/poddoor/shutters/preopen{ - name = "inner fore shutters"; + name = "Inner Fore Shutters"; id = "innerinner" }, /turf/open/floor/plasteel/dark, @@ -2910,7 +2910,7 @@ }, /obj/machinery/door/airlock/external, /obj/machinery/door/poddoor/shutters/preopen{ - name = "inner aft shutters"; + name = "Inner Aft Shutters"; id = "outerinner" }, /turf/open/floor/plasteel/dark, @@ -2978,7 +2978,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/poddoor/shutters/preopen{ - name = "inner aft shutters"; + name = "Inner Aft Shutters"; id = "outerinner" }, /turf/open/floor/plasteel/dark, @@ -3334,7 +3334,7 @@ /obj/machinery/door/airlock/command/glass/lp/bridge, /obj/machinery/door/poddoor/shutters/preopen{ id = "innerouter"; - name = "outer port shutters" + name = "Outer Port Shutters" }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -3386,7 +3386,7 @@ "HS" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ - name = "commissioner's shutters"; + name = "Commissioner's Shutters"; id = "commshut" }, /turf/open/floor/plating, @@ -4718,7 +4718,7 @@ /obj/machinery/door/airlock/external, /obj/machinery/door/poddoor/shutters/preopen{ id = "outerouter"; - name = "outer aft shutters" + name = "Outer Aft Shutters" }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -4953,7 +4953,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ id = "innerouter"; - name = "outer port shutters" + name = "Outer Port Shutters" }, /turf/open/floor/plating, /area/ship/bridge) @@ -5299,7 +5299,7 @@ "ZD" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ - name = "inner fore shutters"; + name = "Inner Fore Shutters"; id = "innerinner" }, /turf/open/floor/plating, diff --git a/_maps/shuttles/shiptest/nanotrasen_raven.dmm b/_maps/shuttles/shiptest/nanotrasen_raven.dmm index 436d3150ec8d..36b2d39028ca 100644 --- a/_maps/shuttles/shiptest/nanotrasen_raven.dmm +++ b/_maps/shuttles/shiptest/nanotrasen_raven.dmm @@ -26,7 +26,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -65,7 +65,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -615,7 +615,7 @@ /obj/machinery/airalarm/directional/north, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/mineral/plastitanium/red/brig, /area/ship/security/prison) @@ -814,7 +814,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/white/three_quarters{ dir = 1 @@ -890,7 +890,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/crew) @@ -1584,7 +1584,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/storage) @@ -2127,7 +2127,7 @@ /obj/structure/closet/emcloset, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/crew) @@ -2177,7 +2177,7 @@ /obj/machinery/space_heater, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/engineering/electrical) @@ -3071,7 +3071,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/crew) @@ -3092,7 +3092,7 @@ /obj/item/storage/box/metalfoam, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/engineering/electrical) @@ -3117,7 +3117,7 @@ /obj/structure/cable, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ship/engineering/electrical) diff --git a/_maps/shuttles/shiptest/nemo-class.dmm b/_maps/shuttles/shiptest/nemo-class.dmm index bc4556443c7b..422d9993e911 100644 --- a/_maps/shuttles/shiptest/nemo-class.dmm +++ b/_maps/shuttles/shiptest/nemo-class.dmm @@ -50,7 +50,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -253,7 +253,7 @@ /area/ship/crew/dorm) "di" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/suit_storage_unit/mining, /obj/effect/turf_decal/siding/brown{ @@ -348,7 +348,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/siding/thinplating/dark, /turf/open/floor/plasteel/dark, @@ -541,7 +541,7 @@ "gO" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 @@ -1013,7 +1013,7 @@ /area/ship/crew/library) "mg" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/siding/blue{ dir = 5 @@ -1187,7 +1187,7 @@ }, /obj/item/radio/intercom/wideband{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/black, /area/ship/bridge) @@ -1358,7 +1358,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/carpet/black, /area/ship/crew/library) @@ -1471,7 +1471,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/trimline/purple/arrow_cw, /obj/effect/turf_decal/trimline/blue/arrow_ccw{ @@ -2089,7 +2089,7 @@ pixel_x = 28 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/siding/yellow{ dir = 5 @@ -2107,13 +2107,13 @@ id = "nemobridge"; name = "Bridge Lockdown"; pixel_x = 7; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/button/door{ id = "nemowindows"; name = "Full Lockdown"; pixel_x = -7; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/carpet/black, /area/ship/bridge) @@ -2391,7 +2391,7 @@ dir = 6 }, /obj/machinery/vending/wallmed{ - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -2402,7 +2402,7 @@ /obj/machinery/cryopod, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/circuit/green, /area/ship/crew/dorm) @@ -2600,7 +2600,7 @@ "MQ" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/frame/machine, /obj/item/circuitboard/machine/circuit_imprinter, @@ -3070,7 +3070,7 @@ /area/ship/cargo) "SS" = ( /obj/machinery/advanced_airlock_controller{ - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/pod, /area/ship/hallway/central) diff --git a/_maps/shuttles/shiptest/ntsv_bubble.dmm b/_maps/shuttles/shiptest/ntsv_bubble.dmm index 30c299e214e3..d302c2a73606 100644 --- a/_maps/shuttles/shiptest/ntsv_bubble.dmm +++ b/_maps/shuttles/shiptest/ntsv_bubble.dmm @@ -25,7 +25,7 @@ "cG" = ( /obj/machinery/advanced_airlock_controller{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/components/binary/dp_vent_pump{ dir = 8 @@ -55,7 +55,7 @@ /obj/effect/turf_decal/siding/thinplating, /obj/machinery/door/poddoor{ id = "bubbledoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -165,7 +165,7 @@ /obj/effect/turf_decal/corner/blue/three_quarters, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel, /area/ship/bridge) @@ -402,7 +402,7 @@ "sI" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/purple/border, /turf/open/floor/plasteel, @@ -471,7 +471,7 @@ /obj/machinery/button/door{ id = "bubbledoors"; name = "Blast Door Control"; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/suit_storage_unit/independent/mining, @@ -491,7 +491,7 @@ /obj/effect/turf_decal/siding/thinplating, /obj/machinery/door/poddoor{ id = "bubbledoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/effect/turf_decal/industrial/warning/corner{ dir = 1 @@ -580,7 +580,7 @@ icon_state = "2-8" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/ship/engineering) @@ -763,7 +763,7 @@ /obj/item/mining_scanner, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/brown{ dir = 9 @@ -783,7 +783,7 @@ /obj/effect/turf_decal/siding/thinplating, /obj/machinery/door/poddoor{ id = "bubbledoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/effect/turf_decal/industrial/warning/corner{ dir = 4 @@ -923,7 +923,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/purple{ dir = 9 @@ -1067,7 +1067,7 @@ /obj/machinery/airalarm/directional/east, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/areaeditor/shuttle, /obj/item/stack/spacecash/c1000, diff --git a/_maps/shuttles/shiptest/ntsv_osprey.dmm b/_maps/shuttles/shiptest/ntsv_osprey.dmm index e157207925a4..d9d3daef8451 100644 --- a/_maps/shuttles/shiptest/ntsv_osprey.dmm +++ b/_maps/shuttles/shiptest/ntsv_osprey.dmm @@ -179,7 +179,7 @@ /obj/structure/table/optable, /obj/effect/turf_decal/borderfloor/full, /obj/machinery/defibrillator_mount/loaded{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -216,7 +216,7 @@ /obj/structure/window/plasma/reinforced/spawner/east, /obj/machinery/door/poddoor{ id = "osprey_thruster_starboard"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -243,7 +243,7 @@ dir = 4; id = "ospreydoors"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 10 }, /obj/effect/turf_decal/industrial/outline/yellow, @@ -384,7 +384,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/crew/canteen) @@ -543,7 +543,7 @@ dir = 8; id = "ospreydoors"; name = "Blast Door Control"; - pixel_x = 24; + pixel_x = 25; pixel_y = 10 }, /obj/effect/turf_decal/industrial/hatch/yellow, @@ -690,7 +690,7 @@ /obj/structure/window/plasma/reinforced/spawner/west, /obj/machinery/door/poddoor{ id = "osprey_thruster_port"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -699,7 +699,7 @@ /obj/structure/reagent_dispensers/fueltank, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/sign/warning/nosmoking{ pixel_y = -32 @@ -737,7 +737,7 @@ /obj/effect/turf_decal/industrial/hatch/yellow, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/patterned/grid, /area/ship/engineering/engine) @@ -885,7 +885,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel, /area/ship/hallway/port) @@ -925,7 +925,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/construction) @@ -1130,7 +1130,7 @@ dir = 4; id = "ospreydoors"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 10 }, /obj/item/radio/intercom{ @@ -1251,7 +1251,7 @@ dir = 8; id = "ospreydoors"; name = "Blast Door Control"; - pixel_x = 24; + pixel_x = 25; pixel_y = 10 }, /obj/item/taperecorder, @@ -1319,7 +1319,7 @@ /obj/machinery/door/firedoor/heavy, /obj/machinery/door/poddoor{ id = "ospreydoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plasteel/tech/grid, /area/ship/hallway/fore) @@ -1461,7 +1461,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/storage) @@ -1602,7 +1602,7 @@ /obj/effect/turf_decal/industrial/outline/yellow, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/patterned/grid, /area/ship/engineering/atmospherics) @@ -2000,7 +2000,7 @@ /obj/structure/window/plasma/reinforced/spawner/west, /obj/machinery/door/poddoor{ id = "osprey_thruster_port"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -2009,7 +2009,7 @@ /obj/machinery/atmospherics/pipe/layer_manifold, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/engineering/engine) @@ -2041,7 +2041,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/toy/figure/borg, /turf/open/floor/plasteel/tech/techmaint, @@ -2123,7 +2123,7 @@ /obj/structure/filingcabinet, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/extinguisher_cabinet{ pixel_y = -28 @@ -2157,7 +2157,7 @@ dir = 1 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel, /area/ship/hallway/aft) @@ -2697,7 +2697,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/hallway/aft) @@ -2821,7 +2821,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/crew/dorm) @@ -2979,7 +2979,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/item/circuitboard/machine/protolathe/department/science{ pixel_y = -5 @@ -3291,7 +3291,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel, /area/ship/cargo) @@ -3571,7 +3571,7 @@ /obj/item/storage/box/mousetraps, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/storage/box/lights/mixed, /obj/item/storage/box/lights/mixed, @@ -3590,7 +3590,7 @@ dir = 8; id = "ospreysci"; name = "Shutter Control"; - pixel_x = 24; + pixel_x = 25; pixel_y = 5 }, /turf/open/floor/plasteel/white, @@ -3781,7 +3781,7 @@ dir = 4; id = "ospreycargo"; name = "Shutter Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /turf/open/floor/plasteel, @@ -3910,7 +3910,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -3925,7 +3925,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/cargo) @@ -3988,7 +3988,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/grey/mono, /obj/effect/turf_decal/corner/neutral/border{ @@ -4047,7 +4047,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/hallway/central) @@ -4124,7 +4124,7 @@ /obj/machinery/light, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel, /area/ship/hallway/central) @@ -4215,7 +4215,7 @@ dir = 8; id = "osprey_thruster_port"; name = "Blast Door Control"; - pixel_x = 24; + pixel_x = 25; pixel_y = 5 }, /turf/open/floor/plating, @@ -4278,7 +4278,7 @@ id = "osprey_disposals"; name = "disposals button"; pixel_x = 7; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/table, /obj/item/storage/bag/trash{ @@ -4309,7 +4309,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -4576,7 +4576,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light/small{ dir = 8 @@ -4621,7 +4621,7 @@ /obj/effect/turf_decal/industrial/outline/yellow, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) @@ -5013,7 +5013,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -5241,7 +5241,7 @@ /obj/item/storage/box/PDAs, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/clothing/under/rank/command/head_of_personnel/nt, /obj/item/clothing/head/hopcap/nt, @@ -5277,7 +5277,7 @@ /obj/structure/window/plasma/reinforced/spawner/west, /obj/machinery/door/poddoor{ id = "osprey_thruster_starboard"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -5302,7 +5302,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/science) @@ -5577,7 +5577,7 @@ dir = 4; id = "osprey_thruster_starboard"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /turf/open/floor/plating, @@ -5751,7 +5751,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/light/small{ @@ -5762,7 +5762,7 @@ "Po" = ( /obj/machinery/door/poddoor{ id = "osprey_disposals"; - name = "disposals blast door" + name = "Disposals Blast Door" }, /obj/structure/fans/tiny, /obj/machinery/door/firedoor/heavy, @@ -6057,7 +6057,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/storage) @@ -6203,7 +6203,7 @@ /obj/effect/turf_decal/industrial/outline/yellow, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) @@ -6235,7 +6235,7 @@ /obj/structure/window/plasma/reinforced/spawner/west, /obj/machinery/door/poddoor{ id = "osprey_thruster_port"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -6391,7 +6391,7 @@ /obj/structure/window/plasma/reinforced/spawner/east, /obj/machinery/door/poddoor{ id = "osprey_thruster_starboard"; - name = "thruster blast door" + name = "Thruster Blast Door" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -6453,7 +6453,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters{ id = "ospreywindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/medical) @@ -6537,7 +6537,7 @@ pixel_x = -12 }, /obj/structure/mirror{ - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/showroomfloor, /area/ship/crew/canteen) @@ -6650,7 +6650,7 @@ /obj/machinery/washing_machine, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/firealarm{ dir = 8; @@ -6696,7 +6696,7 @@ /obj/machinery/vending/cola/random, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/wood, /area/ship/crew/canteen) diff --git a/_maps/shuttles/shiptest/ntsv_skipper.dmm b/_maps/shuttles/shiptest/ntsv_skipper.dmm index 4fb496a3a639..f0615fbe74ca 100644 --- a/_maps/shuttles/shiptest/ntsv_skipper.dmm +++ b/_maps/shuttles/shiptest/ntsv_skipper.dmm @@ -685,7 +685,7 @@ dir = 8 }, /obj/machinery/advanced_airlock_controller{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -1361,7 +1361,7 @@ /obj/machinery/button/door{ id = "amogusdoors"; name = "Blast Door Control"; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) @@ -1384,7 +1384,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "amogusdoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -3019,8 +3019,8 @@ dir = 8 }, /obj/machinery/advanced_airlock_controller{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/central) @@ -3707,7 +3707,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/layer2, /obj/machinery/advanced_airlock_controller{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/central) diff --git a/_maps/shuttles/shiptest/pill_black.dmm b/_maps/shuttles/shiptest/pill_black.dmm index 0e8645a1d679..9e6709a08ba0 100644 --- a/_maps/shuttles/shiptest/pill_black.dmm +++ b/_maps/shuttles/shiptest/pill_black.dmm @@ -24,7 +24,7 @@ dir = 8 }, /obj/machinery/power/apc/auto_name/west{ - pixel_x = -6 + pixel_x = -25 }, /obj/item/stack/ore/diamond, /obj/item/stack/ore/diamond, diff --git a/_maps/shuttles/shiptest/pill_super.dmm b/_maps/shuttles/shiptest/pill_super.dmm index f6816a990132..d876e6f2d6eb 100644 --- a/_maps/shuttles/shiptest/pill_super.dmm +++ b/_maps/shuttles/shiptest/pill_super.dmm @@ -115,7 +115,7 @@ icon_state = "0-8" }, /obj/machinery/power/apc/auto_name/west{ - pixel_x = -6 + pixel_x = -25 }, /obj/structure/window/reinforced/tinted, /obj/structure/window/reinforced/tinted{ diff --git a/_maps/shuttles/shiptest/pirate_libertatia.dmm b/_maps/shuttles/shiptest/pirate_libertatia.dmm index c0bd8b7c278c..a6c7c4d8a441 100644 --- a/_maps/shuttles/shiptest/pirate_libertatia.dmm +++ b/_maps/shuttles/shiptest/pirate_libertatia.dmm @@ -18,14 +18,14 @@ dir = 4; id = "pirateshutters"; name = "Window Lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /obj/machinery/button/door{ dir = 4; id = "piratecargo"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /obj/machinery/light/small{ @@ -131,7 +131,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "2-4" @@ -212,7 +212,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "pirateshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -365,7 +365,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "pirateshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /obj/machinery/atmospherics/pipe/layer_manifold{ @@ -525,7 +525,7 @@ "sc" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/clothing/suit/space/orange, /obj/item/clothing/mask/breath, @@ -576,7 +576,7 @@ "sI" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/kitchen/knife/hunting{ pixel_y = 5 @@ -634,7 +634,7 @@ /area/ship/crew) "ui" = ( /obj/machinery/door/airlock/hatch{ - name = "external access hatch" + name = "External Access Hatch" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -666,7 +666,7 @@ pixel_y = 28 }, /obj/machinery/advanced_airlock_controller{ - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/industrial/warning{ @@ -676,7 +676,7 @@ /area/ship/crew) "vo" = ( /obj/machinery/door/airlock/hatch{ - name = "external access hatch" + name = "External Access Hatch" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -783,7 +783,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "pirateshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -1076,7 +1076,7 @@ }, /obj/structure/curtain/bounty, /obj/machinery/computer/cryopod{ - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/pod/light, /area/ship/crew) @@ -1085,7 +1085,7 @@ /obj/structure/curtain/bounty, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/item/bedsheet/brown, @@ -1189,7 +1189,7 @@ pixel_x = 32 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/pod/light, /area/ship/cargo) @@ -1228,7 +1228,7 @@ dir = 4; id = "piratecargo"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = -10 }, /obj/effect/decal/cleanable/dirt/dust, @@ -1259,7 +1259,7 @@ dir = 8; id = "piratecargo"; name = "Blast Door Control"; - pixel_x = 24; + pixel_x = 25; pixel_y = -10 }, /obj/effect/decal/cleanable/dirt/dust, @@ -1774,7 +1774,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -1858,7 +1858,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "pirateshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/plasma/reinforced/plastitanium, /turf/open/floor/plating, @@ -1879,7 +1879,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, diff --git a/_maps/shuttles/shiptest/rigger_b.dmm b/_maps/shuttles/shiptest/rigger_b.dmm index 89c1f7509f15..3299ff57d9ab 100644 --- a/_maps/shuttles/shiptest/rigger_b.dmm +++ b/_maps/shuttles/shiptest/rigger_b.dmm @@ -3,10 +3,9 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, -/turf/closed/wall, /area/ship/crew/chapel) "aw" = ( /obj/machinery/power/terminal, @@ -26,7 +25,7 @@ "aE" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/industrial/outline/yellow, /obj/effect/decal/cleanable/dirt/dust, @@ -36,14 +35,13 @@ "aJ" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/chapel, /obj/structure/table/wood, /turf/open/floor/plasteel/dark, /area/ship/crew/chapel) "aT" = ( -/obj/structure/lattice, /turf/closed/wall, /area/ship/construction) "bc" = ( @@ -56,7 +54,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -112,7 +110,7 @@ /area/ship/crew) "bX" = ( /obj/item/radio/intercom/wideband{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/chair/wood/wings{ dir = 1 @@ -179,7 +177,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/closet/cabinet{ name = "hunter cabinet" @@ -211,7 +209,7 @@ "eh" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/chair/pew/left{ dir = 4 @@ -413,7 +411,7 @@ }, /obj/machinery/flasher{ id = "Cell2B"; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/wood/maple, /area/ship/security) @@ -515,7 +513,7 @@ "iH" = ( /obj/structure/closet/crate, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/spawner/lootdrop/maintenance/three, /obj/item/gun/ballistic/revolver/pepperbox, @@ -567,7 +565,7 @@ }, /obj/machinery/door/poddoor/shutters{ id = "riggerengwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -762,7 +760,7 @@ "lT" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/smartfridge/drying_rack, /turf/open/floor/wood/maple, @@ -823,7 +821,7 @@ dir = 1 }, /obj/machinery/advanced_airlock_controller{ - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 @@ -871,7 +869,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -1016,14 +1014,14 @@ dir = 4; id = "riggerdoors"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /obj/machinery/button/door{ dir = 4; id = "riggerwindows"; name = "Window Lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /obj/machinery/light{ @@ -1160,7 +1158,7 @@ "pY" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small{ dir = 8 @@ -1173,7 +1171,7 @@ /area/ship/crew) "qk" = ( /obj/structure/mirror{ - pixel_x = 24 + pixel_x = 25 }, /obj/structure/sink{ dir = 8; @@ -1182,7 +1180,7 @@ /obj/machinery/light/small, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/wood/birch, /area/ship/crew) @@ -1317,7 +1315,7 @@ /area/ship/security/armory) "rJ" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/reagent_dispensers/watertank/high, /obj/effect/decal/cleanable/dirt/dust, @@ -1350,7 +1348,7 @@ dir = 4 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/catwalk/over, /turf/open/floor/plating, @@ -1359,7 +1357,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, /obj/effect/decal/cleanable/dirt/dust, @@ -1400,7 +1398,7 @@ "sT" = ( /obj/machinery/door/poddoor{ id = "riggerdoors"; - name = "mech bay blast door" + name = "Mechbay Blast Door" }, /obj/structure/fans/tiny, /turf/open/floor/engine/hull/interior, @@ -1489,7 +1487,7 @@ }, /obj/machinery/door/poddoor/shutters{ id = "riggerengwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -1612,7 +1610,7 @@ }, /obj/machinery/door/poddoor/shutters{ id = "riggerengwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -1818,7 +1816,7 @@ "yi" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/table, /obj/effect/turf_decal/industrial/outline/yellow, @@ -1849,7 +1847,7 @@ }, /obj/machinery/door/poddoor/shutters{ id = "riggerengwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -1900,7 +1898,7 @@ }, /obj/machinery/door/poddoor/shutters{ id = "riggerengwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -1942,7 +1940,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -2080,7 +2078,6 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/chapel) "Ce" = ( -/obj/structure/lattice, /turf/closed/wall, /area/ship/crew) "Cf" = ( @@ -2218,7 +2215,7 @@ "Dr" = ( /obj/machinery/computer/cryopod{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/loading{ dir = 4 @@ -2301,7 +2298,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -2325,7 +2322,7 @@ "EF" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plating, @@ -2594,7 +2591,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/curtain, /obj/structure/window/reinforced/fulltile, @@ -2859,7 +2856,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -2955,7 +2952,7 @@ /obj/machinery/power/apc/auto_name/west, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/chair/pew/left{ dir = 4 @@ -2997,7 +2994,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -3006,7 +3003,7 @@ "Nf" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/kitchenspike, /obj/effect/decal/cleanable/blood/old, @@ -3192,7 +3189,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -3272,7 +3269,7 @@ }, /obj/machinery/door/poddoor/shutters{ id = "riggerengwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -3296,7 +3293,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/machinery/atmospherics/components/binary/pump/on/layer4{ dir = 8 @@ -3463,7 +3460,7 @@ /area/ship/crew/chapel) "Rw" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/kirbyplants/random, /turf/open/floor/wood/yew, @@ -3472,7 +3469,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -3496,7 +3493,7 @@ "RO" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 10 @@ -3665,7 +3662,7 @@ "Uf" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small, /obj/structure/ore_box, @@ -3678,7 +3675,7 @@ "Ul" = ( /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -3721,7 +3718,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, @@ -3770,7 +3767,7 @@ "VF" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/emcloset, /obj/machinery/light/small{ @@ -3802,7 +3799,7 @@ "VW" = ( /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -3975,7 +3972,7 @@ /area/ship/engineering/atmospherics) "Yc" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" diff --git a/_maps/shuttles/shiptest/rigger_c.dmm b/_maps/shuttles/shiptest/rigger_c.dmm index 64c6079bf098..4a7bc5d146af 100644 --- a/_maps/shuttles/shiptest/rigger_c.dmm +++ b/_maps/shuttles/shiptest/rigger_c.dmm @@ -3,7 +3,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -34,7 +34,7 @@ "aE" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/industrial/outline/yellow, /obj/effect/decal/cleanable/dirt/dust, @@ -43,7 +43,7 @@ "aJ" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/bed/dogbed/renault{ name = "Vance's bed" @@ -95,7 +95,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#9ADEDE" @@ -157,7 +157,7 @@ name = "Helm" }, /obj/item/radio/intercom/wideband{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/nanoweave/blue, @@ -165,7 +165,7 @@ "cb" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/table, /obj/machinery/reagentgrinder{ @@ -261,7 +261,7 @@ "eh" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/chair{ dir = 8 @@ -339,7 +339,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -427,7 +427,7 @@ }, /obj/machinery/flasher{ id = "Cell1C"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, @@ -456,7 +456,7 @@ /area/ship/engineering/atmospherics) "hn" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light{ dir = 8 @@ -471,7 +471,7 @@ }, /obj/machinery/flasher{ id = "Cell2C"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, @@ -523,7 +523,7 @@ /area/ship/crew) "ig" = ( /obj/item/radio/intercom{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/industrial/outline/yellow, @@ -534,7 +534,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#9ADEDE" @@ -590,7 +590,7 @@ "iH" = ( /obj/structure/closet/crate, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/spawner/lootdrop/maintenance/three, /obj/item/gun/ballistic/automatic/pistol/solgov, @@ -879,7 +879,7 @@ "lT" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/spawner/lootdrop/maintenance/two, /obj/effect/spawner/lootdrop/gloves, @@ -950,7 +950,7 @@ dir = 1 }, /obj/machinery/advanced_airlock_controller{ - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 @@ -1012,7 +1012,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -1080,7 +1080,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#9ADEDE" @@ -1132,14 +1132,14 @@ dir = 4; id = "riggerdoors"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /obj/machinery/button/door{ dir = 4; id = "riggerwindows"; name = "Window Lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /obj/machinery/light{ @@ -1307,7 +1307,7 @@ "pY" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small{ dir = 8 @@ -1325,7 +1325,7 @@ /area/ship/bridge) "qk" = ( /obj/structure/mirror{ - pixel_x = 24 + pixel_x = 25 }, /obj/structure/sink{ dir = 8; @@ -1334,7 +1334,7 @@ /obj/machinery/light/small, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, @@ -1472,7 +1472,7 @@ /area/ship/bridge) "rJ" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/reagent_dispensers/watertank/high, /obj/effect/decal/cleanable/dirt/dust, @@ -1507,7 +1507,7 @@ dir = 4 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/catwalk/over, @@ -1577,7 +1577,7 @@ "sT" = ( /obj/machinery/door/poddoor{ id = "riggerdoors"; - name = "mech bay blast door" + name = "Mechbay Blast Door" }, /obj/structure/fans/tiny, /obj/effect/decal/cleanable/dirt/dust, @@ -2091,7 +2091,7 @@ "yi" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/table, /obj/effect/turf_decal/industrial/outline/yellow, @@ -2219,7 +2219,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -2408,7 +2408,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#9ADEDE" @@ -2606,7 +2606,7 @@ dir = 1 }, /obj/machinery/computer/cryopod{ - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ @@ -2735,7 +2735,7 @@ "EF" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/outline/yellow, /obj/effect/decal/cleanable/dirt/dust, @@ -2743,7 +2743,7 @@ /area/ship/maintenance/starboard) "EI" = ( /obj/item/radio/intercom{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/sign/warning/nosmoking{ pixel_x = -25 @@ -3019,7 +3019,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -3218,7 +3218,7 @@ "Jq" = ( /obj/effect/turf_decal/industrial/outline/yellow, /obj/item/radio/intercom{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/spawner/lootdrop/maintenance, /obj/effect/decal/cleanable/dirt/dust, @@ -3303,7 +3303,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -3429,7 +3429,7 @@ /obj/machinery/power/apc/auto_name/west, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/chair{ dir = 4 @@ -3477,7 +3477,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -3542,7 +3542,7 @@ dir = 4; id = "riggerdoors"; name = "Blast Door Control"; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating{ @@ -3752,7 +3752,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/machinery/atmospherics/components/binary/pump/on/layer4{ dir = 8 @@ -3890,7 +3890,7 @@ /area/ship/cargo) "Rw" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ship/crew/canteen) @@ -3898,7 +3898,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -3920,7 +3920,7 @@ "RO" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 10 @@ -4127,7 +4127,7 @@ "Uf" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small, /obj/structure/ore_box, @@ -4145,7 +4145,7 @@ "Ul" = ( /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile/shuttle{ @@ -4213,7 +4213,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -4270,7 +4270,7 @@ "VF" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/emcloset, /obj/machinery/light/small{ @@ -4284,7 +4284,7 @@ pixel_x = -32 }, /obj/structure/rack, -/obj/item/gun/ballistic/automatic/ak47/nt{ +/obj/item/gun/ballistic/automatic/assualt/ak47/nt{ pixel_x = -12; pixel_y = 7 }, @@ -4306,7 +4306,7 @@ "VW" = ( /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile/shuttle{ @@ -4509,7 +4509,7 @@ /area/ship/engineering/atmospherics) "Yc" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" diff --git a/_maps/shuttles/shiptest/rigger_t.dmm b/_maps/shuttles/shiptest/rigger_t.dmm index b7fc7100124d..d6219a425c7b 100644 --- a/_maps/shuttles/shiptest/rigger_t.dmm +++ b/_maps/shuttles/shiptest/rigger_t.dmm @@ -3,7 +3,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -26,7 +26,7 @@ "aE" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plating, @@ -49,12 +49,11 @@ "aJ" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/wood, /area/ship/crew/solgov) "aT" = ( -/obj/structure/lattice, /turf/closed/wall/mineral/titanium, /area/ship/construction) "bc" = ( @@ -66,7 +65,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -129,7 +128,7 @@ name = "Helm" }, /obj/item/radio/intercom/wideband{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/carpet/nanoweave/blue, /area/ship/bridge) @@ -215,7 +214,7 @@ "eh" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/chair{ dir = 8 @@ -365,7 +364,7 @@ }, /obj/machinery/flasher{ id = "Cell1B"; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/security/prison) @@ -402,7 +401,7 @@ /area/ship/maintenance/starboard) "hn" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light{ dir = 8 @@ -417,7 +416,7 @@ }, /obj/machinery/flasher{ id = "Cell2B"; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/security/prison) @@ -481,7 +480,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -525,7 +524,7 @@ "iH" = ( /obj/structure/closet/crate, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/spawner/lootdrop/maintenance/three, /obj/item/gun/ballistic/automatic/pistol/solgov, @@ -772,7 +771,7 @@ "lT" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/spawner/lootdrop/maintenance/two, /obj/effect/spawner/lootdrop/gloves, @@ -839,7 +838,7 @@ dir = 1 }, /obj/machinery/advanced_airlock_controller{ - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 @@ -893,7 +892,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -976,7 +975,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -1041,14 +1040,14 @@ dir = 4; id = "riggerdoors"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /obj/machinery/button/door{ dir = 4; id = "riggerwindows"; name = "Window Lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /obj/machinery/light{ @@ -1202,7 +1201,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small{ dir = 8 @@ -1216,7 +1215,7 @@ /area/ship/bridge) "qk" = ( /obj/structure/mirror{ - pixel_x = 24 + pixel_x = 25 }, /obj/structure/sink{ dir = 8; @@ -1225,7 +1224,7 @@ /obj/machinery/light/small, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/patterned, /area/ship/crew) @@ -1370,7 +1369,7 @@ /area/ship/security) "rJ" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plating, @@ -1418,7 +1417,7 @@ dir = 4 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/catwalk/over, /turf/open/floor/plating, @@ -1456,7 +1455,7 @@ "sT" = ( /obj/machinery/door/poddoor{ id = "riggerdoors"; - name = "mech bay blast door" + name = "Mechbay Blast Door" }, /obj/structure/fans/tiny, /turf/open/floor/engine/hull/interior, @@ -1935,7 +1934,7 @@ "yi" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/table, /obj/effect/turf_decal/industrial/outline/yellow, @@ -2041,7 +2040,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -2215,7 +2214,6 @@ /turf/open/floor/plating, /area/ship/crew/solgov) "Ce" = ( -/obj/structure/lattice, /turf/closed/wall/mineral/titanium, /area/ship/crew) "Cf" = ( @@ -2348,7 +2346,7 @@ dir = 1 }, /obj/machinery/computer/cryopod{ - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/wood, /area/ship/crew) @@ -2457,7 +2455,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle{ color = "#E58E2D" @@ -2490,7 +2488,7 @@ "EF" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plating, @@ -2770,7 +2768,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/curtain, /obj/structure/window/reinforced/fulltile/shuttle, @@ -3026,7 +3024,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -3133,7 +3131,7 @@ /obj/machinery/power/apc/auto_name/west, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/chair{ dir = 4 @@ -3179,7 +3177,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -3188,7 +3186,7 @@ "Nf" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/table, /obj/machinery/reagentgrinder{ @@ -3254,7 +3252,7 @@ dir = 4; id = "riggerdoors"; name = "Blast Door Control"; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/cargo) @@ -3371,7 +3369,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -3459,7 +3457,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/machinery/atmospherics/components/binary/pump/on/layer4{ dir = 8 @@ -3615,7 +3613,7 @@ /area/ship/maintenance/port) "Rw" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/white/mono, /obj/effect/turf_decal/corner/green/half{ @@ -3627,7 +3625,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -3653,7 +3651,7 @@ "RO" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 10 @@ -3839,7 +3837,7 @@ "Uf" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small, /obj/structure/ore_box, @@ -3851,7 +3849,7 @@ "Ul" = ( /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile/shuttle, @@ -3904,7 +3902,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -3955,7 +3953,7 @@ "VF" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/emcloset, /obj/machinery/light/small{ @@ -3995,7 +3993,7 @@ "VW" = ( /obj/machinery/door/poddoor/shutters{ id = "riggerwindows"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /obj/structure/window/reinforced/fulltile/shuttle, @@ -4192,7 +4190,7 @@ /area/ship/engineering/atmospherics) "Yc" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" diff --git a/_maps/shuttles/shiptest/scav.dmm b/_maps/shuttles/shiptest/scav.dmm index ad430fede612..eff4eb80bb61 100644 --- a/_maps/shuttles/shiptest/scav.dmm +++ b/_maps/shuttles/shiptest/scav.dmm @@ -132,7 +132,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "scav_door"; - name = "dusty blast door" + name = "Dusty Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -220,8 +220,8 @@ dir = 4 }, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/item/radio/intercom/wideband{ dir = 1; @@ -319,7 +319,7 @@ }, /obj/machinery/light_switch{ dir = 8; - pixel_x = 24; + pixel_x = 25; pixel_y = 11 }, /obj/effect/decal/cleanable/blood/old, @@ -491,7 +491,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "scav_door"; - name = "dusty blast door" + name = "Dusty Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -1333,7 +1333,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "scav_door"; - name = "dusty blast door" + name = "Dusty Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -1361,7 +1361,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "scav_door"; - name = "dusty blast door" + name = "Dusty Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) diff --git a/_maps/shuttles/shiptest/schmiedeberg-class.dmm b/_maps/shuttles/shiptest/schmiedeberg-class.dmm index 715333a5058f..e1a8a734b0f8 100644 --- a/_maps/shuttles/shiptest/schmiedeberg-class.dmm +++ b/_maps/shuttles/shiptest/schmiedeberg-class.dmm @@ -182,7 +182,7 @@ /obj/structure/dresser, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -261,7 +261,7 @@ /obj/item/stack/cable_coil/cyan, /obj/machinery/light, /obj/structure/extinguisher_cabinet{ - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/siding/blue/end{ dir = 4 @@ -583,7 +583,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering/electrical) @@ -639,7 +639,7 @@ /obj/item/kirbyplants/photosynthetic, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/white, /area/ship/hallway/central) @@ -890,7 +890,7 @@ }, /obj/item/radio/intercom/wideband{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/blue, /area/ship/bridge) @@ -1059,7 +1059,7 @@ "Fe" = ( /obj/machinery/button/door{ id = "pharmablast"; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -1122,13 +1122,13 @@ /obj/machinery/button/door{ id = "pharmabridge"; name = "Bridge Lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = 7 }, /obj/machinery/button/door{ id = "pharmawindows"; name = "Window Shutters"; - pixel_x = -24; + pixel_x = -25; pixel_y = -7 }, /obj/effect/turf_decal/siding/thinplating/light{ @@ -1462,7 +1462,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/item/scalpel/advanced, /obj/item/clothing/glasses/hud/health/sunglasses, @@ -1570,7 +1570,7 @@ dir = 1 }, /obj/structure/extinguisher_cabinet{ - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/siding/thinplating/light{ dir = 10 @@ -1644,7 +1644,7 @@ "Vh" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/carpet/black, /area/ship/crew/canteen/kitchen) @@ -1756,7 +1756,7 @@ "Yh" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -1786,7 +1786,7 @@ /area/ship/hallway/central) "YD" = ( /obj/structure/extinguisher_cabinet{ - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/white, /area/ship/hallway/central) @@ -1836,7 +1836,7 @@ /obj/machinery/smartfridge/disks, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 diff --git a/_maps/shuttles/shiptest/scrapper.dmm b/_maps/shuttles/shiptest/scrapper.dmm index 2e5291a1e575..955858d6d0c2 100644 --- a/_maps/shuttles/shiptest/scrapper.dmm +++ b/_maps/shuttles/shiptest/scrapper.dmm @@ -16,7 +16,7 @@ id = "EVAEXTERNAL"; name = "Blast Door Control"; pixel_x = -8; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/siding/yellow/corner{ dir = 8 @@ -36,7 +36,7 @@ "al" = ( /obj/machinery/door/poddoor/shutters{ id = "internalbridgeshutter"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /obj/structure/window/plasma/reinforced/plastitanium, @@ -347,7 +347,7 @@ "dp" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -425,7 +425,7 @@ "ex" = ( /obj/machinery/door/poddoor{ id = "Eject"; - name = "Door for ejection of Impostors" + name = "Door for Ejection of Impostors" }, /turf/open/floor/plating, /area/ship/security) @@ -491,7 +491,7 @@ }, /obj/machinery/firealarm{ pixel_x = 8; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor/orange{ dir = 5 @@ -503,7 +503,7 @@ /obj/item/storage/toolbox/mechanical, /obj/item/clothing/glasses/welding, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light{ dir = 1 @@ -542,7 +542,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/tech/techmaint, @@ -567,7 +567,7 @@ "gn" = ( /obj/machinery/vending/cigarette, /obj/machinery/light_switch{ - pixel_x = -24; + pixel_x = -25; pixel_y = 8 }, /obj/item/radio/intercom{ @@ -605,7 +605,7 @@ pixel_y = 8 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor/orange{ dir = 9 @@ -671,7 +671,7 @@ id = "EVAEXTERNAL"; name = "Blast Door Control"; pixel_x = 8; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating/airless, /area/ship/external) @@ -717,7 +717,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/table/glass, /obj/machinery/plantgenes, @@ -763,7 +763,7 @@ "iS" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 @@ -844,7 +844,7 @@ "kf" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/suit_storage_unit/mining/eva, /obj/machinery/light{ @@ -897,7 +897,7 @@ name = "Brig Door Control"; normaldoorcontrol = 1; pixel_x = -8; - pixel_y = 24; + pixel_y = 25; specialfunctions = 4 }, /obj/machinery/button/door{ @@ -1174,7 +1174,7 @@ id = "EVAINTERNAL"; name = "Blast Door Control"; pixel_x = -8; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/suit_storage_unit/mining/eva, /obj/machinery/power/apc/auto_name/east, @@ -1225,7 +1225,7 @@ /obj/effect/turf_decal/siding/red, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/mineral/plastitanium, /area/ship/security) @@ -1361,7 +1361,7 @@ icon_state = "2-4" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/pod/light, /area/ship/hallway/fore) @@ -1448,14 +1448,14 @@ icon_state = "2-4" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor/orange{ dir = 9 }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/engineering/electrical) @@ -1483,7 +1483,7 @@ /obj/item/storage/toolbox/mechanical, /obj/item/clothing/glasses/welding, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor/orange{ dir = 5 @@ -1500,7 +1500,7 @@ dir = 8 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/item/storage/fancy/cigarettes, /obj/item/lighter/greyscale{ @@ -1667,8 +1667,8 @@ /obj/machinery/button/door{ id = "EVAEXTERNAL"; name = "Blast Door Control"; - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /turf/open/floor/pod/light, /area/ship/hallway/central) @@ -1756,7 +1756,7 @@ id = "EVAINTERNAL"; name = "Blast Door Control"; pixel_x = -8; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor{ dir = 1 @@ -1973,7 +1973,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/space_heater, @@ -2037,7 +2037,7 @@ /obj/machinery/vending/coffee, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/wood, /area/ship/crew/canteen) @@ -2178,7 +2178,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/poddoor{ id = "EVAINTERNAL"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ @@ -2221,7 +2221,7 @@ /area/ship/engineering/engine) "zK" = ( /obj/machinery/advanced_airlock_controller{ - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/tech/techmaint, @@ -2255,7 +2255,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/secure_closet/freezer/meat/open, /mob/living/simple_animal/crab/Coffee, @@ -2324,7 +2324,7 @@ "AV" = ( /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/firecloset/full, /turf/open/floor/plating, @@ -2345,7 +2345,7 @@ "Ba" = ( /obj/machinery/door/poddoor{ id = "scrapdoorint"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -2368,7 +2368,7 @@ }, /obj/machinery/door/poddoor{ id = "EVAEXTERNAL"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/pod/light, /area/ship/hallway/central) @@ -2420,7 +2420,7 @@ "BQ" = ( /obj/machinery/door/poddoor{ id = "scrapdoorint"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -2443,7 +2443,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 @@ -2492,7 +2492,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/wood, /area/ship/crew/canteen) @@ -2590,8 +2590,8 @@ /obj/machinery/button/door{ id = "scrapdoorint"; name = "Blast Door Control"; - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /turf/open/floor/pod/light, /area/ship/cargo) @@ -2599,8 +2599,8 @@ /obj/machinery/button/door{ id = "scrapdoorint"; name = "Blast Door Control"; - pixel_x = -24; - pixel_y = -24 + pixel_x = -25; + pixel_y = -25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 @@ -2726,7 +2726,7 @@ id = "internalbridgeshutter"; name = "EVA Oversight Lockdown"; pixel_x = -6; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/dim{ dir = 1 @@ -2819,7 +2819,7 @@ /area/ship/security) "Hi" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/firecloset/full, /turf/open/floor/plating, @@ -2832,8 +2832,8 @@ /obj/machinery/button/door{ id = "scrapdoorext"; name = "Blast Door Control"; - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 @@ -2871,7 +2871,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) @@ -2933,8 +2933,8 @@ /obj/machinery/button/door{ id = "scrapdoorext"; name = "Blast Door Control"; - pixel_x = -24; - pixel_y = -24 + pixel_x = -25; + pixel_y = -25 }, /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -2957,15 +2957,15 @@ /obj/machinery/button/door{ id = "EVAEXTERNAL"; name = "Blast Door Control"; - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /turf/open/floor/pod/light, /area/ship/hallway/central) "IE" = ( /obj/machinery/door/poddoor{ id = "scrapdoorext"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -3102,7 +3102,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -3162,7 +3162,7 @@ name = "Bathroom lock"; normaldoorcontrol = 1; pixel_x = -8; - pixel_y = -24; + pixel_y = -25; specialfunctions = 4 }, /turf/open/floor/plasteel/showroomfloor, @@ -3170,7 +3170,7 @@ "Ky" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/stasis, /obj/effect/turf_decal/siding/blue{ @@ -3206,7 +3206,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/computer/cargo/express{ dir = 1 @@ -3226,7 +3226,7 @@ /obj/effect/turf_decal/techfloor, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/pod/light, /area/ship/cargo) @@ -3291,7 +3291,7 @@ /obj/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "externalbridgeshutter"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/bridge) @@ -3508,7 +3508,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/poddoor{ id = "EVAINTERNAL"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ @@ -3633,7 +3633,7 @@ "PS" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/siding/purple{ dir = 5 @@ -3837,7 +3837,7 @@ /area/ship/medical) "RZ" = ( /obj/machinery/light_switch{ - pixel_x = -24; + pixel_x = -25; pixel_y = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3882,7 +3882,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/techfloor/orange{ dir = 4 @@ -4013,7 +4013,7 @@ dir = 1 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/pod/light, /area/ship/crew/dorm) @@ -4027,7 +4027,7 @@ /area/ship/bridge) "TV" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/pod/light, /area/ship/crew/dorm) @@ -4065,7 +4065,7 @@ "Ui" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 @@ -4273,7 +4273,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/hydroponics/constructable, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/hydroponics) @@ -4294,7 +4294,7 @@ /area/ship/maintenance/starboard) "WQ" = ( /obj/machinery/door/airlock/hatch{ - name = "external access hatch" + name = "External Access Hatch" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -4371,7 +4371,7 @@ "Xr" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/space_heater, /turf/open/floor/pod/light, @@ -4404,7 +4404,7 @@ /area/ship/medical) "XB" = ( /obj/machinery/door/airlock/hatch{ - name = "external access hatch" + name = "External Access Hatch" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -4592,7 +4592,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/space_heater, @@ -4624,7 +4624,7 @@ "ZY" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/chair{ dir = 4 diff --git a/_maps/shuttles/shiptest/scrapperb.dmm b/_maps/shuttles/shiptest/scrapperb.dmm index 8918f61caeb2..c6690d5ac58f 100644 --- a/_maps/shuttles/shiptest/scrapperb.dmm +++ b/_maps/shuttles/shiptest/scrapperb.dmm @@ -14,7 +14,7 @@ /obj/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor/shutters{ id = "externalbridgeshutter"; - name = "blast shutters" + name = "Blast Shutters" }, /turf/open/floor/plating, /area/ship/bridge) @@ -120,11 +120,11 @@ "br" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/space_heater, /obj/effect/turf_decal/techfloor{ @@ -220,7 +220,7 @@ "cn" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 @@ -301,7 +301,7 @@ /area/ship/hallway/fore) "dK" = ( /obj/machinery/door/airlock/hatch{ - name = "external access hatch" + name = "External Access Hatch" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -491,7 +491,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/space_heater, /obj/machinery/atmospherics/components/binary/passive_gate/layer2{ @@ -531,7 +531,7 @@ dir = 4 }, /obj/machinery/door/airlock/freezer{ - name = "freezer" + name = "Freezer" }, /turf/open/floor/pod/light, /area/ship/maintenance/starboard) @@ -884,7 +884,7 @@ "mF" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/filingcabinet, /obj/item/research_notes, @@ -928,7 +928,7 @@ "ng" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/light/colour_cycle/dancefloor_a, /area/ship/crew/canteen) @@ -1096,7 +1096,7 @@ "oJ" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/suit_storage_unit/mining/eva, /obj/machinery/light{ @@ -1143,7 +1143,7 @@ /area/ship/engineering/engine) "pn" = ( /obj/machinery/door/airlock/hatch{ - name = "external access hatch" + name = "External Access Hatch" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -1309,7 +1309,7 @@ "qG" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 @@ -1388,7 +1388,7 @@ }, /obj/machinery/firealarm{ pixel_x = 8; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor/orange{ dir = 5 @@ -1497,7 +1497,7 @@ "th" = ( /obj/machinery/vending/cigarette, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light{ dir = 8 @@ -1629,7 +1629,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/space_heater, /obj/machinery/atmospherics/components/binary/passive_gate/layer2{ @@ -1674,7 +1674,7 @@ "uV" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/light/colour_cycle/dancefloor_a, /area/ship/crew/canteen) @@ -1699,7 +1699,7 @@ "wa" = ( /obj/machinery/door/poddoor/shutters{ id = "internalbridgeshutter"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/grille, /obj/structure/window/plasma/reinforced/plastitanium, @@ -1708,7 +1708,7 @@ "wi" = ( /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/techfloor/orange{ dir = 4 @@ -1961,7 +1961,7 @@ /obj/structure/closet/firecloset/full, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -2105,7 +2105,7 @@ "AX" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/chair{ dir = 4 @@ -2145,7 +2145,7 @@ "Bz" = ( /obj/machinery/vending/dinnerware, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/maintenance/starboard) @@ -2197,14 +2197,14 @@ icon_state = "2-4" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor/orange{ dir = 9 }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/engineering/electrical) @@ -2510,7 +2510,7 @@ "FC" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/space_heater, /turf/open/floor/pod/light, @@ -2592,7 +2592,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/structure/table/wood, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small{ dir = 1 @@ -2662,7 +2662,7 @@ "HG" = ( /obj/structure/table, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/techfloor/orange{ dir = 9 @@ -2819,7 +2819,7 @@ "Jg" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -3389,7 +3389,7 @@ name = "Bathroom lock"; normaldoorcontrol = 1; pixel_x = -8; - pixel_y = -24; + pixel_y = -25; specialfunctions = 4 }, /turf/open/floor/plasteel/showroomfloor, @@ -3421,7 +3421,7 @@ /area/ship/crew/canteen) "Pp" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/firecloset/full, /turf/open/floor/plating, @@ -3543,7 +3543,7 @@ "Qu" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/closet/crate/bin, /turf/open/floor/pod/light, @@ -3707,7 +3707,7 @@ icon_state = "4-8" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) @@ -3766,7 +3766,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/secure_closet/freezer/fridge/open, /turf/open/floor/plasteel/showroomfloor, @@ -3804,7 +3804,7 @@ icon_state = "2-4" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/pod/light, /area/ship/hallway/fore) @@ -3934,7 +3934,7 @@ "Ud" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 @@ -4259,7 +4259,7 @@ /obj/machinery/vending/coffee, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light{ dir = 8 @@ -4316,7 +4316,7 @@ id = "internalbridgeshutter"; name = "EVA Oversight Lockdown"; pixel_x = -6; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/chair{ dir = 4 diff --git a/_maps/shuttles/shiptest/sgv_bubble_b.dmm b/_maps/shuttles/shiptest/sgv_bubble_b.dmm index ff805ae80a57..d9b8a019276e 100644 --- a/_maps/shuttles/shiptest/sgv_bubble_b.dmm +++ b/_maps/shuttles/shiptest/sgv_bubble_b.dmm @@ -25,7 +25,7 @@ "cG" = ( /obj/machinery/advanced_airlock_controller{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/components/binary/dp_vent_pump{ dir = 8 @@ -52,7 +52,7 @@ /obj/effect/turf_decal/siding/thinplating, /obj/machinery/door/poddoor{ id = "bubbledoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -132,7 +132,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/nanoweave/blue, /area/ship/bridge) @@ -418,7 +418,7 @@ /obj/effect/turf_decal/siding/thinplating, /obj/machinery/door/poddoor{ id = "bubbledoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/effect/turf_decal/industrial/warning/corner{ dir = 1 @@ -429,7 +429,7 @@ /obj/machinery/button/door{ id = "bubbledoors"; name = "Blast Door Control"; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/suit_storage_unit/solgov, @@ -484,7 +484,7 @@ icon_state = "2-8" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/carpet/nanoweave/orange, /area/ship/engineering) @@ -685,7 +685,7 @@ /obj/item/mining_scanner, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/nanoweave/red, /area/ship/cargo) @@ -694,7 +694,7 @@ /obj/effect/turf_decal/siding/thinplating, /obj/machinery/door/poddoor{ id = "bubbledoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/effect/turf_decal/industrial/warning/corner{ dir = 4 @@ -863,7 +863,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/nanoweave/purple, /area/ship/science) @@ -955,7 +955,7 @@ /obj/machinery/airalarm/directional/east, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/areaeditor/shuttle, /turf/open/floor/wood, @@ -1031,7 +1031,7 @@ "Yx" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/central) diff --git a/_maps/shuttles/shiptest/solar_class.dmm b/_maps/shuttles/shiptest/solar_class.dmm index 3cfb35751e9f..4873f9e1b389 100644 --- a/_maps/shuttles/shiptest/solar_class.dmm +++ b/_maps/shuttles/shiptest/solar_class.dmm @@ -1518,7 +1518,7 @@ }, /obj/machinery/computer/cryopod{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/wood, /area/ship/crew) @@ -1555,7 +1555,7 @@ "CO" = ( /obj/machinery/advanced_airlock_controller{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/hallway) @@ -1764,7 +1764,7 @@ icon_state = "1-2" }, /obj/machinery/door/airlock/research{ - name = "salvage bay" + name = "Salvage Bay" }, /turf/open/floor/plasteel, /area/ship/science) @@ -2060,7 +2060,7 @@ dir = 4 }, /obj/machinery/door/airlock/research{ - name = "salvage bay" + name = "Salvage Bay" }, /turf/open/floor/plasteel, /area/ship/cargo) diff --git a/_maps/shuttles/shiptest/solgov_cricket.dmm b/_maps/shuttles/shiptest/solgov_cricket.dmm index fed02827004c..7db8790ccb98 100644 --- a/_maps/shuttles/shiptest/solgov_cricket.dmm +++ b/_maps/shuttles/shiptest/solgov_cricket.dmm @@ -30,7 +30,7 @@ "at" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, @@ -55,7 +55,7 @@ dir = 10 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ship/engineering/engine) @@ -116,7 +116,7 @@ /area/ship/cargo) "bn" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /mob/living/simple_animal/pet/fox/Renault, /obj/structure/bed/dogbed/renault, @@ -136,7 +136,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "sgwindowshut"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/crew/solgov) @@ -328,7 +328,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/yellow/border{ dir = 6 @@ -354,7 +354,7 @@ /obj/machinery/light/small, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ship/engineering/engine) @@ -617,7 +617,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "sgwindowshut"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/engineering/atmospherics) @@ -689,7 +689,7 @@ icon_state = "2-8" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 @@ -827,7 +827,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, @@ -947,7 +947,7 @@ }, /obj/item/oar, /obj/machinery/advanced_airlock_controller{ - pixel_y = -24 + pixel_y = -25 }, /obj/structure/closet/emcloset/wall{ pixel_x = 32 @@ -1032,7 +1032,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/nanoweave/purple, /area/ship/hallway/port) @@ -1042,7 +1042,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "sgwindowshut"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/bridge) @@ -1205,7 +1205,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "sgwindowshut"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/crew/canteen) @@ -1249,7 +1249,6 @@ /area/ship/hallway/aft) "ot" = ( /obj/structure/table, -/obj/structure/table, /obj/item/storage/bag/tray, /obj/item/reagent_containers/food/drinks/shaker, /obj/item/reagent_containers/glass/rag, @@ -1440,7 +1439,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 1 @@ -1594,7 +1593,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/carpet/nanoweave/blue, /area/ship/hallway/fore) @@ -1645,7 +1644,7 @@ /obj/machinery/button/door{ id = "sgcargodoor"; name = "Blast Door Control"; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plasteel/mono/dark, @@ -1666,7 +1665,7 @@ /obj/machinery/recharger, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/nanoweave/red, /area/ship/security) @@ -1747,7 +1746,7 @@ "uO" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/yellow/border{ dir = 4 @@ -1761,7 +1760,7 @@ pixel_x = 12 }, /obj/structure/mirror{ - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/white, /area/ship/crew/dorm) @@ -1833,8 +1832,8 @@ icon_state = "0-2" }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /turf/open/floor/carpet/nanoweave, /area/ship/bridge) @@ -2127,7 +2126,7 @@ /area/ship/hallway/aft) "zN" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/table/glass, /obj/item/reagent_containers/dropper, @@ -2296,7 +2295,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "sgcargodoor"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/machinery/door/firedoor/heavy, /turf/open/floor/plating, @@ -2319,7 +2318,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/firealarm{ dir = 4; @@ -2501,7 +2500,7 @@ /obj/item/bedsheet/random, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/camera/autoname{ dir = 4; @@ -2518,8 +2517,8 @@ pixel_y = -26 }, /obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 + pixel_x = 25; + pixel_y = -25 }, /turf/open/floor/eighties, /area/ship/crew/dorm) @@ -2559,7 +2558,7 @@ "Da" = ( /obj/machinery/airalarm/server{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -2762,7 +2761,7 @@ icon_state = "2-4" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/rack, /obj/item/multitool{ @@ -2796,7 +2795,7 @@ /area/ship/hallway/aft) "FG" = ( /obj/machinery/door/airlock/external{ - name = "server room airlock" + name = "Server Room Airlock" }, /obj/effect/turf_decal/corner/blue/diagonal, /obj/effect/turf_decal/industrial/warning, @@ -3078,7 +3077,7 @@ icon_state = "4-8" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -3104,7 +3103,7 @@ icon_state = "4-8" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -3174,7 +3173,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 @@ -3218,7 +3217,7 @@ "Kh" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/nanoweave/orange, /area/ship/hallway/aft) @@ -3246,7 +3245,7 @@ "KL" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/starboard) @@ -3307,13 +3306,13 @@ }, /obj/structure/chair/comfy/teal, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/wood, /area/ship/crew/dorm) "LN" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/gibber, /obj/effect/turf_decal/corner/white{ @@ -3445,7 +3444,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "sgwindowshut"; - name = "external shutters" + name = "External Shutters" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -3594,7 +3593,7 @@ "OT" = ( /obj/structure/table/glass, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/reagentgrinder{ pixel_y = 6 @@ -3649,7 +3648,7 @@ /area/ship/cargo) "PN" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/carpet/nanoweave/red, @@ -3700,7 +3699,7 @@ icon_state = "0-4" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ship/engineering/engine) @@ -3710,7 +3709,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters/preopen{ id = "sgwindowshut"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/cargo) @@ -3763,7 +3762,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner_techfloor_grid{ dir = 9 @@ -3799,7 +3798,7 @@ "RI" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/closet/firecloset/full, /turf/open/floor/plating, @@ -4402,7 +4401,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/nanoweave/orange, /area/ship/hallway/aft) diff --git a/_maps/shuttles/shiptest/solgov_liberty.dmm b/_maps/shuttles/shiptest/solgov_liberty.dmm index 334af1220f87..c494520ace31 100644 --- a/_maps/shuttles/shiptest/solgov_liberty.dmm +++ b/_maps/shuttles/shiptest/solgov_liberty.dmm @@ -161,7 +161,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) @@ -211,7 +211,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "pirateshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -357,7 +357,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "pirateshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 @@ -524,7 +524,7 @@ /obj/machinery/button/door{ id = "piratecargo"; name = "Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = -10 }, /turf/open/floor/mineral/plastitanium, @@ -533,7 +533,7 @@ /obj/effect/turf_decal/industrial/warning/cee, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/clothing/suit/space/hardsuit/solgov, /obj/item/clothing/mask/gas/sechailer/swat/spacepol, @@ -583,7 +583,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/item/clothing/head/helmet/solgov, /obj/item/clothing/head/helmet/solgov, @@ -644,7 +644,7 @@ /area/ship/crew) "ui" = ( /obj/machinery/door/airlock/hatch{ - name = "external access hatch" + name = "External Access Hatch" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -675,7 +675,7 @@ pixel_y = 28 }, /obj/machinery/advanced_airlock_controller{ - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/warning{ dir = 4 @@ -684,7 +684,7 @@ /area/ship/crew) "vo" = ( /obj/machinery/door/airlock/hatch{ - name = "external access hatch" + name = "External Access Hatch" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -764,7 +764,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "pirateshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -1053,7 +1053,7 @@ }, /obj/structure/curtain/bounty, /obj/machinery/computer/cryopod{ - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/crew) @@ -1062,7 +1062,7 @@ /obj/structure/curtain/bounty, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/firealarm{ dir = 4; @@ -1257,7 +1257,7 @@ }, /obj/machinery/flasher{ id = "Cell 1"; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/red/diagonal, /turf/open/floor/plasteel/dark, @@ -1710,7 +1710,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/cable{ icon_state = "1-8" @@ -1721,7 +1721,7 @@ /obj/effect/turf_decal/industrial/outline/yellow, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/telecomms/allinone, /turf/open/floor/plasteel/dark, @@ -1811,7 +1811,7 @@ /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ id = "pirateshutters"; - name = "blast shutters" + name = "Blast Shutters" }, /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, @@ -1829,7 +1829,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "2-4" @@ -1877,7 +1877,7 @@ /obj/machinery/button/door{ id = "piratecargo"; name = "Blast Door Control"; - pixel_x = 24; + pixel_x = 25; pixel_y = -10 }, /turf/open/floor/mineral/plastitanium, diff --git a/_maps/shuttles/shiptest/starfury_class.dmm b/_maps/shuttles/shiptest/starfury_class.dmm index 70cfb5039545..94830b918330 100644 --- a/_maps/shuttles/shiptest/starfury_class.dmm +++ b/_maps/shuttles/shiptest/starfury_class.dmm @@ -105,7 +105,7 @@ id = "starfurybc_massleft" }, /obj/machinery/door/window{ - name = "cannon access"; + name = "Cannon Access"; req_access_txt = "150" }, /turf/open/floor/plating, @@ -218,7 +218,7 @@ /area/ship/medical/surgery) "cp" = ( /obj/machinery/door/window{ - name = "cannon access"; + name = "Cannon Access"; req_access_txt = "150" }, /obj/machinery/mass_driver{ @@ -2362,7 +2362,7 @@ "uY" = ( /obj/machinery/door/poddoor{ id = "sbccargo"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /obj/structure/fans/tiny, /turf/open/floor/plating, @@ -2991,7 +2991,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor{ id = "windows"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/crew/canteen) @@ -3175,7 +3175,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor{ id = "bridgedoors"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/bridge) @@ -3271,7 +3271,7 @@ id = "starfurybcsupermatter"; name = "Radiation Shutters"; pixel_x = 6; - pixel_y = 24; + pixel_y = 25; req_access_txt = "150" }, /obj/machinery/button/door{ @@ -3279,7 +3279,7 @@ name = "Supermatter Bolt Control"; normaldoorcontrol = 1; pixel_x = -6; - pixel_y = 24; + pixel_y = 25; req_access_txt = "150"; specialfunctions = 4 }, @@ -3612,7 +3612,7 @@ /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id = "sbccargo"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/cargo) @@ -4282,7 +4282,7 @@ /obj/machinery/power/apc/syndicate{ auto_name = 1; dir = 1; - pixel_y = 28 + pixel_y = 25 }, /obj/machinery/power/terminal{ dir = 1 @@ -4362,7 +4362,7 @@ /obj/machinery/button/door{ dir = 4; id = "windows"; - name = "window shutters"; + name = "Window Shutters"; pixel_x = -22; pixel_y = -1 }, @@ -4559,12 +4559,12 @@ /obj/machinery/door/firedoor, /obj/machinery/door/window{ dir = 8; - name = "security desk"; + name = "Security Desk"; req_access_txt = "150" }, /obj/machinery/door/window{ dir = 4; - name = "security desk"; + name = "Security Desk"; req_access_txt = "150;3" }, /turf/open/floor/carpet/nanoweave/red, @@ -5019,7 +5019,7 @@ /obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, /obj/machinery/door/poddoor{ id = "windows"; - name = "cargo bay blast door" + name = "Cargo Bay Blast Door" }, /turf/open/floor/plating, /area/ship/crew/dorm) @@ -5533,7 +5533,7 @@ /obj/machinery/power/apc/syndicate{ auto_name = 1; dir = 1; - pixel_y = 28 + pixel_y = 25 }, /obj/machinery/power/terminal{ dir = 1 diff --git a/_maps/shuttles/shiptest/synapsev2.dmm b/_maps/shuttles/shiptest/synapsev2.dmm index 03fd7e821db0..e98485e79cd4 100644 --- a/_maps/shuttles/shiptest/synapsev2.dmm +++ b/_maps/shuttles/shiptest/synapsev2.dmm @@ -3295,7 +3295,7 @@ "VQ" = ( /obj/machinery/light, /obj/structure/mirror{ - pixel_x = -24 + pixel_x = -25 }, /obj/structure/sink{ dir = 4; diff --git a/_maps/shuttles/shiptest/syndicate_geneva.dmm b/_maps/shuttles/shiptest/syndicate_geneva.dmm index 5fca2d46493b..b9768dd0a538 100644 --- a/_maps/shuttles/shiptest/syndicate_geneva.dmm +++ b/_maps/shuttles/shiptest/syndicate_geneva.dmm @@ -96,7 +96,7 @@ /obj/structure/table/reinforced, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/item/areaeditor/shuttle, /obj/item/stack/spacecash/c1000, @@ -130,10 +130,6 @@ dir = 1 }, /obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, /turf/open/floor/carpet/nanoweave/red, /area/ship/bridge) "cQ" = ( @@ -174,7 +170,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/item/vending_refill/autodrobe, /obj/effect/turf_decal/syndicateemblem/top/left, @@ -206,7 +202,7 @@ /obj/machinery/power/apc/auto_name/north, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/nanoweave/red, /area/ship/crew/dorm) @@ -620,7 +616,7 @@ /obj/item/lighter, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt, /obj/item/seeds/replicapod, @@ -763,7 +759,7 @@ dir = 1 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -1435,7 +1431,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/engineering) @@ -1724,7 +1720,7 @@ }, /obj/machinery/duct, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/white, /area/ship/medical/surgery) diff --git a/_maps/shuttles/shiptest/syndicate_luxembourg.dmm b/_maps/shuttles/shiptest/syndicate_luxembourg.dmm index 665c9473868f..63764ebf7d0f 100644 --- a/_maps/shuttles/shiptest/syndicate_luxembourg.dmm +++ b/_maps/shuttles/shiptest/syndicate_luxembourg.dmm @@ -350,7 +350,7 @@ /obj/machinery/button/door{ id = "cargodoors"; pixel_x = 8; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/cargo) @@ -446,7 +446,7 @@ /area/ship/bridge) "iv" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/mineral/plastitanium, /area/ship/bridge) @@ -1143,7 +1143,7 @@ /obj/item/bedsheet/syndie, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/carpet/donk, /area/ship/crew/dorm) @@ -1359,7 +1359,7 @@ /obj/item/storage/toolbox/syndicate, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plating, /area/ship/engineering) @@ -1615,7 +1615,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/medical) @@ -1704,7 +1704,7 @@ /obj/structure/closet/crate/wooden/toy, /obj/item/ammo_box/magazine/toy/smgm45/riot, /obj/item/ammo_box/magazine/toy/smgm45/riot, -/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot, +/obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot, /obj/item/soap/syndie, /obj/item/soap/syndie, /obj/item/soap/syndie, @@ -1744,7 +1744,7 @@ /area/ship/bridge) "NW" = ( /obj/structure/mirror{ - pixel_x = -24 + pixel_x = -25 }, /obj/structure/sink{ dir = 4; @@ -1840,13 +1840,13 @@ /obj/machinery/button/door{ id = "syndiefuck"; name = "Loading Shutters Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /obj/machinery/button/door{ id = "warehouse"; name = "Warehouse Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /obj/machinery/button/door{ @@ -2157,7 +2157,7 @@ /obj/item/banner/cargo, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/mineral/plastitanium, /area/ship/bridge) @@ -2293,7 +2293,7 @@ }, /obj/machinery/button/door{ id = "cargodoors"; - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark, /area/ship/cargo) diff --git a/_maps/shuttles/shiptest/tour_cruise_ship.dmm b/_maps/shuttles/shiptest/tour_cruise_ship.dmm index 5ea9ca0294c9..f2976346f997 100644 --- a/_maps/shuttles/shiptest/tour_cruise_ship.dmm +++ b/_maps/shuttles/shiptest/tour_cruise_ship.dmm @@ -36,7 +36,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/item/radio/intercom{ pixel_y = 22 @@ -60,7 +60,7 @@ /area/ship/hallway/aft) "as" = ( /obj/machinery/door/airlock/wood{ - name = "cabin 1" + name = "Cabin 1" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -160,7 +160,7 @@ dir = 1 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/wood, /area/ship/crew/dorm) @@ -211,7 +211,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 @@ -381,13 +381,13 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "cruisebridgewindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/bridge) "bX" = ( /obj/machinery/door/airlock/wood{ - name = "cabin 2" + name = "Cabin 2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -431,7 +431,7 @@ /area/ship/crew/office) "cx" = ( /obj/machinery/door/airlock/titanium{ - name = "cabin 6" + name = "Cabin 6" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -458,14 +458,14 @@ dir = 4; id = "cruisewindows"; name = "Window Lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = -8 }, /obj/machinery/button/door{ dir = 4; id = "cruisebridge"; name = "Bridge Lockdown"; - pixel_x = -24; + pixel_x = -25; pixel_y = 8 }, /obj/machinery/button/door{ @@ -860,7 +860,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "cruisebridgewindows"; - name = "external shutters" + name = "External Shutters" }, /turf/open/floor/plating, /area/ship/medical) @@ -1125,7 +1125,7 @@ /obj/machinery/atmospherics/pipe/layer_manifold, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/industrial/radiation/corner{ dir = 1 @@ -1245,7 +1245,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/light_switch{ - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -1581,7 +1581,7 @@ "jV" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/carpet/black, /area/ship/crew/library) @@ -1786,7 +1786,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "cruisebridgewindows"; - name = "external shutters" + name = "External Shutters" }, /obj/structure/cable{ icon_state = "0-2" @@ -2197,7 +2197,7 @@ "ou" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/white/border{ dir = 10 @@ -2206,7 +2206,7 @@ /area/ship/hallway/port) "oz" = ( /obj/machinery/door/airlock/titanium{ - name = "cabin 5" + name = "Cabin 5" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -2504,7 +2504,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/siding/red{ dir = 8 @@ -2625,7 +2625,7 @@ /obj/effect/turf_decal/corner/white/diagonal, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) @@ -2765,7 +2765,7 @@ "rQ" = ( /obj/structure/chair/office, /obj/machinery/vending/wallmed{ - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 @@ -2838,7 +2838,7 @@ "ss" = ( /obj/structure/closet/crate/wooden/toy, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/carpet/nanoweave/purple, /area/ship/crew/canteen) @@ -2931,7 +2931,7 @@ "sT" = ( /obj/machinery/computer/arcade/orion_trail, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/ship/storage) @@ -3158,7 +3158,7 @@ dir = 6 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -3169,7 +3169,7 @@ "uO" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "1-2" @@ -3187,7 +3187,7 @@ dir = 4 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 @@ -3200,7 +3200,7 @@ "uS" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -3385,7 +3385,7 @@ /area/ship/hallway/port) "wd" = ( /obj/machinery/door/airlock/titanium{ - name = "cabin 7" + name = "Cabin 7" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -3626,7 +3626,7 @@ /area/ship/engineering) "xJ" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -4308,7 +4308,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "cruisebridgewindows"; - name = "external shutters" + name = "External Shutters" }, /obj/structure/cable{ icon_state = "0-8" @@ -4344,7 +4344,7 @@ "Cy" = ( /obj/item/kirbyplants/photosynthetic, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/carpet/black, /area/ship/crew/office) @@ -4388,7 +4388,7 @@ dir = 4; id = "cruiseeng"; name = "Engineering Lockdown"; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/computer/atmos_control/tank/air_tank{ dir = 4 @@ -4609,7 +4609,7 @@ /area/ship/hallway/starboard) "El" = ( /obj/machinery/door/airlock/wood{ - name = "cabin 3" + name = "Cabin 3" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -4700,7 +4700,7 @@ /area/ship/crew/library) "EM" = ( /obj/machinery/advanced_airlock_controller{ - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/light{ dir = 8 @@ -4880,7 +4880,7 @@ /obj/item/pen/fountain, /obj/item/kitchen/knife/letter_opener, /obj/machinery/light_switch{ - pixel_x = -24 + pixel_x = -25 }, /obj/item/pen, /turf/open/floor/carpet/black, @@ -5669,8 +5669,8 @@ /area/ship/hallway/aft) "LQ" = ( /obj/structure/closet/crate/secure/weapon, -/obj/item/gun/ballistic/automatic/wt550, -/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, +/obj/item/gun/ballistic/automatic/smg/wt550, /obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9, /obj/machinery/light{ @@ -5727,7 +5727,7 @@ "Mf" = ( /obj/machinery/biogenerator, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/firealarm{ dir = 8; @@ -5865,13 +5865,13 @@ id = "cruise_entrance2"; name = "blastdoor two"; pixel_x = 28; - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/button/door{ id = "cruise_checkpoint"; name = "checkpoint lockdown"; pixel_x = -28; - pixel_y = 24 + pixel_y = 25 }, /obj/structure/chair/office{ dir = 8 @@ -6086,7 +6086,7 @@ icon_state = "4-8" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 @@ -6220,7 +6220,7 @@ "PY" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "1-2" @@ -6527,7 +6527,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor/shutters/preopen{ id = "cruisebridgewindows"; - name = "external shutters" + name = "External Shutters" }, /obj/structure/cable{ icon_state = "1-8" @@ -6797,7 +6797,7 @@ "Tr" = ( /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/white/border{ dir = 4 @@ -7286,7 +7286,7 @@ "Wj" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, @@ -7465,7 +7465,7 @@ /obj/item/reagent_containers/glass/bucket, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/item/holosign_creator/janibarrier, /obj/machinery/power/apc/auto_name/north, @@ -7508,7 +7508,7 @@ /area/ship/hallway/central) "XM" = ( /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/table/wood, /obj/item/storage/bag/easterbasket{ @@ -7659,7 +7659,7 @@ "Zb" = ( /obj/machinery/door/poddoor{ id = "cruise_disposals"; - name = "disposals blast door" + name = "Disposals Blast Door" }, /obj/machinery/conveyor{ id = "cruise_conveyor" diff --git a/_maps/shuttles/shiptest/whiteship_box.dmm b/_maps/shuttles/shiptest/whiteship_box.dmm index 671ab7365e1f..5ac7099320c4 100644 --- a/_maps/shuttles/shiptest/whiteship_box.dmm +++ b/_maps/shuttles/shiptest/whiteship_box.dmm @@ -224,7 +224,7 @@ "aM" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -290,7 +290,7 @@ "aV" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small/built, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -356,8 +356,8 @@ dir = 1 }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = -24 + pixel_x = -25; + pixel_y = -25 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/plasteel, @@ -459,7 +459,7 @@ "bo" = ( /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/cable{ icon_state = "5-8" @@ -475,7 +475,7 @@ dir = 4 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small/built{ dir = 1 @@ -596,7 +596,7 @@ }, /obj/effect/turf_decal/corner/neutral, /obj/machinery/door/window/southleft{ - name = "equipment storage" + name = "Equipment Storage" }, /obj/structure/window/reinforced/spawner/west, /obj/item/reagent_containers/glass/bottle/formaldehyde{ @@ -878,13 +878,13 @@ id = "whiteship_windows"; name = "Windows Blast Door Control"; pixel_x = -5; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/button/door{ id = "whiteship_bridge"; name = "Bridge Blast Door Control"; pixel_x = 5; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/button/door{ id = "emergencybay_blastdoors"; @@ -948,7 +948,7 @@ /area/ship/engineering) "cs" = ( /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ @@ -1147,7 +1147,7 @@ }, /obj/machinery/vending/wardrobe/medi_wardrobe, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/dark, /area/ship/crew) @@ -1172,7 +1172,7 @@ icon_state = "0-4" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plasteel/freezer, /area/ship/crew) @@ -1229,8 +1229,8 @@ dir = 8 }, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 1 @@ -1258,7 +1258,7 @@ /area/ship/crew) "cX" = ( /obj/machinery/computer/cryopod{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/neutral{ dir = 8 @@ -1277,7 +1277,7 @@ /obj/machinery/chem_master, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -1476,15 +1476,15 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "0-2" }, /obj/machinery/power/apc/auto_name/north, /obj/machinery/light_switch{ - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /turf/open/floor/carpet/nanoweave/blue, /area/ship/bridge) @@ -1623,7 +1623,7 @@ pixel_y = 4 }, /obj/machinery/light_switch{ - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 4 @@ -1666,7 +1666,7 @@ /obj/machinery/iv_drip, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/medical) @@ -1755,7 +1755,7 @@ /obj/structure/table, /obj/machinery/microwave, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/wood, /area/ship/crew) @@ -1833,8 +1833,8 @@ /obj/machinery/button/door{ id = "emergencybay_blastdoors"; name = "Emergency Bay Blast Door Control"; - pixel_x = 24; - pixel_y = 24 + pixel_x = 25; + pixel_y = 25 }, /turf/open/floor/plasteel/white, /area/ship/cargo) @@ -2039,7 +2039,7 @@ /obj/machinery/iv_drip, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/medical) diff --git a/_maps/shuttles/shiptest/whiteship_delta.dmm b/_maps/shuttles/shiptest/whiteship_delta.dmm index ac2d4a6b58fc..3773d0c75ab1 100644 --- a/_maps/shuttles/shiptest/whiteship_delta.dmm +++ b/_maps/shuttles/shiptest/whiteship_delta.dmm @@ -96,7 +96,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/item/paicard, /turf/open/floor/wood, @@ -109,7 +109,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/cryopod{ dir = 8 @@ -199,7 +199,7 @@ "au" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/crate/bin, /obj/effect/turf_decal/corner/bar, @@ -724,7 +724,7 @@ "bk" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/industrial/outline/yellow, @@ -950,7 +950,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -1141,7 +1141,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plating, /area/ship/engineering) @@ -1155,7 +1155,7 @@ /obj/effect/decal/cleanable/cobweb, /obj/machinery/firealarm{ dir = 8; - pixel_x = -24 + pixel_x = -25 }, /obj/item/stack/spacecash/c200{ pixel_x = 7; @@ -1340,7 +1340,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/blue{ dir = 1 @@ -1426,13 +1426,13 @@ /obj/machinery/button/door{ id = "whiteship_windows"; name = "Windows Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /obj/machinery/button/door{ id = "whiteship_bridge"; name = "Bridge Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1456,7 +1456,7 @@ "cw" = ( /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/closet/secure_closet/freezer{ @@ -1550,7 +1550,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/light/small/built{ dir = 4 @@ -1618,7 +1618,7 @@ /obj/item/extinguisher, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/crate/internals, /obj/effect/turf_decal/box/corners{ @@ -1633,7 +1633,7 @@ "cN" = ( /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/industrial/outline/yellow, @@ -1747,7 +1747,7 @@ }, /obj/item/radio/off, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/dark, @@ -1882,7 +1882,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -1917,7 +1917,7 @@ icon_state = "4-8" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -2172,7 +2172,7 @@ "dz" = ( /obj/machinery/door/poddoor{ id = "cargobaydoors"; - name = "cargo bay door" + name = "Cargo Bay Door" }, /obj/structure/fans/tiny, /turf/open/floor/plating, @@ -2450,7 +2450,7 @@ /obj/machinery/button/door{ id = "cargobaydoors"; name = "Cargo Bay Door Control"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/box/corners{ dir = 1 @@ -2544,7 +2544,7 @@ }, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/light/small/built{ dir = 4 @@ -2637,11 +2637,11 @@ icon_state = "4-8" }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 4 @@ -2810,7 +2810,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 @@ -2935,7 +2935,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/structure/table, /obj/machinery/cell_charger, @@ -3008,7 +3008,7 @@ /obj/machinery/button/door{ id = "cargobaydoors"; name = "Cargo Bay Door Control"; - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/warning{ dir = 8 diff --git a/_maps/shuttles/shiptest/whiteship_kilo.dmm b/_maps/shuttles/shiptest/whiteship_kilo.dmm index 1dfaa9305181..3739dbcc4316 100644 --- a/_maps/shuttles/shiptest/whiteship_kilo.dmm +++ b/_maps/shuttles/shiptest/whiteship_kilo.dmm @@ -184,7 +184,7 @@ id = "ntms_exterior"; name = "NTMS-037 External Lock"; normaldoorcontrol = 1; - pixel_x = -24; + pixel_x = -25; pixel_y = -8; specialfunctions = 4 }, @@ -225,7 +225,7 @@ /obj/effect/turf_decal/industrial/outline, /obj/machinery/door/poddoor{ id = "whiteship_port"; - name = "NTMS-037 Bay Blast door" + name = "NTMS-037 Bay Blast Door" }, /obj/machinery/conveyor{ id = "NTMSLoad2"; @@ -282,8 +282,8 @@ /obj/machinery/button/door{ id = "whiteship_port"; name = "Cargo Bay Control"; - pixel_x = -24; - pixel_y = 24 + pixel_x = -25; + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -343,7 +343,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ id = "whiteship_bridge"; - name = "Cockpit Emergency Blast door" + name = "Garage DoorCockpit Emergency Blast Door" }, /obj/machinery/door/firedoor/border_only{ dir = 4 @@ -514,7 +514,7 @@ /obj/effect/turf_decal/industrial/hatch/yellow, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/suit_storage_unit/independent/mining/eva, /turf/open/floor/mineral/plastitanium, @@ -541,7 +541,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/item/circuitboard/machine/ore_redemption, /turf/open/floor/plating, @@ -646,7 +646,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, @@ -680,7 +680,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ id = "whiteship_windows"; - name = "Exterior Window Blast door" + name = "Exterior Window Blast Door" }, /obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -690,7 +690,7 @@ /obj/effect/turf_decal/industrial/warning, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light/small{ dir = 1 @@ -713,7 +713,7 @@ /obj/effect/turf_decal/industrial/warning, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/light/small{ dir = 1 @@ -914,7 +914,7 @@ /obj/effect/turf_decal/industrial/outline/yellow, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/frame/computer{ dir = 4 @@ -1087,7 +1087,7 @@ /obj/effect/turf_decal/industrial/outline, /obj/machinery/door/poddoor{ id = "whiteship_port"; - name = "NTMS-037 Bay Blast door" + name = "NTMS-037 Bay Blast Door" }, /obj/machinery/conveyor{ dir = 1; @@ -1306,7 +1306,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ id = "whiteship_bridge"; - name = "Cockpit Emergency Blast door" + name = "Garage DoorCockpit Emergency Blast Door" }, /obj/machinery/door/firedoor/border_only{ dir = 1 @@ -1515,7 +1515,7 @@ "AS" = ( /obj/machinery/door/poddoor{ id = "whiteship_port"; - name = "NTMS-037 Bay Blast door" + name = "NTMS-037 Bay Blast Door" }, /obj/machinery/conveyor{ id = "NTMSLoad2"; @@ -1532,7 +1532,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ id = "whiteship_bridge"; - name = "Cockpit Emergency Blast door" + name = "Garage DoorCockpit Emergency Blast Door" }, /turf/open/floor/plating, /area/ship/bridge) @@ -1540,7 +1540,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ id = "whiteship_bridge"; - name = "Cockpit Emergency Blast door" + name = "Garage DoorCockpit Emergency Blast Door" }, /obj/machinery/door/firedoor/border_only{ dir = 4 @@ -1638,7 +1638,7 @@ /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -1766,7 +1766,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ id = "whiteship_windows"; - name = "Exterior Window Blast door" + name = "Exterior Window Blast Door" }, /obj/machinery/door/firedoor/border_only{ dir = 1 @@ -1786,7 +1786,7 @@ "Ke" = ( /obj/machinery/door/poddoor{ id = "whiteship_port"; - name = "NTMS-037 Bay Blast door" + name = "NTMS-037 Bay Blast Door" }, /obj/machinery/conveyor{ dir = 1; @@ -1839,7 +1839,7 @@ pixel_y = 8 }, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/carpet, /area/ship/crew) @@ -1847,7 +1847,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ id = "whiteship_windows"; - name = "Exterior Window Blast door" + name = "Exterior Window Blast Door" }, /obj/machinery/door/firedoor/border_only, /turf/open/floor/plating, @@ -1939,7 +1939,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/greenglow, /obj/item/gun/energy/e_gun/mini, @@ -2070,7 +2070,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ id = "whiteship_windows"; - name = "Exterior Window Blast door" + name = "Exterior Window Blast Door" }, /obj/machinery/door/firedoor/border_only{ dir = 1 @@ -2090,7 +2090,7 @@ /obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ id = "whiteship_windows"; - name = "Exterior Window Blast door" + name = "Exterior Window Blast Door" }, /obj/machinery/door/firedoor/border_only, /turf/open/floor/plating, @@ -2282,7 +2282,7 @@ }, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/mineral/plastitanium, /area/ship/crew/canteen) diff --git a/_maps/shuttles/shiptest/whiteship_meta.dmm b/_maps/shuttles/shiptest/whiteship_meta.dmm index a6c48bcf6804..854da506637b 100644 --- a/_maps/shuttles/shiptest/whiteship_meta.dmm +++ b/_maps/shuttles/shiptest/whiteship_meta.dmm @@ -73,7 +73,7 @@ /obj/machinery/button/door{ id = "whiteship_port"; name = "Port Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = 5 }, /turf/open/floor/plasteel/dark, @@ -134,7 +134,7 @@ /obj/machinery/button/door{ id = "whiteship_port"; name = "Port Blast Door Control"; - pixel_x = 24; + pixel_x = 25; pixel_y = 5 }, /turf/open/floor/plasteel/dark, @@ -149,7 +149,7 @@ }, /obj/machinery/advanced_airlock_controller{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/layer2, /turf/open/floor/plating, @@ -157,7 +157,7 @@ "au" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/secure_closet/personal, /obj/effect/decal/cleanable/dirt/dust, @@ -633,7 +633,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "2-8" @@ -716,7 +716,7 @@ /obj/machinery/light/small/built, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" @@ -750,7 +750,7 @@ "bc" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ @@ -830,7 +830,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/industrial/outline/yellow, /obj/structure/table, @@ -847,7 +847,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/light/small/built, /obj/effect/decal/cleanable/blood, @@ -1072,7 +1072,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/ship/cargo) @@ -1353,7 +1353,7 @@ "bV" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/closet/secure_closet/personal, /obj/effect/decal/cleanable/dirt/dust, @@ -1433,7 +1433,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -1478,7 +1478,7 @@ "ce" = ( /obj/structure/table, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/item/folder/blue{ @@ -1550,7 +1550,7 @@ dir = 1 }, /obj/machinery/advanced_airlock_controller{ - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/components/unary/vent_pump/layer2{ dir = 4 @@ -1827,7 +1827,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/turf_decal/corner/neutral{ dir = 1 @@ -1912,7 +1912,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -1948,7 +1948,7 @@ /obj/structure/table, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/cell_charger, @@ -1974,13 +1974,13 @@ id = "whiteship_bridge"; name = "Bridge Blast Door Control"; pixel_x = 5; - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/button/door{ id = "whiteship_windows"; name = "Windows Blast Door Control"; pixel_x = -5; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/turf_decal/corner/blue, /obj/machinery/button/door{ @@ -2153,7 +2153,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/structure/cable{ icon_state = "1-2" @@ -2192,7 +2192,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/firealarm{ dir = 4; - pixel_x = 24 + pixel_x = 25 }, /turf/open/floor/plasteel/dark, /area/ship/cargo) @@ -2227,7 +2227,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/processor, @@ -2262,7 +2262,7 @@ icon_state = "2-8" }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/industrial/outline/yellow, /obj/structure/table, @@ -2275,7 +2275,7 @@ "cZ" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small/built{ dir = 1 @@ -2434,7 +2434,7 @@ /obj/machinery/hydroponics/constructable, /obj/machinery/airalarm/all_access{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/effect/turf_decal/corner/green, /obj/effect/turf_decal/corner/green{ @@ -2601,7 +2601,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/airalarm/all_access{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ @@ -2902,7 +2902,7 @@ /obj/machinery/button/door{ id = "whiteship_starboard"; name = "Starboard Blast Door Control"; - pixel_x = -24; + pixel_x = -25; pixel_y = -5 }, /turf/open/floor/plasteel/dark, @@ -2921,7 +2921,7 @@ /obj/machinery/button/door{ id = "whiteship_starboard"; name = "Starboard Blast Door Control"; - pixel_x = 24; + pixel_x = 25; pixel_y = -5 }, /turf/open/floor/plasteel/dark, @@ -2943,7 +2943,7 @@ }, /obj/machinery/advanced_airlock_controller{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/layer2{ dir = 1 diff --git a/_maps/shuttles/shiptest/whiteship_midway.dmm b/_maps/shuttles/shiptest/whiteship_midway.dmm index a57e89e9b5f3..06341eb4594e 100644 --- a/_maps/shuttles/shiptest/whiteship_midway.dmm +++ b/_maps/shuttles/shiptest/whiteship_midway.dmm @@ -330,7 +330,7 @@ }, /obj/machinery/advanced_airlock_controller{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/binary/dp_vent_pump{ dir = 8 @@ -436,7 +436,7 @@ "iF" = ( /obj/effect/decal/cleanable/blood, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "4-8" @@ -943,7 +943,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/suit_storage_unit/independent/engineering, /turf/open/floor/plasteel/tech, @@ -1093,7 +1093,7 @@ dir = 8 }, /obj/machinery/advanced_airlock_controller{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/plating, /area/ship/engineering) @@ -1141,7 +1141,7 @@ dir = 5 }, /obj/machinery/firealarm{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/suit_storage_unit/atmos, @@ -1161,7 +1161,7 @@ icon_state = "0-4" }, /obj/machinery/power/apc/auto_name/south{ - pixel_y = -24 + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/green{ dir = 9 @@ -1272,7 +1272,7 @@ }, /obj/machinery/firealarm{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/plating, @@ -1317,7 +1317,7 @@ icon_state = "0-8" }, /obj/machinery/power/apc/auto_name/south{ - pixel_y = -24 + pixel_y = -25 }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/corner/brown{ @@ -1901,7 +1901,7 @@ icon_state = "0-4" }, /obj/machinery/power/apc/auto_name/west{ - pixel_x = -24 + pixel_x = -25 }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -1993,7 +1993,7 @@ /obj/structure/table, /obj/structure/cable, /obj/machinery/power/apc/auto_name/west{ - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, @@ -2117,7 +2117,7 @@ icon_state = "0-8" }, /obj/machinery/power/apc/auto_name/north{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/corner/bottlegreen{ dir = 5 @@ -2292,7 +2292,7 @@ /area/ship/bridge) "OW" = ( /obj/machinery/door/airlock/atmos{ - name = "atmospherics Tank" + name = "Atmospherics Tank" }, /obj/structure/cable{ icon_state = "1-2" @@ -2458,7 +2458,7 @@ /area/ship/cargo) "QM" = ( /obj/machinery/door/airlock/atmos{ - name = "atmospherics Tank" + name = "Atmospherics Tank" }, /obj/structure/cable{ icon_state = "1-2" @@ -2546,7 +2546,7 @@ }, /obj/machinery/advanced_airlock_controller{ dir = 8; - pixel_x = 24 + pixel_x = 25 }, /obj/machinery/atmospherics/components/binary/dp_vent_pump{ dir = 8 @@ -2818,7 +2818,7 @@ /area/ship/bridge) "UP" = ( /obj/machinery/advanced_airlock_controller{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/atmospherics/components/binary/dp_vent_pump{ dir = 8 @@ -2906,7 +2906,7 @@ /area/ship/crew) "VN" = ( /obj/machinery/power/apc/auto_name/north{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "0-4" @@ -3087,7 +3087,7 @@ "YK" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /obj/item/defibrillator/loaded, /obj/structure/table, diff --git a/_maps/shuttles/shiptest/whiteship_pubby.dmm b/_maps/shuttles/shiptest/whiteship_pubby.dmm index 15008549eff8..d8ee2e13dc34 100644 --- a/_maps/shuttles/shiptest/whiteship_pubby.dmm +++ b/_maps/shuttles/shiptest/whiteship_pubby.dmm @@ -51,7 +51,7 @@ "bh" = ( /obj/machinery/airalarm/directional{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /obj/structure/table/reinforced, /obj/item/laser_pointer, @@ -200,7 +200,7 @@ /obj/machinery/button/door{ id = "whiteshipubbyEngines"; name = "Engine Lockdown Control"; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plating, /area/ship/engineering) @@ -623,7 +623,7 @@ "mW" = ( /obj/structure/table/reinforced, /obj/machinery/power/apc/auto_name/north{ - pixel_y = 24 + pixel_y = 25 }, /obj/structure/cable{ icon_state = "0-2" @@ -832,7 +832,7 @@ /obj/item/gun/energy/kinetic_accelerator, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/office) @@ -1041,7 +1041,7 @@ /obj/machinery/button/door{ id = "pubbywspodsw"; name = "Pod Door Control"; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light{ dir = 8 @@ -1354,7 +1354,7 @@ /obj/machinery/button/door{ id = "pubbywspodnw"; name = "Pod Door Control"; - pixel_x = -24 + pixel_x = -25 }, /obj/machinery/light{ dir = 8 @@ -1561,7 +1561,7 @@ }, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/stairs{ dir = 8 @@ -1831,7 +1831,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/firealarm{ dir = 1; - pixel_y = -24 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/central) @@ -2107,7 +2107,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/advanced_airlock_controller{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/cargo) @@ -2321,7 +2321,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/advanced_airlock_controller{ dir = 4; - pixel_x = -24 + pixel_x = -25 }, /turf/open/floor/plasteel/dark, /area/ship/cargo) diff --git a/_maps/shuttles/shiptest/wright.dmm b/_maps/shuttles/shiptest/wright.dmm index 86cbd92a2b6a..3eec27f8d953 100644 --- a/_maps/shuttles/shiptest/wright.dmm +++ b/_maps/shuttles/shiptest/wright.dmm @@ -1689,7 +1689,7 @@ /obj/item/clothing/suit/space/orange, /obj/item/clothing/head/helmet/space/orange, /obj/machinery/advanced_airlock_controller{ - pixel_x = 24 + pixel_x = 25 }, /obj/structure/window/reinforced, /turf/open/floor/plating, diff --git a/_maps/templates/holodeck_lounge.dmm b/_maps/templates/holodeck_lounge.dmm index 6ae91928f5ab..450094ab47f1 100644 --- a/_maps/templates/holodeck_lounge.dmm +++ b/_maps/templates/holodeck_lounge.dmm @@ -247,7 +247,6 @@ /area/template_noop) "P" = ( /obj/structure/table/wood/poker, -/obj/structure/table/wood/poker, /obj/effect/holodeck_effect/cards, /turf/open/floor/holofloor{ dir = 9; diff --git a/_maps/templates/holodeck_skatepark.dmm b/_maps/templates/holodeck_skatepark.dmm index 16f18b71509e..92a468db9df2 100644 --- a/_maps/templates/holodeck_skatepark.dmm +++ b/_maps/templates/holodeck_skatepark.dmm @@ -4,7 +4,6 @@ /area/template_noop) "t" = ( /obj/structure/table, -/obj/structure/table, /turf/open/floor/holofloor/plating, /area/template_noop) "H" = ( diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm index 729d634c6efc..05c7affdd216 100644 --- a/_maps/templates/shelter_3.dmm +++ b/_maps/templates/shelter_3.dmm @@ -203,7 +203,7 @@ /area/survivalpod) "G" = ( /obj/structure/urinal{ - pixel_y = 24 + pixel_y = 25 }, /turf/open/floor/pod/light, /area/survivalpod) diff --git a/check_regex.yaml b/check_regex.yaml index 5746c487ad27..bbd70b46641c 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -21,24 +21,34 @@ # standards: - - exactly: [0, 'mangled characters', '[\u0000\uFFFF\uFFFD]'] - - exactly: [8, 'escapes', '\\\\(red|blue|green|black|b|i[^mc])'] - - exactly: [9, 'Del()s', '\WDel\('] + - exactly: [0, "mangled characters", '[\u0000\uFFFF\uFFFD]'] + - exactly: [8, "escapes", '\\\\(red|blue|green|black|b|i[^mc])'] + - exactly: [9, "Del()s", '\WDel\('] - - exactly: [1, '/atom text paths', '"/atom'] - - exactly: [1, '/area text paths', '"/area'] - - exactly: [17, '/datum text paths', '"/datum'] - - exactly: [4, '/mob text paths', '"/mob'] - - exactly: [54, '/obj text paths', '"/obj'] - - exactly: [0, '/turf text paths', '"/turf'] - - exactly: [118, 'text2path uses', 'text2path'] + - exactly: [1, "/atom text paths", '"/atom'] + - exactly: [1, "/area text paths", '"/area'] + - exactly: [17, "/datum text paths", '"/datum'] + - exactly: [4, "/mob text paths", '"/mob'] + - exactly: [53, "/obj text paths", '"/obj'] + - exactly: [0, "/turf text paths", '"/turf'] + - exactly: [120, "text2path uses", "text2path"] - - exactly: [22, 'world<< uses', 'world[ \t]*<<'] - - exactly: [0, 'world.log<< uses', 'world.log[ \t]*<<'] + - exactly: [18, "world<< uses", 'world[ \t]*<<'] + - exactly: [0, "world.log<< uses", 'world.log[ \t]*<<'] - - exactly: [297, 'non-bitwise << uses', '(?[text]\n \n" diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index a7157c2c5a89..5df7d25cc375 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -121,3 +121,13 @@ #define RANDOM_FACIAL_HAIRSTYLE "random_facial_hairstyle" #define RANDOM_SKIN_TONE "random_skin_tone" #define RANDOM_EYE_COLOR "random_eye_color" +#define RANDOM_PROSTHETIC "random_prosthetic" +#define RANDOM_HAIR_GRADIENT_STYLE "random_grad_style" +#define RANDOM_HAIR_GRADIENT_COLOR "random_grad_color" + +//prosthetics stuff +#define PROSTHETIC_NORMAL "normal" +#define PROSTHETIC_AMPUTATED "amputated" +#define PROSTHETIC_ROBOTIC "prosthetic" + + diff --git a/code/__DEFINES/radiation.dm b/code/__DEFINES/radiation.dm index 6461c22bf799..a7ac7745e6fc 100644 --- a/code/__DEFINES/radiation.dm +++ b/code/__DEFINES/radiation.dm @@ -5,7 +5,7 @@ Ask ninjanomnom if they're around */ #define RAD_BACKGROUND_RADIATION 9 // How much radiation is harmless to a mob, this is also when radiation waves stop spreading - // WARNING: Lowering this value significantly increases SSradiation load +// WARNING: Lowering this value significantly increases SSradiation load // apply_effect((amount*RAD_MOB_COEFFICIENT)/max(1, (radiation**2)*RAD_OVERDOSE_REDUCTION), IRRADIATE, blocked) #define RAD_MOB_COEFFICIENT 0.20 // Radiation applied is multiplied by this @@ -14,7 +14,7 @@ Ask ninjanomnom if they're around #define RAD_LOSS_PER_TICK 0.5 #define RAD_TOX_COEFFICIENT 0.08 // Toxin damage per tick coefficient #define RAD_OVERDOSE_REDUCTION 0.000001 // Coefficient to the reduction in applied rads once the thing, usualy mob, has too much radiation - // WARNING: This number is highly sensitive to change, graph is first for best results +// WARNING: This number is highly sensitive to change, graph is first for best results #define RAD_BURN_THRESHOLD 1000 // Applied radiation must be over this to burn //Holy shit test after you tweak anything it's said like 6 times in here //You probably want to plot any tweaks you make so you can see the curves visually diff --git a/code/__DEFINES/ruins.dm b/code/__DEFINES/ruins.dm new file mode 100644 index 000000000000..bd63c3e6e935 --- /dev/null +++ b/code/__DEFINES/ruins.dm @@ -0,0 +1,9 @@ +#define RUINTYPE_LAVA "Lava" +#define RUINTYPE_SAND "Sand" +#define RUINTYPE_JUNGLE "Jungle" +#define RUINTYPE_ICE "Ice" +#define RUINTYPE_SPACE "Space" +#define RUINTYPE_ROCK "Rock" +#define RUINTYPE_YELLOW "Yellow" + +#define RUINTYPE_LIST_ALL list(RUINTYPE_LAVA, RUINTYPE_SAND, RUINTYPE_JUNGLE, RUINTYPE_ICE, RUINTYPE_SPACE, RUINTYPE_ROCK, RUINTYPE_YELLOW) diff --git a/code/__DEFINES/span.dm b/code/__DEFINES/span.dm new file mode 100644 index 000000000000..1974c99ce9b8 --- /dev/null +++ b/code/__DEFINES/span.dm @@ -0,0 +1,122 @@ +// Sorted alphabetically +#define span_abductor(str) ("" + str + "") +#define span_admin(str) ("" + str + "") +#define span_adminhelp(str) ("" + str + "") +#define span_adminnotice(str) ("" + str + "") +#define span_adminobserverooc(str) ("" + str + "") +#define span_adminooc(str) ("" + str + "") +#define span_adminsay(str) ("" + str + "") +#define span_aiprivradio(str) ("" + str + "") +#define span_alert(str) ("" + str + "") +#define span_alertalien(str) ("" + str + "") +#define span_alertsyndie(str) ("" + str + "") +#define span_alertwarning(str) ("" + str + "") +#define span_alien(str) ("" + str + "") +#define span_announce(str) ("" + str + "") +#define span_big(str) ("" + str + "") +#define span_bigicon(str) ("" + str + "") +#define span_binarysay(str) ("" + str + "") +#define span_blue(str) ("" + str + "") +#define span_blueteamradio(str) ("" + str + "") +#define span_bold(str) ("" + str + "") +#define span_boldannounce(str) ("" + str + "") +#define span_bolddanger(str) ("" + str + "") +#define span_boldnicegreen(str) ("" + str + "") +#define span_boldnotice(str) ("" + str + "") +#define span_boldwarning(str) ("" + str + "") +#define span_centcomradio(str) ("" + str + "") +#define span_changeling(str) ("" + str + "") +#define span_clown(str) ("" + str + "") +#define span_colossus(str) ("" + str + "") +#define span_command_headset(str) ("" + str + "") +#define span_comradio(str) ("" + str + "") +#define span_cult(str) ("" + str + "") +#define span_cultbold(str) ("" + str + "") +#define span_cultboldtalic(str) ("" + str + "") +#define span_cultitalic(str) ("" + str + "") +#define span_cultlarge(str) ("" + str + "") +#define span_danger(str) ("" + str + "") +#define span_deadsay(str) ("" + str + "") +#define span_deconversion_message(str) ("" + str + "") +#define span_drone(str) ("" + str + "") +#define span_engradio(str) ("" + str + "") +#define span_extremelybig(str) ("" + str + "") +#define span_ghostalert(str) ("" + str + "") +#define span_green(str) ("" + str + "") +#define span_greenannounce(str) ("" + str + "") +#define span_greenteamradio(str) ("" + str + "") +#define span_greentext(str) ("" + str + "") +#define span_grey(str) ("" + str + "") +#define span_gangradio(str) ("" + str + "") +#define span_hear(str) ("" + str + "") +#define span_hidden(str) ("") +#define span_hierophant(str) ("" + str + "") +#define span_hierophant_warning(str) ("" + str + "") +#define span_highlight(str) ("" + str + "") +#define span_his_grace(str) ("" + str + "") +#define span_holoparasite(str) ("" + str + "") +#define span_hypnophrase(str) ("" + str + "") +#define span_icon(str) ("" + str + "") +#define span_info(str) ("" + str + "") +#define span_infoplain(str) ("" + str + "") +#define span_interface(str) ("" + str + "") +#define span_looc(str) ("" + str + "") +#define span_medal(str) ("" + str + "") +#define span_medradio(str) ("" + str + "") +#define span_memo(str) ("" + str + "") +#define span_memoedit(str) ("" + str + "") +#define span_mind_control(str) ("" + str + "") +#define span_minorannounce(str) ("" + str + "") +#define span_monkey(str) ("" + str + "") +#define span_monkeyhive(str) ("" + str + "") +#define span_monkeylead(str) ("" + str + "") +#define span_name(str) ("" + str + "") +#define span_narsie(str) ("" + str + "") +#define span_narsiesmall(str) ("" + str + "") +#define span_nicegreen(str) ("" + str + "") +#define span_notice(str) ("" + str + "") +#define span_noticealien(str) ("" + str + "") +#define span_ooc(str) ("" + str + "") +#define span_papyrus(str) ("" + str + "") +#define span_phobia(str) ("" + str + "") +#define span_prefix(str) ("" + str + "") +#define span_purple(str) ("" + str + "") +#define span_radio(str) ("" + str + "") +#define span_reallybig(str) ("" + str + "") +#define span_red(str) ("" + str + "") +#define span_redteamradio(str) ("" + str + "") +#define span_redtext(str) ("" + str + "") +#define span_resonate(str) ("" + str + "") +#define span_revenbignotice(str) ("" + str + "") +#define span_revenboldnotice(str) ("" + str + "") +#define span_revendanger(str) ("" + str + "") +#define span_revenminor(str) ("" + str + "") +#define span_revennotice(str) ("" + str + "") +#define span_revenwarning(str) ("" + str + "") +#define span_robot(str) ("" + str + "") +#define span_rose(str) ("" + str + "") +#define span_sans(str) ("" + str + "") +#define span_sciradio(str) ("" + str + "") +#define span_secradio(str) ("" + str + "") +#define span_servradio(str) ("" + str + "") +#define span_singing(str) ("" + str + "") +#define span_slime(str) ("" + str + "") +#define span_small(str) ("" + str + "") +#define span_smallnotice(str) ("" + str + "") +#define span_smallnoticeital(str) ("" + str + "") +#define span_spider(str) ("" + str + "") +#define span_suicide(str) ("" + str + "") +#define span_suppradio(str) ("" + str + "") +#define span_syndradio(str) ("" + str + "") +#define span_tape_recorder(str) ("" + str + "") +#define span_tinynotice(str) ("" + str + "") +#define span_tinynoticeital(str) ("" + str + "") +#define span_unconscious(str) ("" + str + "") +#define span_userdanger(str) ("" + str + "") +#define span_warning(str) ("" + str + "") +#define span_yell(str) ("" + str + "") +#define span_yellowteamradio(str) ("" + str + "") + +// Spans that use embedded tgui components: +// Sorted alphabetically +#define span_tooltip(tip, main_text) ("" + main_text + "") diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 7d34a6e5edff..f02a808336b9 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -150,6 +150,7 @@ // Subsystem fire priority, from lowest to highest priority // If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child) +#define FIRE_PRIORITY_PING 10 #define FIRE_PRIORITY_IDLE_NPC 10 #define FIRE_PRIORITY_SERVER_MAINT 10 #define FIRE_PRIORITY_RESEARCH 10 diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 68b6267dda9a..39cd328cea91 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -355,13 +355,13 @@ return sortTim(L.Copy(), order >= 0 ? /proc/cmp_name_asc : /proc/cmp_name_dsc) //Mergesort: any value in a list, preserves key=value structure -/proc/sortAssoc(var/list/L) +/proc/sortAssoc(list/L) if(L.len < 2) return L var/middle = L.len / 2 + 1 // Copy is first,second-1 return mergeAssoc(sortAssoc(L.Copy(0,middle)), sortAssoc(L.Copy(middle))) //second parameter null = to end of list -/proc/mergeAssoc(var/list/L, var/list/R) +/proc/mergeAssoc(list/L, list/R) var/Li=1 var/Ri=1 var/list/result = new() diff --git a/code/__HELPERS/bitflag_lists.dm b/code/__HELPERS/bitflag_lists.dm index a665d92cd417..8e37949d6910 100644 --- a/code/__HELPERS/bitflag_lists.dm +++ b/code/__HELPERS/bitflag_lists.dm @@ -1,16 +1,16 @@ GLOBAL_LIST_EMPTY(bitflag_lists) /** - * System for storing bitflags past the 24 limit, making use of an associative list. - * - * Macro converts a list of integers into an associative list of bitflag entries for quicker comparison. - * Example: list(0, 4, 26, 32)) => list( "0" = ( (1<<0) | (1<<4) ), "1" = ( (1<<2) | (1<<8) ) ) - * Lists are cached into a global list of lists to avoid identical duplicates. - * This system makes value comparisons faster than pairing every element of one list with every element of the other for evaluation. - * - * Arguments: - * * target - List of integers. - */ + * System for storing bitflags past the 24 limit, making use of an associative list. + * + * Macro converts a list of integers into an associative list of bitflag entries for quicker comparison. + * Example: list(0, 4, 26, 32)) => list( "0" = ( (1<<0) | (1<<4) ), "1" = ( (1<<2) | (1<<8) ) ) + * Lists are cached into a global list of lists to avoid identical duplicates. + * This system makes value comparisons faster than pairing every element of one list with every element of the other for evaluation. + * + * Arguments: + * * target - List of integers. + */ #define SET_BITFLAG_LIST(target) \ do { \ var/txt_signature = target.Join("-"); \ diff --git a/code/__HELPERS/chat.dm b/code/__HELPERS/chat.dm index 2f958eeed0f1..2a546370ec0e 100644 --- a/code/__HELPERS/chat.dm +++ b/code/__HELPERS/chat.dm @@ -36,11 +36,11 @@ In TGS3 it will always be sent to all connected designated game chats. */ /** - * Sends a message to TGS chat channels. - * - * message - The message to send. - * channel_tag - Required. If "", the message with be sent to all connected (Game-type for TGS3) channels. Otherwise, it will be sent to TGS4 channels with that tag (Delimited by ','s). - */ + * Sends a message to TGS chat channels. + * + * message - The message to send. + * channel_tag - Required. If "", the message with be sent to all connected (Game-type for TGS3) channels. Otherwise, it will be sent to TGS4 channels with that tag (Delimited by ','s). + */ /proc/send2chat(message, channel_tag) if(channel_tag == null || !world.TgsAvailable()) return @@ -61,11 +61,11 @@ In TGS3 it will always be sent to all connected designated game chats. world.TgsChatBroadcast(message, channels_to_use) /** - * Sends a message to TGS admin chat channels. - * - * category - The category of the mssage. - * message - The message to send. - */ + * Sends a message to TGS admin chat channels. + * + * category - The category of the mssage. + * message - The message to send. + */ /proc/send2adminchat(category, message) category = replacetext(replacetext(category, "\proper", ""), "\improper", "") message = replacetext(replacetext(message, "\proper", ""), "\improper", "") diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index d8b19448cdb3..fc983f87b76e 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -167,12 +167,12 @@ block( \ return turfs /** recursive_organ_check - * inputs: O (object to start with) - * outputs: - * description: A pseudo-recursive loop based off of the recursive mob check, this check looks for any organs held - * within 'O', toggling their frozen flag. This check excludes items held within other safe organ - * storage units, so that only the lowest level of container dictates whether we do or don't decompose - */ + * inputs: O (object to start with) + * outputs: + * description: A pseudo-recursive loop based off of the recursive mob check, this check looks for any organs held + * within 'O', toggling their frozen flag. This check excludes items held within other safe organ + * storage units, so that only the lowest level of container dictates whether we do or don't decompose + */ /proc/recursive_organ_check(atom/O) var/list/processing_list = list(O) @@ -307,11 +307,11 @@ block( \ return FALSE /** - * Exiled check - * - * Checks if the current body of the mind has an exile implant and is currently in - * an away mission. Returns FALSE if any of those conditions aren't met. - */ + * Exiled check + * + * Checks if the current body of the mind has an exile implant and is currently in + * an away mission. Returns FALSE if any of those conditions aren't met. + */ /proc/considered_exiled(datum/mind/M) if(!ishuman(M?.current)) return FALSE diff --git a/code/__HELPERS/heap.dm b/code/__HELPERS/heap.dm index 916e7fc05c5a..1e369fd7e181 100644 --- a/code/__HELPERS/heap.dm +++ b/code/__HELPERS/heap.dm @@ -33,7 +33,7 @@ Sink(1) //Get a node up to its right position in the heap -/datum/Heap/proc/Swim(var/index) +/datum/Heap/proc/Swim(index) var/parent = round(index * 0.5) while(parent > 0 && (call(cmp)(L[index],L[parent]) > 0)) @@ -42,7 +42,7 @@ parent = round(index * 0.5) //Get a node down to its right position in the heap -/datum/Heap/proc/Sink(var/index) +/datum/Heap/proc/Sink(index) var/g_child = GetGreaterChild(index) while(g_child > 0 && (call(cmp)(L[index],L[g_child]) < 0)) @@ -52,7 +52,7 @@ //Returns the greater (relative to the comparison proc) of a node children //or 0 if there's no child -/datum/Heap/proc/GetGreaterChild(var/index) +/datum/Heap/proc/GetGreaterChild(index) if(index * 2 > L.len) return 0 diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 700b6192c5f5..72a3fc79c9d9 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -310,10 +310,10 @@ DEFINE_BITFIELD(smoothing_junction, list( /** - * Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that. - * - * Returns the previous smoothing_junction state so the previous state can be compared with the new one after the proc ends, and see the changes, if any. - * + * Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that. + * + * Returns the previous smoothing_junction state so the previous state can be compared with the new one after the proc ends, and see the changes, if any. + * */ /atom/proc/bitmask_smooth() var/new_junction = NONE @@ -391,7 +391,7 @@ DEFINE_BITFIELD(smoothing_junction, list( //Icon smoothing helpers -/proc/smooth_zlevel(var/zlevel, now = FALSE) +/proc/smooth_zlevel(zlevel, now = FALSE) var/list/away_turfs = block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel)) for(var/V in away_turfs) var/turf/T = V diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index ea2860d69e1a..dda456f1f9e6 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1125,10 +1125,10 @@ GLOBAL_DATUM_INIT(dummySave, /savefile, new("tmp/dummySave.sav")) //Cache of ico /** - * Converts an icon to base64. Operates by putting the icon in the iconCache savefile, - * exporting it as text, and then parsing the base64 from that. - * (This relies on byond automatically storing icons in savefiles as base64) - */ + * Converts an icon to base64. Operates by putting the icon in the iconCache savefile, + * exporting it as text, and then parsing the base64 from that. + * (This relies on byond automatically storing icons in savefiles as base64) + */ /proc/icon2base64(icon/icon) if (!isicon(icon)) return FALSE diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index dca9a55fa1ee..d0cd252a95f9 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -1,6 +1,10 @@ /proc/random_blood_type() return pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") +/proc/random_prosthetic() + . = list(BODY_ZONE_L_ARM = PROSTHETIC_NORMAL, BODY_ZONE_R_ARM = PROSTHETIC_NORMAL, BODY_ZONE_L_LEG = PROSTHETIC_NORMAL, BODY_ZONE_R_LEG = PROSTHETIC_NORMAL) + .[pick(.)] = PROSTHETIC_ROBOTIC + /proc/random_eye_color() switch(pick(20;"brown",20;"hazel",20;"grey",15;"blue",15;"green",1;"amber",1;"albino")) if("brown") @@ -304,7 +308,7 @@ GLOBAL_LIST_EMPTY(species_list) return ..() ///Timed action involving one mob user. Target is optional. -/proc/do_after(mob/user, var/delay, needhand = TRUE, atom/target = null, progress = TRUE, datum/callback/extra_checks = null) +/proc/do_after(mob/user, delay, needhand = TRUE, atom/target = null, progress = TRUE, datum/callback/extra_checks = null) if(!user) return FALSE var/atom/Tloc = null @@ -633,7 +637,7 @@ GLOBAL_LIST_EMPTY(species_list) return . //Find an active ai with the least borgs. VERBOSE PROCNAME HUH! -/proc/select_active_ai_with_fewest_borgs(var/z) +/proc/select_active_ai_with_fewest_borgs(z) var/mob/living/silicon/ai/selected var/list/active = active_ais(FALSE, z) for(var/mob/living/silicon/ai/A in active) @@ -651,7 +655,7 @@ GLOBAL_LIST_EMPTY(species_list) . = pick(borgs) return . -/proc/select_active_ai(mob/user, var/z = null) +/proc/select_active_ai(mob/user, z = null) var/list/ais = active_ais(FALSE, z) if(ais.len) if(user) diff --git a/code/__HELPERS/mouse_control.dm b/code/__HELPERS/mouse_control.dm index 784496ed200c..8896afb3ec62 100644 --- a/code/__HELPERS/mouse_control.dm +++ b/code/__HELPERS/mouse_control.dm @@ -1,7 +1,7 @@ /proc/mouse_angle_from_client(client/client) - var/list/mouse_control = params2list(client.mouseParams) - if(mouse_control["screen-loc"] && client) - var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") + var/list/modifiers = params2list(client.mouseParams) + if(LAZYACCESS(modifiers, SCREEN_LOC) && client) + var/list/screen_loc_params = splittext(LAZYACCESS(modifiers, SCREEN_LOC), ",") var/list/screen_loc_X = splittext(screen_loc_params[1],":") var/list/screen_loc_Y = splittext(screen_loc_params[2],":") var/x = (text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32) @@ -18,20 +18,20 @@ /proc/mouse_absolute_datum_map_position_from_client(client/client) if(!isloc(client.mob.loc)) return - var/list/mouse_control = params2list(client.mouseParams) + var/list/modifiers = params2list(client.mouseParams) var/atom/A = client.eye var/turf/T = get_turf(A) var/cx = T.x var/cy = T.y var/cz = T.z - if(mouse_control["screen-loc"]) + if(LAZYACCESS(modifiers, SCREEN_LOC)) var/x = 0 var/y = 0 var/z = 0 var/p_x = 0 var/p_y = 0 //Split screen-loc up into X+Pixel_X and Y+Pixel_Y - var/list/screen_loc_params = splittext(mouse_control["screen-loc"], ",") + var/list/screen_loc_params = splittext(LAZYACCESS(modifiers, SCREEN_LOC), ",") //Split X+Pixel_X up into list(X, Pixel_X) var/list/screen_loc_X = splittext(screen_loc_params[1],":") //Split Y+Pixel_Y up into list(Y, Pixel_Y) diff --git a/code/__HELPERS/records.dm b/code/__HELPERS/records.dm index e1aace6ebd7a..b8bfd508e23a 100644 --- a/code/__HELPERS/records.dm +++ b/code/__HELPERS/records.dm @@ -1,4 +1,4 @@ -/proc/overwrite_field_if_available(datum/data/record/base, datum/data/record/other, var/field_name) +/proc/overwrite_field_if_available(datum/data/record/base, datum/data/record/other, field_name) if(other.fields[field_name]) base.fields[field_name] = other.fields[field_name] diff --git a/code/__HELPERS/string_assoc_lists.dm b/code/__HELPERS/string_assoc_lists.dm index 4e9087b4366a..cded3a349691 100644 --- a/code/__HELPERS/string_assoc_lists.dm +++ b/code/__HELPERS/string_assoc_lists.dm @@ -1,8 +1,8 @@ GLOBAL_LIST_EMPTY(string_assoc_lists) /** - * Caches associative lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number). - */ + * Caches associative lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number). + */ /datum/proc/string_assoc_list(list/values) var/list/string_id = list() for(var/val in values) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 4b3e69fe8022..2b315dfaee16 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -112,12 +112,10 @@ #define NO_CHARS_DETECTED 0 #define SPACES_DETECTED 1 -#define SYMBOLS_DETECTED 2 -#define NUMBERS_DETECTED 3 -#define LETTERS_DETECTED 4 +#define CHARS_DETECTED 2 //Filters out undesirable characters from names -/proc/reject_bad_name(t_in, allow_numbers = FALSE, max_length = MAX_NAME_LEN, ascii_only = TRUE) +/proc/reject_bad_name(t_in, max_length = MAX_NAME_LEN, ascii_only = TRUE) if(!t_in) return //Rejects the input if it is null @@ -133,36 +131,6 @@ char = t_in[i] switch(text2ascii(char)) - // A .. Z - if(65 to 90) //Uppercase Letters - number_of_alphanumeric++ - last_char_group = LETTERS_DETECTED - - // a .. z - if(97 to 122) //Lowercase Letters - if(last_char_group == NO_CHARS_DETECTED || last_char_group == SPACES_DETECTED || last_char_group == SYMBOLS_DETECTED) //start of a word - char = uppertext(char) - number_of_alphanumeric++ - last_char_group = LETTERS_DETECTED - - // 0 .. 9 - if(48 to 57) //Numbers - if(last_char_group == NO_CHARS_DETECTED || !allow_numbers) //suppress at start of string - continue - number_of_alphanumeric++ - last_char_group = NUMBERS_DETECTED - - // ' - . - if(39,45,46) //Common name punctuation - if(last_char_group == NO_CHARS_DETECTED) - continue - last_char_group = SYMBOLS_DETECTED - - // ~ | @ : # $ % & * + - if(126,124,64,58,35,36,37,38,42,43) //Other symbols that we'll allow (mainly for AI) - if(last_char_group == NO_CHARS_DETECTED || !allow_numbers) //suppress at start of string - continue - last_char_group = SYMBOLS_DETECTED //Space if(32) @@ -170,10 +138,30 @@ continue last_char_group = SPACES_DETECTED - if(127 to INFINITY) + //A .. Z + if(65 to 90) + number_of_alphanumeric++ + last_char_group = CHARS_DETECTED + + //a .. z + if(97 to 122) + number_of_alphanumeric++ + last_char_group = CHARS_DETECTED + + //0 .. 9 + if(48 to 57) + number_of_alphanumeric++ + last_char_group = CHARS_DETECTED + + // ' - . ~ | @ : # $ % & * + + if(39, 45, 46, 126, 124, 64, 58, 35, 36, 37, 38, 42, 43) + number_of_alphanumeric++ + last_char_group = CHARS_DETECTED + + if(127 to INFINITY) //this pulls non-ascii text from the name for now, since filtering that is much more of a headache if(ascii_only) continue - last_char_group = SYMBOLS_DETECTED //for now, we'll treat all non-ascii characters like symbols even though most are letters + last_char_group = CHARS_DETECTED //for now, we'll treat all non-ascii characters like symbols even though most are letters else continue @@ -184,21 +172,16 @@ break if(number_of_alphanumeric < 2) - return //protects against tiny names like "A" and also names like "' ' ' ' ' ' ' '" + return //protects against tiny names like "A" if(last_char_group == SPACES_DETECTED) - t_out = copytext_char(t_out, 1, -1) //removes the last character (in this case a space) - - for(var/bad_name in list("space","floor","wall","r-wall","monkey","unknown","inactive ai")) //prevents these common metagamey names - if(cmptext(t_out,bad_name)) - return //(not case sensitive) + t_out = copytext_char(t_out, 1, -1) //pulls trailing spaces from the name return t_out #undef NO_CHARS_DETECTED #undef SPACES_DETECTED -#undef NUMBERS_DETECTED -#undef LETTERS_DETECTED +#undef CHARS_DETECTED @@ -254,16 +237,16 @@ return "" /** - * Truncate a string to the given length - * - * Will only truncate if the string is larger than the length and *ignores unicode concerns* - * - * This exists soley because trim does other stuff too. - * - * Arguments: - * * text - String - * * max_length - integer length to truncate at - */ + * Truncate a string to the given length + * + * Will only truncate if the string is larger than the length and *ignores unicode concerns* + * + * This exists soley because trim does other stuff too. + * + * Arguments: + * * text - String + * * max_length - integer length to truncate at + */ /proc/truncate(text, max_length) if(length(text) > max_length) return copytext(text, 1, max_length) @@ -838,7 +821,7 @@ GLOBAL_LIST_INIT(binary, list("0","1")) catch return -/proc/num2loadingbar(percent as num, var/numSquares = 20, var/reverse = FALSE) +/proc/num2loadingbar(percent as num, numSquares = 20, reverse = FALSE) var/loadstring = "" for (var/i in 1 to numSquares) var/limit = reverse ? numSquares - percent*numSquares : percent*numSquares diff --git a/code/__HELPERS/type_processing.dm b/code/__HELPERS/type_processing.dm index 85dd1276246c..cb630a9b1685 100644 --- a/code/__HELPERS/type_processing.dm +++ b/code/__HELPERS/type_processing.dm @@ -1,4 +1,4 @@ -/proc/make_types_fancy(var/list/types) +/proc/make_types_fancy(list/types) if (ispath(types)) types = list(types) . = list() diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 64b0b468d8e6..8b69da69a18c 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -428,7 +428,7 @@ Turf and target are separate in case you want to teleport some distance from a t Gets all contents of contents and returns them all in a list. */ -/atom/proc/GetAllContents(var/T, ignore_flag_1) +/atom/proc/GetAllContents(T, ignore_flag_1) var/list/processing_list = list(src) if(T) . = list() @@ -602,15 +602,15 @@ Turf and target are separate in case you want to teleport some distance from a t /* - Gets the turf this atom's *ICON* appears to inhabit - It takes into account: +Gets the turf this atom's *ICON* appears to inhabit +It takes into account: * Pixel_x/y * Matrix x/y - NOTE: if your atom has non-standard bounds then this proc - will handle it, but: +NOTE: if your atom has non-standard bounds then this proc +will handle it, but: * if the bounds are even, then there are an even amount of "middle" turfs, the one to the EAST, NORTH, or BOTH is picked - (this may seem bad, but you're atleast as close to the center of the atom as possible, better than byond's default loc being all the way off) +(this may seem bad, but you're atleast as close to the center of the atom as possible, better than byond's default loc being all the way off) * if the bounds are odd, the true middle turf of the atom is returned */ @@ -843,7 +843,7 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list( // eg: center_image(I, 32,32) // eg2: center_image(I, 96,96) -/proc/center_image(var/image/I, x_dimension = 0, y_dimension = 0) +/proc/center_image(image/I, x_dimension = 0, y_dimension = 0) if(!I) return @@ -1000,7 +1000,7 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list( return L -/atom/proc/contains(var/atom/A) +/atom/proc/contains(atom/A) if(!A) return 0 for(var/atom/location = A.loc, location, location = location.loc) @@ -1142,7 +1142,7 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) pixel_x = initialpixelx pixel_y = initialpixely -/proc/weightclass2text(var/w_class) +/proc/weightclass2text(w_class) switch(w_class) if(WEIGHT_CLASS_TINY) . = "tiny" @@ -1477,7 +1477,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) for(var/i in L) if(condition.Invoke(i)) . |= i -/proc/generate_items_inside(list/items_list,var/where_to) +/proc/generate_items_inside(list/items_list, where_to) for(var/each_item in items_list) for(var/i in 1 to items_list[each_item]) new each_item(where_to) diff --git a/code/__HELPERS/verbs.dm b/code/__HELPERS/verbs.dm index 3606c7d918af..5a3df642c7db 100644 --- a/code/__HELPERS/verbs.dm +++ b/code/__HELPERS/verbs.dm @@ -1,11 +1,11 @@ /** - * handles adding verbs and updating the stat panel browser - * - * pass the verb type path to this instead of adding it directly to verbs so the statpanel can update - * Arguments: - * * target - Who the verb is being added to, client or mob typepath - * * verb - typepath to a verb, or a list of verbs, supports lists of lists - */ + * handles adding verbs and updating the stat panel browser + * + * pass the verb type path to this instead of adding it directly to verbs so the statpanel can update + * Arguments: + * * target - Who the verb is being added to, client or mob typepath + * * verb - typepath to a verb, or a list of verbs, supports lists of lists + */ /proc/add_verb(client/target, verb_or_list_to_add) if(!target) CRASH("add_verb called without a target") @@ -48,13 +48,13 @@ target << output("[output_list];", "statbrowser:add_verb_list") /** - * handles removing verb and sending it to browser to update, use this for removing verbs - * - * pass the verb type path to this instead of removing it from verbs so the statpanel can update - * Arguments: - * * target - Who the verb is being removed from, client or mob typepath - * * verb - typepath to a verb, or a list of verbs, supports lists of lists - */ + * handles removing verb and sending it to browser to update, use this for removing verbs + * + * pass the verb type path to this instead of removing it from verbs so the statpanel can update + * Arguments: + * * target - Who the verb is being removed from, client or mob typepath + * * verb - typepath to a verb, or a list of verbs, supports lists of lists + */ /proc/remove_verb(client/target, verb_or_list_to_remove) if(IsAdminAdvancedProcCall()) return diff --git a/code/__HELPERS/virtual_z_level.dm b/code/__HELPERS/virtual_z_level.dm index 5fa073289503..13a668779d75 100644 --- a/code/__HELPERS/virtual_z_level.dm +++ b/code/__HELPERS/virtual_z_level.dm @@ -1,8 +1,8 @@ /** - * Used to get the virtual z-level. - * Will give unique values to each shuttle while it is in a transit level. - * Note: If the user teleports to another virtual z on the same z-level they will need to have reset_virtual_z called. (Teleportations etc.) - */ + * Used to get the virtual z-level. + * Will give unique values to each shuttle while it is in a transit level. + * Note: If the user teleports to another virtual z on the same z-level they will need to have reset_virtual_z called. (Teleportations etc.) + */ /// Virtual Z is optimized lookup of the virtual level for comparisons, but it doesn't pass the reference /atom/proc/virtual_z() diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 8fd3085da604..4546683816f2 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -33,9 +33,6 @@ #endif // 1 to use the default behaviour; // 2 for preloading absolutely everything; -///Used in dev environments to speed up init times as well as a few other test-hindering processes. -#define QUICK_INIT - //Update this whenever you need to take advantage of more recent byond features #define MIN_COMPILER_VERSION 513 #define MIN_COMPILER_BUILD 1514 diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index c9acdb293d5f..4fbd94b64561 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_EMPTY(deadmins) //all ckeys who have used the de-admin verb. GLOBAL_LIST_EMPTY(mentors) GLOBAL_PROTECT(mentors) -GLOBAL_LIST_EMPTY(directory) //all ckeys with associated client +GLOBAL_LIST_EMPTY_TYPED(directory, /client) //all ckeys with associated client GLOBAL_LIST_EMPTY(stealthminID) //reference list with IDs that store ckeys, for stealthmins //Since it didn't really belong in any other category, I'm putting this here diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index d6792159afa6..fd1333a20102 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -37,17 +37,16 @@ List of configurable names in preferences and their metadata "id" = list( "pref_name" = "name", //pref label "qdesc" = "name", //popup question text - "allow_numbers" = FALSE, // numbers allowed in the name "group" = "whatever", // group (these will be grouped together on pref ui ,order still follows the list so they need to be concurrent to be grouped) "allow_null" = FALSE // if empty name is entered it's replaced with default value ), */ GLOBAL_LIST_INIT(preferences_custom_names, list( - "human" = list("pref_name" = "Backup Human", "qdesc" = "backup human name, used in the event you are assigned a command role as another species", "allow_numbers" = FALSE , "group" = "backup_human", "allow_null" = FALSE), - "clown" = list("pref_name" = "Clown" , "qdesc" = "clown name", "allow_numbers" = FALSE , "group" = "fun", "allow_null" = FALSE), - "mime" = list("pref_name" = "Mime", "qdesc" = "mime name" , "allow_numbers" = FALSE , "group" = "fun", "allow_null" = FALSE), - "cyborg" = list("pref_name" = "Cyborg", "qdesc" = "cyborg name (Leave empty to use default naming scheme)", "allow_numbers" = TRUE , "group" = "silicons", "allow_null" = TRUE), - "ai" = list("pref_name" = "AI", "qdesc" = "ai name", "allow_numbers" = TRUE , "group" = "silicons", "allow_null" = FALSE), - "religion" = list("pref_name" = "Chaplain religion", "qdesc" = "religion" , "allow_numbers" = TRUE , "group" = "chaplain", "allow_null" = FALSE), - "deity" = list("pref_name" = "Chaplain deity", "qdesc" = "deity", "allow_numbers" = TRUE , "group" = "chaplain", "allow_null" = FALSE) + "human" = list("pref_name" = "Backup Human", "qdesc" = "backup human name, used in the event you are assigned a command role as another species", "group" = "backup_human", "allow_null" = FALSE), + "clown" = list("pref_name" = "Clown" , "qdesc" = "clown name", "group" = "fun", "allow_null" = FALSE), + "mime" = list("pref_name" = "Mime", "qdesc" = "mime name" , "group" = "fun", "allow_null" = FALSE), + "cyborg" = list("pref_name" = "Cyborg", "qdesc" = "cyborg name (Leave empty to use default naming scheme)", "group" = "silicons", "allow_null" = TRUE), + "ai" = list("pref_name" = "AI", "qdesc" = "ai name", "group" = "silicons", "allow_null" = FALSE), + "religion" = list("pref_name" = "Chaplain religion", "qdesc" = "religion" , "group" = "chaplain", "allow_null" = FALSE), + "deity" = list("pref_name" = "Chaplain deity", "qdesc" = "deity", "group" = "chaplain", "allow_null" = FALSE) )) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index cfe255e99d2f..7e78b95d24e9 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -1,7 +1,7 @@ /* - FUN ZONE OF ADMIN LISTINGS - Try to keep this in sync with __DEFINES/traits.dm - quirks have it's own panel so we don't need them here. +FUN ZONE OF ADMIN LISTINGS +Try to keep this in sync with __DEFINES/traits.dm +quirks have it's own panel so we don't need them here. */ GLOBAL_LIST_INIT(traits_by_type, list( /mob = list( diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm index c6a9544ada02..7262ca66ab51 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -73,7 +73,7 @@ Adjacency (to anything else): * Must be on a turf */ -/atom/movable/Adjacent(var/atom/neighbor) +/atom/movable/Adjacent(atom/neighbor) var/turf/T = loc if(neighbor == loc) return TRUE diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index dba8ed17fed3..2c5ea18f68ab 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -52,22 +52,24 @@ return var/list/modifiers = params2list(params) - if(modifiers["shift"] && modifiers["ctrl"]) - CtrlShiftClickOn(A) - return - if(modifiers["middle"]) - if(controlled_mech) //Are we piloting a mech? Placed here so the modifiers are not overridden. - controlled_mech.click_action(A, src, params) //Override AI normal click behavior. - return - if(modifiers["shift"]) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) + if(LAZYACCESS(modifiers, CTRL_CLICK)) + CtrlShiftClickOn(A) + return ShiftClickOn(A) return - if(modifiers["alt"]) // alt and alt-gr (rightalt) + if(LAZYACCESS(modifiers, ALT_CLICK)) // alt and alt-gr (rightalt) AltClickOn(A) return - if(modifiers["ctrl"]) + if(LAZYACCESS(modifiers, CTRL_CLICK)) CtrlClickOn(A) return + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) + if(controlled_mech) //Are we piloting a mech? Placed here so the modifiers are not overridden. + controlled_mech.click_action(A, src, params) //Override AI normal click behavior. + return + MiddleClickOn(A, params) + return if(world.time <= next_move) return diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 50ae9b504617..776d048a6096 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -30,14 +30,14 @@ next_move = world.time + ((num + adj)*mod) /** - * Before anything else, defer these calls to a per-mobtype handler. This allows us to - * remove istype() spaghetti code, but requires the addition of other handler procs to simplify it. - * - * Alternately, you could hardcode every mob's variation in a flat [/mob/proc/ClickOn] proc; however, - * that's a lot of code duplication and is hard to maintain. - * - * Note that this proc can be overridden, and is in the case of screen objects. - */ + * Before anything else, defer these calls to a per-mobtype handler. This allows us to + * remove istype() spaghetti code, but requires the addition of other handler procs to simplify it. + * + * Alternately, you could hardcode every mob's variation in a flat [/mob/proc/ClickOn] proc; however, + * that's a lot of code duplication and is hard to maintain. + * + * Note that this proc can be overridden, and is in the case of screen objects. + */ /atom/Click(location,control,params) if(flags_1 & INITIALIZED_1) SEND_SIGNAL(src, COMSIG_CLICK, location, control, params, usr) @@ -52,18 +52,18 @@ usr.MouseWheelOn(src, delta_x, delta_y, params) /** - * Standard mob ClickOn() - * Handles exceptions: Buildmode, middle click, modified clicks, mech actions - * - * After that, mostly just check your state, check whether you're holding an item, - * check whether you're adjacent to the target, then pass off the click to whoever - * is receiving it. - * The most common are: - * * [mob/proc/UnarmedAttack] (atom,adjacent) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves - * * [atom/proc/attackby] (item,user) - used only when adjacent - * * [obj/item/proc/afterattack] (atom,user,adjacent,params) - used both ranged and adjacent - * * [mob/proc/RangedAttack] (atom,params) - used only ranged, only used for tk and laser eyes but could be changed - */ + * Standard mob ClickOn() + * Handles exceptions: Buildmode, middle click, modified clicks, mech actions + * + * After that, mostly just check your state, check whether you're holding an item, + * check whether you're adjacent to the target, then pass off the click to whoever + * is receiving it. + * The most common are: + * * [mob/proc/UnarmedAttack] (atom,adjacent) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves + * * [atom/proc/attackby] (item,user) - used only when adjacent + * * [obj/item/proc/afterattack] (atom,user,adjacent,params) - used both ranged and adjacent + * * [mob/proc/RangedAttack] (atom,params) - used only ranged, only used for tk and laser eyes but could be changed + */ /mob/proc/ClickOn( atom/A, params ) if(world.time <= next_click) return @@ -79,22 +79,22 @@ return var/list/modifiers = params2list(params) - if(modifiers["shift"] && modifiers["middle"]) - ShiftMiddleClickOn(A) - return - if(modifiers["shift"] && modifiers["ctrl"]) - CtrlShiftClickOn(A) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) + ShiftMiddleClickOn(A) + return + if(LAZYACCESS(modifiers, CTRL_CLICK)) + CtrlShiftClickOn(A) + return + ShiftClickOn(A) return - if(modifiers["middle"]) + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) MiddleClickOn(A) return - if(modifiers["shift"]) - ShiftClickOn(A) - return - if(modifiers["alt"]) // alt and alt-gr (rightalt) + if(LAZYACCESS(modifiers, ALT_CLICK)) // alt and alt-gr (rightalt) AltClickOn(A) return - if(modifiers["ctrl"]) + if(LAZYACCESS(modifiers, CTRL_CLICK)) CtrlClickOn(A) return @@ -109,7 +109,7 @@ if(next_move > world.time) // in the year 2000... return - if(!modifiers["catcher"] && A.IsObscured()) + if(!LAZYACCESS(modifiers, "catcher") && A.IsObscured()) return if(ismecha(loc)) @@ -181,9 +181,9 @@ return FALSE /** - * A backwards depth-limited breadth-first-search to see if the target is - * logically "in" anything adjacent to us. - */ + * A backwards depth-limited breadth-first-search to see if the target is + * logically "in" anything adjacent to us. + */ /atom/movable/proc/CanReach(atom/ultimate_target, obj/item/tool, view_only = FALSE) var/list/direct_access = DirectAccess() var/depth = 1 + (view_only ? STORAGE_VIEW_DEPTH : INVENTORY_DEPTH) @@ -254,36 +254,36 @@ /** - * Translates into [atom/proc/attack_hand], etc. - * - * Note: proximity_flag here is used to distinguish between normal usage (flag=1), - * and usage when clicking on things telekinetically (flag=0). This proc will - * not be called at ranged except with telekinesis. - * - * proximity_flag is not currently passed to attack_hand, and is instead used - * in human click code to allow glove touches only at melee range. - */ + * Translates into [atom/proc/attack_hand], etc. + * + * Note: proximity_flag here is used to distinguish between normal usage (flag=1), + * and usage when clicking on things telekinetically (flag=0). This proc will + * not be called at ranged except with telekinesis. + * + * proximity_flag is not currently passed to attack_hand, and is instead used + * in human click code to allow glove touches only at melee range. + */ /mob/proc/UnarmedAttack(atom/A, proximity_flag) if(ismob(A)) changeNext_move(CLICK_CD_MELEE) return /** - * Ranged unarmed attack: - * - * This currently is just a default for all mobs, involving - * laser eyes and telekinesis. You could easily add exceptions - * for things like ranged glove touches, spitting alien acid/neurotoxin, - * animals lunging, etc. - */ + * Ranged unarmed attack: + * + * This currently is just a default for all mobs, involving + * laser eyes and telekinesis. You could easily add exceptions + * for things like ranged glove touches, spitting alien acid/neurotoxin, + * animals lunging, etc. + */ /mob/proc/RangedAttack(atom/A, params) SEND_SIGNAL(src, COMSIG_MOB_ATTACK_RANGED, A, params) /** - * Middle click - * Mainly used for swapping hands - */ + * Middle click + * Mainly used for swapping hands + */ /mob/proc/MiddleClickOn(atom/A) . = SEND_SIGNAL(src, COMSIG_MOB_MIDDLECLICKON, A) if(. & COMSIG_MOB_CANCEL_CLICKON) @@ -291,10 +291,10 @@ swap_hand() /** - * Shift click - * For most mobs, examine. - * This is overridden in ai.dm - */ + * Shift click + * For most mobs, examine. + * This is overridden in ai.dm + */ /mob/proc/ShiftClickOn(atom/A) A.ShiftClick(src) return @@ -306,9 +306,9 @@ return /** - * Ctrl click - * For most objects, pull - */ + * Ctrl click + * For most objects, pull + */ /mob/proc/CtrlClickOn(atom/A) A.CtrlClick(src) return @@ -329,9 +329,9 @@ else ..() /** - * Alt click - * Unused except for AI - */ + * Alt click + * Unused except for AI + */ /mob/proc/AltClickOn(atom/A) . = SEND_SIGNAL(src, COMSIG_MOB_ALTCLICKON, A) if(. & COMSIG_MOB_CANCEL_CLICKON) @@ -356,9 +356,9 @@ return T.Adjacent(src) /** - * Control+Shift click - * Unused except for AI - */ + * Control+Shift click + * Unused except for AI + */ /mob/proc/CtrlShiftClickOn(atom/A) A.CtrlShiftClick(src) return @@ -439,11 +439,11 @@ /atom/movable/screen/click_catcher/Click(location, control, params) var/list/modifiers = params2list(params) - if(modifiers["middle"] && iscarbon(usr)) + if(LAZYACCESS(modifiers, MIDDLE_CLICK) && iscarbon(usr)) var/mob/living/carbon/C = usr C.swap_hand() else - var/turf/T = params2turf(modifiers["screen-loc"], get_turf(usr.client ? usr.client.eye : usr), usr.client) + var/turf/T = params2turf(LAZYACCESS(modifiers, SCREEN_LOC), get_turf(usr.client ? usr.client.eye : usr), usr.client) params += "&catcher=1" if(T) T.Click(location, control, params) @@ -454,8 +454,8 @@ return /mob/dead/observer/MouseWheelOn(atom/A, delta_x, delta_y, params) - var/list/modifier = params2list(params) - if(modifier["shift"]) + var/list/modifiers = params2list(params) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) var/view = 0 if(delta_y > 0) view = -1 diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index 053686df69b4..dca47ac35ce3 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -18,22 +18,22 @@ return var/list/modifiers = params2list(params) - if(modifiers["shift"] && modifiers["ctrl"]) - CtrlShiftClickOn(A) - return - if(modifiers["shift"] && modifiers["middle"]) - ShiftMiddleClickOn(A) - return - if(modifiers["middle"]) - MiddleClickOn(A) - return - if(modifiers["shift"]) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) + if(LAZYACCESS(modifiers, CTRL_CLICK)) + CtrlShiftClickOn(A) + return + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) + ShiftMiddleClickOn(A) + return ShiftClickOn(A) return - if(modifiers["alt"]) // alt and alt-gr (rightalt) + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) + MiddleClickOn(A, params) + return + if(LAZYACCESS(modifiers, ALT_CLICK)) // alt and alt-gr (rightalt) AltClickOn(A) return - if(modifiers["ctrl"]) + if(LAZYACCESS(modifiers, CTRL_CLICK)) CtrlClickOn(A) return diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index 14e14296a493..c706f599358d 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -27,8 +27,11 @@ /client var/mouseControlObject = null -/client/MouseDown(object, location, control, params) - if (mouse_down_icon) +/client/MouseDown(datum/object, location, control, params) + if(QDELETED(object)) //Yep, you can click on qdeleted things before they have time to nullspace. Fun. + return + SEND_SIGNAL(src, COMSIG_CLIENT_MOUSEDOWN, object, location, control, params) + if(mouse_down_icon) mouse_pointer_icon = mouse_down_icon var/delay = mob.CanMobAutoclick(object, location, params) if(delay) @@ -42,7 +45,9 @@ active_mousedown_item.onMouseDown(object, location, params, mob) /client/MouseUp(object, location, control, params) - if (mouse_up_icon) + if(SEND_SIGNAL(src, COMSIG_CLIENT_MOUSEUP, object, location, control, params) & COMPONENT_CLIENT_MOUSEUP_INTERCEPT) + click_intercept_time = world.time + if(mouse_up_icon) mouse_pointer_icon = mouse_up_icon selected_target[1] = null if(active_mousedown_item) @@ -77,9 +82,6 @@ /obj/item/proc/onMouseUp(object, location, params, mob) return -/obj/item/gun/CanItemAutoclick(object, location, params) - . = automatic - /atom/proc/IsAutoclickable() . = 1 @@ -110,8 +112,8 @@ //WS End /client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params) - var/list/L = params2list(params) - if (L["middle"]) + var/list/modifiers = params2list(params) + if (LAZYACCESS(modifiers, MIDDLE_CLICK)) if (src_object && src_location != over_location) middragtime = world.time middragatom = src_object @@ -134,6 +136,8 @@ if(active_mousedown_item) active_mousedown_item.onMouseDrag(src_object, over_object, src_location, over_location, params, mob) + SEND_SIGNAL(src, COMSIG_CLIENT_MOUSEDRAG, src_object, over_object, src_location, over_location, src_control, over_control, params) + /client/proc/clear_mouseObject() UnregisterSignal(mouseObject, COMSIG_PARENT_QDELETING) mouseObject = null diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index 5d24d571195e..e651898fa00d 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -43,14 +43,14 @@ return var/list/modifiers = params2list(params) - if(modifiers["shift"]) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) if(locked) to_chat(usr, "Action button \"[name]\" is locked, unlock it first.") return TRUE moved = 0 usr.update_action_buttons() //redraw buttons that are no longer considered "moved" return TRUE - if(modifiers["ctrl"]) + if(LAZYACCESS(modifiers, CTRL_CLICK)) locked = !locked to_chat(usr, "Action button \"[name]\" [locked ? "" : "un"]locked.") if(id && usr.client) //try to (un)remember position @@ -95,20 +95,20 @@ return var/list/modifiers = params2list(params) - if(modifiers["shift"]) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) 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"]) + if(LAZYACCESS(modifiers, CTRL_CLICK)) locked = !locked to_chat(usr, "Action button \"[name]\" [locked ? "" : "un"]locked.") if(id && usr.client) //try to (un)remember position usr.client.prefs.action_buttons_screen_locs["[name]_[id]"] = locked ? moved : null return TRUE - if(modifiers["alt"]) + if(LAZYACCESS(modifiers, ALT_CLICK)) for(var/V in usr.actions) var/datum/action/A = V var/atom/movable/screen/movable/action_button/B = A.button diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 90d28f3d1e4a..22b20786120f 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -6,13 +6,13 @@ /mob/proc/throw_alert(category, type, severity, obj/new_master, override = FALSE) /* Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already - category is a text string. Each mob may only have one alert per category; the previous one will be replaced - path is a type path of the actual alert type to throw - severity is an optional number that will be placed at the end of the icon_state for this alert - For example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2" - new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. - Clicks are forwarded to master - Override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations. +category is a text string. Each mob may only have one alert per category; the previous one will be replaced +path is a type path of the actual alert type to throw +severity is an optional number that will be placed at the end of the icon_state for this alert +For example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2" +new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. +Clicks are forwarded to master +Override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations. */ if(!category || QDELETED(src)) @@ -295,15 +295,15 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." var/obj/item/receiving /** - * Handles assigning most of the variables for the alert that pops up when an item is offered - * - * Handles setting the name, description and icon of the alert and tracking the person giving - * and the item being offered, also registers a signal that removes the alert from anyone who moves away from the giver - * Arguments: - * * taker - The person receiving the alert - * * giver - The person giving the alert and item - * * receiving - The item being given by the giver - */ + * Handles assigning most of the variables for the alert that pops up when an item is offered + * + * Handles setting the name, description and icon of the alert and tracking the person giving + * and the item being offered, also registers a signal that removes the alert from anyone who moves away from the giver + * Arguments: + * * taker - The person receiving the alert + * * giver - The person giving the alert and item + * * receiving - The item being given by the giver + */ /atom/movable/screen/alert/give/proc/setup(mob/living/carbon/taker, mob/living/carbon/giver, obj/item/receiving) name = "[giver] is offering [receiving]" desc = "[giver] is offering [receiving]. Click this alert to take it." @@ -724,8 +724,8 @@ so as to remain in compliance with the most up-to-date laws." /atom/movable/screen/alert/Click(location, control, params) if(!usr || !usr.client) return - var/paramslist = params2list(params) - if(paramslist["shift"]) // screen objects don't do the normal Click() stuff so we'll cheat + var/list/modifiers = params2list(params) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) // screen objects don't do the normal Click() stuff so we'll cheat to_chat(usr, "[name] - [desc]") return if(usr != owner) diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm index 261d898777a8..d44688c85658 100644 --- a/code/_onclick/hud/movable_screen_objects.dm +++ b/code/_onclick/hud/movable_screen_objects.dm @@ -25,14 +25,14 @@ /atom/movable/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) + var/list/modifiers = params2list(params) //No screen-loc information? abort. - if(!PM || !PM["screen-loc"]) + if(LAZYACCESS(modifiers, SCREEN_LOC)) return //Split screen-loc up into X+Pixel_X and Y+Pixel_Y - var/list/screen_loc_params = splittext(PM["screen-loc"], ",") + var/list/screen_loc_params = splittext(LAZYACCESS(modifiers, SCREEN_LOC), ",") //Split X+Pixel_X up into list(X, Pixel_X) var/list/screen_loc_X = splittext(screen_loc_params[1],":") diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index d114a44d301c..7c0c2710eef8 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -72,11 +72,11 @@ add_filter("object_lighting", 3, alpha_mask_filter(render_source = O_LIGHTING_VISUAL_RENDER_TARGET, flags = MASK_INVERSE)) /** - * Things placed on this mask the lighting plane. Doesn't render directly. - * - * Gets masked by blocking plane. Use for things that you want blocked by - * mobs, items, etc. - */ + * Things placed on this mask the lighting plane. Doesn't render directly. + * + * Gets masked by blocking plane. Use for things that you want blocked by + * mobs, items, etc. + */ /atom/movable/screen/plane_master/emissive name = "emissive plane master" plane = EMISSIVE_PLANE @@ -88,11 +88,11 @@ add_filter("emissive_block", 1, alpha_mask_filter(render_source = EMISSIVE_BLOCKER_RENDER_TARGET, flags = MASK_INVERSE)) /** - * Things placed on this always mask the lighting plane. Doesn't render directly. - * - * Always masks the light plane, isn't blocked by anything. Use for on mob glows, - * magic stuff, etc. - */ + * Things placed on this always mask the lighting plane. Doesn't render directly. + * + * Always masks the light plane, isn't blocked by anything. Use for on mob glows, + * magic stuff, etc. + */ /atom/movable/screen/plane_master/emissive_unblockable name = "unblockable emissive plane master" plane = EMISSIVE_UNBLOCKABLE_PLANE @@ -100,10 +100,10 @@ render_target = EMISSIVE_UNBLOCKABLE_RENDER_TARGET /** - * Things placed on this layer mask the emissive layer. Doesn't render directly - * - * You really shouldn't be directly using this, use atom helpers instead - */ + * Things placed on this layer mask the emissive layer. Doesn't render directly + * + * You really shouldn't be directly using this, use atom helpers instead + */ /atom/movable/screen/plane_master/emissive_blocker name = "emissive blocker plane master" plane = EMISSIVE_BLOCKER_PLANE diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index e7edf84ecb3d..027dd6823199 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -484,9 +484,9 @@ if(isobserver(usr)) return - var/list/PL = params2list(params) - var/icon_x = text2num(PL["icon-x"]) - var/icon_y = text2num(PL["icon-y"]) + var/list/modifiers = params2list(params) + var/icon_x = text2num(LAZYACCESS(modifiers, ICON_X)) + var/icon_y = text2num(LAZYACCESS(modifiers, ICON_Y)) var/choice = get_zone_at(icon_x, icon_y) if (!choice) return 1 @@ -500,9 +500,9 @@ if(isobserver(usr)) return - var/list/PL = params2list(params) - var/icon_x = text2num(PL["icon-x"]) - var/icon_y = text2num(PL["icon-y"]) + var/list/modifiers = params2list(params) + var/icon_x = text2num(LAZYACCESS(modifiers, ICON_X)) + var/icon_y = text2num(LAZYACCESS(modifiers, ICON_Y)) var/choice = get_zone_at(icon_x, icon_y) if(hovering == choice) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 2e4687e050e4..666c974b52cb 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -1,12 +1,12 @@ /** - * This is the proc that handles the order of an item_attack. - * - * The order of procs called is: - * * [/atom/proc/tool_act] on the target. If it returns TRUE, the chain will be stopped. - * * [/obj/item/proc/pre_attack] on src. If this returns TRUE, the chain will be stopped. - * * [/atom/proc/attackby] on the target. If it returns TRUE, the chain will be stopped. - * * [/obj/item/proc/afterattack]. The return value does not matter. - */ + * This is the proc that handles the order of an item_attack. + * + * The order of procs called is: + * * [/atom/proc/tool_act] on the target. If it returns TRUE, the chain will be stopped. + * * [/obj/item/proc/pre_attack] on src. If this returns TRUE, the chain will be stopped. + * * [/atom/proc/attackby] on the target. If it returns TRUE, the chain will be stopped. + * * [/obj/item/proc/afterattack]. The return value does not matter. + */ /obj/item/proc/melee_attack_chain(mob/user, atom/target, params) if(tool_behaviour && target.tool_act(user, src, tool_behaviour)) return @@ -26,30 +26,30 @@ interact(user) /** - * Called on the item before it hits something - * - * Arguments: - * * atom/A - The atom about to be hit - * * mob/living/user - The mob doing the htting - * * params - click params such as alt/shift etc - * - * See: [/obj/item/proc/melee_attack_chain] - */ + * Called on the item before it hits something + * + * Arguments: + * * atom/A - The atom about to be hit + * * mob/living/user - The mob doing the htting + * * params - click params such as alt/shift etc + * + * See: [/obj/item/proc/melee_attack_chain] + */ /obj/item/proc/pre_attack(atom/A, mob/living/user, params) //do stuff before attackby! if(SEND_SIGNAL(src, COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_NO_ATTACK) return TRUE return FALSE //return TRUE to avoid calling attackby after this proc does stuff /** - * Called on an object being hit by an item - * - * Arguments: - * * obj/item/W - The item hitting this atom - * * mob/user - The wielder of this item - * * params - click params such as alt/shift etc - * - * See: [/obj/item/proc/melee_attack_chain] - */ + * Called on an object being hit by an item + * + * Arguments: + * * obj/item/W - The item hitting this atom + * * mob/user - The wielder of this item + * * params - click params such as alt/shift etc + * + * See: [/obj/item/proc/melee_attack_chain] + */ /atom/proc/attackby(obj/item/W, mob/user, params) if(SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, W, user, params) & COMPONENT_NO_AFTERATTACK) return TRUE @@ -87,12 +87,12 @@ return TRUE /** - * Called from [/mob/living/attackby] - * - * Arguments: - * * mob/living/M - The mob being hit by this item - * * mob/living/user - The mob hitting with this item - */ + * Called from [/mob/living/attackby] + * + * Arguments: + * * mob/living/M - The mob being hit by this item + * * mob/living/user - The mob hitting with this item + */ /obj/item/proc/attack(mob/living/M, mob/living/user) if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) & COMPONENT_ITEM_NO_ATTACK) return @@ -170,14 +170,14 @@ return ..() /** - * Last proc in the [/obj/item/proc/melee_attack_chain] - * - * Arguments: - * * atom/target - The thing that was hit - * * mob/user - The mob doing the hitting - * * proximity_flag - is 1 if this afterattack was called on something adjacent, in your square, or on your person. - * * click_parameters - is the params string from byond [/atom/proc/Click] code, see that documentation. - */ + * Last proc in the [/obj/item/proc/melee_attack_chain] + * + * Arguments: + * * atom/target - The thing that was hit + * * mob/user - The mob doing the hitting + * * proximity_flag - is 1 if this afterattack was called on something adjacent, in your square, or on your person. + * * click_parameters - is the params string from byond [/atom/proc/Click] code, see that documentation. + */ /obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters) SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters) SEND_SIGNAL(user, COMSIG_MOB_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 83fc40bf5f8f..829ec96e3f41 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -21,22 +21,22 @@ return var/list/modifiers = params2list(params) - if(modifiers["shift"] && modifiers["middle"]) - ShiftMiddleClickOn(A) - return - if(modifiers["shift"] && modifiers["ctrl"]) - CtrlShiftClickOn(A) - return - if(modifiers["middle"]) - MiddleClickOn(A) - return - if(modifiers["shift"]) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) + ShiftMiddleClickOn(A) + return + if(LAZYACCESS(modifiers, CTRL_CLICK)) + CtrlShiftClickOn(A) + return ShiftClickOn(A) return - if(modifiers["alt"]) + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) + MiddleClickOn(A, params) + return + if(LAZYACCESS(modifiers, ALT_CLICK)) AltClickNoInteract(src, A) return - if(modifiers["ctrl"]) + if(LAZYACCESS(modifiers, CTRL_CLICK)) CtrlClickOn(A) return diff --git a/code/_onclick/overmind.dm b/code/_onclick/overmind.dm index 07907b94cee9..d6b8994f82f0 100644 --- a/code/_onclick/overmind.dm +++ b/code/_onclick/overmind.dm @@ -3,16 +3,16 @@ /mob/camera/blob/ClickOn(atom/A, params) //Expand blob var/list/modifiers = params2list(params) - if(modifiers["middle"]) - MiddleClickOn(A) + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) + MiddleClickOn(A, params) return - if(modifiers["shift"]) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) ShiftClickOn(A) return - if(modifiers["alt"]) + if(LAZYACCESS(modifiers, ALT_CLICK)) AltClickOn(A) return - if(modifiers["ctrl"]) + if(LAZYACCESS(modifiers, CTRL_CLICK)) CtrlClickOn(A) return var/turf/T = get_turf(A) diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm index 693ab20b3b0b..ef78fb623386 100644 --- a/code/controllers/failsafe.dm +++ b/code/controllers/failsafe.dm @@ -1,7 +1,7 @@ - /** - * Failsafe - * - * Pretty much pokes the MC to make sure it's still alive. +/** + * Failsafe + * + * Pretty much pokes the MC to make sure it's still alive. **/ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 1c486df0d78c..f72f706c5bca 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -1,10 +1,10 @@ - /** - * StonedMC - * - * Designed to properly split up a given tick among subsystems - * Note: if you read parts of this code and think "why is it doing it that way" - * Odds are, there is a reason - * +/** + * StonedMC + * + * Designed to properly split up a given tick among subsystems + * Note: if you read parts of this code and think "why is it doing it that way" + * Odds are, there is a reason + * **/ //This is the ABSOLUTE ONLY THING that should init globally like this diff --git a/code/controllers/subsystem/chat.dm b/code/controllers/subsystem/chat.dm index f2e9da704f4b..0e4f8ecad2ce 100644 --- a/code/controllers/subsystem/chat.dm +++ b/code/controllers/subsystem/chat.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/controllers/subsystem/discord.dm b/code/controllers/subsystem/discord.dm index 087696698d66..55ada5446178 100644 --- a/code/controllers/subsystem/discord.dm +++ b/code/controllers/subsystem/discord.dm @@ -92,26 +92,26 @@ SUBSYSTEM_DEF(discord) notify_members_cache = notify_members // Updates the cache list /** - * Given a ckey, look up the discord user id attached to the user, if any - * - * This gets the most recent entry from the discord link table that is associated with the given ckey - * - * Arguments: - * * lookup_ckey A string representing the ckey to search on - */ + * Given a ckey, look up the discord user id attached to the user, if any + * + * This gets the most recent entry from the discord link table that is associated with the given ckey + * + * Arguments: + * * lookup_ckey A string representing the ckey to search on + */ /datum/controller/subsystem/discord/proc/lookup_id(lookup_ckey) var/datum/discord_link_record/link = find_discord_link_by_ckey(lookup_ckey) if(link) return link.discord_id /** - * Given a discord id as a string, look up the ckey attached to that account, if any - * - * This gets the most recent entry from the discord_link table that is associated with this discord id snowflake - * - * Arguments: - * * lookup_id The discord id as a string - */ + * Given a discord id as a string, look up the ckey attached to that account, if any + * + * This gets the most recent entry from the discord_link table that is associated with this discord id snowflake + * + * Arguments: + * * lookup_id The discord id as a string + */ /datum/controller/subsystem/discord/proc/lookup_ckey(lookup_id) var/datum/discord_link_record/link = find_discord_link_by_discord_id(lookup_id) if(link) @@ -127,28 +127,28 @@ SUBSYSTEM_DEF(discord) return generate_one_time_token(ckey) /** - * Generate a timebound token for discord verification - * - * This uses the common word list to generate a six word random token, this token can then be fed to a discord bot that has access - * to the same database, and it can use it to link a ckey to a discord id, with minimal user effort - * - * It returns the token to the calling proc, after inserting an entry into the discord_link table of the following form - * - * ``` - * (unique_id, ckey, null, the current time, the one time token generated) - * the null value will be filled out with the discord id by the integrated discord bot when a user verifies - * ``` - * - * Notes: - * * The token is guaranteed to unique during it's validity period - * * The validity period is currently set at 4 hours - * * a token may not be unique outside it's validity window (to reduce conflicts) - * - * Arguments: - * * ckey_for a string representing the ckey this token is for - * - * Returns a string representing the one time token - */ + * Generate a timebound token for discord verification + * + * This uses the common word list to generate a six word random token, this token can then be fed to a discord bot that has access + * to the same database, and it can use it to link a ckey to a discord id, with minimal user effort + * + * It returns the token to the calling proc, after inserting an entry into the discord_link table of the following form + * + * ``` + * (unique_id, ckey, null, the current time, the one time token generated) + * the null value will be filled out with the discord id by the integrated discord bot when a user verifies + * ``` + * + * Notes: + * * The token is guaranteed to unique during it's validity period + * * The validity period is currently set at 4 hours + * * a token may not be unique outside it's validity window (to reduce conflicts) + * + * Arguments: + * * ckey_for a string representing the ckey this token is for + * + * Returns a string representing the one time token + */ /datum/controller/subsystem/discord/proc/generate_one_time_token(ckey_for) var/not_unique = TRUE @@ -175,18 +175,18 @@ SUBSYSTEM_DEF(discord) return one_time_token /** - * Find discord link entry by the passed in user token - * - * This will look into the discord link table and return the *first* entry that matches the given one time token - * - * Remember, multiple entries can exist, as they are only guaranteed to be unique for their validity period - * - * Arguments: - * * one_time_token the string of words representing the one time token - * * timebound A boolean flag, that specifies if it should only look for entries within the last 4 hours, off by default - * - * Returns a [/datum/discord_link_record] - */ + * Find discord link entry by the passed in user token + * + * This will look into the discord link table and return the *first* entry that matches the given one time token + * + * Remember, multiple entries can exist, as they are only guaranteed to be unique for their validity period + * + * Arguments: + * * one_time_token the string of words representing the one time token + * * timebound A boolean flag, that specifies if it should only look for entries within the last 4 hours, off by default + * + * Returns a [/datum/discord_link_record] + */ /datum/controller/subsystem/discord/proc/find_discord_link_by_token(one_time_token, timebound = FALSE) var/timeboundsql = "" if(timebound) @@ -207,18 +207,18 @@ SUBSYSTEM_DEF(discord) qdel(query_get_discord_link_record) /** - * Find discord link entry by the passed in user ckey - * - * This will look into the discord link table and return the *first* entry that matches the given ckey - * - * Remember, multiple entries can exist - * - * Arguments: - * * ckey the users ckey as a string - * * timebound should we search only in the last 4 hours - * - * Returns a [/datum/discord_link_record] - */ + * Find discord link entry by the passed in user ckey + * + * This will look into the discord link table and return the *first* entry that matches the given ckey + * + * Remember, multiple entries can exist + * + * Arguments: + * * ckey the users ckey as a string + * * timebound should we search only in the last 4 hours + * + * Returns a [/datum/discord_link_record] + */ /datum/controller/subsystem/discord/proc/find_discord_link_by_ckey(ckey, timebound = FALSE) var/timeboundsql = "" if(timebound) @@ -242,18 +242,18 @@ SUBSYSTEM_DEF(discord) /** - * Find discord link entry by the passed in user ckey - * - * This will look into the discord link table and return the *first* entry that matches the given ckey - * - * Remember, multiple entries can exist - * - * Arguments: - * * discord_id The users discord id (string) - * * timebound should we search only in the last 4 hours - * - * Returns a [/datum/discord_link_record] - */ + * Find discord link entry by the passed in user ckey + * + * This will look into the discord link table and return the *first* entry that matches the given ckey + * + * Remember, multiple entries can exist + * + * Arguments: + * * discord_id The users discord id (string) + * * timebound should we search only in the last 4 hours + * + * Returns a [/datum/discord_link_record] + */ /datum/controller/subsystem/discord/proc/find_discord_link_by_discord_id(discord_id, timebound = FALSE) var/timeboundsql = "" if(timebound) diff --git a/code/controllers/subsystem/overmap.dm b/code/controllers/subsystem/overmap.dm index 38ab4447f961..82956e194a9d 100644 --- a/code/controllers/subsystem/overmap.dm +++ b/code/controllers/subsystem/overmap.dm @@ -29,8 +29,8 @@ SUBSYSTEM_DEF(overmap) var/list/list/overmap_container /** - * Creates an overmap object for shuttles, triggers initialization procs for ships - */ + * Creates an overmap object for shuttles, triggers initialization procs for ships + */ /datum/controller/subsystem/overmap/Initialize(start_timeofday) overmap_objects = list() controlled_ships = list() @@ -54,7 +54,7 @@ SUBSYSTEM_DEF(overmap) if (generator_type == OVERMAP_GENERATOR_SOLAR) var/datum/overmap/star/center var/startype = pick(subtypesof(/datum/overmap/star)) - center = new startype(list("x" = size / 2, "y" = size / 2)) + center = new startype(list("x" = round(size / 2 + 1), "y" = round(size / 2 + 1))) radius_positions = list() for(var/x in 1 to size) for(var/y in 1 to size) @@ -108,8 +108,8 @@ SUBSYSTEM_DEF(overmap) user.client.debug_variables(target) /** - * The proc that creates all the objects on the overmap, split into seperate procs for redundancy. - */ + * The proc that creates all the objects on the overmap, split into seperate procs for redundancy. + */ /datum/controller/subsystem/overmap/proc/create_map() if (generator_type == OVERMAP_GENERATOR_SOLAR) spawn_events_in_orbits() @@ -122,8 +122,8 @@ SUBSYSTEM_DEF(overmap) spawn_initial_ships() /** - * VERY Simple random generation for overmap events, spawns the event in a random turf and sometimes spreads it out similar to ores - */ + * VERY Simple random generation for overmap events, spawns the event in a random turf and sometimes spreads it out similar to ores + */ /datum/controller/subsystem/overmap/proc/spawn_events() var/max_clusters = CONFIG_GET(number/max_overmap_event_clusters) for(var/i in 1 to max_clusters) @@ -157,8 +157,8 @@ SUBSYSTEM_DEF(overmap) new event_type(position) /** - * See [/datum/controller/subsystem/overmap/proc/spawn_events], spawns "veins" (like ores) of events - */ + * See [/datum/controller/subsystem/overmap/proc/spawn_events], spawns "veins" (like ores) of events + */ /datum/controller/subsystem/overmap/proc/spawn_event_cluster(datum/overmap/event/type, list/location, chance) if(CONFIG_GET(number/max_overmap_events) <= LAZYLEN(events)) return @@ -173,8 +173,8 @@ SUBSYSTEM_DEF(overmap) spawn_event_cluster(type, location, chance / 2) /** - * Creates a single outpost somewhere near the center of the system. - */ + * Creates a single outpost somewhere near the center of the system. + */ /datum/controller/subsystem/overmap/proc/spawn_outpost() var/list/S = get_unused_overmap_square_in_radius(rand(3, round(size/5))) new /datum/overmap/dynamic/outpost(S) @@ -194,8 +194,8 @@ SUBSYSTEM_DEF(overmap) #endif /** - * Creates an overmap object for each ruin level, making them accessible. - */ + * Creates an overmap object for each ruin level, making them accessible. + */ /datum/controller/subsystem/overmap/proc/spawn_ruin_levels() for(var/i in 1 to CONFIG_GET(number/max_overmap_dynamic_events)) new /datum/overmap/dynamic() @@ -205,11 +205,11 @@ SUBSYSTEM_DEF(overmap) new /datum/overmap/dynamic() /** - * Reserves a square dynamic encounter area, and spawns a ruin in it if one is supplied. - * * on_planet - If the encounter should be on a generated planet. Required, as it will be otherwise inaccessible. - * * target - The ruin to spawn, if any - * * ruin_type - The ruin to spawn. Don't pass this argument if you want it to randomly select based on planet type. - */ + * Reserves a square dynamic encounter area, and spawns a ruin in it if one is supplied. + * * on_planet - If the encounter should be on a generated planet. Required, as it will be otherwise inaccessible. + * * target - The ruin to spawn, if any + * * ruin_type - The ruin to spawn. Don't pass this argument if you want it to randomly select based on planet type. + */ /datum/controller/subsystem/overmap/proc/spawn_dynamic_encounter(datum/overmap/dynamic/dynamic_datum, ruin = TRUE, ignore_cooldown = FALSE, datum/map_template/ruin/ruin_type) log_shuttle("SSOVERMAP: SPAWNING DYNAMIC ENCOUNTER STARTED") var/list/ruin_list = dynamic_datum.ruin_list @@ -244,6 +244,7 @@ SUBSYSTEM_DEF(overmap) surface = null vlevel.fill_in(surface, target_area) + var/list/ruin_turfs = list() if(ruin_type) var/turf/ruin_turf = locate(rand( vlevel.low_x+6 + vlevel.reserved_margin, @@ -252,6 +253,7 @@ SUBSYSTEM_DEF(overmap) vlevel.z_value ) ruin_type.load(ruin_turf) + ruin_turfs[ruin_type.name] = ruin_turf if(mapgen) //If what is going on is what I think it is, this is going to need to return some sort of promise to await. log_shuttle("SSOVERMAP: START_DYN_E: RUNNING MAPGEN REF [REF(mapgen)] FOR VLEV [vlevel.id] OF TYPE [mapgen.type]") @@ -330,13 +332,13 @@ SUBSYSTEM_DEF(overmap) quaternary_dock.dwidth = 0 docking_ports += quaternary_dock - return list(mapzone, docking_ports) + return list(mapzone, docking_ports, ruin_turfs) /** - * Returns a random, usually empty turf in the overmap - * * thing_to_not_have - The thing you don't want to be in the found tile, for example, an overmap event [/datum/overmap/event]. - * * tries - How many attempts it will try before giving up finding an unused tile. - */ + * Returns a random, usually empty turf in the overmap + * * thing_to_not_have - The thing you don't want to be in the found tile, for example, an overmap event [/datum/overmap/event]. + * * tries - How many attempts it will try before giving up finding an unused tile. + */ /datum/controller/subsystem/overmap/proc/get_unused_overmap_square(thing_to_not_have = /datum/overmap, tries = MAX_OVERMAP_PLACEMENT_ATTEMPTS, force = FALSE) for(var/i in 1 to tries) . = list("x" = rand(1, size), "y" = rand(1, size)) @@ -348,11 +350,11 @@ SUBSYSTEM_DEF(overmap) . = null /** - * Returns a random turf in a radius from the star, or a random empty turf if OVERMAP_GENERATOR_RANDOM is the active generator. - * * thing_to_not_have - The thing you don't want to be in the found tile, for example, an overmap event [/datum/overmap/event]. - * * tries - How many attempts it will try before giving up finding an unused tile.. - * * radius - The distance from the star to search for an empty tile. - */ + * Returns a random turf in a radius from the star, or a random empty turf if OVERMAP_GENERATOR_RANDOM is the active generator. + * * thing_to_not_have - The thing you don't want to be in the found tile, for example, an overmap event [/datum/overmap/event]. + * * tries - How many attempts it will try before giving up finding an unused tile.. + * * radius - The distance from the star to search for an empty tile. + */ /datum/controller/subsystem/overmap/proc/get_unused_overmap_square_in_radius(radius, thing_to_not_have = /datum/overmap, tries = MAX_OVERMAP_PLACEMENT_ATTEMPTS, force = FALSE) if(!radius) radius = "[rand(3, length(radius_positions) / 2)]" @@ -369,9 +371,9 @@ SUBSYSTEM_DEF(overmap) . = null /** - * Gets the parent overmap object (e.g. the planet the atom is on) for a given atom. - * * source - The object you want to get the corresponding parent overmap object for. - */ + * Gets the parent overmap object (e.g. the planet the atom is on) for a given atom. + * * source - The object you want to get the corresponding parent overmap object for. + */ /datum/controller/subsystem/overmap/proc/get_overmap_object_by_location(atom/source) for(var/O in overmap_objects) if(istype(O, /datum/overmap/dynamic)) diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index 3d51ef6f3d2d..ae8ca728e9ef 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -130,7 +130,7 @@ SUBSYSTEM_DEF(pai) /datum/controller/subsystem/pai/proc/spam_again() ghost_spam = FALSE -/datum/controller/subsystem/pai/proc/check_ready(var/datum/paiCandidate/C) +/datum/controller/subsystem/pai/proc/check_ready(datum/paiCandidate/C) if(!C.ready) return FALSE for(var/mob/dead/observer/O in GLOB.player_list) diff --git a/code/controllers/subsystem/pathfinder.dm b/code/controllers/subsystem/pathfinder.dm index 8e1cf946ae19..ccbea7930663 100644 --- a/code/controllers/subsystem/pathfinder.dm +++ b/code/controllers/subsystem/pathfinder.dm @@ -18,7 +18,7 @@ SUBSYSTEM_DEF(pathfinder) var/free var/list/flow -/datum/flowcache/New(var/n) +/datum/flowcache/New(n) . = ..() lcount = n run = 0 diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 2ee1e8ecc3c5..2fbbb488bbfa 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -234,6 +234,9 @@ SUBSYSTEM_DEF(persistence) if(fexists(json_file)) json = json_decode(file2text(json_file)) + if(!GLOB.chemical_reactions_list) + build_chemical_reactions_list() + for(var/randomized_type in subtypesof(/datum/chemical_reaction/randomized)) var/datum/chemical_reaction/randomized/R = new randomized_type var/loaded = FALSE diff --git a/code/controllers/subsystem/ping.dm b/code/controllers/subsystem/ping.dm new file mode 100644 index 000000000000..8886a4b61caa --- /dev/null +++ b/code/controllers/subsystem/ping.dm @@ -0,0 +1,40 @@ +/*! + * Copyright (c) 2022 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + +SUBSYSTEM_DEF(ping) + name = "Ping" + priority = FIRE_PRIORITY_PING + init_stage = INITSTAGE_EARLY + wait = 4 SECONDS + flags = SS_NO_INIT + runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME + + var/list/currentrun = list() + +/datum/controller/subsystem/ping/stat_entry() + ..("P:[GLOB.clients.len]") + +/datum/controller/subsystem/ping/fire(resumed = FALSE) + // Prepare the new batch of clients + if (!resumed) + src.currentrun = GLOB.clients.Copy() + + // De-reference the list for sanic speeds + var/list/currentrun = src.currentrun + + while (currentrun.len) + var/client/client = currentrun[currentrun.len] + currentrun.len-- + + if (client?.tgui_panel?.is_ready()) + // Send a soft ping + client.tgui_panel.window.send_message("ping/soft", list( + // Slightly less than the subsystem timer (somewhat arbitrary) + // to prevent incoming pings from resetting the afk state + "afk" = client.is_afk(3.5 SECONDS), + )) + + if (MC_TICK_CHECK) + return diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 0a6a1fdf6120..403f2f9aa51c 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -48,7 +48,3 @@ PROCESSING_SUBSYSTEM_DEF(quirks) badquirk = TRUE if(badquirk) cli.prefs.save_character() - - // Assign wayfinding pinpointer granting quirk if they're new - if(cli.get_exp_living(TRUE) < EXP_ASSIGN_WAYFINDER && !user.has_quirk(/datum/quirk/needswayfinder)) - user.add_quirk(/datum/quirk/needswayfinder, TRUE) diff --git a/code/controllers/subsystem/redbot.dm b/code/controllers/subsystem/redbot.dm index fb7671dd0a9b..103bfa68840b 100644 --- a/code/controllers/subsystem/redbot.dm +++ b/code/controllers/subsystem/redbot.dm @@ -1,5 +1,5 @@ SUBSYSTEM_DEF(redbot) - name = "Bot Comms" + name = "Redbot" flags = SS_NO_FIRE /datum/controller/subsystem/redbot/Initialize(timeofday) @@ -11,7 +11,7 @@ SUBSYSTEM_DEF(redbot) world.Export(query) return ..() -/datum/controller/subsystem/redbot/proc/send_discord_message(var/channel, var/message, var/priority_type) +/datum/controller/subsystem/redbot/proc/send_discord_message(channel, message, priority_type) var/bot_ip = CONFIG_GET(string/bot_ip) var/list/adm = get_admin_counts() var/list/allmins = adm["present"] diff --git a/code/controllers/subsystem/runechat.dm b/code/controllers/subsystem/runechat.dm index c0471a7a0892..038ac9f12713 100644 --- a/code/controllers/subsystem/runechat.dm +++ b/code/controllers/subsystem/runechat.dm @@ -6,15 +6,15 @@ #define BUCKET_LIMIT (world.time + TICKS2DS(min(BUCKET_LEN - (SSrunechat.practical_offset - DS2TICKS(world.time - SSrunechat.head_offset)) - 1, BUCKET_LEN - 1))) /** - * # Runechat Subsystem - * - * Maintains a timer-like system to handle destruction of runechat messages. Much of this code is modeled - * after or adapted from the timer subsystem. - * - * Note that this has the same structure for storing and queueing messages as the timer subsystem does - * for handling timers: the bucket_list is a list of chatmessage datums, each of which are the head - * of a circularly linked list. Any given index in bucket_list could be null, representing an empty bucket. - */ + * # Runechat Subsystem + * + * Maintains a timer-like system to handle destruction of runechat messages. Much of this code is modeled + * after or adapted from the timer subsystem. + * + * Note that this has the same structure for storing and queueing messages as the timer subsystem does + * for handling timers: the bucket_list is a list of chatmessage datums, each of which are the head + * of a circularly linked list. Any given index in bucket_list could be null, representing an empty bucket. + */ SUBSYSTEM_DEF(runechat) name = "Runechat" flags = SS_TICKER | SS_NO_INIT @@ -120,14 +120,14 @@ SUBSYSTEM_DEF(runechat) second_queue |= SSrunechat.second_queue /** - * Enters the runechat subsystem with this chatmessage, inserting it into the end-of-life queue - * - * This will also account for a chatmessage already being registered, and in which case - * the position will be updated to remove it from the previous location if necessary - * - * Arguments: - * * new_sched_destruction Optional, when provided is used to update an existing message with the new specified time - */ + * Enters the runechat subsystem with this chatmessage, inserting it into the end-of-life queue + * + * This will also account for a chatmessage already being registered, and in which case + * the position will be updated to remove it from the previous location if necessary + * + * Arguments: + * * new_sched_destruction Optional, when provided is used to update an existing message with the new specified time + */ /datum/chatmessage/proc/enter_subsystem(new_sched_destruction = 0) // Get local references from subsystem as they are faster to access than the datum references var/list/bucket_list = SSrunechat.bucket_list @@ -183,8 +183,8 @@ SUBSYSTEM_DEF(runechat) /** - * Removes this chatmessage datum from the runechat subsystem - */ + * Removes this chatmessage datum from the runechat subsystem + */ /datum/chatmessage/proc/leave_subsystem() // Attempt to find the bucket that contains this chat message var/bucket_pos = BUCKET_POS(scheduled_destruction) diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index 8306e88e2719..12937cdbbd83 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -55,15 +55,18 @@ SUBSYSTEM_DEF(server_maint) var/round_started = SSticker.HasRoundStarted() var/kick_inactive = CONFIG_GET(flag/kick_inactive) - var/afk_period - if(kick_inactive) - afk_period = CONFIG_GET(number/afk_period) - for(var/I in currentrun) - var/client/C = I + var/afk_period = CONFIG_GET(number/afk_period) + for(var/client/C as anything in currentrun) + if(!C) + continue + if(C.is_afk() && (world.time - C.inactivity) > C.last_seen_afk) + SEND_SIGNAL(C.mob, COMSIG_MOB_GO_INACTIVE) + C.last_seen_afk = world.time + //handle kicking inactive players if(round_started && kick_inactive && !C.holder && C.is_afk(afk_period)) - var/cmob = C.mob - if (!isnewplayer(cmob) || !SSticker.queued_players.Find(cmob)) + var/mob/cmob = C.mob + if(!isnewplayer(cmob) || !SSticker.queued_players.Find(cmob)) log_access("AFK: [key_name(C)]") to_chat(C, "You have been inactive for more than [DisplayTimeText(afk_period)] and have been disconnected.
You may reconnect via the button in the file menu or by clicking here to reconnect.") QDEL_IN(C, 1) //to ensure they get our message before getting disconnected diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 2c954b9503ca..542eab3e8469 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -247,12 +247,12 @@ SUBSYSTEM_DEF(shuttle) .[port] = overlap /** - * This proc loads a shuttle from a specified template. If no destination port is specified, the shuttle will be - * spawned at a generated transit doc. Doing this is how most ships are loaded. - * - * * loading_template - The shuttle map template to load. Can NOT be null. - * * destination_port - The port the newly loaded shuttle will be sent to after being fully spawned in. If you want to have a transit dock be created, use [proc/load_template] instead. Should NOT be null. - **/ + * This proc loads a shuttle from a specified template. If no destination port is specified, the shuttle will be + * spawned at a generated transit doc. Doing this is how most ships are loaded. + * + * * loading_template - The shuttle map template to load. Can NOT be null. + * * destination_port - The port the newly loaded shuttle will be sent to after being fully spawned in. If you want to have a transit dock be created, use [proc/load_template] instead. Should NOT be null. + **/ /datum/controller/subsystem/shuttle/proc/action_load(datum/map_template/shuttle/loading_template, datum/overmap/ship/controlled/parent, obj/docking_port/stationary/destination_port) if(!destination_port) CRASH("No destination port specified for shuttle load, aborting.") @@ -266,15 +266,15 @@ SUBSYSTEM_DEF(shuttle) return new_shuttle /** - * This proc replaces the given shuttle with a fresh new one spawned from a template. - * spawned at a generated transit doc. Doing this is how most ships are loaded. - * - * Hopefully this doesn't need to be used, it's a last resort for admin-coders at best, - * but I wanted to preserve the functionality of old action_load() in case it was needed. - * - * * to_replace - The shuttle to replace. Should NOT be null. - * * replacement - The shuttle map template to load in place of the old shuttle. Can NOT be null. - **/ + * This proc replaces the given shuttle with a fresh new one spawned from a template. + * spawned at a generated transit doc. Doing this is how most ships are loaded. + * + * Hopefully this doesn't need to be used, it's a last resort for admin-coders at best, + * but I wanted to preserve the functionality of old action_load() in case it was needed. + * + * * to_replace - The shuttle to replace. Should NOT be null. + * * replacement - The shuttle map template to load in place of the old shuttle. Can NOT be null. + **/ /datum/controller/subsystem/shuttle/proc/replace_shuttle(obj/docking_port/mobile/to_replace, datum/overmap/ship/controlled/parent, datum/map_template/shuttle/replacement) if(!to_replace || !replacement) return @@ -301,12 +301,12 @@ SUBSYSTEM_DEF(shuttle) return new_shuttle /** - * This proc is THE proc that loads a shuttle from a specified template. Anything else should go through this - * in order to spawn a new shuttle. - * - * * template - The shuttle map template to load. Can NOT be null. - * * spawn_transit - Whether or not to send the new shuttle to a newly-generated transit dock after loading. - **/ + * This proc is THE proc that loads a shuttle from a specified template. Anything else should go through this + * in order to spawn a new shuttle. + * + * * template - The shuttle map template to load. Can NOT be null. + * * spawn_transit - Whether or not to send the new shuttle to a newly-generated transit dock after loading. + **/ /datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/template, datum/overmap/ship/controlled/parent, spawn_transit = TRUE) . = FALSE var/loading_mapzone = SSmapping.create_map_zone("Shuttle Loading Zone") @@ -460,6 +460,32 @@ SUBSYSTEM_DEF(shuttle) . = TRUE break + if("owner") + var/obj/docking_port/mobile/port = locate(params["id"]) in mobile + if(!port || !port.current_ship) + return + var/datum/overmap/ship/controlled/port_ship = port.current_ship + var/datum/action/ship_owner/admin/owner_action = new(port_ship) + owner_action.Grant(user) + owner_action.Trigger() + return TRUE + + if("vv_port") + var/obj/docking_port/mobile/port = locate(params["id"]) in mobile + if(!port) + return + if(user.client) + user.client.debug_variables(port) + return TRUE + + if("vv_ship") + var/obj/docking_port/mobile/port = locate(params["id"]) in mobile + if(!port || !port.current_ship) + return + if(user.client) + user.client.debug_variables(port.current_ship) + return TRUE + if("fly") for(var/obj/docking_port/mobile/M as anything in mobile) if(REF(M) == params["id"]) diff --git a/code/controllers/subsystem/sounds.dm b/code/controllers/subsystem/sounds.dm index 87bee535466f..4301740dfb10 100644 --- a/code/controllers/subsystem/sounds.dm +++ b/code/controllers/subsystem/sounds.dm @@ -83,8 +83,8 @@ SUBSYSTEM_DEF(sounds) LAZYADD(using_channels_by_datum[D], .) /** - * Reserves a channel and updates the datastructure. Private proc. - */ + * Reserves a channel and updates the datastructure. Private proc. + */ /datum/controller/subsystem/sounds/proc/reserve_channel() PRIVATE_PROC(TRUE) if(channel_reserve_high <= random_channels_min) // out of channels @@ -94,8 +94,8 @@ SUBSYSTEM_DEF(sounds) return channel /** - * Frees a channel and updates the datastructure. Private proc. - */ + * Frees a channel and updates the datastructure. Private proc. + */ /datum/controller/subsystem/sounds/proc/free_channel(number) PRIVATE_PROC(TRUE) var/text_channel = num2text(number) diff --git a/code/controllers/subsystem/tgui.dm b/code/controllers/subsystem/tgui.dm index 2fe7c64c72dd..76ebc52ce416 100644 --- a/code/controllers/subsystem/tgui.dm +++ b/code/controllers/subsystem/tgui.dm @@ -1,10 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui subsystem * * Contains all tgui state and subsystem code. * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ SUBSYSTEM_DEF(tgui) @@ -25,6 +28,10 @@ SUBSYSTEM_DEF(tgui) /datum/controller/subsystem/tgui/PreInit() basehtml = file2text('tgui/public/tgui.html') + // Inject inline polyfills + var/polyfill = file2text('tgui/public/tgui-polyfill.min.js') + polyfill = "" + basehtml = replacetextEx(basehtml, "", polyfill) /datum/controller/subsystem/tgui/Shutdown() close_all_uis() @@ -33,7 +40,7 @@ SUBSYSTEM_DEF(tgui) msg = "P:[length(open_uis)]" return ..() -/datum/controller/subsystem/tgui/fire(resumed = 0) +/datum/controller/subsystem/tgui/fire(resumed = FALSE) if(!resumed) src.current_run = open_uis.Copy() // Cache for sanic speed (lists are references anyways) @@ -42,8 +49,8 @@ SUBSYSTEM_DEF(tgui) var/datum/tgui/ui = current_run[current_run.len] current_run.len-- // TODO: Move user/src_object check to process() - if(ui && ui.user && ui.src_object) - ui.process() + if(ui?.user && ui.src_object) + ui.process(wait * 0.1) else open_uis.Remove(ui) if(MC_TICK_CHECK) @@ -191,8 +198,8 @@ SUBSYSTEM_DEF(tgui) return count for(var/datum/tgui/ui in open_uis_by_src[key]) // Check if UI is valid. - if(ui && ui.src_object && ui.user && ui.src_object.ui_host(ui.user)) - ui.process(force = 1) + if(ui?.src_object && ui.user && ui.src_object.ui_host(ui.user)) + ui.process(wait * 0.1, force = 1) count++ return count @@ -213,7 +220,7 @@ SUBSYSTEM_DEF(tgui) return count for(var/datum/tgui/ui in open_uis_by_src[key]) // Check if UI is valid. - if(ui && ui.src_object && ui.user && ui.src_object.ui_host(ui.user)) + if(ui?.src_object && ui.user && ui.src_object.ui_host(ui.user)) ui.close() count++ return count @@ -230,7 +237,7 @@ SUBSYSTEM_DEF(tgui) for(var/key in open_uis_by_src) for(var/datum/tgui/ui in open_uis_by_src[key]) // Check if UI is valid. - if(ui && ui.src_object && ui.user && ui.src_object.ui_host(ui.user)) + if(ui?.src_object && ui.user && ui.src_object.ui_host(ui.user)) ui.close() count++ return count @@ -251,7 +258,7 @@ SUBSYSTEM_DEF(tgui) return count for(var/datum/tgui/ui in user.tgui_open_uis) if(isnull(src_object) || ui.src_object == src_object) - ui.process(force = 1) + ui.process(wait * 0.1, force = 1) count++ return count diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 9c937a51c65a..cfb250c607f9 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -49,8 +49,6 @@ SUBSYSTEM_DEF(ticker) var/news_report - var/late_join_disabled - var/roundend_check_paused = FALSE var/round_start_time = 0 diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index af387689eff5..d6442a69bda0 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -215,8 +215,8 @@ SUBSYSTEM_DEF(timer) break /** - * Generates a string with details about the timed event for debugging purposes - */ + * Generates a string with details about the timed event for debugging purposes + */ /datum/controller/subsystem/timer/proc/get_timer_debug_string(datum/timedevent/TE) . = "Timer: [TE]" . += "Prev: [TE.prev ? TE.prev : "NULL"], Next: [TE.next ? TE.next : "NULL"]" @@ -228,8 +228,8 @@ SUBSYSTEM_DEF(timer) . += ", NO CALLBACK" /** - * Destroys the existing buckets and creates new buckets from the existing timed events - */ + * Destroys the existing buckets and creates new buckets from the existing timed events + */ /datum/controller/subsystem/timer/proc/reset_buckets() WARNING("Timer buckets has been reset, this may cause timer to lag") bucket_reset_count++ @@ -337,14 +337,14 @@ SUBSYSTEM_DEF(timer) bucket_list |= SStimer.bucket_list /** - * # Timed Event - * - * This is the actual timer, it contains the callback and necessary data to maintain - * the timer. - * - * See the documentation for the timer subsystem for an explanation of the buckets referenced - * below in next and prev - */ + * # Timed Event + * + * This is the actual timer, it contains the callback and necessary data to maintain + * the timer. + * + * See the documentation for the timer subsystem for an explanation of the buckets referenced + * below in next and prev + */ /datum/timedevent /// ID used for timers when the TIMER_STOPPABLE flag is present var/id @@ -441,8 +441,8 @@ SUBSYSTEM_DEF(timer) return QDEL_HINT_IWILLGC /** - * Removes this timed event from any relevant buckets, or the secondary queue - */ + * Removes this timed event from any relevant buckets, or the secondary queue + */ /datum/timedevent/proc/bucketEject() // Store local references for the bucket list and secondary queue // This is faster than referencing them from the datum itself @@ -479,13 +479,13 @@ SUBSYSTEM_DEF(timer) bucket_joined = FALSE /** - * Attempts to add this timed event to a bucket, will enter the secondary queue - * if there are no appropriate buckets at this time. - * - * Secondary queueing of timed events will occur when the timespan covered by the existing - * buckets is exceeded by the time at which this timed event is scheduled to be invoked. - * If the timed event is tracking client time, it will be added to a special bucket. - */ + * Attempts to add this timed event to a bucket, will enter the secondary queue + * if there are no appropriate buckets at this time. + * + * Secondary queueing of timed events will occur when the timespan covered by the existing + * buckets is exceeded by the time at which this timed event is scheduled to be invoked. + * If the timed event is tracking client time, it will be added to a special bucket. + */ /datum/timedevent/proc/bucketJoin() // Generate debug-friendly name for timer var/static/list/bitfield_flags = list("TIMER_UNIQUE", "TIMER_OVERRIDE", "TIMER_CLIENT_TIME", "TIMER_STOPPABLE", "TIMER_NO_HASH_WAIT", "TIMER_LOOP") @@ -536,8 +536,8 @@ SUBSYSTEM_DEF(timer) bucket_list[bucket_pos] = src /** - * Returns a string of the type of the callback for this timer - */ + * Returns a string of the type of the callback for this timer + */ /datum/timedevent/proc/getcallingtype() . = "ERROR" if (callBack.object == GLOBAL_PROC) diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index fd14345253aa..8066c548896f 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -440,13 +440,13 @@ owner = M /** - * Generates a list of all laws on this datum, including rendered HTML tags if required - * - * Arguments: - * * include_zeroth - Operator that controls if law 0 or law 666 is returned in the set - * * show_numbers - Operator that controls if law numbers are prepended to the returned laws - * * render_html - Operator controlling if HTML tags are rendered on the returned laws - */ + * Generates a list of all laws on this datum, including rendered HTML tags if required + * + * Arguments: + * * include_zeroth - Operator that controls if law 0 or law 666 is returned in the set + * * show_numbers - Operator that controls if law numbers are prepended to the returned laws + * * render_html - Operator controlling if HTML tags are rendered on the returned laws + */ /datum/ai_laws/proc/get_law_list(include_zeroth = FALSE, show_numbers = TRUE, render_html = TRUE) var/list/data = list() diff --git a/code/datums/brain_damage/brain_trauma.dm b/code/datums/brain_damage/brain_trauma.dm index e63b6e680d02..12014fe51ba0 100644 --- a/code/datums/brain_damage/brain_trauma.dm +++ b/code/datums/brain_damage/brain_trauma.dm @@ -38,7 +38,8 @@ //Called when given to a mob /datum/brain_trauma/proc/on_gain() - to_chat(owner, gain_text) + if(gain_text) + to_chat(owner, gain_text) RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/handle_hearing) diff --git a/code/datums/callback.dm b/code/datums/callback.dm index 95343844aa26..b5baea28f1f1 100644 --- a/code/datums/callback.dm +++ b/code/datums/callback.dm @@ -1,53 +1,53 @@ /** - *# Callback Datums - *A datum that holds a proc to be called on another object, used to track proccalls to other objects - * - * ## USAGE - * - * ``` - * var/datum/callback/C = new(object|null, /proc/type/path|"procstring", arg1, arg2, ... argn) - * var/timerid = addtimer(C, time, timertype) - * you can also use the compiler define shorthand - * var/timerid = addtimer(CALLBACK(object|null, /proc/type/path|procstring, arg1, arg2, ... argn), time, timertype) - * ``` - * - * Note: proc strings can only be given for datum proc calls, global procs must be proc paths - * - * Also proc strings are strongly advised against because they don't compile error if the proc stops existing - * - * In some cases you can provide a shortform of the procname, see the proc typepath shortcuts documentation below - * - * ## INVOKING THE CALLBACK - *`var/result = C.Invoke(args, to, add)` additional args are added after the ones given when the callback was created - * - * `var/result = C.InvokeAsync(args, to, add)` Asyncronous - returns . on the first sleep then continues on in the background - * after the sleep/block ends, otherwise operates normally. - * - * ## PROC TYPEPATH SHORTCUTS - * (these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...) - * - * ### global proc while in another global proc: - * .procname - * - * `CALLBACK(GLOBAL_PROC, .some_proc_here)` - * - * ### proc defined on current(src) object (when in a /proc/ and not an override) OR overridden at src or any of it's parents: - * .procname - * - * `CALLBACK(src, .some_proc_here)` - * - * ### when the above doesn't apply: - *.proc/procname - * - * `CALLBACK(src, .proc/some_proc_here)` - * - * - * proc defined on a parent of a some type - * - * `/some/type/.proc/some_proc_here` - * - * Otherwise you must always provide the full typepath of the proc (/type/of/thing/proc/procname) - */ + *# Callback Datums + *A datum that holds a proc to be called on another object, used to track proccalls to other objects + * + * ## USAGE + * + * ``` + * var/datum/callback/C = new(object|null, /proc/type/path|"procstring", arg1, arg2, ... argn) + * var/timerid = addtimer(C, time, timertype) + * you can also use the compiler define shorthand + * var/timerid = addtimer(CALLBACK(object|null, /proc/type/path|procstring, arg1, arg2, ... argn), time, timertype) + * ``` + * + * Note: proc strings can only be given for datum proc calls, global procs must be proc paths + * + * Also proc strings are strongly advised against because they don't compile error if the proc stops existing + * + * In some cases you can provide a shortform of the procname, see the proc typepath shortcuts documentation below + * + * ## INVOKING THE CALLBACK + *`var/result = C.Invoke(args, to, add)` additional args are added after the ones given when the callback was created + * + * `var/result = C.InvokeAsync(args, to, add)` Asyncronous - returns . on the first sleep then continues on in the background + * after the sleep/block ends, otherwise operates normally. + * + * ## PROC TYPEPATH SHORTCUTS + * (these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...) + * + * ### global proc while in another global proc: + * .procname + * + * `CALLBACK(GLOBAL_PROC, .some_proc_here)` + * + * ### proc defined on current(src) object (when in a /proc/ and not an override) OR overridden at src or any of it's parents: + * .procname + * + * `CALLBACK(src, .some_proc_here)` + * + * ### when the above doesn't apply: + *.proc/procname + * + * `CALLBACK(src, .proc/some_proc_here)` + * + * + * proc defined on a parent of a some type + * + * `/some/type/.proc/some_proc_here` + * + * Otherwise you must always provide the full typepath of the proc (/type/of/thing/proc/procname) + */ /datum/callback ///The object we will be calling the proc on @@ -60,13 +60,13 @@ var/datum/weakref/user /** - * Create a new callback datum - * - * Arguments - * * thingtocall the object to call the proc on - * * proctocall the proc to call on the target object - * * ... an optional list of extra arguments to pass to the proc - */ + * Create a new callback datum + * + * Arguments + * * thingtocall the object to call the proc on + * * proctocall the proc to call on the target object + * * ... an optional list of extra arguments to pass to the proc + */ /datum/callback/New(thingtocall, proctocall, ...) if (thingtocall) object = thingtocall @@ -76,13 +76,13 @@ if(usr) user = WEAKREF(usr) /** - * Immediately Invoke proctocall on thingtocall, with waitfor set to false - * - * Arguments: - * * thingtocall Object to call on - * * proctocall Proc to call on that object - * * ... optional list of arguments to pass as arguments to the proc being called - */ + * Immediately Invoke proctocall on thingtocall, with waitfor set to false + * + * Arguments: + * * thingtocall Object to call on + * * proctocall Proc to call on that object + * * ... optional list of arguments to pass as arguments to the proc being called + */ /world/proc/ImmediateInvokeAsync(thingtocall, proctocall, ...) set waitfor = FALSE @@ -97,13 +97,13 @@ call(thingtocall, proctocall)(arglist(calling_arguments)) /** - * Invoke this callback - * - * Calls the registered proc on the registered object, if the user ref - * can be resolved it also inclues that as an arg - * - * If the datum being called on is varedited, the call is wrapped via [WrapAdminProcCall][/proc/WrapAdminProcCall] - */ + * Invoke this callback + * + * Calls the registered proc on the registered object, if the user ref + * can be resolved it also inclues that as an arg + * + * If the datum being called on is varedited, the call is wrapped via [WrapAdminProcCall][/proc/WrapAdminProcCall] + */ /datum/callback/proc/Invoke(...) if(!usr) var/datum/weakref/W = user @@ -130,13 +130,13 @@ return call(object, delegate)(arglist(calling_arguments)) /** - * Invoke this callback async (waitfor=false) - * - * Calls the registered proc on the registered object, if the user ref - * can be resolved it also inclues that as an arg - * - * If the datum being called on is varedited, the call is wrapped via WrapAdminProcCall - */ + * Invoke this callback async (waitfor=false) + * + * Calls the registered proc on the registered object, if the user ref + * can be resolved it also inclues that as an arg + * + * If the datum being called on is varedited, the call is wrapped via WrapAdminProcCall + */ /datum/callback/proc/InvokeAsync(...) set waitfor = FALSE @@ -166,7 +166,7 @@ /** Helper datum for the select callbacks proc - */ + */ /datum/callback_select var/list/finished var/pendingcount @@ -192,16 +192,16 @@ finished[index] = rtn /** - * Runs a list of callbacks asyncronously, returning only when all have finished - * - * Callbacks can be repeated, to call it multiple times - * - * Arguments: - * * list/callbacks the list of callbacks to be called - * * list/callback_args the list of lists of arguments to pass into each callback - * * savereturns Optionally save and return the list of returned values from each of the callbacks - * * resolution The number of byond ticks between each time you check if all callbacks are complete - */ + * Runs a list of callbacks asyncronously, returning only when all have finished + * + * Callbacks can be repeated, to call it multiple times + * + * Arguments: + * * list/callbacks the list of callbacks to be called + * * list/callback_args the list of lists of arguments to pass into each callback + * * savereturns Optionally save and return the list of returned values from each of the callbacks + * * resolution The number of byond ticks between each time you check if all callbacks are complete + */ /proc/callback_select(list/callbacks, list/callback_args, savereturns = TRUE, resolution = 1) if (!callbacks) return diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 60d0a146d864..39ee97ceea8f 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -22,10 +22,10 @@ #define WXH_TO_HEIGHT(x) text2num(copytext(x, findtextEx(x, "x") + 1)) /** - * # Chat Message Overlay - * - * Datum for generating a message overlay on the map - */ + * # Chat Message Overlay + * + * Datum for generating a message overlay on the map + */ /datum/chatmessage /// The visual element of the chat messsage var/image/message @@ -47,15 +47,15 @@ var/static/current_z_idx = 0 /** - * Constructs a chat message overlay - * - * Arguments: - * * text - The text content of the overlay - * * target - The target atom to display the overlay at - * * owner - The mob that owns this overlay, only this mob will be able to view it - * * extra_classes - Extra classes to apply to the span that holds the text - * * lifespan - The lifespan of the message in deciseconds - */ + * Constructs a chat message overlay + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ /datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes = list(), lifespan = CHAT_MESSAGE_LIFESPAN) . = ..() if (!istype(target)) @@ -78,23 +78,23 @@ return ..() /** - * Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal - */ + * Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal + */ /datum/chatmessage/proc/on_parent_qdel() SIGNAL_HANDLER qdel(src) /** - * Generates a chat message image representation - * - * Arguments: - * * text - The text content of the overlay - * * target - The target atom to display the overlay at - * * owner - The mob that owns this overlay, only this mob will be able to view it - * * extra_classes - Extra classes to apply to the span that holds the text - * * lifespan - The lifespan of the message in deciseconds - */ + * Generates a chat message image representation + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ /datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan) // Register client who owns this message owned_by = owner.client @@ -183,26 +183,26 @@ enter_subsystem() /** - * Applies final animations to overlay CHAT_MESSAGE_EOL_FADE deciseconds prior to message deletion, - * sets time for scheduling deletion and re-enters the runechat SS for qdeling - * - * Arguments: - * * fadetime - The amount of time to animate the message's fadeout for - */ + * Applies final animations to overlay CHAT_MESSAGE_EOL_FADE deciseconds prior to message deletion, + * sets time for scheduling deletion and re-enters the runechat SS for qdeling + * + * Arguments: + * * fadetime - The amount of time to animate the message's fadeout for + */ /datum/chatmessage/proc/end_of_life(fadetime = CHAT_MESSAGE_EOL_FADE) eol_complete = scheduled_destruction + fadetime animate(message, alpha = 0, time = fadetime, flags = ANIMATION_PARALLEL) enter_subsystem(eol_complete) // re-enter the runechat SS with the EOL completion time to QDEL self /** - * Creates a message overlay at a defined location for a given speaker - * - * Arguments: - * * speaker - The atom who is saying this message - * * message_language - The language that the message is said in - * * raw_message - The text content of the message - * * spans - Additional classes to be added to the message - */ + * Creates a message overlay at a defined location for a given speaker + * + * Arguments: + * * speaker - The atom who is saying this message + * * message_language - The language that the message is said in + * * raw_message - The text content of the message + * * spans - Additional classes to be added to the message + */ /mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, list/spans, runechat_flags = NONE) // Ensure the list we are using, if present, is a copy so we don't modify the list provided to us spans = spans ? spans.Copy() : list() @@ -232,15 +232,15 @@ #define CM_COLOR_LUM_MAX 0.75 /** - * Gets a color for a name, will return the same color for a given string consistently within a round.atom - * - * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. - * - * Arguments: - * * name - The name to generate a color for - * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation - * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence - */ + * Gets a color for a name, will return the same color for a given string consistently within a round.atom + * + * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. + * + * Arguments: + * * name - The name to generate a color for + * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation + * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence + */ /datum/chatmessage/proc/colorize_string(name, sat_shift = 1, lum_shift = 1) // seed to help randomness var/static/rseed = rand(1,26) diff --git a/code/datums/components/README.md b/code/datums/components/README.md index 3080f7e7b441..2921652b5378 100644 --- a/code/datums/components/README.md +++ b/code/datums/components/README.md @@ -6,4 +6,4 @@ Loosely adapted from /vg/. This is an entity component system for adding behavio See [this thread](https://tgstation13.org/phpBB/viewtopic.php?f=5&t=22674) for an introduction to the system as a whole. -### See/Define signals and their arguments in [__DEFINES\components.dm](../../__DEFINES/components.dm) +### See/Define signals and their arguments in [\_\_DEFINES\components.dm](../../__DEFINES/components.dm) diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index f8894f6bedde..1d16391a18e1 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -11,31 +11,31 @@ */ /datum/component /** - * Defines how duplicate existing components are handled when added to a datum - * - * See [COMPONENT_DUPE_*][COMPONENT_DUPE_ALLOWED] definitions for available options - */ + * Defines how duplicate existing components are handled when added to a datum + * + * See [COMPONENT_DUPE_*][COMPONENT_DUPE_ALLOWED] definitions for available options + */ var/dupe_mode = COMPONENT_DUPE_HIGHLANDER /** - * The type to check for duplication - * - * `null` means exact match on `type` (default) - * - * Any other type means that and all subtypes - */ + * The type to check for duplication + * + * `null` means exact match on `type` (default) + * + * Any other type means that and all subtypes + */ var/dupe_type /// The datum this components belongs to var/datum/parent /** - * Only set to true if you are able to properly transfer this component - * - * At a minimum [RegisterWithParent][/datum/component/proc/RegisterWithParent] and [UnregisterFromParent][/datum/component/proc/UnregisterFromParent] should be used - * - * Make sure you also implement [PostTransfer][/datum/component/proc/PostTransfer] for any post transfer handling - */ + * Only set to true if you are able to properly transfer this component + * + * At a minimum [RegisterWithParent][/datum/component/proc/RegisterWithParent] and [UnregisterFromParent][/datum/component/proc/UnregisterFromParent] should be used + * + * Make sure you also implement [PostTransfer][/datum/component/proc/PostTransfer] for any post transfer handling + */ var/can_transfer = FALSE /** diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index c8eb15074679..a804ec657526 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -60,12 +60,12 @@ */ /** - * Check that the contents of the recipe meet the requirements. - * - * user: The /mob that initated the crafting. - * R: The /datum/crafting_recipe being attempted. - * contents: List of items to search for R's reqs. - */ + * Check that the contents of the recipe meet the requirements. + * + * user: The /mob that initated the crafting. + * R: The /datum/crafting_recipe being attempted. + * contents: List of items to search for R's reqs. + */ /datum/component/personal_crafting/proc/check_contents(atom/a, datum/crafting_recipe/R, list/contents) var/list/item_instances = contents["instances"] contents = contents["other"] diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 5ee3f81503c6..aa811ebbc3db 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -17,11 +17,11 @@ blacklist += result /** - * Run custom pre-craft checks for this recipe - * - * user: The /mob that initiated the crafting - * collected_requirements: A list of lists of /obj/item instances that satisfy reqs. Top level list is keyed by requirement path. - */ + * Run custom pre-craft checks for this recipe + * + * user: The /mob that initiated the crafting + * collected_requirements: A list of lists of /obj/item instances that satisfy reqs. Top level list is keyed by requirement path. + */ /datum/crafting_recipe/proc/check_requirements(mob/user, list/collected_requirements) return TRUE diff --git a/code/datums/components/creamed.dm b/code/datums/components/creamed.dm index fa708d0cd9c0..fcd1f1b8cc74 100644 --- a/code/datums/components/creamed.dm +++ b/code/datums/components/creamed.dm @@ -5,10 +5,10 @@ GLOBAL_LIST_INIT(creamable, typecacheof(list( /mob/living/silicon/ai))) /** - * Creamed component - * - * For when you have pie on your face - */ + * Creamed component + * + * For when you have pie on your face + */ /datum/component/creamed dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS diff --git a/code/datums/components/dejavu.dm b/code/datums/components/dejavu.dm index 1bad589c97ea..19e41148d3bd 100644 --- a/code/datums/components/dejavu.dm +++ b/code/datums/components/dejavu.dm @@ -1,6 +1,6 @@ /** - * A component to reset the parent to its previous state after some time passes - */ + * A component to reset the parent to its previous state after some time passes + */ /datum/component/dejavu /// The turf the parent was on when this components was applied, they get moved back here after the duration var/turf/starting_turf diff --git a/code/datums/components/edible.dm b/code/datums/components/edible.dm index b84f4b1fbd62..b9a89ad9de90 100644 --- a/code/datums/components/edible.dm +++ b/code/datums/components/edible.dm @@ -193,7 +193,7 @@ Behavior that's still missing from this component that original food items had t return TRUE ///Check foodtypes to see if we should send a moodlet -/datum/component/edible/proc/checkLiked(var/fraction, mob/M) +/datum/component/edible/proc/checkLiked(fraction, mob/M) if(last_check_time + 50 > world.time) return FALSE if(!ishuman(M)) diff --git a/code/datums/components/fullauto.dm b/code/datums/components/fullauto.dm new file mode 100644 index 000000000000..bc55b9b76fc9 --- /dev/null +++ b/code/datums/components/fullauto.dm @@ -0,0 +1,280 @@ +#define AUTOFIRE_MOUSEUP 0 +#define AUTOFIRE_MOUSEDOWN 1 + +/datum/component/automatic_fire + var/client/clicker + var/mob/living/shooter + var/atom/target + var/turf/target_loc //For dealing with locking on targets due to BYOND engine limitations (the mouse input only happening when mouse moves). + var/autofire_stat = AUTOFIRE_STAT_IDLE + var/mouse_parameters + var/autofire_shot_delay = 0.3 SECONDS //Time between individual shots. + var/mouse_status = AUTOFIRE_MOUSEUP //This seems hacky but there can be two MouseDown() without a MouseUp() in between if the user holds click and uses alt+tab, printscreen or similar. + + COOLDOWN_DECLARE(next_shot_cd) + +/datum/component/automatic_fire/Initialize(_autofire_shot_delay) + . = ..() + if(!isgun(parent)) + return COMPONENT_INCOMPATIBLE + var/obj/item/gun = parent + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/wake_up) + if(_autofire_shot_delay) + autofire_shot_delay = _autofire_shot_delay + if(autofire_stat == AUTOFIRE_STAT_IDLE && ismob(gun.loc)) + var/mob/user = gun.loc + wake_up(src, user) + + +/datum/component/automatic_fire/Destroy() + autofire_off() + return ..() + +/datum/component/automatic_fire/process(delta_time) + if(autofire_stat != AUTOFIRE_STAT_FIRING) + STOP_PROCESSING(SSprojectiles, src) + return + + process_shot() + +/datum/component/automatic_fire/proc/wake_up(datum/source, mob/user, slot) + SIGNAL_HANDLER + + if(autofire_stat == AUTOFIRE_STAT_ALERT) + return //We've updated the firemode. No need for more. + if(autofire_stat == AUTOFIRE_STAT_FIRING) + stop_autofiring() //Let's stop shooting to avoid issues. + return + if(iscarbon(user)) + var/mob/living/carbon/arizona_ranger = user + if(arizona_ranger.is_holding(parent)) + autofire_on(arizona_ranger.client) + + +// There is a gun and there is a user wielding it. The component now waits for the mouse click. +/datum/component/automatic_fire/proc/autofire_on(client/usercli) + SIGNAL_HANDLER + + if(autofire_stat != AUTOFIRE_STAT_IDLE) + return + autofire_stat = AUTOFIRE_STAT_ALERT + if(!QDELETED(usercli)) + clicker = usercli + shooter = clicker.mob + RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDOWN, .proc/on_mouse_down) + if(!QDELETED(shooter)) + RegisterSignal(shooter, COMSIG_MOB_LOGOUT, .proc/autofire_off) + UnregisterSignal(shooter, COMSIG_MOB_LOGIN) + RegisterSignal(parent, list(COMSIG_PARENT_QDELETING, COMSIG_ITEM_DROPPED), .proc/autofire_off) + parent.RegisterSignal(src, COMSIG_AUTOFIRE_ONMOUSEDOWN, /obj/item/gun/.proc/autofire_bypass_check) + parent.RegisterSignal(parent, COMSIG_AUTOFIRE_SHOT, /obj/item/gun/.proc/do_autofire) + +/datum/component/automatic_fire/proc/autofire_off(datum/source) + SIGNAL_HANDLER + if(autofire_stat == AUTOFIRE_STAT_IDLE) + return + if(autofire_stat == AUTOFIRE_STAT_FIRING) + stop_autofiring() + + autofire_stat = AUTOFIRE_STAT_IDLE + + if(!QDELETED(clicker)) + UnregisterSignal(clicker, list(COMSIG_CLIENT_MOUSEDOWN, COMSIG_CLIENT_MOUSEUP, COMSIG_CLIENT_MOUSEDRAG)) + mouse_status = AUTOFIRE_MOUSEUP //In regards to the component there's no click anymore to care about. + clicker = null + if(!QDELETED(shooter)) + RegisterSignal(shooter, COMSIG_MOB_LOGIN, .proc/on_client_login) + UnregisterSignal(shooter, COMSIG_MOB_LOGOUT) + UnregisterSignal(parent, list(COMSIG_PARENT_QDELETING, COMSIG_ITEM_DROPPED)) + shooter = null + parent.UnregisterSignal(parent, COMSIG_AUTOFIRE_SHOT) + parent.UnregisterSignal(src, COMSIG_AUTOFIRE_ONMOUSEDOWN) + +/datum/component/automatic_fire/proc/on_client_login(mob/source) + SIGNAL_HANDLER + if(!source.client) + return + if(source.is_holding(parent)) + autofire_on(source.client) + +/datum/component/automatic_fire/proc/on_mouse_down(client/source, atom/_target, turf/location, control, params) + SIGNAL_HANDLER + var/list/modifiers = params2list(params) //If they're shift+clicking, for example, let's not have them accidentally shoot. + + if(LAZYACCESS(modifiers, SHIFT_CLICK)) + return + if(LAZYACCESS(modifiers, CTRL_CLICK)) + return + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) + return + if(LAZYACCESS(modifiers, ALT_CLICK)) + return + if(source.mob.throw_mode) + return + if(!isturf(source.mob.loc)) //No firing inside lockers and stuff. + return + if(get_dist(source.mob, _target) < 2) //Adjacent clicking. + return + + if(isnull(location)) //Clicking on a screen object. + if(_target.plane != CLICKCATCHER_PLANE) //The clickcatcher is a special case. We want the click to trigger then, under it. + return //If we click and drag on our worn backpack, for example, we want it to open instead. + _target = params2turf(modifiers["screen-loc"], get_turf(source.eye), source) + if(!_target) + CRASH("Failed to get the turf under clickcatcher") + + if(SEND_SIGNAL(src, COMSIG_AUTOFIRE_ONMOUSEDOWN, source, _target, location, control, params) & COMPONENT_AUTOFIRE_ONMOUSEDOWN_BYPASS) + return + + source.click_intercept_time = world.time //From this point onwards Click() will no longer be triggered. + + if(autofire_stat == (AUTOFIRE_STAT_IDLE)) + CRASH("on_mouse_down() called with [autofire_stat] autofire_stat") + if(autofire_stat == AUTOFIRE_STAT_FIRING) + stop_autofiring() //This can happen if we click and hold and then alt+tab, printscreen or other such action. MouseUp won't be called then and it will keep autofiring. + + target = _target + target_loc = get_turf(target) + mouse_parameters = params + INVOKE_ASYNC(src, .proc/start_autofiring) + + +//Dakka-dakka +/datum/component/automatic_fire/proc/start_autofiring() + if(autofire_stat == AUTOFIRE_STAT_FIRING) + return //Already pew-pewing. + autofire_stat = AUTOFIRE_STAT_FIRING + + clicker.mouse_override_icon = 'icons/effects/mouse_pointers/weapon_pointer.dmi' + clicker.mouse_pointer_icon = clicker.mouse_override_icon + + if(mouse_status == AUTOFIRE_MOUSEUP) //See mouse_status definition for the reason for this. + RegisterSignal(clicker, COMSIG_CLIENT_MOUSEUP, .proc/on_mouse_up) + mouse_status = AUTOFIRE_MOUSEDOWN + + RegisterSignal(shooter, COMSIG_MOB_SWAP_HANDS, .proc/stop_autofiring) + + if(isgun(parent)) + var/obj/item/gun/shoota = parent + if(!shoota.on_autofire_start(shooter)) //This is needed because the minigun has a do_after before firing and signals are async. + stop_autofiring() + return + if(autofire_stat != AUTOFIRE_STAT_FIRING) + return //Things may have changed while on_autofire_start() was being processed, due to do_after's sleep. + + if(!process_shot()) //First shot is processed instantly. + return //If it fails, such as when the gun is empty, then there's no need to schedule a second shot. + + START_PROCESSING(SSprojectiles, src) + RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDRAG, .proc/on_mouse_drag) + + +/datum/component/automatic_fire/proc/on_mouse_up(datum/source, atom/object, turf/location, control, params) + SIGNAL_HANDLER + UnregisterSignal(clicker, COMSIG_CLIENT_MOUSEUP) + mouse_status = AUTOFIRE_MOUSEUP + if(autofire_stat == AUTOFIRE_STAT_FIRING) + stop_autofiring() + return COMPONENT_CLIENT_MOUSEUP_INTERCEPT + + +/datum/component/automatic_fire/proc/stop_autofiring(datum/source, atom/object, turf/location, control, params) + SIGNAL_HANDLER + if(autofire_stat != AUTOFIRE_STAT_FIRING) + return + STOP_PROCESSING(SSprojectiles, src) + autofire_stat = AUTOFIRE_STAT_ALERT + if(clicker) + clicker.mouse_override_icon = null + clicker.mouse_pointer_icon = clicker.mouse_override_icon + UnregisterSignal(clicker, COMSIG_CLIENT_MOUSEDRAG) + if(!QDELETED(shooter)) + UnregisterSignal(shooter, COMSIG_MOB_SWAP_HANDS) + target = null + target_loc = null + mouse_parameters = null + +/datum/component/automatic_fire/proc/on_mouse_drag(client/source, atom/src_object, atom/over_object, turf/src_location, turf/over_location, src_control, over_control, params) + SIGNAL_HANDLER + if(isnull(over_location)) //This happens when the mouse is over an inventory or screen object, or on entering deep darkness, for example. + var/list/modifiers = params2list(params) + var/new_target = params2turf(modifiers["screen-loc"], get_turf(source.eye), source) + mouse_parameters = params + if(!new_target) + if(QDELETED(target)) //No new target acquired, and old one was deleted, get us out of here. + stop_autofiring() + CRASH("on_mouse_drag failed to get the turf under screen object [over_object.type]. Old target was incidentally QDELETED.") + target = get_turf(target) //If previous target wasn't a turf, let's turn it into one to avoid locking onto a potentially moving target. + target_loc = target + CRASH("on_mouse_drag failed to get the turf under screen object [over_object.type]") + target = new_target + target_loc = new_target + return + target = over_object + target_loc = get_turf(over_object) + mouse_parameters = params + + +/datum/component/automatic_fire/proc/process_shot() + if(autofire_stat != AUTOFIRE_STAT_FIRING) + return FALSE + if(!COOLDOWN_FINISHED(src, next_shot_cd)) + return TRUE + if(QDELETED(target) || get_turf(target) != target_loc) //Target moved or got destroyed since we last aimed. + target = target_loc //So we keep firing on the emptied tile until we move our mouse and find a new target. + if(get_dist(shooter, target) <= 0) + target = get_step(shooter, shooter.dir) //Shoot in the direction faced if the mouse is on the same tile as we are. + target_loc = target + else if(!in_view_range(shooter, target)) + stop_autofiring() //Elvis has left the building. + return FALSE + shooter.face_atom(target) + COOLDOWN_START(src, next_shot_cd, autofire_shot_delay) + if(SEND_SIGNAL(parent, COMSIG_AUTOFIRE_SHOT, target, shooter, mouse_parameters) & COMPONENT_AUTOFIRE_SHOT_SUCCESS) + return TRUE + stop_autofiring() + return FALSE + +// Gun procs. + +/obj/item/gun/proc/on_autofire_start(mob/living/shooter) + if(semicd || shooter.stat || !can_trigger_gun(shooter)) + return FALSE + if(!can_shoot()) + shoot_with_empty_chamber(shooter) + return FALSE + var/obj/item/bodypart/other_hand = shooter.has_hand_for_held_index(shooter.get_inactive_hand_index()) + if(weapon_weight == WEAPON_HEAVY && (shooter.get_inactive_held_item() || !other_hand)) + to_chat(shooter, "You need two hands to fire [src]!") + return FALSE + return TRUE + + +/obj/item/gun/proc/autofire_bypass_check(datum/source, client/clicker, atom/target, turf/location, control, params) + SIGNAL_HANDLER + if(clicker.mob.get_active_held_item() != src) + return COMPONENT_AUTOFIRE_ONMOUSEDOWN_BYPASS + + +/obj/item/gun/proc/do_autofire(datum/source, atom/target, mob/living/shooter, params) + SIGNAL_HANDLER + if(semicd || shooter.incapacitated()) + return NONE + if(!can_shoot()) + shoot_with_empty_chamber(shooter) + return NONE + INVOKE_ASYNC(src, .proc/do_autofire_shot, source, target, shooter, params) + return COMPONENT_AUTOFIRE_SHOT_SUCCESS //All is well, we can continue shooting. + + +/obj/item/gun/proc/do_autofire_shot(datum/source, atom/target, mob/living/shooter, params) + var/obj/item/gun/akimbo_gun = shooter.get_inactive_held_item() + var/bonus_spread = 0 + if(istype(akimbo_gun) && weapon_weight < WEAPON_MEDIUM) + if(akimbo_gun.weapon_weight < WEAPON_MEDIUM && akimbo_gun.can_trigger_gun(shooter)) + bonus_spread = dual_wield_spread + addtimer(CALLBACK(akimbo_gun, /obj/item/gun.proc/process_fire, target, shooter, TRUE, params, null, bonus_spread), 1) + process_fire(target, shooter, TRUE, params, null, bonus_spread) + +#undef AUTOFIRE_MOUSEUP +#undef AUTOFIRE_MOUSEDOWN diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 694ffaccfe3f..5b43b0f78a33 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -108,7 +108,7 @@ user.put_in_active_hand(I) /// Proc specifically for inserting items, returns the amount of materials entered. -/datum/component/material_container/proc/insert_item(obj/item/I, var/multiplier = 1, stack_amt) +/datum/component/material_container/proc/insert_item(obj/item/I, multiplier = 1, stack_amt) if(!I) return FALSE @@ -132,7 +132,7 @@ return primary_mat /// For inserting an amount of material -/datum/component/material_container/proc/insert_amount_mat(amt, var/datum/material/mat) +/datum/component/material_container/proc/insert_amount_mat(amt, datum/material/mat) if(!istype(mat)) mat = SSmaterials.GetMaterialRef(mat) if(amt > 0 && has_space(amt)) @@ -147,7 +147,7 @@ return FALSE /// Uses an amount of a specific material, effectively removing it. -/datum/component/material_container/proc/use_amount_mat(amt, var/datum/material/mat) +/datum/component/material_container/proc/use_amount_mat(amt, datum/material/mat) if(!istype(mat)) mat = SSmaterials.GetMaterialRef(mat) var/amount = materials[mat] @@ -159,7 +159,7 @@ return FALSE /// Proc for transfering materials to another container. -/datum/component/material_container/proc/transer_amt_to(var/datum/component/material_container/T, amt, var/datum/material/mat) +/datum/component/material_container/proc/transer_amt_to(datum/component/material_container/T, amt, datum/material/mat) if(!istype(mat)) mat = SSmaterials.GetMaterialRef(mat) if((amt==0)||(!T)||(!mat)) @@ -211,7 +211,7 @@ return total_amount_save - total_amount /// For spawning mineral sheets at a specific location. Used by machines to output sheets. -/datum/component/material_container/proc/retrieve_sheets(sheet_amt, var/datum/material/M, target = null) +/datum/component/material_container/proc/retrieve_sheets(sheet_amt, datum/material/M, target = null) if(!M.sheet_type) return 0 //Add greyscale sheet handling here later if(sheet_amt <= 0) @@ -279,7 +279,7 @@ /// Returns TRUE if you have enough of the specified material. -/datum/component/material_container/proc/has_enough_of_material(var/datum/material/req_mat, amount, multiplier=1) +/datum/component/material_container/proc/has_enough_of_material(datum/material/req_mat, amount, multiplier=1) if(!materials[req_mat]) //Do we have the resource? return FALSE //Can't afford it var/amount_required = amount * multiplier @@ -318,7 +318,7 @@ return material_amount /// Returns the amount of a specific material in this container. -/datum/component/material_container/proc/get_material_amount(var/datum/material/mat) +/datum/component/material_container/proc/get_material_amount(datum/material/mat) if(!istype(mat)) mat = SSmaterials.GetMaterialRef(mat) return(materials[mat]) diff --git a/code/datums/components/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm index c35303739895..623b24fb2c42 100644 --- a/code/datums/components/overlay_lighting.dm +++ b/code/datums/components/overlay_lighting.dm @@ -10,20 +10,20 @@ #define SHORT_CAST 2 /** - * Movable atom overlay-based lighting component. - * - * * Component works by applying a visual object to the parent target. - * - * * The component tracks the parent's loc to determine the current_holder. - * * The current_holder is either the parent or its loc, whichever is on a turf. If none, then the current_holder is null and the light is not visible. - * - * * Lighting works at its base by applying a dark overlay and "cutting" said darkness with light, adding (possibly colored) transparency. - * * This component uses the visible_mask visual object to apply said light mask on the darkness. - * - * * The main limitation of this system is that it uses a limited number of pre-baked geometrical shapes, but for most uses it does the job. - * - * * Another limitation is for big lights: you only see the light if you see the object emiting it. - * * For small objects this is good (you can't see them behind a wall), but for big ones this quickly becomes prety clumsy. + * Movable atom overlay-based lighting component. + * + * * Component works by applying a visual object to the parent target. + * + * * The component tracks the parent's loc to determine the current_holder. + * * The current_holder is either the parent or its loc, whichever is on a turf. If none, then the current_holder is null and the light is not visible. + * + * * Lighting works at its base by applying a dark overlay and "cutting" said darkness with light, adding (possibly colored) transparency. + * * This component uses the visible_mask visual object to apply said light mask on the darkness. + * + * * The main limitation of this system is that it uses a limited number of pre-baked geometrical shapes, but for most uses it does the job. + * + * * Another limitation is for big lights: you only see the light if you see the object emiting it. + * * For small objects this is good (you can't see them behind a wall), but for big ones this quickly becomes prety clumsy. */ /datum/component/overlay_lighting ///How far the light reaches, float. diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm index 062aba9da488..d0998c41e5b8 100644 --- a/code/datums/components/pellet_cloud.dm +++ b/code/datums/components/pellet_cloud.dm @@ -82,11 +82,11 @@ UnregisterSignal(parent, list(COMSIG_PARENT_PREQDELETED, COMSIG_PELLET_CLOUD_INIT, COMSIG_GRENADE_PRIME, COMSIG_GRENADE_ARMED, COMSIG_MOVABLE_MOVED, COMSIG_MINE_TRIGGERED, COMSIG_ITEM_DROPPED)) /** - * create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance) - * - * Honestly this is mostly just a rehash of [/obj/item/ammo_casing/proc/fire_casing()] for pellet counts > 1, except this lets us tamper with the pellets and hook onto them for tracking purposes. - * The arguments really don't matter, this proc is triggered by COMSIG_PELLET_CLOUD_INIT which is only for this really, it's just a big mess of the state vars we need for doing the stuff over here. - */ + * create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance) + * + * Honestly this is mostly just a rehash of [/obj/item/ammo_casing/proc/fire_casing()] for pellet counts > 1, except this lets us tamper with the pellets and hook onto them for tracking purposes. + * The arguments really don't matter, this proc is triggered by COMSIG_PELLET_CLOUD_INIT which is only for this really, it's just a big mess of the state vars we need for doing the stuff over here. + */ /datum/component/pellet_cloud/proc/create_casing_pellets(obj/item/ammo_casing/shell, atom/target, mob/living/user, fired_from, randomspread, spread, zone_override, params, distro) shooter = user var/targloc = get_turf(target) @@ -110,10 +110,10 @@ shell.newshot() /** - * create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines. - * - * Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, while landmines do not (obviously, it's a landmine!). See [/datum/component/pellet_cloud/proc/handle_martyrs()] - */ + * create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines. + * + * Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, while landmines do not (obviously, it's a landmine!). See [/datum/component/pellet_cloud/proc/handle_martyrs()] + */ /datum/component/pellet_cloud/proc/create_blast_pellets(obj/O, mob/living/lanced_by) var/atom/A = parent @@ -131,14 +131,14 @@ pew(shootat_turf) /** - * handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel - * - * Between the time the grenade is armed and the actual detonation, we set var/list/bodies to the list of mobs currently on the new tile, as if the grenade landed on top of them, tracking if any of them move off the tile and removing them from the "under" list - * Once the grenade detonates, handle_martyrs() is called and gets all the new mobs on the tile, and add the ones not in var/list/bodies to var/list/martyrs - * We then iterate through the martyrs and reduce the shrapnel magnitude for each mob on top of it, shredding each of them with some of the shrapnel they helped absorb. This can snuff out all of the shrapnel if there's enough bodies - * - * Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later - */ + * handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel + * + * Between the time the grenade is armed and the actual detonation, we set var/list/bodies to the list of mobs currently on the new tile, as if the grenade landed on top of them, tracking if any of them move off the tile and removing them from the "under" list + * Once the grenade detonates, handle_martyrs() is called and gets all the new mobs on the tile, and add the ones not in var/list/bodies to var/list/martyrs + * We then iterate through the martyrs and reduce the shrapnel magnitude for each mob on top of it, shredding each of them with some of the shrapnel they helped absorb. This can snuff out all of the shrapnel if there's enough bodies + * + * Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later + */ /datum/component/pellet_cloud/proc/handle_martyrs(mob/living/lanced_by) var/magnitude_absorbed var/list/martyrs = list() diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index 50f2b7e6f399..356d981555b5 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -41,7 +41,7 @@ . = ..() var/static/list/exception_cache = typecacheof(list( /obj/item/katana, /obj/item/toy/katana, /obj/item/nullrod/claymore/katana, - /obj/item/energy_katana, /obj/item/gun/ballistic/automatic/tommygun + /obj/item/energy_katana, /obj/item/gun/ballistic/automatic/smg/thompson/drum )) exception_hold = exception_cache diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 45b080a5866a..0803102bc4f8 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -1,16 +1,16 @@ #define MAX_TABLE_MESSES 8 // how many things can we knock off a table at once? /** - *#tackle.dm - * - * For when you want to throw a person at something and have fun stuff happen - * - * This component is made for carbon mobs (really, humans), and allows its parent to throw themselves and perform tackles. This is done by enabling throw mode, then clicking on your - * intended target with an empty hand. You will then launch toward your target. If you hit a carbon, you'll roll to see how hard you hit them. If you hit a solid non-mob, you'll - * roll to see how badly you just messed yourself up. If, along your journey, you hit a table, you'll slam onto it and send up to MAX_TABLE_MESSES (8) /obj/items on the table flying, - * and take a bit of extra damage and stun for each thing launched. - * - * There are 2 """skill rolls""" involved here, which are handled and explained in sack() and rollTackle() (for roll 1, carbons), and splat() (for roll 2, walls and solid objects) + *#tackle.dm + * + * For when you want to throw a person at something and have fun stuff happen + * + * This component is made for carbon mobs (really, humans), and allows its parent to throw themselves and perform tackles. This is done by enabling throw mode, then clicking on your + * intended target with an empty hand. You will then launch toward your target. If you hit a carbon, you'll roll to see how hard you hit them. If you hit a solid non-mob, you'll + * roll to see how badly you just messed yourself up. If, along your journey, you hit a table, you'll slam onto it and send up to MAX_TABLE_MESSES (8) /obj/items on the table flying, + * and take a bit of extra damage and stun for each thing launched. + * + * There are 2 """skill rolls""" involved here, which are handled and explained in sack() and rollTackle() (for roll 1, carbons), and splat() (for roll 2, walls and solid objects) */ /datum/component/tackler dupe_mode = COMPONENT_DUPE_UNIQUE @@ -100,7 +100,7 @@ user.face_atom(A) var/list/modifiers = params2list(params) - if(modifiers["alt"] || modifiers["shift"] || modifiers["ctrl"] || modifiers["middle"]) + if(LAZYACCESS(modifiers, ALT_CLICK) || LAZYACCESS(modifiers, SHIFT_CLICK) || LAZYACCESS(modifiers, CTRL_CLICK) || LAZYACCESS(modifiers, MIDDLE_CLICK)) return tackling = TRUE @@ -230,16 +230,16 @@ return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH /** - * rollTackle() - * - * This handles all of the modifiers for the actual carbon-on-carbon tackling, and gets its own proc because of how many there are (with plenty more in mind!) - * - * The base roll is between (-3, 3), with negative numbers favoring the target, and positive numbers favoring the tackler. The target and the tackler are both assessed for - * how easy they are to knock over, with clumsiness and dwarfiness being strong maluses for each, and gigantism giving a bonus for each. These numbers and ideas - * are absolutely subject to change. - - * In addition, after subtracting the defender's mod and adding the attacker's mod to the roll, the component's base (skill) mod is added as well. Some sources of tackles - * are better at taking people down, like the bruiser and rocket gloves, while the dolphin gloves have a malus in exchange for better mobility. + * rollTackle() + * + * This handles all of the modifiers for the actual carbon-on-carbon tackling, and gets its own proc because of how many there are (with plenty more in mind!) + * + * The base roll is between (-3, 3), with negative numbers favoring the target, and positive numbers favoring the tackler. The target and the tackler are both assessed for + * how easy they are to knock over, with clumsiness and dwarfiness being strong maluses for each, and gigantism giving a bonus for each. These numbers and ideas + * are absolutely subject to change. + + * In addition, after subtracting the defender's mod and adding the attacker's mod to the roll, the component's base (skill) mod is added as well. Some sources of tackles + * are better at taking people down, like the bruiser and rocket gloves, while the dolphin gloves have a malus in exchange for better mobility. */ /datum/component/tackler/proc/rollTackle(mob/living/carbon/target) var/defense_mod = 0 @@ -308,28 +308,28 @@ return r /** - * splat() - * - * This is where we handle diving into dense atoms, generally with effects ranging from bad to REALLY bad. This works as a percentile roll that is modified in two steps as detailed below. The higher - * the roll, the more severe the result. - * - * Mod 1: Speed - * * Base tackle speed is 1, which is what normal gripper gloves use. For other sources with higher speed tackles, like dolphin and ESPECIALLY rocket gloves, we obey Newton's laws and hit things harder. - * * For every unit of speed above 1, move the lower bound of the roll up by 15. Unlike Mod 2, this only serves to raise the lower bound, so it can't be directly counteracted by anything you can control. - * - * Mod 2: Misc - * -Flat modifiers, these take whatever you rolled and add/subtract to it, with the end result capped between the minimum from Mod 1 and 100. Note that since we can't roll higher than 100 to start with, - * wearing a helmet should be enough to remove any chance of permanently paralyzing yourself and dramatically lessen knocking yourself unconscious, even with rocket gloves. Will expand on maybe - * * Wearing a helmet: -6 - * * Wearing riot armor: -6 - * * Clumsy: +6 - * - * Effects: Below are the outcomes based off your roll, in order of increasing severity - * * 1-63: Knocked down for a few seconds and a bit of brute and stamina damage - * * 64-83: Knocked silly, gain some confusion as well as the above - * * 84-93: Cranial trauma, get a concussion and more confusion, plus more damage - * * 94-98: Knocked unconscious, significant chance to get a random mild brain trauma, as well as a fair amount of damage - * * 99-100: Break your spinal cord, get paralyzed, take a bunch of damage too. Very unlucky! + * splat() + * + * This is where we handle diving into dense atoms, generally with effects ranging from bad to REALLY bad. This works as a percentile roll that is modified in two steps as detailed below. The higher + * the roll, the more severe the result. + * + * Mod 1: Speed + * * Base tackle speed is 1, which is what normal gripper gloves use. For other sources with higher speed tackles, like dolphin and ESPECIALLY rocket gloves, we obey Newton's laws and hit things harder. + * * For every unit of speed above 1, move the lower bound of the roll up by 15. Unlike Mod 2, this only serves to raise the lower bound, so it can't be directly counteracted by anything you can control. + * + * Mod 2: Misc + * -Flat modifiers, these take whatever you rolled and add/subtract to it, with the end result capped between the minimum from Mod 1 and 100. Note that since we can't roll higher than 100 to start with, + * wearing a helmet should be enough to remove any chance of permanently paralyzing yourself and dramatically lessen knocking yourself unconscious, even with rocket gloves. Will expand on maybe + * * Wearing a helmet: -6 + * * Wearing riot armor: -6 + * * Clumsy: +6 + * + * Effects: Below are the outcomes based off your roll, in order of increasing severity + * * 1-63: Knocked down for a few seconds and a bit of brute and stamina damage + * * 64-83: Knocked silly, gain some confusion as well as the above + * * 84-93: Cranial trauma, get a concussion and more confusion, plus more damage + * * 94-98: Knocked unconscious, significant chance to get a random mild brain trauma, as well as a fair amount of damage + * * 99-100: Break your spinal cord, get paralyzed, take a bunch of damage too. Very unlucky! */ /datum/component/tackler/proc/splat(mob/living/carbon/user, atom/hit) if(istype(hit, /obj/machinery/vending)) // before we do anything else- diff --git a/code/datums/components/taped.dm b/code/datums/components/taped.dm index ebe2385b4ffe..5fc753676bbb 100644 --- a/code/datums/components/taped.dm +++ b/code/datums/components/taped.dm @@ -35,7 +35,7 @@ /datum/component/taped/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE)) -/datum/component/taped/proc/set_tape(var/patch_amount) +/datum/component/taped/proc/set_tape(patch_amount) var/obj/I = parent var/icon/tape_marks = icon(initial(I.icon), initial(I.icon_state)) diff --git a/code/datums/components/thermite.dm b/code/datums/components/thermite.dm index 9c7ee9970aa9..23f020adb7f0 100644 --- a/code/datums/components/thermite.dm +++ b/code/datums/components/thermite.dm @@ -68,7 +68,7 @@ addtimer(CALLBACK(src, .proc/burn_parent, fakefire, user), min(amount * 0.35 SECONDS, 20 SECONDS)) UnregisterFromParent() -/datum/component/thermite/proc/burn_parent(var/datum/fakefire, mob/user) +/datum/component/thermite/proc/burn_parent(datum/fakefire, mob/user) var/turf/master = parent if(!QDELETED(fakefire)) qdel(fakefire) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 831dedee9cbd..a14d04cc0ec0 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -76,13 +76,13 @@ return /** - * Adds crime to security record. - * - * Is used to add single crime to someone's security record. - * Arguments: - * * id - record id. - * * datum/data/crime/crime - premade array containing every variable, usually created by createCrimeEntry. - */ + * Adds crime to security record. + * + * Is used to add single crime to someone's security record. + * Arguments: + * * id - record id. + * * datum/data/crime/crime - premade array containing every variable, usually created by createCrimeEntry. + */ /datum/datacore/proc/addCrime(id = "", datum/data/crime/crime) for(var/datum/data/record/R in security) if(R.fields["id"] == id) @@ -91,13 +91,13 @@ return /** - * Deletes crime from security record. - * - * Is used to delete single crime to someone's security record. - * Arguments: - * * id - record id. - * * cDataId - id of already existing crime. - */ + * Deletes crime from security record. + * + * Is used to delete single crime to someone's security record. + * Arguments: + * * id - record id. + * * cDataId - id of already existing crime. + */ /datum/datacore/proc/removeCrime(id, cDataId) for(var/datum/data/record/R in security) if(R.fields["id"] == id) @@ -108,14 +108,14 @@ return /** - * Adds details to a crime. - * - * Is used to add or replace details to already existing crime. - * Arguments: - * * id - record id. - * * cDataId - id of already existing crime. - * * details - data you want to add. - */ + * Adds details to a crime. + * + * Is used to add or replace details to already existing crime. + * Arguments: + * * id - record id. + * * cDataId - id of already existing crime. + * * details - data you want to add. + */ /datum/datacore/proc/addCrimeDetails(id, cDataId, details) for(var/datum/data/record/R in security) if(R.fields["id"] == id) diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 07df80f7dec3..01fc5d6643e0 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -1,13 +1,13 @@ /** - * The absolute base class for everything - * - * A datum instantiated has no physical world prescence, use an atom if you want something - * that actually lives in the world - * - * Be very mindful about adding variables to this class, they are inherited by every single - * thing in the entire game, and so you can easily cause memory usage to rise a lot with careless - * use of variables at this level - */ + * The absolute base class for everything + * + * A datum instantiated has no physical world prescence, use an atom if you want something + * that actually lives in the world + * + * Be very mindful about adding variables to this class, they are inherited by every single + * thing in the entire game, and so you can easily cause memory usage to rise a lot with careless + * use of variables at this level + */ /datum /** * Tick count time when this object was destroyed. @@ -53,30 +53,30 @@ #endif /** - * Called when a href for this datum is clicked - * - * Sends a [COMSIG_TOPIC] signal - */ + * Called when a href for this datum is clicked + * + * Sends a [COMSIG_TOPIC] signal + */ /datum/Topic(href, href_list[]) ..() SEND_SIGNAL(src, COMSIG_TOPIC, usr, href_list) /** - * Default implementation of clean-up code. - * - * This should be overridden to remove all references pointing to the object being destroyed, if - * you do override it, make sure to call the parent and return it's return value by default - * - * Return an appropriate [QDEL_HINT][QDEL_HINT_QUEUE] to modify handling of your deletion; - * in most cases this is [QDEL_HINT_QUEUE]. - * - * The base case is responsible for doing the following - * * Erasing timers pointing to this datum - * * Erasing compenents on this datum - * * Notifying datums listening to signals from this datum that we are going away - * - * Returns [QDEL_HINT_QUEUE] - */ + * Default implementation of clean-up code. + * + * This should be overridden to remove all references pointing to the object being destroyed, if + * you do override it, make sure to call the parent and return it's return value by default + * + * Return an appropriate [QDEL_HINT][QDEL_HINT_QUEUE] to modify handling of your deletion; + * in most cases this is [QDEL_HINT_QUEUE]. + * + * The base case is responsible for doing the following + * * Erasing timers pointing to this datum + * * Erasing compenents on this datum + * * Notifying datums listening to signals from this datum that we are going away + * + * Returns [QDEL_HINT_QUEUE] + */ /datum/proc/Destroy(force=FALSE, ...) SHOULD_CALL_PARENT(TRUE) tag = null diff --git a/code/datums/dcmnet.dm b/code/datums/dcmnet.dm index 4100bed40991..31bde9417113 100644 --- a/code/datums/dcmnet.dm +++ b/code/datums/dcmnet.dm @@ -53,12 +53,12 @@ // ** Ore handling procs ** -/datum/dcm_net/proc/Push(var/datum/component/material_container/cont) +/datum/dcm_net/proc/Push(datum/component/material_container/cont) for(var/O in cont.materials) var/datum/material/M = O cont.transer_amt_to(netHub.container, transfer_limit, M) -/datum/dcm_net/proc/Pull(var/datum/component/material_container/cont) +/datum/dcm_net/proc/Pull(datum/component/material_container/cont) for(var/O in netHub.container.materials) var/datum/material/M = O netHub.container.transer_amt_to(cont, transfer_limit, M) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 690e9194f346..b200a12311f2 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -41,12 +41,12 @@ SSdisease.active_diseases.Remove(src) //add this disease if the host does not already have too many -/datum/disease/proc/try_infect(var/mob/living/infectee, make_copy = TRUE) +/datum/disease/proc/try_infect(mob/living/infectee, make_copy = TRUE) infect(infectee, make_copy) return TRUE //add the disease with no checks -/datum/disease/proc/infect(var/mob/living/infectee, make_copy = TRUE) +/datum/disease/proc/infect(mob/living/infectee, make_copy = TRUE) var/datum/disease/D = make_copy ? Copy() : src infectee.diseases += D D.affected_mob = infectee diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index abb4d3531539..db748da77e27 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -85,7 +85,7 @@ S.End(src) return ..() -/datum/disease/advance/try_infect(var/mob/living/infectee, make_copy = TRUE) +/datum/disease/advance/try_infect(mob/living/infectee, make_copy = TRUE) //see if we are more transmittable than enough diseases to replace them //diseases replaced in this way do not confer immunity var/list/advance_diseases = list() @@ -392,7 +392,7 @@ */ // Mix a list of advance diseases and return the mixed result. -/proc/Advance_Mix(var/list/D_list) +/proc/Advance_Mix(list/D_list) var/list/diseases = list() for(var/datum/disease/advance/A in D_list) diff --git a/code/datums/diseases/advance/symptoms/narcolepsy.dm b/code/datums/diseases/advance/symptoms/narcolepsy.dm index 4de6caa47939..46a9af2dc998 100644 --- a/code/datums/diseases/advance/symptoms/narcolepsy.dm +++ b/code/datums/diseases/advance/symptoms/narcolepsy.dm @@ -38,7 +38,7 @@ Bonus symptom_delay_min = 20 symptom_delay_max = 45 -/datum/symptom/narcolepsy/Activate(var/datum/disease/advance/A) +/datum/symptom/narcolepsy/Activate(datum/disease/advance/A) var/mob/living/M = A.affected_mob switch(A.stage) if(1) diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm index 4e01756f5fc9..26004fdfbb48 100644 --- a/code/datums/diseases/advance/symptoms/sensory.dm +++ b/code/datums/diseases/advance/symptoms/sensory.dm @@ -27,7 +27,7 @@ if(A.properties["transmittable"] >= 8) //purge alcohol purge_alcohol = TRUE -/datum/symptom/mind_restoration/Activate(var/datum/disease/advance/A) +/datum/symptom/mind_restoration/Activate(datum/disease/advance/A) if(!..()) return var/mob/living/M = A.affected_mob diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 9827914c1dac..a3884dcf6d3c 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -75,7 +75,7 @@ new_mob.real_name = new_mob.name qdel(affected_mob) -/datum/disease/transformation/proc/replace_banned_player(var/mob/living/new_mob) // This can run well after the mob has been transferred, so need a handle on the new mob to kill it if needed. +/datum/disease/transformation/proc/replace_banned_player(mob/living/new_mob) // This can run well after the mob has been transferred, so need a handle on the new mob to kill it if needed. set waitfor = FALSE var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as [affected_mob.name]?", bantype, null, bantype, 50, affected_mob) diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm index da5fdbd4b692..ea78b3ebd10b 100644 --- a/code/datums/elements/_element.dm +++ b/code/datums/elements/_element.dm @@ -8,12 +8,12 @@ /// Option flags for element behaviour var/element_flags = NONE /** - * The index of the first attach argument to consider for duplicate elements - * - * Is only used when flags contains [ELEMENT_BESPOKE] - * - * This is infinity so you must explicitly set this - */ + * The index of the first attach argument to consider for duplicate elements + * + * Is only used when flags contains [ELEMENT_BESPOKE] + * + * This is infinity so you must explicitly set this + */ var/id_arg_index = INFINITY /// Activates the functionality defined by the element on the given target datum diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index c7475d7dd6a2..b5bc96a7fb60 100644 --- a/code/datums/elements/embed.dm +++ b/code/datums/elements/embed.dm @@ -171,11 +171,11 @@ examine_list += "[I] has a fine point, and could probably embed in someone if thrown properly!" /** - * checkEmbedProjectile() is what we get when a projectile with a defined shrapnel_type impacts a target. - * - * If we hit a valid target (carbon or closed turf), we create the shrapnel_type object and immediately call tryEmbed() on it, targeting what we impacted. That will lead - * it to call tryForceEmbed() on its own embed element (it's out of our hands here, our projectile is done), where it will run through all the checks it needs to. - */ + * checkEmbedProjectile() is what we get when a projectile with a defined shrapnel_type impacts a target. + * + * If we hit a valid target (carbon or closed turf), we create the shrapnel_type object and immediately call tryEmbed() on it, targeting what we impacted. That will lead + * it to call tryForceEmbed() on its own embed element (it's out of our hands here, our projectile is done), where it will run through all the checks it needs to. + */ /datum/element/embed/proc/checkEmbedProjectile(obj/projectile/P, atom/movable/firer, atom/hit) SIGNAL_HANDLER @@ -197,17 +197,17 @@ Detach(P) /** - * tryForceEmbed() is called here when we fire COMSIG_EMBED_TRY_FORCE from [/obj/item/proc/tryEmbed]. Mostly, this means we're a piece of shrapnel from a projectile that just impacted something, and we're trying to embed in it. - * - * The reason for this extra mucking about is avoiding having to do an extra hitby(), and annoying the target by impacting them once with the projectile, then again with the shrapnel (which likely represents said bullet), and possibly - * AGAIN if we actually embed. This way, we save on at least one message. Runs the standard embed checks on the mob/turf. - * - * Arguments: - * * I- what we're trying to embed, obviously - * * target- what we're trying to shish-kabob, either a bodypart, a carbon, or a closed turf - * * hit_zone- if our target is a carbon, try to hit them in this zone, if we don't have one, pick a random one. If our target is a bodypart, we already know where we're hitting. - * * forced- if we want this to succeed 100% - */ + * tryForceEmbed() is called here when we fire COMSIG_EMBED_TRY_FORCE from [/obj/item/proc/tryEmbed]. Mostly, this means we're a piece of shrapnel from a projectile that just impacted something, and we're trying to embed in it. + * + * The reason for this extra mucking about is avoiding having to do an extra hitby(), and annoying the target by impacting them once with the projectile, then again with the shrapnel (which likely represents said bullet), and possibly + * AGAIN if we actually embed. This way, we save on at least one message. Runs the standard embed checks on the mob/turf. + * + * Arguments: + * * I- what we're trying to embed, obviously + * * target- what we're trying to shish-kabob, either a bodypart, a carbon, or a closed turf + * * hit_zone- if our target is a carbon, try to hit them in this zone, if we don't have one, pick a random one. If our target is a bodypart, we already know where we're hitting. + * * forced- if we want this to succeed 100% + */ /datum/element/embed/proc/tryForceEmbed(obj/item/I, atom/target, hit_zone, forced=FALSE) SIGNAL_HANDLER diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm index 04914b2202f5..de829098637a 100644 --- a/code/datums/elements/firestacker.dm +++ b/code/datums/elements/firestacker.dm @@ -1,6 +1,6 @@ /** - * Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit - */ + * Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit + */ /datum/element/firestacker element_flags = ELEMENT_BESPOKE id_arg_index = 2 diff --git a/code/datums/elements/light_blocking.dm b/code/datums/elements/light_blocking.dm index 8ab4000ca6e1..69b6beffe6a1 100644 --- a/code/datums/elements/light_blocking.dm +++ b/code/datums/elements/light_blocking.dm @@ -1,6 +1,6 @@ /** - * Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly. - */ + * Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly. + */ /datum/element/light_blocking element_flags = ELEMENT_DETACH diff --git a/code/datums/elements/mobappearance.dm b/code/datums/elements/mobappearance.dm new file mode 100644 index 000000000000..41b94755389f --- /dev/null +++ b/code/datums/elements/mobappearance.dm @@ -0,0 +1,47 @@ +// Only works for simple animals, don't expect this to do anything for carbons + +/datum/element/appearance_on_login + var/list/icon_list + +/datum/element/appearance_on_login/borer + +/datum/element/appearance_on_login/borer/New() + . = ..() + icon_list = list( + "creepy" = image(icon = 'icons/mob/borer.dmi', icon_state = "creepy"), + "fluffy" = image(icon = 'icons/mob/borer.dmi', icon_state = "fluffy"), + "colorful" = image(icon = 'icons/mob/borer.dmi', icon_state = "colorful"), + "coral" = image(icon = 'icons/mob/borer.dmi', icon_state = "coral"), + "legacy" = image(icon = 'icons/mob/borer.dmi', icon_state = "legacy") + ) + +/datum/element/appearance_on_login/Attach(mob/living/simple_animal/target) + .=..() + if(!ismob(target)) + return ELEMENT_INCOMPATIBLE + if(target.client) + mob_appearance(target) + target.RemoveElement(/datum/element/appearance_on_login) + else + RegisterSignal(target, COMSIG_MOB_LOGIN, .proc/on_mob_login) + +/datum/element/appearance_on_login/proc/on_mob_login(mob/source) + SIGNAL_HANDLER + INVOKE_ASYNC(src, .proc/mob_appearance, source) + UnregisterSignal(source, COMSIG_MOB_LOGIN) + source.RemoveElement(/datum/element/appearance_on_login) + +/datum/element/appearance_on_login/proc/check_menu(mob/living/simple_animal/target) + if(!istype(target)) + return FALSE + if(target.incapacitated()) + return FALSE + return TRUE + +/datum/element/appearance_on_login/proc/mob_appearance(mob/living/simple_animal/target) + + var/picked_icon = show_radial_menu(target, target, icon_list, custom_check = CALLBACK(src, .proc/check_menu, target), radius = 38, require_near = TRUE) + if(picked_icon) + target.icon_state = "[picked_icon]" + target.icon_living = "[picked_icon]" + target.icon_dead = "[picked_icon]_dead" diff --git a/code/datums/elements/renamemob.dm b/code/datums/elements/renamemob.dm new file mode 100644 index 000000000000..bbc1fb99a7c2 --- /dev/null +++ b/code/datums/elements/renamemob.dm @@ -0,0 +1,24 @@ +/datum/element/rename_on_login + +/datum/element/rename_on_login/Attach(mob/target) + .=..() + if(!ismob(target)) + return ELEMENT_INCOMPATIBLE + if(target.client) + rename_mob(target) + target.RemoveElement(/datum/element/rename_on_login) + else + RegisterSignal(target, COMSIG_MOB_LOGIN, .proc/on_mob_login) + +/datum/element/rename_on_login/proc/on_mob_login(mob/source) + SIGNAL_HANDLER + INVOKE_ASYNC(src, .proc/rename_mob, source) + UnregisterSignal(source, COMSIG_MOB_LOGIN) + source.RemoveElement(/datum/element/rename_on_login) + +/datum/element/rename_on_login/proc/rename_mob(mob/target) + var/newname = reject_bad_text( + stripped_input(usr, "Set your name. You only get to do this once. Max 52 chars.", "Name set", "", MAX_NAME_LEN) + ) + if(newname) + target.name = newname diff --git a/code/datums/elements/tool_flash.dm b/code/datums/elements/tool_flash.dm index 47fac4b5a267..cf03bdb502e5 100644 --- a/code/datums/elements/tool_flash.dm +++ b/code/datums/elements/tool_flash.dm @@ -1,8 +1,8 @@ /** - * Tool flash bespoke element - * - * Flashes the user when using this tool - */ + * Tool flash bespoke element + * + * Flashes the user when using this tool + */ /datum/element/tool_flash element_flags = ELEMENT_BESPOKE id_arg_index = 2 diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 11c568cf198d..d72caab3ba2a 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -84,7 +84,7 @@ /datum/emote/proc/check_cooldown(mob/user, intentional) if(!intentional) return TRUE - if(user.emotes_used && user.emotes_used[src] + cooldown > world.time) + if(user.emotes_used && user.emotes_used[src] && user.emotes_used[src] + cooldown > world.time) return FALSE if(!user.emotes_used) user.emotes_used = list() diff --git a/code/datums/keybinding/admin.dm b/code/datums/keybinding/admin.dm index c2617afae222..eb5d37639e2b 100644 --- a/code/datums/keybinding/admin.dm +++ b/code/datums/keybinding/admin.dm @@ -33,6 +33,9 @@ user.get_mentor_say() return TRUE +/datum/keybinding/admin/mentor_say/can_use(client/user) + return check_mentor(user) + /datum/keybinding/admin/admin_ghost hotkey_keys = list("F5") name = "admin_ghost" diff --git a/code/datums/mapgen/Cavegens/IcemoonCaves.dm b/code/datums/mapgen/Cavegens/IcemoonCaves.dm index 1b069c6908c9..95224279b452 100644 --- a/code/datums/mapgen/Cavegens/IcemoonCaves.dm +++ b/code/datums/mapgen/Cavegens/IcemoonCaves.dm @@ -3,7 +3,7 @@ closed_turf_types = list(/turf/closed/mineral/random/snow = 1) - feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 2) + feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 1) mob_spawn_list = list( /mob/living/simple_animal/hostile/asteroid/wolf/random = 30, /obj/structure/spawner/ice_moon = 3, /mob/living/simple_animal/hostile/asteroid/polarbear/random = 30, /obj/structure/spawner/ice_moon/polarbear = 3, diff --git a/code/datums/mapgen/Cavegens/LavalandGenerator.dm b/code/datums/mapgen/Cavegens/LavalandGenerator.dm index 10f51de77eba..5dc0c7d20220 100644 --- a/code/datums/mapgen/Cavegens/LavalandGenerator.dm +++ b/code/datums/mapgen/Cavegens/LavalandGenerator.dm @@ -2,7 +2,7 @@ open_turf_types = list(/turf/open/floor/plating/asteroid/basalt/lava_land_surface = 1) closed_turf_types = list(/turf/closed/mineral/random/volcanic = 1) - feature_spawn_chance = 2 + feature_spawn_chance = 0.3 feature_spawn_list = list(/obj/structure/geyser/random = 2, /obj/structure/elite_tumor = 1) mob_spawn_list = list( /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50, /obj/structure/spawner/lavaland/goliath = 3, \ diff --git a/code/datums/mapgen/PlanetGenerator.dm b/code/datums/mapgen/PlanetGenerator.dm index 7727e0016947..48811c2ab7e7 100644 --- a/code/datums/mapgen/PlanetGenerator.dm +++ b/code/datums/mapgen/PlanetGenerator.dm @@ -1,5 +1,5 @@ //the random offset applied to square coordinates, causes intermingling at biome borders -#define BIOME_RANDOM_SQUARE_DRIFT 2 +#define BIOME_RANDOM_SQUARE_DRIFT 1 /datum/map_generator/planet_generator var/name = "Planet Generator" @@ -10,7 +10,7 @@ var/birth_limit = 4 var/death_limit = 3 -/datum/map_generator/planet_generator/generate_terrain(var/list/turfs, var/datum/planet/planet_type) +/datum/map_generator/planet_generator/generate_terrain(list/turfs, datum/planet/planet_type) . = ..() var/height_seed = rand(0, 50000) diff --git a/code/datums/mapgen/_MapGenerator.dm b/code/datums/mapgen/_MapGenerator.dm index 2566d7f2c8dc..910c27cf7970 100644 --- a/code/datums/mapgen/_MapGenerator.dm +++ b/code/datums/mapgen/_MapGenerator.dm @@ -2,10 +2,10 @@ /datum/map_generator ///This proc will be ran by areas on Initialize, and provides the areas turfs as argument to allow for generation. -/datum/map_generator/proc/generate_terrain(var/list/turfs) +/datum/map_generator/proc/generate_terrain(list/turfs) return -/datum/map_generator/proc/report_completion(var/start_time, name) +/datum/map_generator/proc/report_completion(start_time, name) var/message = "[name] finished in [(REALTIMEOFDAY - start_time)/10]s!" //to_chat(world, "[message]") log_shuttle("MAPGEN: MAPGEN REF [REF(src)] HAS FULLY COMPLETED") diff --git a/code/datums/mapgen/biomes/_biome.dm b/code/datums/mapgen/biomes/_biome.dm index 063b10c1dfd0..a5fbb641dad0 100644 --- a/code/datums/mapgen/biomes/_biome.dm +++ b/code/datums/mapgen/biomes/_biome.dm @@ -11,14 +11,14 @@ var/closed_turf_types = list(/turf/closed/mineral/random/volcanic = 1) open_turf_types = list(/turf/open/floor/plating/asteroid = 1) -/datum/biome/proc/generate_overworld(var/turf/gen_turf) +/datum/biome/proc/generate_overworld(turf/gen_turf) //TURF SPAWNING var/turf/picked_turf = pickweight(open_turf_types) var/turf/open/new_turf = gen_turf.ChangeTurf(picked_turf, initial(picked_turf.baseturfs), CHANGETURF_DEFER_CHANGE) generate_features(new_turf) CHECK_TICK -/datum/biome/cave/proc/generate_caves(var/turf/gen_turf, var/string_gen) +/datum/biome/cave/proc/generate_caves(turf/gen_turf, string_gen) var/area/A = gen_turf.loc if(!(A.area_flags & CAVES_ALLOWED)) return @@ -47,7 +47,7 @@ generate_features(new_turf) CHECK_TICK -/datum/biome/proc/generate_features(var/turf/new_turf) +/datum/biome/proc/generate_features(turf/new_turf) //FLORA SPAWNING var/atom/spawned_flora var/area/A = new_turf.loc diff --git a/code/datums/mapgen/biomes/lava_biomes.dm b/code/datums/mapgen/biomes/lava_biomes.dm index 7880eae4496b..11a4206af9e2 100644 --- a/code/datums/mapgen/biomes/lava_biomes.dm +++ b/code/datums/mapgen/biomes/lava_biomes.dm @@ -154,6 +154,6 @@ ) /datum/biome/cave/lavaland/lava - open_turf_types = list(/turf/open/floor/plating/asteroid/basalt/lava_land_surface = 10, /turf/open/lava/smooth/lava_land_surface = 1) + open_turf_types = list(/turf/open/lava/smooth/lava_land_surface = 1) feature_spawn_chance = 1 feature_spawn_list = list(/obj/structure/flora/rock/pile/lava = 1) diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm index eedb3fc7717e..6d5c597c1ef4 100644 --- a/code/datums/materials/_material.dm +++ b/code/datums/materials/_material.dm @@ -108,7 +108,7 @@ Simple datum which is instanced once per type and is used for every object of sa I.pickup_sound = item_sound_override I.drop_sound = item_sound_override -/datum/material/proc/on_applied_turf(var/turf/T, amount, material_flags) +/datum/material/proc/on_applied_turf(turf/T, amount, material_flags) if(isopenturf(T)) if(turf_sound_override) var/turf/open/O = T @@ -152,12 +152,12 @@ Simple datum which is instanced once per type and is used for every object of sa RemoveElement(/datum/element/turf_z_transparency, FALSE) /** Returns the composition of this material. - * - * Mostly used for alloys when breaking down materials. - * - * Arguments: - * - amount: The amount of the material to break down. - * - breakdown_flags: Some flags dictating how exactly this material is being broken down. - */ + * + * Mostly used for alloys when breaking down materials. + * + * Arguments: + * - amount: The amount of the material to break down. + * - breakdown_flags: Some flags dictating how exactly this material is being broken down. + */ /datum/material/proc/return_composition(amount=1, breakdown_flags=NONE) return list((src) = amount) // Yes we need the parenthesis, without them BYOND stringifies src into "src" and things break. diff --git a/code/datums/movement_detector.dm b/code/datums/movement_detector.dm index 3fc64c1b11a4..109290a8a953 100644 --- a/code/datums/movement_detector.dm +++ b/code/datums/movement_detector.dm @@ -33,9 +33,9 @@ target = target.loc /** - * Reacts to any movement that would cause a change in coordinates of the tracked movable atom - * This works by detecting movement of either the tracked object, or anything it is inside, recursively - */ + * Reacts to any movement that would cause a change in coordinates of the tracked movable atom + * This works by detecting movement of either the tracked object, or anything it is inside, recursively + */ /datum/movement_detector/proc/move_react(atom/movable/mover, atom/oldloc, direction) SIGNAL_HANDLER diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm index 45708bfde175..2f5e563d5414 100644 --- a/code/datums/recipe.dm +++ b/code/datums/recipe.dm @@ -12,7 +12,7 @@ * default /datum/recipe/ procs does not rely on this parameter. * * Functions you need: - * /datum/recipe/proc/make(var/obj/container as obj) + * /datum/recipe/proc/make(obj/container as obj) * Creates result inside container, * deletes prerequisite reagents, * transfers reagents from prerequisite objects, @@ -25,10 +25,10 @@ * * * Functions you do not need to call directly but could: - * /datum/recipe/proc/check_reagents(var/datum/reagents/avail_reagents) + * /datum/recipe/proc/check_reagents(datum/reagents/avail_reagents) * //1=precisely, 0=insufficiently, -1=superfluous * - * /datum/recipe/proc/check_items(var/obj/container as obj) + * /datum/recipe/proc/check_items(obj/container as obj) * //1=precisely, 0=insufficiently, -1=superfluous * * */ diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index 259f0c6f5693..23e33001c170 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -19,6 +19,12 @@ description = "Slime ranchin with the bud." suffix = "icemoon_surface_slimerancher.dmm" +/datum/map_template/ruin/icemoon/hydroponicslab //Shiptest edit + name = "Hydroponics Lab" + id = "hydroponicslab" + description = "An abandoned hydroponics research facility containing hostile plant fauna." + suffix = "icemoon_hydroponics_lab.dmm" + // above and below ground together diff --git a/code/datums/ruins/rockplanet.dm b/code/datums/ruins/rockplanet.dm index 12f051d06fc2..932a6e19f835 100644 --- a/code/datums/ruins/rockplanet.dm +++ b/code/datums/ruins/rockplanet.dm @@ -69,11 +69,17 @@ /datum/map_template/ruin/rockplanet/boxsci - name = "Honorable deeds storage" - id = "Abandoned science wing" + name = "Abandoned science wing" + id = "abandonedscience" description = "A chunk of a station that broke off.." suffix = "rockplanet_boxsci.dmm" +/datum/map_template/ruin/rockplanet/honorable + name = "Honorable deeds storage" + id = "honorable" + description = "This place must be very honorable and should be disturbed." + suffix = "rockplanet_unhonorable.dmm" + /* greeble /datum/map_template/ruin/rockplanet/rd_god id = "rd_god" @@ -88,8 +94,14 @@ id = "crash_cult" suffix = "rockplanet_crash_cult.dmm" -/datum/map_template/ruin/rockplanet/netherworld - name = "Crashed Cult Ship" - description = "A abandoned and broken off chunk of a space station. It somehow survived the crash, though, whatever was inside also survived..." - id = "rockplanet_netherworld" - suffix = "rockplanet_netherworld.dmm" +/datum/map_template/ruin/rockplanet/saloon + name = "Abandoned saloon" + description = "For whatever reason, someone decided to make a colony with a indie style." + id = "rockplanet_saloon" + suffix = "rockplanet_saloon.dmm" + +/datum/map_template/ruin/rockplanet/harmfactory + name = "Harm factory" + description = "A factory made for HARM and AGONY." + id = "rockplanet_harmfactory" + suffix = "rockplanet_harmfactory.dmm" diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 4548b4acb4b0..41d9069036d3 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -11,7 +11,7 @@ var/port_x_offset var/port_y_offset - var/limit + var/limit = 2 var/cost var/short_name var/list/job_slots = list() diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index 4a5ff05d2de5..46c3a1d2bc4d 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -16,10 +16,10 @@ GLOBAL_LIST_INIT(skill_types, subtypesof(/datum/skill)) /datum/skill/proc/get_skill_modifier(modifier, level) return modifiers[modifier][level] //Levels range from 1 (None) to 7 (Legendary) /** - * new: sets up some lists. - * - *Can't happen in the datum's definition because these lists are not constant expressions - */ + * new: sets up some lists. + * + *Can't happen in the datum's definition because these lists are not constant expressions + */ /datum/skill/New() . = ..() levelUpMessages = list("What the hell is [name]? Tell an admin if you see this message.", //This first index shouldn't ever really be used @@ -39,31 +39,31 @@ GLOBAL_LIST_INIT(skill_types, subtypesof(/datum/skill)) "I feel as though my legendary [name] skills have deteriorated. I'll need more intense training to recover my lost skills." ) /** - * level_gained: Gives skill levelup messages to the user - * - * Only fires if the xp gain isn't silent, so only really useful for messages. - * Arguments: - * * mind - The mind that you'll want to send messages - * * new_level - The newly gained level. Can check the actual level to give different messages at different levels, see defines in skills.dm - * * old_level - Similar to the above, but the level you had before levelling up. - */ -/datum/skill/proc/level_gained(var/datum/mind/mind, new_level, old_level)//just for announcements (doesn't go off if the xp gain is silent) + * level_gained: Gives skill levelup messages to the user + * + * Only fires if the xp gain isn't silent, so only really useful for messages. + * Arguments: + * * mind - The mind that you'll want to send messages + * * new_level - The newly gained level. Can check the actual level to give different messages at different levels, see defines in skills.dm + * * old_level - Similar to the above, but the level you had before levelling up. + */ +/datum/skill/proc/level_gained(datum/mind/mind, new_level, old_level)//just for announcements (doesn't go off if the xp gain is silent) to_chat(mind.current, levelUpMessages[new_level]) //new_level will be a value from 1 to 6, so we get appropriate message from the 6-element levelUpMessages list /** - * level_lost: See level_gained, same idea but fires on skill level-down - */ -/datum/skill/proc/level_lost(var/datum/mind/mind, new_level, old_level) + * level_lost: See level_gained, same idea but fires on skill level-down + */ +/datum/skill/proc/level_lost(datum/mind/mind, new_level, old_level) to_chat(mind.current, levelDownMessages[old_level]) //old_level will be a value from 1 to 6, so we get appropriate message from the 6-element levelUpMessages list /** - * try_skill_reward: Checks to see if a user is eligable for a tangible reward for reaching a certain skill level - * - * Currently gives the user a special cloak when they reach a legendary level at any given skill - * Arguments: - * * mind - The mind that you'll want to send messages and rewards to - * * new_level - The current level of the user. Used to check if it meets the requirements for a reward - */ -/datum/skill/proc/try_skill_reward(var/datum/mind/mind, new_level) + * try_skill_reward: Checks to see if a user is eligable for a tangible reward for reaching a certain skill level + * + * Currently gives the user a special cloak when they reach a legendary level at any given skill + * Arguments: + * * mind - The mind that you'll want to send messages and rewards to + * * new_level - The current level of the user. Used to check if it meets the requirements for a reward + */ +/datum/skill/proc/try_skill_reward(datum/mind/mind, new_level) if (new_level != SKILL_LEVEL_LEGENDARY) return if (!ispath(skill_cape_path)) diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index 35937cd8ad35..0eb07b5ffcea 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -34,12 +34,12 @@ /** - * On client connection set quirk preferences. - * - * Run post_add to set the client preferences for the quirk. - * Clear the attached signal for login. - * Used when the quirk has been gained and no client is attached to the mob. - */ + * On client connection set quirk preferences. + * + * Run post_add to set the client preferences for the quirk. + * Clear the attached signal for login. + * Used when the quirk has been gained and no client is attached to the mob. + */ /datum/quirk/proc/on_quirk_holder_first_login(mob/living/source) SIGNAL_HANDLER diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 9c5d6519481c..ce646f9cde47 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -399,39 +399,6 @@ mob_trait = TRAIT_PROSOPAGNOSIA medical_record_text = "Patient suffers from prosopagnosia and cannot recognize faces." -/datum/quirk/prosthetic_limb - name = "Prosthetic Limb" - desc = "An accident caused you to lose one of your limbs. Because of this, you now have a random prosthetic!" - value = -1 - var/slot_string = "limb" - medical_record_text = "During physical examination, patient was found to have a prosthetic limb." - -/datum/quirk/prosthetic_limb/on_spawn() - var/limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) - var/mob/living/carbon/human/H = quirk_holder - var/obj/item/bodypart/old_part = H.get_bodypart(limb_slot) - var/obj/item/bodypart/prosthetic - switch(limb_slot) - if(BODY_ZONE_L_ARM) - prosthetic = new/obj/item/bodypart/l_arm/robot/surplus(quirk_holder) - slot_string = "left arm" - if(BODY_ZONE_R_ARM) - prosthetic = new/obj/item/bodypart/r_arm/robot/surplus(quirk_holder) - slot_string = "right arm" - if(BODY_ZONE_L_LEG) - prosthetic = new/obj/item/bodypart/l_leg/robot/surplus(quirk_holder) - slot_string = "left leg" - if(BODY_ZONE_R_LEG) - prosthetic = new/obj/item/bodypart/r_leg/robot/surplus(quirk_holder) - slot_string = "right leg" - prosthetic.replace_limb(H) - qdel(old_part) - H.regenerate_icons() - -/datum/quirk/prosthetic_limb/post_add() - to_chat(quirk_holder, "Your [slot_string] has been replaced with a surplus prosthetic. It is fragile and will easily come apart under duress. Additionally, \ - you need to use a welding tool and cables to repair it, instead of bruise packs and ointment.") - /datum/quirk/pushover name = "Pushover" desc = "Your first instinct is always to let people push you around. Resisting out of grabs will take conscious effort." diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index 955ea5b7869e..142bda8a9572 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -3,13 +3,13 @@ 'sound/effects/thunder/thunder10.ogg') /** - * Causes weather to occur on a z level in certain area types - * - * The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures. - * Weather always occurs on different z levels at different times, regardless of weather type. - * Can have custom durations, targets, and can automatically protect indoor areas. - * - */ + * Causes weather to occur on a z level in certain area types + * + * The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures. + * Weather always occurs on different z levels at different times, regardless of weather type. + * Can have custom durations, targets, and can automatically protect indoor areas. + * + */ /datum/weather /// name of weather @@ -126,12 +126,12 @@ weather_act(L) /** - * Telegraphs the beginning of the weather on the impacted z levels - * - * Sends sounds and details to mobs in the area - * Calculates duration and hit areas, and makes a callback for the actual weather to start - * - */ + * Telegraphs the beginning of the weather on the impacted z levels + * + * Sends sounds and details to mobs in the area + * Calculates duration and hit areas, and makes a callback for the actual weather to start + * + */ /datum/weather/proc/telegraph() if(stage == STARTUP_STAGE) return @@ -178,12 +178,12 @@ sound_weak_inside.start() /** - * Starts the actual weather and effects from it - * - * Updates area overlays and sends sounds and messages to mobs to notify them - * Begins dealing effects from weather to mobs in the area - * - */ + * Starts the actual weather and effects from it + * + * Updates area overlays and sends sounds and messages to mobs to notify them + * Begins dealing effects from weather to mobs in the area + * + */ /datum/weather/proc/start() if(stage >= MAIN_STAGE) return @@ -208,12 +208,12 @@ sound_active_inside.start() /** - * Weather enters the winding down phase, stops effects - * - * Updates areas to be in the winding down phase - * Sends sounds and messages to mobs to notify them - * - */ + * Weather enters the winding down phase, stops effects + * + * Updates areas to be in the winding down phase + * Sends sounds and messages to mobs to notify them + * + */ /datum/weather/proc/wind_down() if(stage >= WIND_DOWN_STAGE) return @@ -238,12 +238,12 @@ sound_weak_inside.start() /** - * Fully ends the weather - * - * Effects no longer occur and area overlays are removed - * Removes weather from processing completely - * - */ + * Fully ends the weather + * + * Effects no longer occur and area overlays are removed + * Removes weather from processing completely + * + */ /datum/weather/proc/end() if(stage == END_STAGE) return 1 @@ -266,9 +266,9 @@ qdel(src) /** - * Returns TRUE if the living mob can be affected by the weather - * - */ + * Returns TRUE if the living mob can be affected by the weather + * + */ /datum/weather/proc/can_weather_act(mob/living/L) var/turf/mob_turf = get_turf(L) if(mob_turf && !my_controller.mapzone.is_in_bounds(mob_turf)) @@ -280,16 +280,16 @@ return TRUE /** - * Affects the mob with whatever the weather does - * - */ + * Affects the mob with whatever the weather does + * + */ /datum/weather/proc/weather_act(mob/living/L) return /** - * Updates the overlays on impacted areas - * - */ + * Updates the overlays on impacted areas + * + */ /datum/weather/proc/update_areas() for(var/area/N as anything in impacted_areas) if(stage == MAIN_STAGE && multiply_blend_on_main_stage) diff --git a/code/datums/weather/weather_types/sandstorm.dm b/code/datums/weather/weather_types/sandstorm.dm index ccdb9bf4528f..4e09da948fe7 100644 --- a/code/datums/weather/weather_types/sandstorm.dm +++ b/code/datums/weather/weather_types/sandstorm.dm @@ -79,7 +79,7 @@ weather_message = "Gentle sand wafts down around you like grotesque snow." weather_overlay = "dust_med" - end_message = "he sandfall slows, stops. Another layer of sand on the mesa beneath your feet." + end_message = "The sandfall slows, stops. Another layer of sand on the mesa beneath your feet." end_overlay = "dust_low" aesthetic = TRUE diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 531e5f55d551..060ae75760e4 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -1,8 +1,8 @@ /** - * # area - * - * A grouping of tiles into a logical space, mostly used by map editors - */ + * # area + * + * A grouping of tiles into a logical space, mostly used by map editors + */ /area name = "Space" icon = 'icons/turf/areas.dmi' @@ -91,22 +91,22 @@ /** - * A list of teleport locations - * - * Adding a wizard area teleport list because motherfucking lag -- Urist - * I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game - */ + * A list of teleport locations + * + * Adding a wizard area teleport list because motherfucking lag -- Urist + * I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game + */ GLOBAL_LIST_EMPTY(teleportlocs) /** - * Generate a list of turfs you can teleport to from the areas list - * - * Includes areas if they're not a shuttle or not not teleport or have no contents - * - * The chosen turf is the first item in the areas contents that is a station level - * - * The returned list of turfs is sorted by name - */ + * Generate a list of turfs you can teleport to from the areas list + * + * Includes areas if they're not a shuttle or not not teleport or have no contents + * + * The chosen turf is the first item in the areas contents that is a station level + * + * The returned list of turfs is sorted by name + */ /proc/process_teleport_locs() for(var/V in GLOB.sortedAreas) var/area/AR = V @@ -123,10 +123,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) sortTim(GLOB.teleportlocs, /proc/cmp_text_asc) /** - * Called when an area loads - * - * Adds the item to the GLOB.areas_by_type list based on area type - */ + * Called when an area loads + * + * Adds the item to the GLOB.areas_by_type list based on area type + */ /area/New() if(!minimap_color) // goes in New() because otherwise it doesn't fucking work // generate one using the icon_state @@ -144,13 +144,13 @@ GLOBAL_LIST_EMPTY(teleportlocs) return ..() /** - * Initalize this area - * - * intializes the dynamic area lighting and also registers the area with the z level via - * reg_in_areas_in_z - * - * returns INITIALIZE_HINT_LATELOAD - */ + * Initalize this area + * + * intializes the dynamic area lighting and also registers the area with the z level via + * reg_in_areas_in_z + * + * returns INITIALIZE_HINT_LATELOAD + */ /area/Initialize() icon_state = "" @@ -180,17 +180,17 @@ GLOBAL_LIST_EMPTY(teleportlocs) return INITIALIZE_HINT_LATELOAD /** - * Sets machine power levels in the area - */ + * Sets machine power levels in the area + */ /area/LateInitialize() power_change() // all machines set to current power level, also updates icon update_beauty() /** - * Register this area as belonging to a z level - * - * Ensures the item is added to the SSmapping.areas_in_z list for this z - */ + * Register this area as belonging to a z level + * + * Ensures the item is added to the SSmapping.areas_in_z list for this z + */ /area/proc/reg_in_areas_in_z() if(!length(contents)) return @@ -204,13 +204,13 @@ GLOBAL_LIST_EMPTY(teleportlocs) areas_in_z["[z]"] += src /** - * Destroy an area and clean it up - * - * Removes the area from GLOB.areas_by_type and also stops it processing on SSobj - * - * This is despite the fact that no code appears to put it on SSobj, but - * who am I to argue with old coders - */ + * Destroy an area and clean it up + * + * Removes the area from GLOB.areas_by_type and also stops it processing on SSobj + * + * This is despite the fact that no code appears to put it on SSobj, but + * who am I to argue with old coders + */ /area/Destroy() if(GLOB.areas_by_type[type] == src) GLOB.areas_by_type[type] = null @@ -218,10 +218,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) return ..() /** - * Generate a power alert for this area - * - * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world - */ + * Generate a power alert for this area + * + * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world + */ /area/proc/poweralert(state, obj/source) if (state != poweralm) poweralm = state @@ -254,10 +254,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) p.triggerAlarm("Power", src, cameras, source) /** - * Generate an atmospheric alert for this area - * - * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world - */ + * Generate an atmospheric alert for this area + * + * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world + */ /area/proc/atmosalert(isdangerous, obj/source) if(isdangerous != atmosalm) if(isdangerous==TRUE) @@ -294,8 +294,8 @@ GLOBAL_LIST_EMPTY(teleportlocs) return FALSE /** - * Try to close all the firedoors in the area - */ + * Try to close all the firedoors in the area + */ /area/proc/ModifyFiredoors(opening) if(firedoors) firedoors_last_closed_on = world.time @@ -315,12 +315,12 @@ GLOBAL_LIST_EMPTY(teleportlocs) INVOKE_ASYNC(D, (opening ? /obj/machinery/door/firedoor.proc/open : /obj/machinery/door/firedoor.proc/close)) /** - * Generate an firealarm alert for this area - * - * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world - * - * Also starts the area processing on SSobj - */ + * Generate an firealarm alert for this area + * + * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world + * + * Also starts the area processing on SSobj + */ /area/proc/firealert(obj/source) if(always_unpowered == 1) //no fire alarms in space/asteroid return @@ -348,13 +348,13 @@ GLOBAL_LIST_EMPTY(teleportlocs) START_PROCESSING(SSobj, src) /** - * Reset the firealarm alert for this area - * - * resets the alert sent to all ai players, alert consoles, drones and alarm monitor programs - * in the world - * - * Also cycles the icons of all firealarms and deregisters the area from processing on SSOBJ - */ + * Reset the firealarm alert for this area + * + * resets the alert sent to all ai players, alert consoles, drones and alarm monitor programs + * in the world + * + * Also cycles the icons of all firealarms and deregisters the area from processing on SSOBJ + */ /area/proc/firereset(obj/source) if (fire) unset_fire_alarm_effects() @@ -391,17 +391,17 @@ GLOBAL_LIST_EMPTY(teleportlocs) monitor.freeCamera(src, cam) /** - * If 100 ticks has elapsed, toggle all the firedoors closed again - */ + * If 100 ticks has elapsed, toggle all the firedoors closed again + */ /area/process() if(firedoors_last_closed_on + 100 < world.time) //every 10 seconds ModifyFiredoors(FALSE) /** - * Close and lock a door passed into this proc - * - * Does this need to exist on area? probably not - */ + * Close and lock a door passed into this proc + * + * Does this need to exist on area? probably not + */ /area/proc/close_and_lock_door(obj/machinery/door/DOOR) set waitfor = FALSE DOOR.close() @@ -409,12 +409,12 @@ GLOBAL_LIST_EMPTY(teleportlocs) DOOR.lock() /** - * Raise a burglar alert for this area - * - * Close and locks all doors in the area and alerts silicon mobs of a break in - * - * Alarm auto resets after 600 ticks - */ + * Raise a burglar alert for this area + * + * Close and locks all doors in the area and alerts silicon mobs of a break in + * + * Alarm auto resets after 600 ticks + */ /area/proc/burglaralert(obj/trigger) if(always_unpowered) //no burglar alarms in space/asteroid return @@ -432,10 +432,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) addtimer(CALLBACK(SILICON, /mob/living/silicon.proc/cancelAlarm,"Burglar",src,trigger), 600) /** - * Trigger the fire alarm visual affects in an area - * - * Updates the fire light on fire alarms in the area and sets all lights to emergency mode - */ + * Trigger the fire alarm visual affects in an area + * + * Updates the fire light on fire alarms in the area and sets all lights to emergency mode + */ /area/proc/set_fire_alarm_effect() fire = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT @@ -446,10 +446,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) L.update() /** - * unset the fire alarm visual affects in an area - * - * Updates the fire light on fire alarms in the area and sets all lights to emergency mode - */ + * unset the fire alarm visual affects in an area + * + * Updates the fire light on fire alarms in the area and sets all lights to emergency mode + */ /area/proc/unset_fire_alarm_effects() fire = FALSE mouse_opacity = MOUSE_OPACITY_TRANSPARENT @@ -472,11 +472,11 @@ GLOBAL_LIST_EMPTY(teleportlocs) L.update() /** - * Update the icon state of the area - * - * Im not sure what the heck this does, somethign to do with weather being able to set icon - * states on areas?? where the heck would that even display? //good documentation - */ + * Update the icon state of the area + * + * Im not sure what the heck this does, somethign to do with weather being able to set icon + * states on areas?? where the heck would that even display? //good documentation + */ /area/update_icon_state() var/weather_icon for(var/datum/weather/W as anything in SSweather.get_all_current_weather()) @@ -487,18 +487,18 @@ GLOBAL_LIST_EMPTY(teleportlocs) icon_state = null /** - * Update the icon of the area (overridden to always be null for space - */ + * Update the icon of the area (overridden to always be null for space + */ /area/space/update_icon_state() icon_state = null /** - * Returns int 1 or 0 if the area has power for the given channel - * - * evalutes a mixture of variables mappers can set, requires_power, always_unpowered and then - * per channel power_equip, power_light, power_environ - */ + * Returns int 1 or 0 if the area has power for the given channel + * + * evalutes a mixture of variables mappers can set, requires_power, always_unpowered and then + * per channel power_equip, power_light, power_environ + */ /area/proc/powered(chan) // return true if the area has power to given channel if(!requires_power) @@ -516,16 +516,16 @@ GLOBAL_LIST_EMPTY(teleportlocs) return 0 /** - * Space is not powered ever, so this returns 0 - */ + * Space is not powered ever, so this returns 0 + */ /area/space/powered(chan) //Nope.avi return 0 /** - * Called when the area power status changes - * - * Updates the area icon, calls power change on all machinees in the area, and sends the `COMSIG_AREA_POWER_CHANGE` signal. - */ + * Called when the area power status changes + * + * Updates the area icon, calls power change on all machinees in the area, and sends the `COMSIG_AREA_POWER_CHANGE` signal. + */ /area/proc/power_change() for(var/obj/machinery/M in src) // for each machine in the area M.power_change() // reverify power status (to update icons etc.) @@ -534,30 +534,30 @@ GLOBAL_LIST_EMPTY(teleportlocs) /** - * Add a static amount of power load to an area - * - * Possible channels - * *AREA_USAGE_STATIC_EQUIP - * *AREA_USAGE_STATIC_LIGHT - * *AREA_USAGE_STATIC_ENVIRON - */ + * Add a static amount of power load to an area + * + * Possible channels + * *AREA_USAGE_STATIC_EQUIP + * *AREA_USAGE_STATIC_LIGHT + * *AREA_USAGE_STATIC_ENVIRON + */ /area/proc/addStaticPower(value, powerchannel) switch(powerchannel) if(AREA_USAGE_STATIC_START to AREA_USAGE_STATIC_END) power_usage[powerchannel] += value /** - * Clear all power usage in area - * - * Clears all power used for equipment, light and environment channels - */ + * Clear all power usage in area + * + * Clears all power used for equipment, light and environment channels + */ /area/proc/clear_usage() for(var/i in AREA_USAGE_DYNAMIC_START to AREA_USAGE_DYNAMIC_END) power_usage[i] = 0 /** - * Add a power value amount to the stored used_x variables - */ + * Add a power value amount to the stored used_x variables + */ /area/proc/use_power(amount, chan) switch(chan) if(AREA_USAGE_DYNAMIC_START to AREA_USAGE_DYNAMIC_END) @@ -565,12 +565,12 @@ GLOBAL_LIST_EMPTY(teleportlocs) /** - * Call back when an atom enters an area - * - * Sends signals COMSIG_AREA_ENTERED and COMSIG_ENTER_AREA (to the atom) - * - * If the area has ambience, then it plays some ambience music to the ambience channel - */ + * Call back when an atom enters an area + * + * Sends signals COMSIG_AREA_ENTERED and COMSIG_ENTER_AREA (to the atom) + * + * If the area has ambience, then it plays some ambience music to the ambience channel + */ /area/Entered(atom/movable/M, area/old_area) set waitfor = FALSE SEND_SIGNAL(src, COMSIG_AREA_ENTERED, M, old_area) @@ -598,20 +598,20 @@ GLOBAL_LIST_EMPTY(teleportlocs) /** - * Called when an atom exits an area - * - * Sends signals COMSIG_AREA_EXITED and COMSIG_EXIT_AREA (to the atom) - */ + * Called when an atom exits an area + * + * Sends signals COMSIG_AREA_EXITED and COMSIG_EXIT_AREA (to the atom) + */ /area/Exited(atom/movable/gone, direction) SEND_SIGNAL(src, COMSIG_AREA_EXITED, gone, direction) SEND_SIGNAL(gone, COMSIG_EXIT_AREA, src) //The atom that exits the area /** - * Setup an area (with the given name) - * - * Sets the area name, sets all status var's to false and adds the area to the sorted area list - */ + * Setup an area (with the given name) + * + * Sets the area name, sets all status var's to false and adds the area to the sorted area list + */ /area/proc/setup(a_name) name = a_name power_equip = FALSE @@ -622,11 +622,11 @@ GLOBAL_LIST_EMPTY(teleportlocs) area_flags &= ~BLOBS_ALLOWED addSorted() /** - * Set the area size of the area - * - * This is the number of open turfs in the area contents, or FALSE if the outdoors var is set - * - */ + * Set the area size of the area + * + * This is the number of open turfs in the area contents, or FALSE if the outdoors var is set + * + */ /area/proc/update_areasize() if(outdoors) return FALSE @@ -635,14 +635,14 @@ GLOBAL_LIST_EMPTY(teleportlocs) areasize++ /** - * Causes a runtime error - */ + * Causes a runtime error + */ /area/AllowDrop() CRASH("Bad op: area/AllowDrop() called") /** - * Causes a runtime error - */ + * Causes a runtime error + */ /area/drop_location() CRASH("Bad op: area/drop_location() called") diff --git a/code/game/area/areas/holodeck.dm b/code/game/area/areas/holodeck.dm index c86bf5b90bbe..c8741a23ae7e 100644 --- a/code/game/area/areas/holodeck.dm +++ b/code/game/area/areas/holodeck.dm @@ -14,7 +14,7 @@ Asserts are to avoid the inevitable infinite loops */ -/area/holodeck/powered(var/chan) +/area/holodeck/powered(chan) if(!requires_power) return TRUE if(always_unpowered) diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index 724cb35e76d3..9343d122fd4b 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -80,3 +80,7 @@ icon_state = "dk_yellow" mood_bonus = -10 mood_message = "I want to leave this place.\n" + +/area/ruin/powered/hydroponicslab + name = "Hydroponics Lab" + icon_state = "dk_yellow" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 7ccbc8b210c0..52b4e43e62bd 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1,9 +1,9 @@ /** - * The base type for nearly all physical objects in SS13 + * The base type for nearly all physical objects in SS13 - * Lots and lots of functionality lives here, although in general we are striving to move - * as much as possible to the components/elements system - */ + * Lots and lots of functionality lives here, although in general we are striving to move + * as much as possible to the components/elements system + */ /atom layer = TURF_LAYER plane = GAME_PLANE @@ -143,15 +143,15 @@ var/base_pixel_y /** - * Called when an atom is created in byond (built in engine proc) - * - * Not a lot happens here in SS13 code, as we offload most of the work to the - * [Intialization][/atom/proc/Initialize] proc, mostly we run the preloader - * if the preloader is being used and then call [InitAtom][/datum/controller/subsystem/atoms/proc/InitAtom] of which the ultimate - * result is that the Intialize proc is called. - * - * We also generate a tag here if the DF_USE_TAG flag is set on the atom - */ + * Called when an atom is created in byond (built in engine proc) + * + * Not a lot happens here in SS13 code, as we offload most of the work to the + * [Intialization][/atom/proc/Initialize] proc, mostly we run the preloader + * if the preloader is being used and then call [InitAtom][/datum/controller/subsystem/atoms/proc/InitAtom] of which the ultimate + * result is that the Intialize proc is called. + * + * We also generate a tag here if the DF_USE_TAG flag is set on the atom + */ /atom/New(loc, ...) //atom creation method that preloads variables at creation if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New() @@ -168,39 +168,39 @@ return /** - * The primary method that objects are setup in SS13 with - * - * we don't use New as we have better control over when this is called and we can choose - * to delay calls or hook other logic in and so forth - * - * During roundstart map parsing, atoms are queued for intialization in the base atom/New(), - * After the map has loaded, then Initalize is called on all atoms one by one. NB: this - * is also true for loading map templates as well, so they don't Initalize until all objects - * in the map file are parsed and present in the world - * - * If you're creating an object at any point after SSInit has run then this proc will be - * immediately be called from New. - * - * mapload: This parameter is true if the atom being loaded is either being intialized during - * the Atom subsystem intialization, or if the atom is being loaded from the map template. - * If the item is being created at runtime any time after the Atom subsystem is intialized then - * it's false. - * - * You must always call the parent of this proc, otherwise failures will occur as the item - * will not be seen as initalized (this can lead to all sorts of strange behaviour, like - * the item being completely unclickable) - * - * You must not sleep in this proc, or any subprocs - * - * Any parameters from new are passed through (excluding loc), naturally if you're loading from a map - * there are no other arguments - * - * Must return an [initialization hint][INITIALIZE_HINT_NORMAL] or a runtime will occur. - * - * Note: the following functions don't call the base for optimization and must copypasta handling: - * * [/turf/Initialize] - * * [/turf/open/space/Initialize] - */ + * The primary method that objects are setup in SS13 with + * + * we don't use New as we have better control over when this is called and we can choose + * to delay calls or hook other logic in and so forth + * + * During roundstart map parsing, atoms are queued for intialization in the base atom/New(), + * After the map has loaded, then Initalize is called on all atoms one by one. NB: this + * is also true for loading map templates as well, so they don't Initalize until all objects + * in the map file are parsed and present in the world + * + * If you're creating an object at any point after SSInit has run then this proc will be + * immediately be called from New. + * + * mapload: This parameter is true if the atom being loaded is either being intialized during + * the Atom subsystem intialization, or if the atom is being loaded from the map template. + * If the item is being created at runtime any time after the Atom subsystem is intialized then + * it's false. + * + * You must always call the parent of this proc, otherwise failures will occur as the item + * will not be seen as initalized (this can lead to all sorts of strange behaviour, like + * the item being completely unclickable) + * + * You must not sleep in this proc, or any subprocs + * + * Any parameters from new are passed through (excluding loc), naturally if you're loading from a map + * there are no other arguments + * + * Must return an [initialization hint][INITIALIZE_HINT_NORMAL] or a runtime will occur. + * + * Note: the following functions don't call the base for optimization and must copypasta handling: + * * [/turf/Initialize] + * * [/turf/open/space/Initialize] + */ /atom/proc/Initialize(mapload, ...) //SHOULD_NOT_SLEEP(TRUE) SHOULD_CALL_PARENT(TRUE) @@ -243,16 +243,16 @@ return INITIALIZE_HINT_NORMAL /** - * Late Intialization, for code that should run after all atoms have run Intialization - * - * To have your LateIntialize proc be called, your atoms [Initalization][/atom/proc/Initialize] - * proc must return the hint - * [INITIALIZE_HINT_LATELOAD] otherwise you will never be called. - * - * useful for doing things like finding other machines on GLOB.machines because you can guarantee - * that all atoms will actually exist in the "WORLD" at this time and that all their Intialization - * code has been run - */ + * Late Intialization, for code that should run after all atoms have run Intialization + * + * To have your LateIntialize proc be called, your atoms [Initalization][/atom/proc/Initialize] + * proc must return the hint + * [INITIALIZE_HINT_LATELOAD] otherwise you will never be called. + * + * useful for doing things like finding other machines on GLOB.machines because you can guarantee + * that all atoms will actually exist in the "WORLD" at this time and that all their Intialization + * code has been run + */ /atom/proc/LateInitialize() set waitfor = FALSE @@ -261,15 +261,15 @@ return /** - * Top level of the destroy chain for most atoms - * - * Cleans up the following: - * * Removes alternate apperances from huds that see them - * * qdels the reagent holder from atoms if it exists - * * clears the orbiters list - * * clears overlays and priority overlays - * * clears the light object - */ + * Top level of the destroy chain for most atoms + * + * Cleans up the following: + * * Removes alternate apperances from huds that see them + * * qdels the reagent holder from atoms if it exists + * * clears the orbiters list + * * clears overlays and priority overlays + * * clears the light object + */ /atom/Destroy() if(alternate_appearances) for(var/K in alternate_appearances) @@ -333,15 +333,15 @@ return !density /** - * Is this atom currently located on centcom - * - * Specifically, is it on the z level and within the centcom areas - * - * You can also be in a shuttleshuttle during endgame transit - * - * Used in gamemode to identify mobs who have escaped and for some other areas of the code - * who don't want atoms where they shouldn't be - */ + * Is this atom currently located on centcom + * + * Specifically, is it on the z level and within the centcom areas + * + * You can also be in a shuttleshuttle during endgame transit + * + * Used in gamemode to identify mobs who have escaped and for some other areas of the code + * who don't want atoms where they shouldn't be + */ /atom/proc/onCentCom() var/turf/T = get_turf(src) if(!T) @@ -373,12 +373,12 @@ return TRUE /** - * Is the atom in any of the centcom syndicate areas - * - * Either in the syndie base on centcom, or any of their shuttles - * - * Also used in gamemode code for win conditions - */ + * Is the atom in any of the centcom syndicate areas + * + * Either in the syndie base on centcom, or any of their shuttles + * + * Also used in gamemode code for win conditions + */ /atom/proc/onSyndieBase() var/turf/T = get_turf(src) if(!T) @@ -393,12 +393,12 @@ return FALSE /** - * Is the atom in an away mission - * - * Must be in the away mission z-level to return TRUE - * - * Also used in gamemode code for win conditions - */ + * Is the atom in an away mission + * + * Must be in the away mission z-level to return TRUE + * + * Also used in gamemode code for win conditions + */ /atom/proc/onAwayMission() var/turf/T = get_turf(src) if(!T) @@ -416,17 +416,17 @@ SEND_SIGNAL(src, COMSIG_ATOM_HULK_ATTACK, user) /** - * Ensure a list of atoms/reagents exists inside this atom - * - * Goes throught he list of passed in parts, if they're reagents, adds them to our reagent holder - * creating the reagent holder if it exists. - * - * If the part is a moveable atom and the previous location of the item was a mob/living, - * it calls the inventory handler transferItemToLoc for that mob/living and transfers the part - * to this atom - * - * Otherwise it simply forceMoves the atom into this atom - */ + * Ensure a list of atoms/reagents exists inside this atom + * + * Goes throught he list of passed in parts, if they're reagents, adds them to our reagent holder + * creating the reagent holder if it exists. + * + * If the part is a moveable atom and the previous location of the item was a mob/living, + * it calls the inventory handler transferItemToLoc for that mob/living and transfers the part + * to this atom + * + * Otherwise it simply forceMoves the atom into this atom + */ /atom/proc/CheckParts(list/parts_list, datum/crafting_recipe/R) SEND_SIGNAL(src, COMSIG_ATOM_CHECKPARTS, parts_list, R) if(parts_list) @@ -509,17 +509,17 @@ return reagents && (reagents.flags & DRAINABLE) /** Handles exposing this atom to a list of reagents. - * - * Sends COMSIG_ATOM_EXPOSE_REAGENTS - * Calls expose_atom() for every reagent in the reagent list. - * - * Arguments: - * - [reagents][/list]: The list of reagents the atom is being exposed to. - * - [source][/datum/reagents]: The reagent holder the reagents are being sourced from. - * - method: How the atom is being exposed to the reagents. - * - volume_modifier: Volume multiplier. - * - show_message: Whether to display anything to mobs when they are exposed. - */ + * + * Sends COMSIG_ATOM_EXPOSE_REAGENTS + * Calls expose_atom() for every reagent in the reagent list. + * + * Arguments: + * - [reagents][/list]: The list of reagents the atom is being exposed to. + * - [source][/datum/reagents]: The reagent holder the reagents are being sourced from. + * - method: How the atom is being exposed to the reagents. + * - volume_modifier: Volume multiplier. + * - show_message: Whether to display anything to mobs when they are exposed. + */ /atom/proc/expose_reagents(list/reagents, datum/reagents/source, method=TOUCH, volume_modifier=1, show_message=TRUE) if((. = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, method, volume_modifier, show_message)) & COMPONENT_NO_EXPOSE_REAGENTS) return @@ -537,15 +537,15 @@ return /** - * React to an EMP of the given severity - * - * Default behaviour is to send the [COMSIG_ATOM_EMP_ACT] signal - * - * If the signal does not return protection, and there are attached wires then we call - * [emp_pulse][/datum/wires/proc/emp_pulse] on the wires - * - * We then return the protection value - */ + * React to an EMP of the given severity + * + * Default behaviour is to send the [COMSIG_ATOM_EMP_ACT] signal + * + * If the signal does not return protection, and there are attached wires then we call + * [emp_pulse][/datum/wires/proc/emp_pulse] on the wires + * + * We then return the protection value + */ /atom/proc/emp_act(severity) var/protection = SEND_SIGNAL(src, COMSIG_ATOM_EMP_ACT, severity) if(!(protection & EMP_PROTECT_WIRES) && istype(wires)) @@ -576,11 +576,11 @@ return FALSE /** - * Get the name of this object for examine - * - * You can override what is returned from this proc by registering to listen for the - * [COMSIG_ATOM_GET_EXAMINE_NAME] signal - */ + * Get the name of this object for examine + * + * You can override what is returned from this proc by registering to listen for the + * [COMSIG_ATOM_GET_EXAMINE_NAME] signal + */ /atom/proc/get_examine_name(mob/user) . = "\a [src]" var/list/override = list(gender == PLURAL ? "some" : "a", " ", "[name]") @@ -595,13 +595,13 @@ return "[icon2html(src, user)] [thats? "That's ":""][get_examine_name(user)]" /** - * Called when a mob examines (shift click or verb) this atom - * - * Default behaviour is to get the name and icon of the object and it's reagents where - * the [TRANSPARENT] flag is set on the reagents holder - * - * Produces a signal [COMSIG_PARENT_EXAMINE] - */ + * Called when a mob examines (shift click or verb) this atom + * + * Default behaviour is to get the name and icon of the object and it's reagents where + * the [TRANSPARENT] flag is set on the reagents holder + * + * Produces a signal [COMSIG_PARENT_EXAMINE] + */ /atom/proc/examine(mob/user) . = list("[get_examine_string(user, TRUE)].") @@ -669,11 +669,11 @@ SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_OVERLAYS, .) /** - * An atom we are buckled or is contained within us has tried to move - * - * Default behaviour is to send a warning that the user can't move while buckled as long - * as the [buckle_message_cooldown][/atom/var/buckle_message_cooldown] has expired (50 ticks) - */ + * An atom we are buckled or is contained within us has tried to move + * + * Default behaviour is to send a warning that the user can't move while buckled as long + * as the [buckle_message_cooldown][/atom/var/buckle_message_cooldown] has expired (50 ticks) + */ /atom/proc/relaymove(mob/living/user, direction) if(buckle_message_cooldown <= world.time) buckle_message_cooldown = world.time + 50 @@ -685,20 +685,20 @@ return //For handling the effects of explosions on contents that would not normally be effected /** - * React to being hit by an explosion - * - * Default behaviour is to call [contents_explosion][/atom/proc/contents_explosion] and send the [COMSIG_ATOM_EX_ACT] signal - */ + * React to being hit by an explosion + * + * Default behaviour is to call [contents_explosion][/atom/proc/contents_explosion] and send the [COMSIG_ATOM_EX_ACT] signal + */ /atom/proc/ex_act(severity, target) set waitfor = FALSE contents_explosion(severity, target) SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target) /** - * React to a hit by a blob objecd - * - * default behaviour is to send the [COMSIG_ATOM_BLOB_ACT] signal - */ + * React to a hit by a blob objecd + * + * default behaviour is to send the [COMSIG_ATOM_BLOB_ACT] signal + */ /atom/proc/blob_act(obj/structure/blob/B) SEND_SIGNAL(src, COMSIG_ATOM_BLOB_ACT, B) return @@ -708,24 +708,24 @@ return /** - * React to being hit by a thrown object - * - * Default behaviour is to call [hitby_react][/atom/proc/hitby_react] on ourselves after 2 seconds if we are dense - * and under normal gravity. - * - * Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is - * deleted shortly after hitting something (during explosions or other massive events that - * throw lots of items around - singularity being a notable example) - */ + * React to being hit by a thrown object + * + * Default behaviour is to call [hitby_react][/atom/proc/hitby_react] on ourselves after 2 seconds if we are dense + * and under normal gravity. + * + * Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is + * deleted shortly after hitting something (during explosions or other massive events that + * throw lots of items around - singularity being a notable example) + */ /atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) if(density && !has_gravity(AM)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...). addtimer(CALLBACK(src, .proc/hitby_react, AM), 2) /** - * We have have actually hit the passed in atom - * - * Default behaviour is to move back from the item that hit us - */ + * We have have actually hit the passed in atom + * + * Default behaviour is to move back from the item that hit us + */ /atom/proc/hitby_react(atom/movable/AM) if(AM && isturf(AM.loc)) step(AM, turn(AM.dir, 180)) @@ -792,43 +792,43 @@ return /** - * Respond to the singularity pulling on us - * - * Default behaviour is to send [COMSIG_ATOM_SING_PULL] and return - */ + * Respond to the singularity pulling on us + * + * Default behaviour is to send [COMSIG_ATOM_SING_PULL] and return + */ /atom/proc/singularity_pull(obj/singularity/S, current_size) SEND_SIGNAL(src, COMSIG_ATOM_SING_PULL, S, current_size) /** - * Respond to acid being used on our atom - * - * Default behaviour is to send [COMSIG_ATOM_ACID_ACT] and return - */ + * Respond to acid being used on our atom + * + * Default behaviour is to send [COMSIG_ATOM_ACID_ACT] and return + */ /atom/proc/acid_act(acidpwr, acid_volume) SEND_SIGNAL(src, COMSIG_ATOM_ACID_ACT, acidpwr, acid_volume) /** - * Respond to an emag being used on our atom - * - * Default behaviour is to send [COMSIG_ATOM_EMAG_ACT] and return - */ + * Respond to an emag being used on our atom + * + * Default behaviour is to send [COMSIG_ATOM_EMAG_ACT] and return + */ /atom/proc/emag_act(mob/user) SEND_SIGNAL(src, COMSIG_ATOM_EMAG_ACT, user) /** - * Respond to a radioactive wave hitting this atom - * - * Default behaviour is to send [COMSIG_ATOM_RAD_ACT] and return - */ + * Respond to a radioactive wave hitting this atom + * + * Default behaviour is to send [COMSIG_ATOM_RAD_ACT] and return + */ /atom/proc/rad_act(strength) SEND_SIGNAL(src, COMSIG_ATOM_RAD_ACT, strength) /** - * Respond to narsie eating our atom - * - * Default behaviour is to send [COMSIG_ATOM_NARSIE_ACT] and return - */ + * Respond to narsie eating our atom + * + * Default behaviour is to send [COMSIG_ATOM_NARSIE_ACT] and return + */ /atom/proc/narsie_act() SEND_SIGNAL(src, COMSIG_ATOM_NARSIE_ACT) @@ -839,46 +839,46 @@ /** - * Respond to an RCD acting on our item - * - * Default behaviour is to send [COMSIG_ATOM_RCD_ACT] and return FALSE - */ + * Respond to an RCD acting on our item + * + * Default behaviour is to send [COMSIG_ATOM_RCD_ACT] and return FALSE + */ /atom/proc/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) SEND_SIGNAL(src, COMSIG_ATOM_RCD_ACT, user, the_rcd, passed_mode) return FALSE /** - * Respond to a electric bolt action on our item - * - * Default behaviour is to return, we define here to allow for cleaner code later on - */ + * Respond to a electric bolt action on our item + * + * Default behaviour is to return, we define here to allow for cleaner code later on + */ /atom/proc/zap_act(power, zap_flags, shocked_targets) return /** - * Implement the behaviour for when a user click drags a storage object to your atom - * - * This behaviour is usually to mass transfer, but this is no longer a used proc as it just - * calls the underyling /datum/component/storage dump act if a component exists - * - * TODO these should be purely component items that intercept the atom clicks higher in the - * call chain - */ + * Implement the behaviour for when a user click drags a storage object to your atom + * + * This behaviour is usually to mass transfer, but this is no longer a used proc as it just + * calls the underyling /datum/component/storage dump act if a component exists + * + * TODO these should be purely component items that intercept the atom clicks higher in the + * call chain + */ /atom/proc/storage_contents_dump_act(obj/item/storage/src_object, mob/user) if(GetComponent(/datum/component/storage)) return component_storage_contents_dump_act(src_object, user) return FALSE /** - * Implement the behaviour for when a user click drags another storage item to you - * - * In this case we get as many of the tiems from the target items compoent storage and then - * put everything into ourselves (or our storage component) - * - * TODO these should be purely component items that intercept the atom clicks higher in the - * call chain - */ + * Implement the behaviour for when a user click drags another storage item to you + * + * In this case we get as many of the tiems from the target items compoent storage and then + * put everything into ourselves (or our storage component) + * + * TODO these should be purely component items that intercept the atom clicks higher in the + * call chain + */ /atom/proc/component_storage_contents_dump_act(datum/component/storage/src_object, mob/user) var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) @@ -899,45 +899,45 @@ return null /** - * This proc is called when an atom in our contents has it's [Destroy][/atom/Destroy] called - * - * Default behaviour is to simply send [COMSIG_ATOM_CONTENTS_DEL] - */ + * This proc is called when an atom in our contents has it's [Destroy][/atom/Destroy] called + * + * Default behaviour is to simply send [COMSIG_ATOM_CONTENTS_DEL] + */ /atom/proc/handle_atom_del(atom/A) SEND_SIGNAL(src, COMSIG_ATOM_CONTENTS_DEL, A) /** - * called when the turf the atom resides on is ChangeTurfed - * - * Default behaviour is to loop through atom contents and call their HandleTurfChange() proc - */ + * called when the turf the atom resides on is ChangeTurfed + * + * Default behaviour is to loop through atom contents and call their HandleTurfChange() proc + */ /atom/proc/HandleTurfChange(turf/T) for(var/atom in src) var/atom/A = atom A.HandleTurfChange(T) /** - * the vision impairment to give to the mob whose perspective is set to that atom - * - * (e.g. an unfocused camera giving you an impaired vision when looking through it) - */ + * the vision impairment to give to the mob whose perspective is set to that atom + * + * (e.g. an unfocused camera giving you an impaired vision when looking through it) + */ /atom/proc/get_remote_view_fullscreens(mob/user) return /** - * the sight changes to give to the mob whose perspective is set to that atom - * - * (e.g. A mob with nightvision loses its nightvision while looking through a normal camera) - */ + * the sight changes to give to the mob whose perspective is set to that atom + * + * (e.g. A mob with nightvision loses its nightvision while looking through a normal camera) + */ /atom/proc/update_remote_sight(mob/living/user) return /** - * Hook for running code when a dir change occurs - * - * Not recommended to use, listen for the [COMSIG_ATOM_DIR_CHANGE] signal instead (sent by this proc) - */ + * Hook for running code when a dir change occurs + * + * Not recommended to use, listen for the [COMSIG_ATOM_DIR_CHANGE] signal instead (sent by this proc) + */ /atom/proc/setDir(newdir) SHOULD_CALL_PARENT(TRUE) SEND_SIGNAL(src, COMSIG_ATOM_DIR_CHANGE, dir, newdir) @@ -948,10 +948,10 @@ return /** - * Called when the atom log's in or out - * - * Default behaviour is to call on_log on the location this atom is in - */ + * Called when the atom log's in or out + * + * Default behaviour is to call on_log on the location this atom is in + */ /atom/proc/on_log(login) if(loc) loc.on_log(login) @@ -1007,13 +1007,13 @@ /** - * Wash this atom - * - * This will clean it off any temporary stuff like blood. Override this in your item to add custom cleaning behavior. - * Returns true if any washing was necessary and thus performed - * Arguments: - * * clean_types: any of the CLEAN_ constants - */ + * Wash this atom + * + * This will clean it off any temporary stuff like blood. Override this in your item to add custom cleaning behavior. + * Returns true if any washing was necessary and thus performed + * Arguments: + * * clean_types: any of the CLEAN_ constants + */ /atom/proc/wash(clean_types) . = FALSE if(SEND_SIGNAL(src, COMSIG_COMPONENT_CLEAN_ACT, clean_types)) @@ -1025,16 +1025,16 @@ return TRUE /** - * call back when a var is edited on this atom - * - * Can be used to implement special handling of vars - * - * At the atom level, if you edit a var named "color" it will add the atom colour with - * admin level priority to the atom colours list - * - * Also, if GLOB.Debug2 is FALSE, it sets the [ADMIN_SPAWNED_1] flag on [flags_1][/atom/var/flags_1], which signifies - * the object has been admin edited - */ + * call back when a var is edited on this atom + * + * Can be used to implement special handling of vars + * + * At the atom level, if you edit a var named "color" it will add the atom colour with + * admin level priority to the atom colours list + * + * Also, if GLOB.Debug2 is FALSE, it sets the [ADMIN_SPAWNED_1] flag on [flags_1][/atom/var/flags_1], which signifies + * the object has been admin edited + */ /atom/vv_edit_var(var_name, var_value) if(!GLOB.Debug2) flags_1 |= ADMIN_SPAWNED_1 @@ -1044,10 +1044,10 @@ add_atom_colour(color, ADMIN_COLOUR_PRIORITY) /** - * Return the markup to for the dropdown list for the VV panel for this atom - * - * Override in subtypes to add custom VV handling in the VV panel - */ + * Return the markup to for the dropdown list for the VV panel for this atom + * + * Override in subtypes to add custom VV handling in the VV panel + */ /atom/vv_get_dropdown() . = ..() VV_DROPDOWN_OPTION("", "---------") @@ -1157,13 +1157,13 @@ SEND_SIGNAL(src, COMSIG_ATOM_ENTERED, arrived, old_loc, old_locs) /** - * An atom is attempting to exit this atom's contents - * - * Default behaviour is to send the [COMSIG_ATOM_EXIT] - * - * Return value should be set to FALSE if the moving atom is unable to leave, - * otherwise leave value the result of the parent call - */ + * An atom is attempting to exit this atom's contents + * + * Default behaviour is to send the [COMSIG_ATOM_EXIT] + * + * Return value should be set to FALSE if the moving atom is unable to leave, + * otherwise leave value the result of the parent call + */ /atom/Exit(atom/movable/leaving, direction) // Don't call `..()` here, otherwise `Uncross()` gets called. // See the doc comment on `Uncross()` to learn why this is bad. @@ -1174,10 +1174,10 @@ return TRUE /** - * An atom has exited this atom's contents - * - * Default behaviour is to send the [COMSIG_ATOM_EXITED] - */ + * An atom has exited this atom's contents + * + * Default behaviour is to send the [COMSIG_ATOM_EXITED] + */ /atom/Exited(atom/movable/gone, direction) SEND_SIGNAL(src, COMSIG_ATOM_EXITED, gone, direction) @@ -1186,12 +1186,12 @@ return /** - *Tool behavior procedure. Redirects to tool-specific procs by default. - * - * You can override it to catch all tool interactions, for use in complex deconstruction procs. - * - * Must return parent proc ..() in the end if overridden - */ + *Tool behavior procedure. Redirects to tool-specific procs by default. + * + * You can override it to catch all tool interactions, for use in complex deconstruction procs. + * + * Must return parent proc ..() in the end if overridden + */ /atom/proc/tool_act(mob/living/user, obj/item/I, tool_type) switch(tool_type) if(TOOL_CROWBAR) @@ -1326,15 +1326,15 @@ target.log_talk(message, message_type, tag="[tag] from [key_name(source)]", log_globally=FALSE) /** - * Log a combat message in the attack log - * - * Arguments: - * * atom/user - argument is the actor performing the action - * * atom/target - argument is the target of the action - * * what_done - is a verb describing the action (e.g. punched, throwed, kicked, etc.) - * * atom/object - is a tool with which the action was made (usually an item) - * * addition - is any additional text, which will be appended to the rest of the log line - */ + * Log a combat message in the attack log + * + * Arguments: + * * atom/user - argument is the actor performing the action + * * atom/target - argument is the target of the action + * * what_done - is a verb describing the action (e.g. punched, throwed, kicked, etc.) + * * atom/object - is a tool with which the action was made (usually an item) + * * addition - is any additional text, which will be appended to the rest of the log line + */ /proc/log_combat(atom/user, atom/target, what_done, atom/object=null, addition=null) var/ssource = key_name(user) var/starget = key_name(target) @@ -1449,19 +1449,19 @@ custom_materials[custom_material] += materials[x] * multiplier /** - * Returns true if this atom has gravity for the passed in turf - * - * Sends signals [COMSIG_ATOM_HAS_GRAVITY] and [COMSIG_TURF_HAS_GRAVITY], both can force gravity with - * the forced gravity var - * - * Gravity situations: - * * No gravity if you're not in a turf - * * No gravity if this atom is in is a space turf - * * Gravity if the area it's in always has gravity - * * Gravity if there's a gravity generator on the z level - * * Gravity if the Z level has an SSMappingTrait for ZTRAIT_GRAVITY - * * otherwise no gravity - */ + * Returns true if this atom has gravity for the passed in turf + * + * Sends signals [COMSIG_ATOM_HAS_GRAVITY] and [COMSIG_TURF_HAS_GRAVITY], both can force gravity with + * the forced gravity var + * + * Gravity situations: + * * No gravity if you're not in a turf + * * No gravity if this atom is in is a space turf + * * Gravity if the area it's in always has gravity + * * Gravity if there's a gravity generator on the z level + * * Gravity if the Z level has an SSMappingTrait for ZTRAIT_GRAVITY + * * otherwise no gravity + */ /atom/proc/has_gravity(turf/T) if(!T || !isturf(T)) T = get_turf(src) @@ -1499,13 +1499,13 @@ return T.virtual_level_trait(ZTRAIT_GRAVITY) /** - * Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_TIME (default 1.5 seconds) - * - * This is where you can put extra information on something that may be superfluous or not important in critical gameplay - * moments, while allowing people to manually double-examine to take a closer look - * - * Produces a signal [COMSIG_PARENT_EXAMINE_MORE] - */ + * Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_TIME (default 1.5 seconds) + * + * This is where you can put extra information on something that may be superfluous or not important in critical gameplay + * moments, while allowing people to manually double-examine to take a closer look + * + * Produces a signal [COMSIG_PARENT_EXAMINE_MORE] + */ /atom/proc/examine_more(mob/user) . = list() SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE_MORE, user, .) @@ -1520,11 +1520,11 @@ var/client/usr_client = usr.client var/list/paramslist = list() if(href_list["statpanel_item_shiftclick"]) - paramslist["shift"] = "1" + paramslist[SHIFT_CLICK] = "1" if(href_list["statpanel_item_ctrlclick"]) - paramslist["ctrl"] = "1" + paramslist[CTRL_CLICK] = "1" if(href_list["statpanel_item_altclick"]) - paramslist["alt"] = "1" + paramslist[ALT_CLICK] = "1" if(href_list["statpanel_item_click"]) // first of all make sure we valid var/mouseparams = list2params(paramslist) @@ -1535,7 +1535,7 @@ /atom/proc/container_resist_act(mob/living/user) ///Setter for the "base_pixel_x" var to append behavior related to it's changing -/atom/proc/set_base_pixel_x(var/new_value) +/atom/proc/set_base_pixel_x(new_value) if(base_pixel_x == new_value) return . = base_pixel_x diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index dec06f6e9b34..95f3e81c150d 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -678,16 +678,16 @@ /** - * Called whenever an object moves and by mobs when they attempt to move themselves through space - * And when an object or action applies a force on src, see [newtonian_move][/atom/movable/proc/newtonian_move] - * - * Return 0 to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting - * - * Mobs should return 1 if they should be able to move of their own volition, see [/client/Move] - * - * Arguments: - * * movement_dir - 0 when stopping or any dir when trying to move - */ + * Called whenever an object moves and by mobs when they attempt to move themselves through space + * And when an object or action applies a force on src, see [newtonian_move][/atom/movable/proc/newtonian_move] + * + * Return 0 to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting + * + * Mobs should return 1 if they should be able to move of their own volition, see [/client/Move] + * + * Arguments: + * * movement_dir - 0 when stopping or any dir when trying to move + */ /atom/movable/proc/Process_Spacemove(movement_dir = 0) if(has_gravity(src)) return 1 @@ -1087,10 +1087,10 @@ return TRUE /** - * Updates the grab state of the movable - * - * This exists to act as a hook for behaviour - */ + * Updates the grab state of the movable + * + * This exists to act as a hook for behaviour + */ /atom/movable/proc/setGrabState(newstate) if(newstate == grab_state) return diff --git a/code/game/communications.dm b/code/game/communications.dm index 480abb941275..09b28620e674 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -12,20 +12,20 @@ one device may listen several frequencies, but not same frequency twice. new_frequency - see possibly frequencies below; filter - thing for optimization. Optional, but recommended. - All filters should be consolidated in this file, see defines later. - Device without listening filter will receive all signals (on specified frequency). - Device with filter will receive any signals sent without filter. - Device with filter will not receive any signals sent with different filter. + All filters should be consolidated in this file, see defines later. + Device without listening filter will receive all signals (on specified frequency). + Device with filter will receive any signals sent without filter. + Device with filter will not receive any signals sent with different filter. returns: - Reference to frequency object. + Reference to frequency object. remove_object (obj/device, old_frequency) Obliviously, after calling this proc, device will not receive any signals on old_frequency. Other frequencies will left unaffected. - return_frequency(var/frequency as num) + return_frequency(var/frequency as num) returns: - Reference to frequency object. Use it if you need to send and do not need to listen. + Reference to frequency object. Use it if you need to send and do not need to listen. radio_frequency is a global object maintaining list of devices that listening specific frequency. procs: diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index ffd5ecb46948..1c07527fcf52 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -86,7 +86,7 @@ */ /*********************************************** - Medical HUD! Basic mode needs suit sensors on. +Medical HUD! Basic mode needs suit sensors on. ************************************************/ //HELPERS @@ -219,7 +219,7 @@ /*********************************************** - FAN HUDs! For identifying other fans on-sight. +FAN HUDs! For identifying other fans on-sight. ************************************************/ //HOOKS @@ -237,7 +237,7 @@ holder.icon_state = "fan_clown_pin" /*********************************************** - Security HUDs! Basic mode shows only the job. +Security HUDs! Basic mode shows only the job. ************************************************/ //HOOKS @@ -297,7 +297,7 @@ holder.icon_state = null /*********************************************** - Diagnostic HUDs! +Diagnostic HUDs! ************************************************/ /mob/living/proc/hud_set_nanite_indicator() diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm index 18f6e9fd0b53..04d7a42f4373 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm @@ -137,7 +137,7 @@ return RULESET_STOP_PROCESSING /// Checks for revhead loss conditions and other antag datums. -/datum/dynamic_ruleset/latejoin/provocateur/proc/check_eligible(var/datum/mind/M) +/datum/dynamic_ruleset/latejoin/provocateur/proc/check_eligible(datum/mind/M) if(!considered_afk(M) && considered_alive(M) && !M.antag_datums?.len && !HAS_TRAIT(M, TRAIT_MINDSHIELD)) return TRUE return FALSE diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index e2e83521869c..613182cea211 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -63,7 +63,7 @@ // Or autotator someone // IMPORTANT, since /datum/dynamic_ruleset/midround may accept candidates from both living, dead, and even antag players, you need to manually check whether there are enough candidates -// (see /datum/dynamic_ruleset/midround/autotraitor/ready(var/forced = FALSE) for example) +// (see /datum/dynamic_ruleset/midround/autotraitor/ready(forced = FALSE) for example) /datum/dynamic_ruleset/midround/ready(forced = FALSE) if (!forced) var/job_check = 0 diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index a3a29accc68c..1ca947178911 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -407,7 +407,7 @@ return RULESET_STOP_PROCESSING /// Checks for revhead loss conditions and other antag datums. -/datum/dynamic_ruleset/roundstart/revs/proc/check_eligible(var/datum/mind/M) +/datum/dynamic_ruleset/roundstart/revs/proc/check_eligible(datum/mind/M) if(!considered_afk(M) && considered_alive(M) && !M.antag_datums?.len && !HAS_TRAIT(M, TRAIT_MINDSHIELD)) return TRUE return FALSE diff --git a/code/game/gamemodes/dynamic/readme.md b/code/game/gamemodes/dynamic/readme.md index 5d979b400163..655c3c937514 100644 --- a/code/game/gamemodes/dynamic/readme.md +++ b/code/game/gamemodes/dynamic/readme.md @@ -43,7 +43,7 @@ process() -> [For each midround rule...] ## FORCED For latejoin, it simply sets forced_latejoin_rule -make_antag_chance(newPlayer) -> trim_candidates() -> ready(forced=TRUE) **NOTE no acceptable() call +make_antag_chance(newPlayer) -> trim_candidates() -> ready(forced=TRUE) \*\*NOTE no acceptable() call For midround, calls the below proc with forced = TRUE picking_specific_rule(ruletype,forced) -> forced OR acceptable(living_players, threat_level) -> trim_candidates() -> ready(forced) -> spend threat -> execute() @@ -53,15 +53,15 @@ picking_specific_rule(ruletype,forced) -> forced OR acceptable(living_players, t ## RULESET acceptable(population,threat) just checks if enough threat_level for population indice. -**NOTE that we currently only send threat_level as the second arg, not threat. +\*\*NOTE that we currently only send threat_level as the second arg, not threat. ready(forced) checks if enough candidates and calls the map's map_ruleset(dynamic_ruleset) at the parent level trim_candidates() varies significantly according to the ruleset type Roundstart: All candidates are new_player mobs. Check them for standard stuff: connected, desire role, not banned, etc. -**NOTE Roundstart deals with both candidates (trimmed list of valid players) and mode.candidates (everyone readied up). Don't confuse them! +\*\*NOTE Roundstart deals with both candidates (trimmed list of valid players) and mode.candidates (everyone readied up). Don't confuse them! Latejoin: Only one candidate, the latejoiner. Standard checks. Midround: Instead of building a single list candidates, candidates contains four lists: living, dead, observing, and living antags. Standard checks in trim_list(list). Midround - Rulesets have additional types /from_ghosts: execute() -> send_applications() -> review_applications() -> finish_setup(mob/newcharacter, index) -> setup_role(role) -**NOTE: execute() here adds dead players and observers to candidates list +\*\*NOTE: execute() here adds dead players and observers to candidates list diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 7bb3728f212b..83a7af763431 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -428,13 +428,13 @@ //Keeps track of all heads// //////////////////////////// -/datum/game_mode/proc/get_living_by_department(var/department) +/datum/game_mode/proc/get_living_by_department(department) . = list() for(var/mob/living/carbon/human/player in GLOB.mob_list) if(player.stat != DEAD && player.mind && (player.mind.assigned_role in department)) . |= player.mind -/datum/game_mode/proc/get_all_by_department(var/department) +/datum/game_mode/proc/get_all_by_department(department) . = list() for(var/mob/player in GLOB.mob_list) if(player.mind && (player.mind.assigned_role in department)) diff --git a/code/game/gamemodes/gang/gang_things.dm b/code/game/gamemodes/gang/gang_things.dm index d28bb2eaedfe..5871ed6a24cf 100644 --- a/code/game/gamemodes/gang/gang_things.dm +++ b/code/game/gamemodes/gang/gang_things.dm @@ -23,7 +23,7 @@ return attempt_join_gang(user) -/obj/item/gang_induction_package/proc/add_to_gang(var/mob/living/user) +/obj/item/gang_induction_package/proc/add_to_gang(mob/living/user) var/datum/game_mode/gang/F = SSticker.mode var/datum/antagonist/gang/swappin_sides = new gang_to_use() user.mind.add_antag_datum(swappin_sides) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 53227add6d52..9a114e9f3295 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -12,7 +12,7 @@ GLOBAL_LIST_EMPTY(objectives) var/completed = 0 //currently only used for custom objectives. var/martyr_compatible = 0 //If the objective is compatible with martyr objective, i.e. if you can still do it while dead. -/datum/objective/New(var/text) +/datum/objective/New(text) GLOB.objectives += src if(text) explanation_text = text @@ -982,7 +982,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) martyr_compatible = 0 var/target_count -/datum/objective/hack_apc/New(var/text) +/datum/objective/hack_apc/New(text) target_count = rand(10, CONFIG_GET(number/max_malf_apc_hack_obj)) explanation_text = "Hack [target_count] APCs by the end of the round. You may still spend the processing power as normal." ..() diff --git a/code/game/gamemodes/sandbox/airlock_maker.dm b/code/game/gamemodes/sandbox/airlock_maker.dm index eca72611d31b..ab98aa80b428 100644 --- a/code/game/gamemodes/sandbox/airlock_maker.dm +++ b/code/game/gamemodes/sandbox/airlock_maker.dm @@ -25,7 +25,7 @@ var/doorname = "airlock" -/datum/airlock_maker/New(var/atom/target_loc) +/datum/airlock_maker/New(atom/target_loc) linked = new(target_loc) linked.maker = src linked.set_anchored(FALSE) @@ -70,7 +70,7 @@ dat += "
Finalize Airlock Construction | Cancel and Destroy Airlock" usr << browse(dat,"window=airlockmaker") -/datum/airlock_maker/Topic(var/href,var/list/href_list) +/datum/airlock_maker/Topic(href,list/href_list) if(!usr) return if(!src || !linked || !linked.loc) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 150f7f4b72c6..a503b442d6d5 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -609,7 +609,7 @@ Class Procs: AM.pixel_x = -8 + ((.%3)*8) AM.pixel_y = -8 + (round( . / 3)*8) -/obj/machinery/proc/play_click_sound(var/custom_clicksound) +/obj/machinery/proc/play_click_sound(custom_clicksound) if((custom_clicksound||clicksound) && world.time > next_clicksound) next_clicksound = world.time + CLICKSOUND_INTERVAL if(custom_clicksound) diff --git a/code/game/machinery/bounty_board.dm b/code/game/machinery/bounty_board.dm index 563fab663139..6450999d87eb 100644 --- a/code/game/machinery/bounty_board.dm +++ b/code/game/machinery/bounty_board.dm @@ -1,9 +1,9 @@ GLOBAL_LIST_EMPTY(allbountyboards) GLOBAL_LIST_EMPTY(request_list) /** - * A machine that acts basically like a quest board. - * Enables crew to create requests, crew can sign up to perform the request, and the requester can chose who to pay-out. - */ + * A machine that acts basically like a quest board. + * Enables crew to create requests, crew can sign up to perform the request, and the requester can chose who to pay-out. + */ /obj/machinery/bounty_board name = "bounty board" desc = "Alows you to place requests for goods and services across the sector, as well as pay those who actually did it." @@ -163,9 +163,9 @@ GLOBAL_LIST_EMPTY(request_list) result_path = /obj/machinery/bounty_board /** - * A combined all in one datum that stores everything about the request, the requester's account, as well as the requestee's account - * All of this is passed to the Request Console UI in order to present in organized way. - */ + * A combined all in one datum that stores everything about the request, the requester's account, as well as the requestee's account + * All of this is passed to the Request Console UI in order to present in organized way. + */ /datum/station_request ///Name of the Request Owner. var/owner @@ -180,7 +180,7 @@ GLOBAL_LIST_EMPTY(request_list) ///the account of the request fulfiller. var/list/applicants = list() -/datum/station_request/New(var/owned, var/newvalue, var/newdescription, var/reqnum, var/own_account) +/datum/station_request/New(owned, newvalue, newdescription, reqnum, own_account) . = ..() owner = owned value = newvalue diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index f253f256b534..14a8c10e8742 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -204,7 +204,7 @@ ..() /obj/machinery/button/door/incinerator_vent_toxmix - name = "combustion chamber vent control" + name = "Combustion Chamber Vent control" id = INCINERATOR_TOXMIX_VENT req_access = list(ACCESS_TOX) @@ -214,7 +214,7 @@ req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS) /obj/machinery/button/door/incinerator_vent_atmos_aux - name = "combustion chamber vent control" + name = "Combustion Chamber Vent control" id = INCINERATOR_ATMOS_AUXVENT req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS) @@ -224,7 +224,7 @@ req_access = list(ACCESS_SYNDICATE) /obj/machinery/button/door/incinerator_vent_syndicatelava_aux - name = "combustion chamber vent control" + name = "Combustion Chamber Vent control" id = INCINERATOR_SYNDICATELAVA_AUXVENT req_access = list(ACCESS_SYNDICATE) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 9c95927d6b22..bbe328720947 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -1187,7 +1187,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( //Add Random/Specific crewmember -/obj/machinery/computer/arcade/orion_trail/proc/add_crewmember(var/specific = "") +/obj/machinery/computer/arcade/orion_trail/proc/add_crewmember(specific = "") var/newcrew = "" if(specific) newcrew = specific diff --git a/code/game/machinery/computer/arena.dm b/code/game/machinery/computer/arena.dm index fd0236eb5197..7dfef576a1bd 100644 --- a/code/game/machinery/computer/arena.dm +++ b/code/game/machinery/computer/arena.dm @@ -78,9 +78,9 @@ team_hud_index[team] = length(GLOB.huds) /** - * Loads the arenas from config directory. - * THESE ARE FULLY CACHED FOR QUICK SWITCHING SO KEEP TRACK OF THE AMOUNT - */ + * Loads the arenas from config directory. + * THESE ARE FULLY CACHED FOR QUICK SWITCHING SO KEEP TRACK OF THE AMOUNT + */ /obj/machinery/computer/arena/proc/LoadDefaultArenas() if(default_arenas_loaded) return diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index bd5cf6679e2e..81ffb13b77fe 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -243,7 +243,7 @@ dat += "

[active_record.fields["name"]][body_only ? " - BODY-ONLY" : ""]

" dat += "Scan ID [active_record.fields["id"]] \ [!body_only ? "Clone" : "" ]\ - Empty Clone
" + Empty Clone
" var/obj/item/implant/health/H = locate(active_record.fields["imp"]) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index a73875403599..6d9a5ed9d1ad 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -33,8 +33,8 @@ alarm() /** - * Initiates launching sequence by checking if all components are functional, opening poddoors, firing mass drivers and then closing poddoors - */ + * Initiates launching sequence by checking if all components are functional, opening poddoors, firing mass drivers and then closing poddoors + */ /obj/machinery/computer/pod/proc/alarm() if(machine_stat & (NOPOWER|BROKEN)) return diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 16e3275cf6e5..6598429d2ff4 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -1,4 +1,3 @@ -#define DEFAULT_JOB_SLOT_ADJUSTMENT_COOLDOWN 2 MINUTES /* * Cryogenic refrigeration unit. Basically a despawner. @@ -28,8 +27,6 @@ GLOBAL_LIST_EMPTY(cryopod_computers) /// Whether or not to store items from people going into cryosleep. var/allow_items = TRUE - /// The ship object representing the ship that this console is on. - var/datum/overmap/ship/controlled/linked_ship /obj/machinery/computer/cryopod/Initialize() . = ..() @@ -39,10 +36,6 @@ GLOBAL_LIST_EMPTY(cryopod_computers) GLOB.cryopod_computers -= src return ..() -/obj/machinery/computer/cryopod/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override) - . = ..() - linked_ship = port.current_ship - /obj/machinery/computer/cryopod/ui_interact(mob/user, datum/tgui/ui) . = ..() ui = SStgui.try_update_ui(user, src, ui) @@ -102,49 +95,12 @@ GLOBAL_LIST_EMPTY(cryopod_computers) allow_items = !allow_items return - if("toggleAwakening") - linked_ship.join_allowed = !linked_ship.join_allowed - return - - if("setMemo") - if(!("newName" in params) || params["newName"] == linked_ship.memo) - return - linked_ship.memo = params["newName"] - return - - if("adjustJobSlot") - if(!("toAdjust" in params) || !("delta" in params) || !COOLDOWN_FINISHED(linked_ship, job_slot_adjustment_cooldown)) - return - var/datum/job/target_job = locate(params["toAdjust"]) - if(!target_job) - return - if(linked_ship.job_slots[target_job] + params["delta"] < 0 || linked_ship.job_slots[target_job] + params["delta"] > 4) - return - linked_ship.job_slots[target_job] += params["delta"] - COOLDOWN_START(linked_ship, job_slot_adjustment_cooldown, DEFAULT_JOB_SLOT_ADJUSTMENT_COOLDOWN) - update_static_data(user) - return - /obj/machinery/computer/cryopod/ui_data(mob/user) . = list() .["allowItems"] = allow_items - .["awakening"] = linked_ship.join_allowed - .["cooldown"] = COOLDOWN_TIMELEFT(linked_ship, job_slot_adjustment_cooldown) - .["memo"] = linked_ship.memo /obj/machinery/computer/cryopod/ui_static_data(mob/user) . = list() - .["jobs"] = list() - for(var/datum/job/J as anything in linked_ship.job_slots) - if(J.officer) - continue - .["jobs"] += list(list( - name = J.title, - slots = linked_ship.job_slots[J], - ref = REF(J), - max = linked_ship.source_template.job_slots[J] * 2 - )) - .["hasItems"] = length(frozen_items) > 0 .["stored"] = frozen_crew @@ -471,5 +427,3 @@ GLOBAL_LIST_EMPTY(cryopod_computers) sleepyhead.set_disgust(60) sleepyhead.set_nutrition(160) to_chat(sleepyhead, "A very bad headache wakes you up from cryosleep...") - -#undef DEFAULT_JOB_SLOT_ADJUSTMENT_COOLDOWN diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index b74aee653a59..6bc2117d0c4c 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1155,13 +1155,13 @@ return !operating && density /** - * Used when attempting to remove a seal from an airlock - * - * Called when attacking an airlock with an empty hand, returns TRUE (there was a seal and we removed it, or failed to remove it) - * or FALSE (there was no seal) - * Arguments: - * * user - Whoever is attempting to remove the seal - */ + * Used when attempting to remove a seal from an airlock + * + * Called when attacking an airlock with an empty hand, returns TRUE (there was a seal and we removed it, or failed to remove it) + * or FALSE (there was no seal) + * Arguments: + * * user - Whoever is attempting to remove the seal + */ /obj/machinery/door/airlock/try_remove_seal(mob/living/user) if(!seal) return FALSE diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 135d08deba91..58aad2b3a976 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -103,13 +103,13 @@ return FALSE /** - * Called when attempting to remove the seal from an airlock - * - * Here because we need to call it and return if there was a seal so we don't try to open the door - * or try its safety lock while it's sealed - * Arguments: - * * user - the mob attempting to remove the seal - */ + * Called when attempting to remove the seal from an airlock + * + * Here because we need to call it and return if there was a seal so we don't try to open the door + * or try its safety lock while it's sealed + * Arguments: + * * user - the mob attempting to remove the seal + */ /obj/machinery/door/proc/try_remove_seal(mob/user) return diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 23651409e02e..f014e523edc5 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -93,7 +93,7 @@ INVOKE_ASYNC(src, .proc/close) /obj/machinery/door/poddoor/incinerator_toxmix - name = "combustion chamber vent" + name = "Combustion Chamber Vent" id = INCINERATOR_TOXMIX_VENT /obj/machinery/door/poddoor/incinerator_atmos_main @@ -101,7 +101,7 @@ id = INCINERATOR_ATMOS_MAINVENT /obj/machinery/door/poddoor/incinerator_atmos_aux - name = "combustion chamber vent" + name = "Combustion Chamber Vent" id = INCINERATOR_ATMOS_AUXVENT /obj/machinery/door/poddoor/incinerator_syndicatelava_main @@ -109,7 +109,7 @@ id = INCINERATOR_SYNDICATELAVA_MAINVENT /obj/machinery/door/poddoor/incinerator_syndicatelava_aux - name = "combustion chamber vent" + name = "Combustion Chamber Vent" id = INCINERATOR_SYNDICATELAVA_AUXVENT /obj/machinery/door/poddoor/Bumped(atom/movable/AM) @@ -188,7 +188,7 @@ return ..() //Multi-tile poddoors don't turn invisible automatically, so we change the opacity of the turfs below instead one by one. -/obj/machinery/door/poddoor/multi_tile/proc/apply_opacity_to_my_turfs(var/new_opacity) +/obj/machinery/door/poddoor/multi_tile/proc/apply_opacity_to_my_turfs(new_opacity) for(var/turf/T in locs) T.opacity = new_opacity T.directional_opacity = ALL_CARDINALS diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index aadd21e82e7c..c6a283d5aa1e 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -209,7 +209,7 @@ . = ..() . += "Its channel ID is '[id]'." -/obj/item/wallframe/flasher/after_attach(var/obj/O) +/obj/item/wallframe/flasher/after_attach(obj/O) ..() var/obj/machinery/flasher/F = O F.id = id diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 366513b94998..e3e410a029d1 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -329,8 +329,8 @@ Possible to do for anyone motivated enough: outgoing_call.Disconnect(src) /** - * hangup_all_calls: Disconnects all current holocalls from the holopad - */ + * hangup_all_calls: Disconnects all current holocalls from the holopad + */ /obj/machinery/holopad/proc/hangup_all_calls() for(var/I in holo_calls) var/datum/holocall/HC = I @@ -509,9 +509,9 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ return TRUE /**Can we display holos on the turf T - *Area check instead of line of sight check because this is a called a lot if AI wants to move around. - * *Areacheck for things that need to get into other areas, such as emergency holograms - */ + *Area check instead of line of sight check because this is a called a lot if AI wants to move around. + * *Areacheck for things that need to get into other areas, such as emergency holograms + */ /obj/machinery/holopad/proc/validate_location(turf/T, check_los = FALSE, areacheck = TRUE) if(T.virtual_z() == virtual_z() && get_dist(T, src) <= holo_range && (T.loc == get_area(src) || !areacheck) && anchored) return TRUE diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index c35654e6077b..39bf5d2efe98 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -76,7 +76,7 @@ GLOB.deliverybeacontags -= location GLOB.wayfindingbeacons -= src -/obj/machinery/navbeacon/proc/glob_lists_register(var/init=FALSE) +/obj/machinery/navbeacon/proc/glob_lists_register(init=FALSE) if(!init) glob_lists_deregister() if(codes["patrol"]) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 651bfaec8388..547dee47342a 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -122,7 +122,7 @@ DEFINE_BITFIELD(turret_flags, list( if(!has_cover) INVOKE_ASYNC(src, .proc/popUp) -/obj/machinery/porta_turret/proc/toggle_on(var/set_to) +/obj/machinery/porta_turret/proc/toggle_on(set_to) var/current = on if (!isnull(set_to)) on = set_to diff --git a/code/game/machinery/shuttle/shuttle_engine.dm b/code/game/machinery/shuttle/shuttle_engine.dm index 5286392a17e6..3a577749768a 100644 --- a/code/game/machinery/shuttle/shuttle_engine.dm +++ b/code/game/machinery/shuttle/shuttle_engine.dm @@ -1,8 +1,8 @@ /** - * ## Engine Thrusters - * The workhorse of any movable ship, these engines (usually) take in some kind fuel and produce thrust to move ships. - * - */ + * ## Engine Thrusters + * The workhorse of any movable ship, these engines (usually) take in some kind fuel and produce thrust to move ships. + * + */ /obj/machinery/power/shuttle/engine name = "shuttle thruster" desc = "A thruster for shuttles." @@ -16,29 +16,29 @@ var/thruster_active = FALSE /** - * Uses up a specified percentage of the fuel cost, and returns the amount of thrust if successful. - * * percentage - The percentage of total thrust that should be used - */ + * Uses up a specified percentage of the fuel cost, and returns the amount of thrust if successful. + * * percentage - The percentage of total thrust that should be used + */ /obj/machinery/power/shuttle/engine/proc/burn_engine(percentage = 100) update_icon_state() return FALSE /** - * Returns how much "Fuel" is left. (For use with engine displays.) - */ + * Returns how much "Fuel" is left. (For use with engine displays.) + */ /obj/machinery/power/shuttle/engine/proc/return_fuel() return /** - * Returns how much "Fuel" can be held. (For use with engine displays.) - */ + * Returns how much "Fuel" can be held. (For use with engine displays.) + */ /obj/machinery/power/shuttle/engine/proc/return_fuel_cap() return /** - * Updates the engine state. - * All functions should return if the parent function returns false. - */ + * Updates the engine state. + * All functions should return if the parent function returns false. + */ /obj/machinery/power/shuttle/engine/proc/update_engine() thruster_active = TRUE if(panel_open) @@ -47,8 +47,8 @@ return TRUE /** - * Updates the engine's icon and engine state. - */ + * Updates the engine's icon and engine state. + */ /obj/machinery/power/shuttle/engine/update_icon_state() update_engine() //Calls this so it sets the accurate icon if(panel_open) diff --git a/code/game/machinery/shuttle/shuttle_engine_types.dm b/code/game/machinery/shuttle/shuttle_engine_types.dm index 76d6b7a32622..6b72df941750 100644 --- a/code/game/machinery/shuttle/shuttle_engine_types.dm +++ b/code/game/machinery/shuttle/shuttle_engine_types.dm @@ -2,9 +2,9 @@ #define ENGINE_HEATING_POWER 5000000 /** - * ### Fueled engines - * Shuttle engines that require a gas or gases to burn. - */ + * ### Fueled engines + * Shuttle engines that require a gas or gases to burn. + */ /obj/machinery/power/shuttle/engine/fueled name = "fueled thruster" desc = "A thruster that burns a specific gas that is stored in an adjacent heater." @@ -102,9 +102,9 @@ //All fuel code already handled /** - * ### Ion Engines - * Engines that convert electricity to thrust. Yes, I know that's not how it works, it needs a propellant, but this is a video game. - */ + * ### Ion Engines + * Engines that convert electricity to thrust. Yes, I know that's not how it works, it needs a propellant, but this is a video game. + */ /obj/machinery/power/shuttle/engine/electric name = "ion thruster" desc = "A thruster that expels charged particles to generate thrust." @@ -166,9 +166,9 @@ return power_per_burn /** - * ### Liquid Fuel Engines - * Turns a specific reagent or reagents into thrust. - */ + * ### Liquid Fuel Engines + * Turns a specific reagent or reagents into thrust. + */ /obj/machinery/power/shuttle/engine/liquid name = "liquid thruster" desc = "A thruster that burns reagents stored in the engine for fuel." @@ -220,9 +220,9 @@ circuit = /obj/item/circuitboard/machine/shuttle/engine/oil /** - * ### Void Engines - * These engines are literally magic. Adminspawn only. - */ + * ### Void Engines + * These engines are literally magic. Adminspawn only. + */ /obj/machinery/power/shuttle/engine/void name = "void thruster" desc = "A thruster using technology to breach voidspace for propulsion." diff --git a/code/game/machinery/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm index b2fc783aab22..be9ad55eb5d8 100644 --- a/code/game/machinery/shuttle/shuttle_heater.dm +++ b/code/game/machinery/shuttle/shuttle_heater.dm @@ -118,10 +118,10 @@ return air_contents.get_moles(gas_type) >= required /** - * Burns a specific amount of one type of gas. Returns how much was actually used. - * * amount - The amount of mols of fuel to burn. - * * gas_type - The gas type to burn. - */ + * Burns a specific amount of one type of gas. Returns how much was actually used. + * * amount - The amount of mols of fuel to burn. + * * gas_type - The gas type to burn. + */ /obj/machinery/atmospherics/components/unary/shuttle/heater/proc/consume_fuel(amount, datum/gas/gas_type) var/datum/gas_mixture/air_contents = use_tank ? fuel_tank?.air_contents : airs[1] if(!air_contents) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index d8575c56be72..7e9522db464c 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -383,12 +383,12 @@ add_fingerprint(user) /** - * UV decontamination sequence. - * Duration is determined by the uv_cycles var. - * Effects determined by the uv_super var. - * * If FALSE, all atoms (and their contents) contained are cleared of radiation. If a mob is inside, they are burned every cycle. - * * If TRUE, all items contained are destroyed, and burn damage applied to the mob is increased. All wires will be cut at the end. - * All atoms still inside at the end of all cycles are ejected from the unit. + * UV decontamination sequence. + * Duration is determined by the uv_cycles var. + * Effects determined by the uv_super var. + * * If FALSE, all atoms (and their contents) contained are cleared of radiation. If a mob is inside, they are burned every cycle. + * * If TRUE, all items contained are destroyed, and burn damage applied to the mob is increased. All wires will be cut at the end. + * All atoms still inside at the end of all cycles are ejected from the unit. */ /obj/machinery/suit_storage_unit/proc/cook() var/mob/living/mob_occupant = occupant diff --git a/code/game/machinery/teambuilder.dm b/code/game/machinery/teambuilder.dm index 8daf750de4e5..66a384036c35 100644 --- a/code/game/machinery/teambuilder.dm +++ b/code/game/machinery/teambuilder.dm @@ -1,6 +1,6 @@ /** - * Simple admin tool that enables players to be assigned to a VERY SHITTY, very visually distinct team, quickly and affordably. - */ + * Simple admin tool that enables players to be assigned to a VERY SHITTY, very visually distinct team, quickly and affordably. + */ /obj/machinery/teambuilder name = "Teambuilding Machine" desc = "A machine that, when passed, colors you based on the color of your team. Lead free!" diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm index 99f803076915..33f09b11f021 100644 --- a/code/game/mecha/combat/durand.dm +++ b/code/game/mecha/combat/durand.dm @@ -46,7 +46,7 @@ shield.forceMove(loc) shield.setDir(dir) -/obj/mecha/combat/durand/forceMove(var/turf/T) +/obj/mecha/combat/durand/forceMove(turf/T) . = ..() shield.forceMove(T) @@ -75,7 +75,7 @@ /**Checks if defense mode is enabled, and if the attacker is standing in an area covered by the shield. Expects a turf. Returns true if the attack should be blocked, false if not.*/ -/obj/mecha/combat/durand/proc/defense_check(var/turf/aloc) +/obj/mecha/combat/durand/proc/defense_check(turf/aloc) if (!defense_mode || !shield || shield.switching) return FALSE . = FALSE diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 4d2c5abe371e..2beaf9129ff6 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -301,7 +301,7 @@ return 1000 //making magic -/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/proc/GET_MUTATION_POWER_channel(var/area/A) +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/proc/GET_MUTATION_POWER_channel(area/A) var/pow_chan if(A) for(var/c in use_channels) @@ -408,7 +408,7 @@ if(result) send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info()) -/obj/item/mecha_parts/mecha_equipment/generator/proc/load_fuel(var/obj/item/stack/sheet/sheet_being_inserted) +/obj/item/mecha_parts/mecha_equipment/generator/proc/load_fuel(obj/item/stack/sheet/sheet_being_inserted) if((istype(sheet_being_inserted, fuel)) && sheet_being_inserted.amount > 0) var/to_load = max(max_fuel - fuel.amount*MINERAL_MATERIAL_AMOUNT,0) if(to_load) @@ -529,13 +529,13 @@ /obj/item/mecha_parts/mecha_equipment/thrusters/get_equip_info() return "[..()] \[Enable|Disable\]" -/obj/item/mecha_parts/mecha_equipment/thrusters/proc/thrust(var/movement_dir) +/obj/item/mecha_parts/mecha_equipment/thrusters/proc/thrust(movement_dir) if(!chassis) return FALSE generate_effect(movement_dir) return TRUE //This parent should never exist in-game outside admeme use, so why not let it be a creative thruster? -/obj/item/mecha_parts/mecha_equipment/thrusters/proc/generate_effect(var/movement_dir) +/obj/item/mecha_parts/mecha_equipment/thrusters/proc/generate_effect(movement_dir) var/obj/effect/particle_effect/E = new effect_type(get_turf(chassis)) E.dir = turn(movement_dir, 180) step(E, turn(movement_dir, 180)) @@ -554,7 +554,7 @@ return FALSE . = ..() -/obj/item/mecha_parts/mecha_equipment/thrusters/gas/thrust(var/movement_dir) +/obj/item/mecha_parts/mecha_equipment/thrusters/gas/thrust(movement_dir) if(!chassis || !chassis.internal_tank) return FALSE var/moles = chassis.internal_tank.air_contents.total_moles() @@ -574,7 +574,7 @@ salvageable = FALSE effect_type = /obj/effect/particle_effect/ion_trails -/obj/item/mecha_parts/mecha_equipment/thrusters/ion/thrust(var/movement_dir) +/obj/item/mecha_parts/mecha_equipment/thrusters/ion/thrust(movement_dir) if(!chassis) return FALSE if(chassis.use_power(chassis.step_energy_drain)) diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 2ba91419d003..ec7aa6212fe5 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -332,7 +332,7 @@ -/obj/item/mecha_parts/mecha_equipment/rcd/do_after_cooldown(var/atom/target) +/obj/item/mecha_parts/mecha_equipment/rcd/do_after_cooldown(atom/target) . = ..() /obj/item/mecha_parts/mecha_equipment/rcd/Topic(href,href_list) @@ -389,7 +389,7 @@ chassis.events.clearEvent("onMove",event) return ..() -/obj/item/mecha_parts/mecha_equipment/cable_layer/action(var/obj/item/stack/cable_coil/target) +/obj/item/mecha_parts/mecha_equipment/cable_layer/action(obj/item/stack/cable_coil/target) if(!action_checks(target)) return if(istype(target) && target.amount) @@ -449,7 +449,7 @@ /obj/item/mecha_parts/mecha_equipment/cable_layer/proc/reset() last_piece = null -/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/dismantleFloor(var/turf/new_turf) +/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/dismantleFloor(turf/new_turf) if(isfloorturf(new_turf)) var/turf/open/floor/T = new_turf if(!isplatingturf(T)) @@ -458,7 +458,7 @@ T.make_plating() return !new_turf.intact -/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/layCable(var/turf/new_turf) +/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/layCable(turf/new_turf) if(equip_ready || !istype(new_turf) || !dismantleFloor(new_turf)) return reset() var/fdirn = turn(chassis.dir,180) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 21ceba1f8a94..cfd09dc09830 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -398,7 +398,7 @@ return 1 //used for projectile initilisation (priming flashbang) and additional logging -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/proc/proj_init(var/obj/O) +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/proc/proj_init(obj/O) return @@ -416,7 +416,7 @@ var/det_time = 20 ammo_type = "flashbang" -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/proj_init(var/obj/item/grenade/flashbang/F) +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/proj_init(obj/item/grenade/flashbang/F) var/turf/T = get_turf(src) message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] fired a [src] in [ADMIN_VERBOSEJMP(T)]") log_game("[key_name(chassis.occupant)] fired a [src] in [AREACOORD(T)]") @@ -467,7 +467,7 @@ return 1 return 0 -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/proj_init(var/obj/item/assembly/mousetrap/armed/M) +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/proj_init(obj/item/assembly/mousetrap/armed/M) M.secured = 1 diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index a8a0d4b867b4..155a06bad0bb 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -288,7 +288,7 @@ updateUsrDialog() return -/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, var/datum/material/resource, roundto = 1) +/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, datum/material/resource, roundto = 1) return round(D.materials[resource]*component_coeff, roundto) /obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(datum/design/D, roundto = 1) //aran diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 6350b2d5a35d..d32f882b6fcb 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -232,7 +232,7 @@ return internal_tank ///Adds a cell, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this. -/obj/mecha/proc/add_cell(var/obj/item/stock_parts/cell/C=null) +/obj/mecha/proc/add_cell(obj/item/stock_parts/cell/C=null) QDEL_NULL(cell) if(C) C.forceMove(src) @@ -241,7 +241,7 @@ cell = new /obj/item/stock_parts/cell/high/plus(src) ///Adds a scanning module, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this. -/obj/mecha/proc/add_scanmod(var/obj/item/stock_parts/scanning_module/sm=null) +/obj/mecha/proc/add_scanmod(obj/item/stock_parts/scanning_module/sm=null) QDEL_NULL(scanmod) if(sm) sm.forceMove(src) @@ -250,7 +250,7 @@ scanmod = new /obj/item/stock_parts/scanning_module(src) ///Adds a capacitor, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this. -/obj/mecha/proc/add_capacitor(var/obj/item/stock_parts/capacitor/cap=null) +/obj/mecha/proc/add_capacitor(obj/item/stock_parts/capacitor/cap=null) QDEL_NULL(capacitor) if(cap) cap.forceMove(src) @@ -529,7 +529,7 @@ occupant_message("Air port connection has been severed!") log_message("Lost connection to gas port.", LOG_MECHA) -/obj/mecha/Process_Spacemove(var/movement_dir = 0) +/obj/mecha/Process_Spacemove(movement_dir = 0) . = ..() if(.) return TRUE @@ -630,7 +630,7 @@ play_stepsound() step_silent = FALSE -/obj/mecha/Bump(var/atom/obstacle) +/obj/mecha/Bump(atom/obstacle) if(phasing && get_charge() >= phasing_energy_drain && !throwing) if(!can_move) return @@ -739,7 +739,7 @@ if(!..()) return - //Transfer from core or card to mech. Proc is called by mech. +//Transfer from core or card to mech. Proc is called by mech. switch(interaction) if(AI_TRANS_TO_CARD) //Upload AI from mech to AI card. if(!construction_state) //Mech must be in maint mode to allow carding. @@ -1155,7 +1155,7 @@ GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013??? ////// Ammo stuff ///// /////////////////////// -/obj/mecha/proc/ammo_resupply(var/obj/item/mecha_ammo/A, mob/user,var/fail_chat_override = FALSE) +/obj/mecha/proc/ammo_resupply(obj/item/mecha_ammo/A, mob/user,fail_chat_override = FALSE) if(!A.rounds) if(!fail_chat_override) to_chat(user, "This box of ammo is empty!") diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index b100bfb70a5c..3aac1d0468ae 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -86,8 +86,8 @@ var/obj/mecha/chassis /** - * Returns a html formatted string describing attached mech status - */ + * Returns a html formatted string describing attached mech status + */ /obj/item/mecha_parts/mecha_tracking/proc/get_mecha_info() if(!chassis) return FALSE @@ -126,8 +126,8 @@ chassis = M /** - * Attempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown - */ + * Attempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown + */ /obj/item/mecha_parts/mecha_tracking/proc/shock() if(recharging) return @@ -137,8 +137,8 @@ recharging = TRUE /** - * Resets recharge variable, allowing tracker to be EMP pulsed again - */ + * Resets recharge variable, allowing tracker to be EMP pulsed again + */ /obj/item/mecha_parts/mecha_tracking/proc/recharge() recharging = FALSE diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index 3f02c1f9896a..f35c02ed3420 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -93,7 +93,7 @@ if(!..()) return - //Proc called on the wreck by the AI card. +//Proc called on the wreck by the AI card. if(interaction != AI_TRANS_TO_CARD) //AIs can only be transferred in one direction, from the wreck to the card. return if(!AI) //No AI in the wreck diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index e6dece9d9c78..a9dd13e286aa 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -128,14 +128,14 @@ /atom/movable/proc/post_unbuckle_mob(mob/living/M) /** - * Simple helper proc that runs a suite of checks to test whether it is possible or not to buckle the target mob to src. - * - * Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. - * Arguments: - * * target - Target mob to check against buckling to src. - * * force - Whether or not the buckle should be forced. If TRUE, ignores src's can_buckle var. - * * check_loc - Whether to do a proximity check or not. The proximity check looks for target.loc == src.loc. - */ + * Simple helper proc that runs a suite of checks to test whether it is possible or not to buckle the target mob to src. + * + * Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. + * Arguments: + * * target - Target mob to check against buckling to src. + * * force - Whether or not the buckle should be forced. If TRUE, ignores src's can_buckle var. + * * check_loc - Whether to do a proximity check or not. The proximity check looks for target.loc == src.loc. + */ /atom/movable/proc/is_buckle_possible(mob/living/target, force = FALSE, check_loc = TRUE) // Make sure target is mob/living if(!istype(target)) @@ -168,14 +168,14 @@ return TRUE /** - * Simple helper proc that runs a suite of checks to test whether it is possible or not for user to buckle target mob to src. - * - * Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. - * Arguments: - * * target - Target mob to check against buckling to src. - * * user - The mob who is attempting to buckle the target to src. - * * check_loc - Whether to do a proximity check or not when calling is_buckle_possible(). - */ + * Simple helper proc that runs a suite of checks to test whether it is possible or not for user to buckle target mob to src. + * + * Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. + * Arguments: + * * target - Target mob to check against buckling to src. + * * user - The mob who is attempting to buckle the target to src. + * * check_loc - Whether to do a proximity check or not when calling is_buckle_possible(). + */ /atom/movable/proc/is_user_buckle_possible(mob/living/target, mob/user, check_loc = TRUE) // Standard adjacency and other checks. if(!Adjacent(user) || !Adjacent(target) || !isturf(user.loc) || user.incapacitated() || target.anchored) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 3718b108e44b..e2686a120344 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -213,7 +213,7 @@ /obj/structure/sign/poster/contraband/fun_police name = "Fun Police" - desc = "A poster condemning Nanotransen's infamous corporate security forces." + desc = "A poster condemning Nanotrasen's infamous corporate security forces." icon_state = "poster3" /obj/structure/sign/poster/contraband/lusty_xenomorph diff --git a/code/game/objects/effects/effect_system/effects_water.dm b/code/game/objects/effects/effect_system/effects_water.dm index 44d9c485544b..6e00b336d240 100644 --- a/code/game/objects/effects/effect_system/effects_water.dm +++ b/code/game/objects/effects/effect_system/effects_water.dm @@ -34,11 +34,11 @@ // will always spawn at the items location, even if it's moved. /* Example: - var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() -- creates new system -steam.set_up(5, 0, mob.loc) -- sets up variables -OPTIONAL: steam.attach(mob) -steam.start() -- spawns the effect -*/ + * var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() -- creates new system + * steam.set_up(5, 0, mob.loc) -- sets up variables + * OPTIONAL: steam.attach(mob) + * steam.start() -- spawns the effect + */ ///////////////////////////////////////////// /obj/effect/particle_effect/steam name = "steam" diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 053ddead9667..962cced660de 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -598,6 +598,7 @@ /obj/machinery/the_singularitygen = 1, ) + GLOBAL_LIST_INIT(ws_survivor_default_loot, list( /obj/item/stack/sheet/animalhide/goliath_hide = 0.7, /obj/item/stack/sheet/bone = 0.8, @@ -632,6 +633,59 @@ GLOBAL_LIST_INIT(ws_survivor_default_loot, list( /obj/effect/spawner/lootdrop/whitesands/survivor/gunslinger name = "Whitesands Gunslinger loot spawner" loot = list( - /obj/item/gun/ballistic/automatic/aks74u = 0.1, + /obj/item/gun/ballistic/automatic/smg/aks74u = 0.1, /obj/item/ammo_box/magazine/aks74u = 0.4 ) + +/obj/effect/spawner/lootdrop/stockparts + name = "random good stock parts" + lootcount = 5 + loot = list( + /obj/item/stock_parts/capacitor/adv, + /obj/item/stock_parts/capacitor/quadratic, + /obj/item/stock_parts/capacitor/super, + /obj/item/stock_parts/cell/hyper, + /obj/item/stock_parts/cell/super, + /obj/item/stock_parts/cell/bluespace, + /obj/item/stock_parts/matter_bin/bluespace, + /obj/item/stock_parts/matter_bin/super, + /obj/item/stock_parts/matter_bin/adv, + /obj/item/stock_parts/micro_laser/ultra, + /obj/item/stock_parts/micro_laser/quadultra, + /obj/item/stock_parts/micro_laser/high, + /obj/item/stock_parts/scanning_module/triphasic, + /obj/item/stock_parts/scanning_module/phasic, + /obj/item/stock_parts/scanning_module/adv, + /obj/item/reagent_containers/glass/beaker/bluespace, + /obj/item/reagent_containers/glass/beaker/plastic, + /obj/item/reagent_containers/glass/beaker/large, + /obj/item/stock_parts/manipulator/nano, + /obj/item/stock_parts/manipulator/pico, + /obj/item/stock_parts/manipulator/femto + ) + +/obj/effect/spawner/lootdrop/materials + name = "random materials" + lootcount = 3 + loot = list( + /obj/item/stack/sheet/plastic/fifty, + /obj/item/stack/sheet/plastic/five, + /obj/item/stack/sheet/bluespace_crystal/twenty, + /obj/item/stack/sheet/bluespace_crystal/five, + /obj/item/stack/sheet/cardboard/fifty, + /obj/item/stack/sheet/glass/fifty, + /obj/item/stack/sheet/metal/fifty, + /obj/item/stack/sheet/metal/twenty, + /obj/item/stack/sheet/plasteel/twenty, + /obj/item/stack/sheet/mineral/plasma/fifty, + /obj/item/stack/sheet/mineral/plasma/twenty, + /obj/item/stack/sheet/mineral/silver/fifty, + /obj/item/stack/sheet/mineral/titanium/twenty, + /obj/item/stack/sheet/mineral/uranium/twenty, + /obj/item/stack/sheet/mineral/wood/fifty, + /obj/item/stack/sheet/mineral/diamond/twenty, + /obj/item/stack/sheet/mineral/gold/fifty, + /obj/item/stack/sheet/mineral/adamantine/ten, + /obj/item/stack/cable_coil/red, + /obj/item/stack/rods/fifty + ) diff --git a/code/game/objects/effects/spawners/mobspawner.dm b/code/game/objects/effects/spawners/mobspawner.dm new file mode 100644 index 000000000000..c9ebf035895a --- /dev/null +++ b/code/game/objects/effects/spawners/mobspawner.dm @@ -0,0 +1,60 @@ +/obj/effect/spawner/lootdrop/randomthreat + var/static/mob_category = rand(1, 3) + +/obj/effect/spawner/lootdrop/randomthreat/Initialize(mapload) + switch(mob_category) + if(1) + loot = list( + /obj/effect/spawner/lootdrop/hivebotspawner + ) + if(2) + loot = list( + /mob/living/simple_animal/hostile/carp + ) + if(3) + loot = list( + /obj/effect/spawner/lootdrop/spiderspawner + ) + return ..() + +/obj/effect/spawner/lootdrop/xenospawner + name = "Xenomorph spawner" + + loot = list( + /mob/living/simple_animal/hostile/alien = 0.3, + /mob/living/simple_animal/hostile/alien/drone = 0.2, + /mob/living/simple_animal/hostile/alien/sentinel = 0.3, + /obj/effect/spawner/lootdrop/xenoqueenspawner = 0.1 + ) + +/obj/effect/spawner/lootdrop/xenoqueenspawner + name = "xenomorph queen spawner" + loot = list( + /mob/living/simple_animal/hostile/alien/queen = 0.2, //regular queen mob isn't actually that strong + /mob/living/simple_animal/hostile/alien/queen/large = 0.8 + ) + +/obj/effect/spawner/lootdrop/hivebotspawner + name = "Hivebot spawner" + + loot = list( + /mob/living/simple_animal/hostile/hivebot/strong, + /mob/living/simple_animal/hostile/hivebot, + ) + +/obj/effect/spawner/lootdrop/spiderspawner + name = "Spider spawner" + + loot = list( + /mob/living/simple_animal/hostile/poison/giant_spider, + /mob/living/simple_animal/hostile/poison/giant_spider/hunter, + /mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper, + ) + +/obj/effect/spawner/lootdrop/thirtyfive_percent_borerspawner + name = "35 percent neutered borer spawner" + + loot = list( + /mob/living/simple_animal/borer/sterile = 0.35, + /obj/effect/spawner/lootdrop/maintenance = 0.65, + ) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index ad86580f8810..cff5e63cdf91 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -250,11 +250,11 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb AddComponent(/datum/component/butchering, 80 * toolspeed) /**Makes cool stuff happen when you suicide with an item - * - *Outputs a creative message and then return the damagetype done - * Arguments: - * * user: The mob that is suiciding - */ + * + *Outputs a creative message and then return the damagetype done + * Arguments: + * * user: The mob that is suiciding + */ /obj/item/proc/suicide_act(mob/user) return @@ -498,13 +498,13 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return /** - *called after an item is placed in an equipment slot + *called after an item is placed in an equipment slot - * Arguments: - * * user is mob that equipped it - * * slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots - * * Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it - */ + * Arguments: + * * user is mob that equipped it + * * slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots + * * Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it + */ /obj/item/proc/equipped(mob/user, slot, initial = FALSE) SHOULD_CALL_PARENT(1) visual_equipped(user, slot, initial) @@ -528,15 +528,15 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return TRUE /** - *the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. - *if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. - *If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. - * Arguments: - * * disable_warning to TRUE if you wish it to not give you text outputs. - * * slot is the slot we are trying to equip to - * * equipper is the mob trying to equip the item - * * bypass_equip_delay_self for whether we want to bypass the equip delay - */ + *the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. + *if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. + *If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. + * Arguments: + * * disable_warning to TRUE if you wish it to not give you text outputs. + * * slot is the slot we are trying to equip to + * * equipper is the mob trying to equip the item + * * bypass_equip_delay_self for whether we want to bypass the equip delay + */ /obj/item/proc/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, swap = FALSE) if(!M) return FALSE @@ -560,15 +560,15 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb usr.UnarmedAttack(src) /** - *This proc is executed when someone clicks the on-screen UI button. - *The default action is attack_self(). - *Checks before we get to here are: mob is alive, mob is not restrained, stunned, asleep, resting, laying, item is on the mob. - */ + *This proc is executed when someone clicks the on-screen UI button. + *The default action is attack_self(). + *Checks before we get to here are: mob is alive, mob is not restrained, stunned, asleep, resting, laying, item is on the mob. + */ /obj/item/proc/ui_action_click(mob/user, actiontype) attack_self(user) ///This proc determines if and at what an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit -/obj/item/proc/IsReflect(var/def_zone) +/obj/item/proc/IsReflect(def_zone) return FALSE /obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) @@ -1020,14 +1020,14 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return src /** - * tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targetting the target. - * - * Really, this is used mostly with projectiles with shrapnel payloads, from [/datum/element/embed/proc/checkEmbedProjectile], and called on said shrapnel. Mostly acts as an intermediate between different embed elements. - * - * Arguments: - * * target- Either a body part, a carbon, or a closed turf. What are we hitting? - * * forced- Do we want this to go through 100%? - */ + * tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targetting the target. + * + * Really, this is used mostly with projectiles with shrapnel payloads, from [/datum/element/embed/proc/checkEmbedProjectile], and called on said shrapnel. Mostly acts as an intermediate between different embed elements. + * + * Arguments: + * * target- Either a body part, a carbon, or a closed turf. What are we hitting? + * * forced- Do we want this to go through 100%? + */ /obj/item/proc/tryEmbed(atom/target, forced=FALSE, silent=FALSE) if(!isbodypart(target) && !iscarbon(target) && !isclosedturf(target)) return diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index aa70a8781a5d..7fee84da562f 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -24,16 +24,16 @@ AI MODULES var/bypass_law_amt_check = 0 custom_materials = list(/datum/material/gold = 50) -/obj/item/aiModule/examine(var/mob/user as mob) +/obj/item/aiModule/examine(mob/user as mob) . = ..() if(Adjacent(user)) show_laws(user) -/obj/item/aiModule/attack_self(var/mob/user as mob) +/obj/item/aiModule/attack_self(mob/user as mob) ..() show_laws(user) -/obj/item/aiModule/proc/show_laws(var/mob/user as mob) +/obj/item/aiModule/proc/show_laws(mob/user as mob) if(laws.len) to_chat(user, "Programmed Law[(laws.len > 1) ? "s" : ""]:") for(var/law in laws) @@ -364,7 +364,7 @@ AI MODULES law_id = "asimov" var/subject = "human being" -/obj/item/aiModule/core/full/asimov/attack_self(var/mob/user as mob) +/obj/item/aiModule/core/full/asimov/attack_self(mob/user as mob) var/targName = stripped_input(user, "Please enter a new subject that asimov is concerned with.", "Asimov to whom?", subject, MAX_NAME_LEN) if(!targName) return diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 28ec4f2bdb8f..493fd78e69cd 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -698,7 +698,7 @@ RLD to_chat(user, "You change RLD's mode to 'Deconstruct'.") -/obj/item/construction/rld/proc/checkdupes(var/target) +/obj/item/construction/rld/proc/checkdupes(target) . = list() var/turf/checking = get_turf(target) for(var/obj/machinery/light/dupe in checking) diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm index 7d98d2271694..d47be80b8fae 100644 --- a/code/game/objects/items/apc_frame.dm +++ b/code/game/objects/items/apc_frame.dm @@ -55,7 +55,7 @@ qdel(src) -/obj/item/wallframe/proc/after_attach(var/obj/O) +/obj/item/wallframe/proc/after_attach(obj/O) transfer_fingerprints_to(O) /obj/item/wallframe/attackby(obj/item/W, mob/user, params) diff --git a/code/game/objects/items/body_egg.dm b/code/game/objects/items/body_egg.dm index 4be111b5aadc..cc4fd287c8b7 100644 --- a/code/game/objects/items/body_egg.dm +++ b/code/game/objects/items/body_egg.dm @@ -14,14 +14,14 @@ if(iscarbon(loc)) Insert(loc) -/obj/item/organ/body_egg/Insert(var/mob/living/carbon/M, special = 0) +/obj/item/organ/body_egg/Insert(mob/living/carbon/M, special = 0) ..() ADD_TRAIT(owner, TRAIT_XENO_HOST, TRAIT_GENERIC) ADD_TRAIT(owner, TRAIT_XENO_IMMUNE, "xeno immune") owner.med_hud_set_status() INVOKE_ASYNC(src, .proc/AddInfectionImages, owner) -/obj/item/organ/body_egg/Remove(var/mob/living/carbon/M, special = 0) +/obj/item/organ/body_egg/Remove(mob/living/carbon/M, special = 0) if(owner) REMOVE_TRAIT(owner, TRAIT_XENO_HOST, TRAIT_GENERIC) REMOVE_TRAIT(owner, TRAIT_XENO_IMMUNE, "xeno immune") diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 6c7a28e62e07..8a84ae2b3a35 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -94,12 +94,12 @@ return BULLET_ACT_HIT /** - * change_appearance: Changes a skin of the cardboard cutout based on a user's choice - * - * Arguments: - * * crayon The crayon used to change and recolor the cardboard cutout - * * user The mob choosing a skin of the cardboard cutout - */ + * change_appearance: Changes a skin of the cardboard cutout based on a user's choice + * + * Arguments: + * * crayon The crayon used to change and recolor the cardboard cutout + * * user The mob choosing a skin of the cardboard cutout + */ /obj/item/cardboard_cutout/proc/change_appearance(obj/item/toy/crayon/crayon, mob/living/user) var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, .proc/check_menu, user, crayon), radius = 36, require_near = TRUE) if(!new_appearance) @@ -201,12 +201,12 @@ return TRUE /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - * * crayon The crayon used to interact with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + * * crayon The crayon used to interact with a menu + */ /obj/item/cardboard_cutout/proc/check_menu(mob/living/user, obj/item/toy/crayon/crayon) if(!istype(user)) return FALSE diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index d019883dd2ee..1d5f94ba9384 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -405,17 +405,17 @@ return ..() // Adds the referenced ship directly to the card -/obj/item/card/id/proc/add_ship_access( var/datum/overmap/ship/controlled/ship ) +/obj/item/card/id/proc/add_ship_access(datum/overmap/ship/controlled/ship ) if ( ship ) ship_access += ship // Removes the referenced ship from the card -/obj/item/card/id/proc/remove_ship_access( var/datum/overmap/ship/controlled/ship ) +/obj/item/card/id/proc/remove_ship_access(datum/overmap/ship/controlled/ship ) if ( ship ) ship_access -= ship // Finds the referenced ship in the list -/obj/item/card/id/proc/has_ship_access( var/datum/overmap/ship/controlled/ship ) +/obj/item/card/id/proc/has_ship_access(datum/overmap/ship/controlled/ship ) if ( ship ) return ship_access.Find( ship ) @@ -644,7 +644,7 @@ update_label() access = get_all_centcom_access() . = ..() -/obj/item/card/id/centcom/has_ship_access( var/datum/overmap/ship/controlled/ship ) +/obj/item/card/id/centcom/has_ship_access(datum/overmap/ship/controlled/ship ) return TRUE /obj/item/card/id/ert diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index c6eccd81d8b0..9478f954825a 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -352,13 +352,13 @@ else graf_rot = 0 - var/list/click_params = params2list(params) + var/list/modifiers = params2list(params) var/clickx var/clicky - if(click_params && click_params["icon-x"] && click_params["icon-y"]) - clickx = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) - clicky = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + if(LAZYACCESS(modifiers, ICON_X) && LAZYACCESS(modifiers, ICON_Y)) + clickx = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2) + clicky = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2) if(!instant) to_chat(user, "You start drawing a [temp] on the [target.name]...") diff --git a/code/game/objects/items/decal_painter.dm b/code/game/objects/items/decal_painter.dm index a11da653e10b..4dace1b5a302 100644 --- a/code/game/objects/items/decal_painter.dm +++ b/code/game/objects/items/decal_painter.dm @@ -22,7 +22,7 @@ "kafel_full", "steel_monofloor", "monotile", "grid", "ridged" ) -/obj/item/floor_painter/afterattack(var/atom/A, var/mob/user, proximity, params) +/obj/item/floor_painter/afterattack(atom/A, mob/user, proximity, params) if(!proximity) return @@ -36,7 +36,7 @@ F.dir = floor_dir playsound(src.loc, 'sound/effects/spray2.ogg', 50, TRUE) -/obj/item/floor_painter/attack_self(var/mob/user) +/obj/item/floor_painter/attack_self(mob/user) if(!user) return FALSE user.set_machine(src) @@ -190,7 +190,7 @@ "trimline_arrow_cw_fill","trimline_arrow_ccw_fill","trimline_warn","trimline_warn_fill" ) -/obj/item/decal_painter/afterattack(var/atom/A, var/mob/user, proximity, params) +/obj/item/decal_painter/afterattack(atom/A, mob/user, proximity, params) if(!proximity) return @@ -204,7 +204,7 @@ F.AddComponent(/datum/component/decal, 'whitesands/icons/turf/decals.dmi', decal_state, decal_dir, CLEAN_TYPE_PAINT, decal_color, null, null, alpha) playsound(src.loc, 'sound/effects/spray2.ogg', 50, TRUE) -/obj/item/decal_painter/attack_self(var/mob/user) +/obj/item/decal_painter/attack_self(mob/user) if(!user) return FALSE user.set_machine(src) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index ced090216837..43c9c0d1941a 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -354,7 +354,7 @@ visible_message("[src] snap back into [defib].") snap_back() -/obj/item/shockpaddles/proc/recharge(var/time) +/obj/item/shockpaddles/proc/recharge(time) if(req_defib || !time) return cooldown = TRUE diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 10aa30fc30e2..2080cab43fce 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -298,7 +298,7 @@ break src.updateSelfDialog() -/obj/item/camera_bug/proc/same_z_level(var/obj/machinery/camera/C) +/obj/item/camera_bug/proc/same_z_level(obj/machinery/camera/C) var/turf/T_cam = get_turf(C) var/turf/T_bug = get_turf(loc) if(!T_bug || T_cam.virtual_z() != T_bug.virtual_z()) diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index f211b574fa0c..e0048f898647 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -146,12 +146,12 @@ //laser pointer image icon_state = "pointer_[pointer_icon_state]" var/image/I = image('icons/obj/projectiles.dmi',targloc,pointer_icon_state,10) - var/list/click_params = params2list(params) - if(click_params) - if(click_params["icon-x"]) - I.pixel_x = (text2num(click_params["icon-x"]) - 16) - if(click_params["icon-y"]) - I.pixel_y = (text2num(click_params["icon-y"]) - 16) + var/list/modifiers = params2list(params) + if(modifiers) + if(LAZYACCESS(modifiers, ICON_X)) + I.pixel_x = (text2num(LAZYACCESS(modifiers, ICON_X)) - 16) + if(LAZYACCESS(modifiers, ICON_Y)) + I.pixel_y = (text2num(LAZYACCESS(modifiers, ICON_Y)) - 16) else I.pixel_x = target.pixel_x + rand(-5,5) I.pixel_y = target.pixel_y + rand(-5,5) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index bc4889281883..ff92f7564b07 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -178,7 +178,7 @@ playsound(src.loc, 'sound/machines/ding.ogg', 50, TRUE) return new_bulbs -/obj/item/lightreplacer/proc/Charge(var/mob/user) +/obj/item/lightreplacer/proc/Charge(mob/user) charge += 1 if(charge > 3) AddUses(1) diff --git a/code/game/objects/items/devices/portable_chem_mixer.dm b/code/game/objects/items/devices/portable_chem_mixer.dm index 2e5f60655d20..3999e67c1952 100644 --- a/code/game/objects/items/devices/portable_chem_mixer.dm +++ b/code/game/objects/items/devices/portable_chem_mixer.dm @@ -63,10 +63,10 @@ return ..() /** - * Updates the contents of the portable chemical mixer - * - * A list of dispensable reagents is created by iterating through each source beaker in the portable chemical beaker and reading its contents - */ + * Updates the contents of the portable chemical mixer + * + * A list of dispensable reagents is created by iterating through each source beaker in the portable chemical beaker and reading its contents + */ /obj/item/storage/portable_chem_mixer/proc/update_contents() dispensable_reagents.Cut() @@ -99,13 +99,13 @@ update_icon() /** - * Replaces the beaker of the portable chemical mixer with another beaker, or simply adds the new beaker if none is in currently - * - * Checks if a valid user and a valid new beaker exist and attempts to replace the current beaker in the portable chemical mixer with the one in hand. Simply places the new beaker in if no beaker is currently loaded - * Arguments: - * * mob/living/user - The user who is trying to exchange beakers - * * obj/item/reagent_containers/new_beaker - The new beaker that the user wants to put into the device - */ + * Replaces the beaker of the portable chemical mixer with another beaker, or simply adds the new beaker if none is in currently + * + * Checks if a valid user and a valid new beaker exist and attempts to replace the current beaker in the portable chemical mixer with the one in hand. Simply places the new beaker in if no beaker is currently loaded + * Arguments: + * * mob/living/user - The user who is trying to exchange beakers + * * obj/item/reagent_containers/new_beaker - The new beaker that the user wants to put into the device + */ /obj/item/storage/portable_chem_mixer/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) if(!user || !can_interact(user)) return FALSE diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index b7513a791349..f8d530fc05ab 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -602,7 +602,7 @@ GENE SCANNER if(cached_scan_results && cached_scan_results["fusion"]) //notify the user if a fusion reaction was detected render_list += "Large amounts of free neutrons detected in the air indicate that a fusion reaction took place.\ - \nInstability of the last fusion reaction: [round(cached_scan_results["fusion"], 0.01)]." + \nInstability of the last fusion reaction: [round(cached_scan_results["fusion"], 0.01)]." to_chat(user, jointext(render_list, "\n")) // we let the join apply newlines so we do need handholding return TRUE diff --git a/code/game/objects/items/devices/spyglasses.dm b/code/game/objects/items/devices/spyglasses.dm index f46cfa964fe9..8e59cfe19616 100644 --- a/code/game/objects/items/devices/spyglasses.dm +++ b/code/game/objects/items/devices/spyglasses.dm @@ -3,7 +3,7 @@ desc = "Made by Nerd. Co's infiltration and surveillance department. Upon closer inspection, there's a small screen in each lens." var/obj/item/spy_bug/linked_bug -/obj/item/clothing/glasses/regular/spy/proc/show_to_user(var/mob/user)//this is the meat of it. most of the map_popup usage is in this. +/obj/item/clothing/glasses/regular/spy/proc/show_to_user(mob/user)//this is the meat of it. most of the map_popup usage is in this. if(!user) return if(!user.client) diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index efb7153f32a1..acfa4732d286 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -238,7 +238,7 @@ return EmptyExtinguisher(user) -/obj/item/extinguisher/proc/EmptyExtinguisher(var/mob/user) +/obj/item/extinguisher/proc/EmptyExtinguisher(mob/user) if(loc == user && reagents.total_volume) reagents.clear_reagents() diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 0451ee722e39..0681892fd47e 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -159,7 +159,7 @@ /obj/item/book/granter/spell/fireball/recoil(mob/user) ..() - explosion(user.loc, 1, 0, 2, 3, FALSE, FALSE, 2) + explosion(user.loc, 0, 1, 2, 3, FALSE, FALSE, 2) qdel(src) /obj/item/book/granter/spell/sacredflame @@ -265,7 +265,7 @@ spellname = "shapechange" icon_state ="bookshapechange" desc = "Half of the book is slash fiction about some kind of young adult novel." - remarks = list("There's a beast inside all of us.", "What's an animorph?", "There are rats in the walls. Join them.", "This could be worse than useless, or amazing...", "Run in the fields, hide through the forest...", "The pages feel a little furry.", "Can you hear the jungle rhythm?") + remarks = list("There's a beast inside all of us. ", "What's an animorph?", "There are rats in the walls.", "This could be worse than useless, or amazing...", "Hide in the fields, run through the forest...", "The pages feel a little furry.", "Can you hear the jungle rhythm?") /obj/item/book/granter/spell/shapechange/recoil(mob/living/carbon/user) ..() @@ -273,6 +273,19 @@ user.Stun(40, ignore_canstun = TRUE) user.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSTUNS | TR_KEEPREAGENTS | TR_KEEPSE) +/obj/item/book/granter/spell/traps + spell = /obj/effect/proc_holder/spell/aoe_turf/conjure/the_traps + spellname = "the traps" + icon_state ="booktraps" + desc = "A book that uses euphemisms about being a Dungeon Master to teach aspiring wizards how to cast Summon Traps." + remarks = list("Traps work best in unexpected situations...", "Where the hell am I supposed to get boiling acid?", "Works best in enclosed spaces...", "Could I use this at point-blank to keep someone from running?", "It's been a trap all along...", "The pages feel like they could snap shut unexpectedly.", "You feel a sense of impending danger.") + +/obj/item/book/granter/spell/traps/recoil(mob/living/user) + ..() + to_chat(user, "The ground shifts beneath your feet!") + user.Paralyze(100) + user.adjustBruteLoss(35) + /obj/item/book/granter/spell/knock spell = /obj/effect/proc_holder/spell/aoe_turf/knock spellname = "knock" diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 6d54fd449b0e..61ca566efa5f 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -353,11 +353,11 @@ ensnare(hit_atom) /** - * Attempts to legcuff someone with the bola - * - * Arguments: - * * C - the carbon that we will try to ensnare - */ + * Attempts to legcuff someone with the bola + * + * Arguments: + * * C - the carbon that we will try to ensnare + */ /obj/item/restraints/legcuffs/bola/proc/ensnare(mob/living/carbon/C) if(!C.legcuffed && C.num_legs >= 2) visible_message("\The [src] ensnares [C]!") diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 4e10a3d4c77a..d2ba007dbb5b 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -217,11 +217,11 @@ reskin_holy_weapon(user) /** - * reskin_holy_weapon: Shows a user a list of all available nullrod reskins and based on his choice replaces the nullrod with the reskinned version - * - * Arguments: - * * M The mob choosing a nullrod reskin - */ + * reskin_holy_weapon: Shows a user a list of all available nullrod reskins and based on his choice replaces the nullrod with the reskinned version + * + * Arguments: + * * M The mob choosing a nullrod reskin + */ /obj/item/nullrod/proc/reskin_holy_weapon(mob/M) if(GLOB.holy_weapon_type) return @@ -250,11 +250,11 @@ M.put_in_active_hand(holy_weapon) /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ /obj/item/nullrod/proc/check_menu(mob/user) if(!istype(user)) return FALSE diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm index b61d7a780d48..83293fa77483 100644 --- a/code/game/objects/items/miscellaneous.dm +++ b/code/game/objects/items/miscellaneous.dm @@ -203,7 +203,7 @@ to_chat(joe, "As you burn the picture, a nickname comes to mind...") var/nickname = stripped_input(joe, "Pick a nickname", "Mafioso Nicknames", null, NICKNAME_CAP, TRUE) - nickname = reject_bad_name(nickname, allow_numbers = FALSE, max_length = NICKNAME_CAP, ascii_only = TRUE) + nickname = reject_bad_name(nickname, max_length = NICKNAME_CAP, ascii_only = TRUE) if(!nickname) return var/new_name diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 6c7be38f741e..91dcf5f25e0d 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -489,6 +489,7 @@ name = "Gumball" desc = "Why are you seeing this?!" projectile_type = /obj/projectile/bullet/reusable/gumball + click_cooldown_override = 2 /obj/projectile/bullet/reusable/gumball @@ -509,6 +510,7 @@ name = "Lollipop" desc = "Why are you seeing this?!" projectile_type = /obj/projectile/bullet/reusable/lollipop + click_cooldown_override = 2 /obj/projectile/bullet/reusable/lollipop name = "lollipop" diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index aa2128120a12..d93a989eec4a 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -397,7 +397,7 @@ switch(action) if("rename") - var/new_name = reject_bad_name(html_encode(params["new_name"]), TRUE) + var/new_name = reject_bad_name(html_encode(params["new_name"])) if(!new_name) created_name = "" return diff --git a/code/game/objects/items/sharpener.dm b/code/game/objects/items/sharpener.dm index 62bc2a0b4b7c..8b74e8ba23f1 100644 --- a/code/game/objects/items/sharpener.dm +++ b/code/game/objects/items/sharpener.dm @@ -49,8 +49,15 @@ /obj/item/sharpener/super name = "super whetstone" + desc = "A block of the frontier's most advanced edge winnowing technology. Be careful, it's sharp!" + increment = 15 + max = 40 + prefix = "razor-sharp" + +/obj/item/sharpener/giga + name = "giga whetstone" desc = "A block that will make your weapon sharper than Einstein on adderall." increment = 200 max = 200 - prefix = "super-sharpened" + prefix = "balance-destroying" requires_sharpness = 0 diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 4903a4e3291c..24fa2f871f53 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -125,11 +125,11 @@ . = (amount) /** - * Builds all recipes in a given recipe list and returns an association list containing them - * - * Arguments: - * * recipe_to_iterate - The list of recipes we are using to build recipes - */ + * Builds all recipes in a given recipe list and returns an association list containing them + * + * Arguments: + * * recipe_to_iterate - The list of recipes we are using to build recipes + */ /obj/item/stack/proc/recursively_build_recipes(list/recipe_to_iterate) var/list/L = list() for(var/recipe in recipe_to_iterate) @@ -142,11 +142,11 @@ return L /** - * Returns a list of properties of a given recipe - * - * Arguments: - * * R - The stack recipe we are using to get a list of properties - */ + * Returns a list of properties of a given recipe + * + * Arguments: + * * R - The stack recipe we are using to get a list of properties + */ /obj/item/stack/proc/build_recipe(datum/stack_recipe/R) return list( "res_amount" = R.res_amount, @@ -156,12 +156,12 @@ ) /** - * Checks if the recipe is valid to be used - * - * Arguments: - * * R - The stack recipe we are checking if it is valid - * * recipe_list - The list of recipes we are using to check the given recipe - */ + * Checks if the recipe is valid to be used + * + * Arguments: + * * R - The stack recipe we are checking if it is valid + * * recipe_list - The list of recipes we are using to check the given recipe + */ /obj/item/stack/proc/is_valid_recipe(datum/stack_recipe/R, list/recipe_list) for(var/S in recipe_list) if(S == R) diff --git a/code/game/objects/items/stacks/tiles/tile_reskinning.dm b/code/game/objects/items/stacks/tiles/tile_reskinning.dm index 5540220d1b0b..e4742367fdbf 100644 --- a/code/game/objects/items/stacks/tiles/tile_reskinning.dm +++ b/code/game/objects/items/stacks/tiles/tile_reskinning.dm @@ -11,8 +11,8 @@ GLOBAL_LIST_EMPTY(tile_reskin_lists) /** - * Caches associative lists with type path index keys and images of said type's initial icon state (typepath -> image). - */ + * Caches associative lists with type path index keys and images of said type's initial icon state (typepath -> image). + */ /obj/item/stack/tile/proc/tile_reskin_list(list/values) var/string_id = values.Join("-") . = GLOB.tile_reskin_lists[string_id] diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index f18bdee37e41..0b034925ff97 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -613,7 +613,7 @@ /obj/item/storage/backpack/duffelbag/syndie/c20rbundle/PopulateContents() new /obj/item/ammo_box/magazine/smgm45(src) new /obj/item/ammo_box/magazine/smgm45(src) - new /obj/item/gun/ballistic/automatic/c20r(src) + new /obj/item/gun/ballistic/automatic/smg/c20r(src) new /obj/item/suppressor/specialoffer(src) /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle @@ -631,7 +631,7 @@ /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() new /obj/item/clothing/shoes/magboots/syndie(src) new /obj/item/storage/firstaid/tactical(src) - new /obj/item/gun/ballistic/automatic/l6_saw/toy(src) + new /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy(src) new /obj/item/ammo_box/foambox/riot(src) /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle @@ -641,7 +641,7 @@ new /obj/item/reagent_containers/spray/chemsprayer/bioterror(src) new /obj/item/storage/box/syndie_kit/chemical(src) new /obj/item/gun/syringe/syndicate(src) - new /obj/item/gun/ballistic/automatic/c20r/toy(src) + new /obj/item/gun/ballistic/automatic/smg/c20r/toy(src) new /obj/item/storage/box/syringes(src) new /obj/item/ammo_box/foambox/riot(src) new /obj/item/grenade/chem_grenade/bioterrorfoam(src) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index eac48c31e4f7..34ad1ca8a8fd 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -614,7 +614,7 @@ new /obj/item/holosign_creator(src) new /obj/item/melee/flyswatter(src) - /obj/item/storage/belt/plant +/obj/item/storage/belt/plant name = "botanical belt" desc = "A belt used to hold most hydroponics supplies. Suprisingly, not green." icon_state = "plantbelt" diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index b21834e903a9..cc35ff0dc69b 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -891,7 +891,7 @@ /obj/item/storage/box/beanbag name = "box of beanbags" desc = "A box full of beanbag shells." - icon_state = "rubbershot_box" + icon_state = "beanbag_box" illustration = null /obj/item/storage/box/beanbag/PopulateContents() @@ -985,12 +985,12 @@ return ..() /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - * * P The pen used to interact with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + * * P The pen used to interact with a menu + */ /obj/item/storage/box/papersack/proc/check_menu(mob/user, obj/item/pen/P) if(!istype(user)) return FALSE diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm index 6061f428653c..c2619eef4c14 100644 --- a/code/game/objects/items/storage/storage.dm +++ b/code/game/objects/items/storage/storage.dm @@ -49,7 +49,7 @@ var/datum/component/storage/ST = GetComponent(/datum/component/storage) ST.do_quick_empty() -/obj/item/storage/on_object_saved(var/depth = 0) +/obj/item/storage/on_object_saved(depth = 0) if(depth >= 10) return "" var/dat = "" diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 003c4f5ab27d..1b910d7f3c12 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -194,7 +194,7 @@ if("made_man") new /obj/effect/spawner/lootdrop/mafia_outfit(src) // 0 TC, just an outfit for the new 'don of this family - new /obj/item/gun/ballistic/automatic/tommygun(src) // 20 TC, a gun with 50 .45 bullets on a three round burst is kinda outstanding + new /obj/item/gun/ballistic/automatic/smg/thompson/drum(src) // 20 TC, a gun with 50 .45 bullets on a three round burst is kinda outstanding new /obj/item/switchblade(src) // 3 TC? It's nice, but it's really a stealth/oh fuck I'm out of ammo weapon new /obj/item/reagent_containers/food/drinks/bottle/vodka (src) // 5 TC, free molotov assemblies new /obj/item/reagent_containers/food/drinks/bottle/vodka (src) @@ -306,7 +306,7 @@ /obj/item/storage/box/syndie_kit/imp_radio, /obj/item/storage/box/syndie_kit/imp_uplink, /obj/item/clothing/gloves/krav_maga/combatglovesplus, - /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot, + /obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot, /obj/item/reagent_containers/hypospray/medipen/stimulants, /obj/item/storage/box/syndie_kit/imp_freedom, /obj/item/toy/eightball/haunted diff --git a/code/game/objects/items/survery_handheld.dm b/code/game/objects/items/survery_handheld.dm index 96eb3320662b..79523b574030 100644 --- a/code/game/objects/items/survery_handheld.dm +++ b/code/game/objects/items/survery_handheld.dm @@ -62,15 +62,15 @@ src_turf.visible_message("Data recorded and enscribed to research packet.") z_history[my_z]++ - var/obj/item/result = new /obj/item/research_notes(user.loc, survey_value * penalty, pick(list("astronomy", "physics", "planets", "space"))) - if(!user.put_in_hands(result) && istype(user.get_inactive_held_item(), /obj/item/research_notes)) - var/obj/item/research_notes/research = user.get_inactive_held_item() - research.merge(result) - continue + var/obj/item/result = new /obj/item/research_notes(null, survey_value * penalty, pick(list("astronomy", "physics", "planets", "space"))) var/obj/item/research_notes/notes = locate() in get_turf(user) if(notes) notes.merge(result) + else if(!user.put_in_hands(result) && istype(user.get_inactive_held_item(), /obj/item/research_notes)) + var/obj/item/research_notes/research = user.get_inactive_held_item() + research.merge(result) + continue active = FALSE z_active[my_z] = FALSE diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index a1e94e64d944..6b27a51f58ac 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -171,7 +171,7 @@ /obj/item/watertank/janitor/make_noz() return new /obj/item/reagent_containers/spray/mister/janitor(src) -/obj/item/reagent_containers/spray/mister/janitor/attack_self(var/mob/user) +/obj/item/reagent_containers/spray/mister/janitor/attack_self(mob/user) amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10) to_chat(user, "You [amount_per_transfer_from_this == 10 ? "remove" : "fix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray.") @@ -376,7 +376,7 @@ turn_on() //Todo : cache these. -/obj/item/reagent_containers/chemtank/worn_overlays(var/isinhands = FALSE) //apply chemcolor and level +/obj/item/reagent_containers/chemtank/worn_overlays(isinhands = FALSE) //apply chemcolor and level . = list() //inhands + reagent_filling if(!isinhands && reagents.total_volume) diff --git a/code/game/objects/items/toy_mechs.dm b/code/game/objects/items/toy_mechs.dm index fee0012d6469..090502ad63c3 100644 --- a/code/game/objects/items/toy_mechs.dm +++ b/code/game/objects/items/toy_mechs.dm @@ -1,6 +1,6 @@ /** - * Mech prizes + MECHA COMBAT!! - */ + * Mech prizes + MECHA COMBAT!! + */ /// Mech battle special attack types. #define SPECIAL_ATTACK_HEAL 1 @@ -67,20 +67,20 @@ special_attack_type_message = "a mystery move, even I don't know." /** - * this proc combines "sleep" while also checking for if the battle should continue - * - * this goes through some of the checks - the toys need to be next to each other to fight! - * if it's player vs themself: They need to be able to "control" both mechs (either must be adjacent or using TK) - * if it's player vs player: Both players need to be able to "control" their mechs (either must be adjacent or using TK) - * if it's player vs mech (suicide): the mech needs to be in range of the player - * if all the checks are TRUE, it does the sleeps, and returns TRUE. Otherwise, it returns FALSE. - * Arguments: - * * delay - the amount of time the sleep at the end of the check will sleep for - * * attacker - the attacking toy in the battle. - * * attacker_controller - the controller of the attacking toy. there should ALWAYS be an attacker_controller - * * opponent - (optional) the defender controller in the battle, for PvP - */ -/obj/item/toy/prize/proc/combat_sleep(var/delay, obj/item/toy/prize/attacker, mob/living/carbon/attacker_controller, mob/living/carbon/opponent) + * this proc combines "sleep" while also checking for if the battle should continue + * + * this goes through some of the checks - the toys need to be next to each other to fight! + * if it's player vs themself: They need to be able to "control" both mechs (either must be adjacent or using TK) + * if it's player vs player: Both players need to be able to "control" their mechs (either must be adjacent or using TK) + * if it's player vs mech (suicide): the mech needs to be in range of the player + * if all the checks are TRUE, it does the sleeps, and returns TRUE. Otherwise, it returns FALSE. + * Arguments: + * * delay - the amount of time the sleep at the end of the check will sleep for + * * attacker - the attacking toy in the battle. + * * attacker_controller - the controller of the attacking toy. there should ALWAYS be an attacker_controller + * * opponent - (optional) the defender controller in the battle, for PvP + */ +/obj/item/toy/prize/proc/combat_sleep(delay, obj/item/toy/prize/attacker, mob/living/carbon/attacker_controller, mob/living/carbon/opponent) if(!attacker_controller) return FALSE @@ -140,8 +140,8 @@ attack_self(user) /** - * If you attack a mech with a mech, initiate combat between them - */ + * If you attack a mech with a mech, initiate combat between them + */ /obj/item/toy/prize/attackby(obj/item/user_toy, mob/living/user) if(istype(user_toy, /obj/item/toy/prize)) var/obj/item/toy/prize/P = user_toy @@ -150,8 +150,8 @@ ..() /** - * Attack is called from the user's toy, aimed at target(another human), checking for target's toy. - */ + * Attack is called from the user's toy, aimed at target(another human), checking for target's toy. + */ /obj/item/toy/prize/attack(mob/living/carbon/human/target, mob/living/carbon/human/user) if(target == user) to_chat(user, "Target another toy mech if you want to start a battle with yourself.") @@ -185,8 +185,8 @@ ..() /** - * Overrides attack_tk - Sorry, you have to be face to face to initiate a battle, it's good sportsmanship - */ + * Overrides attack_tk - Sorry, you have to be face to face to initiate a battle, it's good sportsmanship + */ /obj/item/toy/prize/attack_tk(mob/user) if(timer < world.time) to_chat(user, "You telekinetically play with [src].") @@ -195,19 +195,19 @@ playsound(user, 'sound/mecha/mechstep.ogg', 20, TRUE) /** - * Resets the request for battle. - * - * For use in a timer, this proc resets the wants_to_battle variable after a short period. - * Arguments: - * * user - the user wanting to do battle - */ + * Resets the request for battle. + * + * For use in a timer, this proc resets the wants_to_battle variable after a short period. + * Arguments: + * * user - the user wanting to do battle + */ /obj/item/toy/prize/proc/withdraw_offer(mob/living/carbon/user) if(wants_to_battle) wants_to_battle = FALSE to_chat(user, "You get the feeling they don't want to battle.") /** - * Starts a battle, toy mech vs player. Player... doesn't win. - */ + * Starts a battle, toy mech vs player. Player... doesn't win. + */ /obj/item/toy/prize/suicide_act(mob/living/carbon/user) if(in_combat) to_chat(user, "[src] is in battle, let it finish first.") @@ -262,25 +262,25 @@ . += "This toy has [wins] wins, and [losses] losses." /** - * Override the say proc if they're mute - */ + * Override the say proc if they're mute + */ /obj/item/toy/prize/say() if(!quiet) . = ..() /** - * The 'master' proc of the mech battle. Processes the entire battle's events and makes sure it start and finishes correctly. - * - * src is the defending toy, and the battle proc is called on it to begin the battle. - * After going through a few checks at the beginning to ensure the battle can start properly, the battle begins a loop that lasts - * until either toy has no more health. During this loop, it also ensures the mechs stay in combat range of each other. - * It will then randomly decide attacks for each toy, occasionally making one or the other use their special attack. - * When either mech has no more health, the loop ends, and it displays the victor and the loser while updating their stats and resetting them. - * Arguments: - * * attacker - the attacking toy, the toy in the attacker_controller's hands - * * attacker_controller - the user, the one who is holding the toys / controlling the fight - * * opponent - optional arg used in Mech PvP battles: the other person who is taking part in the fight (controls src) - */ + * The 'master' proc of the mech battle. Processes the entire battle's events and makes sure it start and finishes correctly. + * + * src is the defending toy, and the battle proc is called on it to begin the battle. + * After going through a few checks at the beginning to ensure the battle can start properly, the battle begins a loop that lasts + * until either toy has no more health. During this loop, it also ensures the mechs stay in combat range of each other. + * It will then randomly decide attacks for each toy, occasionally making one or the other use their special attack. + * When either mech has no more health, the loop ends, and it displays the victor and the loser while updating their stats and resetting them. + * Arguments: + * * attacker - the attacking toy, the toy in the attacker_controller's hands + * * attacker_controller - the user, the one who is holding the toys / controlling the fight + * * opponent - optional arg used in Mech PvP battles: the other person who is taking part in the fight (controls src) + */ /obj/item/toy/prize/proc/mecha_brawl(obj/item/toy/prize/attacker, mob/living/carbon/attacker_controller, mob/living/carbon/opponent) //A GOOD DAY FOR A SWELL BATTLE! attacker_controller.visible_message(" [attacker_controller.name] collides [attacker] with [src]! Looks like they're preparing for a brawl! ", \ @@ -431,16 +431,16 @@ return /** - * This proc checks if a battle can be initiated between src and attacker. - * - * Both SRC and attacker (if attacker is included) timers are checked if they're on cooldown, and - * both SRC and attacker (if attacker is included) are checked if they are in combat already. - * If any of the above are true, the proc returns FALSE and sends a message to user (and target, if included) otherwise, it returns TRUE - * Arguments: - * * user: the user who is initiating the battle - * * attacker: optional arg for checking two mechs at once - * * target: optional arg used in Mech PvP battles (if used, attacker is target's toy) - */ + * This proc checks if a battle can be initiated between src and attacker. + * + * Both SRC and attacker (if attacker is included) timers are checked if they're on cooldown, and + * both SRC and attacker (if attacker is included) are checked if they are in combat already. + * If any of the above are true, the proc returns FALSE and sends a message to user (and target, if included) otherwise, it returns TRUE + * Arguments: + * * user: the user who is initiating the battle + * * attacker: optional arg for checking two mechs at once + * * target: optional arg used in Mech PvP battles (if used, attacker is target's toy) + */ /obj/item/toy/prize/proc/check_battle_start(mob/living/carbon/user, obj/item/toy/prize/attacker, mob/living/carbon/target) if(attacker && attacker.in_combat) to_chat(user, "[target?target.p_their() : "Your" ] [attacker.name] is in combat.") @@ -462,12 +462,12 @@ return TRUE /** - * Processes any special attack moves that happen in the battle (called in the mechaBattle proc). - * - * Makes the toy shout their special attack cry and updates its cooldown. Then, does the special attack. - * Arguments: - * * victim - the toy being hit by the special move - */ + * Processes any special attack moves that happen in the battle (called in the mechaBattle proc). + * + * Makes the toy shout their special attack cry and updates its cooldown. Then, does the special attack. + * Arguments: + * * victim - the toy being hit by the special move + */ /obj/item/toy/prize/proc/special_attack_move(obj/item/toy/prize/victim) say(special_attack_cry + "!!") @@ -491,12 +491,12 @@ say("I FORGOT MY SPECIAL ATTACK...") /** - * Base proc for 'other' special attack moves. - * - * This one is only for inheritance, each mech with an 'other' type move has their procs below. - * Arguments: - * * victim - the toy being hit by the super special move (doesn't necessarily need to be used) - */ + * Base proc for 'other' special attack moves. + * + * This one is only for inheritance, each mech with an 'other' type move has their procs below. + * Arguments: + * * victim - the toy being hit by the super special move (doesn't necessarily need to be used) + */ /obj/item/toy/prize/proc/super_special_attack(obj/item/toy/prize/victim) visible_message(" [src] does a cool flip.") diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 892679de15ee..50393d7c36c7 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -190,14 +190,14 @@ return MANUAL_SUICIDE /** - * Internal function used in the toy singularity suicide - * - * Cavity implants the toy singularity into the body of the user (arg1), and kills the user. - * Makes the user vomit and receive 120 suffocation damage if there already is a cavity implant in the user. - * Throwing the singularity away will cause the user to start choking themself to death. - * Arguments: - * * user - Whoever is doing the suiciding - */ + * Internal function used in the toy singularity suicide + * + * Cavity implants the toy singularity into the body of the user (arg1), and kills the user. + * Makes the user vomit and receive 120 suffocation damage if there already is a cavity implant in the user. + * Throwing the singularity away will cause the user to start choking themself to death. + * Arguments: + * * user - Whoever is doing the suiciding + */ /obj/item/toy/spinningtoy/proc/manual_suicide(mob/living/carbon/human/user) if(!user) return @@ -862,8 +862,8 @@ newobj.resistance_flags = sourceobj.resistance_flags /** - * This proc updates the sprite for when you create a hand of cards - */ + * This proc updates the sprite for when you create a hand of cards + */ /obj/item/toy/cards/cardhand/proc/update_sprite() cut_overlays() var/overlay_cards = currenthand.len diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 7f809e6f324d..f500f5ab6389 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -260,7 +260,6 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 if(isliving(target) && target.stat != DEAD) essence += rand(15, 20) -//Transplanted almost directly from the transforming.dm nemesis code. This is how I lost my medical coding license. /obj/item/katana/cursed/attack(mob/living/target, mob/living/carbon/human/user) var/nemesis_faction = FALSE if(LAZYLEN(nemesis_factions)) @@ -278,12 +277,12 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 return /obj/item/katana/cursed/attack(mob/target, mob/living/carbon/human/user) - if(user.mind && user.owns_soul() && !is_devil(user)) + if(user.mind && user.owns_soul()) to_chat(user, "You feel a terrible chill as the emptiness within [src] devours on your life force!") user.apply_damage(rand(2,3), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_PRECISE_GROIN)) user.apply_damage(rand(2,3), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_PRECISE_GROIN)) - user.apply_damage(rand(3,4), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_PRECISE_GROIN)) - user.apply_damage(rand(3,4), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_PRECISE_GROIN)) + user.apply_damage(rand(2,3), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_PRECISE_GROIN)) + user.apply_damage(rand(2,3), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_PRECISE_GROIN)) ..() /obj/item/wirerod diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index e6bf3cc5bb69..ef538159b018 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -238,7 +238,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e //The surgeon general warns that being buckled to certain objects receiving powerful shocks is greatly hazardous to your health ///Only tesla coils, vehicles, and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later. -/obj/proc/zap_buckle_check(var/strength) +/obj/proc/zap_buckle_check(strength) if(has_buckled_mobs()) for(var/m in buckled_mobs) var/mob/living/buckled_mob = m diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 2056dcb322b3..08ceb13c78c8 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -409,5 +409,5 @@ * Just add ,\n between each thing * generate_tgm_metadata(thing) handles everything inside the {} for you **/ -/obj/proc/on_object_saved(var/depth = 0) +/obj/proc/on_object_saved(depth = 0) return "" diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index 4c950935c9ec..d684ebef34a2 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -313,7 +313,7 @@ That prevents a few funky behaviors. /obj/structure/AIcore/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card) if(state != AI_READY_CORE || !..()) return - //Transferring a carded AI to a core. +//Transferring a carded AI to a core. if(interaction == AI_TRANS_FROM_CARD) AI.control_disabled = FALSE AI.radio_enabled = TRUE diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 4c2061538676..cd4ae80b92a8 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -546,7 +546,7 @@ togglelock(user) T1.visible_message("[user] dives into [src]!") -/obj/structure/closet/on_object_saved(var/depth = 0) +/obj/structure/closet/on_object_saved(depth = 0) if(depth >= 10) return "" var/dat = "" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index bf0752140416..58265cd7926c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -322,7 +322,7 @@ /obj/structure/closet/secure_closet/tac/PopulateContents() ..() - new /obj/item/gun/ballistic/automatic/wt550(src) + new /obj/item/gun/ballistic/automatic/smg/wt550(src) new /obj/item/clothing/head/helmet/alt(src) new /obj/item/clothing/mask/gas/sechailer(src) new /obj/item/clothing/suit/armor/bulletproof(src) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 4bcb3ec1ae1c..78bcae6c60e6 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -164,6 +164,14 @@ new /obj/item/bodypart/l_leg/robot/surplus(src) new /obj/item/bodypart/r_leg/robot/surplus(src) new /obj/item/bodypart/r_leg/robot/surplus(src) + new /obj/item/bodypart/l_arm/robot/surplus/kepori(src) + new /obj/item/bodypart/r_arm/robot/surplus/kepori(src) + new /obj/item/bodypart/l_leg/robot/surplus/kepori(src) + new /obj/item/bodypart/r_leg/robot/surplus/kepori(src) + new /obj/item/bodypart/l_arm/robot/surplus/vox(src) + new /obj/item/bodypart/r_arm/robot/surplus/vox(src) + new /obj/item/bodypart/l_leg/robot/surplus/vox(src) + new /obj/item/bodypart/r_leg/robot/surplus/vox(src) /obj/structure/closet/crate/radiation desc = "A crate with a radiation sign on it." diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm index 948fe59dea0e..93a11342e274 100644 --- a/code/game/objects/structures/crates_lockers/crates/secure.dm +++ b/code/game/objects/structures/crates_lockers/crates/secure.dm @@ -50,18 +50,18 @@ icon_state = "secgearcrate" /obj/structure/closet/crate/secure/hydroponics - desc = "A crate with a lock on it, painted in the scheme of the Nanotransen's hydroponics division." + desc = "A crate with a lock on it, painted in the scheme of the Nanotrasen's hydroponics division." name = "secure hydroponics crate" icon_state = "hydrosecurecrate" /obj/structure/closet/crate/secure/engineering - desc = "A crate with a lock on it, painted in the scheme of the Nanotransen's engineering division." + desc = "A crate with a lock on it, painted in the scheme of the Nanotrasen's engineering division." name = "secure engineering crate" icon_state = "engi_secure_crate" /obj/structure/closet/crate/secure/science name = "secure science crate" - desc = "A crate with a lock on it, painted in the scheme of the Nanotransen's research & development division." + desc = "A crate with a lock on it, painted in the scheme of the Nanotrasen's research & development division." icon_state = "scisecurecrate" /obj/structure/closet/crate/secure/owned diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 3a7c634a540b..2617293ee782 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -746,7 +746,7 @@ icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper_s" short_desc = "You are a syndicate operative, awoken deep in hostile space." - flavour_text = "Your ship is part of the infamous \"sleeper\" doctrine of syndicate strike forces, who flung unpowered vessels with cryo-frozen crew deep into Nanotransen territory, tasked to cause havoc and carry out covert reconnisance. The chill in your bones informs you that you've been asleep far longer than intended. Your vessel appears to be in a sorry state, and a tinny alarm pierces through your fugue to report unknown contacts aboard the vessel. It's going to be one of those days." + flavour_text = "Your ship is part of the infamous \"sleeper\" doctrine of syndicate strike forces, who flung unpowered vessels with cryo-frozen crew deep into Nanotrasen territory, tasked to cause havoc and carry out covert reconnisance. The chill in your bones informs you that you've been asleep far longer than intended. Your vessel appears to be in a sorry state, and a tinny alarm pierces through your fugue to report unknown contacts aboard the vessel. It's going to be one of those days." important_info = "Obey orders given by your captain. Prevent yourself and any syndicate assets from falling into enemy hands." outfit = /datum/outfit/syndicatespace/syndicrew assignedrole = "Cybersun Crewmember" @@ -770,7 +770,7 @@ icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper_s" short_desc = "You are the captain of a long-slumbering syndicate vessel, stuck deep in enemy territory." - flavour_text = "Your ship is part of the infamous \"sleeper\" doctrine of syndicate strike forces, who flung unpowered vessels with cryo-frozen crew deep into Nanotransen territory, tasked to cause havoc and carry out covert reconnisance. The chill in your bones informs you that you've been asleep far longer than intended. Your vessel appears to be in a sorry state, and a tinny alarm pierces through your fugue to report unknown contacts aboard the vessel. It's going to be one of those days." + flavour_text = "Your ship is part of the infamous \"sleeper\" doctrine of syndicate strike forces, who flung unpowered vessels with cryo-frozen crew deep into Nanotrasen territory, tasked to cause havoc and carry out covert reconnisance. The chill in your bones informs you that you've been asleep far longer than intended. Your vessel appears to be in a sorry state, and a tinny alarm pierces through your fugue to report unknown contacts aboard the vessel. It's going to be one of those days." important_info = "Protect the ship and secret documents in your backpack with your own life. Secure the syndicate assets present at your covert landing site. Prevent them, your crew, and yourself from falling into corporate hands." outfit = /datum/outfit/syndicatespace/syndicaptain assignedrole = "Cybersun Captain" diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index a74ea1ca7c65..9588691c214e 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -66,11 +66,11 @@ update_icon() /** - * show_menu: Shows a radial menu to a user consisting of an available weaponry for taking - * - * Arguments: - * * user The mob to which we are showing the radial menu - */ + * show_menu: Shows a radial menu to a user consisting of an available weaponry for taking + * + * Arguments: + * * user The mob to which we are showing the radial menu + */ /obj/structure/guncase/proc/show_menu(mob/user) if(!LAZYLEN(contents)) return @@ -98,11 +98,11 @@ update_icon() /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ /obj/structure/guncase/proc/check_menu(mob/living/carbon/human/user) if(!open) return FALSE diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm index 8136ca4c3d5e..22b23b9ab50c 100644 --- a/code/game/objects/structures/icemoon/cave_entrance.dm +++ b/code/game/objects/structures/icemoon/cave_entrance.dm @@ -119,7 +119,7 @@ GLOBAL_LIST_INIT(ore_probability, list( mob_types = list(/mob/living/simple_animal/hostile/asteroid/ice_whelp) /obj/structure/spawner/ice_moon/demonic_portal/snowlegion - mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow/tendril) + mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril) /obj/effect/collapsing_demonic_portal name = "collapsing demonic portal" @@ -158,89 +158,127 @@ GLOBAL_LIST_INIT(ore_probability, list( visible_message("You can hear screaming and joyful honking.")//now THIS is what we call a critical failure playsound(loc,'sound/spookoween/ghosty_wind.ogg', 100, FALSE, 50, TRUE, TRUE) playsound(loc,'sound/spookoween/scary_horn3.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(35)) + if(prob(15)) new /mob/living/simple_animal/hostile/clown/clownhulk(loc) - new /mob/living/simple_animal/hostile/clown/longface(loc) + new /mob/living/simple_animal/hostile/clown/longface(loc) + new /mob/living/simple_animal/hostile/clown/clownhulk/chlown(loc) + new /obj/item/shield/energy/bananium(loc) if(prob(35)) new /mob/living/simple_animal/hostile/clown/banana(loc) if(prob(35)) new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - new /mob/living/simple_animal/hostile/clown/honkling(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/clown/clownhulk/chlown(loc) + new /mob/living/simple_animal/hostile/clown/clownhulk/chlown + new /mob/living/simple_animal/hostile/clown/honkling(loc) if(prob(25)) + new /obj/item/grenade/spawnergrenade/clown(loc) + new /obj/item/grenade/spawnergrenade/clown(loc) + new /mob/living/simple_animal/hostile/clown/clownhulk(loc) + if(prob(10)) new /mob/living/simple_animal/hostile/clown/mutant/blob(loc)//oh god oh fuck + new /obj/machinery/syndicatebomb/badmin/clown(loc) if(prob(25)) new /obj/item/veilrender/honkrender/honkhulkrender(loc) else new /obj/item/veilrender/honkrender(loc) - if(prob(25)) + if(prob(35)) new /obj/item/storage/backpack/duffelbag/clown/syndie(loc) new /mob/living/simple_animal/hostile/clown/fleshclown(loc) + new /mob/living/simple_animal/hostile/clown/honkling(loc) else new /obj/item/storage/backpack/duffelbag/clown/cream_pie(loc) + new /mob/living/simple_animal/hostile/clown/honkling(loc) if(prob(25)) new /obj/item/borg/upgrade/transform/clown(loc) new /mob/living/simple_animal/hostile/clown/stacked(loc) - if(prob(25)) + if(prob(35)) new /obj/item/megaphone/clown(loc) new /mob/living/simple_animal/hostile/clown/stacked(loc) if(prob(25)) - new /obj/item/clothing/suit/space/hardsuit/clown + new /obj/item/reagent_containers/spray/waterflower/lube(loc) new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - if(prob(25)) + new /mob/living/simple_animal/hostile/clown/fleshclown(loc) + if(prob(35)) + new /obj/item/clothing/suit/space/hardsuit/clown(loc) + new /mob/living/simple_animal/hostile/clown/fleshclown(loc) + if(prob(35)) new /obj/item/gun/magic/staff/honk(loc) new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - if(prob(15)) + if(prob(25)) new /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat(loc) new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - if(prob(15))//you lost + if(prob(25))//you lost new /obj/item/circlegame(loc) new /obj/item/stack/sheet/mineral/bananium(loc) new /turf/open/floor/mineral/bananium(loc) if(2)//basic demonic incursion visible_message("You glimpse an indescribable abyss in the portal. Horrifying monsters appear in a gout of flame.") playsound(loc,'sound/hallucinations/wail.ogg', 200, FALSE, 50, TRUE, TRUE) - if(prob(25)) + if(prob(35)) new /obj/item/clothing/glasses/godeye(loc) new /mob/living/simple_animal/hostile/netherworld/migo(loc) - if(prob(35)) + new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) + if(prob(45)) + new /obj/item/pickaxe/drill/jackhammer/demonic(loc) + new /mob/living/simple_animal/hostile/netherworld/migo(loc) + new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) + if(prob(45)) new /obj/item/wisp_lantern(loc) new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) + new /mob/living/simple_animal/hostile/netherworld(loc) if(prob(25)) new /obj/item/organ/heart/demon(loc) new /mob/living/simple_animal/hostile/netherworld(loc) - if(prob(10)) + new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) + if(prob(5)) new /obj/item/his_grace(loc)//trust me, it's not worth the trouble. new /mob/living/simple_animal/hostile/netherworld/migo(loc) new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - if(prob(35)) + new /mob/living/simple_animal/hostile/netherworld/migo(loc) + if(prob(45)) new /obj/item/nullrod/staff(loc) - if(prob(50)) + new /mob/living/simple_animal/hostile/netherworld/migo(loc) + if(prob(30)) new /obj/item/clothing/suit/space/hardsuit/quixote/dimensional(loc) + new /mob/living/simple_animal/hostile/netherworld/migo(loc) else new /obj/item/immortality_talisman(loc) - if(prob(25)) + new /mob/living/simple_animal/hostile/netherworld/migo(loc) + if(prob(30)) new /obj/item/shared_storage/red(loc) + new /mob/living/simple_animal/hostile/netherworld(loc) new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) + if(prob(30)) + new /obj/item/kitchen/knife/envy(loc) + new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) + if(prob(30)) + new /obj/item/book/granter/spell/traps(loc) + new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) + new /mob/living/simple_animal/hostile/netherworld/migo(loc) + if(prob(30)) + new /obj/item/kitchen/knife/envy(loc) + new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) + new /mob/living/simple_animal/hostile/netherworld(loc) new /mob/living/simple_animal/hostile/netherworld/migo(loc) new /mob/living/simple_animal/hostile/netherworld(loc) new /turf/open/indestructible/necropolis(loc) if(3)//skeleton/religion association, now accepting YOUR BONES visible_message("Bones rattle and strained voices chant a forgotten god's name.") playsound(loc,'sound/ambience/ambiholy.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(50)) + if(prob(30)) new /obj/item/reagent_containers/glass/bottle/potion/flight(loc) + new /mob/living/simple_animal/hostile/skeleton/templar(loc) else new /obj/item/clothing/neck/necklace/memento_mori(loc) new /mob/living/simple_animal/hostile/skeleton(loc) - if(prob(25)) - new /obj/item/storage/box/holy_grenades(loc) new /mob/living/simple_animal/hostile/skeleton/templar(loc) if(prob(35)) + new /obj/item/storage/box/holy_grenades(loc) + new /mob/living/simple_animal/hostile/skeleton/templar(loc) + new /mob/living/simple_animal/hostile/skeleton/templar(loc) + if(prob(40)) new /obj/item/claymore(loc) - if(prob(25)) + new /mob/living/simple_animal/hostile/skeleton/templar(loc) + if(prob(45)) new /obj/item/gun/ballistic/bow(loc) new /obj/item/storage/bag/quiver(loc) new /obj/item/ammo_casing/caseless/arrow/bronze(loc) @@ -249,25 +287,31 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/ammo_casing/caseless/arrow/bronze(loc) new /obj/item/ammo_casing/caseless/arrow/bronze(loc) new /mob/living/simple_animal/hostile/skeleton/templar(loc) - if(prob(35)) + new /mob/living/simple_animal/hostile/skeleton(loc) + if(prob(30)) new /obj/item/stack/sheet/mineral/wood/fifty(loc) new /mob/living/simple_animal/hostile/skeleton(loc) - if(prob(25)) - new /obj/item/staff/bostaff(loc) new /mob/living/simple_animal/hostile/skeleton(loc) if(prob(35)) + new /obj/item/staff/bostaff(loc) + new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/skeleton(loc) + if(prob(45)) new /obj/item/disk/design_disk/adv/cleric_mace(loc) new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/skeleton(loc) if(prob(25)) new /obj/item/shield/riot/roman(loc) new /mob/living/simple_animal/hostile/skeleton(loc) - if(prob(25)) + if(prob(55)) new /obj/item/clothing/suit/armor/riot/knight/blue(loc) new /obj/item/clothing/head/helmet/knight/blue(loc) new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/skeleton(loc) if(prob(35)) new /obj/item/disk/design_disk/adv/knight_gear(loc) new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/skeleton(loc) new /obj/item/instrument/trombone(loc) new /obj/item/stack/sheet/bone(loc) new /obj/item/stack/sheet/bone(loc) @@ -276,112 +320,143 @@ GLOBAL_LIST_INIT(ore_probability, list( new /mob/living/simple_animal/hostile/skeleton/templar(loc) new /turf/open/floor/mineral/silver(loc) if(4)//hogwart's school of witchcraft and wizardry. Featuring incredible loot at incredibly low chances - visible_message("You hear phantom whispers. Candlelight and magic ooze through the dying portal.") + visible_message("You hear the sounds of a terrible magical duel!") playsound(loc,'sound/spookoween/ghost_whisper.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(15)) + if(prob(35)) new /obj/item/organ/heart/cursed/wizard(loc) - if(prob(25)) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/dark_wizard(loc) + if(prob(45)) new /obj/item/book/granter/spell/summonitem(loc) - new /mob/living/simple_animal/hostile/wizard(loc) - if(prob(25)) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + if(prob(35)) new /obj/item/book/granter/spell/random(loc) - new /mob/living/simple_animal/hostile/wizard(loc) - if(prob(15)) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/dark_wizard(loc) + if(prob(25)) new /obj/item/book/granter/spell/sacredflame(loc) - new /mob/living/simple_animal/hostile/wizard(loc) - if(prob(15)) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + if(prob(35)) new /obj/item/book/granter/spell/shapechange(loc) - new /mob/living/simple_animal/hostile/wizard(loc) - if(prob(20)) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/dark_wizard(loc) + if(prob(35)) new /obj/item/book/granter/spell/cards(loc) - new /mob/living/simple_animal/hostile/wizard(loc) - if(prob(15)) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + if(prob(25)) new /obj/item/gun/magic/staff/chaos(loc) new /mob/living/simple_animal/hostile/dark_wizard(loc) - if(prob(15)) + new /mob/living/simple_animal/hostile/dark_wizard(loc) + if(prob(25)) new /obj/item/mjollnir(loc) - new /mob/living/simple_animal/hostile/wizard(loc) - if(prob(15)) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/dark_wizard(loc) + if(prob(25)) new /obj/item/singularityhammer(loc) - new /mob/living/simple_animal/hostile/wizard(loc) - if(prob(15)) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/dark_wizard(loc) + if(prob(25)) new /obj/item/book/granter/spell/charge(loc) - new /mob/living/simple_animal/hostile/wizard(loc) - if(prob(10)) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/dark_wizard(loc) + if(prob(25)) new /obj/item/book/granter/spell/fireball(loc) - new /mob/living/simple_animal/hostile/wizard(loc) - if(prob(15)) - new /obj/item/gun/magic/wand/polymorph(loc) - new /mob/living/simple_animal/hostile/wizard(loc) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/dark_wizard(loc) if(prob(25)) + new /obj/item/gun/magic/wand/polymorph(loc) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/dark_wizard(loc) + if(prob(35)) new /obj/item/guardiancreator/choose(loc) - new /mob/living/simple_animal/hostile/wizard(loc) + new /mob/living/simple_animal/hostile/wizard/planet(loc) + new /mob/living/simple_animal/hostile/dark_wizard(loc) new /obj/item/upgradescroll(loc) new /obj/item/gun/magic/wand/fireball/inert(loc) new /mob/living/simple_animal/hostile/dark_wizard(loc) + new /mob/living/simple_animal/hostile/wizard/planet(loc) new /turf/open/floor/wood/ebony(loc) if(5)//syndicate incursion. Again, high-quality loot at low chances, this time with excessive levels of danger visible_message("Radio chatter echoes out from the portal. Red-garbed figures step through, weapons raised.") playsound(loc,'sound/effects/radiohiss.ogg', 200, FALSE, 50, TRUE, TRUE) playsound(loc,'sound/ambience/antag/tatoralert.ogg', 75, FALSE, 50, TRUE, TRUE) - if(prob(25)) - if(prob(25)) + if(prob(35)) + if(prob(15)) new /obj/item/clothing/suit/space/hardsuit/syndi/elite(loc) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) else - new /obj/item/clothing/suit/space/hardsuit/syndi(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + if(prob(50)) + new /obj/item/clothing/suit/space/hardsuit/syndi(loc) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + else + new /obj/item/clothing/suit/space/hardsuit/syndi(loc) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) if(prob(25))//the real prize new /obj/effect/spawner/lootdrop/donkpockets(loc) new /obj/effect/spawner/lootdrop/donkpockets(loc) new /obj/effect/spawner/lootdrop/donkpockets(loc) - if(prob(25)) + if(prob(35)) new /obj/item/clothing/shoes/magboots/syndie(loc) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) if(prob(25)) new /obj/item/gun/ballistic/automatic/pistol/suppressed(loc) new /obj/item/ammo_box/magazine/ new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) if(prob(25)) new /obj/item/gun/ballistic/automatic/pistol/tec9(loc) + new /obj/item/ammo_box/magazine/tec9(loc) + new /obj/item/ammo_box/magazine/tec9(loc) new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) - if(prob(25)) + if(prob(35)) new /obj/item/clothing/gloves/rapid(loc) new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) - if(prob(25)) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + if(prob(35)) new /obj/item/wrench/combat(loc) new /obj/item/storage/toolbox/syndicate(loc) new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) - if(prob(25)) + if(prob(35)) new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(loc) - if(prob(15)) + if(prob(35)) new /obj/item/borg/upgrade/transform/assault(loc) new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) - if(prob(15)) + if(prob(25)) new /obj/item/antag_spawner/nuke_ops/borg_tele/commando(loc) new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) if(prob(25)) new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) new /obj/item/guardiancreator/tech(loc) if(prob(25)) new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) new /obj/item/storage/backpack/duffelbag/syndie/c4(loc) if(prob(35)) new /obj/item/storage/belt/military(loc) - if(prob(25)) - new /obj/item/syndie_crusher(loc) new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) + if(prob(35)) + new /obj/item/kinetic_crusher/syndie_crusher(loc) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) + new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) if(prob(25)) new /obj/item/card/id/syndicate/anyone(loc) - if(prob(25)) + if(prob(35)) new /obj/item/clothing/glasses/thermal/syndi(loc) new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) if(prob(25)) new /obj/item/shield/energy(loc) new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) - if(prob(25)) + if(prob(35)) new /obj/item/reagent_containers/hypospray(loc) new /mob/living/simple_animal/hostile/syndicate/ranged/shotgun(loc) - if(prob(15)) + new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) + if(prob(25)) new /obj/item/card/emag(loc) + new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) new /turf/open/floor/mineral/plastitanium/red(loc) @@ -389,22 +464,28 @@ GLOBAL_LIST_INIT(ore_probability, list( visible_message("You hear a robotic voice saying something about a \"Delta-level biohazard\".") playsound(loc,'sound/ai/outbreak5.ogg', 100, FALSE, 50, TRUE, TRUE) playsound(loc,'sound/misc/bloblarm.ogg', 50, FALSE, 50, TRUE, TRUE) + if(prob(35)) + new /obj/item/circuitboard/machine/chem_dispenser(loc) + new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) if(prob(35)) new /obj/item/storage/box/hypospray/CMO(loc) new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(10)) + if(prob(15)) new /obj/item/gun/medbeam(loc) new /mob/living/simple_animal/hostile/blob/blobbernaut/independent(loc) - if(prob(35)) + if(prob(45)) new /obj/item/defibrillator(loc) new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/sleeper(loc) - if(prob(35)) + if(prob(45)) + new /obj/item/circuitboard/machine/stasis(loc) + new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) + if(prob(45)) new /obj/item/stack/medical/suture/medicated(loc) - if(prob(35)) + new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) + if(prob(45)) new /obj/item/stack/medical/mesh/advanced(loc) - if(prob(25)) + new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) + if(prob(35)) new /obj/item/gun/syringe/syndicate(loc) new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) if(prob(25)) @@ -412,23 +493,28 @@ GLOBAL_LIST_INIT(ore_probability, list( if(prob(35)) new /obj/item/storage/firstaid/advanced(loc) new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(25)) + if(prob(35)) new /obj/item/storage/firstaid/tactical(loc) new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) + new /mob/living/simple_animal/hostile/blob/blobbernaut/independent(loc) else new /obj/item/storage/firstaid/regular(loc) - if(prob(35)) + new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) + if(prob(45)) new /obj/item/rod_of_asclepius(loc) - if(prob(25)) + if(prob(35)) new /obj/effect/mob_spawn/human/corpse/solgov/infantry(loc) + new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) else new /obj/effect/mob_spawn/human/doctor(loc) - if(prob(25)) + if(prob(35)) new /obj/effect/mob_spawn/human/corpse/solgov/infantry(loc) + new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) else new /obj/effect/mob_spawn/human/doctor(loc) - if(prob(25)) + if(prob(35)) new /obj/effect/mob_spawn/human/corpse/solgov/infantry(loc) + new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) else new /obj/effect/mob_spawn/human/doctor(loc) new /obj/item/healthanalyzer(loc) @@ -439,20 +525,21 @@ GLOBAL_LIST_INIT(ore_probability, list( if(7)//teleporty ice world. Incomplete. visible_message("You glimpse a frozen, empty plane. Something stirs in the fractal abyss.") playsound(loc,'sound/ambience/ambisin3.ogg', 150, FALSE, 50, TRUE, TRUE) - if(prob(35)) + if(prob(45)) new /obj/item/warp_cube/red(loc) new /mob/living/simple_animal/hostile/asteroid/ice_demon(loc) - if(prob(25)) + if(prob(45)) new /obj/item/clothing/suit/drfreeze_coat(loc) new /obj/item/clothing/under/costume/drfreeze(loc) new /mob/living/simple_animal/hostile/asteroid/ice_demon(loc) - if(prob(30)) + if(prob(35)) new /obj/item/gun/magic/wand/teleport(loc) new /mob/living/simple_animal/hostile/asteroid/ice_demon(loc) - if(prob(30)) + new /mob/living/simple_animal/hostile/bear/snow(loc) + if(prob(45)) new /obj/item/freeze_cube(loc) new /mob/living/simple_animal/hostile/asteroid/ice_demon(loc) - if(prob(45)) + if(prob(55)) new /obj/item/clothing/shoes/winterboots/ice_boots(loc) new /mob/living/simple_animal/hostile/bear/snow(loc) new /obj/effect/decal/remains/human(loc) @@ -464,13 +551,13 @@ GLOBAL_LIST_INIT(ore_probability, list( new /mob/living/simple_animal/hostile/swarmer/ai(loc) new /mob/living/simple_animal/hostile/swarmer/ai(loc) new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(35)) + if(prob(45)) new /obj/item/construction/rcd/loaded(loc) new /mob/living/simple_animal/hostile/swarmer/ai(loc) if(prob(35)) new /obj/item/holosign_creator/atmos(loc) new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(25)) + if(prob(35)) new /obj/item/circuitboard/machine/vendor(loc) new /obj/item/vending_refill/engivend(loc) new /mob/living/simple_animal/hostile/swarmer/ai(loc) @@ -483,10 +570,11 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/grenade/chem_grenade/smart_metal_foam(loc) new /obj/item/grenade/chem_grenade/smart_metal_foam(loc) new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(25)) + if(prob(35)) new /obj/item/stack/sheet/metal/fifty(loc) new /obj/item/clothing/glasses/meson/engine(loc) new /mob/living/simple_animal/hostile/swarmer/ai(loc) + new /mob/living/simple_animal/hostile/swarmer/ai(loc) if(prob(25)) new /obj/item/stack/sheet/metal/twenty(loc) new /obj/ @@ -498,10 +586,13 @@ GLOBAL_LIST_INIT(ore_probability, list( if(prob(25)) new /obj/machinery/portable_atmospherics/canister/oxygen(loc) new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(25)) + if(prob(35)) new /mob/living/simple_animal/hostile/swarmer/ai(loc) new /mob/living/simple_animal/hostile/swarmer/ai(loc) new /obj/item/clothing/gloves/color/latex/engineering(loc) + if(prob(35)) + new /mob/living/simple_animal/hostile/swarmer/ai(loc) + new /obj/item/clothing/gloves/color/latex/engineering(loc) new /obj/effect/mob_spawn/human/engineer(loc) new /turf/open/floor/circuit/telecomms(loc) if(9)//Literally blood-drunk. @@ -520,15 +611,15 @@ GLOBAL_LIST_INIT(ore_probability, list( visible_message("You hear the sound of big money and bigger avarice.") playsound(loc,'sound/lavaland/cursed_slot_machine_jackpot.ogg', 150, FALSE, 50, TRUE, TRUE) new /obj/structure/cursed_slot_machine(loc) - if(prob(25)) + if(prob(35)) new /obj/item/stack/spacecash/c1000(loc) new /obj/item/stack/spacecash/c1000(loc) new /obj/item/coin/gold(loc) new /mob/living/simple_animal/hostile/faithless(loc) - if(prob(25)) + if(prob(35)) new /obj/item/clothing/mask/spamton(loc) new /mob/living/simple_animal/hostile/faithless(loc) - if(prob(25)) + if(prob(35)) new /obj/item/gem/fdiamond(loc) new /mob/living/simple_animal/hostile/faithless(loc) else @@ -537,8 +628,10 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/coin/gold(loc) new /obj/item/coin/gold(loc) new /obj/item/stack/sheet/mineral/gold/twenty(loc) + new /mob/living/simple_animal/hostile/faithless(loc) if(prob(35)) new /obj/item/storage/fancy/cigarettes/cigpack_robustgold(loc) + new /mob/living/simple_animal/hostile/faithless(loc) if(prob(35)) new /obj/item/clothing/head/collectable/petehat(loc) new /mob/living/simple_animal/hostile/faithless(loc) @@ -553,44 +646,50 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/stack/sheet/mineral/runite/ten(loc) new /obj/item/stack/sheet/mineral/mythril/ten(loc) new /mob/living/simple_animal/hostile/hivebot(loc) - if(prob(25)) + if(prob(35)) new /obj/item/stack/sheet/mineral/adamantine/ten(loc) new /obj/item/stack/sheet/mineral/runite/ten(loc) new /obj/item/stack/sheet/mineral/mythril/ten(loc) new /mob/living/simple_animal/hostile/hivebot(loc) - if(prob(15)) + if(prob(25)) new /obj/item/stack/sheet/mineral/adamantine/ten(loc) new /obj/item/stack/sheet/mineral/runite/ten(loc) new /obj/item/stack/sheet/mineral/mythril/ten(loc) new /mob/living/simple_animal/hostile/hivebot/strong(loc) - if(prob(25)) + if(prob(35)) new /obj/item/stack/sheet/mineral/silver/twenty(loc) new /obj/item/stack/sheet/mineral/titanium/twenty(loc) new /obj/item/stack/sheet/mineral/gold/twenty(loc) new /mob/living/simple_animal/hostile/hivebot/strong(loc) - if(prob(25)) + if(prob(35)) new /obj/item/circuitboard/computer/solar_control(loc) new /obj/item/electronics/tracker(loc) new /obj/item/solar_assembly(loc) new /obj/item/solar_assembly(loc) new /obj/item/solar_assembly(loc) new /obj/item/solar_assembly(loc) - if(prob(35)) + if(prob(45)) new /obj/item/stack/circuit_stack(loc) new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) if(prob(35)) new /obj/item/circuitboard/machine/bluespace_miner(loc) new /mob/living/simple_animal/hostile/hivebot/range(loc) - if(prob(35)) + if(prob(45)) new /obj/item/circuitboard/machine/dna_vault(loc) new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) if(prob(35)) - new /obj/item/circuitboard/machine/dna_vault(loc) + new /obj/item/circuitboard/machine/recycler(loc) new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) if(prob(35)) - new /obj/item/circuitboard/machine/dna_vault(loc) + new /obj/item/circuitboard/machine/recharger(loc) new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) - if(prob(45)) + if(prob(35)) + new /obj/item/circuitboard/machine/smoke_machine(loc) + new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) + if(prob(35)) + new /obj/item/circuitboard/machine/ore_silo(loc) + new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) + if(prob(35)) new /obj/item/stack/sheet/mineral/adamantine/ten(loc) new /obj/item/stack/sheet/mineral/runite/ten(loc) new /obj/item/stack/sheet/mineral/mythril/ten(loc) @@ -614,11 +713,11 @@ GLOBAL_LIST_INIT(ore_probability, list( if(12)//miner's last moments visible_message("The familiar sound of an ash storm greets you. A miner steps through the portal, stumbles, and collapses.") playsound(loc,'sound/weather/ashstorm/outside/weak_end.ogg', 150, FALSE, 50, TRUE, TRUE) - if(prob(25)) + if(prob(35)) new /obj/item/disk/design_disk/modkit_disc/resonator_blast(loc) if(prob(25)) new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(loc) - if(prob(15)) + if(prob(25)) new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(loc) if(prob(25)) new /obj/item/disk/design_disk/modkit_disc/bounty(loc) @@ -633,9 +732,15 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/fulton_core(loc) new /obj/item/extraction_pack(loc) new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) - if(prob(35)) + if(prob(45)) new /obj/item/t_scanner/adv_mining_scanner/lesser(loc) new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) + if(prob(45)) + new /obj/item/gibtonite(loc) + new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) + if(prob(45)) + new /obj/item/clothing/glasses/meson/night(loc) + new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) if(prob(50)) new /obj/item/kinetic_crusher(loc) else @@ -664,19 +769,19 @@ GLOBAL_LIST_INIT(ore_probability, list( if(prob(45)) new /obj/item/clothing/suit/space/hardsuit/carp(loc) new /mob/living/simple_animal/hostile/carp(loc) - if(prob(35)) + if(prob(45)) new /obj/item/gun/magic/hook(loc) new /mob/living/simple_animal/hostile/carp(loc) if(prob(45)) new /obj/item/reagent_containers/food/snacks/carpmeat(loc) new /obj/item/reagent_containers/food/snacks/carpmeat(loc) - if(prob(25)) + if(prob(35)) new /obj/item/guardiancreator/carp/choose(loc) new /mob/living/simple_animal/hostile/carp/megacarp(loc) - if(prob(10)) + if(prob(25)) new /obj/item/book/granter/martial/carp(loc) new /mob/living/simple_animal/hostile/carp/megacarp(loc) - if(prob(25)) + if(prob(35)) new /obj/item/grenade/spawnergrenade/spesscarp(loc) new /mob/living/simple_animal/hostile/carp/megacarp(loc) new /mob/living/simple_animal/hostile/carp/megacarp(loc) @@ -685,15 +790,24 @@ GLOBAL_LIST_INIT(ore_probability, list( if(14)//hydroponics forest visible_message("You catch a glimpse of a strange forest. Smells like weed and bad choices.") playsound(loc,'sound/ambience/shore.ogg', 150, FALSE, 50, TRUE, TRUE) - if(prob(35)) + if(prob(45)) new /obj/item/circuitboard/machine/biogenerator(loc) + new /mob/living/simple_animal/hostile/venus_human_trap(loc) if(prob(35)) - new /obj/item/circuitboard/machine/seed_extractor(loc) + new /obj/item/gun/energy/floragun(loc) new /mob/living/simple_animal/hostile/venus_human_trap(loc) if(prob(35)) + new /obj/item/circuitboard/machine/seed_extractor(loc) + new /mob/living/simple_animal/hostile/venus_human_trap(loc) + if(prob(45)) new /obj/item/circuitboard/machine/plantgenes(loc) else new /obj/item/circuitboard/machine/hydroponics(loc) + if(prob(15)) + new /obj/item/circuitboard/machine/hydroponics(loc) + new /mob/living/simple_animal/hostile/venus_human_trap(loc) + if(prob(15)) + new /obj/item/circuitboard/machine/hydroponics(loc) if(prob(15)) new /obj/item/seeds/gatfruit(loc) new /mob/living/simple_animal/hostile/venus_human_trap(loc) @@ -701,6 +815,12 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/seeds/random(loc) if(prob(45)) new /obj/item/seeds/random(loc) + new /mob/living/simple_animal/hostile/venus_human_trap(loc) + if(prob(45)) + new /obj/item/seeds/random(loc) + if(prob(45)) + new /obj/item/seeds/random(loc) + new /mob/living/simple_animal/hostile/venus_human_trap(loc) if(prob(45)) new /obj/item/seeds/random(loc) if(prob(45)) @@ -727,7 +847,7 @@ GLOBAL_LIST_INIT(ore_probability, list( if(prob(35)) new /obj/item/clothing/head/radiation(loc) new /obj/item/clothing/suit/radiation(loc) - if(prob(35)) + if(prob(45)) new /obj/item/gun/energy/decloner(loc) new /mob/living/simple_animal/hostile/cockroach/glockroach(loc) new /obj/item/geiger_counter(loc) @@ -754,7 +874,7 @@ GLOBAL_LIST_INIT(ore_probability, list( if(prob(15)) new /obj/item/cult_bastard(loc) new /mob/living/simple_animal/hostile/construct/juggernaut/hostile(loc) - if(prob(25)) + if(prob(35)) new /obj/item/cult_shift(loc) new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc) if(prob(45)) @@ -775,77 +895,100 @@ GLOBAL_LIST_INIT(ore_probability, list( if(prob(45)) new /obj/item/kitchen/knife/bloodletter(loc) new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(45)) + if(prob(55)) new /obj/item/clothing/gloves/butchering(loc) new /mob/living/simple_animal/hostile/killertomato(loc) if(prob(45)) new /obj/item/reagent_containers/food/snacks/store/bread/meat(loc) new /obj/item/reagent_containers/food/snacks/store/bread/meat(loc) new /obj/item/reagent_containers/food/snacks/store/bread/meat(loc) - if(prob(45)) + if(prob(55)) new /obj/item/reagent_containers/food/snacks/store/cake/trumpet(loc) if(prob(35)) new /obj/item/reagent_containers/food/snacks/pizza/dank(loc) + new /mob/living/simple_animal/hostile/killertomato(loc) if(prob(25)) new /obj/item/reagent_containers/food/snacks/meat/steak/gondola(loc) new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(25)) + if(prob(35)) new /obj/item/reagent_containers/food/snacks/burger/roburgerbig(loc) new /mob/living/simple_animal/hostile/killertomato(loc) if(prob(35)) new /obj/item/kitchen/knife/butcher(loc) new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(25)) + if(prob(35)) new /obj/item/flamethrower/full(loc) new /mob/living/simple_animal/hostile/killertomato(loc) + if(prob(45)) + new /obj/item/sharpener(loc) + new /mob/living/simple_animal/hostile/killertomato(loc) + if(prob(25)) + new /obj/item/sharpener/super(loc) + new /mob/living/simple_animal/hostile/killertomato(loc) + new /mob/living/simple_animal/hostile/killertomato(loc) + if(prob(35)) + new /obj/item/circuitboard/machine/gibber(loc) + new /mob/living/simple_animal/hostile/killertomato(loc) + if(prob(35)) + new /obj/item/circuitboard/machine/chem_master/condi(loc) + new /mob/living/simple_animal/hostile/killertomato(loc) new /mob/living/simple_animal/hostile/alien/maid(loc) new /turf/open/floor/plasteel/kitchen_coldroom/freezerfloor(loc) if(18)//legion miniboss visible_message("The ground quakes. An immense figure reaches through the portal, crouching to squeeze through.") playsound(loc,'sound/magic/knock.ogg', 100, FALSE, 50, TRUE, TRUE) new /mob/living/simple_animal/hostile/big_legion(loc) - if(prob(50)) - new /obj/structure/closet/crate/necropolis/tendril(loc) + if(prob(75)) + new /obj/structure/closet/crate/necropolis/tendril/greater(loc) new /turf/open/indestructible/necropolis(loc) if(19)//xenobiologist's hubris visible_message("You catch a glimpse of a wobbling sea of slimy friends. An abused-looking keeper slips through the portal.") playsound(loc,'sound/effects/footstep/slime1.ogg', 100, FALSE, 50, TRUE, TRUE) if(prob(25)) new /obj/item/slime_extract/adamantine(loc) - if(prob(25)) + new /mob/living/simple_animal/slime/random(loc) + if(prob(35)) new /obj/item/slime_extract/gold(loc) + if(prob(25)) + new /obj/item/guardiancreator/slime(loc) + new /mob/living/simple_animal/slime/random(loc) if(prob(45)) new /obj/item/extinguisher/advanced(loc) if(prob(25)) new /obj/item/slimepotion/slime/renaming(loc) new /mob/living/simple_animal/slime/random(loc) + new /mob/living/simple_animal/slime/random(loc) if(prob(25)) new /obj/item/slimepotion/slime/sentience(loc) new /mob/living/simple_animal/slime/random(loc) if(prob(25)) new /obj/item/slimepotion/transference(loc) new /mob/living/simple_animal/slime/random(loc) - if(prob(35)) + if(prob(45)) new /obj/item/circuitboard/computer/xenobiology(loc) new /obj/item/slime_extract/grey(loc) new /mob/living/simple_animal/slime/random(loc) - if(prob(35)) + if(prob(45)) new /obj/item/circuitboard/machine/processor/slime(loc) new /mob/living/simple_animal/slime/random(loc) + new /mob/living/simple_animal/slime/random(loc) + if(prob(25)) + new /obj/item/shield/adamantineshield(loc) + new /mob/living/simple_animal/slime/random(loc) if(prob(45)) new /obj/item/slime_cookie/purple(loc) new /obj/item/slime_cookie/purple(loc) new /obj/item/slime_cookie/purple(loc) - if(prob(25)) + if(prob(45)) new /obj/item/storage/box/monkeycubes(loc) new /mob/living/simple_animal/slime/random(loc) - if(prob(25)) + if(prob(35)) new /obj/item/slimepotion/speed(loc) new /mob/living/simple_animal/slime/random(loc) - if(prob(35)) + if(prob(45)) new /obj/item/slimepotion/slime/slimeradio(loc) new /mob/living/simple_animal/slime/random(loc) - if(prob(25)) + if(prob(35)) new /mob/living/simple_animal/pet/dog/corgi/puppy/slime(loc) new /obj/effect/mob_spawn/human/scientist(loc) new /turf/open/floor/mineral/titanium/purple(loc) @@ -853,26 +996,26 @@ GLOBAL_LIST_INIT(ore_probability, list( if(20)//lost abductor visible_message("You glimpse a frigid wreckage. A large block of something slips through the portal.") playsound(loc,'sound/effects/break_stone.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(25)) + if(prob(45)) new /obj/item/stack/sheet/mineral/abductor(loc) new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(25)) + if(prob(30)) new /obj/item/clothing/under/abductor(loc) new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(25)) + if(prob(35)) new /obj/item/weldingtool/abductor(loc) - if(prob(25)) + if(prob(30)) new /obj/item/scalpel/alien(loc) - if(prob(20)) + if(prob(35)) new /obj/item/circuitboard/machine/plantgenes/vault(loc) new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(20)) + if(prob(35)) new /obj/item/organ/heart/gland/heal(loc) new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(20)) + if(prob(35)) new /obj/item/organ/heart/gland/ventcrawling(loc) new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(20)) + if(prob(35)) new /obj/item/organ/heart/gland/slime(loc) new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) if(prob(10)) @@ -884,10 +1027,10 @@ GLOBAL_LIST_INIT(ore_probability, list( if(prob(35)) new /obj/item/crowbar/abductor(loc) new /obj/item/multitool/abductor(loc) - if(prob(25)) + if(prob(15)) new /obj/item/abductor_machine_beacon/chem_dispenser(loc) new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) - if(prob(25)) + if(prob(35)) new /obj/item/clothing/suit/armor/abductor/vest(loc) new /mob/living/simple_animal/hostile/asteroid/polarbear(loc) new /obj/structure/fluff/iced_abductor(loc) @@ -914,13 +1057,21 @@ GLOBAL_LIST_INIT(ore_probability, list( if(prob(35)) new /obj/item/card/id/departmental_budget/sci(loc) new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(25)) + if(prob(35)) new /obj/item/storage/box/stockparts/deluxe(loc) new /mob/living/simple_animal/hostile/zombie(loc) new /mob/living/simple_animal/hostile/zombie(loc) + if(prob(15)) + new /obj/effect/spawner/lootdrop/stockparts(loc) new /mob/living/simple_animal/hostile/zombie(loc) - else - new /obj/item/storage/box/stockparts(loc) + if(prob(15)) + new /obj/effect/spawner/lootdrop/stockparts(loc) + new /mob/living/simple_animal/hostile/zombie(loc) + if(prob(15)) + new /obj/effect/spawner/lootdrop/stockparts(loc) + new /mob/living/simple_animal/hostile/zombie(loc) + if(prob(15)) + new /obj/effect/spawner/lootdrop/stockparts(loc) new /mob/living/simple_animal/hostile/zombie(loc) if(prob(30)) new /obj/item/circuitboard/machine/rdserver(loc) @@ -935,10 +1086,10 @@ GLOBAL_LIST_INIT(ore_probability, list( new /mob/living/simple_animal/hostile/zombie(loc) else new /obj/item/research_notes/loot/small(loc) - if(prob(25)) + if(prob(35)) new /obj/item/pneumatic_cannon(loc) new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(35)) + if(prob(45)) new /obj/item/research_notes/loot/medium(loc) new /mob/living/simple_animal/hostile/zombie(loc) else @@ -954,29 +1105,29 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/circuitboard/machine/dnascanner(loc) if(prob(35)) new /obj/item/circuitboard/computer/scan_consolenew(loc) - if(prob(15)) + if(prob(25)) new /obj/item/reagent_containers/hypospray/medipen/magillitis(loc) new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(25)) + if(prob(35)) new /obj/item/dnainjector/thermal(loc) new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(25)) + if(prob(35)) new /obj/item/storage/box/gorillacubes(loc) new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(25)) + if(prob(35)) new /obj/item/dnainjector/hulkmut(loc) new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(25)) + if(prob(35)) new /obj/item/dnainjector/firemut(loc) new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(25)) - new /obj/item/dnainjector/gigantism(loc) if(prob(35)) + new /obj/item/dnainjector/gigantism(loc) + if(prob(45)) new /obj/item/dnainjector/dwarf(loc) - if(prob(25)) + if(prob(35)) new /obj/item/dnainjector/firebreath(loc) new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(25)) + if(prob(35)) new /mob/living/simple_animal/hostile/gorilla(loc) new /obj/item/dnainjector/telemut/darkbundle(loc) if(prob(35)) diff --git a/code/game/objects/structures/industrial_lift.dm b/code/game/objects/structures/industrial_lift.dm index 50570b007380..cf8671aca69f 100644 --- a/code/game/objects/structures/industrial_lift.dm +++ b/code/game/objects/structures/industrial_lift.dm @@ -49,13 +49,13 @@ possible_expansions -= borderline /** - * Moves the lift UP or DOWN, this is what users invoke with their hand. - * This is a SAFE proc, ensuring every part of the lift moves SANELY. - * It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming. - * Arguments: - * going - UP or DOWN directions, where the lift should go. Keep in mind by this point checks of whether it should go up or down have already been done. - * user - Whomever made the lift movement. - */ + * Moves the lift UP or DOWN, this is what users invoke with their hand. + * This is a SAFE proc, ensuring every part of the lift moves SANELY. + * It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming. + * Arguments: + * going - UP or DOWN directions, where the lift should go. Keep in mind by this point checks of whether it should go up or down have already been done. + * user - Whomever made the lift movement. + */ /datum/lift_master/proc/MoveLift(going, mob/user) set_controls(LOCKED) for(var/p in lift_platforms) @@ -64,10 +64,10 @@ set_controls(UNLOCKED) /** - * Moves the lift, this is what users invoke with their hand. - * This is a SAFE proc, ensuring every part of the lift moves SANELY. - * It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming. - */ + * Moves the lift, this is what users invoke with their hand. + * This is a SAFE proc, ensuring every part of the lift moves SANELY. + * It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming. + */ /datum/lift_master/proc/MoveLiftHorizontal(going, z) var/max_x = 1 var/max_y = 1 @@ -123,8 +123,8 @@ return TRUE /** - * Sets all lift parts's controls_locked variable. Used to prevent moving mid movement, or cooldowns. - */ + * Sets all lift parts's controls_locked variable. Used to prevent moving mid movement, or cooldowns. + */ /datum/lift_master/proc/set_controls(state) for(var/l in lift_platforms) var/obj/structure/industrial_lift/lift_platform = l diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm index 4a00c4abf94b..544d2c2c13cb 100644 --- a/code/game/objects/structures/salvaging.dm +++ b/code/game/objects/structures/salvaging.dm @@ -509,7 +509,7 @@ /obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop loot = list( /obj/item/gun/energy/lasercannon/unrestricted = 1, - /obj/item/gun/ballistic/automatic/proto/unrestricted = 1, + /obj/item/gun/ballistic/automatic/smg/proto/unrestricted = 1, /obj/item/gun/energy/temperature/security = 1, ) /obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index 69b18048ed80..716a48a4f33c 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -47,10 +47,10 @@ user.examinate(src) /** - * This proc populates GLOBAL_LIST_EMPTY(editable_sign_types) - * - * The first time a pen is used on any sign, this populates GLOBAL_LIST_EMPTY(editable_sign_types), creating a global list of all the signs that you can set a sign backing to with a pen. - */ + * This proc populates GLOBAL_LIST_EMPTY(editable_sign_types) + * + * The first time a pen is used on any sign, this populates GLOBAL_LIST_EMPTY(editable_sign_types), creating a global list of all the signs that you can set a sign backing to with a pen. + */ /proc/populate_editable_sign_types() for(var/s in subtypesof(/obj/structure/sign)) var/obj/structure/sign/potential_sign = s diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 3e4becb73367..314948f916b5 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -157,6 +157,7 @@ SEND_SIGNAL(pushed_mob, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table_headsmash) /obj/structure/table/attackby(obj/item/I, mob/user, params) + var/list/modifiers = params2list(params) if(!(flags_1 & NODECONSTRUCT_1) && user.a_intent != INTENT_HELP) if(I.tool_behaviour == TOOL_SCREWDRIVER && deconstruction_ready) to_chat(user, "You start disassembling [src]...") @@ -212,13 +213,12 @@ if(user.a_intent != INTENT_HARM && !(I.item_flags & ABSTRACT)) if(user.transferItemToLoc(I, drop_location(), silent = FALSE)) - var/list/click_params = params2list(params) //Center the icon where the user clicked. - if(!click_params || !click_params["icon-x"] || !click_params["icon-y"]) + if(!LAZYACCESS(modifiers, ICON_X) || !LAZYACCESS(modifiers, ICON_Y)) return //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf) - I.pixel_x = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) - I.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + I.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2) + I.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2) AfterPutItemOnTable(I, user) return TRUE else @@ -575,7 +575,7 @@ canSmoothWith = null can_buckle = 1 buckle_lying = NO_BUCKLE_LYING - buckle_requires_restraints = TRUE + buckle_requires_restraints = FALSE can_flip = FALSE var/mob/living/carbon/human/patient = null var/obj/machinery/computer/operating/computer = null diff --git a/code/game/objects/structures/training_machine.dm b/code/game/objects/structures/training_machine.dm index cc36a1a8f8f5..f3a17f9c2f07 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -7,11 +7,11 @@ #define MAX_ATTACK_DELAY 15 /** - * Machine that runs around wildly so people can practice clickin on things - * - * Can have a mob buckled on or a obj/item/target attached. Movement controlled by SSFastProcess, - * movespeed controlled by cooldown macros. Can attach obj/item/target, obj/item/training_toolbox, and can buckle mobs to this. - */ + * Machine that runs around wildly so people can practice clickin on things + * + * Can have a mob buckled on or a obj/item/target attached. Movement controlled by SSFastProcess, + * movespeed controlled by cooldown macros. Can attach obj/item/target, obj/item/training_toolbox, and can buckle mobs to this. + */ /obj/structure/training_machine name = "AURUMILL-Brand MkII. Personnel Training Machine" desc = "Used for combat training simulations. Accepts standard training targets. A pair of buckling straps are attached." @@ -327,10 +327,10 @@ . += "Click to open control interface." /** - * Device that simply counts the number of times you've hit a mob or target with. Looks like a toolbox but isn't. - * - * Also has a 'Lap' function for keeping track of hits made at a certain point. Also, looks kinda like his grace for laughs and pranks. - */ + * Device that simply counts the number of times you've hit a mob or target with. Looks like a toolbox but isn't. + * + * Also has a 'Lap' function for keeping track of hits made at a certain point. Also, looks kinda like his grace for laughs and pranks. + */ /obj/item/training_toolbox name = "Training Toolbox" desc = "AURUMILL-Brand Baby's First Training Toolbox. A digital display on the back keeps track of hits made by the user. Second toolbox sold seperately!" diff --git a/code/game/sound.dm b/code/game/sound.dm index 4d7648eae9d3..d16877916165 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -41,7 +41,7 @@ falloff_distance - Distance at which falloff begins. Sound is at peak volume (in */ -/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff_exponent = SOUND_FALLOFF_EXPONENT, frequency = null, channel = 0, pressure_affected = TRUE, ignore_walls = TRUE, falloff_distance = SOUND_DEFAULT_FALLOFF_DISTANCE, use_reverb = TRUE, var/mono_adj = FALSE) //WS Edit, Make tools and nearby airlocks use mono sound +/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff_exponent = SOUND_FALLOFF_EXPONENT, frequency = null, channel = 0, pressure_affected = TRUE, ignore_walls = TRUE, falloff_distance = SOUND_DEFAULT_FALLOFF_DISTANCE, use_reverb = TRUE, mono_adj = FALSE) //WS Edit, Make tools and nearby airlocks use mono sound if(isarea(source)) CRASH("playsound(): source is an area") diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 938fc9f0f304..695fb5fca00f 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -46,7 +46,7 @@ if(istype(M) && !M.mineralType) M.Change_Ore(mineralType) -/turf/closed/mineral/proc/Change_Ore(var/ore_type, random = 0) +/turf/closed/mineral/proc/Change_Ore(ore_type, random = 0) if(random) mineralAmt = rand(1, 5) if(ispath(ore_type, /obj/item/stack/ore)) //If it has a scan_state, switch to it @@ -769,6 +769,9 @@ initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS baseturfs = /turf/open/floor/plating/asteroid/rockplanet turf_type = /turf/open/floor/plating/asteroid/rockplanet + mineralSpawnChanceList = list(/obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 10, + /obj/item/stack/ore/silver = 12, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 40, /obj/item/stack/ore/titanium = 11, + /turf/closed/mineral/gibtonite/rockplanet = 4, /obj/item/stack/ore/bluespace_crystal = 1) /turf/closed/mineral/gibtonite/rockplanet name = "iron rock" diff --git a/code/game/turfs/open/acid.dm b/code/game/turfs/open/acid.dm index 2c46fffcd35c..d7959c54d0c8 100644 --- a/code/game/turfs/open/acid.dm +++ b/code/game/turfs/open/acid.dm @@ -122,7 +122,7 @@ O.resistance_flags &= ~UNACIDABLE if(O.armor.acid == 100) //acid proof armor will probably be acid proof continue - O.acid_act(50, 100) + O.acid_act(10, 20) else if (isliving(thing)) . = TRUE diff --git a/code/game/turfs/open/floor/light_floor.dm b/code/game/turfs/open/floor/light_floor.dm index 9288834eed8c..2eb01418bf8b 100644 --- a/code/game/turfs/open/floor/light_floor.dm +++ b/code/game/turfs/open/floor/light_floor.dm @@ -156,12 +156,12 @@ can_modify_colour = FALSE /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - * * multitool The multitool used to interact with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + * * multitool The multitool used to interact with a menu + */ /turf/open/floor/light/proc/check_menu(mob/living/user, obj/item/multitool) if(!istype(user)) return FALSE diff --git a/code/game/turfs/open/space/space.dm b/code/game/turfs/open/space/space.dm index 76a517c18b58..b7d0a2e8cb01 100644 --- a/code/game/turfs/open/space/space.dm +++ b/code/game/turfs/open/space/space.dm @@ -27,10 +27,10 @@ return /** - * Space Initialize - * - * Doesn't call parent, see [/atom/proc/Initialize] - */ + * Space Initialize + * + * Doesn't call parent, see [/atom/proc/Initialize] + */ /turf/open/space/Initialize(mapload, inherited_virtual_z) SHOULD_CALL_PARENT(FALSE) icon_state = SPACE_ICON_STATE diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index c4b2bea6ca9c..b8497853d153 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -79,10 +79,10 @@ . = ..() /** - * Turf Initialize - * - * Doesn't call parent, see [/atom/proc/Initialize] - */ + * Turf Initialize + * + * Doesn't call parent, see [/atom/proc/Initialize] + */ /turf/Initialize(mapload, inherited_virtual_z) SHOULD_CALL_PARENT(FALSE) if(flags_1 & INITIALIZED_1) @@ -468,7 +468,7 @@ ////////////////////////////// //Distance associates with all directions movement -/turf/proc/Distance(var/turf/T) +/turf/proc/Distance(turf/T) return get_dist(src,T) // This Distance proc assumes that only cardinal movement is @@ -540,7 +540,7 @@ underlay_appearance.dir = adjacency_dir return TRUE -/turf/proc/add_blueprints(var/atom/movable/AM) +/turf/proc/add_blueprints(atom/movable/AM) var/image/I = new I.appearance = AM.appearance I.appearance_flags = RESET_COLOR|RESET_ALPHA|RESET_TRANSFORM @@ -639,8 +639,8 @@ . |= R.expose_turf(src, reagents[R]) /** - * Called when this turf is being washed. Washing a turf will also wash any mopable floor decals - */ + * Called when this turf is being washed. Washing a turf will also wash any mopable floor decals + */ /turf/wash(clean_types) . = ..() diff --git a/code/game/world.dm b/code/game/world.dm index 43120cdafb3c..c13da4f64d3e 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -3,31 +3,31 @@ GLOBAL_VAR(restart_counter) /** - * World creation - * - * Here is where a round itself is actually begun and setup. - * * db connection setup - * * config loaded from files - * * loads admins - * * Sets up the dynamic menu system - * * and most importantly, calls initialize on the master subsystem, starting the game loop that causes the rest of the game to begin processing and setting up - * - * - * Nothing happens until something moves. ~Albert Einstein - * - * For clarity, this proc gets triggered later in the initialization pipeline, it is not the first thing to happen, as it might seem. - * - * Initialization Pipeline: - * Global vars are new()'ed, (including config, glob, and the master controller will also new and preinit all subsystems when it gets new()ed) - * Compiled in maps are loaded (mainly centcom). all areas/turfs/objs/mobs(ATOMs) in these maps will be new()ed - * world/New() (You are here) - * Once world/New() returns, client's can connect. - * 1 second sleep - * Master Controller initialization. - * Subsystem initialization. - * Non-compiled-in maps are maploaded, all atoms are new()ed - * All atoms in both compiled and uncompiled maps are initialized() - */ + * World creation + * + * Here is where a round itself is actually begun and setup. + * * db connection setup + * * config loaded from files + * * loads admins + * * Sets up the dynamic menu system + * * and most importantly, calls initialize on the master subsystem, starting the game loop that causes the rest of the game to begin processing and setting up + * + * + * Nothing happens until something moves. ~Albert Einstein + * + * For clarity, this proc gets triggered later in the initialization pipeline, it is not the first thing to happen, as it might seem. + * + * Initialization Pipeline: + * Global vars are new()'ed, (including config, glob, and the master controller will also new and preinit all subsystems when it gets new()ed) + * Compiled in maps are loaded (mainly centcom). all areas/turfs/objs/mobs(ATOMs) in these maps will be new()ed + * world/New() (You are here) + * Once world/New() returns, client's can connect. + * 1 second sleep + * Master Controller initialization. + * Subsystem initialization. + * Non-compiled-in maps are maploaded, all atoms are new()ed + * All atoms in both compiled and uncompiled maps are initialized() + */ /world/New() //Keep the auxtools stuff at the top AUXTOOLS_CHECK(AUXMOS) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 2fd89a9ec7b5..ad4d4af49481 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -793,7 +793,7 @@ target_mind.traitor_panel() SSblackbox.record_feedback("tally", "admin_verb", 1, "Traitor Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/datum/admins/proc/show_skill_panel(var/target) +/datum/admins/proc/show_skill_panel(target) set category = "Admin.Game" set desc = "Edit mobs's experience and skill levels" set name = "Show Skill Panel" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 76e021ce6aa7..c3a7a295523c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -117,7 +117,8 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/polymorph_all, /client/proc/show_tip, /client/proc/smite, - /client/proc/fax_panel + /client/proc/fax_panel, + /client/proc/spawn_ruin, )) GLOBAL_PROTECT(admin_verbs_fun) GLOBAL_LIST_INIT(admin_verbs_spawn, list( @@ -321,7 +322,6 @@ GLOBAL_PROTECT(admin_verbs_hideable) GLOB.admin_verbs_default, /client/proc/togglebuildmodeself, GLOB.admin_verbs_admin, - GLOB.mentor_verbs, GLOB.admin_verbs_ban, GLOB.admin_verbs_fun, GLOB.admin_verbs_server, diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index 9be17d1efb7e..887d88993a93 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -6,7 +6,7 @@ mobjs = jointext(typesof(/mob), ";") create_mob_html = file2text('html/create_object.html') create_mob_html = replacetext(create_mob_html, "Create Object", "Create Mob") - create_mob_html = replacetext(create_mob_html, "null /* object types */", "\"[mobjs]\"") + create_mob_html = replacetext(create_mob_html, "null; /* object types */", "\"[mobjs]\"") user << browse(create_panel_helper(create_mob_html), "window=create_mob;size=425x475") diff --git a/code/modules/admin/create_object.dm b/code/modules/admin/create_object.dm index 00f642c79460..5bf5a0e568a6 100644 --- a/code/modules/admin/create_object.dm +++ b/code/modules/admin/create_object.dm @@ -9,7 +9,7 @@ var/objectjs = null objectjs = jointext(typesof(/obj), ";") create_object_html = file2text('html/create_object.html') - create_object_html = replacetext(create_object_html, "null /* object types */", "\"[objectjs]\"") + create_object_html = replacetext(create_object_html, "null; /* object types */", "\"[objectjs]\"") user << browse(create_panel_helper(create_object_html), "window=create_object;size=425x475") diff --git a/code/modules/admin/poll_management.dm b/code/modules/admin/poll_management.dm index ae1a6e17e8c6..df8bc1010525 100644 --- a/code/modules/admin/poll_management.dm +++ b/code/modules/admin/poll_management.dm @@ -1,9 +1,9 @@ /** - * Datum which holds details of a running poll loaded from the database and supplementary info. - * - * Used to minimize the need for querying this data every time it's needed. - * - */ + * Datum which holds details of a running poll loaded from the database and supplementary info. + * + * Used to minimize the need for querying this data every time it's needed. + * + */ /datum/poll_question ///Reference list of the options for this poll, not used by text response polls. var/list/options = list() @@ -41,11 +41,11 @@ var/future_poll /** - * Datum which holds details of a poll option loaded from the database. - * - * Used to minimize the need for querying this data every time it's needed. - * - */ + * Datum which holds details of a poll option loaded from the database. + * + * Used to minimize the need for querying this data every time it's needed. + * + */ /datum/poll_option ///Reference to the poll this option belongs to var/datum/poll_question/parent_poll @@ -67,9 +67,9 @@ var/default_percentage_calc /** - * Shows a list of all current and future polls and buttons to edit or delete them or create a new poll. - * - */ + * Shows a list of all current and future polls and buttons to edit or delete them or create a new poll. + * + */ /datum/admins/proc/poll_list_panel() var/list/output = list("Current and future polls
Note when editing polls or their options changes are not saved until you press Submit Poll.
New PollReload Polls
") for(var/p in GLOB.polls) @@ -91,9 +91,9 @@ panel.open() /** - * Show the options for creating a poll or editing its parameters along with its linked options. - * - */ + * Show the options for creating a poll or editing its parameters along with its linked options. + * + */ /datum/admins/proc/poll_management_panel(datum/poll_question/poll) var/list/output = list("
[HrefTokenFormField()]") output += {"Poll type @@ -235,12 +235,12 @@ panel.open() /** - * Processes topic data from poll management panel. - * - * Reads through returned form data and assigns data to the poll datum, creating a new one if required, before passing it to be saved. - * Also does some simple error checking to ensure the poll will be valid before creation. - * - */ + * Processes topic data from poll management panel. + * + * Reads through returned form data and assigns data to the poll datum, creating a new one if required, before passing it to be saved. + * Also does some simple error checking to ensure the poll will be valid before creation. + * + */ /datum/admins/proc/poll_parse_href(list/href_list, datum/poll_question/poll) if(!check_rights(R_POLL)) return @@ -344,12 +344,12 @@ return ..() /** - * Sets a poll and its associated data as deleted in the database. - * - * Calls the procedure set_poll_deleted to set the deleted column to 1 for each row in the poll_ tables matching the poll id used. - * Then deletes each option datum and finally the poll itself. - * - */ + * Sets a poll and its associated data as deleted in the database. + * + * Calls the procedure set_poll_deleted to set the deleted column to 1 for each row in the poll_ tables matching the poll id used. + * Then deletes each option datum and finally the poll itself. + * + */ /datum/poll_question/proc/delete_poll() if(!check_rights(R_POLL)) return @@ -371,14 +371,14 @@ qdel(src) /** - * Inserts or updates a poll question to the database. - * - * Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. - * The start and end datetimes and poll id for new polls is then retrieved for the poll datum. - * Arguments: - * * clear_votes - When true will call clear_poll_votes() to delete all votes matching this poll id. - * - */ + * Inserts or updates a poll question to the database. + * + * Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. + * The start and end datetimes and poll id for new polls is then retrieved for the poll datum. + * Arguments: + * * clear_votes - When true will call clear_poll_votes() to delete all votes matching this poll id. + * + */ /datum/poll_question/proc/save_poll_data(clear_votes) if(!check_rights(R_POLL)) return @@ -437,13 +437,13 @@ message_admins("[kna] [msg]") /** - * Saves all options of a poll to the database. - * - * Saves all the created options for a poll when it's submitted to the DB for the first time and associated an id with the options. - * Insertion and id querying for each option is done separately to ensure data integrity; this is less performant, but not significantly. - * Using MassInsert() would mean having to query a list of rows by poll_id or matching by fields afterwards, which doesn't guarantee accuracy. - * - */ + * Saves all options of a poll to the database. + * + * Saves all the created options for a poll when it's submitted to the DB for the first time and associated an id with the options. + * Insertion and id querying for each option is done separately to ensure data integrity; this is less performant, but not significantly. + * Using MassInsert() would mean having to query a list of rows by poll_id or matching by fields afterwards, which doesn't guarantee accuracy. + * + */ /datum/poll_question/proc/save_all_options() if(!SSdbcore.Connect()) to_chat(usr, "Failed to establish database connection.", confidential = TRUE) @@ -453,9 +453,9 @@ option.save_option() /** - * Deletes all votes or text replies for this poll, depending on its type. - * - */ + * Deletes all votes or text replies for this poll, depending on its type. + * + */ /datum/poll_question/proc/clear_poll_votes() if(!check_rights(R_POLL)) return @@ -477,9 +477,9 @@ to_chat(usr, "Poll [poll_type == POLLTYPE_TEXT ? "responses" : "votes"] cleared.", confidential = TRUE) /** - * Show the options for creating a poll option or editing its parameters. - * - */ + * Show the options for creating a poll option or editing its parameters. + * + */ /datum/admins/proc/poll_option_panel(datum/poll_question/poll, datum/poll_option/option) var/list/output = list("[HrefTokenFormField()]") output += {" Option for poll [poll.question] @@ -533,12 +533,12 @@ panel.open() /** - * Processes topic data from poll option panel. - * - * Reads through returned form data and assigns data to the option datum, creating a new one if required, before passing it to be saved. - * Also does some simple error checking to ensure the option will be valid before creation. - * - */ + * Processes topic data from poll option panel. + * + * Reads through returned form data and assigns data to the option datum, creating a new one if required, before passing it to be saved. + * Also does some simple error checking to ensure the option will be valid before creation. + * + */ /datum/admins/proc/poll_option_parse_href(list/href_list, datum/poll_question/poll, datum/poll_option/option) if(!check_rights(R_POLL)) return @@ -631,12 +631,12 @@ return ..() /** - * Inserts or updates a poll option to the database. - * - * Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. - * The list of columns and values is built dynamically to avoid excess data being sent when not a rating type poll. - * - */ + * Inserts or updates a poll option to the database. + * + * Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. + * The list of columns and values is built dynamically to avoid excess data being sent when not a rating type poll. + * + */ /datum/poll_option/proc/save_option() if(!check_rights(R_POLL)) return @@ -668,9 +668,9 @@ qdel(query_update_poll_option) /** - * Sets a poll option and its votes as deleted in the database then deletes its datum. - * - */ + * Sets a poll option and its votes as deleted in the database then deletes its datum. + * + */ /datum/poll_option/proc/delete_option() if(!check_rights(R_POLL)) return @@ -690,9 +690,9 @@ qdel(src) /** - * Loads all current and future server polls and their options to store both as datums. - * - */ + * Loads all current and future server polls and their options to store both as datums. + * + */ /proc/load_poll_data() if(!SSdbcore.Connect()) to_chat(usr, "Failed to establish database connection.", confidential = TRUE) diff --git a/code/modules/admin/stickyban.dm b/code/modules/admin/stickyban.dm index 0cad328a97a2..28350d971c81 100644 --- a/code/modules/admin/stickyban.dm +++ b/code/modules/admin/stickyban.dm @@ -406,7 +406,7 @@ return sortList(world.GetConfig("ban")) -/proc/get_stickyban_from_ckey(var/ckey) +/proc/get_stickyban_from_ckey(ckey) . = list() if (!ckey) return null diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index cf8c3122cfe4..35420d45f57f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2255,42 +2255,6 @@ fax_panel(usr) return - else if(href_list["EvilFax"]) - if(!check_rights(R_FUN)) - return - var/mob/living/carbon/human/H = locate(href_list["EvilFax"]) - if(!istype(H)) - to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human.") - return - var/etypes = list("Borgification","Corgification","Death By Fire","Demotion Notice") - var/eviltype = input(src.owner, "Which type of evil fax do you wish to send [H]?","Its good to be baaaad...", "") as null|anything in etypes - if(!(eviltype in etypes)) - return - var/customname = input(src.owner, "Pick a title for the evil fax.", "Fax Title") as text|null - if(!customname) - customname = "paper" - var/obj/item/paper/evilfax/P = new /obj/item/paper/evilfax(null) - var/obj/machinery/photocopier/faxmachine/fax = locate(href_list["originfax"]) - - P.name = "Central Command - [customname]" - P.info = "You really should've known better." - P.myeffect = eviltype - P.mytarget = H - if(alert("Do you want the Evil Fax to activate automatically if [H] tries to ignore it?",,"Yes", "No") == "Yes") - P.activate_on_timeout = TRUE - P.x = rand(-2, 0) - P.y = rand(-1, 2) - P.update_icon() - //we have to physically teleport the fax paper - fax.handle_animation() - P.forceMove(fax.loc) - if(istype(H) && H.stat == CONSCIOUS && (istype(H.ears, /obj/item/radio/headset))) - to_chat(H, "Your headset pings, notifying you that a reply to your fax has arrived.") - to_chat(src.owner, "You sent a [eviltype] fax to [H].") - log_admin("[key_name(src.owner)] sent [key_name(H)] a [eviltype] fax") - message_admins("[key_name_admin(src.owner)] replied to [key_name_admin(H)] with a [eviltype] fax") - return - else if(href_list["FaxReplyTemplate"]) if(!check_rights(R_FUN)) return @@ -2360,7 +2324,7 @@ return GLOB.interviews.ui_interact(usr) -/datum/admins/proc/handle_sendall(var/obj/machinery/photocopier/faxmachine/F, var/obj/item/paper/P) +/datum/admins/proc/handle_sendall(obj/machinery/photocopier/faxmachine/F, obj/item/paper/P) if(F.receivefax(P) == FALSE) to_chat(owner, "Message transmission to [F.department] failed.") diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 946510f909ce..c4d8f3306035 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -609,15 +609,15 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) world.TgsTargetedChatBroadcast("[msg] | [msg2]", TRUE) /** - * Sends a message to a set of cross-communications-enabled servers using world topic calls - * - * Arguments: - * * source - Who sent this message - * * msg - The message body - * * type - The type of message, becomes the topic command under the hood - * * target_servers - A collection of servers to send the message to, defined in config - * * additional_data - An (optional) associated list of extra parameters and data to send with this world topic call - */ + * Sends a message to a set of cross-communications-enabled servers using world topic calls + * + * Arguments: + * * source - Who sent this message + * * msg - The message body + * * type - The type of message, becomes the topic command under the hood + * * target_servers - A collection of servers to send the message to, defined in config + * * additional_data - An (optional) associated list of extra parameters and data to send with this world topic call + */ /proc/send2otherserver(source, msg, type = "Ahelp", target_servers, list/additional_data = list()) if(!CONFIG_GET(string/comms_key)) debug2_world_log("Server cross-comms message not sent for lack of configured key") diff --git a/code/modules/admin/verbs/anonymousnames.dm b/code/modules/admin/verbs/anonymousnames.dm index 448ef83e5e16..62c48149af52 100644 --- a/code/modules/admin/verbs/anonymousnames.dm +++ b/code/modules/admin/verbs/anonymousnames.dm @@ -25,13 +25,13 @@ message_admins("[key_name_admin(usr)] has enabled anonymous names. THEME: [SSticker.anonymousnames].") /** - * anonymous_name: generates a corporate random name. used in admin event tool anonymous names - * - * first letter is always a letter - * Example name = "Employee Q5460Z" - * Arguments: - * * M - mob for preferences and gender - */ + * anonymous_name: generates a corporate random name. used in admin event tool anonymous names + * + * first letter is always a letter + * Example name = "Employee Q5460Z" + * Arguments: + * * M - mob for preferences and gender + */ /proc/anonymous_name(mob/M) switch(SSticker.anonymousnames) if(ANON_RANDOMNAMES) @@ -47,13 +47,13 @@ return name /** - * anonymous_ai_name: generates a corporate random name (but for sillycones). used in admin event tool anonymous names - * - * first letter is always a letter - * Example name = "Employee Assistant Assuming Delta" - * Arguments: - * * is_ai - boolean to decide whether the name has "Core" (AI) or "Assistant" (Cyborg) - */ + * anonymous_ai_name: generates a corporate random name (but for sillycones). used in admin event tool anonymous names + * + * first letter is always a letter + * Example name = "Employee Assistant Assuming Delta" + * Arguments: + * * is_ai - boolean to decide whether the name has "Core" (AI) or "Assistant" (Cyborg) + */ /proc/anonymous_ai_name(is_ai = FALSE) switch(SSticker.anonymousnames) if(ANON_RANDOMNAMES) diff --git a/code/modules/admin/verbs/fix_air.dm b/code/modules/admin/verbs/fix_air.dm index bc3fec478c64..6c2db230bb65 100644 --- a/code/modules/admin/verbs/fix_air.dm +++ b/code/modules/admin/verbs/fix_air.dm @@ -1,5 +1,5 @@ // Proc taken from yogstation, credit to nichlas0010 for the original -/client/proc/fix_air(var/turf/open/T in world) +/client/proc/fix_air(turf/open/T in world) set name = "Fix Air" set category = "Admin.Game" set desc = "Fixes air in specified radius." diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 607ce69dc64e..bcd1fa86ecb2 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -299,7 +299,7 @@ unset_busy_human_dummy(DUMMY_HUMAN_SLOT_ADMIN) return preview_icon -/datum/admins/proc/makeEmergencyresponseteam(var/datum/ert/ertemplate = null) +/datum/admins/proc/makeEmergencyresponseteam(datum/ert/ertemplate = null) if (ertemplate) ertemplate = new ertemplate else diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 3198c5b4bbf9..28bc145c4a6f 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -855,6 +855,63 @@ SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggled Hub Visibility", "[GLOB.hub_visibility ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/spawn_ruin() + set name = "Spawn Planet/Ruin" + set category = "Fun" + if(!check_rights(R_ADMIN) || !check_rights(R_SPAWN)) + return + + var/planet_type = tgui_input_list(usr, "What type of planet?", "Spawn Ruin", DYNAMIC_WORLD_LIST_ALL, 60 SECONDS) + if(!planet_type) + planet_type = DYNAMIC_WORLD_SPACERUIN + + var/category = tgui_input_list(usr, "What type of ruin?", "Spawn Ruin", RUINTYPE_LIST_ALL + "Everything", 60 SECONDS) + var/datum/map_template/spawning + if(category) + var/list/select_from + switch(category) + if(RUINTYPE_ICE) + select_from = SSmapping.ice_ruins_templates + if(RUINTYPE_JUNGLE) + select_from = SSmapping.jungle_ruins_templates + if(RUINTYPE_LAVA) + select_from = SSmapping.lava_ruins_templates + if(RUINTYPE_ROCK) + select_from = SSmapping.rock_ruins_templates + if(RUINTYPE_SAND) + select_from = SSmapping.sand_ruins_templates + if(RUINTYPE_SPACE) + select_from = SSmapping.space_ruins_templates + if(RUINTYPE_YELLOW) + select_from = SSmapping.yellow_ruins_templates + if("Everything") + select_from = SSmapping.ruins_templates + else + select_from = null + + if(select_from) + var/selected_ruin = tgui_input_list(usr, "Which ruin?", "Spawn Ruin", select_from, 60 SECONDS) + if(selected_ruin) + spawning = select_from[selected_ruin] + if(!istype(spawning)) + to_chat(usr, span_boldwarning("Failed to index the given ruin, contact a coder!")) + spawning = null + + var/datum/overmap/dynamic/encounter = new(null, FALSE) + encounter.force_encounter = planet_type + encounter.template = spawning + + to_chat(usr, span_big("Now generating the planet type and ruin!")) + encounter.load_level() + SSblackbox.record_feedback("tally", "adv_spawn_ruin", spawning?.name) + + encounter.preserve_level = TRUE + to_chat(usr, span_big("Click here to jump to the overmap token: " + ADMIN_JMP(encounter.token))) + to_chat(usr, span_big("Click here to jump to the overmap dock: " + ADMIN_JMP(encounter.reserve_docks[1]))) + for(var/ruin in encounter.ruin_turfs) + var/turf/ruin_turf = encounter.ruin_turfs[ruin] + to_chat(usr, span_big("Click here to jump to \"[ruin]\": " + ADMIN_JMP(ruin_turf))) + /client/proc/smite(mob/living/target as mob) set name = "Smite" set category = "Fun" diff --git a/code/modules/admin/view_variables/mass_edit_variables.dm b/code/modules/admin/view_variables/mass_edit_variables.dm index a56ae22cf1e5..14b703cd09b3 100644 --- a/code/modules/admin/view_variables/mass_edit_variables.dm +++ b/code/modules/admin/view_variables/mass_edit_variables.dm @@ -201,7 +201,7 @@ message_admins("[key_name_admin(src)] mass modified [original_name]'s [variable] to [O.vars[variable]] ([accepted] objects modified)") //not using global lists as vv is a debug function and debug functions should rely on as less things as possible. -/proc/get_all_of_type(var/T, subtypes = TRUE) +/proc/get_all_of_type(T, subtypes = TRUE) var/list/typecache = list() typecache[T] = 1 if (subtypes) diff --git a/code/modules/admin/view_variables/modify_variables.dm b/code/modules/admin/view_variables/modify_variables.dm index 547788afa912..91a4e4630185 100644 --- a/code/modules/admin/view_variables/modify_variables.dm +++ b/code/modules/admin/view_variables/modify_variables.dm @@ -17,7 +17,7 @@ GLOBAL_PROTECT(VVpixelmovement) //FALSE = no subtypes, strict exact type pathing (or the type doesn't have subtypes) //TRUE = Yes subtypes //NULL = User cancelled at the prompt or invalid type given -/client/proc/vv_subtype_prompt(var/type) +/client/proc/vv_subtype_prompt(type) if (!ispath(type)) return var/list/subtypes = subtypesof(type) diff --git a/code/modules/admin/whitelist.dm b/code/modules/admin/whitelist.dm index 263268a5ca12..59a14dc1fbc6 100644 --- a/code/modules/admin/whitelist.dm +++ b/code/modules/admin/whitelist.dm @@ -15,7 +15,7 @@ GLOBAL_PROTECT(whitelist) if(!GLOB.whitelist.len) GLOB.whitelist = null -/proc/check_whitelist(var/ckey) +/proc/check_whitelist(ckey) if(!GLOB.whitelist) return FALSE . = (ckey in GLOB.whitelist) diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index 857f7f5d32a1..278c1b90297d 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -102,14 +102,16 @@ icon = 'icons/obj/device.dmi' icon_state = "locator" var/borg_to_spawn + var/locked = TRUE /obj/item/antag_spawner/nuke_ops/proc/check_usability(mob/user) if(used) to_chat(user, "[src] is out of power!") return FALSE - if(!user.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE)) - to_chat(user, "AUTHENTICATION FAILURE. ACCESS DENIED.") - return FALSE + if(locked) + if(!user.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE)) + to_chat(user, "AUTHENTICATION FAILURE. ACCESS DENIED.") + return FALSE return TRUE @@ -186,6 +188,7 @@ name = "mysterious device" desc = "A dusty brick of electronics, wired to some kind of bluespace launch apparatus. A small plastic sticker on the side of the housing reads MODPICK!BRIG@DORPROTOTYPE in hastily-scrawled sharpie." borg_to_spawn = "Commando" + locked = FALSE /obj/item/antag_spawner/nuke_ops/borg_tele/spawn_antag(client/C, turf/T, kind, datum/mind/user) var/mob/living/silicon/robot/R diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 30a086044212..8fdb656c6e79 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -406,18 +406,18 @@ info = {"Dissection for Dummies

- 1.Acquire fresh specimen.
- 2.Put the specimen on operating table.
- 3.Use a scalpel on the specimen's chest, preparing for experimental dissection.
- 4.Clamp bleeders on specimen's torso with a hemostat.
- 5.Retract skin of specimen's torso with a retractor.
- 6.Apply scalpel again to specimen's torso.
- 7.Search through the specimen's torso with your hands to remove any superfluous organs.
- 8.Insert replacement gland (Retrieve one from gland storage).
- 9.Consider dressing the specimen back to not disturb the habitat.
- 10.Put the specimen in the experiment machinery.
- 11.Choose one of the machine options. The target will be analyzed and teleported to the selected drop-off point.
- 12.You will receive one supply credit, and the subject will be counted towards your quota.
+1.Acquire fresh specimen.
+2.Put the specimen on operating table.
+3.Use a scalpel on the specimen's chest, preparing for experimental dissection.
+4.Clamp bleeders on specimen's torso with a hemostat.
+5.Retract skin of specimen's torso with a retractor.
+6.Apply scalpel again to specimen's torso.
+7.Search through the specimen's torso with your hands to remove any superfluous organs.
+8.Insert replacement gland (Retrieve one from gland storage).
+9.Consider dressing the specimen back to not disturb the habitat.
+10.Put the specimen in the experiment machinery.
+11.Choose one of the machine options. The target will be analyzed and teleported to the selected drop-off point.
+12.You will receive one supply credit, and the subject will be counted towards your quota.

Congratulations! You are now trained for invasive xenobiology research!"} diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm index 29d998e709b2..6a07abb7c4bc 100644 --- a/code/modules/antagonists/abductor/machinery/console.dm +++ b/code/modules/antagonists/abductor/machinery/console.dm @@ -35,8 +35,8 @@ possible_gear = get_abductor_gear() /** - * get_abductor_gear: Returns a list of a filtered abductor gear sorted by categories - */ + * get_abductor_gear: Returns a list of a filtered abductor gear sorted by categories + */ /obj/machinery/abductor/console/proc/get_abductor_gear() var/list/filtered_modules = list() for(var/path in GLOB.abductor_gear) diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm index 07d09f41b1ef..0f8b770db4be 100644 --- a/code/modules/antagonists/abductor/machinery/experiment.dm +++ b/code/modules/antagonists/abductor/machinery/experiment.dm @@ -103,13 +103,13 @@ return TRUE /** - * experiment: Performs selected experiment on occupant mob, resulting in a point reward on success - * - * Arguments: - * * occupant The mob inside the machine - * * type The type of experiment to be performed - * * user The mob starting the experiment - */ + * experiment: Performs selected experiment on occupant mob, resulting in a point reward on success + * + * Arguments: + * * occupant The mob inside the machine + * * type The type of experiment to be performed + * * user The mob starting the experiment + */ /obj/machinery/abductor/experiment/proc/experiment(mob/occupant, type, mob/user) LAZYINITLIST(history) var/mob/living/carbon/human/H = occupant @@ -167,11 +167,11 @@ return "Specimen braindead - disposed." /** - * send_back: Sends a mob back to a selected teleport location if safe - * - * Arguments: - * * H The human mob to be sent back - */ + * send_back: Sends a mob back to a selected teleport location if safe + * + * Arguments: + * * H The human mob to be sent back + */ /obj/machinery/abductor/experiment/proc/send_back(mob/living/carbon/human/H) H.Sleeping(160) H.uncuff() diff --git a/code/modules/antagonists/blob/blob_mobs.dm b/code/modules/antagonists/blob/blob_mobs.dm index 3edd74e6c515..7c21939f89a0 100644 --- a/code/modules/antagonists/blob/blob_mobs.dm +++ b/code/modules/antagonists/blob/blob_mobs.dm @@ -72,7 +72,7 @@ return 1 return ..() -/mob/living/simple_animal/hostile/blob/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null) +/mob/living/simple_animal/hostile/blob/say(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null) if(!overmind) ..() return diff --git a/code/modules/antagonists/blob/blobstrains/_reagent.dm b/code/modules/antagonists/blob/blobstrains/_reagent.dm index 60ebd858cd43..3d210188d9b6 100644 --- a/code/modules/antagonists/blob/blobstrains/_reagent.dm +++ b/code/modules/antagonists/blob/blobstrains/_reagent.dm @@ -6,7 +6,7 @@ reagent = new reagent() -/datum/blobstrain/reagent/attack_living(var/mob/living/L) +/datum/blobstrain/reagent/attack_living(mob/living/L) var/mob_protection = L.get_permeability_protection() reagent.expose_mob(L, VAPOR, 25, 1, mob_protection, overmind) send_message(L) diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm index d6f122486324..1fb0b0b12142 100644 --- a/code/modules/antagonists/blob/structures/_blob.dm +++ b/code/modules/antagonists/blob/structures/_blob.dm @@ -51,7 +51,7 @@ /obj/structure/blob/blob_act() return -/obj/structure/blob/Adjacent(var/atom/neighbour) +/obj/structure/blob/Adjacent(atom/neighbour) . = ..() if(.) var/result = 0 diff --git a/code/modules/antagonists/borer/borer.dm b/code/modules/antagonists/borer/borer.dm index 7c442510b3b6..8226ba206db2 100644 --- a/code/modules/antagonists/borer/borer.dm +++ b/code/modules/antagonists/borer/borer.dm @@ -61,10 +61,10 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) name = "cortical borer" real_name = "cortical borer" desc = "A small, quivering, slug-like creature." - icon = 'whitesands/icons/mob/borer.dmi' - icon_state = "brainslug" - icon_living = "brainslug" - icon_dead = "brainslug_dead" + icon = 'icons/mob/borer.dmi' + icon_state = "creepy" + icon_living = "creepy" + icon_dead = "creepy_dead" health = 20 maxHealth = 20 melee_damage_lower = 5 @@ -122,6 +122,16 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) var/is_team_borer = TRUE var/borer_alert = "Become a cortical borer? (Warning, You can no longer be cloned!)" +/mob/living/simple_animal/borer/sterile + name = "neutered chemslug" + is_team_borer = FALSE + borer_alert = "Become a neutered cortical borer? (Warning, You can no longer be cloned!)" + +/mob/living/simple_animal/borer/sterile/ComponentInitialize() + . = ..() + AddElement(/datum/element/rename_on_login) + AddElement(/datum/element/appearance_on_login/borer) + /mob/living/simple_animal/borer/Initialize(mapload, gen=1) ..() generation = gen diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index fd182e0d846a..cd37fb81a6ee 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -37,15 +37,15 @@ the same goes for Remove(). if you override Remove(), call parent or else your p try_to_sting(user) /** - *Contrary to the name, this proc isn't just used by changeling stings. It handles the activation of the action and the deducation of its cost. - *The order of the proc chain is: - *can_sting(). Should this fail, the process gets aborted early. - *sting_action(). This proc usually handles the actual effect of the action. - *Should sting_action succeed the following will be done: - *sting_feedback(). Produces feedback on the performed action. Don't ask me why this isn't handled in sting_action() - *The deduction of the cost of this power. - *Returns TRUE on a successful activation. - */ + *Contrary to the name, this proc isn't just used by changeling stings. It handles the activation of the action and the deducation of its cost. + *The order of the proc chain is: + *can_sting(). Should this fail, the process gets aborted early. + *sting_action(). This proc usually handles the actual effect of the action. + *Should sting_action succeed the following will be done: + *sting_feedback(). Produces feedback on the performed action. Don't ask me why this isn't handled in sting_action() + *The deduction of the cost of this power. + *Returns TRUE on a successful activation. + */ /datum/action/changeling/proc/try_to_sting(mob/user, mob/target) if(!can_sting(user, target)) return FALSE diff --git a/code/modules/antagonists/changeling/powers/hivemind.dm b/code/modules/antagonists/changeling/powers/hivemind.dm index ece6b788d3cd..d3723650858f 100644 --- a/code/modules/antagonists/changeling/powers/hivemind.dm +++ b/code/modules/antagonists/changeling/powers/hivemind.dm @@ -43,7 +43,7 @@ GLOBAL_LIST_EMPTY(hivemind_bank) chemical_cost = 10 dna_cost = -1 -/datum/action/changeling/hivemind_upload/sting_action(var/mob/living/user) +/datum/action/changeling/hivemind_upload/sting_action(mob/living/user) if (HAS_TRAIT(user, CHANGELING_HIVEMIND_MUTE)) to_chat(user, "The poison in the air hinders our ability to interact with the hivemind.") return diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index e10812eaa848..1dae8a6a649f 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -86,7 +86,7 @@ var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) pollCultists(owner,C.cult_team) -/proc/pollCultists(var/mob/living/Nominee,datum/team/cult/team) //Cult Master Poll +/proc/pollCultists(mob/living/Nominee,datum/team/cult/team) //Cult Master Poll if(world.time < CULT_POLL_WAIT) to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [DisplayTimeText(CULT_POLL_WAIT-world.time)].") return diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 13588d65a4ef..4e68c4bf7fd8 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -110,7 +110,7 @@ structure_check() searches for nearby cultist structures required for the invoca */ -/obj/effect/rune/proc/can_invoke(var/mob/living/user=null) +/obj/effect/rune/proc/can_invoke(mob/living/user=null) //This proc determines if the rune can be invoked at the time. If there are multiple required cultists, it will find all nearby cultists. var/list/invokers = list() //people eligible to invoke the rune if(user) @@ -130,7 +130,7 @@ structure_check() searches for nearby cultist structures required for the invoca invokers += L return invokers -/obj/effect/rune/proc/invoke(var/list/invokers) +/obj/effect/rune/proc/invoke(list/invokers) //This proc contains the effects of the rune as well as things that happen afterwards. If you want it to spawn an object and then delete itself, have both here. for(var/M in invokers) if(isliving(M)) @@ -171,7 +171,7 @@ structure_check() searches for nearby cultist structures required for the invoca icon_state = "[rand(1,7)]" color = rgb(rand(0,255), rand(0,255), rand(0,255)) -/obj/effect/rune/malformed/invoke(var/list/invokers) +/obj/effect/rune/malformed/invoke(list/invokers) ..() qdel(src) @@ -189,7 +189,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/convert/do_invoke_glow() return -/obj/effect/rune/convert/invoke(var/list/invokers) +/obj/effect/rune/convert/invoke(list/invokers) if(rune_in_use) return var/list/myriad_targets = list() @@ -320,7 +320,7 @@ structure_check() searches for nearby cultist structures required for the invoca color = RUNE_COLOR_TALISMAN construct_invoke = FALSE -/obj/effect/rune/empower/invoke(var/list/invokers) +/obj/effect/rune/empower/invoke(list/invokers) . = ..() var/mob/living/user = invokers[1] //the first invoker is always the user for(var/datum/action/innate/cult/blood_magic/BM in user.actions) @@ -350,7 +350,7 @@ structure_check() searches for nearby cultist structures required for the invoca GLOB.teleport_runes -= src return ..() -/obj/effect/rune/teleport/invoke(var/list/invokers) +/obj/effect/rune/teleport/invoke(list/invokers) var/mob/living/user = invokers[1] //the first invoker is always the user var/list/potential_runes = list() var/list/teleportnames = list() @@ -471,7 +471,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/narsie/conceal() //can't hide this, and you wouldn't want to return -/obj/effect/rune/narsie/invoke(var/list/invokers) +/obj/effect/rune/narsie/invoke(list/invokers) if(used) return var/mob/living/user = invokers[1] @@ -522,7 +522,7 @@ structure_check() searches for nearby cultist structures required for the invoca if(iscultist(user) || user.stat == DEAD) . += "Sacrifices unrewarded: [LAZYLEN(GLOB.sacrificed) - sacrifices_used]" -/obj/effect/rune/raise_dead/invoke(var/list/invokers) +/obj/effect/rune/raise_dead/invoke(list/invokers) var/turf/T = get_turf(src) var/mob/living/mob_to_revive var/list/potential_revive_mobs = list() @@ -627,7 +627,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/wall/BlockThermalConductivity() return density -/obj/effect/rune/wall/invoke(var/list/invokers) +/obj/effect/rune/wall/invoke(list/invokers) if(recharging) return var/mob/living/user = invokers[1] @@ -691,7 +691,7 @@ structure_check() searches for nearby cultist structures required for the invoca icon_state = "3" color = RUNE_COLOR_SUMMON -/obj/effect/rune/summon/invoke(var/list/invokers) +/obj/effect/rune/summon/invoke(list/invokers) var/mob/living/user = invokers[1] var/list/cultists = list() for(var/datum/mind/M in SSticker.mode.cult) @@ -750,7 +750,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/blood_boil/do_invoke_glow() return -/obj/effect/rune/blood_boil/invoke(var/list/invokers) +/obj/effect/rune/blood_boil/invoke(list/invokers) if(rune_in_use) return ..() @@ -823,7 +823,7 @@ structure_check() searches for nearby cultist structures required for the invoca return list() return ..() -/obj/effect/rune/manifest/invoke(var/list/invokers) +/obj/effect/rune/manifest/invoke(list/invokers) . = ..() var/mob/living/user = invokers[1] var/turf/T = get_turf(src) @@ -932,7 +932,7 @@ structure_check() searches for nearby cultist structures required for the invoca req_cultists = 3 scribe_delay = 100 -/obj/effect/rune/apocalypse/invoke(var/list/invokers) +/obj/effect/rune/apocalypse/invoke(list/invokers) if(rune_in_use) return . = ..() @@ -1035,7 +1035,7 @@ structure_check() searches for nearby cultist structures required for the invoca GT.runEvent() qdel(src) -/obj/effect/rune/apocalypse/proc/image_handler(var/list/images, duration) +/obj/effect/rune/apocalypse/proc/image_handler(list/images, duration) var/end = world.time + duration set waitfor = 0 while(end>world.time) diff --git a/code/modules/antagonists/disease/disease_disease.dm b/code/modules/antagonists/disease/disease_disease.dm index c37abefab03a..482beaba6be6 100644 --- a/code/modules/antagonists/disease/disease_disease.dm +++ b/code/modules/antagonists/disease/disease_disease.dm @@ -19,7 +19,7 @@ overmind.remove_infection(src) ..() -/datum/disease/advance/sentient_disease/infect(var/mob/living/infectee, make_copy = TRUE) +/datum/disease/advance/sentient_disease/infect(mob/living/infectee, make_copy = TRUE) if(make_copy && overmind && (overmind.disease_template != src)) overmind.disease_template.infect(infectee, TRUE) //get an updated version of the virus else diff --git a/code/modules/antagonists/disease/disease_mob.dm b/code/modules/antagonists/disease/disease_mob.dm index 6788f35d5245..8f1ea1c2b04e 100644 --- a/code/modules/antagonists/disease/disease_mob.dm +++ b/code/modules/antagonists/disease/disease_mob.dm @@ -284,13 +284,13 @@ the new instance inside the host to be updated to the template's stats. if(T) forceMove(T) -/mob/camera/disease/DblClickOn(var/atom/A, params) +/mob/camera/disease/DblClickOn(atom/A, params) if(hosts[A]) set_following(A) else ..() -/mob/camera/disease/ClickOn(var/atom/A, params) +/mob/camera/disease/ClickOn(atom/A, params) if(freemove && ishuman(A)) var/mob/living/carbon/human/H = A if(alert(src, "Select [H.name] as your initial host?", "Select Host", "Yes", "No") != "Yes") diff --git a/code/modules/antagonists/gang/gang.dm b/code/modules/antagonists/gang/gang.dm index d5099667aebc..09225c719da2 100644 --- a/code/modules/antagonists/gang/gang.dm +++ b/code/modules/antagonists/gang/gang.dm @@ -38,7 +38,7 @@ /datum/antagonist/gang/get_team() return my_gang -/datum/antagonist/gang/proc/add_gang_points(var/points_to_add) +/datum/antagonist/gang/proc/add_gang_points(points_to_add) if(my_gang) my_gang.adjust_points(points_to_add) @@ -347,7 +347,7 @@ var/list/free_clothes = list() var/datum/antagonist/gang/my_gang_datum -/datum/team/gang/proc/adjust_points(var/points_to_adjust) +/datum/team/gang/proc/adjust_points(points_to_adjust) points += points_to_adjust /datum/team/gang/roundend_report() diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm index 894f37b022b7..19b0cc891523 100644 --- a/code/modules/antagonists/morph/morph.dm +++ b/code/modules/antagonists/morph/morph.dm @@ -176,7 +176,7 @@ /mob/living/simple_animal/hostile/morph/LoseAggro() vision_range = initial(vision_range) -/mob/living/simple_animal/hostile/morph/AIShouldSleep(var/list/possible_targets) +/mob/living/simple_animal/hostile/morph/AIShouldSleep(list/possible_targets) . = ..() if(.) var/list/things = list() diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index 980864006745..edccf0775928 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -1,10 +1,10 @@ /mob/living/simple_animal/revenant/ClickOn(atom/A, params) //revenants can't interact with the world directly. var/list/modifiers = params2list(params) - if(modifiers["shift"]) + if(LAZYACCESS(modifiers, SHIFT_CLICK)) ShiftClickOn(A) return - if(modifiers["alt"]) + if(LAZYACCESS(modifiers, ALT_CLICK)) AltClickNoInteract(src, A) return diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index 1c88ef7f9b5f..087861a35d9c 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -186,7 +186,7 @@ playsound(T, feast_sound, 50, TRUE, -1) to_chat(M, "You leave [src]'s warm embrace, and feel ready to take on the world.") -/mob/living/simple_animal/slaughter/laughter/bloodcrawl_swallow(var/mob/living/victim) +/mob/living/simple_animal/slaughter/laughter/bloodcrawl_swallow(mob/living/victim) if(consumed_mobs) // Keep their corpse so rescue is possible consumed_mobs += victim diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 2ca345994696..e568e95e8700 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -260,7 +260,7 @@ to_chat(killer, "Your radio has been upgraded! Use :t to speak on an encrypted channel with Syndicate Agents!") killer.add_malf_picker() -/datum/antagonist/traitor/proc/equip(var/silent = FALSE) +/datum/antagonist/traitor/proc/equip(silent = FALSE) if(traitor_kind == TRAITOR_HUMAN) owner.equip_traitor(employer, silent, src) diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index b1e4d28cb61b..2600f56719ce 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -133,7 +133,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module)) /// Sound played when an ability is unlocked var/unlock_sound - /// Applies upgrades +/// Applies upgrades /datum/AI_Module/proc/upgrade(mob/living/silicon/ai/AI) return diff --git a/code/modules/antagonists/traitor/equipment/contractor.dm b/code/modules/antagonists/traitor/equipment/contractor.dm index 2c3dff433e5b..121430252ef0 100644 --- a/code/modules/antagonists/traitor/equipment/contractor.dm +++ b/code/modules/antagonists/traitor/equipment/contractor.dm @@ -112,7 +112,7 @@ limited = 2 cost = 0 -/datum/contractor_item/contract_reroll/handle_purchase(var/datum/contractor_hub/hub) +/datum/contractor_item/contract_reroll/handle_purchase(datum/contractor_hub/hub) . = ..() if (.) @@ -159,7 +159,7 @@ cost = 2 var/datum/mind/partner_mind = null -/datum/contractor_item/contractor_partner/handle_purchase(var/datum/contractor_hub/hub, mob/living/user) +/datum/contractor_item/contractor_partner/handle_purchase(datum/contractor_hub/hub, mob/living/user) . = ..() if (.) @@ -238,7 +238,7 @@ limited = 2 cost = 3 -/datum/contractor_item/blackout/handle_purchase(var/datum/contractor_hub/hub) +/datum/contractor_item/blackout/handle_purchase(datum/contractor_hub/hub) . = ..() if (.) @@ -246,7 +246,7 @@ priority_announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", 'sound/ai/poweroff.ogg') // Subtract cost, and spawn if it's an item. -/datum/contractor_item/proc/handle_purchase(var/datum/contractor_hub/hub, mob/living/user) +/datum/contractor_item/proc/handle_purchase(datum/contractor_hub/hub, mob/living/user) if (hub.contract_rep >= cost) hub.contract_rep -= cost diff --git a/code/modules/antagonists/traitor/syndicate_contract.dm b/code/modules/antagonists/traitor/syndicate_contract.dm index b7fc2141428c..977cab2987dc 100644 --- a/code/modules/antagonists/traitor/syndicate_contract.dm +++ b/code/modules/antagonists/traitor/syndicate_contract.dm @@ -45,7 +45,7 @@ var/location = pick_list_weighted(WANTED_FILE, "location") wanted_message = "[base] [verb_string] [noun] [location]." -/datum/syndicate_contract/proc/handle_extraction(var/mob/living/user) +/datum/syndicate_contract/proc/handle_extraction(mob/living/user) if (contract.target && contract.dropoff_check(user, contract.target.current)) var/turf/free_location = find_obstruction_free_location(3, user, contract.dropoff) @@ -153,7 +153,7 @@ [C.registered_account.account_balance] cr.", TRUE) // They're off to holding - handle the return timer and give some text about what's going on. -/datum/syndicate_contract/proc/handleVictimExperience(var/mob/living/M) +/datum/syndicate_contract/proc/handleVictimExperience(mob/living/M) // Ship 'em back - dead or alive, 4 minutes wait. // Even if they weren't the target, we're still treating them the same. addtimer(CALLBACK(src, .proc/returnVictim, M), (60 * 10) * 4) @@ -188,7 +188,7 @@ M.confused += 20 // We're returning the victim -/datum/syndicate_contract/proc/returnVictim(var/mob/living/M) +/datum/syndicate_contract/proc/returnVictim(mob/living/M) var/list/possible_drop_loc = list() for (var/turf/possible_drop in contract.dropoff.contents) diff --git a/code/modules/antagonists/xeno/xeno.dm b/code/modules/antagonists/xeno/xeno.dm index 2992c8af6520..21b60b7ec2a1 100644 --- a/code/modules/antagonists/xeno/xeno.dm +++ b/code/modules/antagonists/xeno/xeno.dm @@ -1,4 +1,4 @@ - //XENO TEAM +//XENO TEAM /datum/team/xeno name = "Aliens" /// How many alien queens have already died diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 0026c752e104..aaf520690c08 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -3,21 +3,21 @@ /datum/asset/simple/tgui_common keep_local_name = TRUE assets = list( - "tgui-common.bundle.js" = 'tgui/public/tgui-common.bundle.js', + "tgui-common.bundle.js" = file("tgui/public/tgui-common.bundle.js"), ) /datum/asset/simple/tgui keep_local_name = TRUE assets = list( - "tgui.bundle.js" = 'tgui/public/tgui.bundle.js', - "tgui.bundle.css" = 'tgui/public/tgui.bundle.css', + "tgui.bundle.js" = file("tgui/public/tgui.bundle.js"), + "tgui.bundle.css" = file("tgui/public/tgui.bundle.css"), ) /datum/asset/simple/tgui_panel keep_local_name = TRUE assets = list( - "tgui-panel.bundle.js" = 'tgui/public/tgui-panel.bundle.js', - "tgui-panel.bundle.css" = 'tgui/public/tgui-panel.bundle.css', + "tgui-panel.bundle.js" = file("tgui/public/tgui-panel.bundle.js"), + "tgui-panel.bundle.css" = file("tgui/public/tgui-panel.bundle.css"), ) /datum/asset/simple/headers diff --git a/code/modules/asset_cache/readme.md b/code/modules/asset_cache/readme.md index 82e6bea896c8..b2f8914708bb 100644 --- a/code/modules/asset_cache/readme.md +++ b/code/modules/asset_cache/readme.md @@ -24,14 +24,12 @@ Call .get_url_mappings() to get an associated list with the urls your assets can See the documentation for `/datum/asset_transport` for the backend api the asset datums utilize. -The global variable `SSassets.transport` contains the currently configured transport. - - +The global variable `SSassets.transport` contains the currently configured transport. ### Notes: Because byond browse() calls use non-blocking queues, if your code uses output() (which bypasses all of these queues) to invoke javascript functions you will need to first have the javascript announce to the server it has loaded before trying to invoke js functions. -To make your code work with any CDNs configured by the server, you must make sure assets are referenced from the url returned by `get_url_mappings()` or by asset_transport's `get_asset_url()`. (TGUI also has helpers for this.) If this can not be easily done, you can bypass the cdn using legacy assets, see the simple asset datum for details. +To make your code work with any CDNs configured by the server, you must make sure assets are referenced from the url returned by `get_url_mappings()` or by asset_transport's `get_asset_url()`. (TGUI also has helpers for this.) If this can not be easily done, you can bypass the cdn using legacy assets, see the simple asset datum for details. CSS files that use url() can be made to use the CDN without needing to rewrite all url() calls in code by using the namespaced helper datum. See the documentation for `/datum/asset/simple/namespaced` for details. diff --git a/code/modules/asset_cache/validate_assets.html b/code/modules/asset_cache/validate_assets.html index 9728bb5c285b..fff158d5ac83 100644 --- a/code/modules/asset_cache/validate_assets.html +++ b/code/modules/asset_cache/validate_assets.html @@ -8,22 +8,24 @@ //this is used over window.location because window.location has a character limit in IE. function sendbyond(text) { var xhr = new XMLHttpRequest(); - xhr.open('GET', '?'+text, true); + xhr.open("GET", "?" + text, true); xhr.send(null); } var xhr = new XMLHttpRequest(); - xhr.open('GET', 'asset_data.json', true); - xhr.responseType = 'text'; + xhr.open("GET", "asset_data.json", true); + xhr.responseType = "text"; xhr.onreadystatechange = function () { if (xhr.readyState === 4) { var status = xhr.status; - if (status >= 200 && status < 400) { - sendbyond('asset_cache_preload_data=' + encodeURIComponent(xhr.responseText)); + if (status >= 200 && status < 400) { + sendbyond( + "asset_cache_preload_data=" + + encodeURIComponent(xhr.responseText) + ); } } }; xhr.send(null); - - - + + diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index 0e210966ff2f..b11830ca3d76 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -1,4 +1,4 @@ - /* +/* What are the archived variables for? Calculations are done using the archived variables with the results merged into the regular variables. This prevents race conditions that arise based on the order of tile processing. diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index f9b4be011dfc..5df74432a0ef 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -30,7 +30,7 @@ var/list/min_requirements var/list/max_requirements var/exclude = FALSE //do it this way to allow for addition/removal of reactions midmatch in the future - var/priority = 100 //lower numbers are checked/react later than higher numbers. if two reactions have the same priority they may happen in either order + var/priority = 100 //lower numbers are checked/react later than higher numbers. Should be distinct per-reaction; auxmos breaks when two reactions have the same priority. var/name = "reaction" var/id = "r" @@ -343,7 +343,7 @@ air.set_temperature((temperature*old_heat_capacity + energy_released)/new_heat_capacity) /datum/gas_reaction/genericfire - priority = -3 // very last reaction + priority = -4 // very last reaction name = "Combustion" id = "genericfire" @@ -586,7 +586,7 @@ return REACTING /datum/gas_reaction/nitrylformation //The formation of nitryl. Endothermic. Requires N2O as a catalyst. - priority = 3 + priority = 4 name = "Nitryl formation" id = "nitrylformation" @@ -631,7 +631,7 @@ return ..() /datum/gas_reaction/bzformation //Formation of BZ by combining plasma and tritium at low pressures. Exothermic. - priority = 4 + priority = 5 name = "BZ Gas formation" id = "bzformation" @@ -676,7 +676,7 @@ return ..() /datum/gas_reaction/freonformation - priority = 5 + priority = 6 name = "Freon formation" id = "freonformation" @@ -707,7 +707,7 @@ return REACTING /datum/gas_reaction/stimformation //Stimulum formation follows a strange pattern of how effective it will be at a given temperature, having some multiple peaks and some large dropoffs. Exo and endo thermic. - priority = 5 + priority = 7 name = "Stimulum formation" id = "stimformation" @@ -755,7 +755,7 @@ return ..() /datum/gas_reaction/nobliumformation //Hyper-Noblium formation is extrememly endothermic, but requires high temperatures to start. Due to its high mass, hyper-nobelium uses large amounts of nitrogen and tritium. BZ can be used as a catalyst to make it less endothermic. - priority = 6 + priority = 8 name = "Hyper-Noblium condensation" id = "nobformation" @@ -793,7 +793,7 @@ return ..() /datum/gas_reaction/stim_ball - priority = 7 + priority = 9 name ="Stimulum Energy Ball" id = "stimball" diff --git a/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm b/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm index 74eb746ebe2c..8f1e2cc3548b 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm @@ -19,7 +19,7 @@ return list(turn(dir, 180), dir) ///Used by binary devices to set what the offset will be for each layer -/obj/machinery/atmospherics/components/binary/proc/set_overlay_offset(var/pipe_layer) +/obj/machinery/atmospherics/components/binary/proc/set_overlay_offset(pipe_layer) switch(pipe_layer) if(1, 3, 5) return 1 diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/trinary_devices.dm b/code/modules/atmospherics/machinery/components/trinary_devices/trinary_devices.dm index 13fcd05d0ae6..c587b1b1b630 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/trinary_devices.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/trinary_devices.dm @@ -47,7 +47,7 @@ Housekeeping and pipe network stuff return list(node1_connect, node2_connect, node3_connect) -/obj/machinery/atmospherics/components/trinary/proc/set_overlay_offset(var/pipe_layer) +/obj/machinery/atmospherics/components/trinary/proc/set_overlay_offset(pipe_layer) switch(pipe_layer) if(1) return 1 diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index c164d6cb10df..8934d14376dc 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -145,7 +145,7 @@ scrub(tile) return TRUE -/obj/machinery/atmospherics/components/unary/vent_scrubber/proc/scrub(var/turf/tile) +/obj/machinery/atmospherics/components/unary/vent_scrubber/proc/scrub(turf/tile) if(!istype(tile)) return FALSE var/datum/gas_mixture/environment = tile.return_air() diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm index 90d6de8ed227..44ef0b7fa62a 100644 --- a/code/modules/atmospherics/machinery/portable/scrubber.dm +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -39,7 +39,7 @@ var/turf/T = get_turf(src) scrub(T.return_air()) -/obj/machinery/portable_atmospherics/scrubber/proc/scrub(var/datum/gas_mixture/mixture) +/obj/machinery/portable_atmospherics/scrubber/proc/scrub(datum/gas_mixture/mixture) if(air_contents.return_pressure() >= overpressure_m * ONE_ATMOSPHERE) return diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 52093a6344ae..84004aed2448 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -263,7 +263,7 @@ addtimer(CALLBACK(src, .proc/clear_cooldown, body.ckey), respawn_cooldown, TIMER_UNIQUE) body.dust() -/obj/machinery/capture_the_flag/proc/clear_cooldown(var/ckey) +/obj/machinery/capture_the_flag/proc/clear_cooldown(ckey) recently_dead_ckeys -= ckey /obj/machinery/capture_the_flag/proc/spawn_team_member(client/new_team_member) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index b6fdc7e7003a..4de1b424f113 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -4,10 +4,10 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation) GLOBAL_LIST_EMPTY(gateway_destinations) /** - * Corresponds to single entry in gateway control. - * - * Will NOT be added automatically to GLOB.gateway_destinations list. - */ + * Corresponds to single entry in gateway control. + * + * Will NOT be added automatically to GLOB.gateway_destinations list. + */ /datum/gateway_destination var/name = "Unknown Destination" var/wait = 0 /// How long after roundstart this destination becomes active diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 1803e905fd7d..ed9293c64bc7 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -221,7 +221,7 @@ user.dropItemToGround(src) -/obj/item/dice/d20/fate/proc/effect(var/mob/living/carbon/human/user,roll) +/obj/item/dice/d20/fate/proc/effect(mob/living/carbon/human/user,roll) var/turf/T = get_turf(src) switch(roll) if(1) diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 664a90632163..e35cbcb3d848 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -250,7 +250,7 @@ /obj/item/paper/crumpled/ruins/snowdin/foreshadowing name = "scribbled note" info = {"Something's gone VERY wrong here. Jouslen has been mumbling about some weird shit in his cabin during the night and he seems always tired when we're working. I tried to confront him about it and he blew up on me, - telling me to mind my own business. I reported him to the officer, said he'd look into it. We only got another 2 months here before we're pulled for another assignment, so this shit can't go any quicker..."} + telling me to mind my own business. I reported him to the officer, said he'd look into it. We only got another 2 months here before we're pulled for another assignment, so this shit can't go any quicker..."} /obj/item/paper/crumpled/ruins/snowdin/misc1 name = "Mission Prologue" @@ -260,8 +260,8 @@ /obj/item/paper/crumpled/ruins/snowdin/dontdeadopeninside name = "scribbled note" info = {"If you're reading this: GET OUT! The mining go on here has unearthed something that was once-trapped by the layers of ice on this hell-hole. The overseer and Jouslen have gone missing. The officer is - keeping the rest of us on lockdown and I swear to god I keep hearing strange noises outside the walls at night. The gateway link has gone dead and without a supply of resources from Central, we're left - for dead here. We haven't heard anything back from the mining squad either, so I can only assume whatever the fuck they unearthed got them first before coming for us. I don't want to die here..."} + keeping the rest of us on lockdown and I swear to god I keep hearing strange noises outside the walls at night. The gateway link has gone dead and without a supply of resources from Central, we're left + for dead here. We haven't heard anything back from the mining squad either, so I can only assume whatever the fuck they unearthed got them first before coming for us. I don't want to die here..."} /obj/item/paper/fluff/awaymissions/snowdin/saw_usage name = "SAW Usage" @@ -276,19 +276,19 @@ /obj/item/paper/fluff/awaymissions/snowdin/profile/overseer name = "Personnel Record AOP#01" info = {"
Personnel Log


Name:Caleb Reed
Age:38
Gender:Male
On-Site Profession:Outpost Overseer

Information

Caleb Reed lead several expeditions - among uncharted planets in search of plasma for Nanotrasen, scouring from hot savanas to freezing arctics. Track record is fairly clean with only incidient including the loss of two researchers during the - expedition of _______, where mis-used of explosive ordinance for tunneling causes a cave-in."} + among uncharted planets in search of plasma for Nanotrasen, scouring from hot savanas to freezing arctics. Track record is fairly clean with only incidient including the loss of two researchers during the + expedition of _______, where mis-used of explosive ordinance for tunneling causes a cave-in."} /obj/item/paper/fluff/awaymissions/snowdin/profile/sec1 name = "Personnel Record AOP#02" info = {"
Personnel Log


Name:James Reed
Age:43
Gender:Male
On-Site Profession:Outpost Security

Information

James Reed has been a part - of Nanotrasen's security force for over 20 years, first joining in 22XX. A clean record and unwavering loyalty to the corperation through numerous deployments to various sites makes him a valuable asset to Natotrasen - when it comes to keeping the peace while prioritizing Nanotrasen privacy matters. "} + of Nanotrasen's security force for over 20 years, first joining in 22XX. A clean record and unwavering loyalty to the corperation through numerous deployments to various sites makes him a valuable asset to Natotrasen + when it comes to keeping the peace while prioritizing Nanotrasen privacy matters. "} /obj/item/paper/fluff/awaymissions/snowdin/profile/hydro1 name = "Personnel Record AOP#03" info = {"
Personnel Log


Name:Katherine Esterdeen
Age:27
Gender:Female
On-Site Profession:Outpost Botanist

Information

Katherine Esterdeen is a recent - graduate with a major in Botany and a PH.D in Ecology. Having a clean record and eager to work, Esterdeen seems to be the right fit for maintaining plants in the middle of nowhere."} + graduate with a major in Botany and a PH.D in Ecology. Having a clean record and eager to work, Esterdeen seems to be the right fit for maintaining plants in the middle of nowhere."} /obj/item/paper/fluff/awaymissions/snowdin/profile/engi1 name = "Personnel Record AOP#04" @@ -316,12 +316,12 @@ /obj/item/paper/fluff/awaymissions/snowdin/mining name = "Assignment Notice" info = {"This cold-ass planet is the new-age equivalent of striking gold. Huge deposits of plasma and literal streams of plasma run through the caverns under all this ice and we're here to mine it all.\ - Nanotrasen pays by the pound, so get minin' boys!"} + Nanotrasen pays by the pound, so get minin' boys!"} /obj/item/paper/crumpled/ruins/snowdin/lootstructures name = "scribbled note" info = {"There's some ruins scattered along the cavern, their walls seem to be made of some sort of super-condensed mixture of ice and snow. We've already barricaded up the ones we've found so far, - since we keep hearing some strange noises from inside. Besides, what sort of fool would wrecklessly run into ancient ruins full of monsters for some old gear, anyway?"} + since we keep hearing some strange noises from inside. Besides, what sort of fool would wrecklessly run into ancient ruins full of monsters for some old gear, anyway?"} /obj/item/paper/crumpled/ruins/snowdin/shovel name = "shoveling duties" @@ -511,7 +511,7 @@ /obj/item/organ/brain/alien = 17, /obj/item/dualsaber = 15, /obj/item/organ/heart/demon = 7, - /obj/item/gun/ballistic/automatic/c20r/unrestricted = 16, + /obj/item/gun/ballistic/automatic/smg/c20r/unrestricted = 16, /obj/item/gun/magic/wand/resurrection/inert = 15, /obj/item/gun/magic/wand/resurrection = 10, /obj/item/uplink/old = 2, diff --git a/code/modules/awaymissions/mission_code/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm index 11d99108a5fc..dee4def256b0 100644 --- a/code/modules/awaymissions/mission_code/spacebattle.dm +++ b/code/modules/awaymissions/mission_code/spacebattle.dm @@ -43,7 +43,7 @@ /mob/living/simple_animal/hostile/syndicate/ranged/spacebattle loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, - /obj/item/gun/ballistic/automatic/c20r, + /obj/item/gun/ballistic/automatic/smg/c20r, /obj/item/shield/energy) /mob/living/simple_animal/hostile/syndicate/melee/spacebattle diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index 09d59ce6d3d4..8866de397d27 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -47,9 +47,9 @@ clumsy_check = 0 //No sense in having a harmless gun blow up in the clowns face //Syndicate sub-machine guns. -/obj/item/gun/ballistic/automatic/c20r/sc_c20r +/obj/item/gun/ballistic/automatic/smg/c20r/sc_c20r -/obj/item/gun/ballistic/automatic/c20r/sc_c20r/Initialize() +/obj/item/gun/ballistic/automatic/smg/c20r/sc_c20r/Initialize() . = ..() for(var/ammo in magazine.stored_ammo) if(prob(95)) //95% chance diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index 9c8053d8c0bf..33615f160f97 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -31,7 +31,7 @@ requires_power = FALSE - ////////// wildwest papers +////////// wildwest papers /obj/item/paper/fluff/awaymissions/wildwest/grinder info = "meat grinder requires sacri" diff --git a/code/modules/buildmode/README.md b/code/modules/buildmode/README.md index 1bdb6e07584c..9f4b3eec27c6 100644 --- a/code/modules/buildmode/README.md +++ b/code/modules/buildmode/README.md @@ -16,200 +16,200 @@ Implementer of buildmode behaviors. Existing varieties: -+ Basic +- Basic - **Description**: + **Description**: - Allows creation of simple structures consisting of floors, walls, windows, and airlocks. + Allows creation of simple structures consisting of floors, walls, windows, and airlocks. - **Controls**: + **Controls**: - + *Left click a turf*: - - "Upgrades" the turf based on the following rules below: + - _Left click a turf_: - + Space -> Tiled floor - + Simulated floor -> Regular wall - + Wall -> Reinforced wall - - + *Right click a turf*: + "Upgrades" the turf based on the following rules below: - "Downgrades" the turf based on the following rules below: + - Space -> Tiled floor + - Simulated floor -> Regular wall + - Wall -> Reinforced wall - + Reinforced wall -> Regular wall - + Wall -> Tiled floor - + Simulated floor -> Space - - + *Right click an object*: + - _Right click a turf_: - Deletes the clicked object. + "Downgrades" the turf based on the following rules below: - + *Alt+Left click a location*: + - Reinforced wall -> Regular wall + - Wall -> Tiled floor + - Simulated floor -> Space - Places an airlock at the clicked location. - - + *Ctrl+Left click a location*: + - _Right click an object_: - Places a window at the clicked location. + Deletes the clicked object. -+ Advanced + - _Alt+Left click a location_: - **Description**: + Places an airlock at the clicked location. - Creates an instance of a configurable atom path where you click. + - _Ctrl+Left click a location_: - **Controls**: + Places a window at the clicked location. - + *Right click on the mode selector*: +- Advanced - Choose a path to spawn. - - + *Left click a location* (requires chosen path): + **Description**: - Place an instance of the chosen path at the location. + Creates an instance of a configurable atom path where you click. - + *Right click an object*: + **Controls**: - Delete the object. + - _Right click on the mode selector_: -+ Fill + Choose a path to spawn. - **Description**: + - _Left click a location_ (requires chosen path): - Creates an instance of an atom path on every tile in a chosen region. + Place an instance of the chosen path at the location. - With a special control input, instead deletes everything within the region. + - _Right click an object_: - **Controls**: + Delete the object. - + *Right click on the mode selector*: +- Fill - Choose a path to spawn. + **Description**: - + *Left click on a region* (requires chosen path): + Creates an instance of an atom path on every tile in a chosen region. - Fill the region with the chosen path. + With a special control input, instead deletes everything within the region. - + *Alt+Left click on a region*: + **Controls**: - Deletes everything within the region. + - _Right click on the mode selector_: - + *Right click during region selection*: + Choose a path to spawn. - Cancel region selection. + - _Left click on a region_ (requires chosen path): -+ Copy + Fill the region with the chosen path. - **Description**: - - Take an existing object in the world, and place duplicates with identical attributes where you click. + - _Alt+Left click on a region_: - May not always work nicely - "deep" variables such as lists or datums may malfunction. + Deletes everything within the region. - **Controls**: + - _Right click during region selection_: - + *Right click an existing object*: + Cancel region selection. - Select the clicked object as a template. +- Copy - + *Left click a location* (Requires a selected object as template): + **Description**: - Place a duplicate of the template at the clicked location. + Take an existing object in the world, and place duplicates with identical attributes where you click. -+ Area Edit + May not always work nicely - "deep" variables such as lists or datums may malfunction. - **Description**: + **Controls**: - Modifies and creates areas. + - _Right click an existing object_: - The active area will be highlighted in yellow. + Select the clicked object as a template. - **Controls**: + - _Left click a location_ (Requires a selected object as template): - + *Right click the mode selector*: + Place a duplicate of the template at the clicked location. - Create a new area, and make it active. +- Area Edit - + *Right click an existing area*: + **Description**: - Make the clicked area active. + Modifies and creates areas. - + *Left click a turf*: + The active area will be highlighted in yellow. - When an area is active, adds the turf to the active area. + **Controls**: -+ Var Edit + - _Right click the mode selector_: - **Description**: + Create a new area, and make it active. - Allows for setting and resetting variables of objects with a click. + - _Right click an existing area_: - If the object does not have the var, will do nothing and print a warning message. + Make the clicked area active. - **Controls**: + - _Left click a turf_: - + *Right click the mode selector*: + When an area is active, adds the turf to the active area. - Choose which variable to set, and what to set it to. +- Var Edit - + *Left click an atom*: + **Description**: - Change the clicked atom's variables as configured. - - + *Right click an atom*: + Allows for setting and resetting variables of objects with a click. - Reset the targeted variable to its original value in the code. + If the object does not have the var, will do nothing and print a warning message. -+ Map Generator + **Controls**: - **Description**: + - _Right click the mode selector_: - Fills rectangular regions with algorithmically generated content. Right click during region selection to cancel. + Choose which variable to set, and what to set it to. - See the `procedural_mapping` module for the generators themselves. + - _Left click an atom_: - **Controls**: + Change the clicked atom's variables as configured. - + *Right-click on the mode selector*: - - Select a map generator from all the generators present in the codebase. - - + *Left click two corners of an area*: + - _Right click an atom_: - Use the generator to populate the region. + Reset the targeted variable to its original value in the code. - + *Right click during region selection*: +- Map Generator - Cancel region selection. + **Description**: -+ Throwing + Fills rectangular regions with algorithmically generated content. Right click during region selection to cancel. - **Description**: + See the `procedural_mapping` module for the generators themselves. - Select an object with left click, and right click to throw it towards where you clicked. + **Controls**: - **Controls**: + - _Right-click on the mode selector_: - + *Left click on a movable atom*: - - Select the atom for throwing. - - + *Right click on a location*: + Select a map generator from all the generators present in the codebase. - Throw the selected atom towards that location. + - _Left click two corners of an area_: -+ Boom + Use the generator to populate the region. - **Description**: + - _Right click during region selection_: - Make explosions where you click. + Cancel region selection. - **Controls**: +- Throwing - + *Right click the mode selector*: - - Configure the explosion size. + **Description**: - + *Left click a location*: - - Cause an explosion where you clicked. \ No newline at end of file + Select an object with left click, and right click to throw it towards where you clicked. + + **Controls**: + + - _Left click on a movable atom_: + + Select the atom for throwing. + + - _Right click on a location_: + + Throw the selected atom towards that location. + +- Boom + + **Description**: + + Make explosions where you click. + + **Controls**: + + - _Right click the mode selector_: + + Configure the explosion size. + + - _Left click a location_: + + Cause an explosion where you clicked. diff --git a/code/modules/buildmode/bm_mode.dm b/code/modules/buildmode/bm_mode.dm index 5bd5f079fa4b..12cc2c0c36c6 100644 --- a/code/modules/buildmode/bm_mode.dm +++ b/code/modules/buildmode/bm_mode.dm @@ -70,10 +70,9 @@ cornerB = null /datum/buildmode_mode/proc/handle_click(client/c, params, object) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") + var/list/modifiers = params2list(params) if(use_corner_selection) - if(left_click) + if(LAZYACCESS(modifiers, LEFT_CLICK)) if(!cornerA) cornerA = select_tile(get_turf(object), AREASELECT_CORNERA) return diff --git a/code/modules/buildmode/buttons.dm b/code/modules/buildmode/buttons.dm index 5c5c0000d1b3..25132f957a96 100644 --- a/code/modules/buildmode/buttons.dm +++ b/code/modules/buildmode/buttons.dm @@ -18,12 +18,12 @@ screen_loc = "NORTH,WEST" /atom/movable/screen/buildmode/mode/Click(location, control, params) - var/list/pa = params2list(params) - - if(pa.Find("left")) + var/list/modifiers = params2list(params) + if(LAZYACCESS(modifiers, LEFT_CLICK)) bd.toggle_modeswitch() - else if(pa.Find("right")) + else if(LAZYACCESS(modifiers, RIGHT_CLICK)) bd.mode.change_settings(usr.client) + update_icon() return 1 diff --git a/code/modules/buildmode/submodes/advanced.dm b/code/modules/buildmode/submodes/advanced.dm index d841ca26e340..4a0be94a878c 100644 --- a/code/modules/buildmode/submodes/advanced.dm +++ b/code/modules/buildmode/submodes/advanced.dm @@ -30,10 +30,10 @@ return /datum/buildmode_mode/advanced/handle_click(client/c, params, obj/object) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") - var/right_click = pa.Find("right") - var/alt_click = pa.Find("alt") + var/list/modifiers = params2list(params) + var/left_click = LAZYACCESS(modifiers, LEFT_CLICK) + var/right_click = LAZYACCESS(modifiers, RIGHT_CLICK) + var/alt_click = LAZYACCESS(modifiers, ALT_CLICK) if(left_click && alt_click) if (istype(object, /turf) || istype(object, /obj) || istype(object, /mob)) diff --git a/code/modules/buildmode/submodes/area_edit.dm b/code/modules/buildmode/submodes/area_edit.dm index 19f536e07371..039f2897a888 100644 --- a/code/modules/buildmode/submodes/area_edit.dm +++ b/code/modules/buildmode/submodes/area_edit.dm @@ -43,11 +43,9 @@ areaimage.loc = storedarea // color our area /datum/buildmode_mode/area_edit/handle_click(client/c, params, object) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") - var/right_click = pa.Find("right") + var/list/modifiers = params2list(params) - if(left_click) + if(LAZYACCESS(modifiers, LEFT_CLICK)) if(!storedarea) to_chat(c, "Configure or select the area you want to paint first!") return @@ -55,7 +53,7 @@ if(get_area(T) != storedarea) log_admin("Build Mode: [key_name(c)] added [AREACOORD(T)] to [storedarea]") storedarea.contents.Add(T) - else if(right_click) + else if(LAZYACCESS(modifiers, RIGHT_CLICK)) var/turf/T = get_turf(object) storedarea = get_area(T) areaimage.loc = storedarea // color our area diff --git a/code/modules/buildmode/submodes/basic.dm b/code/modules/buildmode/submodes/basic.dm index fe3d831d819b..b1c4009ed91e 100644 --- a/code/modules/buildmode/submodes/basic.dm +++ b/code/modules/buildmode/submodes/basic.dm @@ -13,11 +13,12 @@ to_chat(c, "***********************************************************") /datum/buildmode_mode/basic/handle_click(client/c, params, obj/object) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") - var/right_click = pa.Find("right") - var/ctrl_click = pa.Find("ctrl") - var/alt_click = pa.Find("alt") + var/list/modifiers = params2list(params) + + var/left_click = LAZYACCESS(modifiers, LEFT_CLICK) + var/right_click = LAZYACCESS(modifiers, RIGHT_CLICK) + var/alt_click = LAZYACCESS(modifiers, ALT_CLICK) + var/ctrl_click = LAZYACCESS(modifiers, CTRL_CLICK) if(istype(object,/turf) && left_click && !alt_click && !ctrl_click) var/turf/T = object diff --git a/code/modules/buildmode/submodes/boom.dm b/code/modules/buildmode/submodes/boom.dm index 2b2bfe2239e5..a8460956a0cf 100644 --- a/code/modules/buildmode/submodes/boom.dm +++ b/code/modules/buildmode/submodes/boom.dm @@ -31,9 +31,8 @@ flames = -1 /datum/buildmode_mode/boom/handle_click(client/c, params, obj/object) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") + var/list/modifiers = params2list(params) - if(left_click) + if(LAZYACCESS(modifiers, LEFT_CLICK)) explosion(object, devastation, heavy, light, flash, FALSE, TRUE, flames) log_admin("Build Mode: [key_name(c)] caused an explosion(dev=[devastation], hvy=[heavy], lgt=[light], flash=[flash], flames=[flames]) at [AREACOORD(object)]") diff --git a/code/modules/buildmode/submodes/copy.dm b/code/modules/buildmode/submodes/copy.dm index 4aed8ac700d1..7f189923b145 100644 --- a/code/modules/buildmode/submodes/copy.dm +++ b/code/modules/buildmode/submodes/copy.dm @@ -13,16 +13,14 @@ to_chat(c, "***********************************************************") /datum/buildmode_mode/copy/handle_click(client/c, params, obj/object) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") - var/right_click = pa.Find("right") + var/list/modifiers = params2list(params) - if(left_click) + if(LAZYACCESS(modifiers, LEFT_CLICK)) var/turf/T = get_turf(object) if(stored) DuplicateObject(stored, perfectcopy=1, sameloc=0,newloc=T) log_admin("Build Mode: [key_name(c)] copied [stored] to [AREACOORD(object)]") - else if(right_click) + else if(LAZYACCESS(modifiers, RIGHT_CLICK)) if(ismovable(object)) // No copying turfs for now. to_chat(c, "[object] set as template.") stored = object diff --git a/code/modules/buildmode/submodes/fill.dm b/code/modules/buildmode/submodes/fill.dm index 2a3079450a23..c02c51835653 100644 --- a/code/modules/buildmode/submodes/fill.dm +++ b/code/modules/buildmode/submodes/fill.dm @@ -33,12 +33,10 @@ ..() /datum/buildmode_mode/fill/handle_selected_area(client/c, params) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") - var/alt_click = pa.Find("alt") + var/list/modifiers = params2list(params) - if(left_click) //rectangular - if(alt_click) + if(LAZYACCESS(modifiers, LEFT_CLICK)) //rectangular + if(LAZYACCESS(modifiers, ALT_CLICK)) var/list/deletion_area = block(get_turf(cornerA),get_turf(cornerB)) for(var/beep in deletion_area) var/turf/T = beep diff --git a/code/modules/buildmode/submodes/map_export.dm b/code/modules/buildmode/submodes/map_export.dm index fd642c14c27d..983801154afa 100644 --- a/code/modules/buildmode/submodes/map_export.dm +++ b/code/modules/buildmode/submodes/map_export.dm @@ -25,11 +25,10 @@ to_chat(c, "***********************************************************") /datum/buildmode_mode/export/handle_selected_area(client/c, params) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") + var/list/modifiers = params2list(params) //Ensure the selection is actually done - if(!left_click) + if(!LAZYACCESS(modifiers, LEFT_CLICK)) to_chat(usr, "Invalid selection.") return diff --git a/code/modules/buildmode/submodes/throwing.dm b/code/modules/buildmode/submodes/throwing.dm index 49919dbf46cf..c2e6a0029c50 100644 --- a/code/modules/buildmode/submodes/throwing.dm +++ b/code/modules/buildmode/submodes/throwing.dm @@ -14,16 +14,14 @@ to_chat(c, "***********************************************************") /datum/buildmode_mode/throwing/handle_click(client/c, params, obj/object) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") - var/right_click = pa.Find("right") + var/list/modifiers = params2list(params) - if(left_click) + if(LAZYACCESS(modifiers, LEFT_CLICK)) if(isturf(object)) return throw_atom = object to_chat(c, "Selected object '[throw_atom]'") - if(right_click) + if(LAZYACCESS(modifiers, RIGHT_CLICK)) if(throw_atom) throw_atom.throw_at(object, 10, 1, c.mob) log_admin("Build Mode: [key_name(c)] threw [throw_atom] at [object] ([AREACOORD(object)])") diff --git a/code/modules/buildmode/submodes/variable_edit.dm b/code/modules/buildmode/submodes/variable_edit.dm index 4d9fa0f4b024..b03740e653bb 100644 --- a/code/modules/buildmode/submodes/variable_edit.dm +++ b/code/modules/buildmode/submodes/variable_edit.dm @@ -35,14 +35,12 @@ valueholder = temp_value["value"] /datum/buildmode_mode/varedit/handle_click(client/c, params, obj/object) - var/list/pa = params2list(params) - var/left_click = pa.Find("left") - var/right_click = pa.Find("right") + var/list/modifiers = params2list(params) if(isnull(varholder)) to_chat(c, "Choose a variable to modify first.") return - if(left_click) + if(LAZYACCESS(modifiers, LEFT_CLICK)) if(object.vars.Find(varholder)) if(object.vv_edit_var(varholder, valueholder) == FALSE) to_chat(c, "Your edit was rejected by the object.") @@ -50,7 +48,7 @@ log_admin("Build Mode: [key_name(c)] modified [object.name]'s [varholder] to [valueholder]") else to_chat(c, "[initial(object.name)] does not have a var called '[varholder]'") - if(right_click) + if(LAZYACCESS(modifiers, RIGHT_CLICK)) if(object.vars.Find(varholder)) var/reset_value = initial(object.vars[varholder]) if(object.vv_edit_var(varholder, reset_value) == FALSE) diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index a75b4d3c373b..c73c8d4c8dc6 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -444,24 +444,27 @@ /datum/centcom_podlauncher/ui_close() //Uses the destroy() proc. When the user closes the UI, we clean up the temp_pod and supplypod_selector variables. qdel(src) -/datum/centcom_podlauncher/proc/updateCursor(var/launching) //Update the moues of the user +/datum/centcom_podlauncher/proc/updateCursor(launching) //Update the moues of the user if (holder) //Check to see if we have a client if (launching) //If the launching param is true, we give the user new mouse icons. holder.mouse_up_icon = 'icons/effects/mouse_pointers/supplypod_target.dmi' //Icon for when mouse is released holder.mouse_down_icon = 'icons/effects/mouse_pointers/supplypod_down_target.dmi' //Icon for when mouse is pressed - holder.mouse_pointer_icon = holder.mouse_up_icon //Icon for idle mouse (same as icon for when released) + holder.mouse_override_icon = holder.mouse_up_icon //Icon for idle mouse (same as icon for when released) + holder.mouse_pointer_icon = holder.mouse_override_icon holder.click_intercept = src //Create a click_intercept so we know where the user is clicking else var/mob/M = holder.mob holder.mouse_up_icon = null holder.mouse_down_icon = null + holder.mouse_override_icon = null holder.click_intercept = null if (M) M.update_mouse_pointer() //set the moues icons to null, then call update_moues_pointer() which resets them to the correct values based on what the mob is doing (in a mech, holding a spell, etc)() /datum/centcom_podlauncher/proc/InterceptClickOn(user,params,atom/target) //Click Intercept so we know where to send pods where the user clicks - var/list/pa = params2list(params) - var/left_click = pa.Find("left") + var/list/modifiers = params2list(params) + + var/left_click = LAZYACCESS(modifiers, LEFT_CLICK) if (launcherActivated) //Clicking on UI elements shouldn't launch a pod if(istype(target,/atom/movable/screen)) @@ -597,7 +600,7 @@ qdel(selector) //Delete the selector effect . = ..() -/datum/centcom_podlauncher/proc/supplypod_punish_log(var/list/whoDyin) +/datum/centcom_podlauncher/proc/supplypod_punish_log(list/whoDyin) var/podString = effectBurst ? "5 pods" : "a pod" var/whomString = "" if (LAZYLEN(whoDyin)) diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index 0d640f960cf0..be3ec7a26599 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -1,22 +1,22 @@ /* How it works: - The shuttle arrives at CentCom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored. +The shuttle arrives at CentCom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored. - Each object in the loop is checked for applies_to() of various export datums, except the invalid ones. +Each object in the loop is checked for applies_to() of various export datums, except the invalid ones. */ /* The rule in figuring out item export cost: - Export cost of goods in the shipping crate must be always equal or lower than: +Export cost of goods in the shipping crate must be always equal or lower than: packcage cost - crate cost - manifest cost - Crate cost is 500cr for a regular plasteel crate and 100cr for a large wooden one. Manifest cost is always 200cr. - This is to avoid easy cargo points dupes. +Crate cost is 500cr for a regular plasteel crate and 100cr for a large wooden one. Manifest cost is always 200cr. +This is to avoid easy cargo points dupes. Credit dupes that require a lot of manual work shouldn't be removed, unless they yield too much profit for too little work. - For example, if some player buys metal and glass sheets and uses them to make and sell reinforced glass: +For example, if some player buys metal and glass sheets and uses them to make and sell reinforced glass: - 100 glass + 50 metal -> 100 reinforced glass - (1500cr -> 1600cr) +100 glass + 50 metal -> 100 reinforced glass +(1500cr -> 1600cr) - then the player gets the profit from selling his own wasted time. +then the player gets the profit from selling his own wasted time. */ // Simple holder datum to pass export results around diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index bad221c3ac2a..bbe73991f7ef 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -39,7 +39,7 @@ /datum/export/weapon/wt550 cost = 300 unit_name = "WT-550 automatic rifle" - export_types = list(/obj/item/gun/ballistic/automatic/wt550) + export_types = list(/obj/item/gun/ballistic/automatic/smg/wt550) /datum/export/weapon/shotgun cost = 300 diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index cde4a57db341..ddde960b08c0 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -836,7 +836,7 @@ name = "WT-550 Auto Rifle Single-Pack" desc = "Contains one high-powered, semiautomatic rifles chambered in 4.6x30mm. Requires Armory access to open." cost = 6000 - contains = list(/obj/item/gun/ballistic/automatic/wt550) + contains = list(/obj/item/gun/ballistic/automatic/smg/wt550) small_item = TRUE dangerous = TRUE @@ -844,8 +844,8 @@ name = "WT-550 Auto Rifle Crate" desc = "Contains two high-powered, semiautomatic rifles chambered in 4.6x30mm. Requires Armory access to open." cost = 10500 - contains = list(/obj/item/gun/ballistic/automatic/wt550, - /obj/item/gun/ballistic/automatic/wt550) + contains = list(/obj/item/gun/ballistic/automatic/smg/wt550, + /obj/item/gun/ballistic/automatic/smg/wt550) crate_name = "auto rifle crate" dangerous = TRUE @@ -893,7 +893,7 @@ /datum/supply_pack/engineering/atmossuit name = "Atmospherics Hardsuit Crate" - desc = "The iconic hardsuit of Nanotransen's Atmosphere Corps, this hardsuit is known across space as a symbol of defiance in the face of sudden decompression. Smells faintly of plasma. Requires engineering access to open." + desc = "The iconic hardsuit of Nanotrasen's Atmosphere Corps, this hardsuit is known across space as a symbol of defiance in the face of sudden decompression. Smells faintly of plasma. Requires engineering access to open." cost = 12000 access = ACCESS_ATMOSPHERICS contains = list(/obj/item/clothing/suit/space/hardsuit/engine/atmos) @@ -1930,15 +1930,19 @@ /datum/supply_pack/service/hvyminer name = "Heavy Mining Kit" - desc = "A set of supplementary premium equipment for particularly challenging frontier expeditions. Comes equipped with an enhanced mining suit, crusher, launch boots, and two emerency stimulant injectors." - cost = 7500 + desc = "A set of premium equipment for particularly challenging frontier mining expeditions. Comes equipped with a variety of heavy-duty equipment for self-defense and resource extraction." + cost = 10000 access = ACCESS_QM crate_name = "EXOCON Heavy Operations Kit" crate_type = /obj/structure/closet/crate/secure/exo contains = list(/obj/item/clothing/suit/space/hardsuit/mining/heavy, - /obj/item/clothing/shoes/bhop, + /obj/item/clothing/suit/space/hardsuit/mining/heavy, /obj/item/reagent_containers/hypospray/medipen/stimpack/crisis, /obj/item/reagent_containers/hypospray/medipen/stimpack/crisis, + /obj/item/deepcorecapsule, + /obj/item/deepcorecapsule, + /obj/item/survivalcapsule, + /obj/item/pinpointer/deepcore/advanced, /obj/item/kinetic_crusher) /datum/supply_pack/service/noslipfloor diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm index 23021567d51b..31cb4a7f82a1 100644 --- a/code/modules/cargo/supplypod_beacon.dm +++ b/code/modules/cargo/supplypod_beacon.dm @@ -12,7 +12,7 @@ var/ready = FALSE var/launched = FALSE -/obj/item/supplypod_beacon/proc/update_status(var/consoleStatus) +/obj/item/supplypod_beacon/proc/update_status(consoleStatus) switch(consoleStatus) if (SP_LINKED) linked = TRUE diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm index a1314fb4556e..6357229e02db 100644 --- a/code/modules/client/client_colour.dm +++ b/code/modules/client/client_colour.dm @@ -4,17 +4,17 @@ #define PRIORITY_LOW 1000 /** - * Client Colour Priority System By RemieRichards (then refactored by another contributor) - * A System that gives finer control over which client.colour value to display on screen - * so that the "highest priority" one is always displayed as opposed to the default of - * "whichever was set last is displayed". - * - * Refactored to allow multiple overlapping client colours - * (e.g. wearing blue glasses under a yellow visor, even though the result is a little unsatured.) - * As well as some support for animated colour transitions. - * - * Define subtypes of this datum - */ + * Client Colour Priority System By RemieRichards (then refactored by another contributor) + * A System that gives finer control over which client.colour value to display on screen + * so that the "highest priority" one is always displayed as opposed to the default of + * "whichever was set last is displayed". + * + * Refactored to allow multiple overlapping client colours + * (e.g. wearing blue glasses under a yellow visor, even though the result is a little unsatured.) + * As well as some support for animated colour transitions. + * + * Define subtypes of this datum + */ /datum/client_colour ///Any client.color-valid value var/colour = "" @@ -56,9 +56,9 @@ owner.update_client_colour() /** - * Adds an instance of colour_type to the mob's client_colours list - * colour_type - a typepath (subtyped from /datum/client_colour) - */ + * Adds an instance of colour_type to the mob's client_colours list + * colour_type - a typepath (subtyped from /datum/client_colour) + */ /mob/proc/add_client_colour(colour_type) if(!ispath(colour_type, /datum/client_colour) || QDELING(src)) return @@ -72,9 +72,9 @@ return colour /** - * Removes an instance of colour_type from the mob's client_colours list - * colour_type - a typepath (subtyped from /datum/client_colour) - */ + * Removes an instance of colour_type from the mob's client_colours list + * colour_type - a typepath (subtyped from /datum/client_colour) + */ /mob/proc/remove_client_colour(colour_type) if(!ispath(colour_type, /datum/client_colour)) return @@ -86,11 +86,11 @@ break /** - * Gets the resulting colour/tone from client_colours. - * In the case of multiple colours, they'll be converted to RGBA matrices for compatibility, - * summed together, and then each element divided by the number of matrices. (except we do this with lists because byond) - * target is the target variable. - */ + * Gets the resulting colour/tone from client_colours. + * In the case of multiple colours, they'll be converted to RGBA matrices for compatibility, + * summed together, and then each element divided by the number of matrices. (except we do this with lists because byond) + * target is the target variable. + */ #define MIX_CLIENT_COLOUR(target)\ var/_our_colour;\ var/_number_colours = 0;\ @@ -127,9 +127,9 @@ /** - * Resets the mob's client.color to null, and then reapplies a new color based - * on the client_colour datums it currently has. - */ + * Resets the mob's client.color to null, and then reapplies a new color based + * on the client_colour datums it currently has. + */ /mob/proc/update_client_colour() if(!client) return diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 01be64d85a96..f6c306a411af 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -13,6 +13,8 @@ var/datum/admins/holder = null ///Needs to implement InterceptClickOn(user,params,atom) proc var/datum/click_intercept = null + ///Time when the click was intercepted + var/click_intercept_time = 0 ///Used for admin AI interaction var/AI_Interact = FALSE @@ -71,6 +73,8 @@ var/mouse_up_icon = null ///used to make a special mouse cursor, this one for mouse up icon var/mouse_down_icon = null + ///used to override the mouse cursor so it doesnt get reset + var/mouse_override_icon = null ///Used for ip intel checking to identify evaders, disabled because of issues with traffic var/ip_intel = "Disabled" @@ -187,3 +191,6 @@ /// If the client is currently under the restrictions of the interview system var/interviewee = FALSE + /// Used by SSserver_maint to detect if a client is newly AFK. + var/last_seen_afk = 0 + diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 94e1634e6d48..38692a139da1 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -394,7 +394,9 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(holder) add_admin_verbs() - to_chat(src, get_message_output("memo")) + var/memo_message = get_message_output("memo") + if(memo_message) + to_chat(src, memo_message) adminGreet() if(mentor && !holder) //WS Edit - Mentors @@ -446,7 +448,9 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(CONFIG_GET(flag/autoconvert_notes)) convert_notes_sql(ckey) - to_chat(src, get_message_output("message", ckey)) + var/user_messages = get_message_output("message", ckey) + if(user_messages) + to_chat(src, user_messages) if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them. to_chat(src, "Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you.") @@ -828,14 +832,19 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( ip_intel = res.intel /client/Click(atom/object, atom/location, control, params) + if(click_intercept_time) + if(click_intercept_time >= world.time) + click_intercept_time = 0 //Reset and return. Next click should work, but not this one. + return + click_intercept_time = 0 //Just reset. Let's not keep re-checking forever. var/ab = FALSE - var/list/L = params2list(params) + var/list/modifiers = params2list(params) - var/dragged = L["drag"] - if(dragged && !L[dragged]) + var/dragged = LAZYACCESS(modifiers, DRAG) + if(dragged && !LAZYACCESS(modifiers, dragged)) //I don't know what's going on here, but I don't trust it return - if (object && object == middragatom && L["left"]) + if (object && object == middragatom && LAZYACCESS(modifiers, LEFT_CLICK)) ab = max(0, 5 SECONDS-(world.time-middragtime)*0.1) var/mcl = CONFIG_GET(number/minute_click_limit) @@ -951,14 +960,14 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( view_size.setTo(clamp(change, min, max), clamp(change, min, max)) /** - * Updates the keybinds for special keys - * - * Handles adding macros for the keys that need it - * And adding movement keys to the clients movement_keys list - * At the time of writing this, communication(OOC, Say, IC) require macros - * Arguments: - * * direct_prefs - the preference we're going to get keybinds from - */ + * Updates the keybinds for special keys + * + * Handles adding macros for the keys that need it + * And adding movement keys to the clients movement_keys list + * At the time of writing this, communication(OOC, Say, IC) require macros + * Arguments: + * * direct_prefs - the preference we're going to get keybinds from + */ /client/proc/update_special_keybinds(datum/preferences/direct_prefs) var/datum/preferences/D = prefs || direct_prefs if(!D?.key_bindings) @@ -1067,8 +1076,8 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( to_chat(src, "Statpanel failed to load, click here to reload the panel ") /** - * Initializes dropdown menus on client - */ + * Initializes dropdown menus on client + */ /client/proc/initialize_menus() var/list/topmenus = GLOB.menulist[/datum/verbs/menu] for (var/thing in topmenus) diff --git a/code/modules/client/loadout/loadout_general.dm b/code/modules/client/loadout/loadout_general.dm index 0c397258d6de..effb8bdda2f4 100644 --- a/code/modules/client/loadout/loadout_general.dm +++ b/code/modules/client/loadout/loadout_general.dm @@ -22,6 +22,10 @@ display_name = "vape" path = /obj/item/clothing/mask/vape +/datum/gear/ecigar + display_name = "e-cigar" + path = /obj/item/clothing/mask/vape/cigar + /datum/gear/bandana display_name = "bandana, red" path = /obj/item/clothing/mask/bandana/red diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 8424ef548ab3..51a0c979264b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -85,6 +85,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/species_looking_at = "human" //used as a helper to keep track of in the species select thingy var/list/features = list( "mcolor" = "FFF", + "grad_style" = "None", + "grad_color" = "FFF", "ethcolor" = "9c3030", "tail_lizard" = "Smooth", "tail_human" = "None", @@ -117,6 +119,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) ) var/list/randomise = list(RANDOM_UNDERWEAR = TRUE, RANDOM_UNDERWEAR_COLOR = TRUE, RANDOM_UNDERSHIRT = TRUE, RANDOM_SOCKS = TRUE, RANDOM_BACKPACK = TRUE, RANDOM_JUMPSUIT_STYLE = TRUE, RANDOM_EXOWEAR_STYLE = TRUE, RANDOM_HAIRSTYLE = TRUE, RANDOM_HAIR_COLOR = TRUE, RANDOM_FACIAL_HAIRSTYLE = TRUE, RANDOM_FACIAL_HAIR_COLOR = TRUE, RANDOM_SKIN_TONE = TRUE, RANDOM_EYE_COLOR = TRUE) var/list/friendlyGenders = list("Male" = "male", "Female" = "female", "Other" = "plural") + var/list/prosthetic_limbs = list(BODY_ZONE_L_ARM = PROSTHETIC_NORMAL, BODY_ZONE_R_ARM = PROSTHETIC_NORMAL, BODY_ZONE_L_LEG = PROSTHETIC_NORMAL, BODY_ZONE_R_LEG = PROSTHETIC_NORMAL) var/phobia = "spiders" var/list/alt_titles_preferences = list() @@ -425,6 +428,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
    Change" dat += "[(randomise[RANDOM_HAIR_COLOR]) ? "Lock" : "Unlock"]" + dat += "

Hair Gradient

" + + dat += "[features["grad_style"]]" + + dat += "< >
" + + dat += "    Change" + dat += "

Facial Hairstyle

" dat += "[facial_hairstyle]" @@ -807,6 +818,16 @@ GLOBAL_LIST_EMPTY(preferences_datums) mutant_category = 0 dat += "" + dat += "

Prosthetic Limbs

" + dat += "Random Prosthetic: [(randomise[RANDOM_PROSTHETIC]) ? "Yes" : "No"]
" + + dat += "" + for(var/index in prosthetic_limbs) + var/bodypart_name = parse_zone(index) + dat += "" + dat += "" + dat += "
[bodypart_name]:[prosthetic_limbs[index]]

" + if(2) //Loadout if(path) var/savefile/S = new /savefile(path) @@ -1129,7 +1150,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) #undef APPEARANCE_CATEGORY_COLUMN #undef MAX_MUTANT_ROWS -/datum/preferences/proc/CaptureKeybinding(mob/user, datum/keybinding/kb, var/old_key) +/datum/preferences/proc/CaptureKeybinding(mob/user, datum/keybinding/kb, old_key) var/HTML = {"
Keybinding: [kb.full_name]
[kb.description]

Press any key to change
Press ESC to clear
- + - + + //Handle special cases (for fuck sake) + if (tooltip.special !== "none") { + //Put yo special cases here + } + + //Clamp values + left = + left < 0 ? 0 : left > tilesShownX ? tilesShownX : left; + top = top < 0 ? 0 : top > tilesShownY ? tilesShownY : top; + + //Calculate where on the screen the popup should appear (below the hovered tile) + var posX = Math.round( + (left - 1) * realIconSizeX + + leftOffset + + tooltip.padding + ); //-1 to position at the left of the target tile + var posY = Math.round( + (tilesShownY - top + 1) * realIconSizeY + + topOffset + + tooltip.padding + ); //+1 to position at the bottom of the target tile + + //alert(mapWidth+' | '+mapHeight+' | '+tilesShown+' | '+realIconSize+' | '+leftOffset+' | '+topOffset+' | '+left+' | '+top+' | '+posX+' | '+posY); //DEBUG + + $("body").attr("class", tooltip.theme); + + var $content = $("#content"), + $wrap = $("#wrap"); + $wrap.attr("style", ""); + $content.off("mouseover"); + $content.html(tooltip.text); + + $wrap.width($wrap.width() + 2); //Dumb hack to fix a bizarre sizing bug + + var docWidth = $wrap.outerWidth(), + docHeight = $wrap.outerHeight(); + + if (posY + docHeight > map.size.y) { + //Is the bottom edge below the window? Snap it up if so + posY = + posY - docHeight - realIconSizeY - tooltip.padding; + } + + //Actually size, move and show the tooltip box + window.location = + "byond://winset?id=" + + tooltip.control + + ";size=" + + docWidth + + "x" + + docHeight + + ";pos=" + + posX + + "," + + posY + + ";is-visible=true"; + + $content.on("mouseover", function () { + tooltip.hide(); + }); + }, + update: function ( + params, + client_vw, + clien_vh, + text, + theme, + special + ) { + //Assign our global object + tooltip.params = $.parseJSON(params); + tooltip.client_view_w = parseInt(client_vw); + tooltip.client_view_h = parseInt(clien_vh); + tooltip.text = text; + tooltip.theme = theme; + tooltip.special = special; + + //Go get the map details + window.location = + "byond://winget?callback=tooltip.updateCallback;id=mapwindow.map;property=size,view-size"; + }, + }; + + diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index d7e00c373e38..98798d1fe6f8 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1,6 +1,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) -/proc/get_uplink_items(var/datum/game_mode/gamemode = null, allow_sales = TRUE, allow_restricted = TRUE) +/proc/get_uplink_items(datum/game_mode/gamemode = null, allow_sales = TRUE, allow_restricted = TRUE) var/list/filtered_uplink_items = list() var/list/sale_items = list() @@ -413,7 +413,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "C-20r Submachine Gun" desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ 24-round magazine and is compatible with suppressors." - item = /obj/item/gun/ballistic/automatic/c20r + item = /obj/item/gun/ballistic/automatic/smg/c20r cost = 10 surplus = 40 include_modes = list(/datum/game_mode/nuclear) @@ -476,7 +476,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "L6 Squad Automatic Weapon" desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." - item = /obj/item/gun/ballistic/automatic/l6_saw + item = /obj/item/gun/ballistic/automatic/hmg/l6_saw cost = 18 surplus = 0 include_modes = list(/datum/game_mode/nuclear) @@ -485,7 +485,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "M-90gl Carbine" desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ with a toggleable 40mm underbarrel grenade launcher." - item = /obj/item/gun/ballistic/automatic/m90 + item = /obj/item/gun/ballistic/automatic/smg/m90 cost = 18 surplus = 50 include_modes = list(/datum/game_mode/nuclear) @@ -533,7 +533,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous/foamsmg name = "Toy Submachine Gun" desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." - item = /obj/item/gun/ballistic/automatic/c20r/toy + item = /obj/item/gun/ballistic/automatic/smg/c20r/toy cost = 5 surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) @@ -542,7 +542,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Toy Machine Gun" desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/gun/ballistic/automatic/l6_saw/toy + item = /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy cost = 10 surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) @@ -1874,7 +1874,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/role_restricted/his_grace name = "His Grace" - desc = "An incredibly dangerous weapon recovered from a Nanotransen station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ + desc = "An incredibly dangerous weapon recovered from a Nanotrasen station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ However, if left alone for long enough, He will fall back to slumber. \ To activate His Grace, simply unlatch Him." diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm index e01623c170f7..6a9b3627dfb7 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -38,6 +38,7 @@ /obj/item/reagent_containers/food/drinks/bottle/amaretto = 5, /obj/item/reagent_containers/food/drinks/bottle/sake = 5, /obj/item/reagent_containers/food/drinks/bottle/applejack = 5, + /obj/item/reagent_containers/food/drinks/bottle/coconut = 5, /obj/item/reagent_containers/food/drinks/bottle = 15, /obj/item/reagent_containers/food/drinks/bottle/small = 15, /obj/item/garnish/olives = 10, diff --git a/code/modules/vending/liberation.dm b/code/modules/vending/liberation.dm index 32b1f6775f2e..f4456cc740e5 100644 --- a/code/modules/vending/liberation.dm +++ b/code/modules/vending/liberation.dm @@ -13,11 +13,11 @@ /obj/item/gun/ballistic/automatic/pistol/deagle/gold = 2, /obj/item/gun/ballistic/automatic/pistol/deagle/camo = 2, /obj/item/gun/ballistic/automatic/pistol/m1911 = 2, - /obj/item/gun/ballistic/automatic/proto/unrestricted = 2, + /obj/item/gun/ballistic/automatic/smg/proto/unrestricted = 2, /obj/item/gun/ballistic/shotgun/automatic/combat = 2, /obj/item/gun/ballistic/automatic/gyropistol = 1, /obj/item/gun/ballistic/shotgun = 2, - /obj/item/gun/ballistic/automatic/ar = 2) + /obj/item/gun/ballistic/automatic/assualt/ar = 2) premium = list( /obj/item/ammo_box/magazine/smgm9mm = 2, /obj/item/ammo_box/magazine/m50 = 4, diff --git a/code/modules/vending/liberation_toy.dm b/code/modules/vending/liberation_toy.dm index bf47b0d208d7..90df6b673b16 100644 --- a/code/modules/vending/liberation_toy.dm +++ b/code/modules/vending/liberation_toy.dm @@ -17,8 +17,8 @@ /obj/item/clothing/head/syndicatefake = 5) //OPS IN DORMS oh wait it's just an assistant contraband = list( /obj/item/gun/ballistic/shotgun/toy/crossbow = 10, //Congrats, you unlocked the +18 setting! - /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot = 10, - /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot = 10, + /obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot = 10, + /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/unrestricted/riot = 10, /obj/item/ammo_box/foambox/riot = 20, /obj/item/toy/katana = 10, /obj/item/dualsaber/toy = 5, diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 4eb0952838fa..b354649f9b72 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -111,7 +111,7 @@ voucher_items = list( "Tactical Energy Gun" = /obj/item/gun/energy/e_gun/stun, "Combat Shotgun" = /obj/item/gun/ballistic/shotgun/automatic/combat, - "Type U3 Uzi" = /obj/item/gun/ballistic/automatic/mini_uzi) + "Type U3 Uzi" = /obj/item/gun/ballistic/automatic/smg/mini_uzi) /obj/machinery/vending/security/marine/syndicate icon_state = "syndicate-marine" @@ -134,9 +134,9 @@ /obj/item/melee/transforming/energy/sword/saber/red = 1, ) voucher_items = list( - "M-90gl Carbine" = /obj/item/gun/ballistic/automatic/m90/unrestricted, + "M-90gl Carbine" = /obj/item/gun/ballistic/automatic/smg/m90/unrestricted, "sniper rifle" = /obj/item/gun/ballistic/automatic/sniper_rifle, - "C-20r SMG" = /obj/item/gun/ballistic/automatic/c20r/unrestricted, + "C-20r SMG" = /obj/item/gun/ballistic/automatic/smg/c20r/unrestricted, "Bulldog Shotgun" = /obj/item/gun/ballistic/shotgun/bulldog/unrestricted) /obj/machinery/vending/security/marine/solgov @@ -162,7 +162,7 @@ ) voucher_items = list( "Tactical Energy Gun" = /obj/item/gun/energy/e_gun/stun, - "SGV \"Solar\" Assault Rifle" = /obj/item/gun/ballistic/automatic/solar, + "SGV \"Solar\" Assault Rifle" = /obj/item/gun/ballistic/automatic/hmg/solar, "TGV \"Edison\" Energy Rifle" = /obj/item/gun/energy/laser/terra) /obj/machinery/vending/security/marine/nanotrasen @@ -187,7 +187,7 @@ ) voucher_items = list( - "NT-AK" = /obj/item/gun/ballistic/automatic/ak47/nt) //if im being honest, theres no point in addiing other options when this is clearly the best + "NT-AK" = /obj/item/gun/ballistic/automatic/assualt/ak47/nt) //if im being honest, theres no point in addiing other options when this is clearly the best /obj/item/gun_voucher name = "security weapon voucher" diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm index e9329dbe53c4..8a938b50d435 100644 --- a/code/modules/vending/toys.dm +++ b/code/modules/vending/toys.dm @@ -19,8 +19,8 @@ /obj/item/clothing/head/syndicatefake = 5) contraband = list( /obj/item/gun/ballistic/shotgun/toy/crossbow = 10, - /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted = 10, - /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted = 10, + /obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted = 10, + /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/unrestricted = 10, /obj/item/toy/katana = 10, /obj/item/dualsaber/toy = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 9c2825ba4f02..34397a98c888 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -23,7 +23,7 @@ GLOB.zombie_infection_list -= src . = ..() -/obj/item/organ/zombie_infection/Insert(var/mob/living/carbon/M, special = 0) +/obj/item/organ/zombie_infection/Insert(mob/living/carbon/M, special = 0) . = ..() START_PROCESSING(SSobj, src) @@ -67,7 +67,7 @@ var/flags = TIMER_STOPPABLE timer_id = addtimer(CALLBACK(src, .proc/zombify, owner), revive_time, flags) -/obj/item/organ/zombie_infection/proc/zombify(var/mob/living/carbon/C) +/obj/item/organ/zombie_infection/proc/zombify(mob/living/carbon/C) timer_id = null if(!converts_living && owner.stat != DEAD) diff --git a/config/admin_nicknames.json b/config/admin_nicknames.json index 9c83f646229d..91375e889a7e 100644 --- a/config/admin_nicknames.json +++ b/config/admin_nicknames.json @@ -1,10 +1,4 @@ { - "ranks": [ - "Dedmin", - "Sir Madam Headmin" - ], - "names": [ - "Badmin", - "Spanmin" - ] -} \ No newline at end of file + "ranks": ["Dedmin", "Sir Madam Headmin"], + "names": ["Badmin", "Spanmin"] +} diff --git a/config/arenas/README.md b/config/arenas/README.md index 9f31ce2349a9..a5b97f61c3a5 100644 --- a/config/arenas/README.md +++ b/config/arenas/README.md @@ -1,3 +1,3 @@ Add admin arena dmms here. -**These are fully cached so keep this directory empty by default.** \ No newline at end of file +**These are fully cached so keep this directory empty by default.** diff --git a/config/comms.txt b/config/comms.txt index 6617dac6ec74..3d7e58db4ea6 100644 --- a/config/comms.txt +++ b/config/comms.txt @@ -17,7 +17,7 @@ #MEDAL_HUB_PASSWORD ## Bot IP:Port for discord notifications -BOT_IP 127.0.0.1:8081 +#BOT_IP 127.0.0.1:8081 ## Network-name used for cross-server broadcasts made from communication consoles. ## Servers that do not match this network-name will have their messages discarded. diff --git a/config/donators/ianthewanderer.json b/config/donators/ianthewanderer.json index 7148e7495b38..7c5e93c88ab1 100644 --- a/config/donators/ianthewanderer.json +++ b/config/donators/ianthewanderer.json @@ -1,6 +1,4 @@ { "ckey": "ianthewanderer", - "flat": [ - "/obj/item/clothing/under/legislature" - ] + "flat": ["/obj/item/clothing/under/legislature"] } diff --git a/config/dynamic.json b/config/dynamic.json index 4c83d5739bab..f5dc9a925e32 100644 --- a/config/dynamic.json +++ b/config/dynamic.json @@ -7,30 +7,8 @@ "weight": 5, "required_candidates": 1, "minimum_required_age": 0, - "requirements": [ - 10, - 10, - 10, - 10, - 10, - 10, - 10, - 10, - 10, - 10 - ], - "antag_cap": [ - 1, - 1, - 1, - 2, - 2, - 2, - 3, - 3, - 3, - 3 - ], + "requirements": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10], + "antag_cap": [1, 1, 1, 2, 2, 2, 3, 3, 3, 3], "protected_roles": [ "Prisoner", "Security Officer", @@ -43,9 +21,7 @@ "Research Director", "Chief Medical Officer" ], - "restricted_roles": [ - "Cyborg" - ], + "restricted_roles": ["Cyborg"], "autotraitor_cooldown": 450 } }, diff --git a/config/game_options.txt b/config/game_options.txt index 53dad2da1ab5..50975cc5b816 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -74,8 +74,8 @@ ALERT_GREEN All threats to the sector have passed. Local security personnel may ALERT_BLUE_UPTO Potentially dangerous conditions have been reported in this sector. Corporate security staff have been granted increased powers, and security sweeps will now be organized. ALERT_BLUE_DOWNTO The immediate threat to personal safety has passed. Corporate security may no longer have weapons drawn at all times, but may continue to have them visible. Privacy laws will continue to be suspended until an all-clear has been posted. ALERT_RED_UPTO There is an immediate and serious threat to the sector. Local Security forces may have weapons unholstered at all times. Random searches will be allowed and advised. Colonial emergency supply restrictions have been lifted. -ALERT_RED_DOWNTO The sector's immediate destruction has been averted. There may, however, remain deadly threats to personal safety. Random searches will be allowed and advised to nanotransen peacekeepers. -ALERT_DELTA The destruction of the sector is imminent. All local persons are instructed to obey commands by Nanotransen personnel. Any violations of these orders may be punishable by death. This is not a drill. +ALERT_RED_DOWNTO The sector's immediate destruction has been averted. There may, however, remain deadly threats to personal safety. Random searches will be allowed and advised to Nanotrasen peacekeepers. +ALERT_DELTA The destruction of the sector is imminent. All local persons are instructed to obey commands by Nanotrasen personnel. Any violations of these orders may be punishable by death. This is not a drill. @@ -587,16 +587,16 @@ ECONOMY ## Overmap Settings ## ## Put max amount of different event clusters you want to spawn here -MAX_OVERMAP_EVENT_CLUSTERS 10 +MAX_OVERMAP_EVENT_CLUSTERS 6 ## Put the maximum amount of overmap events here -MAX_OVERMAP_EVENTS 150 +MAX_OVERMAP_EVENTS 50 -## Put the maximum amount of dynamic (runtime loaded) overmap locations here +## Put the maximum amount of dynamic overmap locations here MAX_OVERMAP_DYNAMIC_EVENTS 10 ## Size of the overmap squared -OVERMAP_SIZE 30 +OVERMAP_SIZE 12 ## Which overmap generator to use ## Valid values are: "random", "solar_system" diff --git a/dependencies.sh b/dependencies.sh index f378587b2a74..b4d7bad424f6 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -21,7 +21,7 @@ export NODE_VERSION_PRECISE=16.13.0 export SPACEMAN_DMM_VERSION=suite-1.7.1 # Python version for mapmerge and other tools -export PYTHON_VERSION=3.9.10 +export PYTHON_VERSION=3.7.9 #auxmos version export AUXMOS_VERSION=v1.1.2 diff --git a/goon/LICENSE.md b/goon/LICENSE.md index d227d11c6cdf..5bda1d84f9b7 100644 --- a/goon/LICENSE.md +++ b/goon/LICENSE.md @@ -1,4 +1,4 @@ This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/us/ or -send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. \ No newline at end of file +send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. diff --git a/html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js b/html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js index fe9bba7a51ce..ab99fff6af8b 100644 --- a/html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js +++ b/html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js @@ -1,7 +1,2168 @@ /*! jQuery UI - v1.11.4 - 2016-07-05 -* http://jqueryui.com -* Includes: core.js, widget.js, mouse.js, sortable.js -* Copyright jQuery Foundation and other contributors; Licensed MIT */ + * http://jqueryui.com + * Includes: core.js, widget.js, mouse.js, sortable.js + * Copyright jQuery Foundation and other contributors; Licensed MIT */ -(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var s=0,n=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,a=n.call(arguments,1),o=0,r=a.length;r>o;o++)for(i in a[o])s=a[o][i],a[o].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(a){var o="string"==typeof a,r=n.call(arguments,1),h=this;return o?this.each(function(){var i,n=e.data(this,s);return"instance"===a?(h=n,!1):n?e.isFunction(n[a])&&"_"!==a.charAt(0)?(i=n[a].apply(n,r),i!==n&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+a+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+a+"'")}):(r.length&&(a=e.widget.extend.apply(null,[a].concat(r))),this.each(function(){var t=e.data(this,s);t?(t.option(a||{}),t._init&&t._init()):e.data(this,s,new i(a,this))})),h}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=s++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var a=!1;e(document).mouseup(function(){a=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!a){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var i=this,s=1===t.which,n="string"==typeof this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return i._mouseMove(e)},this._mouseUpDelegate=function(e){return i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),a=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),a=!1,!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&t+i>e},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),e.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var s=null,n=!1,a=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,a.widgetName+"-item")===a?(s=e(this),!1):void 0}),e.data(t.target,a.widgetName+"-item")===a&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var n,a,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(a=this.document.find("body"),this.storedCursor=a.css("cursor"),a.css("cursor",o.cursor),this.storedStylesheet=e("").appendTo(a)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY=0;i--)if(s=this.items[i],n=s.item[0],a=this._intersectsWithPointer(s),a&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===a?"next":"prev"]()[0]!==n&&!e.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],n):!0)){if(this.direction=1===a?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,n=this.placeholder.offset(),a=this.options.axis,o={};a&&"x"!==a||(o.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),a&&"y"!==a||(o.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,a=e.left,o=a+e.width,r=e.top,h=r+e.height,l=this.offset.click.top,u=this.offset.click.left,c="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||t+u>a&&o>t+u,p=c&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>a&&o>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width),s=t&&i,n=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return s?this.floating?a&&"right"===a||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&t||"up"===s&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function i(){r.push(this)}var s,n,a,o,r=[],h=[],l=this._connectWith();if(l&&t)for(s=l.length-1;s>=0;s--)for(a=e(l[s],this.document[0]),n=a.length-1;n>=0;n--)o=e.data(a[n],this.widgetFullName),o&&o!==this&&!o.options.disabled&&h.push([e.isFunction(o.options.items)?o.options.items.call(o.element):e(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(h.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,n,a,o,r,h,l,u=this.items,c=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=e(d[i],this.document[0]),s=n.length-1;s>=0;s--)a=e.data(n[s],this.widgetFullName),a&&a!==this&&!a.options.disabled&&(c.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a));for(i=c.length-1;i>=0;i--)for(o=c[i][1],r=c[i][0],s=0,l=r.length;l>s;s++)h=e(r[s]),h.data(this.widgetName+"-item",o),u.push({item:h,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,a;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=n.outerWidth(),s.height=n.outerHeight()),a=n.offset(),s.left=a.left,s.top=a.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)a=this.containers[i].element.offset(),this.containers[i].containerCache.left=a.left,this.containers[i].containerCache.top=a.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),n=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===s?t._createTrPlaceholder(t.currentItem.find("tr").eq(0),e("",t.document[0]).appendTo(n)):"tr"===s?t._createTrPlaceholder(t.currentItem,n):"img"===s&&n.attr("src",t.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(e,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_createTrPlaceholder:function(t,i){var s=this;t.children().each(function(){e(" ",s.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(t){var i,s,n,a,o,r,h,l,u,c,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&e.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,a=null,u=d.floating||this._isFloating(this.currentItem),o=u?"left":"top",r=u?"width":"height",c=u?"clientX":"clientY",s=this.items.length-1;s>=0;s--)e.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[o],l=!1,t[c]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(t[c]-h)&&(n=Math.abs(t[c]-h),a=this.items[s],this.direction=l?"up":"down"));if(!a&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;a?this._rearrange(t,a,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(t=e(n.containment)[0],i=e(n.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]) -},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():a?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():a?0:n.scrollLeft())*s}},_generatePosition:function(t){var i,s,n=this.options,a=t.pageX,o=t.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.leftthis.containment[2]&&(a=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1],o=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((a-this.originalPageX)/n.grid[0])*n.grid[0],a=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:a-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){function i(e,t,i){return function(s){i._trigger(e,s,t._uiHash(t))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)t||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(s=0;n.length>s;s++)n[s].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}})}); \ No newline at end of file +(function (e) { + "function" == typeof define && define.amd + ? define(["jquery"], e) + : e(jQuery); +})(function (e) { + function t(t, s) { + var n, + a, + o, + r = t.nodeName.toLowerCase(); + return "area" === r + ? ((n = t.parentNode), + (a = n.name), + t.href && a && "map" === n.nodeName.toLowerCase() + ? ((o = e("img[usemap='#" + a + "']")[0]), !!o && i(o)) + : !1) + : (/^(input|select|textarea|button|object)$/.test(r) + ? !t.disabled + : "a" === r + ? t.href || s + : s) && i(t); + } + function i(t) { + return ( + e.expr.filters.visible(t) && + !e(t) + .parents() + .addBack() + .filter(function () { + return "hidden" === e.css(this, "visibility"); + }).length + ); + } + (e.ui = e.ui || {}), + e.extend(e.ui, { + version: "1.11.4", + keyCode: { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38, + }, + }), + e.fn.extend({ + scrollParent: function (t) { + var i = this.css("position"), + s = "absolute" === i, + n = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/, + a = this.parents() + .filter(function () { + var t = e(this); + return s && "static" === t.css("position") + ? !1 + : n.test( + t.css("overflow") + + t.css("overflow-y") + + t.css("overflow-x") + ); + }) + .eq(0); + return "fixed" !== i && a.length + ? a + : e(this[0].ownerDocument || document); + }, + uniqueId: (function () { + var e = 0; + return function () { + return this.each(function () { + this.id || (this.id = "ui-id-" + ++e); + }); + }; + })(), + removeUniqueId: function () { + return this.each(function () { + /^ui-id-\d+$/.test(this.id) && e(this).removeAttr("id"); + }); + }, + }), + e.extend(e.expr[":"], { + data: e.expr.createPseudo + ? e.expr.createPseudo(function (t) { + return function (i) { + return !!e.data(i, t); + }; + }) + : function (t, i, s) { + return !!e.data(t, s[3]); + }, + focusable: function (i) { + return t(i, !isNaN(e.attr(i, "tabindex"))); + }, + tabbable: function (i) { + var s = e.attr(i, "tabindex"), + n = isNaN(s); + return (n || s >= 0) && t(i, !n); + }, + }), + e("").outerWidth(1).jquery || + e.each(["Width", "Height"], function (t, i) { + function s(t, i, s, a) { + return ( + e.each(n, function () { + (i -= parseFloat(e.css(t, "padding" + this)) || 0), + s && + (i -= + parseFloat( + e.css(t, "border" + this + "Width") + ) || 0), + a && + (i -= + parseFloat(e.css(t, "margin" + this)) || + 0); + }), + i + ); + } + var n = "Width" === i ? ["Left", "Right"] : ["Top", "Bottom"], + a = i.toLowerCase(), + o = { + innerWidth: e.fn.innerWidth, + innerHeight: e.fn.innerHeight, + outerWidth: e.fn.outerWidth, + outerHeight: e.fn.outerHeight, + }; + (e.fn["inner" + i] = function (t) { + return void 0 === t + ? o["inner" + i].call(this) + : this.each(function () { + e(this).css(a, s(this, t) + "px"); + }); + }), + (e.fn["outer" + i] = function (t, n) { + return "number" != typeof t + ? o["outer" + i].call(this, t) + : this.each(function () { + e(this).css(a, s(this, t, !0, n) + "px"); + }); + }); + }), + e.fn.addBack || + (e.fn.addBack = function (e) { + return this.add( + null == e ? this.prevObject : this.prevObject.filter(e) + ); + }), + e("").data("a-b", "a").removeData("a-b").data("a-b") && + (e.fn.removeData = (function (t) { + return function (i) { + return arguments.length + ? t.call(this, e.camelCase(i)) + : t.call(this); + }; + })(e.fn.removeData)), + (e.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())), + e.fn.extend({ + focus: (function (t) { + return function (i, s) { + return "number" == typeof i + ? this.each(function () { + var t = this; + setTimeout(function () { + e(t).focus(), s && s.call(t); + }, i); + }) + : t.apply(this, arguments); + }; + })(e.fn.focus), + disableSelection: (function () { + var e = + "onselectstart" in document.createElement("div") + ? "selectstart" + : "mousedown"; + return function () { + return this.bind(e + ".ui-disableSelection", function (e) { + e.preventDefault(); + }); + }; + })(), + enableSelection: function () { + return this.unbind(".ui-disableSelection"); + }, + zIndex: function (t) { + if (void 0 !== t) return this.css("zIndex", t); + if (this.length) + for ( + var i, s, n = e(this[0]); + n.length && n[0] !== document; + + ) { + if ( + ((i = n.css("position")), + ("absolute" === i || + "relative" === i || + "fixed" === i) && + ((s = parseInt(n.css("zIndex"), 10)), + !isNaN(s) && 0 !== s)) + ) + return s; + n = n.parent(); + } + return 0; + }, + }), + (e.ui.plugin = { + add: function (t, i, s) { + var n, + a = e.ui[t].prototype; + for (n in s) + (a.plugins[n] = a.plugins[n] || []), + a.plugins[n].push([i, s[n]]); + }, + call: function (e, t, i, s) { + var n, + a = e.plugins[t]; + if ( + a && + (s || + (e.element[0].parentNode && + 11 !== e.element[0].parentNode.nodeType)) + ) + for (n = 0; a.length > n; n++) + e.options[a[n][0]] && a[n][1].apply(e.element, i); + }, + }); + var s = 0, + n = Array.prototype.slice; + (e.cleanData = (function (t) { + return function (i) { + var s, n, a; + for (a = 0; null != (n = i[a]); a++) + try { + (s = e._data(n, "events")), + s && s.remove && e(n).triggerHandler("remove"); + } catch (o) {} + t(i); + }; + })(e.cleanData)), + (e.widget = function (t, i, s) { + var n, + a, + o, + r, + h = {}, + l = t.split(".")[0]; + return ( + (t = t.split(".")[1]), + (n = l + "-" + t), + s || ((s = i), (i = e.Widget)), + (e.expr[":"][n.toLowerCase()] = function (t) { + return !!e.data(t, n); + }), + (e[l] = e[l] || {}), + (a = e[l][t]), + (o = e[l][t] = + function (e, t) { + return this._createWidget + ? (arguments.length && this._createWidget(e, t), + void 0) + : new o(e, t); + }), + e.extend(o, a, { + version: s.version, + _proto: e.extend({}, s), + _childConstructors: [], + }), + (r = new i()), + (r.options = e.widget.extend({}, r.options)), + e.each(s, function (t, s) { + return e.isFunction(s) + ? ((h[t] = (function () { + var e = function () { + return i.prototype[t].apply( + this, + arguments + ); + }, + n = function (e) { + return i.prototype[t].apply(this, e); + }; + return function () { + var t, + i = this._super, + a = this._superApply; + return ( + (this._super = e), + (this._superApply = n), + (t = s.apply(this, arguments)), + (this._super = i), + (this._superApply = a), + t + ); + }; + })()), + void 0) + : ((h[t] = s), void 0); + }), + (o.prototype = e.widget.extend( + r, + { widgetEventPrefix: a ? r.widgetEventPrefix || t : t }, + h, + { + constructor: o, + namespace: l, + widgetName: t, + widgetFullName: n, + } + )), + a + ? (e.each(a._childConstructors, function (t, i) { + var s = i.prototype; + e.widget( + s.namespace + "." + s.widgetName, + o, + i._proto + ); + }), + delete a._childConstructors) + : i._childConstructors.push(o), + e.widget.bridge(t, o), + o + ); + }), + (e.widget.extend = function (t) { + for ( + var i, s, a = n.call(arguments, 1), o = 0, r = a.length; + r > o; + o++ + ) + for (i in a[o]) + (s = a[o][i]), + a[o].hasOwnProperty(i) && + void 0 !== s && + (t[i] = e.isPlainObject(s) + ? e.isPlainObject(t[i]) + ? e.widget.extend({}, t[i], s) + : e.widget.extend({}, s) + : s); + return t; + }), + (e.widget.bridge = function (t, i) { + var s = i.prototype.widgetFullName || t; + e.fn[t] = function (a) { + var o = "string" == typeof a, + r = n.call(arguments, 1), + h = this; + return ( + o + ? this.each(function () { + var i, + n = e.data(this, s); + return "instance" === a + ? ((h = n), !1) + : n + ? e.isFunction(n[a]) && "_" !== a.charAt(0) + ? ((i = n[a].apply(n, r)), + i !== n && void 0 !== i + ? ((h = + i && i.jquery + ? h.pushStack( + i.get() + ) + : i), + !1) + : void 0) + : e.error( + "no such method '" + + a + + "' for " + + t + + " widget instance" + ) + : e.error( + "cannot call methods on " + + t + + " prior to initialization; " + + "attempted to call method '" + + a + + "'" + ); + }) + : (r.length && + (a = e.widget.extend.apply( + null, + [a].concat(r) + )), + this.each(function () { + var t = e.data(this, s); + t + ? (t.option(a || {}), t._init && t._init()) + : e.data(this, s, new i(a, this)); + })), + h + ); + }; + }), + (e.Widget = function () {}), + (e.Widget._childConstructors = []), + (e.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
", + options: { disabled: !1, create: null }, + _createWidget: function (t, i) { + (i = e(i || this.defaultElement || this)[0]), + (this.element = e(i)), + (this.uuid = s++), + (this.eventNamespace = "." + this.widgetName + this.uuid), + (this.bindings = e()), + (this.hoverable = e()), + (this.focusable = e()), + i !== this && + (e.data(i, this.widgetFullName, this), + this._on(!0, this.element, { + remove: function (e) { + e.target === i && this.destroy(); + }, + }), + (this.document = e( + i.style ? i.ownerDocument : i.document || i + )), + (this.window = e( + this.document[0].defaultView || + this.document[0].parentWindow + ))), + (this.options = e.widget.extend( + {}, + this.options, + this._getCreateOptions(), + t + )), + this._create(), + this._trigger("create", null, this._getCreateEventData()), + this._init(); + }, + _getCreateOptions: e.noop, + _getCreateEventData: e.noop, + _create: e.noop, + _init: e.noop, + destroy: function () { + this._destroy(), + this.element + .unbind(this.eventNamespace) + .removeData(this.widgetFullName) + .removeData(e.camelCase(this.widgetFullName)), + this.widget() + .unbind(this.eventNamespace) + .removeAttr("aria-disabled") + .removeClass( + this.widgetFullName + + "-disabled " + + "ui-state-disabled" + ), + this.bindings.unbind(this.eventNamespace), + this.hoverable.removeClass("ui-state-hover"), + this.focusable.removeClass("ui-state-focus"); + }, + _destroy: e.noop, + widget: function () { + return this.element; + }, + option: function (t, i) { + var s, + n, + a, + o = t; + if (0 === arguments.length) + return e.widget.extend({}, this.options); + if ("string" == typeof t) + if ( + ((o = {}), + (s = t.split(".")), + (t = s.shift()), + s.length) + ) { + for ( + n = o[t] = e.widget.extend({}, this.options[t]), + a = 0; + s.length - 1 > a; + a++ + ) + (n[s[a]] = n[s[a]] || {}), (n = n[s[a]]); + if (((t = s.pop()), 1 === arguments.length)) + return void 0 === n[t] ? null : n[t]; + n[t] = i; + } else { + if (1 === arguments.length) + return void 0 === this.options[t] + ? null + : this.options[t]; + o[t] = i; + } + return this._setOptions(o), this; + }, + _setOptions: function (e) { + var t; + for (t in e) this._setOption(t, e[t]); + return this; + }, + _setOption: function (e, t) { + return ( + (this.options[e] = t), + "disabled" === e && + (this.widget().toggleClass( + this.widgetFullName + "-disabled", + !!t + ), + t && + (this.hoverable.removeClass("ui-state-hover"), + this.focusable.removeClass("ui-state-focus"))), + this + ); + }, + enable: function () { + return this._setOptions({ disabled: !1 }); + }, + disable: function () { + return this._setOptions({ disabled: !0 }); + }, + _on: function (t, i, s) { + var n, + a = this; + "boolean" != typeof t && ((s = i), (i = t), (t = !1)), + s + ? ((i = n = e(i)), + (this.bindings = this.bindings.add(i))) + : ((s = i), (i = this.element), (n = this.widget())), + e.each(s, function (s, o) { + function r() { + return t || + (a.options.disabled !== !0 && + !e(this).hasClass("ui-state-disabled")) + ? ("string" == typeof o ? a[o] : o).apply( + a, + arguments + ) + : void 0; + } + "string" != typeof o && + (r.guid = o.guid = o.guid || r.guid || e.guid++); + var h = s.match(/^([\w:-]*)\s*(.*)$/), + l = h[1] + a.eventNamespace, + u = h[2]; + u ? n.delegate(u, l, r) : i.bind(l, r); + }); + }, + _off: function (t, i) { + (i = + (i || "").split(" ").join(this.eventNamespace + " ") + + this.eventNamespace), + t.unbind(i).undelegate(i), + (this.bindings = e(this.bindings.not(t).get())), + (this.focusable = e(this.focusable.not(t).get())), + (this.hoverable = e(this.hoverable.not(t).get())); + }, + _delay: function (e, t) { + function i() { + return ("string" == typeof e ? s[e] : e).apply( + s, + arguments + ); + } + var s = this; + return setTimeout(i, t || 0); + }, + _hoverable: function (t) { + (this.hoverable = this.hoverable.add(t)), + this._on(t, { + mouseenter: function (t) { + e(t.currentTarget).addClass("ui-state-hover"); + }, + mouseleave: function (t) { + e(t.currentTarget).removeClass("ui-state-hover"); + }, + }); + }, + _focusable: function (t) { + (this.focusable = this.focusable.add(t)), + this._on(t, { + focusin: function (t) { + e(t.currentTarget).addClass("ui-state-focus"); + }, + focusout: function (t) { + e(t.currentTarget).removeClass("ui-state-focus"); + }, + }); + }, + _trigger: function (t, i, s) { + var n, + a, + o = this.options[t]; + if ( + ((s = s || {}), + (i = e.Event(i)), + (i.type = ( + t === this.widgetEventPrefix + ? t + : this.widgetEventPrefix + t + ).toLowerCase()), + (i.target = this.element[0]), + (a = i.originalEvent)) + ) + for (n in a) n in i || (i[n] = a[n]); + return ( + this.element.trigger(i, s), + !( + (e.isFunction(o) && + o.apply(this.element[0], [i].concat(s)) === !1) || + i.isDefaultPrevented() + ) + ); + }, + }), + e.each({ show: "fadeIn", hide: "fadeOut" }, function (t, i) { + e.Widget.prototype["_" + t] = function (s, n, a) { + "string" == typeof n && (n = { effect: n }); + var o, + r = n + ? n === !0 || "number" == typeof n + ? i + : n.effect || i + : t; + (n = n || {}), + "number" == typeof n && (n = { duration: n }), + (o = !e.isEmptyObject(n)), + (n.complete = a), + n.delay && s.delay(n.delay), + o && e.effects && e.effects.effect[r] + ? s[t](n) + : r !== t && s[r] + ? s[r](n.duration, n.easing, a) + : s.queue(function (i) { + e(this)[t](), a && a.call(s[0]), i(); + }); + }; + }), + e.widget; + var a = !1; + e(document).mouseup(function () { + a = !1; + }), + e.widget("ui.mouse", { + version: "1.11.4", + options: { + cancel: "input,textarea,button,select,option", + distance: 1, + delay: 0, + }, + _mouseInit: function () { + var t = this; + this.element + .bind("mousedown." + this.widgetName, function (e) { + return t._mouseDown(e); + }) + .bind("click." + this.widgetName, function (i) { + return !0 === + e.data( + i.target, + t.widgetName + ".preventClickEvent" + ) + ? (e.removeData( + i.target, + t.widgetName + ".preventClickEvent" + ), + i.stopImmediatePropagation(), + !1) + : void 0; + }), + (this.started = !1); + }, + _mouseDestroy: function () { + this.element.unbind("." + this.widgetName), + this._mouseMoveDelegate && + this.document + .unbind( + "mousemove." + this.widgetName, + this._mouseMoveDelegate + ) + .unbind( + "mouseup." + this.widgetName, + this._mouseUpDelegate + ); + }, + _mouseDown: function (t) { + if (!a) { + (this._mouseMoved = !1), + this._mouseStarted && this._mouseUp(t), + (this._mouseDownEvent = t); + var i = this, + s = 1 === t.which, + n = + "string" == typeof this.options.cancel && + t.target.nodeName + ? e(t.target).closest(this.options.cancel) + .length + : !1; + return s && !n && this._mouseCapture(t) + ? ((this.mouseDelayMet = !this.options.delay), + this.mouseDelayMet || + (this._mouseDelayTimer = setTimeout( + function () { + i.mouseDelayMet = !0; + }, + this.options.delay + )), + this._mouseDistanceMet(t) && + this._mouseDelayMet(t) && + ((this._mouseStarted = this._mouseStart(t) !== !1), + !this._mouseStarted) + ? (t.preventDefault(), !0) + : (!0 === + e.data( + t.target, + this.widgetName + + ".preventClickEvent" + ) && + e.removeData( + t.target, + this.widgetName + + ".preventClickEvent" + ), + (this._mouseMoveDelegate = function (e) { + return i._mouseMove(e); + }), + (this._mouseUpDelegate = function (e) { + return i._mouseUp(e); + }), + this.document + .bind( + "mousemove." + this.widgetName, + this._mouseMoveDelegate + ) + .bind( + "mouseup." + this.widgetName, + this._mouseUpDelegate + ), + t.preventDefault(), + (a = !0), + !0)) + : !0; + } + }, + _mouseMove: function (t) { + if (this._mouseMoved) { + if ( + e.ui.ie && + (!document.documentMode || 9 > document.documentMode) && + !t.button + ) + return this._mouseUp(t); + if (!t.which) return this._mouseUp(t); + } + return ( + (t.which || t.button) && (this._mouseMoved = !0), + this._mouseStarted + ? (this._mouseDrag(t), t.preventDefault()) + : (this._mouseDistanceMet(t) && + this._mouseDelayMet(t) && + ((this._mouseStarted = + this._mouseStart( + this._mouseDownEvent, + t + ) !== !1), + this._mouseStarted + ? this._mouseDrag(t) + : this._mouseUp(t)), + !this._mouseStarted) + ); + }, + _mouseUp: function (t) { + return ( + this.document + .unbind( + "mousemove." + this.widgetName, + this._mouseMoveDelegate + ) + .unbind( + "mouseup." + this.widgetName, + this._mouseUpDelegate + ), + this._mouseStarted && + ((this._mouseStarted = !1), + t.target === this._mouseDownEvent.target && + e.data( + t.target, + this.widgetName + ".preventClickEvent", + !0 + ), + this._mouseStop(t)), + (a = !1), + !1 + ); + }, + _mouseDistanceMet: function (e) { + return ( + Math.max( + Math.abs(this._mouseDownEvent.pageX - e.pageX), + Math.abs(this._mouseDownEvent.pageY - e.pageY) + ) >= this.options.distance + ); + }, + _mouseDelayMet: function () { + return this.mouseDelayMet; + }, + _mouseStart: function () {}, + _mouseDrag: function () {}, + _mouseStop: function () {}, + _mouseCapture: function () { + return !0; + }, + }), + e.widget("ui.sortable", e.ui.mouse, { + version: "1.11.4", + widgetEventPrefix: "sort", + ready: !1, + options: { + appendTo: "parent", + axis: !1, + connectWith: !1, + containment: !1, + cursor: "auto", + cursorAt: !1, + dropOnEmpty: !0, + forcePlaceholderSize: !1, + forceHelperSize: !1, + grid: !1, + handle: !1, + helper: "original", + items: "> *", + opacity: !1, + placeholder: !1, + revert: !1, + scroll: !0, + scrollSensitivity: 20, + scrollSpeed: 20, + scope: "default", + tolerance: "intersect", + zIndex: 1e3, + activate: null, + beforeStop: null, + change: null, + deactivate: null, + out: null, + over: null, + receive: null, + remove: null, + sort: null, + start: null, + stop: null, + update: null, + }, + _isOverAxis: function (e, t, i) { + return e >= t && t + i > e; + }, + _isFloating: function (e) { + return ( + /left|right/.test(e.css("float")) || + /inline|table-cell/.test(e.css("display")) + ); + }, + _create: function () { + (this.containerCache = {}), + this.element.addClass("ui-sortable"), + this.refresh(), + (this.offset = this.element.offset()), + this._mouseInit(), + this._setHandleClassName(), + (this.ready = !0); + }, + _setOption: function (e, t) { + this._super(e, t), "handle" === e && this._setHandleClassName(); + }, + _setHandleClassName: function () { + this.element + .find(".ui-sortable-handle") + .removeClass("ui-sortable-handle"), + e.each(this.items, function () { + (this.instance.options.handle + ? this.item.find(this.instance.options.handle) + : this.item + ).addClass("ui-sortable-handle"); + }); + }, + _destroy: function () { + this.element + .removeClass("ui-sortable ui-sortable-disabled") + .find(".ui-sortable-handle") + .removeClass("ui-sortable-handle"), + this._mouseDestroy(); + for (var e = this.items.length - 1; e >= 0; e--) + this.items[e].item.removeData(this.widgetName + "-item"); + return this; + }, + _mouseCapture: function (t, i) { + var s = null, + n = !1, + a = this; + return this.reverting + ? !1 + : this.options.disabled || "static" === this.options.type + ? !1 + : (this._refreshItems(t), + e(t.target) + .parents() + .each(function () { + return e.data(this, a.widgetName + "-item") === + a + ? ((s = e(this)), !1) + : void 0; + }), + e.data(t.target, a.widgetName + "-item") === a && + (s = e(t.target)), + s + ? !this.options.handle || + i || + (e(this.options.handle, s) + .find("*") + .addBack() + .each(function () { + this === t.target && (n = !0); + }), + n) + ? ((this.currentItem = s), + this._removeCurrentsFromItems(), + !0) + : !1 + : !1); + }, + _mouseStart: function (t, i, s) { + var n, + a, + o = this.options; + if ( + ((this.currentContainer = this), + this.refreshPositions(), + (this.helper = this._createHelper(t)), + this._cacheHelperProportions(), + this._cacheMargins(), + (this.scrollParent = this.helper.scrollParent()), + (this.offset = this.currentItem.offset()), + (this.offset = { + top: this.offset.top - this.margins.top, + left: this.offset.left - this.margins.left, + }), + e.extend(this.offset, { + click: { + left: t.pageX - this.offset.left, + top: t.pageY - this.offset.top, + }, + parent: this._getParentOffset(), + relative: this._getRelativeOffset(), + }), + this.helper.css("position", "absolute"), + (this.cssPosition = this.helper.css("position")), + (this.originalPosition = this._generatePosition(t)), + (this.originalPageX = t.pageX), + (this.originalPageY = t.pageY), + o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt), + (this.domPosition = { + prev: this.currentItem.prev()[0], + parent: this.currentItem.parent()[0], + }), + this.helper[0] !== this.currentItem[0] && + this.currentItem.hide(), + this._createPlaceholder(), + o.containment && this._setContainment(), + o.cursor && + "auto" !== o.cursor && + ((a = this.document.find("body")), + (this.storedCursor = a.css("cursor")), + a.css("cursor", o.cursor), + (this.storedStylesheet = e( + "" + ).appendTo(a))), + o.opacity && + (this.helper.css("opacity") && + (this._storedOpacity = this.helper.css("opacity")), + this.helper.css("opacity", o.opacity)), + o.zIndex && + (this.helper.css("zIndex") && + (this._storedZIndex = this.helper.css("zIndex")), + this.helper.css("zIndex", o.zIndex)), + this.scrollParent[0] !== this.document[0] && + "HTML" !== this.scrollParent[0].tagName && + (this.overflowOffset = this.scrollParent.offset()), + this._trigger("start", t, this._uiHash()), + this._preserveHelperProportions || + this._cacheHelperProportions(), + !s) + ) + for (n = this.containers.length - 1; n >= 0; n--) + this.containers[n]._trigger( + "activate", + t, + this._uiHash(this) + ); + return ( + e.ui.ddmanager && (e.ui.ddmanager.current = this), + e.ui.ddmanager && + !o.dropBehaviour && + e.ui.ddmanager.prepareOffsets(this, t), + (this.dragging = !0), + this.helper.addClass("ui-sortable-helper"), + this._mouseDrag(t), + !0 + ); + }, + _mouseDrag: function (t) { + var i, + s, + n, + a, + o = this.options, + r = !1; + for ( + this.position = this._generatePosition(t), + this.positionAbs = this._convertPositionTo("absolute"), + this.lastPositionAbs || + (this.lastPositionAbs = this.positionAbs), + this.options.scroll && + (this.scrollParent[0] !== this.document[0] && + "HTML" !== this.scrollParent[0].tagName + ? (this.overflowOffset.top + + this.scrollParent[0].offsetHeight - + t.pageY < + o.scrollSensitivity + ? (this.scrollParent[0].scrollTop = r = + this.scrollParent[0].scrollTop + + o.scrollSpeed) + : t.pageY - this.overflowOffset.top < + o.scrollSensitivity && + (this.scrollParent[0].scrollTop = r = + this.scrollParent[0].scrollTop - + o.scrollSpeed), + this.overflowOffset.left + + this.scrollParent[0].offsetWidth - + t.pageX < + o.scrollSensitivity + ? (this.scrollParent[0].scrollLeft = r = + this.scrollParent[0] + .scrollLeft + o.scrollSpeed) + : t.pageX - this.overflowOffset.left < + o.scrollSensitivity && + (this.scrollParent[0].scrollLeft = r = + this.scrollParent[0] + .scrollLeft - + o.scrollSpeed)) + : (t.pageY - this.document.scrollTop() < + o.scrollSensitivity + ? (r = this.document.scrollTop( + this.document.scrollTop() - + o.scrollSpeed + )) + : this.window.height() - + (t.pageY - + this.document.scrollTop()) < + o.scrollSensitivity && + (r = this.document.scrollTop( + this.document.scrollTop() + + o.scrollSpeed + )), + t.pageX - this.document.scrollLeft() < + o.scrollSensitivity + ? (r = this.document.scrollLeft( + this.document.scrollLeft() - + o.scrollSpeed + )) + : this.window.width() - + (t.pageX - + this.document.scrollLeft()) < + o.scrollSensitivity && + (r = this.document.scrollLeft( + this.document.scrollLeft() + + o.scrollSpeed + ))), + r !== !1 && + e.ui.ddmanager && + !o.dropBehaviour && + e.ui.ddmanager.prepareOffsets(this, t)), + this.positionAbs = this._convertPositionTo("absolute"), + (this.options.axis && "y" === this.options.axis) || + (this.helper[0].style.left = + this.position.left + "px"), + (this.options.axis && "x" === this.options.axis) || + (this.helper[0].style.top = + this.position.top + "px"), + i = this.items.length - 1; + i >= 0; + i-- + ) + if ( + ((s = this.items[i]), + (n = s.item[0]), + (a = this._intersectsWithPointer(s)), + a && + s.instance === this.currentContainer && + n !== this.currentItem[0] && + this.placeholder[1 === a ? "next" : "prev"]()[0] !== + n && + !e.contains(this.placeholder[0], n) && + ("semi-dynamic" === this.options.type + ? !e.contains(this.element[0], n) + : !0)) + ) { + if ( + ((this.direction = 1 === a ? "down" : "up"), + "pointer" !== this.options.tolerance && + !this._intersectsWithSides(s)) + ) + break; + this._rearrange(t, s), + this._trigger("change", t, this._uiHash()); + break; + } + return ( + this._contactContainers(t), + e.ui.ddmanager && e.ui.ddmanager.drag(this, t), + this._trigger("sort", t, this._uiHash()), + (this.lastPositionAbs = this.positionAbs), + !1 + ); + }, + _mouseStop: function (t, i) { + if (t) { + if ( + (e.ui.ddmanager && + !this.options.dropBehaviour && + e.ui.ddmanager.drop(this, t), + this.options.revert) + ) { + var s = this, + n = this.placeholder.offset(), + a = this.options.axis, + o = {}; + (a && "x" !== a) || + (o.left = + n.left - + this.offset.parent.left - + this.margins.left + + (this.offsetParent[0] === this.document[0].body + ? 0 + : this.offsetParent[0].scrollLeft)), + (a && "y" !== a) || + (o.top = + n.top - + this.offset.parent.top - + this.margins.top + + (this.offsetParent[0] === + this.document[0].body + ? 0 + : this.offsetParent[0].scrollTop)), + (this.reverting = !0), + e(this.helper).animate( + o, + parseInt(this.options.revert, 10) || 500, + function () { + s._clear(t); + } + ); + } else this._clear(t, i); + return !1; + } + }, + cancel: function () { + if (this.dragging) { + this._mouseUp({ target: null }), + "original" === this.options.helper + ? this.currentItem + .css(this._storedCSS) + .removeClass("ui-sortable-helper") + : this.currentItem.show(); + for (var t = this.containers.length - 1; t >= 0; t--) + this.containers[t]._trigger( + "deactivate", + null, + this._uiHash(this) + ), + this.containers[t].containerCache.over && + (this.containers[t]._trigger( + "out", + null, + this._uiHash(this) + ), + (this.containers[t].containerCache.over = 0)); + } + return ( + this.placeholder && + (this.placeholder[0].parentNode && + this.placeholder[0].parentNode.removeChild( + this.placeholder[0] + ), + "original" !== this.options.helper && + this.helper && + this.helper[0].parentNode && + this.helper.remove(), + e.extend(this, { + helper: null, + dragging: !1, + reverting: !1, + _noFinalSort: null, + }), + this.domPosition.prev + ? e(this.domPosition.prev).after(this.currentItem) + : e(this.domPosition.parent).prepend( + this.currentItem + )), + this + ); + }, + serialize: function (t) { + var i = this._getItemsAsjQuery(t && t.connected), + s = []; + return ( + (t = t || {}), + e(i).each(function () { + var i = ( + e(t.item || this).attr(t.attribute || "id") || "" + ).match(t.expression || /(.+)[\-=_](.+)/); + i && + s.push( + (t.key || i[1] + "[]") + + "=" + + (t.key && t.expression ? i[1] : i[2]) + ); + }), + !s.length && t.key && s.push(t.key + "="), + s.join("&") + ); + }, + toArray: function (t) { + var i = this._getItemsAsjQuery(t && t.connected), + s = []; + return ( + (t = t || {}), + i.each(function () { + s.push( + e(t.item || this).attr(t.attribute || "id") || "" + ); + }), + s + ); + }, + _intersectsWith: function (e) { + var t = this.positionAbs.left, + i = t + this.helperProportions.width, + s = this.positionAbs.top, + n = s + this.helperProportions.height, + a = e.left, + o = a + e.width, + r = e.top, + h = r + e.height, + l = this.offset.click.top, + u = this.offset.click.left, + c = "x" === this.options.axis || (s + l > r && h > s + l), + d = "y" === this.options.axis || (t + u > a && o > t + u), + p = c && d; + return "pointer" === this.options.tolerance || + this.options.forcePointerForContainers || + ("pointer" !== this.options.tolerance && + this.helperProportions[ + this.floating ? "width" : "height" + ] > e[this.floating ? "width" : "height"]) + ? p + : t + this.helperProportions.width / 2 > a && + o > i - this.helperProportions.width / 2 && + s + this.helperProportions.height / 2 > r && + h > n - this.helperProportions.height / 2; + }, + _intersectsWithPointer: function (e) { + var t = + "x" === this.options.axis || + this._isOverAxis( + this.positionAbs.top + this.offset.click.top, + e.top, + e.height + ), + i = + "y" === this.options.axis || + this._isOverAxis( + this.positionAbs.left + this.offset.click.left, + e.left, + e.width + ), + s = t && i, + n = this._getDragVerticalDirection(), + a = this._getDragHorizontalDirection(); + return s + ? this.floating + ? (a && "right" === a) || "down" === n + ? 2 + : 1 + : n && ("down" === n ? 2 : 1) + : !1; + }, + _intersectsWithSides: function (e) { + var t = this._isOverAxis( + this.positionAbs.top + this.offset.click.top, + e.top + e.height / 2, + e.height + ), + i = this._isOverAxis( + this.positionAbs.left + this.offset.click.left, + e.left + e.width / 2, + e.width + ), + s = this._getDragVerticalDirection(), + n = this._getDragHorizontalDirection(); + return this.floating && n + ? ("right" === n && i) || ("left" === n && !i) + : s && (("down" === s && t) || ("up" === s && !t)); + }, + _getDragVerticalDirection: function () { + var e = this.positionAbs.top - this.lastPositionAbs.top; + return 0 !== e && (e > 0 ? "down" : "up"); + }, + _getDragHorizontalDirection: function () { + var e = this.positionAbs.left - this.lastPositionAbs.left; + return 0 !== e && (e > 0 ? "right" : "left"); + }, + refresh: function (e) { + return ( + this._refreshItems(e), + this._setHandleClassName(), + this.refreshPositions(), + this + ); + }, + _connectWith: function () { + var e = this.options; + return e.connectWith.constructor === String + ? [e.connectWith] + : e.connectWith; + }, + _getItemsAsjQuery: function (t) { + function i() { + r.push(this); + } + var s, + n, + a, + o, + r = [], + h = [], + l = this._connectWith(); + if (l && t) + for (s = l.length - 1; s >= 0; s--) + for ( + a = e(l[s], this.document[0]), n = a.length - 1; + n >= 0; + n-- + ) + (o = e.data(a[n], this.widgetFullName)), + o && + o !== this && + !o.options.disabled && + h.push([ + e.isFunction(o.options.items) + ? o.options.items.call(o.element) + : e(o.options.items, o.element) + .not(".ui-sortable-helper") + .not( + ".ui-sortable-placeholder" + ), + o, + ]); + for ( + h.push([ + e.isFunction(this.options.items) + ? this.options.items.call(this.element, null, { + options: this.options, + item: this.currentItem, + }) + : e(this.options.items, this.element) + .not(".ui-sortable-helper") + .not(".ui-sortable-placeholder"), + this, + ]), + s = h.length - 1; + s >= 0; + s-- + ) + h[s][0].each(i); + return e(r); + }, + _removeCurrentsFromItems: function () { + var t = this.currentItem.find( + ":data(" + this.widgetName + "-item)" + ); + this.items = e.grep(this.items, function (e) { + for (var i = 0; t.length > i; i++) + if (t[i] === e.item[0]) return !1; + return !0; + }); + }, + _refreshItems: function (t) { + (this.items = []), (this.containers = [this]); + var i, + s, + n, + a, + o, + r, + h, + l, + u = this.items, + c = [ + [ + e.isFunction(this.options.items) + ? this.options.items.call(this.element[0], t, { + item: this.currentItem, + }) + : e(this.options.items, this.element), + this, + ], + ], + d = this._connectWith(); + if (d && this.ready) + for (i = d.length - 1; i >= 0; i--) + for ( + n = e(d[i], this.document[0]), s = n.length - 1; + s >= 0; + s-- + ) + (a = e.data(n[s], this.widgetFullName)), + a && + a !== this && + !a.options.disabled && + (c.push([ + e.isFunction(a.options.items) + ? a.options.items.call( + a.element[0], + t, + { item: this.currentItem } + ) + : e(a.options.items, a.element), + a, + ]), + this.containers.push(a)); + for (i = c.length - 1; i >= 0; i--) + for ( + o = c[i][1], r = c[i][0], s = 0, l = r.length; + l > s; + s++ + ) + (h = e(r[s])), + h.data(this.widgetName + "-item", o), + u.push({ + item: h, + instance: o, + width: 0, + height: 0, + left: 0, + top: 0, + }); + }, + refreshPositions: function (t) { + (this.floating = this.items.length + ? "x" === this.options.axis || + this._isFloating(this.items[0].item) + : !1), + this.offsetParent && + this.helper && + (this.offset.parent = this._getParentOffset()); + var i, s, n, a; + for (i = this.items.length - 1; i >= 0; i--) + (s = this.items[i]), + (s.instance !== this.currentContainer && + this.currentContainer && + s.item[0] !== this.currentItem[0]) || + ((n = this.options.toleranceElement + ? e(this.options.toleranceElement, s.item) + : s.item), + t || + ((s.width = n.outerWidth()), + (s.height = n.outerHeight())), + (a = n.offset()), + (s.left = a.left), + (s.top = a.top)); + if ( + this.options.custom && + this.options.custom.refreshContainers + ) + this.options.custom.refreshContainers.call(this); + else + for (i = this.containers.length - 1; i >= 0; i--) + (a = this.containers[i].element.offset()), + (this.containers[i].containerCache.left = a.left), + (this.containers[i].containerCache.top = a.top), + (this.containers[i].containerCache.width = + this.containers[i].element.outerWidth()), + (this.containers[i].containerCache.height = + this.containers[i].element.outerHeight()); + return this; + }, + _createPlaceholder: function (t) { + t = t || this; + var i, + s = t.options; + (s.placeholder && s.placeholder.constructor !== String) || + ((i = s.placeholder), + (s.placeholder = { + element: function () { + var s = t.currentItem[0].nodeName.toLowerCase(), + n = e("<" + s + ">", t.document[0]) + .addClass( + i || + t.currentItem[0].className + + " ui-sortable-placeholder" + ) + .removeClass("ui-sortable-helper"); + return ( + "tbody" === s + ? t._createTrPlaceholder( + t.currentItem.find("tr").eq(0), + e("", t.document[0]).appendTo(n) + ) + : "tr" === s + ? t._createTrPlaceholder(t.currentItem, n) + : "img" === s && + n.attr("src", t.currentItem.attr("src")), + i || n.css("visibility", "hidden"), + n + ); + }, + update: function (e, n) { + (!i || s.forcePlaceholderSize) && + (n.height() || + n.height( + t.currentItem.innerHeight() - + parseInt( + t.currentItem.css( + "paddingTop" + ) || 0, + 10 + ) - + parseInt( + t.currentItem.css( + "paddingBottom" + ) || 0, + 10 + ) + ), + n.width() || + n.width( + t.currentItem.innerWidth() - + parseInt( + t.currentItem.css( + "paddingLeft" + ) || 0, + 10 + ) - + parseInt( + t.currentItem.css( + "paddingRight" + ) || 0, + 10 + ) + )); + }, + })), + (t.placeholder = e( + s.placeholder.element.call(t.element, t.currentItem) + )), + t.currentItem.after(t.placeholder), + s.placeholder.update(t, t.placeholder); + }, + _createTrPlaceholder: function (t, i) { + var s = this; + t.children().each(function () { + e(" ", s.document[0]) + .attr("colspan", e(this).attr("colspan") || 1) + .appendTo(i); + }); + }, + _contactContainers: function (t) { + var i, + s, + n, + a, + o, + r, + h, + l, + u, + c, + d = null, + p = null; + for (i = this.containers.length - 1; i >= 0; i--) + if ( + !e.contains( + this.currentItem[0], + this.containers[i].element[0] + ) + ) + if ( + this._intersectsWith( + this.containers[i].containerCache + ) + ) { + if ( + d && + e.contains( + this.containers[i].element[0], + d.element[0] + ) + ) + continue; + (d = this.containers[i]), (p = i); + } else + this.containers[i].containerCache.over && + (this.containers[i]._trigger( + "out", + t, + this._uiHash(this) + ), + (this.containers[i].containerCache.over = 0)); + if (d) + if (1 === this.containers.length) + this.containers[p].containerCache.over || + (this.containers[p]._trigger( + "over", + t, + this._uiHash(this) + ), + (this.containers[p].containerCache.over = 1)); + else { + for ( + n = 1e4, + a = null, + u = + d.floating || + this._isFloating(this.currentItem), + o = u ? "left" : "top", + r = u ? "width" : "height", + c = u ? "clientX" : "clientY", + s = this.items.length - 1; + s >= 0; + s-- + ) + e.contains( + this.containers[p].element[0], + this.items[s].item[0] + ) && + this.items[s].item[0] !== this.currentItem[0] && + ((h = this.items[s].item.offset()[o]), + (l = !1), + t[c] - h > this.items[s][r] / 2 && (l = !0), + n > Math.abs(t[c] - h) && + ((n = Math.abs(t[c] - h)), + (a = this.items[s]), + (this.direction = l ? "up" : "down"))); + if (!a && !this.options.dropOnEmpty) return; + if (this.currentContainer === this.containers[p]) + return ( + this.currentContainer.containerCache.over || + (this.containers[p]._trigger( + "over", + t, + this._uiHash() + ), + (this.currentContainer.containerCache.over = 1)), + void 0 + ); + a + ? this._rearrange(t, a, null, !0) + : this._rearrange( + t, + null, + this.containers[p].element, + !0 + ), + this._trigger("change", t, this._uiHash()), + this.containers[p]._trigger( + "change", + t, + this._uiHash(this) + ), + (this.currentContainer = this.containers[p]), + this.options.placeholder.update( + this.currentContainer, + this.placeholder + ), + this.containers[p]._trigger( + "over", + t, + this._uiHash(this) + ), + (this.containers[p].containerCache.over = 1); + } + }, + _createHelper: function (t) { + var i = this.options, + s = e.isFunction(i.helper) + ? e( + i.helper.apply(this.element[0], [ + t, + this.currentItem, + ]) + ) + : "clone" === i.helper + ? this.currentItem.clone() + : this.currentItem; + return ( + s.parents("body").length || + e( + "parent" !== i.appendTo + ? i.appendTo + : this.currentItem[0].parentNode + )[0].appendChild(s[0]), + s[0] === this.currentItem[0] && + (this._storedCSS = { + width: this.currentItem[0].style.width, + height: this.currentItem[0].style.height, + position: this.currentItem.css("position"), + top: this.currentItem.css("top"), + left: this.currentItem.css("left"), + }), + (!s[0].style.width || i.forceHelperSize) && + s.width(this.currentItem.width()), + (!s[0].style.height || i.forceHelperSize) && + s.height(this.currentItem.height()), + s + ); + }, + _adjustOffsetFromHelper: function (t) { + "string" == typeof t && (t = t.split(" ")), + e.isArray(t) && (t = { left: +t[0], top: +t[1] || 0 }), + "left" in t && + (this.offset.click.left = t.left + this.margins.left), + "right" in t && + (this.offset.click.left = + this.helperProportions.width - + t.right + + this.margins.left), + "top" in t && + (this.offset.click.top = t.top + this.margins.top), + "bottom" in t && + (this.offset.click.top = + this.helperProportions.height - + t.bottom + + this.margins.top); + }, + _getParentOffset: function () { + this.offsetParent = this.helper.offsetParent(); + var t = this.offsetParent.offset(); + return ( + "absolute" === this.cssPosition && + this.scrollParent[0] !== this.document[0] && + e.contains( + this.scrollParent[0], + this.offsetParent[0] + ) && + ((t.left += this.scrollParent.scrollLeft()), + (t.top += this.scrollParent.scrollTop())), + (this.offsetParent[0] === this.document[0].body || + (this.offsetParent[0].tagName && + "html" === + this.offsetParent[0].tagName.toLowerCase() && + e.ui.ie)) && + (t = { top: 0, left: 0 }), + { + top: + t.top + + (parseInt( + this.offsetParent.css("borderTopWidth"), + 10 + ) || 0), + left: + t.left + + (parseInt( + this.offsetParent.css("borderLeftWidth"), + 10 + ) || 0), + } + ); + }, + _getRelativeOffset: function () { + if ("relative" === this.cssPosition) { + var e = this.currentItem.position(); + return { + top: + e.top - + (parseInt(this.helper.css("top"), 10) || 0) + + this.scrollParent.scrollTop(), + left: + e.left - + (parseInt(this.helper.css("left"), 10) || 0) + + this.scrollParent.scrollLeft(), + }; + } + return { top: 0, left: 0 }; + }, + _cacheMargins: function () { + this.margins = { + left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, + top: parseInt(this.currentItem.css("marginTop"), 10) || 0, + }; + }, + _cacheHelperProportions: function () { + this.helperProportions = { + width: this.helper.outerWidth(), + height: this.helper.outerHeight(), + }; + }, + _setContainment: function () { + var t, + i, + s, + n = this.options; + "parent" === n.containment && + (n.containment = this.helper[0].parentNode), + ("document" === n.containment || + "window" === n.containment) && + (this.containment = [ + 0 - + this.offset.relative.left - + this.offset.parent.left, + 0 - + this.offset.relative.top - + this.offset.parent.top, + "document" === n.containment + ? this.document.width() + : this.window.width() - + this.helperProportions.width - + this.margins.left, + ("document" === n.containment + ? this.document.width() + : this.window.height() || + this.document[0].body.parentNode + .scrollHeight) - + this.helperProportions.height - + this.margins.top, + ]), + /^(document|window|parent)$/.test(n.containment) || + ((t = e(n.containment)[0]), + (i = e(n.containment).offset()), + (s = "hidden" !== e(t).css("overflow")), + (this.containment = [ + i.left + + (parseInt(e(t).css("borderLeftWidth"), 10) || + 0) + + (parseInt(e(t).css("paddingLeft"), 10) || 0) - + this.margins.left, + i.top + + (parseInt(e(t).css("borderTopWidth"), 10) || + 0) + + (parseInt(e(t).css("paddingTop"), 10) || 0) - + this.margins.top, + i.left + + (s + ? Math.max(t.scrollWidth, t.offsetWidth) + : t.offsetWidth) - + (parseInt(e(t).css("borderLeftWidth"), 10) || + 0) - + (parseInt(e(t).css("paddingRight"), 10) || 0) - + this.helperProportions.width - + this.margins.left, + i.top + + (s + ? Math.max(t.scrollHeight, t.offsetHeight) + : t.offsetHeight) - + (parseInt(e(t).css("borderTopWidth"), 10) || + 0) - + (parseInt(e(t).css("paddingBottom"), 10) || 0) - + this.helperProportions.height - + this.margins.top, + ])); + }, + _convertPositionTo: function (t, i) { + i || (i = this.position); + var s = "absolute" === t ? 1 : -1, + n = + "absolute" !== this.cssPosition || + (this.scrollParent[0] !== this.document[0] && + e.contains( + this.scrollParent[0], + this.offsetParent[0] + )) + ? this.scrollParent + : this.offsetParent, + a = /(html|body)/i.test(n[0].tagName); + return { + top: + i.top + + this.offset.relative.top * s + + this.offset.parent.top * s - + ("fixed" === this.cssPosition + ? -this.scrollParent.scrollTop() + : a + ? 0 + : n.scrollTop()) * + s, + left: + i.left + + this.offset.relative.left * s + + this.offset.parent.left * s - + ("fixed" === this.cssPosition + ? -this.scrollParent.scrollLeft() + : a + ? 0 + : n.scrollLeft()) * + s, + }; + }, + _generatePosition: function (t) { + var i, + s, + n = this.options, + a = t.pageX, + o = t.pageY, + r = + "absolute" !== this.cssPosition || + (this.scrollParent[0] !== this.document[0] && + e.contains( + this.scrollParent[0], + this.offsetParent[0] + )) + ? this.scrollParent + : this.offsetParent, + h = /(html|body)/i.test(r[0].tagName); + return ( + "relative" !== this.cssPosition || + (this.scrollParent[0] !== this.document[0] && + this.scrollParent[0] !== this.offsetParent[0]) || + (this.offset.relative = this._getRelativeOffset()), + this.originalPosition && + (this.containment && + (t.pageX - this.offset.click.left < + this.containment[0] && + (a = + this.containment[0] + + this.offset.click.left), + t.pageY - this.offset.click.top < + this.containment[1] && + (o = + this.containment[1] + + this.offset.click.top), + t.pageX - this.offset.click.left > + this.containment[2] && + (a = + this.containment[2] + + this.offset.click.left), + t.pageY - this.offset.click.top > + this.containment[3] && + (o = + this.containment[3] + + this.offset.click.top)), + n.grid && + ((i = + this.originalPageY + + Math.round( + (o - this.originalPageY) / n.grid[1] + ) * + n.grid[1]), + (o = this.containment + ? i - this.offset.click.top >= + this.containment[1] && + i - this.offset.click.top <= + this.containment[3] + ? i + : i - this.offset.click.top >= + this.containment[1] + ? i - n.grid[1] + : i + n.grid[1] + : i), + (s = + this.originalPageX + + Math.round( + (a - this.originalPageX) / n.grid[0] + ) * + n.grid[0]), + (a = this.containment + ? s - this.offset.click.left >= + this.containment[0] && + s - this.offset.click.left <= + this.containment[2] + ? s + : s - this.offset.click.left >= + this.containment[0] + ? s - n.grid[0] + : s + n.grid[0] + : s))), + { + top: + o - + this.offset.click.top - + this.offset.relative.top - + this.offset.parent.top + + ("fixed" === this.cssPosition + ? -this.scrollParent.scrollTop() + : h + ? 0 + : r.scrollTop()), + left: + a - + this.offset.click.left - + this.offset.relative.left - + this.offset.parent.left + + ("fixed" === this.cssPosition + ? -this.scrollParent.scrollLeft() + : h + ? 0 + : r.scrollLeft()), + } + ); + }, + _rearrange: function (e, t, i, s) { + i + ? i[0].appendChild(this.placeholder[0]) + : t.item[0].parentNode.insertBefore( + this.placeholder[0], + "down" === this.direction + ? t.item[0] + : t.item[0].nextSibling + ), + (this.counter = this.counter ? ++this.counter : 1); + var n = this.counter; + this._delay(function () { + n === this.counter && this.refreshPositions(!s); + }); + }, + _clear: function (e, t) { + function i(e, t, i) { + return function (s) { + i._trigger(e, s, t._uiHash(t)); + }; + } + this.reverting = !1; + var s, + n = []; + if ( + (!this._noFinalSort && + this.currentItem.parent().length && + this.placeholder.before(this.currentItem), + (this._noFinalSort = null), + this.helper[0] === this.currentItem[0]) + ) { + for (s in this._storedCSS) + ("auto" === this._storedCSS[s] || + "static" === this._storedCSS[s]) && + (this._storedCSS[s] = ""); + this.currentItem + .css(this._storedCSS) + .removeClass("ui-sortable-helper"); + } else this.currentItem.show(); + for ( + this.fromOutside && + !t && + n.push(function (e) { + this._trigger( + "receive", + e, + this._uiHash(this.fromOutside) + ); + }), + (!this.fromOutside && + this.domPosition.prev === + this.currentItem + .prev() + .not(".ui-sortable-helper")[0] && + this.domPosition.parent === + this.currentItem.parent()[0]) || + t || + n.push(function (e) { + this._trigger("update", e, this._uiHash()); + }), + this !== this.currentContainer && + (t || + (n.push(function (e) { + this._trigger("remove", e, this._uiHash()); + }), + n.push( + function (e) { + return function (t) { + e._trigger( + "receive", + t, + this._uiHash(this) + ); + }; + }.call(this, this.currentContainer) + ), + n.push( + function (e) { + return function (t) { + e._trigger( + "update", + t, + this._uiHash(this) + ); + }; + }.call(this, this.currentContainer) + ))), + s = this.containers.length - 1; + s >= 0; + s-- + ) + t || n.push(i("deactivate", this, this.containers[s])), + this.containers[s].containerCache.over && + (n.push(i("out", this, this.containers[s])), + (this.containers[s].containerCache.over = 0)); + if ( + (this.storedCursor && + (this.document + .find("body") + .css("cursor", this.storedCursor), + this.storedStylesheet.remove()), + this._storedOpacity && + this.helper.css("opacity", this._storedOpacity), + this._storedZIndex && + this.helper.css( + "zIndex", + "auto" === this._storedZIndex + ? "" + : this._storedZIndex + ), + (this.dragging = !1), + t || this._trigger("beforeStop", e, this._uiHash()), + this.placeholder[0].parentNode.removeChild( + this.placeholder[0] + ), + this.cancelHelperRemoval || + (this.helper[0] !== this.currentItem[0] && + this.helper.remove(), + (this.helper = null)), + !t) + ) { + for (s = 0; n.length > s; s++) n[s].call(this, e); + this._trigger("stop", e, this._uiHash()); + } + return (this.fromOutside = !1), !this.cancelHelperRemoval; + }, + _trigger: function () { + e.Widget.prototype._trigger.apply(this, arguments) === !1 && + this.cancel(); + }, + _uiHash: function (t) { + var i = t || this; + return { + helper: i.helper, + placeholder: i.placeholder || e([]), + position: i.position, + originalPosition: i.originalPosition, + offset: i.positionAbs, + item: i.currentItem, + sender: t ? t.element : null, + }; + }, + }); +}); diff --git a/html/admin/admin_panels.css b/html/admin/admin_panels.css index 5c8329865840..5fa5b42277d6 100644 --- a/html/admin/admin_panels.css +++ b/html/admin/admin_panels.css @@ -1,10 +1,10 @@ .column { - float: left; - flex-wrap: wrap; + float: left; + flex-wrap: wrap; } .left { - width: 280px; + width: 280px; } .spacer { @@ -12,31 +12,31 @@ } .row { - content: ''; - display: table; - clear: both; + content: ""; + display: table; + clear: both; } .inputbox { - position: absolute; - top: 0px; - left: 4px; - width: 14px; - height: 14px; - background: #e6e6e6; + position: absolute; + top: 0px; + left: 4px; + width: 14px; + height: 14px; + background: #e6e6e6; } .select { - position: relative; - display: inline-block; + position: relative; + display: inline-block; } .hidden { - display: none; + display: none; } .textbox { - resize: none; - min-height: 40px; - width: 340px; + resize: none; + min-height: 40px; + width: 340px; } diff --git a/html/admin/admin_panels_css3.css b/html/admin/admin_panels_css3.css index 71861c88bb04..bcf3624f2248 100644 --- a/html/admin/admin_panels_css3.css +++ b/html/admin/admin_panels_css3.css @@ -1,78 +1,78 @@ .inputlabel { - position: relative; - display: inline; - cursor: pointer; - padding-left: 20px; + position: relative; + display: inline; + cursor: pointer; + padding-left: 20px; } .inputlabel input { - position: absolute; - z-index: -1; - opacity: 0; + position: absolute; + z-index: -1; + opacity: 0; } .radio .inputbox { - border-radius: 50%; + border-radius: 50%; } .inputlabel:hover input ~ .inputbox { - background: #b4b4b4; + background: #b4b4b4; } .inputlabel input:checked ~ .inputbox { - background: #2196F3; + background: #2196f3; } -.inputlabel:hover input:not([disabled]):checked ~ .inputbox{ - background: #0a6ebd; +.inputlabel:hover input:not([disabled]):checked ~ .inputbox { + background: #0a6ebd; } .inputlabel input:disabled ~ .inputbox { - pointer-events: none; - background: #838383; + pointer-events: none; + background: #838383; } .banned { - background: #ff4e4e; + background: #ff4e4e; } .inputlabel:hover input ~ .banned { - background: #ff0000; + background: #ff0000; } .inputlabel input:checked ~ .banned { - background: #a80000; + background: #a80000; } -.inputlabel:hover input:not([disabled]):checked ~ .banned{ - background: #810000; +.inputlabel:hover input:not([disabled]):checked ~ .banned { + background: #810000; } .inputbox:after { - position: absolute; - display: none; - content: ''; + position: absolute; + display: none; + content: ""; } .inputlabel input:checked ~ .inputbox:after { - display: block; + display: block; } .checkbox .inputbox:after { - top: 1px; - left: 5px; - width: 3px; - height: 9px; - transform: rotate(45deg); - border: solid #fff; - border-width: 0 2px 2px 0; + top: 1px; + left: 5px; + width: 3px; + height: 9px; + transform: rotate(45deg); + border: solid #fff; + border-width: 0 2px 2px 0; } .radio .inputbox:after { - top: 4px; - left: 4px; - width: 6px; - height: 6px; - border-radius: 50%; - background: #fff; + top: 4px; + left: 4px; + width: 6px; + height: 6px; + border-radius: 50%; + background: #fff; } diff --git a/html/admin/banpanel.css b/html/admin/banpanel.css index 5ce3c49887c6..f6d9b1d81e90 100644 --- a/html/admin/banpanel.css +++ b/html/admin/banpanel.css @@ -1,74 +1,74 @@ .middle { - width: 80px; + width: 80px; } .right { - width: 150px; + width: 150px; } .reason { - resize: none; - min-height: 40px; - width: 340px; + resize: none; + min-height: 40px; + width: 340px; } .rolegroup { - padding: 3px; - width: 430px; - border: none; - text-align: center; - outline: none; - display: inline-block; + padding: 3px; + width: 430px; + border: none; + text-align: center; + outline: none; + display: inline-block; } .long { - width: 860px; + width: 860px; } .content { - text-align: center; + text-align: center; } .command { - background-color: #948f02; + background-color: #948f02; } .security { - background-color: #a30000; + background-color: #a30000; } .engineering { - background-color: #fb5613; + background-color: #fb5613; } .medical { - background-color: #337296; + background-color: #337296; } .science { - background-color: #993399; + background-color: #993399; } .supply { - background-color: #a8732b; + background-color: #a8732b; } .silicon { - background-color: #ff00ff; + background-color: #ff00ff; } .abstract { - background-color: #708090; + background-color: #708090; } .service { - background-color: #6eaa2c; + background-color: #6eaa2c; } .ghostandotherroles { - background-color: #5c00e6; + background-color: #5c00e6; } .antagonistpositions { - background-color: #6d3f40; + background-color: #6d3f40; } diff --git a/html/admin/banpanel.js b/html/admin/banpanel.js index cc9af0985493..3429ebead207 100644 --- a/html/admin/banpanel.js +++ b/html/admin/banpanel.js @@ -1,16 +1,19 @@ function toggle_head(source, ext) { - document.getElementById(source.id.slice(0, -4) + ext).checked = source.checked; + document.getElementById(source.id.slice(0, -4) + ext).checked = + source.checked; } function toggle_checkboxes(source, ext) { - var checkboxes = document.getElementsByClassName(source.name); - for (var i = 0, n = checkboxes.length; i < n; i++) { - checkboxes[i].checked = source.checked; - if (checkboxes[i].id) { - var idfound = document.getElementById(checkboxes[i].id.slice(0, -4) + ext); - if (idfound) { - idfound.checked = source.checked; - } - } - } + var checkboxes = document.getElementsByClassName(source.name); + for (var i = 0, n = checkboxes.length; i < n; i++) { + checkboxes[i].checked = source.checked; + if (checkboxes[i].id) { + var idfound = document.getElementById( + checkboxes[i].id.slice(0, -4) + ext + ); + if (idfound) { + idfound.checked = source.checked; + } + } + } } diff --git a/html/admin/search.js b/html/admin/search.js index ded0b9284467..8c3bccba2c38 100644 --- a/html/admin/search.js +++ b/html/admin/search.js @@ -1,33 +1,33 @@ -function selectTextField(){ - var filter_text = document.getElementById('filter'); +function selectTextField() { + var filter_text = document.getElementById("filter"); filter_text.focus(); filter_text.select(); } -function updateSearch(){ - var input_form = document.getElementById('filter'); +function updateSearch() { + var input_form = document.getElementById("filter"); var filter = input_form.value.toLowerCase(); input_form.value = filter; - var table = document.getElementById('searchable'); - var alt_style = 'norm'; - for(var i = 0; i < table.rows.length; i++){ - try{ + var table = document.getElementById("searchable"); + var alt_style = "norm"; + for (var i = 0; i < table.rows.length; i++) { + try { var row = table.rows[i]; - if(row.className == 'title') continue; - var found=0; - for(var j = 0; j < row.cells.length; j++){ + if (row.className == "title") continue; + var found = 0; + for (var j = 0; j < row.cells.length; j++) { var cell = row.cells[j]; - if(cell.innerText.toLowerCase().indexOf(filter) != -1){ - found=1; + if (cell.innerText.toLowerCase().indexOf(filter) != -1) { + found = 1; break; } } - if(found == 0) row.style.display='none'; - else{ - row.style.display='block'; + if (found == 0) row.style.display = "none"; + else { + row.style.display = "block"; row.className = alt_style; - if(alt_style == 'alt') alt_style = 'norm'; - else alt_style = 'alt'; + if (alt_style == "alt") alt_style = "norm"; + else alt_style = "alt"; } - }catch(err) { } + } catch (err) {} } -} \ No newline at end of file +} diff --git a/html/admin/unbanpanel.css b/html/admin/unbanpanel.css index cf4aae20c99f..f9f1a5313cbb 100644 --- a/html/admin/unbanpanel.css +++ b/html/admin/unbanpanel.css @@ -1,61 +1,61 @@ body { - margin: 0; + margin: 0; } .searchbar { - overflow: hidden; - background-color: #272727; - position: fixed; - top: 0; - width: 100%; - font-weight: bold; - text-align: center; - line-height: 30px; - z-index: 1; + overflow: hidden; + background-color: #272727; + position: fixed; + top: 0; + width: 100%; + font-weight: bold; + text-align: center; + line-height: 30px; + z-index: 1; } .main { - padding: 16px; - margin-top: 20px; - text-align: center; + padding: 16px; + margin-top: 20px; + text-align: center; } .banbox { - position: relative; - width: 90%; - display: table; - flex-direction: column; - border: 1px solid #161616; - margin-right: auto; - margin-left: auto; - margin-bottom: 10px; - border-radius: 3px; + position: relative; + width: 90%; + display: table; + flex-direction: column; + border: 1px solid #161616; + margin-right: auto; + margin-left: auto; + margin-bottom: 10px; + border-radius: 3px; } .header { - width: 100%; - background-color:rgba(0,0,0,0.3); + width: 100%; + background-color: rgba(0, 0, 0, 0.3); } .container { - display: table; - width: 100%; + display: table; + width: 100%; } .reason { - display: table-cell; - width: 90%; + display: table-cell; + width: 90%; } .edit { - display: table-cell; - width: 10%; + display: table-cell; + width: 10%; } .banned { - background-color:#ff5555; + background-color: #ff5555; } .unbanned { - background-color:#00b75c; + background-color: #00b75c; } diff --git a/html/admin/view_variables.css b/html/admin/view_variables.css index b646e4ced161..45374d34ffa7 100644 --- a/html/admin/view_variables.css +++ b/html/admin/view_variables.css @@ -9,15 +9,17 @@ body { } table.matrix { - border-collapse: collapse; border-spacing: 0; + border-collapse: collapse; + border-spacing: 0; font-size: 7pt; } -.matrix td{ +.matrix td { text-align: center; padding: 0 1ex 0ex 1ex; } table.matrixbrak { - border-collapse: collapse; border-spacing: 0; + border-collapse: collapse; + border-spacing: 0; } table.matrixbrak td.lbrak { width: 0.8ex; @@ -28,10 +30,10 @@ table.matrixbrak td.lbrak { border-right: none; } table.matrixbrak td.rbrak { - width: 0.8ex; - font-size: 50%; - border-top: solid 0.25ex black; - border-bottom: solid 0.25ex black; - border-right: solid 0.5ex black; - border-left: none; + width: 0.8ex; + font-size: 50%; + border-top: solid 0.25ex black; + border-bottom: solid 0.25ex black; + border-right: solid 0.5ex black; + border-left: none; } diff --git a/html/archivedchangelog.html b/html/archivedchangelog.html index 284ea5038b90..f364e8d9e5c8 100644 --- a/html/archivedchangelog.html +++ b/html/archivedchangelog.html @@ -1160,7 +1160,7 @@

Paprika updated:

Tkdrg updated:

    -
  • Cutting-edge research in a secret Nanotransen lab has shed light into a revolutionary form of communication technology known as 'chat'. The Personal Data Assistants of Space Station 13 have been deployed with an experimental module implementing this system, dubbed 'Nanotransen Relay Chat'.
  • +
  • Cutting-edge research in a secret Nanotrasen lab has shed light into a revolutionary form of communication technology known as 'chat'. The Personal Data Assistants of Space Station 13 have been deployed with an experimental module implementing this system, dubbed 'Nanotrasen Relay Chat'.

30 October 2014

@@ -6658,7 +6658,7 @@

Erro updated:

  • Agouri updated:
      -
    • I was always bothered by how unprofessional it was of Nanotransen (in before >Nanotransen >professionalism) to just lay expensive spacesuits in racks and just let them be. Well, no more. Introducing...
    • +
    • I was always bothered by how unprofessional it was of Nanotrasen (in before >Nanotrasen >professionalism) to just lay expensive spacesuits in racks and just let them be. Well, no more. Introducing...
    • Suit Storage Units. Rumored to actually be repurposed space radiators, these wondrous machines will store any kind of spacesuit in a clean and sterile environment.
    • The user can interact with the unit in various ways. You can start a UV cauterisation cycle to disinfect its contents, effectively sterilising and cleaning eveyrthing from the suits/helmets stored inside.
    • A sneaky yordle can also hide in it, if he so desires, or hack it, or lock it or do a plethora of shady stuff with it. Beware, though, there's plenty of dangerous things you can do with it, both to you and your target.
    • @@ -7011,8 +7011,8 @@

      Erro updated:

    • Any firearms now send you to critical in 1-2 shots. Doctors need to get the wounded man to surgery to provide good treatment. Guide for bullet removal is up on the wiki.
    • Brute packs and kelotane removed altogether to encourage use of surgery for heavy injury.
    • Just kidding
    • -
    • Fireaxe cabinets and Extinguisher wall-mounted closets now added around the station, thank Nanotransen for that.
    • -
    • Because of Nanotransen being Nanotransen, the fire cabinets are electrically operated. AIs can lock them and you can hack them if you want the precious axe inside and it's locked. The axe itself uses an experimental two-handed system, so while it's FUCKING ROBUST you need to wield it to fully unlock its capabilities. Pick up axe and click it in your hand to wield it, click it again or drop to unwield and carry it.You can also use it as a crowbar for cranking doors and firedoors open when wielded, utilising the lever on the back of the blade. And I didn't lie to you. It's fucking robust.
    • +
    • Fireaxe cabinets and Extinguisher wall-mounted closets now added around the station, thank Nanotrasen for that.
    • +
    • Because of Nanotrasen being Nanotrasen, the fire cabinets are electrically operated. AIs can lock them and you can hack them if you want the precious axe inside and it's locked. The axe itself uses an experimental two-handed system, so while it's FUCKING ROBUST you need to wield it to fully unlock its capabilities. Pick up axe and click it in your hand to wield it, click it again or drop to unwield and carry it.You can also use it as a crowbar for cranking doors and firedoors open when wielded, utilising the lever on the back of the blade. And I didn't lie to you. It's fucking robust.
    • Fireaxe, when wielded, fully takes up your other hand as well. You can't switch hands and the fireaxe itself is unwieldy and won't fit anywhere.
    • A fireaxe cabinet can also be smashed if you've got a strong enough object in your hand.
    • EXTINGUISHER CLOSETS, made by dear Erro, can be found in abundance around the station. Click once to open them, again to retrieve the extinguisher, attack with extinguisher to place it back. Limited uses, but we've got plans for our little friend. diff --git a/html/browser/common.css b/html/browser/common.css index 3da2a26fc6f2..79cc551a219b 100644 --- a/html/browser/common.css +++ b/html/browser/common.css @@ -1,5 +1,4 @@ -body -{ +body { padding: 0; margin: 0; background-color: #272727; @@ -8,192 +7,187 @@ body line-height: 170%; } -hr -{ +hr { background-color: #40628a; height: 1px; } -a, a:link, a:visited, a:active, .linkOn, .linkOff -{ +a, +a:link, +a:visited, +a:active, +.linkOn, +.linkOff { color: #ffffff; text-decoration: none; background: #40628a; border: 1px solid #161616; padding: 1px 4px 1px 4px; margin: 0 2px 0 0; - cursor:default; + cursor: default; } -a:hover -{ +a:hover { color: #40628a; background: #ffffff; } -a.white, a.white:link, a.white:visited, a.white:active -{ +a.white, +a.white:link, +a.white:visited, +a.white:active { color: #40628a; text-decoration: none; background: #ffffff; border: 1px solid #161616; padding: 1px 4px 1px 4px; margin: 0 2px 0 0; - cursor:default; + cursor: default; } -a.white:hover -{ +a.white:hover { color: #ffffff; background: #40628a; } -.linkOn, a.linkOn:link, a.linkOn:visited, a.linkOn:active, a.linkOn:hover -{ +.linkOn, +a.linkOn:link, +a.linkOn:visited, +a.linkOn:active, +a.linkOn:hover { color: #ffffff; background: #2f943c; border-color: #24722e; } -.linkOff, a.linkOff:link, a.linkOff:visited, a.linkOff:active, a.linkOff:hover -{ +.linkOff, +a.linkOff:link, +a.linkOff:visited, +a.linkOff:active, +a.linkOff:hover { color: #ffffff; background: #999999; border-color: #666666; } -a.icon, .linkOn.icon, .linkOff.icon -{ +a.icon, +.linkOn.icon, +.linkOff.icon { position: relative; padding: 1px 4px 2px 20px; } -a.icon img, .linkOn.icon img -{ +a.icon img, +.linkOn.icon img { position: absolute; top: 0; left: 0; width: 18px; height: 18px; } -ul -{ +ul { padding: 4px 0 0 10px; margin: 0; list-style-type: none; } -li -{ +li { padding: 0 0 2px 0; } -img, a img -{ - border-style:none; +img, +a img { + border-style: none; } -h1, h2, h3, h4, h5, h6 -{ +h1, +h2, +h3, +h4, +h5, +h6 { margin: 0; padding: 16px 0 8px 0; color: #517087; } -h1 -{ +h1 { font-size: 15px; } -h2 -{ +h2 { font-size: 14px; } -h3 -{ +h3 { font-size: 13px; } -h4 -{ +h4 { font-size: 12px; } -.uiWrapper -{ - +.uiWrapper { width: 100%; height: 100%; } -.uiTitle -{ +.uiTitle { clear: both; padding: 6px 8px 6px 8px; border-bottom: 2px solid #161616; background: #383838; - color: #98B0C3; + color: #98b0c3; font-size: 16px; } -.uiTitle.icon -{ +.uiTitle.icon { padding: 6px 8px 6px 42px; background-position: 2px 50%; background-repeat: no-repeat; } -.uiContent -{ +.uiContent { clear: both; padding: 8px; font-family: Verdana, Geneva, sans-serif; } -.good -{ +.good { color: #00ff00; } -.average -{ +.average { color: #d09000; } -.bad -{ +.bad { color: #ff0000; } -.highlight -{ - color: #8BA5C4; +.highlight { + color: #8ba5c4; } -.dark -{ +.dark { color: #272727; } -.notice -{ +.notice { position: relative; - background: #E9C183; - color: #15345A; + background: #e9c183; + color: #15345a; font-size: 10px; font-style: italic; padding: 2px 4px 0 4px; margin: 4px; } -.notice.icon -{ +.notice.icon { padding: 2px 4px 0 20px; } -.notice img -{ +.notice img { position: absolute; top: 0; left: 0; @@ -201,13 +195,11 @@ h4 height: 16px; } -div.notice -{ +div.notice { clear: both; } -.statusDisplay -{ +.statusDisplay { background: #000000; color: #ffffff; border: 1px solid #40628a; @@ -215,34 +207,29 @@ div.notice margin: 3px 0; } -.statusLabel -{ +.statusLabel { width: 138px; float: left; overflow: hidden; - color: #98B0C3; + color: #98b0c3; } -.statusValue -{ +.statusValue { float: left; } -.block -{ +.block { padding: 8px; margin: 10px 4px 4px 4px; border: 1px solid #40628a; background-color: #202020; } -.block h3 -{ +.block h3 { padding: 0; } -.progressBar -{ +.progressBar { width: 240px; height: 14px; border: 1px solid #666666; @@ -251,59 +238,49 @@ div.notice overflow: hidden; } -.progressFill -{ +.progressFill { width: 100%; height: 100%; background: #40628a; overflow: hidden; } -.progressFill.good -{ +.progressFill.good { color: #ffffff; background: #00ff00; } -.progressFill.average -{ +.progressFill.average { color: #ffffff; background: #d09000; } -.progressFill.bad -{ +.progressFill.bad { color: #ffffff; background: #ff0000; } -.progressFill.highlight -{ +.progressFill.highlight { color: #ffffff; - background: #8BA5C4; + background: #8ba5c4; } -.clearBoth -{ +.clearBoth { clear: both; } -.clearLeft -{ +.clearLeft { clear: left; } -.clearRight -{ +.clearRight { clear: right; } -.line -{ +.line { width: 100%; clear: both; } -.pda_icon -{ +.pda_icon { vertical-align: -3px; -} \ No newline at end of file +} diff --git a/html/browser/playeroptions.css b/html/browser/playeroptions.css index 8603930efbb2..8afb7661b461 100644 --- a/html/browser/playeroptions.css +++ b/html/browser/playeroptions.css @@ -1,17 +1,17 @@ .job { - display: block; - width: 173px; + display: block; + width: 173px; } .command { - font-weight: bold; + font-weight: bold; } .priority { - color: #00ff00; - font-weight: bold; + color: #00ff00; + font-weight: bold; } .nopositions { - font-style: italic; + font-style: italic; } diff --git a/html/browser/roundend.css b/html/browser/roundend.css index 2558d97ad62a..2009f09356f5 100644 --- a/html/browser/roundend.css +++ b/html/browser/roundend.css @@ -21,11 +21,13 @@ } .marooned { - color: rgb(109, 109, 255); font-weight: bold; + color: rgb(109, 109, 255); + font-weight: bold; } .header { - font-size: 24px; font-weight: bold; + font-size: 24px; + font-weight: bold; } .big { @@ -37,7 +39,7 @@ } .codephrase { - color : #ef2f3c; + color: #ef2f3c; } .redborder { @@ -49,7 +51,7 @@ } .clockborder { - border-bottom: 2px solid #B18B25; + border-bottom: 2px solid #b18b25; } .stationborder { @@ -84,12 +86,12 @@ body { z-index: 1; width: 220px; font-size: 14px; - border-width: 4px; + border-width: 4px; border-style: solid; border-color: #272727; - background: #363636; - color: white; - top: 100%; + background: #363636; + color: white; + top: 100%; left: 30px; } diff --git a/html/browser/scannernew.css b/html/browser/scannernew.css index ac1c6c242483..5f6ed87f8cdc 100644 --- a/html/browser/scannernew.css +++ b/html/browser/scannernew.css @@ -1,5 +1,4 @@ -.dnaBlockNumber -{ +.dnaBlockNumber { font-family: Fixed, monospace; float: left; color: #ffffff; @@ -9,38 +8,31 @@ margin: 2px 2px 0 10px; text-align: center; } -.dnaBlock -{ +.dnaBlock { font-family: Fixed, monospace; float: left; } -a.incompleteBlock -{ +a.incompleteBlock { background: #8a4040; } -a.incompleteBlock:hover -{ +a.incompleteBlock:hover { color: #40628a; background: #ffffff; } -img.selected -{ +img.selected { border: 1px solid blue; } -img.unselected -{ +img.unselected { border: 2px solid black; } -div>table { +div > table { float: left; } -td -{ +td { text-align: center; } -a.clean -{ +a.clean { background: none; border: none; marging: none; -} \ No newline at end of file +} diff --git a/html/browser/techwebs.css b/html/browser/techwebs.css index 889196cc28db..8b13991b7b97 100644 --- a/html/browser/techwebs.css +++ b/html/browser/techwebs.css @@ -1,20 +1,20 @@ [data-tooltip] { - position: relative; + position: relative; } [data-tooltip]:hover::before { - position: absolute; - z-index: 1; - top: 100%; - padding: 0 4px; - margin-top: 1px; - border: 1px solid #40628a; - background: black; - color: white; - content: attr(data-tooltip); - min-width: 160px; + position: absolute; + z-index: 1; + top: 100%; + padding: 0 4px; + margin-top: 1px; + border: 1px solid #40628a; + background: black; + color: white; + content: attr(data-tooltip); + min-width: 160px; } .technode { - width: 256px; + width: 256px; } diff --git a/html/changelog.css b/html/changelog.css index da32a5a55752..13f711870e50 100644 --- a/html/changelog.css +++ b/html/changelog.css @@ -1,41 +1,136 @@ -.top{font-family:Tahoma,sans-serif;font-size:12px;} -h2{font-family:Tahoma,sans-serif;} -a img {border:none;} +.top { + font-family: Tahoma, sans-serif; + font-size: 12px; +} +h2 { + font-family: Tahoma, sans-serif; +} +a img { + border: none; +} .bgimages16 li { - padding:2px 10px 2px 30px; - background-position:6px center; - background-repeat:no-repeat; - border:1px solid #ddd; - border-left:4px solid #999; - margin-bottom:2px; -} -.bugfix {background-image:url(bug-minus.png)} -.wip {background-image:url(hard-hat-exclamation.png)} -.tweak {background-image:url(wrench-screwdriver.png)} -.soundadd {background-image:url(music-plus.png)} -.sounddel {background-image:url(music-minus.png)} -.rscdel {background-image:url(cross-circle.png)} -.rscadd {background-image:url(tick-circle.png)} -.imageadd {background-image:url(image-plus.png)} -.imagedel {background-image:url(image-minus.png)} -.spellcheck {background-image:url(spell-check.png)} -.experiment {background-image:url(burn-exclamation.png)} -.refactor {background-image:url(burn-exclamation.png)} -.code_imp {background-image:url(coding.png)} -.config {background-image:url(chrome-wrench.png)} -.admin {background-image:url(ban.png)} -.server {background-image:url(hard-hat-exclamation.png)} -.balance {background-image:url(scales.png)} -.sansserif {font-family:Tahoma,sans-serif;font-size:12px;} -.commit {margin-bottom:20px;font-size:100%;font-weight:normal;} -.changes {list-style:none;margin:5px 0;padding:0 0 0 25px;font-size:0.8em;} -.date {margin:10px 0;color:blue;border-bottom:2px solid #00f;width:60%;padding:2px 0;font-size:1em;font-weight:bold;} -.author {padding-left:10px;margin:0;font-weight:bold;font-size:0.9em;} -.drop {cursor:pointer;border:1px solid #999;display:inline;font-size:0.9em;padding:1px 20px 1px 5px;line-height:16px;} -.hidden {display:none;} -.indrop {margin:2px 0 0 0;clear:both;background:#fff;border:1px solid #ddd;padding:5px 10px;} -.indrop p {margin:0;font-size:0.8em;line-height:16px;margin:1px 0;} -.indrop img {margin-right:5px;vertical-align:middle;} -.closed {background:url(chevron-expand.png) right center no-repeat;} -.open {background:url(chevron.png) right center no-repeat;} -.lic {font-size:9px;} + padding: 2px 10px 2px 30px; + background-position: 6px center; + background-repeat: no-repeat; + border: 1px solid #ddd; + border-left: 4px solid #999; + margin-bottom: 2px; +} +.bugfix { + background-image: url(bug-minus.png); +} +.wip { + background-image: url(hard-hat-exclamation.png); +} +.tweak { + background-image: url(wrench-screwdriver.png); +} +.soundadd { + background-image: url(music-plus.png); +} +.sounddel { + background-image: url(music-minus.png); +} +.rscdel { + background-image: url(cross-circle.png); +} +.rscadd { + background-image: url(tick-circle.png); +} +.imageadd { + background-image: url(image-plus.png); +} +.imagedel { + background-image: url(image-minus.png); +} +.spellcheck { + background-image: url(spell-check.png); +} +.experiment { + background-image: url(burn-exclamation.png); +} +.refactor { + background-image: url(burn-exclamation.png); +} +.code_imp { + background-image: url(coding.png); +} +.config { + background-image: url(chrome-wrench.png); +} +.admin { + background-image: url(ban.png); +} +.server { + background-image: url(hard-hat-exclamation.png); +} +.balance { + background-image: url(scales.png); +} +.sansserif { + font-family: Tahoma, sans-serif; + font-size: 12px; +} +.commit { + margin-bottom: 20px; + font-size: 100%; + font-weight: normal; +} +.changes { + list-style: none; + margin: 5px 0; + padding: 0 0 0 25px; + font-size: 0.8em; +} +.date { + margin: 10px 0; + color: blue; + border-bottom: 2px solid #00f; + width: 60%; + padding: 2px 0; + font-size: 1em; + font-weight: bold; +} +.author { + padding-left: 10px; + margin: 0; + font-weight: bold; + font-size: 0.9em; +} +.drop { + cursor: pointer; + border: 1px solid #999; + display: inline; + font-size: 0.9em; + padding: 1px 20px 1px 5px; + line-height: 16px; +} +.hidden { + display: none; +} +.indrop { + margin: 2px 0 0 0; + clear: both; + background: #fff; + border: 1px solid #ddd; + padding: 5px 10px; +} +.indrop p { + margin: 0; + font-size: 0.8em; + line-height: 16px; + margin: 1px 0; +} +.indrop img { + margin-right: 5px; + vertical-align: middle; +} +.closed { + background: url(chevron-expand.png) right center no-repeat; +} +.open { + background: url(chevron.png) right center no-repeat; +} +.lic { + font-size: 9px; +} diff --git a/html/changelog.html b/html/changelog.html index f11449be7069..16867cd4e4f9 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,190 @@ -->
      +

      07 August 2022

      +

      Apogee-dev updated:

      +
        +
      • e-cigars are now available in loadouts
      • +
      +

      MemedHams updated:

      +
        +
      • THE BEST AND GOODEST TOOL (the world's shittiest item, designed to be admin spawned for memes).
      • +
      • A spellbook for The Traps.
      • +
      • A slightly better whetstone.
      • +
      • The Slime Guardian, a support guardian optimized for healing, feeding slimes, and nourishing players.
      • +
      • new loot spawners for random stock parts and materials.
      • +
      • adjusts animorph spellbook wording.
      • +
      • changes wording on crisis stimpack to make what it does more clear. Reduces stimulants and adds slightly more healing.
      • +
      • Adds a reverse necropotence bolt. Allows hostile magicarp to have considerably more random spells.
      • +
      • allows the Brigador-type cyborg spawner to actually be used by non-nukeops. Also adds functionality for other cyborg spawners that can do the same.
      • +
      • fireball spellbook recoil no longer hardgibs those who are unfortunate enough to read it second.
      • +
      • slightly reduces cursed Katana's self-damage.
      • +
      • boosts netheric portal enemy spawning logic, adds a few new drops.
      • +
      • increases the cost of the Heavy Mining Kit. Doubles suits gained and adds some survival pods and deepcore drill spawners.
      • +
      • GREATLY reduces the frequency of menacing tumor spawns. Elites now drop a chest with 3 necropolis loot items and can once again drop their special loot.
      • +
      • adds a planet atmos immune variant to wizard simplemobs, for netheric portals.
      • +
      • fixes way too many tumors spawning. Like, wow.
      • +
      • fixes netheric portals only spawning a single snow legion head, instead of the actual mob
      • +
      • prevents infinite dwarf legion trophy stacking
      • +
      • revises the shitcode I wrote for the syndie crusher to be slightly less awful
      • +
      • fixes the normal watcher wing trophy having the crystal wing sprite
      • +
      +

      Yellow-Mushroom updated:

      +
        +
      • adds a much larger variety of text to hallucinations/Reality Dissassociate Discorder, removes LRP/NRP gamemode related hallucinations. Also tweaks occurrence rates
      • +
      +

      retlaw34 updated:

      +
        +
      • Full-Automatic Gun component! Your L6 Saws and Laser Gatling Guns have it now.
      • +
      • The Tesla Cannon! A fully automatic replacement to the tesla revolver, it shoots balls of shock.
      • +
      • Makes the Laser Gatling Gun less bad.
      • +
      • due to autofire, gun fire rates may be affected slightly.
      • +
      • Roumain winchester inhands fixed
      • +
      • Roumain winchester now has a back and suit sprite
      • +
      • Tons of guns were repathed.
      • +
      +

      tmtmtl30 updated:

      +
        +
      • Nitryl now only forms when it should.
      • +
      +

      triplezeta updated:

      +
        +
      • surveying with your hands full no longer sends your points to hell
      • +
      + +

      05 August 2022

      +

      MarkSuckerberg updated:

      +
        +
      • Mentorchat has been fixed for mentors.
      • +
      + +

      03 August 2022

      +

      Apogee-dev updated:

      +
        +
      • Removed cloning from the tech web
      • +
      +

      triplezeta updated:

      +
        +
      • rolling down jumpsuits is, finally, fixed.
      • +
      • changing species no longer heals all limbs and organs
      • +
      + +

      02 August 2022

      +

      triplezeta updated:

      +
        +
      • light beer can now be mixed. It's one part beer and four parts water.
      • +
      • elzu colors should update properly now
      • +
      + +

      01 August 2022

      +

      PositiveEntropy updated:

      +
        +
      • Resprites a variety of clothing related to IRMG!
      • +
      +

      Recoherent updated:

      +
        +
      • The Booze-O-Mat has a new drink in stock; some kind of promotional coconut liquor?
      • +
      +

      triplezeta updated:

      +
        +
      • navigationally challenged is no longer automatically applied to newer players
      • +
      + +

      31 July 2022

      +

      MitztheKat updated:

      +
        +
      • you can now buckle others (or yourself) to operating tables, making them much more space-OSHA approved.
      • +
      +

      SpaceVampire updated:

      +
        +
      • suit_storage slot now shows the item it has equipped
      • +
      • Items in the suit storage slot won't turn invisible anymore
      • +
      +

      ZephyrTFA updated:

      +
        +
      • the spawners on the Metis-Class will no longer hang around after spawning their selected threat
      • +
      + +

      29 July 2022

      +

      Fikou updated:

      +
        +
      • nerfs manly dorf's healing powers, it no longer works on people with alcohol tolerance
      • +
      +

      triplezeta updated:

      +
        +
      • flat caps have been resprited!!
      • +
      + +

      28 July 2022

      +

      ZephyrTFA updated:

      +
        +
      • Spawn a planet and ruin with a brand new verb!
      • +
      + +

      27 July 2022

      +

      MarkSuckerberg updated:

      +
        +
      • Default overmap sizes reduced significantly to speed up dev environment spin-up time.
      • +
      • Renames the "Bot Comms" subsystem to the "Redbot" subsystem because that's what the file and type are. It should match!
      • +
      +

      tiramisuapimancer updated:

      +
        +
      • light lizard snouts don't layer over glasses masks etc anymore
      • +
      + +

      26 July 2022

      +

      Recoherent updated:

      +
        +
      • Numbers in names are back, math is too powerful as a main antagonist to stay dead for longer than one season.
      • +
      + +

      24 July 2022

      +

      Apogee-dev updated:

      +
        +
      • Removed Rube Goldberg from the purchase list
      • +
      • Ships are now limited to 2 per class by default
      • +
      • Updated example ship config with limit variable
      • +
      + +

      23 July 2022

      +

      Apogee-dev updated:

      +
        +
      • Removed Cascade from purchase
      • +
      • Added low-grade "surplus" ammunition for handguns to autolathes
      • +
      • Moved standard ammo & buckshot from autolathes to sec protolathes
      • +
      • Reduced .38 damage to match surplus ammo
      • +
      • New icons for surplus ammo & beanbag shells
      • +
      +

      Recoherent updated:

      +
        +
      • Name enforcement is more open now; put those numbers on your agent card or your bizarre-super-soldier-clone-test-project-human's name!
      • +
      • Removed reference to allow_numbers from saved preferences.
      • +
      +

      VaelophisNyx, @Drawsstuff, @That0nePerson, @Chubbygummibear, @MarkSuckerberg updated:

      +
        +
      • Adds surplus prosthetics to the protolathe Medical Designs tab , and exosuit fabricator Misc tab. 3000 units of iron each.
      • +
      • Adds a set of surplus prosthetics specifically for Kepori, and one set for Vox.
      • +
      • Adds the new surplus prosthetics for Kepori and Vox to the surplus prosthetic crate pre-fill.
      • +
      • Adds new Prosthetic Limbs character appearance customization options
      • +
      • Makes surplus prosthetic designs unlocked at Biological Technology.
      • +
      +

      iwishforducks updated:

      +
        +
      • Added a new ruin on Ice Planets, the Hydroponics Lab.
      • +
      + +

      20 July 2022

      +

      @nmajask, Truzkawa, Chubbygummibear updated:

      +
        +
      • Hair Gradient style and color are part of character appearance menu now
      • +
      • new neutral quirk colorist that lets you spawn with a bottle of hair dye spray
      • +
      +

      Ketrai updated:

      +
        +
      • Metis is now more randomized!
      • +
      • Neutered borers are now less intimidating.
      • +
      +

      18 July 2022

      Apogee-dev updated:

        @@ -619,148 +803,6 @@

        Azarak updated:

        • Weathers
        - -

        02 June 2022

        -

        Ebin-Halcyon updated:

        -
          -
        • The IRMG have sent in a shipment of clothing for their frontline engineers and medical officers!
        • -
        -

        Vexylius updated:

        -
          -
        • An update of autolathe software is now ready for download. This update fixes a glitch that was blocking printing of floor painters (you can now actually print floor painters and don't have to do anything).
        • -
        • Masinyane-Class Ship
        • -
        -

        coleminerman updated:

        -
          -
        • Added the creatively named "Admin Gun Dealer Ship"
        • -
        • Added a json that actually makes it function
        • -
        -

        retlaw34 updated:

        -
          -
        • resprites goggles
        • -
        -

        tiramisuapimancer updated:

        -
          -
        • phorids and skeletons like food with the DAIRY tag now
        • -
        - -

        30 May 2022

        -

        Vexylius updated:

        -
          -
        • A pirate wideband radio jamming station has been taken taken down by a group of unidentified ships. One of them seemed to be a Minuteman Carina-class ship, however Minuteman spokesperson denies Minuteman involvement in this operation (Fixed wideband intercoms)
        • -
        - -

        29 May 2022

        -

        Irra updated:

        -
          -
        • SMES's now have a EMP interaction
        • -
        • Smes sprites
        • -
        -

        SweetBlueSylveon updated:

        -
          -
        • Added the Rube-Goldberg Class Engineering Project ship.
        • -
        • Added a steering wheel (sprite by Dexxiol)
        • -
        -

        phoaly and Any% updated:

        -
          -
        • Added Lab 4071 space ruin.
        • -
        • Added Syndicate Battle Sphere space ruin.
        • -
        - -

        28 May 2022

        -

        MarkSuckerberg updated:

        -
          -
        • The join menu should no longer break randomly.
        • -
        - -

        27 May 2022

        -

        Apogee-dev updated:

        -
          -
        • Added even more names to the ship namelists
        • -
        -

        HanSolo1519 updated:

        -
          -
        • Superpill
        • -
        -

        Zevotech updated:

        -
          -
        • Remapped Jungle_Botany.dmm, removed its ERT hardsuits
        • -
        • Made Ice Whelps no longer tear down walls and murder entire ships (Now also applies to polar bears)
        • -
        • Lowered the amount of hide goliaths drop from 4 to 2, as requested by a lead
        • -
        • fixed goliaths, ice whelps, polar bears and ice demons shoving wrenched windows
        • -
        -

        someguyjust updated:

        -
          -
        • Scav-classed Drifter
        • -
        - -

        26 May 2022

        -

        Thera-Pissed updated:

        -
          -
        • Bubbles, a new IPC screen
        • -
        -

        retlaw34 updated:

        -
          -
        • Turf fires, again
        • -
        • Whitesands ballisks are now unique
        • -
        • More stuff to do on the overmap!
        • -
        • New crusher trophies for crytsal mobs
        • -
        • Crystal mobs have been rebalanced, and now drop unique trophies!
        • -
        • Cult templar made easier, and by that I mean they are slower now
        • -
        • reebe works again, still disabled
        • -
        • SolGov has released evidence against Nanotrasen using a bio weapon to wipe out the Blue Moon colony in the outer sectors. Nanotrasen denies any claims despite overwhelming evidence. A spokesperson says....
        • -
        - -

        25 May 2022

        -

        ZephyrTFA updated:

        -
          -
        • Helm Consoles can now be locked with a shipkey
        • -
        • Shipkeys, if your ship does not already have one , or was destroyed by an idiot, your helm console can print one
        • -
        - -

        23 May 2022

        -

        kestoloppu updated:

        -
          -
        • Added explorer gas mask sprite for vox
        • -
        - -

        21 May 2022

        -

        Iamgoofball updated:

        -
          -
        • Fixes the lack of Trek uniforms in the loadout.
        • -
        -

        IndusRobot updated:

        -
          -
        • Adds integrated NTNET relays for just about any machine, and adds it to the helm console
        • -
        -

        Lianvee updated:

        -
          -
        • You can now craft Prescription HUD Glasses. Diagnostic versions not included:tm:!
        • -
        -

        SandPoot, Mark Suckerberg updated:

        -
          -
        • Dead people are no longer rolling in their graves.
        • -
        -

        tiramisuapimancer updated:

        -
          -
        • vox tailfeather actually a neck quill as intended
        • -
        - -

        18 May 2022

        -

        Bokkiewokkie updated:

        -
          -
        • Removed COVID-19 disease
        • -
        • Removed 'frank' and anti-COVID lawsets
        • -
        • Moved all of the code out of the whitesands folder
        • -
        -

        Recoherent updated:

        -
          -
        • Changed ash/salt garnish to be created in the crafting menu instead of chemically.
        • -
        -

        kestoloppu updated:

        -
          -
        • fixed a missing wire on the libertatia-class hauler
        • -
      GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index e379b2d082fb..6dbe5859b621 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1769,8 +1769,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. for heavy injury. - unknown: Just kidding - unknown: Fireaxe cabinets and Extinguisher wall-mounted closets now added around - the station, thank Nanotransen for that. - - unknown: Because of Nanotransen being Nanotransen, the fire cabinets are electrically + the station, thank Nanotrasen for that. + - unknown: Because of Nanotrasen being Nanotrasen, the fire cabinets are electrically operated. AIs can lock them and you can hack them if you want the precious axe inside and it's locked. The axe itself uses an experimental two-handed system, so while it's FUCKING ROBUST you need to wield @@ -2069,8 +2069,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. /tg/station team: - unknown: ' Day of Forum revival!' Agouri updated: - - unknown: I was always bothered by how unprofessional it was of Nanotransen (in - before >Nanotransen >professionalism) to just lay expensive spacesuits + - unknown: I was always bothered by how unprofessional it was of Nanotrasen (in + before >Nanotrasen >professionalism) to just lay expensive spacesuits in racks and just let them be. Well, no more. Introducing... - unknown: Suit Storage Units. Rumored to actually be repurposed space radiators, these wondrous machines will store any kind of spacesuit in a clean and sterile @@ -5791,10 +5791,10 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - tweak: Soap now has a delay. Different soap types clean faster than others, but expect to put it some extra arm work if you want to clean that fresh blood! Tkdrg: - - rscadd: Cutting-edge research in a secret Nanotransen lab has shed light into - a revolutionary form of communication technology known as 'chat'. The Personal + - rscadd: Cutting-edge research in a secret Nanotrasen lab has shed light into a + revolutionary form of communication technology known as 'chat'. The Personal Data Assistants of Space Station 13 have been deployed with an experimental - module implementing this system, dubbed 'Nanotransen Relay Chat'. + module implementing this system, dubbed 'Nanotrasen Relay Chat'. 2014-11-10: Menshin: - tweak: Made meteors more threatening. @@ -8637,7 +8637,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Miauw: - tweak: Edaggers actually work now and have been buffed to 18 brute and 2 TC. Oisin100: - - rscadd: Nanotransen discover ancient human knowledge confirming that trees produce + - rscadd: Nanotrasen discover ancient human knowledge confirming that trees produce Oxygen From Carbon Dioxide - tweak: Trees now require Oxygen to live. And will die in extreme temperatures Xhuis: @@ -9307,7 +9307,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: Emergency Response Teams and Deathsquads no longer accept non-human members if the server is configured to bar mutants from being heads of staff. LordPidey: - - rscadd: Nanotransen doctors have re-approved Saline-Glucose Solution for usage + - rscadd: Nanotrasen doctors have re-approved Saline-Glucose Solution for usage in IV drips, when blood supplies are low. Simple pills will not suffice. MMMiracles: - tweak: Water slips have been nerfed to a more reasonable duration. It is still @@ -14152,8 +14152,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Fixes minimap generation crashes by making parts of it less precise 2016-09-23: Cyberboss: - - rscadd: Wire layouts of NanoTransen devices for the round can now be found in - the Station Blueprints + - rscadd: Wire layouts of Nanotrasen devices for the round can now be found in the + Station Blueprints Incoming5643 + WJohnston: - imageadd: Lizard sprites have received an overhaul, sprites courtesy of WJohnston! - rscdel: While there are some new bits, a few old bits have gone by the wayside, @@ -17950,7 +17950,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - balance: Sigils of Transgression are slightly brighter. Moonlighting Mac: - experiment: Due to budget cuts and oil synthesis replacing expensive processes - of digging up haunted primeval ashwalker burial grounds, Nanotransen has taught + of digging up haunted primeval ashwalker burial grounds, Nanotrasen has taught chemists how to make plastic from chemicals in the hopes that new plastic products can reduce expenditure on metal and glass. - rscadd: you can now make plastic sheets from chemistry out of heated up crude @@ -35584,8 +35584,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: You can only draw one blood rune at a time. - balance: New junk is being found in the station's maintenance tunnels. tmtmtl30: - - bugfix: Nanotransen cyborgs have recovered from butchering-induced trauma and - are now able to joust again. + - bugfix: Nanotrasen cyborgs have recovered from butchering-induced trauma and are + now able to joust again. 2019-11-20: actioninja: - balance: cyborgs spinning off riders now knocks down for 3 seconds instead of @@ -38607,9 +38607,9 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - balance: You need a bluespace anomaly core to make a bag of holding. - bugfix: Some minor fixes for Sleeping Carp. tmtmtl30: - - rscadd: Distraught employees on Nanotransen stations have been observed consuming - monkey cubes as a means of suicide. Nanotransen reminds employees to remain - upbeat, and to not use monkey cubes for anything but their intended purpose. + - rscadd: Distraught employees on Nanotrasen stations have been observed consuming + monkey cubes as a means of suicide. Nanotrasen reminds employees to remain upbeat, + and to not use monkey cubes for anything but their intended purpose. uomo91: - bugfix: On Delta station, the two maintenance doors near the Psychology office now permit medbay staff to access them. @@ -42587,6 +42587,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. i'm sorry but it works PiperDoots: - imageadd: updated Kepori body sprites to allow for better clothing. + - imageadd: updated Kepori body sprites to allow for better clothing. 2022-07-18: Apogee-dev: - rscadd: Added the Gecko-class Salvage Runner @@ -42611,3 +42612,144 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - tweak: The express cargo consoles (now outpost comms consoles) on the Shetland and Skipper have been moved to the bridges of their respective ships. - tweak: Ships start with 2000 credits instead of 7500 +2022-07-20: + '@nmajask, Truzkawa, Chubbygummibear': + - rscadd: Hair Gradient style and color are part of character appearance menu now + - rscadd: new neutral quirk colorist that lets you spawn with a bottle of hair dye + spray + Ketrai: + - tweak: Metis is now more randomized! + - tweak: Neutered borers are now less intimidating. +2022-07-23: + Apogee-dev: + - rscdel: Removed Cascade from purchase + - rscadd: Added low-grade "surplus" ammunition for handguns to autolathes + - balance: Moved standard ammo & buckshot from autolathes to sec protolathes + - balance: Reduced .38 damage to match surplus ammo + - imageadd: New icons for surplus ammo & beanbag shells + Recoherent: + - tweak: Name enforcement is more open now; put those numbers on your agent card + or your bizarre-super-soldier-clone-test-project-human's name! + - code_imp: Removed reference to allow_numbers from saved preferences. + 'VaelophisNyx, @Drawsstuff, @That0nePerson, @Chubbygummibear, @MarkSuckerberg ': + - rscadd: Adds surplus prosthetics to the protolathe Medical Designs tab , and exosuit + fabricator Misc tab. 3000 units of iron each. + - rscadd: Adds a set of surplus prosthetics specifically for Kepori, and one set + for Vox. + - rscadd: Adds the new surplus prosthetics for Kepori and Vox to the surplus prosthetic + crate pre-fill. + - rscadd: Adds new Prosthetic Limbs character appearance customization options + - tweak: Makes surplus prosthetic designs unlocked at Biological Technology. + iwishforducks: + - rscadd: Added a new ruin on Ice Planets, the Hydroponics Lab. +2022-07-24: + Apogee-dev: + - rscdel: Removed Rube Goldberg from the purchase list + - config: Ships are now limited to 2 per class by default + - config: Updated example ship config with limit variable +2022-07-26: + Recoherent: + - bugfix: Numbers in names are back, math is too powerful as a main antagonist to + stay dead for longer than one season. +2022-07-27: + MarkSuckerberg: + - config: Default overmap sizes reduced significantly to speed up dev environment + spin-up time. + - code_imp: Renames the "Bot Comms" subsystem to the "Redbot" subsystem because + that's what the file and type are. It should match! + tiramisuapimancer: + - bugfix: light lizard snouts don't layer over glasses masks etc anymore +2022-07-28: + ZephyrTFA: + - admin: Spawn a planet and ruin with a brand new verb! +2022-07-29: + Fikou: + - balance: nerfs manly dorf's healing powers, it no longer works on people with + alcohol tolerance + triplezeta: + - imageadd: flat caps have been resprited!! +2022-07-31: + MitztheKat: + - tweak: you can now buckle others (or yourself) to operating tables, making them + much more space-OSHA approved. + SpaceVampire: + - bugfix: suit_storage slot now shows the item it has equipped + - bugfix: Items in the suit storage slot won't turn invisible anymore + ZephyrTFA: + - bugfix: the spawners on the Metis-Class will no longer hang around after spawning + their selected threat +2022-08-01: + PositiveEntropy: + - imageadd: Resprites a variety of clothing related to IRMG! + Recoherent: + - rscadd: The Booze-O-Mat has a new drink in stock; some kind of promotional coconut + liquor? + triplezeta: + - rscdel: navigationally challenged is no longer automatically applied to newer + players +2022-08-02: + triplezeta: + - rscadd: light beer can now be mixed. It's one part beer and four parts water. + - bugfix: elzu colors should update properly now +2022-08-03: + Apogee-dev: + - rscdel: Removed cloning from the tech web + triplezeta: + - bugfix: rolling down jumpsuits is, finally, fixed. + - bugfix: changing species no longer heals all limbs and organs +2022-08-05: + MarkSuckerberg: + - bugfix: Mentorchat has been fixed for mentors. +2022-08-07: + Apogee-dev: + - rscadd: e-cigars are now available in loadouts + MemedHams: + - rscadd: THE BEST AND GOODEST TOOL (the world's shittiest item, designed to be + admin spawned for memes). + - rscadd: A spellbook for The Traps. + - rscadd: A slightly better whetstone. + - rscadd: The Slime Guardian, a support guardian optimized for healing, feeding + slimes, and nourishing players. + - tweak: new loot spawners for random stock parts and materials. + - tweak: adjusts animorph spellbook wording. + - tweak: changes wording on crisis stimpack to make what it does more clear. Reduces + stimulants and adds slightly more healing. + - tweak: Adds a reverse necropotence bolt. Allows hostile magicarp to have considerably + more random spells. + - bugfix: allows the Brigador-type cyborg spawner to actually be used by non-nukeops. + Also adds functionality for other cyborg spawners that can do the same. + - balance: fireball spellbook recoil no longer hardgibs those who are unfortunate + enough to read it second. + - balance: slightly reduces cursed Katana's self-damage. + - balance: boosts netheric portal enemy spawning logic, adds a few new drops. + - balance: increases the cost of the Heavy Mining Kit. Doubles suits gained and + adds some survival pods and deepcore drill spawners. + - balance: GREATLY reduces the frequency of menacing tumor spawns. Elites now drop + a chest with 3 necropolis loot items and can once again drop their special loot. + - balance: adds a planet atmos immune variant to wizard simplemobs, for netheric + portals. + - bugfix: fixes way too many tumors spawning. Like, wow. + - bugfix: fixes netheric portals only spawning a single snow legion head, instead + of the actual mob + - bugfix: prevents infinite dwarf legion trophy stacking + - bugfix: revises the shitcode I wrote for the syndie crusher to be slightly less + awful + - bugfix: fixes the normal watcher wing trophy having the crystal wing sprite + Yellow-Mushroom: + - tweak: adds a much larger variety of text to hallucinations/Reality Dissassociate + Discorder, removes LRP/NRP gamemode related hallucinations. Also tweaks occurrence + rates + retlaw34: + - rscadd: Full-Automatic Gun component! Your L6 Saws and Laser Gatling Guns have + it now. + - rscadd: The Tesla Cannon! A fully automatic replacement to the tesla revolver, + it shoots balls of shock. + - code_imp: Makes the Laser Gatling Gun less bad. + - balance: due to autofire, gun fire rates may be affected slightly. + - bugfix: Roumain winchester inhands fixed + - imageadd: Roumain winchester now has a back and suit sprite + - refactor: Tons of guns were repathed. + tmtmtl30: + - bugfix: Nitryl now only forms when it should. + triplezeta: + - bugfix: surveying with your hands full no longer sends your points to hell diff --git a/html/changelogs/example.yml b/html/changelogs/example.yml index c44f796755b1..b0e660681d9f 100644 --- a/html/changelogs/example.yml +++ b/html/changelogs/example.yml @@ -6,20 +6,20 @@ # Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) # When it is, any changes listed below will disappear. # -# Valid Prefixes: +# Valid Prefixes: # bugfix # - (fixes bugs) # wip # - (work in progress) -# tweak -# - (tweaks something) +# qol +# - (quality of life) # soundadd # - (adds a sound) # sounddel # - (removes a sound) -# rscdel -# - (adds a feature) # rscadd +# - (adds a feature) +# rscdel # - (removes a feature) # imageadd # - (adds an image or sprite) @@ -29,8 +29,6 @@ # - (fixes spelling or grammar) # experiment # - (experimental change) -# tgs -# - (TGS change) # balance # - (balance changes) # code_imp @@ -45,7 +43,7 @@ # - (miscellaneous changes to server) ################################# -# Your name. +# Your name. author: " # Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. @@ -56,6 +54,6 @@ delete-after: True # SCREW THIS UP AND IT WON'T WORK. # Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. # Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. -changes: +changes: - rscadd: "Added a changelog editing system that should cause fewer conflicts and more accurate timestamps." - rscdel: "Killed innocent kittens." diff --git a/html/create_object.html b/html/create_object.html index e5003c9b636e..a8d3790ee0cf 100644 --- a/html/create_object.html +++ b/html/create_object.html @@ -1,99 +1,136 @@ + + Create Object + + - h1, h2, h3, h4, h5, h6 - { - color: #00f; - font-family: Georgia, Arial, sans-serif; - } - img { - border: 0px; - } - p.lic { - font-size: 6pt; - } - - + + + + /* hreftokenfield */ Type + +
      + Offset: + - - - - /* hreftokenfield */ + A R +
      - Type
      - Offset: - - A - R
      - - Number: - Dir: - Name:
      - Where: - + Dir: + + Name: +
      + Where: + -

      - -
      - -
    • - - - + function updateSearch() { + old_search = document.spawner.filter.value.toLowerCase(); + if (!old_search) return; + + var filtered = new Array(); + var i; + for (i in objects) { + var caseInsensitiveObject = objects[i].toLowerCase(); + if (caseInsensitiveObject.search(old_search) < 0) { + continue; + } + + filtered.push(objects[i]); + } + + populateList(filtered); + } + + diff --git a/html/font-awesome/css/all.min.css b/html/font-awesome/css/all.min.css index a3fb0572e89d..5c4407984031 100644 --- a/html/font-awesome/css/all.min.css +++ b/html/font-awesome/css/all.min.css @@ -2,4 +2,4376 @@ * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(fa-regular-400.eot);src:url(fa-regular-400.eot?#iefix) format("embedded-opentype"),url(fa-regular-400.woff) format("woff")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(fa-solid-900.eot);src:url(fa-solid-900.eot?#iefix) format("embedded-opentype"),url(fa-solid-900.woff) format("woff")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} +.fa, +.fab, +.fal, +.far, +.fas { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; +} +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -0.0667em; +} +.fa-xs { + font-size: 0.75em; +} +.fa-sm { + font-size: 0.875em; +} +.fa-1x { + font-size: 1em; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-6x { + font-size: 6em; +} +.fa-7x { + font-size: 7em; +} +.fa-8x { + font-size: 8em; +} +.fa-9x { + font-size: 9em; +} +.fa-10x { + font-size: 10em; +} +.fa-fw { + text-align: center; + width: 1.25em; +} +.fa-ul { + list-style-type: none; + margin-left: 2.5em; + padding-left: 0; +} +.fa-ul > li { + position: relative; +} +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit; +} +.fa-border { + border: 0.08em solid #eee; + border-radius: 0.1em; + padding: 0.2em 0.25em 0.15em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left, +.fab.fa-pull-left, +.fal.fa-pull-left, +.far.fa-pull-left, +.fas.fa-pull-left { + margin-right: 0.3em; +} +.fa.fa-pull-right, +.fab.fa-pull-right, +.fal.fa-pull-right, +.far.fa-pull-right, +.fas.fa-pull-right { + margin-left: 0.3em; +} +.fa-spin { + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + animation: fa-spin 1s infinite steps(8); +} +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + to { + transform: rotate(1turn); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + transform: scaleX(-1); +} +.fa-flip-vertical { + transform: scaleY(-1); +} +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical, +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; +} +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1); +} +:root .fa-flip-both, +:root .fa-flip-horizontal, +:root .fa-flip-vertical, +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270 { + filter: none; +} +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; +} +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #fff; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-accessible-icon:before { + content: "\f368"; +} +.fa-accusoft:before { + content: "\f369"; +} +.fa-acquisitions-incorporated:before { + content: "\f6af"; +} +.fa-ad:before { + content: "\f641"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-card:before { + content: "\f2bb"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-adobe:before { + content: "\f778"; +} +.fa-adversal:before { + content: "\f36a"; +} +.fa-affiliatetheme:before { + content: "\f36b"; +} +.fa-air-freshener:before { + content: "\f5d0"; +} +.fa-airbnb:before { + content: "\f834"; +} +.fa-algolia:before { + content: "\f36c"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-alipay:before { + content: "\f642"; +} +.fa-allergies:before { + content: "\f461"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-amazon-pay:before { + content: "\f42c"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-amilia:before { + content: "\f36d"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angry:before { + content: "\f556"; +} +.fa-angrycreative:before { + content: "\f36e"; +} +.fa-angular:before { + content: "\f420"; +} +.fa-ankh:before { + content: "\f644"; +} +.fa-app-store:before { + content: "\f36f"; +} +.fa-app-store-ios:before { + content: "\f370"; +} +.fa-apper:before { + content: "\f371"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-apple-alt:before { + content: "\f5d1"; +} +.fa-apple-pay:before { + content: "\f415"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-archway:before { + content: "\f557"; +} +.fa-arrow-alt-circle-down:before { + content: "\f358"; +} +.fa-arrow-alt-circle-left:before { + content: "\f359"; +} +.fa-arrow-alt-circle-right:before { + content: "\f35a"; +} +.fa-arrow-alt-circle-up:before { + content: "\f35b"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-arrows-alt-h:before { + content: "\f337"; +} +.fa-arrows-alt-v:before { + content: "\f338"; +} +.fa-artstation:before { + content: "\f77a"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-asymmetrik:before { + content: "\f372"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-atlas:before { + content: "\f558"; +} +.fa-atlassian:before { + content: "\f77b"; +} +.fa-atom:before { + content: "\f5d2"; +} +.fa-audible:before { + content: "\f373"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-autoprefixer:before { + content: "\f41c"; +} +.fa-avianex:before { + content: "\f374"; +} +.fa-aviato:before { + content: "\f421"; +} +.fa-award:before { + content: "\f559"; +} +.fa-aws:before { + content: "\f375"; +} +.fa-baby:before { + content: "\f77c"; +} +.fa-baby-carriage:before { + content: "\f77d"; +} +.fa-backspace:before { + content: "\f55a"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-bacon:before { + content: "\f7e5"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-balance-scale-left:before { + content: "\f515"; +} +.fa-balance-scale-right:before { + content: "\f516"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-band-aid:before { + content: "\f462"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-bars:before { + content: "\f0c9"; +} +.fa-baseball-ball:before { + content: "\f433"; +} +.fa-basketball-ball:before { + content: "\f434"; +} +.fa-bath:before { + content: "\f2cd"; +} +.fa-battery-empty:before { + content: "\f244"; +} +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battle-net:before { + content: "\f835"; +} +.fa-bed:before { + content: "\f236"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bezier-curve:before { + content: "\f55b"; +} +.fa-bible:before { + content: "\f647"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-biking:before { + content: "\f84a"; +} +.fa-bimobject:before { + content: "\f378"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-biohazard:before { + content: "\f780"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitcoin:before { + content: "\f379"; +} +.fa-bity:before { + content: "\f37a"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-blackberry:before { + content: "\f37b"; +} +.fa-blender:before { + content: "\f517"; +} +.fa-blender-phone:before { + content: "\f6b6"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-blog:before { + content: "\f781"; +} +.fa-blogger:before { + content: "\f37c"; +} +.fa-blogger-b:before { + content: "\f37d"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-bolt:before { + content: "\f0e7"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-bone:before { + content: "\f5d7"; +} +.fa-bong:before { + content: "\f55c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-book-dead:before { + content: "\f6b7"; +} +.fa-book-medical:before { + content: "\f7e6"; +} +.fa-book-open:before { + content: "\f518"; +} +.fa-book-reader:before { + content: "\f5da"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-bootstrap:before { + content: "\f836"; +} +.fa-border-all:before { + content: "\f84c"; +} +.fa-border-none:before { + content: "\f850"; +} +.fa-border-style:before { + content: "\f853"; +} +.fa-bowling-ball:before { + content: "\f436"; +} +.fa-box:before { + content: "\f466"; +} +.fa-box-open:before { + content: "\f49e"; +} +.fa-boxes:before { + content: "\f468"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-brain:before { + content: "\f5dc"; +} +.fa-bread-slice:before { + content: "\f7ec"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-briefcase-medical:before { + content: "\f469"; +} +.fa-broadcast-tower:before { + content: "\f519"; +} +.fa-broom:before { + content: "\f51a"; +} +.fa-brush:before { + content: "\f55d"; +} +.fa-btc:before { + content: "\f15a"; +} +.fa-buffer:before { + content: "\f837"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-burn:before { + content: "\f46a"; +} +.fa-buromobelexperte:before { + content: "\f37f"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-bus-alt:before { + content: "\f55e"; +} +.fa-business-time:before { + content: "\f64a"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-calendar:before { + content: "\f133"; +} +.fa-calendar-alt:before { + content: "\f073"; +} +.fa-calendar-check:before { + content: "\f274"; +} +.fa-calendar-day:before { + content: "\f783"; +} +.fa-calendar-minus:before { + content: "\f272"; +} +.fa-calendar-plus:before { + content: "\f271"; +} +.fa-calendar-times:before { + content: "\f273"; +} +.fa-calendar-week:before { + content: "\f784"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-campground:before { + content: "\f6bb"; +} +.fa-canadian-maple-leaf:before { + content: "\f785"; +} +.fa-candy-cane:before { + content: "\f786"; +} +.fa-cannabis:before { + content: "\f55f"; +} +.fa-capsules:before { + content: "\f46b"; +} +.fa-car:before { + content: "\f1b9"; +} +.fa-car-alt:before { + content: "\f5de"; +} +.fa-car-battery:before { + content: "\f5df"; +} +.fa-car-crash:before { + content: "\f5e1"; +} +.fa-car-side:before { + content: "\f5e4"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-caret-square-down:before { + content: "\f150"; +} +.fa-caret-square-left:before { + content: "\f191"; +} +.fa-caret-square-right:before { + content: "\f152"; +} +.fa-caret-square-up:before { + content: "\f151"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-carrot:before { + content: "\f787"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cash-register:before { + content: "\f788"; +} +.fa-cat:before { + content: "\f6be"; +} +.fa-cc-amazon-pay:before { + content: "\f42d"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-apple-pay:before { + content: "\f416"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-centercode:before { + content: "\f380"; +} +.fa-centos:before { + content: "\f789"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-chair:before { + content: "\f6c0"; +} +.fa-chalkboard:before { + content: "\f51b"; +} +.fa-chalkboard-teacher:before { + content: "\f51c"; +} +.fa-charging-station:before { + content: "\f5e7"; +} +.fa-chart-area:before { + content: "\f1fe"; +} +.fa-chart-bar:before { + content: "\f080"; +} +.fa-chart-line:before { + content: "\f201"; +} +.fa-chart-pie:before { + content: "\f200"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-check-double:before { + content: "\f560"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-cheese:before { + content: "\f7ef"; +} +.fa-chess:before { + content: "\f439"; +} +.fa-chess-bishop:before { + content: "\f43a"; +} +.fa-chess-board:before { + content: "\f43c"; +} +.fa-chess-king:before { + content: "\f43f"; +} +.fa-chess-knight:before { + content: "\f441"; +} +.fa-chess-pawn:before { + content: "\f443"; +} +.fa-chess-queen:before { + content: "\f445"; +} +.fa-chess-rook:before { + content: "\f447"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-chromecast:before { + content: "\f838"; +} +.fa-church:before { + content: "\f51d"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-circle-notch:before { + content: "\f1ce"; +} +.fa-city:before { + content: "\f64f"; +} +.fa-clinic-medical:before { + content: "\f7f2"; +} +.fa-clipboard:before { + content: "\f328"; +} +.fa-clipboard-check:before { + content: "\f46c"; +} +.fa-clipboard-list:before { + content: "\f46d"; +} +.fa-clock:before { + content: "\f017"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-closed-captioning:before { + content: "\f20a"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-cloud-download-alt:before { + content: "\f381"; +} +.fa-cloud-meatball:before { + content: "\f73b"; +} +.fa-cloud-moon:before { + content: "\f6c3"; +} +.fa-cloud-moon-rain:before { + content: "\f73c"; +} +.fa-cloud-rain:before { + content: "\f73d"; +} +.fa-cloud-showers-heavy:before { + content: "\f740"; +} +.fa-cloud-sun:before { + content: "\f6c4"; +} +.fa-cloud-sun-rain:before { + content: "\f743"; +} +.fa-cloud-upload-alt:before { + content: "\f382"; +} +.fa-cloudscale:before { + content: "\f383"; +} +.fa-cloudsmith:before { + content: "\f384"; +} +.fa-cloudversify:before { + content: "\f385"; +} +.fa-cocktail:before { + content: "\f561"; +} +.fa-code:before { + content: "\f121"; +} +.fa-code-branch:before { + content: "\f126"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cog:before { + content: "\f013"; +} +.fa-cogs:before { + content: "\f085"; +} +.fa-coins:before { + content: "\f51e"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-comment-alt:before { + content: "\f27a"; +} +.fa-comment-dollar:before { + content: "\f651"; +} +.fa-comment-dots:before { + content: "\f4ad"; +} +.fa-comment-medical:before { + content: "\f7f5"; +} +.fa-comment-slash:before { + content: "\f4b3"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-comments-dollar:before { + content: "\f653"; +} +.fa-compact-disc:before { + content: "\f51f"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-compress-arrows-alt:before { + content: "\f78c"; +} +.fa-concierge-bell:before { + content: "\f562"; +} +.fa-confluence:before { + content: "\f78d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-cookie:before { + content: "\f563"; +} +.fa-cookie-bite:before { + content: "\f564"; +} +.fa-copy:before { + content: "\f0c5"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-couch:before { + content: "\f4b8"; +} +.fa-cpanel:before { + content: "\f388"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-creative-commons-by:before { + content: "\f4e7"; +} +.fa-creative-commons-nc:before { + content: "\f4e8"; +} +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; +} +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; +} +.fa-creative-commons-nd:before { + content: "\f4eb"; +} +.fa-creative-commons-pd:before { + content: "\f4ec"; +} +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; +} +.fa-creative-commons-remix:before { + content: "\f4ee"; +} +.fa-creative-commons-sa:before { + content: "\f4ef"; +} +.fa-creative-commons-sampling:before { + content: "\f4f0"; +} +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; +} +.fa-creative-commons-share:before { + content: "\f4f2"; +} +.fa-creative-commons-zero:before { + content: "\f4f3"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-critical-role:before { + content: "\f6c9"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-crop-alt:before { + content: "\f565"; +} +.fa-cross:before { + content: "\f654"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-crow:before { + content: "\f520"; +} +.fa-crown:before { + content: "\f521"; +} +.fa-crutch:before { + content: "\f7f7"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-css3-alt:before { + content: "\f38b"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-cut:before { + content: "\f0c4"; +} +.fa-cuttlefish:before { + content: "\f38c"; +} +.fa-d-and-d:before { + content: "\f38d"; +} +.fa-d-and-d-beyond:before { + content: "\f6ca"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-deaf:before { + content: "\f2a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-democrat:before { + content: "\f747"; +} +.fa-deploydog:before { + content: "\f38e"; +} +.fa-deskpro:before { + content: "\f38f"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-dev:before { + content: "\f6cc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-dharmachakra:before { + content: "\f655"; +} +.fa-dhl:before { + content: "\f790"; +} +.fa-diagnoses:before { + content: "\f470"; +} +.fa-diaspora:before { + content: "\f791"; +} +.fa-dice:before { + content: "\f522"; +} +.fa-dice-d20:before { + content: "\f6cf"; +} +.fa-dice-d6:before { + content: "\f6d1"; +} +.fa-dice-five:before { + content: "\f523"; +} +.fa-dice-four:before { + content: "\f524"; +} +.fa-dice-one:before { + content: "\f525"; +} +.fa-dice-six:before { + content: "\f526"; +} +.fa-dice-three:before { + content: "\f527"; +} +.fa-dice-two:before { + content: "\f528"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-digital-ocean:before { + content: "\f391"; +} +.fa-digital-tachograph:before { + content: "\f566"; +} +.fa-directions:before { + content: "\f5eb"; +} +.fa-discord:before { + content: "\f392"; +} +.fa-discourse:before { + content: "\f393"; +} +.fa-divide:before { + content: "\f529"; +} +.fa-dizzy:before { + content: "\f567"; +} +.fa-dna:before { + content: "\f471"; +} +.fa-dochub:before { + content: "\f394"; +} +.fa-docker:before { + content: "\f395"; +} +.fa-dog:before { + content: "\f6d3"; +} +.fa-dollar-sign:before { + content: "\f155"; +} +.fa-dolly:before { + content: "\f472"; +} +.fa-dolly-flatbed:before { + content: "\f474"; +} +.fa-donate:before { + content: "\f4b9"; +} +.fa-door-closed:before { + content: "\f52a"; +} +.fa-door-open:before { + content: "\f52b"; +} +.fa-dot-circle:before { + content: "\f192"; +} +.fa-dove:before { + content: "\f4ba"; +} +.fa-download:before { + content: "\f019"; +} +.fa-draft2digital:before { + content: "\f396"; +} +.fa-drafting-compass:before { + content: "\f568"; +} +.fa-dragon:before { + content: "\f6d5"; +} +.fa-draw-polygon:before { + content: "\f5ee"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-dribbble-square:before { + content: "\f397"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-drum:before { + content: "\f569"; +} +.fa-drum-steelpan:before { + content: "\f56a"; +} +.fa-drumstick-bite:before { + content: "\f6d7"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-dumbbell:before { + content: "\f44b"; +} +.fa-dumpster:before { + content: "\f793"; +} +.fa-dumpster-fire:before { + content: "\f794"; +} +.fa-dungeon:before { + content: "\f6d9"; +} +.fa-dyalog:before { + content: "\f399"; +} +.fa-earlybirds:before { + content: "\f39a"; +} +.fa-ebay:before { + content: "\f4f4"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-edit:before { + content: "\f044"; +} +.fa-egg:before { + content: "\f7fb"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-elementor:before { + content: "\f430"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-ello:before { + content: "\f5f1"; +} +.fa-ember:before { + content: "\f423"; +} +.fa-empire:before { + content: "\f1d1"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-text:before { + content: "\f658"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-equals:before { + content: "\f52c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-erlang:before { + content: "\f39d"; +} +.fa-ethereum:before { + content: "\f42e"; +} +.fa-ethernet:before { + content: "\f796"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-euro-sign:before { + content: "\f153"; +} +.fa-evernote:before { + content: "\f839"; +} +.fa-exchange-alt:before { + content: "\f362"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-expand-arrows-alt:before { + content: "\f31e"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-external-link-alt:before { + content: "\f35d"; +} +.fa-external-link-square-alt:before { + content: "\f360"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-dropper:before { + content: "\f1fb"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-facebook:before { + content: "\f09a"; +} +.fa-facebook-f:before { + content: "\f39e"; +} +.fa-facebook-messenger:before { + content: "\f39f"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-fan:before { + content: "\f863"; +} +.fa-fantasy-flight-games:before { + content: "\f6dc"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-feather:before { + content: "\f52d"; +} +.fa-feather-alt:before { + content: "\f56b"; +} +.fa-fedex:before { + content: "\f797"; +} +.fa-fedora:before { + content: "\f798"; +} +.fa-female:before { + content: "\f182"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-figma:before { + content: "\f799"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-alt:before { + content: "\f15c"; +} +.fa-file-archive:before { + content: "\f1c6"; +} +.fa-file-audio:before { + content: "\f1c7"; +} +.fa-file-code:before { + content: "\f1c9"; +} +.fa-file-contract:before { + content: "\f56c"; +} +.fa-file-csv:before { + content: "\f6dd"; +} +.fa-file-download:before { + content: "\f56d"; +} +.fa-file-excel:before { + content: "\f1c3"; +} +.fa-file-export:before { + content: "\f56e"; +} +.fa-file-image:before { + content: "\f1c5"; +} +.fa-file-import:before { + content: "\f56f"; +} +.fa-file-invoice:before { + content: "\f570"; +} +.fa-file-invoice-dollar:before { + content: "\f571"; +} +.fa-file-medical:before { + content: "\f477"; +} +.fa-file-medical-alt:before { + content: "\f478"; +} +.fa-file-pdf:before { + content: "\f1c1"; +} +.fa-file-powerpoint:before { + content: "\f1c4"; +} +.fa-file-prescription:before { + content: "\f572"; +} +.fa-file-signature:before { + content: "\f573"; +} +.fa-file-upload:before { + content: "\f574"; +} +.fa-file-video:before { + content: "\f1c8"; +} +.fa-file-word:before { + content: "\f1c2"; +} +.fa-fill:before { + content: "\f575"; +} +.fa-fill-drip:before { + content: "\f576"; +} +.fa-film:before { + content: "\f008"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-fingerprint:before { + content: "\f577"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-fire-alt:before { + content: "\f7e4"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-first-aid:before { + content: "\f479"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-first-order-alt:before { + content: "\f50a"; +} +.fa-firstdraft:before { + content: "\f3a1"; +} +.fa-fish:before { + content: "\f578"; +} +.fa-fist-raised:before { + content: "\f6de"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-flag-usa:before { + content: "\f74d"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-flipboard:before { + content: "\f44d"; +} +.fa-flushed:before { + content: "\f579"; +} +.fa-fly:before { + content: "\f417"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-minus:before { + content: "\f65d"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-folder-plus:before { + content: "\f65e"; +} +.fa-font:before { + content: "\f031"; +} +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-font-awesome-alt:before { + content: "\f35c"; +} +.fa-font-awesome-flag:before { + content: "\f425"; +} +.fa-font-awesome-logo-full:before { + content: "\f4e6"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-fonticons-fi:before { + content: "\f3a2"; +} +.fa-football-ball:before { + content: "\f44e"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-fort-awesome-alt:before { + content: "\f3a3"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-freebsd:before { + content: "\f3a4"; +} +.fa-frog:before { + content: "\f52e"; +} +.fa-frown:before { + content: "\f119"; +} +.fa-frown-open:before { + content: "\f57a"; +} +.fa-fulcrum:before { + content: "\f50b"; +} +.fa-funnel-dollar:before { + content: "\f662"; +} +.fa-futbol:before { + content: "\f1e3"; +} +.fa-galactic-republic:before { + content: "\f50c"; +} +.fa-galactic-senate:before { + content: "\f50d"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-gas-pump:before { + content: "\f52f"; +} +.fa-gavel:before { + content: "\f0e3"; +} +.fa-gem:before { + content: "\f3a5"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-ghost:before { + content: "\f6e2"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-gifts:before { + content: "\f79c"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-git-alt:before { + content: "\f841"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-gitkraken:before { + content: "\f3a6"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-gitter:before { + content: "\f426"; +} +.fa-glass-cheers:before { + content: "\f79f"; +} +.fa-glass-martini:before { + content: "\f000"; +} +.fa-glass-martini-alt:before { + content: "\f57b"; +} +.fa-glass-whiskey:before { + content: "\f7a0"; +} +.fa-glasses:before { + content: "\f530"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-globe-africa:before { + content: "\f57c"; +} +.fa-globe-americas:before { + content: "\f57d"; +} +.fa-globe-asia:before { + content: "\f57e"; +} +.fa-globe-europe:before { + content: "\f7a2"; +} +.fa-gofore:before { + content: "\f3a7"; +} +.fa-golf-ball:before { + content: "\f450"; +} +.fa-goodreads:before { + content: "\f3a8"; +} +.fa-goodreads-g:before { + content: "\f3a9"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-google-drive:before { + content: "\f3aa"; +} +.fa-google-play:before { + content: "\f3ab"; +} +.fa-google-plus:before { + content: "\f2b3"; +} +.fa-google-plus-g:before { + content: "\f0d5"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-gopuram:before { + content: "\f664"; +} +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-gratipay:before { + content: "\f184"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-greater-than:before { + content: "\f531"; +} +.fa-greater-than-equal:before { + content: "\f532"; +} +.fa-grimace:before { + content: "\f57f"; +} +.fa-grin:before { + content: "\f580"; +} +.fa-grin-alt:before { + content: "\f581"; +} +.fa-grin-beam:before { + content: "\f582"; +} +.fa-grin-beam-sweat:before { + content: "\f583"; +} +.fa-grin-hearts:before { + content: "\f584"; +} +.fa-grin-squint:before { + content: "\f585"; +} +.fa-grin-squint-tears:before { + content: "\f586"; +} +.fa-grin-stars:before { + content: "\f587"; +} +.fa-grin-tears:before { + content: "\f588"; +} +.fa-grin-tongue:before { + content: "\f589"; +} +.fa-grin-tongue-squint:before { + content: "\f58a"; +} +.fa-grin-tongue-wink:before { + content: "\f58b"; +} +.fa-grin-wink:before { + content: "\f58c"; +} +.fa-grip-horizontal:before { + content: "\f58d"; +} +.fa-grip-lines:before { + content: "\f7a4"; +} +.fa-grip-lines-vertical:before { + content: "\f7a5"; +} +.fa-grip-vertical:before { + content: "\f58e"; +} +.fa-gripfire:before { + content: "\f3ac"; +} +.fa-grunt:before { + content: "\f3ad"; +} +.fa-guitar:before { + content: "\f7a6"; +} +.fa-gulp:before { + content: "\f3ae"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-hacker-news-square:before { + content: "\f3af"; +} +.fa-hackerrank:before { + content: "\f5f7"; +} +.fa-hamburger:before { + content: "\f805"; +} +.fa-hammer:before { + content: "\f6e3"; +} +.fa-hamsa:before { + content: "\f665"; +} +.fa-hand-holding:before { + content: "\f4bd"; +} +.fa-hand-holding-heart:before { + content: "\f4be"; +} +.fa-hand-holding-usd:before { + content: "\f4c0"; +} +.fa-hand-lizard:before { + content: "\f258"; +} +.fa-hand-middle-finger:before { + content: "\f806"; +} +.fa-hand-paper:before { + content: "\f256"; +} +.fa-hand-peace:before { + content: "\f25b"; +} +.fa-hand-point-down:before { + content: "\f0a7"; +} +.fa-hand-point-left:before { + content: "\f0a5"; +} +.fa-hand-point-right:before { + content: "\f0a4"; +} +.fa-hand-point-up:before { + content: "\f0a6"; +} +.fa-hand-pointer:before { + content: "\f25a"; +} +.fa-hand-rock:before { + content: "\f255"; +} +.fa-hand-scissors:before { + content: "\f257"; +} +.fa-hand-spock:before { + content: "\f259"; +} +.fa-hands:before { + content: "\f4c2"; +} +.fa-hands-helping:before { + content: "\f4c4"; +} +.fa-handshake:before { + content: "\f2b5"; +} +.fa-hanukiah:before { + content: "\f6e6"; +} +.fa-hard-hat:before { + content: "\f807"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-hat-wizard:before { + content: "\f6e8"; +} +.fa-haykal:before { + content: "\f666"; +} +.fa-hdd:before { + content: "\f0a0"; +} +.fa-heading:before { + content: "\f1dc"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-headphones-alt:before { + content: "\f58f"; +} +.fa-headset:before { + content: "\f590"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-heart-broken:before { + content: "\f7a9"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-helicopter:before { + content: "\f533"; +} +.fa-highlighter:before { + content: "\f591"; +} +.fa-hiking:before { + content: "\f6ec"; +} +.fa-hippo:before { + content: "\f6ed"; +} +.fa-hips:before { + content: "\f452"; +} +.fa-hire-a-helper:before { + content: "\f3b0"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-hockey-puck:before { + content: "\f453"; +} +.fa-holly-berry:before { + content: "\f7aa"; +} +.fa-home:before { + content: "\f015"; +} +.fa-hooli:before { + content: "\f427"; +} +.fa-hornbill:before { + content: "\f592"; +} +.fa-horse:before { + content: "\f6f0"; +} +.fa-horse-head:before { + content: "\f7ab"; +} +.fa-hospital:before { + content: "\f0f8"; +} +.fa-hospital-alt:before { + content: "\f47d"; +} +.fa-hospital-symbol:before { + content: "\f47e"; +} +.fa-hot-tub:before { + content: "\f593"; +} +.fa-hotdog:before { + content: "\f80f"; +} +.fa-hotel:before { + content: "\f594"; +} +.fa-hotjar:before { + content: "\f3b1"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-house-damage:before { + content: "\f6f1"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-hryvnia:before { + content: "\f6f2"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-hubspot:before { + content: "\f3b2"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-ice-cream:before { + content: "\f810"; +} +.fa-icicles:before { + content: "\f7ad"; +} +.fa-icons:before { + content: "\f86d"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-id-card:before { + content: "\f2c2"; +} +.fa-id-card-alt:before { + content: "\f47f"; +} +.fa-igloo:before { + content: "\f7ae"; +} +.fa-image:before { + content: "\f03e"; +} +.fa-images:before { + content: "\f302"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-infinity:before { + content: "\f534"; +} +.fa-info:before { + content: "\f129"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-intercom:before { + content: "\f7af"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-invision:before { + content: "\f7b0"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-itch-io:before { + content: "\f83a"; +} +.fa-itunes:before { + content: "\f3b4"; +} +.fa-itunes-note:before { + content: "\f3b5"; +} +.fa-java:before { + content: "\f4e4"; +} +.fa-jedi:before { + content: "\f669"; +} +.fa-jedi-order:before { + content: "\f50e"; +} +.fa-jenkins:before { + content: "\f3b6"; +} +.fa-jira:before { + content: "\f7b1"; +} +.fa-joget:before { + content: "\f3b7"; +} +.fa-joint:before { + content: "\f595"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-journal-whills:before { + content: "\f66a"; +} +.fa-js:before { + content: "\f3b8"; +} +.fa-js-square:before { + content: "\f3b9"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-kaaba:before { + content: "\f66b"; +} +.fa-kaggle:before { + content: "\f5fa"; +} +.fa-key:before { + content: "\f084"; +} +.fa-keybase:before { + content: "\f4f5"; +} +.fa-keyboard:before { + content: "\f11c"; +} +.fa-keycdn:before { + content: "\f3ba"; +} +.fa-khanda:before { + content: "\f66d"; +} +.fa-kickstarter:before { + content: "\f3bb"; +} +.fa-kickstarter-k:before { + content: "\f3bc"; +} +.fa-kiss:before { + content: "\f596"; +} +.fa-kiss-beam:before { + content: "\f597"; +} +.fa-kiss-wink-heart:before { + content: "\f598"; +} +.fa-kiwi-bird:before { + content: "\f535"; +} +.fa-korvue:before { + content: "\f42f"; +} +.fa-landmark:before { + content: "\f66f"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-laptop-code:before { + content: "\f5fc"; +} +.fa-laptop-medical:before { + content: "\f812"; +} +.fa-laravel:before { + content: "\f3bd"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-laugh:before { + content: "\f599"; +} +.fa-laugh-beam:before { + content: "\f59a"; +} +.fa-laugh-squint:before { + content: "\f59b"; +} +.fa-laugh-wink:before { + content: "\f59c"; +} +.fa-layer-group:before { + content: "\f5fd"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-lemon:before { + content: "\f094"; +} +.fa-less:before { + content: "\f41d"; +} +.fa-less-than:before { + content: "\f536"; +} +.fa-less-than-equal:before { + content: "\f537"; +} +.fa-level-down-alt:before { + content: "\f3be"; +} +.fa-level-up-alt:before { + content: "\f3bf"; +} +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-lightbulb:before { + content: "\f0eb"; +} +.fa-line:before { + content: "\f3c0"; +} +.fa-link:before { + content: "\f0c1"; +} +.fa-linkedin:before { + content: "\f08c"; +} +.fa-linkedin-in:before { + content: "\f0e1"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-lira-sign:before { + content: "\f195"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-lock-open:before { + content: "\f3c1"; +} +.fa-long-arrow-alt-down:before { + content: "\f309"; +} +.fa-long-arrow-alt-left:before { + content: "\f30a"; +} +.fa-long-arrow-alt-right:before { + content: "\f30b"; +} +.fa-long-arrow-alt-up:before { + content: "\f30c"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-luggage-cart:before { + content: "\f59d"; +} +.fa-lyft:before { + content: "\f3c3"; +} +.fa-magento:before { + content: "\f3c4"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-mail-bulk:before { + content: "\f674"; +} +.fa-mailchimp:before { + content: "\f59e"; +} +.fa-male:before { + content: "\f183"; +} +.fa-mandalorian:before { + content: "\f50f"; +} +.fa-map:before { + content: "\f279"; +} +.fa-map-marked:before { + content: "\f59f"; +} +.fa-map-marked-alt:before { + content: "\f5a0"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-map-marker-alt:before { + content: "\f3c5"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-markdown:before { + content: "\f60f"; +} +.fa-marker:before { + content: "\f5a1"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mask:before { + content: "\f6fa"; +} +.fa-mastodon:before { + content: "\f4f6"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-medal:before { + content: "\f5a2"; +} +.fa-medapps:before { + content: "\f3c6"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-medium-m:before { + content: "\f3c7"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-medrt:before { + content: "\f3c8"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.fa-megaport:before { + content: "\f5a3"; +} +.fa-meh:before { + content: "\f11a"; +} +.fa-meh-blank:before { + content: "\f5a4"; +} +.fa-meh-rolling-eyes:before { + content: "\f5a5"; +} +.fa-memory:before { + content: "\f538"; +} +.fa-mendeley:before { + content: "\f7b3"; +} +.fa-menorah:before { + content: "\f676"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-meteor:before { + content: "\f753"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-alt:before { + content: "\f3c9"; +} +.fa-microphone-alt-slash:before { + content: "\f539"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-microscope:before { + content: "\f610"; +} +.fa-microsoft:before { + content: "\f3ca"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-mitten:before { + content: "\f7b5"; +} +.fa-mix:before { + content: "\f3cb"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-mizuni:before { + content: "\f3cc"; +} +.fa-mobile:before { + content: "\f10b"; +} +.fa-mobile-alt:before { + content: "\f3cd"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-monero:before { + content: "\f3d0"; +} +.fa-money-bill:before { + content: "\f0d6"; +} +.fa-money-bill-alt:before { + content: "\f3d1"; +} +.fa-money-bill-wave:before { + content: "\f53a"; +} +.fa-money-bill-wave-alt:before { + content: "\f53b"; +} +.fa-money-check:before { + content: "\f53c"; +} +.fa-money-check-alt:before { + content: "\f53d"; +} +.fa-monument:before { + content: "\f5a6"; +} +.fa-moon:before { + content: "\f186"; +} +.fa-mortar-pestle:before { + content: "\f5a7"; +} +.fa-mosque:before { + content: "\f678"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-mountain:before { + content: "\f6fc"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-mug-hot:before { + content: "\f7b6"; +} +.fa-music:before { + content: "\f001"; +} +.fa-napster:before { + content: "\f3d2"; +} +.fa-neos:before { + content: "\f612"; +} +.fa-network-wired:before { + content: "\f6ff"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-newspaper:before { + content: "\f1ea"; +} +.fa-nimblr:before { + content: "\f5a8"; +} +.fa-node:before { + content: "\f419"; +} +.fa-node-js:before { + content: "\f3d3"; +} +.fa-not-equal:before { + content: "\f53e"; +} +.fa-notes-medical:before { + content: "\f481"; +} +.fa-npm:before { + content: "\f3d4"; +} +.fa-ns8:before { + content: "\f3d5"; +} +.fa-nutritionix:before { + content: "\f3d6"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-oil-can:before { + content: "\f613"; +} +.fa-old-republic:before { + content: "\f510"; +} +.fa-om:before { + content: "\f679"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-osi:before { + content: "\f41a"; +} +.fa-otter:before { + content: "\f700"; +} +.fa-outdent:before { + content: "\f03b"; +} +.fa-page4:before { + content: "\f3d7"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-pager:before { + content: "\f815"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-paint-roller:before { + content: "\f5aa"; +} +.fa-palette:before { + content: "\f53f"; +} +.fa-palfed:before { + content: "\f3d8"; +} +.fa-pallet:before { + content: "\f482"; +} +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-parachute-box:before { + content: "\f4cd"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-parking:before { + content: "\f540"; +} +.fa-passport:before { + content: "\f5ab"; +} +.fa-pastafarianism:before { + content: "\f67b"; +} +.fa-paste:before { + content: "\f0ea"; +} +.fa-patreon:before { + content: "\f3d9"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-peace:before { + content: "\f67c"; +} +.fa-pen:before { + content: "\f304"; +} +.fa-pen-alt:before { + content: "\f305"; +} +.fa-pen-fancy:before { + content: "\f5ac"; +} +.fa-pen-nib:before { + content: "\f5ad"; +} +.fa-pen-square:before { + content: "\f14b"; +} +.fa-pencil-alt:before { + content: "\f303"; +} +.fa-pencil-ruler:before { + content: "\f5ae"; +} +.fa-penny-arcade:before { + content: "\f704"; +} +.fa-people-carry:before { + content: "\f4ce"; +} +.fa-pepper-hot:before { + content: "\f816"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-percentage:before { + content: "\f541"; +} +.fa-periscope:before { + content: "\f3da"; +} +.fa-person-booth:before { + content: "\f756"; +} +.fa-phabricator:before { + content: "\f3db"; +} +.fa-phoenix-framework:before { + content: "\f3dc"; +} +.fa-phoenix-squadron:before { + content: "\f511"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-phone-alt:before { + content: "\f879"; +} +.fa-phone-slash:before { + content: "\f3dd"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-phone-square-alt:before { + content: "\f87b"; +} +.fa-phone-volume:before { + content: "\f2a0"; +} +.fa-photo-video:before { + content: "\f87c"; +} +.fa-php:before { + content: "\f457"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-pied-piper-hat:before { + content: "\f4e5"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-piggy-bank:before { + content: "\f4d3"; +} +.fa-pills:before { + content: "\f484"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-pizza-slice:before { + content: "\f818"; +} +.fa-place-of-worship:before { + content: "\f67f"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-plane-arrival:before { + content: "\f5af"; +} +.fa-plane-departure:before { + content: "\f5b0"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-playstation:before { + content: "\f3df"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-poll:before { + content: "\f681"; +} +.fa-poll-h:before { + content: "\f682"; +} +.fa-poo:before { + content: "\f2fe"; +} +.fa-poo-storm:before { + content: "\f75a"; +} +.fa-poop:before { + content: "\f619"; +} +.fa-portrait:before { + content: "\f3e0"; +} +.fa-pound-sign:before { + content: "\f154"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-pray:before { + content: "\f683"; +} +.fa-praying-hands:before { + content: "\f684"; +} +.fa-prescription:before { + content: "\f5b1"; +} +.fa-prescription-bottle:before { + content: "\f485"; +} +.fa-prescription-bottle-alt:before { + content: "\f486"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-procedures:before { + content: "\f487"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-project-diagram:before { + content: "\f542"; +} +.fa-pushed:before { + content: "\f3e1"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-python:before { + content: "\f3e2"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-question:before { + content: "\f128"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-quidditch:before { + content: "\f458"; +} +.fa-quinscape:before { + content: "\f459"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-quran:before { + content: "\f687"; +} +.fa-r-project:before { + content: "\f4f7"; +} +.fa-radiation:before { + content: "\f7b9"; +} +.fa-radiation-alt:before { + content: "\f7ba"; +} +.fa-rainbow:before { + content: "\f75b"; +} +.fa-random:before { + content: "\f074"; +} +.fa-raspberry-pi:before { + content: "\f7bb"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-react:before { + content: "\f41b"; +} +.fa-reacteurope:before { + content: "\f75d"; +} +.fa-readme:before { + content: "\f4d5"; +} +.fa-rebel:before { + content: "\f1d0"; +} +.fa-receipt:before { + content: "\f543"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-red-river:before { + content: "\f3e3"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-redhat:before { + content: "\f7bc"; +} +.fa-redo:before { + content: "\f01e"; +} +.fa-redo-alt:before { + content: "\f2f9"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-remove-format:before { + content: "\f87d"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-reply:before { + content: "\f3e5"; +} +.fa-reply-all:before { + content: "\f122"; +} +.fa-replyd:before { + content: "\f3e6"; +} +.fa-republican:before { + content: "\f75e"; +} +.fa-researchgate:before { + content: "\f4f8"; +} +.fa-resolving:before { + content: "\f3e7"; +} +.fa-restroom:before { + content: "\f7bd"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-rev:before { + content: "\f5b2"; +} +.fa-ribbon:before { + content: "\f4d6"; +} +.fa-ring:before { + content: "\f70b"; +} +.fa-road:before { + content: "\f018"; +} +.fa-robot:before { + content: "\f544"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-rocketchat:before { + content: "\f3e8"; +} +.fa-rockrms:before { + content: "\f3e9"; +} +.fa-route:before { + content: "\f4d7"; +} +.fa-rss:before { + content: "\f09e"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-ruble-sign:before { + content: "\f158"; +} +.fa-ruler:before { + content: "\f545"; +} +.fa-ruler-combined:before { + content: "\f546"; +} +.fa-ruler-horizontal:before { + content: "\f547"; +} +.fa-ruler-vertical:before { + content: "\f548"; +} +.fa-running:before { + content: "\f70c"; +} +.fa-rupee-sign:before { + content: "\f156"; +} +.fa-sad-cry:before { + content: "\f5b3"; +} +.fa-sad-tear:before { + content: "\f5b4"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-salesforce:before { + content: "\f83b"; +} +.fa-sass:before { + content: "\f41e"; +} +.fa-satellite:before { + content: "\f7bf"; +} +.fa-satellite-dish:before { + content: "\f7c0"; +} +.fa-save:before { + content: "\f0c7"; +} +.fa-schlix:before { + content: "\f3ea"; +} +.fa-school:before { + content: "\f549"; +} +.fa-screwdriver:before { + content: "\f54a"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-scroll:before { + content: "\f70e"; +} +.fa-sd-card:before { + content: "\f7c2"; +} +.fa-search:before { + content: "\f002"; +} +.fa-search-dollar:before { + content: "\f688"; +} +.fa-search-location:before { + content: "\f689"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-searchengin:before { + content: "\f3eb"; +} +.fa-seedling:before { + content: "\f4d8"; +} +.fa-sellcast:before { + content: "\f2da"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-server:before { + content: "\f233"; +} +.fa-servicestack:before { + content: "\f3ec"; +} +.fa-shapes:before { + content: "\f61f"; +} +.fa-share:before { + content: "\f064"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-shekel-sign:before { + content: "\f20b"; +} +.fa-shield-alt:before { + content: "\f3ed"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-shipping-fast:before { + content: "\f48b"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-shoe-prints:before { + content: "\f54b"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-shopware:before { + content: "\f5b5"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-shuttle-van:before { + content: "\f5b6"; +} +.fa-sign:before { + content: "\f4d9"; +} +.fa-sign-in-alt:before { + content: "\f2f6"; +} +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-sign-out-alt:before { + content: "\f2f5"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-signature:before { + content: "\f5b7"; +} +.fa-sim-card:before { + content: "\f7c4"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-sistrix:before { + content: "\f3ee"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-sith:before { + content: "\f512"; +} +.fa-skating:before { + content: "\f7c5"; +} +.fa-sketch:before { + content: "\f7c6"; +} +.fa-skiing:before { + content: "\f7c9"; +} +.fa-skiing-nordic:before { + content: "\f7ca"; +} +.fa-skull:before { + content: "\f54c"; +} +.fa-skull-crossbones:before { + content: "\f714"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-slack-hash:before { + content: "\f3ef"; +} +.fa-slash:before { + content: "\f715"; +} +.fa-sleigh:before { + content: "\f7cc"; +} +.fa-sliders-h:before { + content: "\f1de"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-smile:before { + content: "\f118"; +} +.fa-smile-beam:before { + content: "\f5b8"; +} +.fa-smile-wink:before { + content: "\f4da"; +} +.fa-smog:before { + content: "\f75f"; +} +.fa-smoking:before { + content: "\f48d"; +} +.fa-smoking-ban:before { + content: "\f54d"; +} +.fa-sms:before { + content: "\f7cd"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-snowboarding:before { + content: "\f7ce"; +} +.fa-snowflake:before { + content: "\f2dc"; +} +.fa-snowman:before { + content: "\f7d0"; +} +.fa-snowplow:before { + content: "\f7d2"; +} +.fa-socks:before { + content: "\f696"; +} +.fa-solar-panel:before { + content: "\f5ba"; +} +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-alpha-down:before { + content: "\f15d"; +} +.fa-sort-alpha-down-alt:before { + content: "\f881"; +} +.fa-sort-alpha-up:before { + content: "\f15e"; +} +.fa-sort-alpha-up-alt:before { + content: "\f882"; +} +.fa-sort-amount-down:before { + content: "\f160"; +} +.fa-sort-amount-down-alt:before { + content: "\f884"; +} +.fa-sort-amount-up:before { + content: "\f161"; +} +.fa-sort-amount-up-alt:before { + content: "\f885"; +} +.fa-sort-down:before { + content: "\f0dd"; +} +.fa-sort-numeric-down:before { + content: "\f162"; +} +.fa-sort-numeric-down-alt:before { + content: "\f886"; +} +.fa-sort-numeric-up:before { + content: "\f163"; +} +.fa-sort-numeric-up-alt:before { + content: "\f887"; +} +.fa-sort-up:before { + content: "\f0de"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-sourcetree:before { + content: "\f7d3"; +} +.fa-spa:before { + content: "\f5bb"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-speakap:before { + content: "\f3f3"; +} +.fa-speaker-deck:before { + content: "\f83c"; +} +.fa-spell-check:before { + content: "\f891"; +} +.fa-spider:before { + content: "\f717"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-splotch:before { + content: "\f5bc"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-spray-can:before { + content: "\f5bd"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-square-full:before { + content: "\f45c"; +} +.fa-square-root-alt:before { + content: "\f698"; +} +.fa-squarespace:before { + content: "\f5be"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-stackpath:before { + content: "\f842"; +} +.fa-stamp:before { + content: "\f5bf"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-and-crescent:before { + content: "\f699"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-star-half-alt:before { + content: "\f5c0"; +} +.fa-star-of-david:before { + content: "\f69a"; +} +.fa-star-of-life:before { + content: "\f621"; +} +.fa-staylinked:before { + content: "\f3f5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-steam-symbol:before { + content: "\f3f6"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-sticker-mule:before { + content: "\f3f7"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stopwatch:before { + content: "\f2f2"; +} +.fa-store:before { + content: "\f54e"; +} +.fa-store-alt:before { + content: "\f54f"; +} +.fa-strava:before { + content: "\f428"; +} +.fa-stream:before { + content: "\f550"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-stripe:before { + content: "\f429"; +} +.fa-stripe-s:before { + content: "\f42a"; +} +.fa-stroopwafel:before { + content: "\f551"; +} +.fa-studiovinari:before { + content: "\f3f8"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-suitcase-rolling:before { + content: "\f5c1"; +} +.fa-sun:before { + content: "\f185"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-supple:before { + content: "\f3f9"; +} +.fa-surprise:before { + content: "\f5c2"; +} +.fa-suse:before { + content: "\f7d6"; +} +.fa-swatchbook:before { + content: "\f5c3"; +} +.fa-swimmer:before { + content: "\f5c4"; +} +.fa-swimming-pool:before { + content: "\f5c5"; +} +.fa-symfony:before { + content: "\f83d"; +} +.fa-synagogue:before { + content: "\f69b"; +} +.fa-sync:before { + content: "\f021"; +} +.fa-sync-alt:before { + content: "\f2f1"; +} +.fa-syringe:before { + content: "\f48e"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-table-tennis:before { + content: "\f45d"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-tablet-alt:before { + content: "\f3fa"; +} +.fa-tablets:before { + content: "\f490"; +} +.fa-tachometer-alt:before { + content: "\f3fd"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-tape:before { + content: "\f4db"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-taxi:before { + content: "\f1ba"; +} +.fa-teamspeak:before { + content: "\f4f9"; +} +.fa-teeth:before { + content: "\f62e"; +} +.fa-teeth-open:before { + content: "\f62f"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-telegram-plane:before { + content: "\f3fe"; +} +.fa-temperature-high:before { + content: "\f769"; +} +.fa-temperature-low:before { + content: "\f76b"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-tenge:before { + content: "\f7d7"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-the-red-yeti:before { + content: "\f69d"; +} +.fa-theater-masks:before { + content: "\f630"; +} +.fa-themeco:before { + content: "\f5c6"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-thermometer:before { + content: "\f491"; +} +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-think-peaks:before { + content: "\f731"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbtack:before { + content: "\f08d"; +} +.fa-ticket-alt:before { + content: "\f3ff"; +} +.fa-times:before { + content: "\f00d"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-tint-slash:before { + content: "\f5c7"; +} +.fa-tired:before { + content: "\f5c8"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-toilet:before { + content: "\f7d8"; +} +.fa-toilet-paper:before { + content: "\f71e"; +} +.fa-toolbox:before { + content: "\f552"; +} +.fa-tools:before { + content: "\f7d9"; +} +.fa-tooth:before { + content: "\f5c9"; +} +.fa-torah:before { + content: "\f6a0"; +} +.fa-torii-gate:before { + content: "\f6a1"; +} +.fa-tractor:before { + content: "\f722"; +} +.fa-trade-federation:before { + content: "\f513"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-traffic-light:before { + content: "\f637"; +} +.fa-train:before { + content: "\f238"; +} +.fa-tram:before { + content: "\f7da"; +} +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-trash-alt:before { + content: "\f2ed"; +} +.fa-trash-restore:before { + content: "\f829"; +} +.fa-trash-restore-alt:before { + content: "\f82a"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-truck-loading:before { + content: "\f4de"; +} +.fa-truck-monster:before { + content: "\f63b"; +} +.fa-truck-moving:before { + content: "\f4df"; +} +.fa-truck-pickup:before { + content: "\f63c"; +} +.fa-tshirt:before { + content: "\f553"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-tv:before { + content: "\f26c"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-typo3:before { + content: "\f42b"; +} +.fa-uber:before { + content: "\f402"; +} +.fa-ubuntu:before { + content: "\f7df"; +} +.fa-uikit:before { + content: "\f403"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-umbrella-beach:before { + content: "\f5ca"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-undo:before { + content: "\f0e2"; +} +.fa-undo-alt:before { + content: "\f2ea"; +} +.fa-uniregistry:before { + content: "\f404"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-university:before { + content: "\f19c"; +} +.fa-unlink:before { + content: "\f127"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-untappd:before { + content: "\f405"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-ups:before { + content: "\f7e0"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-user:before { + content: "\f007"; +} +.fa-user-alt:before { + content: "\f406"; +} +.fa-user-alt-slash:before { + content: "\f4fa"; +} +.fa-user-astronaut:before { + content: "\f4fb"; +} +.fa-user-check:before { + content: "\f4fc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-clock:before { + content: "\f4fd"; +} +.fa-user-cog:before { + content: "\f4fe"; +} +.fa-user-edit:before { + content: "\f4ff"; +} +.fa-user-friends:before { + content: "\f500"; +} +.fa-user-graduate:before { + content: "\f501"; +} +.fa-user-injured:before { + content: "\f728"; +} +.fa-user-lock:before { + content: "\f502"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-user-minus:before { + content: "\f503"; +} +.fa-user-ninja:before { + content: "\f504"; +} +.fa-user-nurse:before { + content: "\f82f"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-user-shield:before { + content: "\f505"; +} +.fa-user-slash:before { + content: "\f506"; +} +.fa-user-tag:before { + content: "\f507"; +} +.fa-user-tie:before { + content: "\f508"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-users:before { + content: "\f0c0"; +} +.fa-users-cog:before { + content: "\f509"; +} +.fa-usps:before { + content: "\f7e1"; +} +.fa-ussunnah:before { + content: "\f407"; +} +.fa-utensil-spoon:before { + content: "\f2e5"; +} +.fa-utensils:before { + content: "\f2e7"; +} +.fa-vaadin:before { + content: "\f408"; +} +.fa-vector-square:before { + content: "\f5cb"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-vial:before { + content: "\f492"; +} +.fa-vials:before { + content: "\f493"; +} +.fa-viber:before { + content: "\f409"; +} +.fa-video:before { + content: "\f03d"; +} +.fa-video-slash:before { + content: "\f4e2"; +} +.fa-vihara:before { + content: "\f6a7"; +} +.fa-vimeo:before { + content: "\f40a"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-vimeo-v:before { + content: "\f27d"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-vnv:before { + content: "\f40b"; +} +.fa-voicemail:before { + content: "\f897"; +} +.fa-volleyball-ball:before { + content: "\f45f"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-mute:before { + content: "\f6a9"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-vote-yea:before { + content: "\f772"; +} +.fa-vr-cardboard:before { + content: "\f729"; +} +.fa-vuejs:before { + content: "\f41f"; +} +.fa-walking:before { + content: "\f554"; +} +.fa-wallet:before { + content: "\f555"; +} +.fa-warehouse:before { + content: "\f494"; +} +.fa-water:before { + content: "\f773"; +} +.fa-wave-square:before { + content: "\f83e"; +} +.fa-waze:before { + content: "\f83f"; +} +.fa-weebly:before { + content: "\f5cc"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-weight:before { + content: "\f496"; +} +.fa-weight-hanging:before { + content: "\f5cd"; +} +.fa-weixin:before { + content: "\f1d7"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-whatsapp-square:before { + content: "\f40c"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-whmcs:before { + content: "\f40d"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-wind:before { + content: "\f72e"; +} +.fa-window-close:before { + content: "\f410"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-wine-bottle:before { + content: "\f72f"; +} +.fa-wine-glass:before { + content: "\f4e3"; +} +.fa-wine-glass-alt:before { + content: "\f5ce"; +} +.fa-wix:before { + content: "\f5cf"; +} +.fa-wizards-of-the-coast:before { + content: "\f730"; +} +.fa-wolf-pack-battalion:before { + content: "\f514"; +} +.fa-won-sign:before { + content: "\f159"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-wordpress-simple:before { + content: "\f411"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-wpressr:before { + content: "\f3e4"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-x-ray:before { + content: "\f497"; +} +.fa-xbox:before { + content: "\f412"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-yammer:before { + content: "\f840"; +} +.fa-yandex:before { + content: "\f413"; +} +.fa-yandex-international:before { + content: "\f414"; +} +.fa-yarn:before { + content: "\f7e3"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-yen-sign:before { + content: "\f157"; +} +.fa-yin-yang:before { + content: "\f6ad"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-youtube-square:before { + content: "\f431"; +} +.fa-zhihu:before { + content: "\f63f"; +} +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} +@font-face { + font-family: "Font Awesome 5 Free"; + font-style: normal; + font-weight: 400; + font-display: auto; + src: url(fa-regular-400.eot); + src: url(fa-regular-400.eot?#iefix) format("embedded-opentype"), + url(fa-regular-400.woff) format("woff"); +} +.far { + font-weight: 400; +} +@font-face { + font-family: "Font Awesome 5 Free"; + font-style: normal; + font-weight: 900; + font-display: auto; + src: url(fa-solid-900.eot); + src: url(fa-solid-900.eot?#iefix) format("embedded-opentype"), + url(fa-solid-900.woff) format("woff"); +} +.fa, +.far, +.fas { + font-family: "Font Awesome 5 Free"; +} +.fa, +.fas { + font-weight: 900; +} diff --git a/html/font-awesome/css/v4-shims.min.css b/html/font-awesome/css/v4-shims.min.css index b2b65a4ea194..9316727d18d3 100644 --- a/html/font-awesome/css/v4-shims.min.css +++ b/html/font-awesome/css/v4-shims.min.css @@ -2,4 +2,1693 @@ * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400} +.fa.fa-glass:before { + content: "\f000"; +} +.fa.fa-meetup { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-star-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-star-o:before { + content: "\f005"; +} +.fa.fa-close:before, +.fa.fa-remove:before { + content: "\f00d"; +} +.fa.fa-gear:before { + content: "\f013"; +} +.fa.fa-trash-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-trash-o:before { + content: "\f2ed"; +} +.fa.fa-file-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-o:before { + content: "\f15b"; +} +.fa.fa-clock-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-clock-o:before { + content: "\f017"; +} +.fa.fa-arrow-circle-o-down { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-arrow-circle-o-down:before { + content: "\f358"; +} +.fa.fa-arrow-circle-o-up { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-arrow-circle-o-up:before { + content: "\f35b"; +} +.fa.fa-play-circle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-play-circle-o:before { + content: "\f144"; +} +.fa.fa-repeat:before, +.fa.fa-rotate-right:before { + content: "\f01e"; +} +.fa.fa-refresh:before { + content: "\f021"; +} +.fa.fa-list-alt { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-dedent:before { + content: "\f03b"; +} +.fa.fa-video-camera:before { + content: "\f03d"; +} +.fa.fa-picture-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-picture-o:before { + content: "\f03e"; +} +.fa.fa-photo { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-photo:before { + content: "\f03e"; +} +.fa.fa-image { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-image:before { + content: "\f03e"; +} +.fa.fa-pencil:before { + content: "\f303"; +} +.fa.fa-map-marker:before { + content: "\f3c5"; +} +.fa.fa-pencil-square-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-pencil-square-o:before { + content: "\f044"; +} +.fa.fa-share-square-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-share-square-o:before { + content: "\f14d"; +} +.fa.fa-check-square-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-check-square-o:before { + content: "\f14a"; +} +.fa.fa-arrows:before { + content: "\f0b2"; +} +.fa.fa-times-circle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-times-circle-o:before { + content: "\f057"; +} +.fa.fa-check-circle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-check-circle-o:before { + content: "\f058"; +} +.fa.fa-mail-forward:before { + content: "\f064"; +} +.fa.fa-eye, +.fa.fa-eye-slash { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-warning:before { + content: "\f071"; +} +.fa.fa-calendar:before { + content: "\f073"; +} +.fa.fa-arrows-v:before { + content: "\f338"; +} +.fa.fa-arrows-h:before { + content: "\f337"; +} +.fa.fa-bar-chart { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-bar-chart:before { + content: "\f080"; +} +.fa.fa-bar-chart-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-bar-chart-o:before { + content: "\f080"; +} +.fa.fa-facebook-square, +.fa.fa-twitter-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-gears:before { + content: "\f085"; +} +.fa.fa-thumbs-o-up { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-thumbs-o-up:before { + content: "\f164"; +} +.fa.fa-thumbs-o-down { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-thumbs-o-down:before { + content: "\f165"; +} +.fa.fa-heart-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-heart-o:before { + content: "\f004"; +} +.fa.fa-sign-out:before { + content: "\f2f5"; +} +.fa.fa-linkedin-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-linkedin-square:before { + content: "\f08c"; +} +.fa.fa-thumb-tack:before { + content: "\f08d"; +} +.fa.fa-external-link:before { + content: "\f35d"; +} +.fa.fa-sign-in:before { + content: "\f2f6"; +} +.fa.fa-github-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-lemon-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-lemon-o:before { + content: "\f094"; +} +.fa.fa-square-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-square-o:before { + content: "\f0c8"; +} +.fa.fa-bookmark-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-bookmark-o:before { + content: "\f02e"; +} +.fa.fa-facebook, +.fa.fa-twitter { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-facebook:before { + content: "\f39e"; +} +.fa.fa-facebook-f { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-facebook-f:before { + content: "\f39e"; +} +.fa.fa-github { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-credit-card { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-feed:before { + content: "\f09e"; +} +.fa.fa-hdd-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hdd-o:before { + content: "\f0a0"; +} +.fa.fa-hand-o-right { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa.fa-hand-o-left { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa.fa-hand-o-up { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa.fa-hand-o-down { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa.fa-arrows-alt:before { + content: "\f31e"; +} +.fa.fa-group:before { + content: "\f0c0"; +} +.fa.fa-chain:before { + content: "\f0c1"; +} +.fa.fa-scissors:before { + content: "\f0c4"; +} +.fa.fa-files-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-files-o:before { + content: "\f0c5"; +} +.fa.fa-floppy-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-floppy-o:before { + content: "\f0c7"; +} +.fa.fa-navicon:before, +.fa.fa-reorder:before { + content: "\f0c9"; +} +.fa.fa-google-plus, +.fa.fa-google-plus-square, +.fa.fa-pinterest, +.fa.fa-pinterest-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-google-plus:before { + content: "\f0d5"; +} +.fa.fa-money { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-money:before { + content: "\f3d1"; +} +.fa.fa-unsorted:before { + content: "\f0dc"; +} +.fa.fa-sort-desc:before { + content: "\f0dd"; +} +.fa.fa-sort-asc:before { + content: "\f0de"; +} +.fa.fa-linkedin { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-linkedin:before { + content: "\f0e1"; +} +.fa.fa-rotate-left:before { + content: "\f0e2"; +} +.fa.fa-legal:before { + content: "\f0e3"; +} +.fa.fa-dashboard:before, +.fa.fa-tachometer:before { + content: "\f3fd"; +} +.fa.fa-comment-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-comment-o:before { + content: "\f075"; +} +.fa.fa-comments-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-comments-o:before { + content: "\f086"; +} +.fa.fa-flash:before { + content: "\f0e7"; +} +.fa.fa-clipboard, +.fa.fa-paste { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-paste:before { + content: "\f328"; +} +.fa.fa-lightbulb-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa.fa-exchange:before { + content: "\f362"; +} +.fa.fa-cloud-download:before { + content: "\f381"; +} +.fa.fa-cloud-upload:before { + content: "\f382"; +} +.fa.fa-bell-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-bell-o:before { + content: "\f0f3"; +} +.fa.fa-cutlery:before { + content: "\f2e7"; +} +.fa.fa-file-text-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-text-o:before { + content: "\f15c"; +} +.fa.fa-building-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-building-o:before { + content: "\f1ad"; +} +.fa.fa-hospital-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hospital-o:before { + content: "\f0f8"; +} +.fa.fa-tablet:before { + content: "\f3fa"; +} +.fa.fa-mobile-phone:before, +.fa.fa-mobile:before { + content: "\f3cd"; +} +.fa.fa-circle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-circle-o:before { + content: "\f111"; +} +.fa.fa-mail-reply:before { + content: "\f3e5"; +} +.fa.fa-github-alt { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-folder-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-folder-o:before { + content: "\f07b"; +} +.fa.fa-folder-open-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-folder-open-o:before { + content: "\f07c"; +} +.fa.fa-smile-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-smile-o:before { + content: "\f118"; +} +.fa.fa-frown-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-frown-o:before { + content: "\f119"; +} +.fa.fa-meh-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-meh-o:before { + content: "\f11a"; +} +.fa.fa-keyboard-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-keyboard-o:before { + content: "\f11c"; +} +.fa.fa-flag-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-flag-o:before { + content: "\f024"; +} +.fa.fa-mail-reply-all:before { + content: "\f122"; +} +.fa.fa-star-half-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-star-half-o:before { + content: "\f089"; +} +.fa.fa-star-half-empty { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-star-half-empty:before { + content: "\f089"; +} +.fa.fa-star-half-full { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-star-half-full:before { + content: "\f089"; +} +.fa.fa-code-fork:before { + content: "\f126"; +} +.fa.fa-chain-broken:before { + content: "\f127"; +} +.fa.fa-shield:before { + content: "\f3ed"; +} +.fa.fa-calendar-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-calendar-o:before { + content: "\f133"; +} +.fa.fa-css3, +.fa.fa-html5, +.fa.fa-maxcdn { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-ticket:before { + content: "\f3ff"; +} +.fa.fa-minus-square-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-minus-square-o:before { + content: "\f146"; +} +.fa.fa-level-up:before { + content: "\f3bf"; +} +.fa.fa-level-down:before { + content: "\f3be"; +} +.fa.fa-pencil-square:before { + content: "\f14b"; +} +.fa.fa-external-link-square:before { + content: "\f360"; +} +.fa.fa-compass { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-caret-square-o-down { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa.fa-toggle-down { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-toggle-down:before { + content: "\f150"; +} +.fa.fa-caret-square-o-up { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa.fa-toggle-up { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-toggle-up:before { + content: "\f151"; +} +.fa.fa-caret-square-o-right { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa.fa-toggle-right { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-toggle-right:before { + content: "\f152"; +} +.fa.fa-eur:before, +.fa.fa-euro:before { + content: "\f153"; +} +.fa.fa-gbp:before { + content: "\f154"; +} +.fa.fa-dollar:before, +.fa.fa-usd:before { + content: "\f155"; +} +.fa.fa-inr:before, +.fa.fa-rupee:before { + content: "\f156"; +} +.fa.fa-cny:before, +.fa.fa-jpy:before, +.fa.fa-rmb:before, +.fa.fa-yen:before { + content: "\f157"; +} +.fa.fa-rouble:before, +.fa.fa-rub:before, +.fa.fa-ruble:before { + content: "\f158"; +} +.fa.fa-krw:before, +.fa.fa-won:before { + content: "\f159"; +} +.fa.fa-bitcoin, +.fa.fa-btc { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-bitcoin:before { + content: "\f15a"; +} +.fa.fa-file-text:before { + content: "\f15c"; +} +.fa.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa.fa-xing, +.fa.fa-xing-square, +.fa.fa-youtube, +.fa.fa-youtube-play, +.fa.fa-youtube-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-youtube-play:before { + content: "\f167"; +} +.fa.fa-adn, +.fa.fa-bitbucket, +.fa.fa-bitbucket-square, +.fa.fa-dropbox, +.fa.fa-flickr, +.fa.fa-instagram, +.fa.fa-stack-overflow { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-bitbucket-square:before { + content: "\f171"; +} +.fa.fa-tumblr, +.fa.fa-tumblr-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-long-arrow-down:before { + content: "\f309"; +} +.fa.fa-long-arrow-up:before { + content: "\f30c"; +} +.fa.fa-long-arrow-left:before { + content: "\f30a"; +} +.fa.fa-long-arrow-right:before { + content: "\f30b"; +} +.fa.fa-android, +.fa.fa-apple, +.fa.fa-dribbble, +.fa.fa-foursquare, +.fa.fa-gittip, +.fa.fa-gratipay, +.fa.fa-linux, +.fa.fa-skype, +.fa.fa-trello, +.fa.fa-windows { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-gittip:before { + content: "\f184"; +} +.fa.fa-sun-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-sun-o:before { + content: "\f185"; +} +.fa.fa-moon-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-moon-o:before { + content: "\f186"; +} +.fa.fa-pagelines, +.fa.fa-renren, +.fa.fa-stack-exchange, +.fa.fa-vk, +.fa.fa-weibo { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-arrow-circle-o-right { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-arrow-circle-o-right:before { + content: "\f35a"; +} +.fa.fa-arrow-circle-o-left { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-arrow-circle-o-left:before { + content: "\f359"; +} +.fa.fa-caret-square-o-left { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa.fa-toggle-left { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-toggle-left:before { + content: "\f191"; +} +.fa.fa-dot-circle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-dot-circle-o:before { + content: "\f192"; +} +.fa.fa-vimeo-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-try:before, +.fa.fa-turkish-lira:before { + content: "\f195"; +} +.fa.fa-plus-square-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-plus-square-o:before { + content: "\f0fe"; +} +.fa.fa-openid, +.fa.fa-slack, +.fa.fa-wordpress { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-bank:before, +.fa.fa-institution:before { + content: "\f19c"; +} +.fa.fa-mortar-board:before { + content: "\f19d"; +} +.fa.fa-delicious, +.fa.fa-digg, +.fa.fa-drupal, +.fa.fa-google, +.fa.fa-joomla, +.fa.fa-pied-piper-alt, +.fa.fa-pied-piper-pp, +.fa.fa-reddit, +.fa.fa-reddit-square, +.fa.fa-stumbleupon, +.fa.fa-stumbleupon-circle, +.fa.fa-yahoo { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-spoon:before { + content: "\f2e5"; +} +.fa.fa-behance, +.fa.fa-behance-square, +.fa.fa-steam, +.fa.fa-steam-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-automobile:before { + content: "\f1b9"; +} +.fa.fa-cab:before { + content: "\f1ba"; +} +.fa.fa-envelope-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-envelope-o:before { + content: "\f0e0"; +} +.fa.fa-deviantart, +.fa.fa-soundcloud { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-file-pdf-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa.fa-file-word-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-word-o:before { + content: "\f1c2"; +} +.fa.fa-file-excel-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa.fa-file-powerpoint-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa.fa-file-image-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-image-o:before { + content: "\f1c5"; +} +.fa.fa-file-photo-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-photo-o:before { + content: "\f1c5"; +} +.fa.fa-file-picture-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-picture-o:before { + content: "\f1c5"; +} +.fa.fa-file-archive-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa.fa-file-zip-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-zip-o:before { + content: "\f1c6"; +} +.fa.fa-file-audio-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa.fa-file-sound-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-sound-o:before { + content: "\f1c7"; +} +.fa.fa-file-video-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-video-o:before { + content: "\f1c8"; +} +.fa.fa-file-movie-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-movie-o:before { + content: "\f1c8"; +} +.fa.fa-file-code-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-file-code-o:before { + content: "\f1c9"; +} +.fa.fa-codepen, +.fa.fa-jsfiddle, +.fa.fa-vine { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-life-bouy, +.fa.fa-life-ring { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-life-bouy:before { + content: "\f1cd"; +} +.fa.fa-life-buoy { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-life-buoy:before { + content: "\f1cd"; +} +.fa.fa-life-saver { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-life-saver:before { + content: "\f1cd"; +} +.fa.fa-support { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-support:before { + content: "\f1cd"; +} +.fa.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa.fa-ra, +.fa.fa-rebel { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-ra:before { + content: "\f1d0"; +} +.fa.fa-resistance { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-resistance:before { + content: "\f1d0"; +} +.fa.fa-empire, +.fa.fa-ge { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-ge:before { + content: "\f1d1"; +} +.fa.fa-git, +.fa.fa-git-square, +.fa.fa-hacker-news, +.fa.fa-y-combinator-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-y-combinator-square:before { + content: "\f1d4"; +} +.fa.fa-yc-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-yc-square:before { + content: "\f1d4"; +} +.fa.fa-qq, +.fa.fa-tencent-weibo, +.fa.fa-wechat, +.fa.fa-weixin { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-wechat:before { + content: "\f1d7"; +} +.fa.fa-send:before { + content: "\f1d8"; +} +.fa.fa-paper-plane-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-paper-plane-o:before { + content: "\f1d8"; +} +.fa.fa-send-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-send-o:before { + content: "\f1d8"; +} +.fa.fa-circle-thin { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-circle-thin:before { + content: "\f111"; +} +.fa.fa-header:before { + content: "\f1dc"; +} +.fa.fa-sliders:before { + content: "\f1de"; +} +.fa.fa-futbol-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-futbol-o:before { + content: "\f1e3"; +} +.fa.fa-soccer-ball-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-soccer-ball-o:before { + content: "\f1e3"; +} +.fa.fa-slideshare, +.fa.fa-twitch, +.fa.fa-yelp { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-newspaper-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa.fa-cc-amex, +.fa.fa-cc-discover, +.fa.fa-cc-mastercard, +.fa.fa-cc-paypal, +.fa.fa-cc-stripe, +.fa.fa-cc-visa, +.fa.fa-google-wallet, +.fa.fa-paypal { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-bell-slash-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-bell-slash-o:before { + content: "\f1f6"; +} +.fa.fa-trash:before { + content: "\f2ed"; +} +.fa.fa-copyright { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-eyedropper:before { + content: "\f1fb"; +} +.fa.fa-area-chart:before { + content: "\f1fe"; +} +.fa.fa-pie-chart:before { + content: "\f200"; +} +.fa.fa-line-chart:before { + content: "\f201"; +} +.fa.fa-angellist, +.fa.fa-ioxhost, +.fa.fa-lastfm, +.fa.fa-lastfm-square { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-cc { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-cc:before { + content: "\f20a"; +} +.fa.fa-ils:before, +.fa.fa-shekel:before, +.fa.fa-sheqel:before { + content: "\f20b"; +} +.fa.fa-meanpath { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-meanpath:before { + content: "\f2b4"; +} +.fa.fa-buysellads, +.fa.fa-connectdevelop, +.fa.fa-dashcube, +.fa.fa-forumbee, +.fa.fa-leanpub, +.fa.fa-sellsy, +.fa.fa-shirtsinbulk, +.fa.fa-simplybuilt, +.fa.fa-skyatlas { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-diamond { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-diamond:before { + content: "\f3a5"; +} +.fa.fa-intersex:before { + content: "\f224"; +} +.fa.fa-facebook-official { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-facebook-official:before { + content: "\f09a"; +} +.fa.fa-pinterest-p, +.fa.fa-whatsapp { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-hotel:before { + content: "\f236"; +} +.fa.fa-medium, +.fa.fa-viacoin, +.fa.fa-y-combinator, +.fa.fa-yc { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-yc:before { + content: "\f23b"; +} +.fa.fa-expeditedssl, +.fa.fa-opencart, +.fa.fa-optin-monster { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-battery-4:before, +.fa.fa-battery:before { + content: "\f240"; +} +.fa.fa-battery-3:before { + content: "\f241"; +} +.fa.fa-battery-2:before { + content: "\f242"; +} +.fa.fa-battery-1:before { + content: "\f243"; +} +.fa.fa-battery-0:before { + content: "\f244"; +} +.fa.fa-object-group, +.fa.fa-object-ungroup, +.fa.fa-sticky-note-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-sticky-note-o:before { + content: "\f249"; +} +.fa.fa-cc-diners-club, +.fa.fa-cc-jcb { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-clone, +.fa.fa-hourglass-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hourglass-o:before { + content: "\f254"; +} +.fa.fa-hourglass-1:before { + content: "\f251"; +} +.fa.fa-hourglass-2:before { + content: "\f252"; +} +.fa.fa-hourglass-3:before { + content: "\f253"; +} +.fa.fa-hand-rock-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-rock-o:before { + content: "\f255"; +} +.fa.fa-hand-grab-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-grab-o:before { + content: "\f255"; +} +.fa.fa-hand-paper-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-paper-o:before { + content: "\f256"; +} +.fa.fa-hand-stop-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-stop-o:before { + content: "\f256"; +} +.fa.fa-hand-scissors-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa.fa-hand-lizard-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa.fa-hand-spock-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-spock-o:before { + content: "\f259"; +} +.fa.fa-hand-pointer-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa.fa-hand-peace-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa.fa-registered { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-chrome, +.fa.fa-creative-commons, +.fa.fa-firefox, +.fa.fa-get-pocket, +.fa.fa-gg, +.fa.fa-gg-circle, +.fa.fa-internet-explorer, +.fa.fa-odnoklassniki, +.fa.fa-odnoklassniki-square, +.fa.fa-opera, +.fa.fa-safari, +.fa.fa-tripadvisor, +.fa.fa-wikipedia-w { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-television:before { + content: "\f26c"; +} +.fa.fa-500px, +.fa.fa-amazon, +.fa.fa-contao { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-calendar-plus-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa.fa-calendar-minus-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa.fa-calendar-times-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-calendar-times-o:before { + content: "\f273"; +} +.fa.fa-calendar-check-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-calendar-check-o:before { + content: "\f274"; +} +.fa.fa-map-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-map-o:before { + content: "\f279"; +} +.fa.fa-commenting:before { + content: "\f4ad"; +} +.fa.fa-commenting-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-commenting-o:before { + content: "\f4ad"; +} +.fa.fa-houzz, +.fa.fa-vimeo { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-vimeo:before { + content: "\f27d"; +} +.fa.fa-black-tie, +.fa.fa-edge, +.fa.fa-fonticons, +.fa.fa-reddit-alien { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-credit-card-alt:before { + content: "\f09d"; +} +.fa.fa-codiepie, +.fa.fa-fort-awesome, +.fa.fa-mixcloud, +.fa.fa-modx, +.fa.fa-product-hunt, +.fa.fa-scribd, +.fa.fa-usb { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-pause-circle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-pause-circle-o:before { + content: "\f28b"; +} +.fa.fa-stop-circle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-stop-circle-o:before { + content: "\f28d"; +} +.fa.fa-bluetooth, +.fa.fa-bluetooth-b, +.fa.fa-envira, +.fa.fa-gitlab, +.fa.fa-wheelchair-alt, +.fa.fa-wpbeginner, +.fa.fa-wpforms { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-wheelchair-alt:before { + content: "\f368"; +} +.fa.fa-question-circle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-question-circle-o:before { + content: "\f059"; +} +.fa.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa.fa-asl-interpreting:before { + content: "\f2a3"; +} +.fa.fa-deafness:before, +.fa.fa-hard-of-hearing:before { + content: "\f2a4"; +} +.fa.fa-glide, +.fa.fa-glide-g { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-signing:before { + content: "\f2a7"; +} +.fa.fa-first-order, +.fa.fa-google-plus-official, +.fa.fa-pied-piper, +.fa.fa-snapchat, +.fa.fa-snapchat-ghost, +.fa.fa-snapchat-square, +.fa.fa-themeisle, +.fa.fa-viadeo, +.fa.fa-viadeo-square, +.fa.fa-yoast { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa.fa-google-plus-circle { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-google-plus-circle:before { + content: "\f2b3"; +} +.fa.fa-fa, +.fa.fa-font-awesome { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-fa:before { + content: "\f2b4"; +} +.fa.fa-handshake-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-handshake-o:before { + content: "\f2b5"; +} +.fa.fa-envelope-open-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-envelope-open-o:before { + content: "\f2b6"; +} +.fa.fa-linode { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-address-book-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-address-book-o:before { + content: "\f2b9"; +} +.fa.fa-vcard:before { + content: "\f2bb"; +} +.fa.fa-address-card-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-address-card-o:before { + content: "\f2bb"; +} +.fa.fa-vcard-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-vcard-o:before { + content: "\f2bb"; +} +.fa.fa-user-circle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-user-circle-o:before { + content: "\f2bd"; +} +.fa.fa-user-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-user-o:before { + content: "\f007"; +} +.fa.fa-id-badge { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-drivers-license:before { + content: "\f2c2"; +} +.fa.fa-id-card-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-id-card-o:before { + content: "\f2c2"; +} +.fa.fa-drivers-license-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-drivers-license-o:before { + content: "\f2c2"; +} +.fa.fa-free-code-camp, +.fa.fa-quora, +.fa.fa-telegram { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-thermometer-4:before, +.fa.fa-thermometer:before { + content: "\f2c7"; +} +.fa.fa-thermometer-3:before { + content: "\f2c8"; +} +.fa.fa-thermometer-2:before { + content: "\f2c9"; +} +.fa.fa-thermometer-1:before { + content: "\f2ca"; +} +.fa.fa-thermometer-0:before { + content: "\f2cb"; +} +.fa.fa-bathtub:before, +.fa.fa-s15:before { + content: "\f2cd"; +} +.fa.fa-window-maximize, +.fa.fa-window-restore { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-times-rectangle:before { + content: "\f410"; +} +.fa.fa-window-close-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-window-close-o:before { + content: "\f410"; +} +.fa.fa-times-rectangle-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-times-rectangle-o:before { + content: "\f410"; +} +.fa.fa-bandcamp, +.fa.fa-eercast, +.fa.fa-etsy, +.fa.fa-grav, +.fa.fa-imdb, +.fa.fa-ravelry { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} +.fa.fa-eercast:before { + content: "\f2da"; +} +.fa.fa-snowflake-o { + font-family: "Font Awesome 5 Free"; + font-weight: 400; +} +.fa.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa.fa-spotify, +.fa.fa-superpowers, +.fa.fa-wpexplorer { + font-family: "Font Awesome 5 Brands"; + font-weight: 400; +} diff --git a/html/jquery.min.js b/html/jquery.min.js index ab28a24729b3..b03fb9d15865 100644 --- a/html/jquery.min.js +++ b/html/jquery.min.js @@ -1,4 +1,6408 @@ /*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
      ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="
      ","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; -if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
      a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
      ","
      "],area:[1,"",""],param:[1,"",""],thead:[1,"","
      "],tr:[2,"","
      "],col:[2,"","
      "],td:[3,"","
      "],_default:k.htmlSerialize?[0,"",""]:[1,"X
      ","
      "]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("